Index: src/arm/lithium-codegen-arm.cc |
=================================================================== |
--- src/arm/lithium-codegen-arm.cc (revision 6433) |
+++ src/arm/lithium-codegen-arm.cc (working copy) |
@@ -1016,8 +1016,8 @@ |
LModI* instr_; |
}; |
// These registers hold untagged 32 bit values. |
- Register left = ToRegister(instr->left()); |
- Register right = ToRegister(instr->right()); |
+ Register left = ToRegister(instr->InputAt(0)); |
+ Register right = ToRegister(instr->InputAt(1)); |
Register result = ToRegister(instr->result()); |
Register scratch = scratch0(); |
@@ -1102,8 +1102,8 @@ |
LDivI* instr_; |
}; |
- const Register left = ToRegister(instr->left()); |
- const Register right = ToRegister(instr->right()); |
+ const Register left = ToRegister(instr->InputAt(0)); |
+ const Register right = ToRegister(instr->InputAt(1)); |
const Register scratch = scratch0(); |
const Register result = ToRegister(instr->result()); |
@@ -1170,10 +1170,11 @@ |
} |
-void LCodeGen::DoDeferredGenericBinaryStub(LBinaryOperation* instr, |
+template<int T> |
+void LCodeGen::DoDeferredGenericBinaryStub(LTemplateInstruction<1, 2, T>* instr, |
Token::Value op) { |
- Register left = ToRegister(instr->left()); |
- Register right = ToRegister(instr->right()); |
+ Register left = ToRegister(instr->InputAt(0)); |
+ Register right = ToRegister(instr->InputAt(1)); |
__ PushSafepointRegistersAndDoubles(); |
GenericBinaryOpStub stub(op, OVERWRITE_LEFT, left, right); |
@@ -1190,12 +1191,12 @@ |
void LCodeGen::DoMulI(LMulI* instr) { |
Register scratch = scratch0(); |
- Register left = ToRegister(instr->left()); |
- Register right = EmitLoadRegister(instr->right(), scratch); |
+ Register left = ToRegister(instr->InputAt(0)); |
+ Register right = EmitLoadRegister(instr->InputAt(1), scratch); |
if (instr->hydrogen()->CheckFlag(HValue::kBailoutOnMinusZero) && |
- !instr->right()->IsConstantOperand()) { |
- __ orr(ToRegister(instr->temp()), left, right); |
+ !instr->InputAt(1)->IsConstantOperand()) { |
+ __ orr(ToRegister(instr->TempAt(0)), left, right); |
} |
if (instr->hydrogen()->CheckFlag(HValue::kCanOverflow)) { |
@@ -1213,13 +1214,13 @@ |
Label done; |
__ tst(left, Operand(left)); |
__ b(ne, &done); |
- if (instr->right()->IsConstantOperand()) { |
- if (ToInteger32(LConstantOperand::cast(instr->right())) < 0) { |
+ if (instr->InputAt(1)->IsConstantOperand()) { |
+ if (ToInteger32(LConstantOperand::cast(instr->InputAt(1))) < 0) { |
DeoptimizeIf(no_condition, instr->environment()); |
} |
} else { |
// Test the non-zero operand for negative sign. |
- __ cmp(ToRegister(instr->temp()), Operand(0)); |
+ __ cmp(ToRegister(instr->TempAt(0)), Operand(0)); |
DeoptimizeIf(mi, instr->environment()); |
} |
__ bind(&done); |
@@ -1228,8 +1229,8 @@ |
void LCodeGen::DoBitI(LBitI* instr) { |
- LOperand* left = instr->left(); |
- LOperand* right = instr->right(); |
+ LOperand* left = instr->InputAt(0); |
+ LOperand* right = instr->InputAt(1); |
ASSERT(left->Equals(instr->result())); |
ASSERT(left->IsRegister()); |
Register result = ToRegister(left); |
@@ -1253,8 +1254,8 @@ |
void LCodeGen::DoShiftI(LShiftI* instr) { |
Register scratch = scratch0(); |
- LOperand* left = instr->left(); |
- LOperand* right = instr->right(); |
+ LOperand* left = instr->InputAt(0); |
+ LOperand* right = instr->InputAt(1); |
ASSERT(left->Equals(instr->result())); |
ASSERT(left->IsRegister()); |
Register result = ToRegister(left); |
@@ -1311,9 +1312,9 @@ |
void LCodeGen::DoSubI(LSubI* instr) { |
- Register left = ToRegister(instr->left()); |
- Register right = EmitLoadRegister(instr->right(), ip); |
- ASSERT(instr->left()->Equals(instr->result())); |
+ Register left = ToRegister(instr->InputAt(0)); |
+ Register right = EmitLoadRegister(instr->InputAt(1), ip); |
+ ASSERT(instr->InputAt(0)->Equals(instr->result())); |
__ sub(left, left, right, SetCC); |
if (instr->hydrogen()->CheckFlag(HValue::kCanOverflow)) { |
DeoptimizeIf(vs, instr->environment()); |
@@ -1343,22 +1344,22 @@ |
void LCodeGen::DoJSArrayLength(LJSArrayLength* instr) { |
Register result = ToRegister(instr->result()); |
- Register array = ToRegister(instr->input()); |
+ Register array = ToRegister(instr->InputAt(0)); |
__ ldr(result, FieldMemOperand(array, JSArray::kLengthOffset)); |
} |
void LCodeGen::DoFixedArrayLength(LFixedArrayLength* instr) { |
Register result = ToRegister(instr->result()); |
- Register array = ToRegister(instr->input()); |
+ Register array = ToRegister(instr->InputAt(0)); |
__ ldr(result, FieldMemOperand(array, FixedArray::kLengthOffset)); |
} |
void LCodeGen::DoValueOf(LValueOf* instr) { |
- Register input = ToRegister(instr->input()); |
+ Register input = ToRegister(instr->InputAt(0)); |
Register result = ToRegister(instr->result()); |
- Register map = ToRegister(instr->temporary()); |
+ Register map = ToRegister(instr->TempAt(0)); |
ASSERT(input.is(result)); |
Label done; |
@@ -1376,14 +1377,14 @@ |
void LCodeGen::DoBitNotI(LBitNotI* instr) { |
- LOperand* input = instr->input(); |
+ LOperand* input = instr->InputAt(0); |
ASSERT(input->Equals(instr->result())); |
__ mvn(ToRegister(input), Operand(ToRegister(input))); |
} |
void LCodeGen::DoThrow(LThrow* instr) { |
- Register input_reg = EmitLoadRegister(instr->input(), ip); |
+ Register input_reg = EmitLoadRegister(instr->InputAt(0), ip); |
__ push(input_reg); |
CallRuntime(Runtime::kThrow, 1, instr); |
@@ -1394,8 +1395,8 @@ |
void LCodeGen::DoAddI(LAddI* instr) { |
- LOperand* left = instr->left(); |
- LOperand* right = instr->right(); |
+ LOperand* left = instr->InputAt(0); |
+ LOperand* right = instr->InputAt(1); |
ASSERT(left->Equals(instr->result())); |
Register right_reg = EmitLoadRegister(right, ip); |
@@ -1408,8 +1409,8 @@ |
void LCodeGen::DoArithmeticD(LArithmeticD* instr) { |
- DoubleRegister left = ToDoubleRegister(instr->left()); |
- DoubleRegister right = ToDoubleRegister(instr->right()); |
+ DoubleRegister left = ToDoubleRegister(instr->InputAt(0)); |
+ DoubleRegister right = ToDoubleRegister(instr->InputAt(1)); |
switch (instr->op()) { |
case Token::ADD: |
__ vadd(left, left, right); |
@@ -1435,8 +1436,8 @@ |
void LCodeGen::DoArithmeticT(LArithmeticT* instr) { |
- ASSERT(ToRegister(instr->left()).is(r1)); |
- ASSERT(ToRegister(instr->right()).is(r0)); |
+ ASSERT(ToRegister(instr->InputAt(0)).is(r1)); |
+ ASSERT(ToRegister(instr->InputAt(1)).is(r0)); |
ASSERT(ToRegister(instr->result()).is(r0)); |
// TODO(regis): Implement TypeRecordingBinaryOpStub and replace current |
@@ -1480,11 +1481,11 @@ |
Representation r = instr->hydrogen()->representation(); |
if (r.IsInteger32()) { |
- Register reg = ToRegister(instr->input()); |
+ Register reg = ToRegister(instr->InputAt(0)); |
__ cmp(reg, Operand(0)); |
EmitBranch(true_block, false_block, nz); |
} else if (r.IsDouble()) { |
- DoubleRegister reg = ToDoubleRegister(instr->input()); |
+ DoubleRegister reg = ToDoubleRegister(instr->InputAt(0)); |
Register scratch = scratch0(); |
// Test the double value. Zero and NaN are false. |
@@ -1493,7 +1494,7 @@ |
EmitBranch(true_block, false_block, ne); |
} else { |
ASSERT(r.IsTagged()); |
- Register reg = ToRegister(instr->input()); |
+ Register reg = ToRegister(instr->InputAt(0)); |
if (instr->hydrogen()->type().IsBoolean()) { |
__ LoadRoot(ip, Heap::kTrueValueRootIndex); |
__ cmp(reg, ip); |
@@ -1636,8 +1637,8 @@ |
void LCodeGen::DoCmpJSObjectEq(LCmpJSObjectEq* instr) { |
- Register left = ToRegister(instr->left()); |
- Register right = ToRegister(instr->right()); |
+ Register left = ToRegister(instr->InputAt(0)); |
+ Register right = ToRegister(instr->InputAt(1)); |
Register result = ToRegister(instr->result()); |
__ cmp(left, Operand(right)); |
@@ -1647,8 +1648,8 @@ |
void LCodeGen::DoCmpJSObjectEqAndBranch(LCmpJSObjectEqAndBranch* instr) { |
- Register left = ToRegister(instr->left()); |
- Register right = ToRegister(instr->right()); |
+ Register left = ToRegister(instr->InputAt(0)); |
+ Register right = ToRegister(instr->InputAt(1)); |
int false_block = chunk_->LookupDestination(instr->false_block_id()); |
int true_block = chunk_->LookupDestination(instr->true_block_id()); |
@@ -1658,7 +1659,7 @@ |
void LCodeGen::DoIsNull(LIsNull* instr) { |
- Register reg = ToRegister(instr->input()); |
+ Register reg = ToRegister(instr->InputAt(0)); |
Register result = ToRegister(instr->result()); |
__ LoadRoot(ip, Heap::kNullValueRootIndex); |
@@ -1693,7 +1694,7 @@ |
void LCodeGen::DoIsNullAndBranch(LIsNullAndBranch* instr) { |
Register scratch = scratch0(); |
- Register reg = ToRegister(instr->input()); |
+ Register reg = ToRegister(instr->InputAt(0)); |
// TODO(fsc): If the expression is known to be a smi, then it's |
// definitely not null. Jump to the false block. |
@@ -1747,7 +1748,7 @@ |
void LCodeGen::DoIsSmi(LIsSmi* instr) { |
ASSERT(instr->hydrogen()->value()->representation().IsTagged()); |
Register result = ToRegister(instr->result()); |
- Register input_reg = EmitLoadRegister(instr->input(), ip); |
+ Register input_reg = EmitLoadRegister(instr->InputAt(0), ip); |
__ tst(input_reg, Operand(kSmiTagMask)); |
__ LoadRoot(result, Heap::kTrueValueRootIndex); |
Label done; |
@@ -1761,32 +1762,12 @@ |
int true_block = chunk_->LookupDestination(instr->true_block_id()); |
int false_block = chunk_->LookupDestination(instr->false_block_id()); |
- Register input_reg = EmitLoadRegister(instr->input(), ip); |
+ Register input_reg = EmitLoadRegister(instr->InputAt(0), ip); |
__ tst(input_reg, Operand(kSmiTagMask)); |
EmitBranch(true_block, false_block, eq); |
} |
-InstanceType LHasInstanceType::TestType() { |
- InstanceType from = hydrogen()->from(); |
- InstanceType to = hydrogen()->to(); |
- if (from == FIRST_TYPE) return to; |
- ASSERT(from == to || to == LAST_TYPE); |
- return from; |
-} |
- |
- |
-Condition LHasInstanceType::BranchCondition() { |
- InstanceType from = hydrogen()->from(); |
- InstanceType to = hydrogen()->to(); |
- if (from == to) return eq; |
- if (to == LAST_TYPE) return hs; |
- if (from == FIRST_TYPE) return ls; |
- UNREACHABLE(); |
- return eq; |
-} |
- |
- |
static InstanceType TestType(HHasInstanceType* instr) { |
InstanceType from = instr->from(); |
InstanceType to = instr->to(); |
@@ -1808,7 +1789,7 @@ |
void LCodeGen::DoHasInstanceType(LHasInstanceType* instr) { |
- Register input = ToRegister(instr->input()); |
+ Register input = ToRegister(instr->InputAt(0)); |
Register result = ToRegister(instr->result()); |
ASSERT(instr->hydrogen()->value()->representation().IsTagged()); |
@@ -1826,7 +1807,7 @@ |
void LCodeGen::DoHasInstanceTypeAndBranch(LHasInstanceTypeAndBranch* instr) { |
Register scratch = scratch0(); |
- Register input = ToRegister(instr->input()); |
+ Register input = ToRegister(instr->InputAt(0)); |
int true_block = chunk_->LookupDestination(instr->true_block_id()); |
int false_block = chunk_->LookupDestination(instr->false_block_id()); |
@@ -1836,8 +1817,8 @@ |
__ tst(input, Operand(kSmiTagMask)); |
__ b(eq, false_label); |
- __ CompareObjectType(input, scratch, scratch, instr->TestType()); |
- EmitBranch(true_block, false_block, instr->BranchCondition()); |
+ __ CompareObjectType(input, scratch, scratch, TestType(instr->hydrogen())); |
+ EmitBranch(true_block, false_block, BranchCondition(instr->hydrogen())); |
} |
@@ -1910,7 +1891,7 @@ |
void LCodeGen::DoClassOfTest(LClassOfTest* instr) { |
- Register input = ToRegister(instr->input()); |
+ Register input = ToRegister(instr->InputAt(0)); |
Register result = ToRegister(instr->result()); |
ASSERT(input.is(result)); |
Handle<String> class_name = instr->hydrogen()->class_name(); |
@@ -1931,9 +1912,9 @@ |
void LCodeGen::DoClassOfTestAndBranch(LClassOfTestAndBranch* instr) { |
- Register input = ToRegister(instr->input()); |
+ Register input = ToRegister(instr->InputAt(0)); |
Register temp = scratch0(); |
- Register temp2 = ToRegister(instr->temporary()); |
+ Register temp2 = ToRegister(instr->TempAt(0)); |
Handle<String> class_name = instr->hydrogen()->class_name(); |
int true_block = chunk_->LookupDestination(instr->true_block_id()); |
@@ -1949,8 +1930,8 @@ |
void LCodeGen::DoCmpMapAndBranch(LCmpMapAndBranch* instr) { |
- Register reg = ToRegister(instr->input()); |
- Register temp = ToRegister(instr->temp()); |
+ Register reg = ToRegister(instr->InputAt(0)); |
+ Register temp = ToRegister(instr->TempAt(0)); |
int true_block = instr->true_block_id(); |
int false_block = instr->false_block_id(); |
@@ -1961,8 +1942,8 @@ |
void LCodeGen::DoInstanceOf(LInstanceOf* instr) { |
- ASSERT(ToRegister(instr->left()).is(r0)); // Object is in r0. |
- ASSERT(ToRegister(instr->right()).is(r1)); // Function is in r1. |
+ ASSERT(ToRegister(instr->InputAt(0)).is(r0)); // Object is in r0. |
+ ASSERT(ToRegister(instr->InputAt(1)).is(r1)); // Function is in r1. |
InstanceofStub stub(InstanceofStub::kArgsInRegisters); |
CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr); |
@@ -2000,8 +1981,8 @@ |
deferred = new DeferredInstanceOfKnownGlobal(this, instr); |
Label done, false_result; |
- Register object = ToRegister(instr->input()); |
- Register temp = ToRegister(instr->temp()); |
+ Register object = ToRegister(instr->InputAt(0)); |
+ Register temp = ToRegister(instr->TempAt(0)); |
Register result = ToRegister(instr->result()); |
ASSERT(object.is(r0)); |
@@ -2073,7 +2054,7 @@ |
// Get the temp register reserved by the instruction. This needs to be r4 as |
// its slot of the pushing of safepoint registers is used to communicate the |
// offset to the location of the map check. |
- Register temp = ToRegister(instr->temp()); |
+ Register temp = ToRegister(instr->TempAt(0)); |
ASSERT(temp.is(r4)); |
__ mov(InstanceofStub::right(), Operand(instr->function())); |
static const int kAdditionalDelta = 4; |
@@ -2169,7 +2150,7 @@ |
void LCodeGen::DoStoreGlobal(LStoreGlobal* instr) { |
- Register value = ToRegister(instr->input()); |
+ Register value = ToRegister(instr->InputAt(0)); |
__ mov(ip, Operand(Handle<Object>(instr->hydrogen()->cell()))); |
__ str(value, FieldMemOperand(ip, JSGlobalPropertyCell::kValueOffset)); |
} |
@@ -2184,7 +2165,7 @@ |
void LCodeGen::DoLoadNamedField(LLoadNamedField* instr) { |
- Register object = ToRegister(instr->input()); |
+ Register object = ToRegister(instr->InputAt(0)); |
Register result = ToRegister(instr->result()); |
if (instr->hydrogen()->is_in_object()) { |
__ ldr(result, FieldMemOperand(object, instr->hydrogen()->offset())); |
@@ -2251,8 +2232,8 @@ |
void LCodeGen::DoLoadElements(LLoadElements* instr) { |
- ASSERT(instr->result()->Equals(instr->input())); |
- Register reg = ToRegister(instr->input()); |
+ ASSERT(instr->result()->Equals(instr->InputAt(0))); |
+ Register reg = ToRegister(instr->InputAt(0)); |
Register scratch = scratch0(); |
__ ldr(reg, FieldMemOperand(reg, JSObject::kElementsOffset)); |
@@ -2333,7 +2314,7 @@ |
void LCodeGen::DoArgumentsLength(LArgumentsLength* instr) { |
- Register elem = ToRegister(instr->input()); |
+ Register elem = ToRegister(instr->InputAt(0)); |
Register result = ToRegister(instr->result()); |
Label done; |
@@ -2418,7 +2399,7 @@ |
void LCodeGen::DoPushArgument(LPushArgument* instr) { |
- LOperand* argument = instr->input(); |
+ LOperand* argument = instr->InputAt(0); |
if (argument->IsDoubleRegister() || argument->IsDoubleStackSlot()) { |
Abort("DoPushArgument not implemented for double type."); |
} else { |
@@ -2482,7 +2463,7 @@ |
void LCodeGen::DoDeferredMathAbsTaggedHeapNumber(LUnaryMathOperation* instr) { |
- Register input = ToRegister(instr->input()); |
+ Register input = ToRegister(instr->InputAt(0)); |
Register scratch = scratch0(); |
// Deoptimize if not a heap number. |
@@ -2545,7 +2526,7 @@ |
void LCodeGen::EmitIntegerMathAbs(LUnaryMathOperation* instr) { |
Label is_positive; |
uint32_t kSignMask = 0x80000000u; |
- Register input = ToRegister(instr->input()); |
+ Register input = ToRegister(instr->InputAt(0)); |
__ tst(input, Operand(kSignMask)); |
__ b(eq, &is_positive); |
__ rsb(input, input, Operand(0), SetCC); |
@@ -2569,10 +2550,10 @@ |
LUnaryMathOperation* instr_; |
}; |
- ASSERT(instr->input()->Equals(instr->result())); |
+ ASSERT(instr->InputAt(0)->Equals(instr->result())); |
Representation r = instr->hydrogen()->value()->representation(); |
if (r.IsDouble()) { |
- DwVfpRegister input = ToDoubleRegister(instr->input()); |
+ DwVfpRegister input = ToDoubleRegister(instr->InputAt(0)); |
// __ vabs(input, input); |
Abort("Double DoMathAbs unimplemented"); |
} else if (r.IsInteger32()) { |
@@ -2581,7 +2562,7 @@ |
// Representation is tagged. |
DeferredMathAbsTaggedHeapNumber* deferred = |
new DeferredMathAbsTaggedHeapNumber(this, instr); |
- Register input = ToRegister(instr->input()); |
+ Register input = ToRegister(instr->InputAt(0)); |
// Smi check. |
__ BranchOnNotSmi(input, deferred->entry()); |
// If smi, handle it directly. |
@@ -2592,9 +2573,9 @@ |
void LCodeGen::DoMathFloor(LUnaryMathOperation* instr) { |
- DoubleRegister input = ToDoubleRegister(instr->input()); |
+ DoubleRegister input = ToDoubleRegister(instr->InputAt(0)); |
Register result = ToRegister(instr->result()); |
- Register prev_fpscr = ToRegister(instr->temp()); |
+ Register prev_fpscr = ToRegister(instr->TempAt(0)); |
SwVfpRegister single_scratch = double_scratch0().low(); |
Register scratch = scratch0(); |
@@ -2636,7 +2617,7 @@ |
void LCodeGen::DoMathSqrt(LUnaryMathOperation* instr) { |
- DoubleRegister input = ToDoubleRegister(instr->input()); |
+ DoubleRegister input = ToDoubleRegister(instr->InputAt(0)); |
ASSERT(ToDoubleRegister(instr->result()).is(input)); |
__ vsqrt(input, input); |
} |
@@ -2712,7 +2693,7 @@ |
void LCodeGen::DoCallNew(LCallNew* instr) { |
- ASSERT(ToRegister(instr->input()).is(r1)); |
+ ASSERT(ToRegister(instr->InputAt(0)).is(r1)); |
ASSERT(ToRegister(instr->result()).is(r0)); |
Handle<Code> builtin(Builtins::builtin(Builtins::JSConstructCall)); |
@@ -2954,14 +2935,14 @@ |
void LCodeGen::DoStringLength(LStringLength* instr) { |
- Register string = ToRegister(instr->input()); |
+ Register string = ToRegister(instr->InputAt(0)); |
Register result = ToRegister(instr->result()); |
__ ldr(result, FieldMemOperand(string, String::kLengthOffset)); |
} |
void LCodeGen::DoInteger32ToDouble(LInteger32ToDouble* instr) { |
- LOperand* input = instr->input(); |
+ LOperand* input = instr->InputAt(0); |
ASSERT(input->IsRegister() || input->IsStackSlot()); |
LOperand* output = instr->result(); |
ASSERT(output->IsDoubleRegister()); |
@@ -2987,7 +2968,7 @@ |
LNumberTagI* instr_; |
}; |
- LOperand* input = instr->input(); |
+ LOperand* input = instr->InputAt(0); |
ASSERT(input->IsRegister() && input->Equals(instr->result())); |
Register reg = ToRegister(input); |
@@ -3000,7 +2981,7 @@ |
void LCodeGen::DoDeferredNumberTagI(LNumberTagI* instr) { |
Label slow; |
- Register reg = ToRegister(instr->input()); |
+ Register reg = ToRegister(instr->InputAt(0)); |
DoubleRegister dbl_scratch = d0; |
SwVfpRegister flt_scratch = s0; |
@@ -3057,11 +3038,11 @@ |
LNumberTagD* instr_; |
}; |
- DoubleRegister input_reg = ToDoubleRegister(instr->input()); |
+ DoubleRegister input_reg = ToDoubleRegister(instr->InputAt(0)); |
Register scratch = scratch0(); |
Register reg = ToRegister(instr->result()); |
- Register temp1 = ToRegister(instr->temp1()); |
- Register temp2 = ToRegister(instr->temp2()); |
+ Register temp1 = ToRegister(instr->TempAt(0)); |
+ Register temp2 = ToRegister(instr->TempAt(1)); |
DeferredNumberTagD* deferred = new DeferredNumberTagD(this, instr); |
if (FLAG_inline_new) { |
@@ -3094,7 +3075,7 @@ |
void LCodeGen::DoSmiTag(LSmiTag* instr) { |
- LOperand* input = instr->input(); |
+ LOperand* input = instr->InputAt(0); |
ASSERT(input->IsRegister() && input->Equals(instr->result())); |
ASSERT(!instr->hydrogen_value()->CheckFlag(HValue::kCanOverflow)); |
__ SmiTag(ToRegister(input)); |
@@ -3102,7 +3083,7 @@ |
void LCodeGen::DoSmiUntag(LSmiUntag* instr) { |
- LOperand* input = instr->input(); |
+ LOperand* input = instr->InputAt(0); |
ASSERT(input->IsRegister() && input->Equals(instr->result())); |
if (instr->needs_check()) { |
__ tst(ToRegister(input), Operand(kSmiTagMask)); |
@@ -3169,11 +3150,11 @@ |
void LCodeGen::DoDeferredTaggedToI(LTaggedToI* instr) { |
Label done; |
- Register input_reg = ToRegister(instr->input()); |
+ Register input_reg = ToRegister(instr->InputAt(0)); |
Register scratch = scratch0(); |
DoubleRegister dbl_scratch = d0; |
SwVfpRegister flt_scratch = s0; |
- DoubleRegister dbl_tmp = ToDoubleRegister(instr->temp()); |
+ DoubleRegister dbl_tmp = ToDoubleRegister(instr->TempAt(0)); |
// Heap number map check. |
__ ldr(scratch, FieldMemOperand(input_reg, HeapObject::kMapOffset)); |
@@ -3230,7 +3211,7 @@ |
void LCodeGen::DoTaggedToI(LTaggedToI* instr) { |
- LOperand* input = instr->input(); |
+ LOperand* input = instr->InputAt(0); |
ASSERT(input->IsRegister()); |
ASSERT(input->Equals(instr->result())); |
@@ -3250,7 +3231,7 @@ |
void LCodeGen::DoNumberUntagD(LNumberUntagD* instr) { |
- LOperand* input = instr->input(); |
+ LOperand* input = instr->InputAt(0); |
ASSERT(input->IsRegister()); |
LOperand* result = instr->result(); |
ASSERT(result->IsDoubleRegister()); |
@@ -3268,7 +3249,7 @@ |
void LCodeGen::DoCheckSmi(LCheckSmi* instr) { |
- LOperand* input = instr->input(); |
+ LOperand* input = instr->InputAt(0); |
ASSERT(input->IsRegister()); |
__ tst(ToRegister(input), Operand(kSmiTagMask)); |
DeoptimizeIf(instr->condition(), instr->environment()); |
@@ -3276,7 +3257,7 @@ |
void LCodeGen::DoCheckInstanceType(LCheckInstanceType* instr) { |
- Register input = ToRegister(instr->input()); |
+ Register input = ToRegister(instr->InputAt(0)); |
Register scratch = scratch0(); |
InstanceType first = instr->hydrogen()->first(); |
InstanceType last = instr->hydrogen()->last(); |
@@ -3300,8 +3281,8 @@ |
void LCodeGen::DoCheckFunction(LCheckFunction* instr) { |
- ASSERT(instr->input()->IsRegister()); |
- Register reg = ToRegister(instr->input()); |
+ ASSERT(instr->InputAt(0)->IsRegister()); |
+ Register reg = ToRegister(instr->InputAt(0)); |
__ cmp(reg, Operand(instr->hydrogen()->target())); |
DeoptimizeIf(ne, instr->environment()); |
} |
@@ -3309,7 +3290,7 @@ |
void LCodeGen::DoCheckMap(LCheckMap* instr) { |
Register scratch = scratch0(); |
- LOperand* input = instr->input(); |
+ LOperand* input = instr->InputAt(0); |
ASSERT(input->IsRegister()); |
Register reg = ToRegister(input); |
__ ldr(scratch, FieldMemOperand(reg, HeapObject::kMapOffset)); |
@@ -3332,8 +3313,8 @@ |
void LCodeGen::DoCheckPrototypeMaps(LCheckPrototypeMaps* instr) { |
- Register temp1 = ToRegister(instr->temp1()); |
- Register temp2 = ToRegister(instr->temp2()); |
+ Register temp1 = ToRegister(instr->TempAt(0)); |
+ Register temp2 = ToRegister(instr->TempAt(1)); |
Handle<JSObject> holder = instr->holder(); |
Handle<JSObject> current_prototype = instr->prototype(); |
@@ -3481,14 +3462,14 @@ |
void LCodeGen::DoTypeof(LTypeof* instr) { |
- Register input = ToRegister(instr->input()); |
+ Register input = ToRegister(instr->InputAt(0)); |
__ push(input); |
CallRuntime(Runtime::kTypeof, 1, instr); |
} |
void LCodeGen::DoTypeofIs(LTypeofIs* instr) { |
- Register input = ToRegister(instr->input()); |
+ Register input = ToRegister(instr->InputAt(0)); |
Register result = ToRegister(instr->result()); |
Label true_label; |
Label false_label; |
@@ -3511,7 +3492,7 @@ |
void LCodeGen::DoTypeofIsAndBranch(LTypeofIsAndBranch* instr) { |
- Register input = ToRegister(instr->input()); |
+ Register input = ToRegister(instr->InputAt(0)); |
int true_block = chunk_->LookupDestination(instr->true_block_id()); |
int false_block = chunk_->LookupDestination(instr->false_block_id()); |
Label* true_label = chunk_->GetAssemblyLabel(true_block); |