Bug 812280 - Remove move32/movePtr overloads that take an Address. r=dvander

This commit is contained in:
Jan de Mooij 2012-11-16 12:05:55 +01:00
parent 34db7ead87
commit e2b2b12173
7 changed files with 19 additions and 46 deletions

View File

@ -850,9 +850,9 @@ CodeGenerator::visitCallGeneric(LCallGeneric *call)
masm.branchIfFunctionIsNative(calleereg, &invoke);
// Knowing that calleereg is a non-native function, load the JSScript.
masm.movePtr(Address(calleereg, offsetof(JSFunction, u.i.script_)), objreg);
masm.loadPtr(Address(calleereg, offsetof(JSFunction, u.i.script_)), objreg);
ExecutionMode executionMode = gen->info().executionMode();
masm.movePtr(Address(objreg, ionOffset(executionMode)), objreg);
masm.loadPtr(Address(objreg, ionOffset(executionMode)), objreg);
// Guard that the IonScript has been compiled.
masm.branchPtr(Assembler::BelowOrEqual, objreg, ImmWord(ION_COMPILING_SCRIPT), &invoke);
@ -872,8 +872,8 @@ CodeGenerator::visitCallGeneric(LCallGeneric *call)
masm.j(Assembler::Above, &thunk);
// No argument fixup needed. Load the start of the target IonCode.
masm.movePtr(Address(objreg, IonScript::offsetOfMethod()), objreg);
masm.movePtr(Address(objreg, IonCode::offsetOfCode()), objreg);
masm.loadPtr(Address(objreg, IonScript::offsetOfMethod()), objreg);
masm.loadPtr(Address(objreg, IonCode::offsetOfCode()), objreg);
masm.jump(&makeCall);
// Argument fixed needed. Load the ArgumentsRectifier.
@ -881,7 +881,7 @@ CodeGenerator::visitCallGeneric(LCallGeneric *call)
{
JS_ASSERT(ArgumentsRectifierReg != objreg);
masm.movePtr(ImmGCPtr(argumentsRectifier), objreg); // Necessary for GC marking.
masm.movePtr(Address(objreg, IonCode::offsetOfCode()), objreg);
masm.loadPtr(Address(objreg, IonCode::offsetOfCode()), objreg);
masm.move32(Imm32(call->numStackArgs()), ArgumentsRectifierReg);
}
@ -943,15 +943,15 @@ CodeGenerator::visitCallKnown(LCallKnown *call)
}
// Knowing that calleereg is a non-native function, load the JSScript.
masm.movePtr(Address(calleereg, offsetof(JSFunction, u.i.script_)), objreg);
masm.movePtr(Address(objreg, ionOffset(executionMode)), objreg);
masm.loadPtr(Address(calleereg, offsetof(JSFunction, u.i.script_)), objreg);
masm.loadPtr(Address(objreg, ionOffset(executionMode)), objreg);
// Guard that the IonScript has been compiled.
masm.branchPtr(Assembler::BelowOrEqual, objreg, ImmWord(ION_COMPILING_SCRIPT), &invoke);
// Load the start of the target IonCode.
masm.movePtr(Address(objreg, IonScript::offsetOfMethod()), objreg);
masm.movePtr(Address(objreg, IonCode::offsetOfCode()), objreg);
masm.loadPtr(Address(objreg, IonScript::offsetOfMethod()), objreg);
masm.loadPtr(Address(objreg, IonCode::offsetOfCode()), objreg);
// Nestle the StackPointer up to the argument vector.
masm.freeStack(unusedStack);
@ -1158,8 +1158,8 @@ CodeGenerator::visitApplyArgsGeneric(LApplyArgsGeneric *apply)
}
// Knowing that calleereg is a non-native function, load the JSScript.
masm.movePtr(Address(calleereg, offsetof(JSFunction, u.i.script_)), objreg);
masm.movePtr(Address(objreg, ionOffset(executionMode)), objreg);
masm.loadPtr(Address(calleereg, offsetof(JSFunction, u.i.script_)), objreg);
masm.loadPtr(Address(objreg, ionOffset(executionMode)), objreg);
// Guard that the IonScript has been compiled.
masm.branchPtr(Assembler::BelowOrEqual, objreg, ImmWord(ION_COMPILING_SCRIPT), &invoke);
@ -1189,8 +1189,8 @@ CodeGenerator::visitApplyArgsGeneric(LApplyArgsGeneric *apply)
// No argument fixup needed. Load the start of the target IonCode.
{
masm.movePtr(Address(objreg, IonScript::offsetOfMethod()), objreg);
masm.movePtr(Address(objreg, IonCode::offsetOfCode()), objreg);
masm.loadPtr(Address(objreg, IonScript::offsetOfMethod()), objreg);
masm.loadPtr(Address(objreg, IonCode::offsetOfCode()), objreg);
// Skip the construction of the rectifier frame because we have no
// underflow.
@ -1207,7 +1207,7 @@ CodeGenerator::visitApplyArgsGeneric(LApplyArgsGeneric *apply)
JS_ASSERT(ArgumentsRectifierReg != objreg);
masm.movePtr(ImmGCPtr(argumentsRectifier), objreg); // Necessary for GC marking.
masm.movePtr(Address(objreg, IonCode::offsetOfCode()), objreg);
masm.loadPtr(Address(objreg, IonCode::offsetOfCode()), objreg);
masm.movePtr(argcreg, ArgumentsRectifierReg);
}
@ -1219,7 +1219,7 @@ CodeGenerator::visitApplyArgsGeneric(LApplyArgsGeneric *apply)
return false;
// Recover the number of arguments from the frame descriptor.
masm.movePtr(Address(StackPointer, 0), copyreg);
masm.loadPtr(Address(StackPointer, 0), copyreg);
masm.rshiftPtr(Imm32(FRAMESIZE_SHIFT), copyreg);
masm.subPtr(Imm32(pushed), copyreg);
@ -2957,7 +2957,7 @@ CodeGenerator::visitArgumentsLength(LArgumentsLength *lir)
Register argc = ToRegister(lir->output());
Address ptr(StackPointer, frameSize() + IonJSFrameLayout::offsetOfNumActualArgs());
masm.movePtr(ptr, argc);
masm.loadPtr(ptr, argc);
return true;
}

