Quick fix for non-EABI (Windows Mobile) bug introduced in 49a8ed180ad0. [Bug 535709] [r=me]

--HG--
extra : convert_revision : 7b43473880200943d0362c5eab2e957e23414f45
This commit is contained in:
Jacob Bramley 2010-09-09 08:55:27 +01:00
Родитель 1c01660cdc
Коммит bdf7765a9b
1 изменённых файлов: 3 добавлений и 3 удалений

Просмотреть файл

@ -701,6 +701,7 @@ Assembler::asm_arg_64(LIns* arg, Register& r, int& stkd)
NanoAssert(stkd == 0);
if (ARM_VFP) {
Register dm = findRegFor(arg, FpRegs);
// TODO: We could optimize the this to store directly from
// the VFP register to memory using "FMRRD ra, fp_reg[31:0]" and
// "STR fp_reg[63:32], [SP, #stkd]".
@ -708,16 +709,15 @@ Assembler::asm_arg_64(LIns* arg, Register& r, int& stkd)
// Load from the floating-point register as usual, but use IP
// as a swap register.
STR(IP, SP, 0);
stkd += 4;
FMRRD(ra, IP, fp_reg);
FMRRD(ra, IP, dm);
} else {
// Without VFP, we can simply use asm_regarg and asm_stkarg to
// encode the two 32-bit words as we don't need to load from a VFP
// register.
asm_regarg(ARGTYPE_I, arg->oprnd1(), ra);
asm_stkarg(arg->oprnd2(), 0);
stkd += 4;
}
stkd += 4;
#endif
} else {
// The argument won't fit in registers, so pass on to asm_stkarg.