{
//BCode命令長を取得する
int i = 1;
- if (0x01 <= *src && *src < 0x04) i = 6;
- if (*src == 0x04) i = 2;
- if (0x08 <= *src && *src < 0x0d) i = 8 + src[7] * 4;
- if (0x0e <= *src && *src < 0x10) i = 8;
- if (0x10 <= *src && *src < 0x2e) i = 4;
- if (0x1c <= *src && *src < 0x1f) i = 3;
- if (*src == 0x1f) i = 11;
- if (*src == 0x2f) i = 4 + src[1];
- if (0x30 <= *src && *src <= 0x33) i = 4;
- if (0x3c <= *src && *src <= 0x3d) i = 7;
- if (*src == 0xfe) i = 2 + src[1];
+ if (0x01 <= *src && *src < 0x04){
+ i = 6;
+ } else if (*src == 0x04){
+ i = 2;
+ } else if (0x08 <= *src && *src < 0x0d){
+ i = 8 + src[7] * 4;
+ } else if (0x0e <= *src && *src < 0x10){
+ i = 8;
+ } else if (0x10 <= *src && *src < 0x2e){
+ i = 4;
+ } else if (0x1c <= *src && *src < 0x1f){
+ i = 3;
+ } else if (*src == 0x1f){
+ i = 11;
+ } else if (*src == 0x2f){
+ i = 4 + src[1];
+ } else if (0x30 <= *src && *src <= 0x33){
+ i = 4;
+ } else if (0x3c <= *src && *src <= 0x3d){
+ i = 7;
+ } else if (*src == 0xfe){
+ i = 2 + src[1];
+ }
return i;
}
#if (JITC_ARCNUM == 0x0001)
disp -= jitCompA0001_EBP128;
if (-128 <= disp && disp <= 127) {
jitCompPutByte2(w->dst, 0x45 | (n << 3), disp & 0xff);
- }
- else {
+ } else {
jitCompPutByte1(w->dst, 0x85 | (n << 3));
jitCompPutImm32(w, disp);
}
return;
}
#endif
- if (rxx >= 0x40 || rxx < 0) w->err = JITC_ERR_REGNUM;
+ if (rxx >= 0x40 || rxx < 0){
+ w->err = JITC_ERR_REGNUM;
+ }
jitCompA0001_movReg32EbpDisp(w, 0 /* EAX */, rxx * 4); /* MOV(EAX, [EBP+?]); */
return;
}
void jitCompA0001_movRxxEax(struct JitCompWork *w, int rxx)
{
- if (rxx >= 0x40 || rxx < 0) w->err = JITC_ERR_REGNUM;
+ if (rxx >= 0x40 || rxx < 0){
+ w->err = JITC_ERR_REGNUM;
+ }
jitCompA0001_movEbpDispReg32(w, rxx * 4, 0 /* EAX */); /* MOV([EBP+?], EAX); */
return;
}
void jitCompA0001_fixPrefix(struct JitCompWork *w)
{
if (w->prefix != 0) {
- if (w->dst - w->dst0 > 127) w->err = JITC_ERR_REGNUM;
+ if (w->dst - w->dst0 > 127){
+ w->err = JITC_ERR_REGNUM;
+ }
w->dst0[-1] = (unsigned char)((w->dst - w->dst0) & 0xff);
}
return;
void jitCompA0001_checkCompPtr(struct JitCompWork *w, int p0, int p1)
{
- if (p0 >= 0x3f || p0 < 0) w->err = JITC_ERR_PREGNUM;
- if (p1 >= 0x3f || p1 < 0) w->err = JITC_ERR_PREGNUM;
+ if (p0 >= 0x3f || p0 < 0){
+ w->err = JITC_ERR_PREGNUM;
+ }
+ if (p1 >= 0x3f || p1 < 0){
+ w->err = JITC_ERR_PREGNUM;
+ }
/* 比較可能可能なのかのチェックのコードを出力 */ /* 未完成 */
return;
}
int jitCompA000_selectRegCache(int rxx, int reg)
{
- if (rxx == 0) reg = 3; /* EBX */
- if (rxx == 1) reg = 1; /* ECX */
- if (rxx == 2) reg = 2; /* EDX */
- return reg;
+ switch (rxx) {
+ case 0:
+ //EBX
+ reg = 3;
+ break;
+ case 1:
+ //ECX
+ reg = 1;
+ break;
+ case 2:
+ //EDX
+ reg = 2;
+ break;
+ }
+ return reg;
}
void jitCompA000_loadPRegCacheAll(struct JitCompWork *w)
int jitCompA000_selectPRegCache(int pxx, int reg)
{
// if (pxx == 0) reg = 5; /* EBP */
- if (pxx == 1) reg = 6; /* ESI */
- if (pxx == 2) reg = 7; /* EDI */
+ switch (pxx) {
+ case 1:
+ //ESI
+ reg = 6;
+ break;
+
+ case 2:
+ //EDI
+ reg = 7;
+ break;
+ }
return reg;
}
int jitCompA000_convTyp(int t)
{
int r = -1;
- if (1 <= t && t <= 7) r = t;
- if (8 <= t && t <= 13) r = 2 | (t & 1);
- if (14 <= t && t <= 15) r = 4 | (t & 1);
- if (16 <= t && t <= 21) r = 6 | (t & 1);
+ if (1 <= t && t <= 7){
+ r = t;
+ } else if (8 <= t && t <= 13){
+ r = 2 | (t & 1);
+ } else if (14 <= t && t <= 15){
+ r = 4 | (t & 1);
+ } else if (16 <= t && t <= 21){
+ r = 6 | (t & 1);
+ }
return r;
}