diff options
author | notaz | 2010-11-30 23:36:18 +0200 |
---|---|---|
committer | notaz | 2010-12-02 01:17:23 +0200 |
commit | 2002a1dbd97bc1b94b12ec3e90702a770b040858 (patch) | |
tree | 64b4ddf08fc07e7df970dea60031a20e1b7ed8d9 /libpcsxcore/new_dynarec/assem_arm.c | |
parent | cfcba99acf1ade6b95a69e8d04cc4cde9cd95d00 (diff) | |
download | pcsx_rearmed-2002a1dbd97bc1b94b12ec3e90702a770b040858.tar.gz pcsx_rearmed-2002a1dbd97bc1b94b12ec3e90702a770b040858.tar.bz2 pcsx_rearmed-2002a1dbd97bc1b94b12ec3e90702a770b040858.zip |
drc: attempt to support little endian
Diffstat (limited to 'libpcsxcore/new_dynarec/assem_arm.c')
-rw-r--r-- | libpcsxcore/new_dynarec/assem_arm.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/libpcsxcore/new_dynarec/assem_arm.c b/libpcsxcore/new_dynarec/assem_arm.c index d0edaca..ea1da1b 100644 --- a/libpcsxcore/new_dynarec/assem_arm.c +++ b/libpcsxcore/new_dynarec/assem_arm.c @@ -3174,7 +3174,12 @@ void loadlr_assemble_arm(int i,struct regstat *i_regs) else inline_readstub(LOADW_STUB,i,(constmap[i][s]+offset)&0xFFFFFFFC,i_regs->regmap,FTEMP,ccadj[i],reglist); emit_andimm(temp,24,temp); - if (opcode[i]==0x26) emit_xorimm(temp,24,temp); // LWR +#ifdef BIG_ENDIAN_MIPS + if (opcode[i]==0x26) // LWR +#else + if (opcode[i]==0x22) // LWL +#endif + emit_xorimm(temp,24,temp); emit_movimm(-1,HOST_TEMPREG); if (opcode[i]==0x26) { emit_shr(temp2,temp,temp2); @@ -3187,6 +3192,7 @@ void loadlr_assemble_arm(int i,struct regstat *i_regs) //emit_storereg(rt1[i],tl); // DEBUG } if (opcode[i]==0x1A||opcode[i]==0x1B) { // LDL/LDR + // FIXME: little endian int temp2h=get_reg(i_regs->regmap,FTEMP|64); if(!c||memtarget) { //if(th>=0) emit_readword_indexed((int)rdram-0x80000000,temp2,temp2h); |