mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-08 15:34:09 +00:00
Adding support for Immediate add mode
The masking in immediate mode might not be proper. I could understand that you had masked 12bits and then 8bits to get the displacement in place for 20-bit displacement ( cp[-2] |= n&0xfff; cp[-1] |= (n>>4)&0xff00;) But in my case I need all the 32bits, so not sure how to go about it. Currently I have just used "n" since no point in "and with 0xffff" But I am getting core dump. Please Let me know your comments on these.
This commit is contained in:
parent
b97a7f7b44
commit
f0dd40dc50
@ -233,7 +233,10 @@ void dasm_put(Dst_DECL, int start, ...)
|
||||
break;
|
||||
case DASM_IMM16:
|
||||
case DASM_IMM32:
|
||||
fprintf(stderr, "not implemented\n");
|
||||
CK((n>>32) == 0, RANGE_I);
|
||||
b[pos++]=n;
|
||||
break;
|
||||
//fprintf(stderr, "not implemented\n");
|
||||
case DASM_DISP20:
|
||||
CK(-(1<<19) <= n && n < (1<<19), RANGE_I);
|
||||
b[pos++] = n;
|
||||
@ -368,7 +371,9 @@ int dasm_encode(Dst_DECL, void *buffer)
|
||||
case DASM_LABEL_PC: break;
|
||||
case DASM_IMM16:
|
||||
case DASM_IMM32:
|
||||
fprintf(stderr, "not implemented\n");
|
||||
//pintf(stderr, "not implemented\n");
|
||||
cp[-1] |= n
|
||||
cp[-2] |= n
|
||||
break;
|
||||
case DASM_DISP20:
|
||||
cp[-2] |= n&0xfff;
|
||||
|
Loading…
Reference in New Issue
Block a user