From: ceriel Date: Mon, 17 Oct 1988 10:38:30 +0000 (+0000) Subject: made a bit more portable X-Git-Tag: release-5-5~2792 X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=8b6ba39da453450877935c8a9eb7120e439cc0eb;p=ack.git made a bit more portable --- diff --git a/mach/arm/as/mach5.c b/mach/arm/as/mach5.c index 6ff489088..5be8ce63d 100644 --- a/mach/arm/as/mach5.c +++ b/mach/arm/as/mach5.c @@ -42,8 +42,7 @@ short typ; return; } - switch (opc){ - case MOV: + if (opc == MOV) { if (small((val & 0xF0000000) == 0xF0000000, 8)){ emit4(0xE51F0004 | (ins & 0xF000)); emit4(val); @@ -57,7 +56,8 @@ short typ; } DOTVAL += 16; return; - case ADD: + } + if (opc == ADD) { if (small((val & 0xF0000000) == 0xF0000000, 4)){ emit4(0xE51F0004 | (ins & 0xF000)); emit4(val); @@ -69,13 +69,11 @@ short typ; emit4(val); emit4(0xE2800000 | (ins&0xFF000) | (ins&0xF000)>>12); return; - default: - if (pass == PASS_1) - DOTVAL += 16; - else - serror("immediate value out of range"); - return; } + if (pass == PASS_1) + DOTVAL += 16; + else + serror("immediate value out of range"); } calcimm(opc,val,typ) @@ -90,35 +88,32 @@ short typ; if ((*val & ~0xFF) == 0) return 1; if ((~*val & ~0xFF) == 0){ - switch (*opc){ - case AND: + if (*opc == AND) { *val = ~*val; *opc = BIC; return 1; - case MOV: + } + if (*opc == MOV) { *val = ~*val; *opc = MVN; return 1; - case ADC: + } + if (*opc == ADC) { *val = ~*val; *opc = SBC; return 1; - default : - break; } } if ((-1**val & ~0xFF) == 0 ){ - switch (*opc){ - case ADD: + if (*opc == ADD) { *val *= -1; *opc = SUB; return 1; - case CMP: + } + if (*opc == CMP) { *val *= -1; *opc = CMN; return 1; - default: - break; } } @@ -130,21 +125,20 @@ short typ; return 1; } if ((~*val & ~0xFF) == 0){ - switch (*opc){ - case AND: + if (*opc == AND) { *val = ~*val|i<<8; *opc = BIC; return 1; - case MOV: + } + if (*opc == MOV) { *val = ~*val|i<<8; *opc = MVN; return 1; - case ADC: + } + if (*opc == ADC) { *val = ~*val|i<<8; *opc = SBC; return 1; - default : - break; } } }while(i<15); @@ -205,13 +199,13 @@ short typ; if (typ != S_ABS){ tmpval = val-DOTVAL-8; if (small((tmpval & ~0xFF) == 0),12){ - emit4(0xE2000000|ADD|0xF<<16|reg<<12|tmpval); + emit4(0xE2000000|ADD|(long)0xF<<16|reg<<12|tmpval); return 0; } tmpval *= -1; if (small((tmpval & ~0xFF) == 0), 12){ - emit4(0xE2000000|SUB|0xF<<16|reg<<12|tmpval); + emit4(0xE2000000|SUB|(long)0xF<<16|reg<<12|tmpval); return 0; } }