Index: src/arm/full-codegen-arm.cc |
diff --git a/src/arm/full-codegen-arm.cc b/src/arm/full-codegen-arm.cc |
index 9956945f9a005440176e0aa0d54648510b2b2480..b362f12948f9624a474a2eaa3a8154e093f72c4b 100644 |
--- a/src/arm/full-codegen-arm.cc |
+++ b/src/arm/full-codegen-arm.cc |
@@ -2448,12 +2448,9 @@ void FullCodeGenerator::EmitVariableAssignment(Variable* var, |
// Const initializers need a write barrier. |
ASSERT(!var->IsParameter()); // No const parameters. |
if (var->IsStackLocal()) { |
- Label skip; |
__ ldr(r1, StackOperand(var)); |
__ CompareRoot(r1, Heap::kTheHoleValueRootIndex); |
- __ b(ne, &skip); |
- __ str(result_register(), StackOperand(var)); |
- __ bind(&skip); |
+ __ str(result_register(), StackOperand(var), eq); |
} else { |
ASSERT(var->IsContextSlot() || var->IsLookupSlot()); |
// Like var declarations, const declarations are hoisted to function |
@@ -3190,14 +3187,11 @@ void FullCodeGenerator::EmitIsConstructCall(CallRuntime* expr) { |
__ ldr(r2, MemOperand(fp, StandardFrameConstants::kCallerFPOffset)); |
// Skip the arguments adaptor frame if it exists. |
- Label check_frame_marker; |
__ ldr(r1, MemOperand(r2, StandardFrameConstants::kContextOffset)); |
__ cmp(r1, Operand(Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR))); |
- __ b(ne, &check_frame_marker); |
- __ ldr(r2, MemOperand(r2, StandardFrameConstants::kCallerFPOffset)); |
+ __ ldr(r2, MemOperand(r2, StandardFrameConstants::kCallerFPOffset), eq); |
// Check the marker in the calling frame. |
- __ bind(&check_frame_marker); |
__ ldr(r1, MemOperand(r2, StandardFrameConstants::kMarkerOffset)); |
__ cmp(r1, Operand(Smi::FromInt(StackFrame::CONSTRUCT))); |
PrepareForBailoutBeforeSplit(expr, true, if_true, if_false); |
@@ -3248,7 +3242,7 @@ void FullCodeGenerator::EmitArguments(CallRuntime* expr) { |
void FullCodeGenerator::EmitArgumentsLength(CallRuntime* expr) { |
ASSERT(expr->arguments()->length() == 0); |
- Label exit; |
+ |
// Get the number of formal parameters. |
__ mov(r0, Operand(Smi::FromInt(info_->scope()->num_parameters()))); |
@@ -3256,13 +3250,11 @@ void FullCodeGenerator::EmitArgumentsLength(CallRuntime* expr) { |
__ ldr(r2, MemOperand(fp, StandardFrameConstants::kCallerFPOffset)); |
__ ldr(r3, MemOperand(r2, StandardFrameConstants::kContextOffset)); |
__ cmp(r3, Operand(Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR))); |
- __ b(ne, &exit); |
// Arguments adaptor case: Read the arguments length from the |
// adaptor frame. |
- __ ldr(r0, MemOperand(r2, ArgumentsAdaptorFrameConstants::kLengthOffset)); |
+ __ ldr(r0, MemOperand(r2, ArgumentsAdaptorFrameConstants::kLengthOffset), eq); |
- __ bind(&exit); |
context()->Plug(r0); |
} |
@@ -3387,8 +3379,7 @@ void FullCodeGenerator::EmitValueOf(CallRuntime* expr) { |
__ JumpIfSmi(r0, &done); |
// If the object is not a value type, return the object. |
__ CompareObjectType(r0, r1, r1, JS_VALUE_TYPE); |
- __ b(ne, &done); |
- __ ldr(r0, FieldMemOperand(r0, JSValue::kValueOffset)); |
+ __ ldr(r0, FieldMemOperand(r0, JSValue::kValueOffset), eq); |
__ bind(&done); |
context()->Plug(r0); |