Bug 898381. r=mjrosenb

This commit is contained in:
Jan de Mooij 2013-07-30 10:23:55 +02:00
parent 70990dd2d4
commit fa20cc7bc5

View File

@ -2703,13 +2703,18 @@ MacroAssemblerARMCompat::extractTag(const BaseIndex &address, Register scratch)
}
void
MacroAssemblerARMCompat::moveValue(const Value &val, Register type, Register data) {
MacroAssemblerARMCompat::moveValue(const Value &val, Register type, Register data)
{
jsval_layout jv = JSVAL_TO_IMPL(val);
ma_mov(Imm32(jv.s.tag), type);
ma_mov(Imm32(jv.s.payload.i32), data);
if (val.isMarkable())
ma_mov(ImmGCPtr(reinterpret_cast<gc::Cell *>(val.toGCThing())), data);
else
ma_mov(Imm32(jv.s.payload.i32), data);
}
void
MacroAssemblerARMCompat::moveValue(const Value &val, const ValueOperand &dest) {
MacroAssemblerARMCompat::moveValue(const Value &val, const ValueOperand &dest)
{
moveValue(val, dest.typeReg(), dest.payloadReg());
}
@ -2717,7 +2722,8 @@ MacroAssemblerARMCompat::moveValue(const Value &val, const ValueOperand &dest) {
// X86/X64-common (ARM too now) interface.
/////////////////////////////////////////////////////////////////
void
MacroAssemblerARMCompat::storeValue(ValueOperand val, Operand dst) {
MacroAssemblerARMCompat::storeValue(ValueOperand val, Operand dst)
{
ma_str(val.payloadReg(), ToPayload(dst));
ma_str(val.typeReg(), ToType(dst));
}