View File

@ -426,7 +426,7 @@ MacroAssembler::maybeRemoveOsrFrame(Register scratch)
// indicative of working inside an existing bailout. In this case, remove
// the OSR frame, so we don't explode the stack with repeated bailouts.
Label osrRemoved;
movePtr(Address(StackPointer, IonCommonFrameLayout::offsetOfDescriptor()), scratch);
loadPtr(Address(StackPointer, IonCommonFrameLayout::offsetOfDescriptor()), scratch);
and32(Imm32(FRAMETYPE_MASK), scratch);
branch32(Assembler::NotEqual, scratch, Imm32(IonFrame_Osr), &osrRemoved);
addPtr(Imm32(sizeof(IonOsrFrameLayout)), StackPointer);

View File

@ -1482,11 +1482,6 @@ MacroAssemblerARMCompat::move32(const Imm32 &imm, const Register &dest)
ma_mov(imm, dest);
}
void
MacroAssemblerARMCompat::move32(const Address &src, const Register &dest)
{
movePtr(src, dest);
}
void
MacroAssemblerARMCompat::movePtr(const Register &src, const Register &dest)
{
ma_mov(src, dest);
@ -1502,11 +1497,6 @@ MacroAssemblerARMCompat::movePtr(const ImmGCPtr &imm, const Register &dest)
ma_mov(imm, dest);
}
void
MacroAssemblerARMCompat::movePtr(const Address &src, const Register &dest)
{
loadPtr(src, dest);
}
void
MacroAssemblerARMCompat::load8ZeroExtend(const Address &address, const Register &dest)
{
ma_dataTransferN(IsLoad, 8, false, address.base, Imm32(address.offset), dest);

View File

@ -600,11 +600,11 @@ class MacroAssemblerARMCompat : public MacroAssemblerARM
ma_b(label, cond);
}
void branch32(Condition cond, const Address &lhs, Register rhs, Label *label) {
move32(lhs, ScratchRegister);
load32(lhs, ScratchRegister);
branch32(cond, ScratchRegister, rhs, label);
}
void branch32(Condition cond, const Address &lhs, Imm32 rhs, Label *label) {
move32(lhs, ScratchRegister);
load32(lhs, ScratchRegister);
branch32(cond, ScratchRegister, rhs, label);
}
void branchPtr(Condition cond, const Address &lhs, Register rhs, Label *label) {
@ -912,11 +912,9 @@ class MacroAssemblerARMCompat : public MacroAssemblerARM
void move32(const Imm32 &imm, const Register &dest);
void move32(const Address &src, const Register &dest);
void movePtr(const Register &src, const Register &dest);
void movePtr(const ImmWord &imm, const Register &dest);
void movePtr(const ImmGCPtr &imm, const Register &dest);
void movePtr(const Address &src, const Register &dest);
void load8SignExtend(const Address &address, const Register &dest);
void load8SignExtend(const BaseIndex &src, const Register &dest);

View File

@ -64,9 +64,6 @@ class MacroAssemblerX86Shared : public Assembler
j(ConditionFromDoubleCondition(cond), label);
}
void move32(const Address &address, const Register &dest) {
movl(Operand(address), dest);
}
void move32(const Imm32 &imm, const Register &dest) {
if (imm.value == 0)
xorl(dest, dest);

View File

@ -187,9 +187,6 @@ class MacroAssemblerX64 : public MacroAssemblerX86Shared
push(ScratchReg);
}
void movePtr(Operand op, const Register &dest) {
movq(op, dest);
}
void moveValue(const Value &val, const Register &dest) {
jsval_layout jv = JSVAL_TO_IMPL(val);
movq(ImmWord(jv.asPtr), dest);
@ -459,9 +456,6 @@ class MacroAssemblerX64 : public MacroAssemblerX86Shared
void movePtr(ImmGCPtr imm, Register dest) {
movq(imm, dest);
}
void movePtr(const Address &address, const Register &dest) {
movq(Operand(address), dest);
}
void loadPtr(const AbsoluteAddress &address, Register dest) {
movq(ImmWord(address.addr), ScratchReg);
movq(Operand(ScratchReg, 0x0), dest);

View File

@ -195,12 +195,6 @@ class MacroAssemblerX86 : public MacroAssemblerX86Shared
void movePtr(const Register &src, const Register &dest) {
movl(src, dest);
}
void movePtr(Operand op, const Register &dest) {
movl(op, dest);
}
void movePtr(const Address &src, const Register &dest) {
movl(Operand(src), dest);
}
// Returns the register containing the type tag.
Register splitTagForTest(const ValueOperand &value) {