Added SS-b support in C

This commit is contained in:
niravthakkar 2016-12-09 19:24:55 +05:30 committed by GitHub
parent 9b9e1ea667
commit cf4813f4ab

View File

@ -24,7 +24,7 @@ enum {
DASM_REL_PC, DASM_LABEL_PC, DASM_REL_PC, DASM_LABEL_PC,
DASM_DISP12, DASM_DISP20, DASM_DISP12, DASM_DISP20,
DASM_IMM16, DASM_IMM32, DASM_IMM16, DASM_IMM32,
DASM_LEN8R, DASM_LEN8R,DASM_LEN4HR,DASM_LEN4LR,
DASM__MAX DASM__MAX
}; };
@ -289,6 +289,14 @@ void dasm_put(Dst_DECL, int start, ...)
CK(n >= 1 && n <= 256, RANGE_I); CK(n >= 1 && n <= 256, RANGE_I);
b[pos++] = n; b[pos++] = n;
break; break;
case DASM_LEN4HR:
CK(n >= 1 && n <= 128, RANGE_I);
b[pos++] = n;
break;
case DASM_LEN4LR:
CK(n >= 1 && n <= 128, RANGE_I);
b[pos++] = n;
break;
} }
} }
stop: stop:
@ -370,6 +378,8 @@ int dasm_link(Dst_DECL, size_t * szp)
case DASM_DISP20: case DASM_DISP20:
case DASM_DISP12: case DASM_DISP12:
case DASM_LEN8R: case DASM_LEN8R:
case DASM_LEN4HR:
case DASM_LEN4LR:
pos++; pos++;
break; break;
} }
@ -467,6 +477,12 @@ int dasm_encode(Dst_DECL, void *buffer)
case DASM_LEN8R: case DASM_LEN8R:
cp[-1] |= (n - 1) & 0xff; cp[-1] |= (n - 1) & 0xff;
break; break;
case DASM_LEN4HR:
cp[-1] |= (n - 1) & 0xf0;
break;
case DASM_LEN4LR:
cp[-1] |= (n - 1) & 0xof;
break;
default: default:
*cp++ = ins; *cp++ = ins;
break; break;