* gencode.c (process_instructions): Call build_endian_shift when
expanding STORE RIGHT, to fix swr. * support.h (SIGNEXTEND): If the sign bit is not set, explicitly clear the high bits. * interp.c (Convert): Fix fmt_single to fmt_long to not truncate. Fix float to int conversions to produce signed values.
This commit is contained in:
parent
e12ab364d2
commit
149ee67274
2 changed files with 5 additions and 1 deletions
|
@ -1530,6 +1530,7 @@ process_instructions(doarch,features)
|
|||
printf(" GPR[destreg] = SIGNEXTEND(GPR[destreg],32);\n");
|
||||
} else { /* store */
|
||||
printf(" memval = (op2 << (byte * 8));\n");
|
||||
build_endian_shift(proc64,datalen,2,s_left,32);
|
||||
printf(" StoreMemory(uncached,(%s - byte),memval,paddr,vaddr,isREAL);\n",accesslength);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue