Index: src/ia32/builtins-ia32.cc |
diff --git a/src/ia32/builtins-ia32.cc b/src/ia32/builtins-ia32.cc |
index 141fccca7c7b5c25073fe9a52fde5d62fbbe01dc..53ade3a6c99310fbf8bc67e62dc8d6c1c696507a 100644 |
--- a/src/ia32/builtins-ia32.cc |
+++ b/src/ia32/builtins-ia32.cc |
@@ -69,7 +69,7 @@ void Builtins::Generate_Adaptor(MacroAssembler* masm, |
// JumpToExternalReference expects eax to contain the number of arguments |
// including the receiver and the extra arguments. |
- __ add(Operand(eax), Immediate(num_extra_args + 1)); |
+ __ add(eax, Immediate(num_extra_args + 1)); |
__ JumpToExternalReference(ExternalReference(id, masm->isolate())); |
} |
@@ -91,7 +91,7 @@ void Builtins::Generate_JSConstructCall(MacroAssembler* masm) { |
__ mov(ebx, FieldOperand(edi, JSFunction::kSharedFunctionInfoOffset)); |
__ mov(ebx, FieldOperand(ebx, SharedFunctionInfo::kConstructStubOffset)); |
__ lea(ebx, FieldOperand(ebx, Code::kHeaderSize)); |
- __ jmp(Operand(ebx)); |
+ __ jmp(ebx); |
// edi: called object |
// eax: number of arguments |
@@ -213,7 +213,7 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm, |
Operand(ebx, esi, times_pointer_size, JSObject::kHeaderSize)); |
// esi: offset of first field after pre-allocated fields |
if (FLAG_debug_code) { |
- __ cmp(esi, Operand(edi)); |
+ __ cmp(esi, edi); |
__ Assert(less_equal, |
"Unexpected number of pre-allocated property fields."); |
} |
@@ -229,7 +229,7 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm, |
// eax: initial map |
// ebx: JSObject |
// edi: start of next object |
- __ or_(Operand(ebx), Immediate(kHeapObjectTag)); |
+ __ or_(ebx, Immediate(kHeapObjectTag)); |
// Check if a non-empty properties array is needed. |
// Allocate and initialize a FixedArray if it is. |
@@ -240,10 +240,10 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm, |
__ movzx_b(edx, FieldOperand(eax, Map::kUnusedPropertyFieldsOffset)); |
__ movzx_b(ecx, |
FieldOperand(eax, Map::kPreAllocatedPropertyFieldsOffset)); |
- __ add(edx, Operand(ecx)); |
+ __ add(edx, ecx); |
// Calculate unused properties past the end of the in-object properties. |
__ movzx_b(ecx, FieldOperand(eax, Map::kInObjectPropertiesOffset)); |
- __ sub(edx, Operand(ecx)); |
+ __ sub(edx, ecx); |
// Done if no extra properties are to be allocated. |
__ j(zero, &allocated); |
__ Assert(positive, "Property allocation count failed."); |
@@ -282,9 +282,9 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm, |
__ jmp(&entry); |
__ bind(&loop); |
__ mov(Operand(eax, 0), edx); |
- __ add(Operand(eax), Immediate(kPointerSize)); |
+ __ add(eax, Immediate(kPointerSize)); |
__ bind(&entry); |
- __ cmp(eax, Operand(ecx)); |
+ __ cmp(eax, ecx); |
__ j(below, &loop); |
} |
@@ -292,7 +292,7 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm, |
// the JSObject |
// ebx: JSObject |
// edi: FixedArray |
- __ or_(Operand(edi), Immediate(kHeapObjectTag)); // add the heap tag |
+ __ or_(edi, Immediate(kHeapObjectTag)); // add the heap tag |
__ mov(FieldOperand(ebx, JSObject::kPropertiesOffset), edi); |
@@ -315,7 +315,7 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm, |
// edi: function (constructor) |
__ push(edi); |
__ CallRuntime(Runtime::kNewObject, 1); |
- __ mov(ebx, Operand(eax)); // store result in ebx |
+ __ mov(ebx, eax); // store result in ebx |
// New object allocated. |
// ebx: newly allocated object |
@@ -338,7 +338,7 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm, |
// Copy arguments and receiver to the expression stack. |
Label loop, entry; |
- __ mov(ecx, Operand(eax)); |
+ __ mov(ecx, eax); |
__ jmp(&entry); |
__ bind(&loop); |
__ push(Operand(ebx, ecx, times_4, 0)); |
@@ -443,9 +443,9 @@ static void Generate_JSEntryTrampolineHelper(MacroAssembler* masm, |
__ bind(&loop); |
__ mov(edx, Operand(ebx, ecx, times_4, 0)); // push parameter from argv |
__ push(Operand(edx, 0)); // dereference handle |
- __ inc(Operand(ecx)); |
+ __ inc(ecx); |
__ bind(&entry); |
- __ cmp(ecx, Operand(eax)); |
+ __ cmp(ecx, eax); |
__ j(not_equal, &loop); |
// Get the function from the stack and call it. |
@@ -502,7 +502,7 @@ void Builtins::Generate_LazyCompile(MacroAssembler* masm) { |
// Do a tail-call of the compiled function. |
__ lea(eax, FieldOperand(eax, Code::kHeaderSize)); |
- __ jmp(Operand(eax)); |
+ __ jmp(eax); |
} |
@@ -528,7 +528,7 @@ void Builtins::Generate_LazyRecompile(MacroAssembler* masm) { |
// Do a tail-call of the compiled function. |
__ lea(eax, FieldOperand(eax, Code::kHeaderSize)); |
- __ jmp(Operand(eax)); |
+ __ jmp(eax); |
} |
@@ -597,7 +597,7 @@ void Builtins::Generate_FunctionCall(MacroAssembler* masm) { |
// 1. Make sure we have at least one argument. |
{ Label done; |
- __ test(eax, Operand(eax)); |
+ __ test(eax, eax); |
__ j(not_zero, &done); |
__ pop(ebx); |
__ push(Immediate(factory->undefined_value())); |
@@ -716,11 +716,11 @@ void Builtins::Generate_FunctionCall(MacroAssembler* masm) { |
// 5a. Call non-function via tail call to CALL_NON_FUNCTION builtin, |
// or a function proxy via CALL_FUNCTION_PROXY. |
{ Label function, non_proxy; |
- __ test(edx, Operand(edx)); |
+ __ test(edx, edx); |
__ j(zero, &function); |
__ Set(ebx, Immediate(0)); |
__ SetCallKind(ecx, CALL_AS_METHOD); |
- __ cmp(Operand(edx), Immediate(1)); |
+ __ cmp(edx, Immediate(1)); |
__ j(not_equal, &non_proxy); |
__ pop(edx); // return address |
@@ -747,13 +747,13 @@ void Builtins::Generate_FunctionCall(MacroAssembler* masm) { |
__ mov(edx, FieldOperand(edi, JSFunction::kCodeEntryOffset)); |
__ SmiUntag(ebx); |
__ SetCallKind(ecx, CALL_AS_METHOD); |
- __ cmp(eax, Operand(ebx)); |
+ __ cmp(eax, ebx); |
__ j(not_equal, |
masm->isolate()->builtins()->ArgumentsAdaptorTrampoline()); |
ParameterCount expected(0); |
- __ InvokeCode(Operand(edx), expected, expected, JUMP_FUNCTION, |
- NullCallWrapper(), CALL_AS_METHOD); |
+ __ InvokeCode(edx, expected, expected, JUMP_FUNCTION, NullCallWrapper(), |
+ CALL_AS_METHOD); |
} |
@@ -777,14 +777,14 @@ void Builtins::Generate_FunctionApply(MacroAssembler* masm) { |
__ mov(edi, Operand::StaticVariable(real_stack_limit)); |
// Make ecx the space we have left. The stack might already be overflowed |
// here which will cause ecx to become negative. |
- __ mov(ecx, Operand(esp)); |
- __ sub(ecx, Operand(edi)); |
+ __ mov(ecx, esp); |
+ __ sub(ecx, edi); |
// Make edx the space we need for the array when it is unrolled onto the |
// stack. |
- __ mov(edx, Operand(eax)); |
+ __ mov(edx, eax); |
__ shl(edx, kPointerSizeLog2 - kSmiTagSize); |
// Check if the arguments will overflow the stack. |
- __ cmp(ecx, Operand(edx)); |
+ __ cmp(ecx, edx); |
__ j(greater, &okay); // Signed comparison. |
// Out of stack space. |
@@ -843,7 +843,7 @@ void Builtins::Generate_FunctionApply(MacroAssembler* masm) { |
__ bind(&call_to_object); |
__ push(ebx); |
__ InvokeBuiltin(Builtins::TO_OBJECT, CALL_FUNCTION); |
- __ mov(ebx, Operand(eax)); |
+ __ mov(ebx, eax); |
__ jmp(&push_receiver); |
// Use the current global receiver object as the receiver. |
@@ -879,7 +879,7 @@ void Builtins::Generate_FunctionApply(MacroAssembler* masm) { |
// Update the index on the stack and in register eax. |
__ mov(eax, Operand(ebp, kIndexOffset)); |
- __ add(Operand(eax), Immediate(1 << kSmiTagSize)); |
+ __ add(eax, Immediate(1 << kSmiTagSize)); |
__ mov(Operand(ebp, kIndexOffset), eax); |
__ bind(&entry); |
@@ -1005,9 +1005,9 @@ static void AllocateEmptyJSArray(MacroAssembler* masm, |
__ jmp(&entry); |
__ bind(&loop); |
__ mov(Operand(scratch1, 0), factory->the_hole_value()); |
- __ add(Operand(scratch1), Immediate(kPointerSize)); |
+ __ add(scratch1, Immediate(kPointerSize)); |
__ bind(&entry); |
- __ cmp(scratch1, Operand(scratch2)); |
+ __ cmp(scratch1, scratch2); |
__ j(below, &loop); |
} |
} |
@@ -1104,7 +1104,7 @@ static void AllocateJSArray(MacroAssembler* masm, |
__ bind(&loop); |
__ stos(); |
__ bind(&entry); |
- __ cmp(edi, Operand(elements_array_end)); |
+ __ cmp(edi, elements_array_end); |
__ j(below, &loop); |
__ bind(&done); |
} |
@@ -1142,7 +1142,7 @@ static void ArrayNativeCode(MacroAssembler* masm, |
__ push(eax); |
// Check for array construction with zero arguments. |
- __ test(eax, Operand(eax)); |
+ __ test(eax, eax); |
__ j(not_zero, &argc_one_or_more); |
__ bind(&empty_array); |
@@ -1169,7 +1169,7 @@ static void ArrayNativeCode(MacroAssembler* masm, |
__ j(not_equal, &argc_two_or_more); |
STATIC_ASSERT(kSmiTag == 0); |
__ mov(ecx, Operand(esp, (push_count + 1) * kPointerSize)); |
- __ test(ecx, Operand(ecx)); |
+ __ test(ecx, ecx); |
__ j(not_zero, ¬_empty_array); |
// The single argument passed is zero, so we jump to the code above used to |
@@ -1182,7 +1182,7 @@ static void ArrayNativeCode(MacroAssembler* masm, |
__ mov(eax, Operand(esp, i * kPointerSize)); |
__ mov(Operand(esp, (i + 1) * kPointerSize), eax); |
} |
- __ add(Operand(esp), Immediate(2 * kPointerSize)); // Drop two stack slots. |
+ __ add(esp, Immediate(2 * kPointerSize)); // Drop two stack slots. |
__ push(Immediate(0)); // Treat this as a call with argc of zero. |
__ jmp(&empty_array); |
@@ -1272,7 +1272,7 @@ static void ArrayNativeCode(MacroAssembler* masm, |
__ bind(&loop); |
__ mov(eax, Operand(edi, ecx, times_pointer_size, 0)); |
__ mov(Operand(edx, 0), eax); |
- __ add(Operand(edx), Immediate(kPointerSize)); |
+ __ add(edx, Immediate(kPointerSize)); |
__ bind(&entry); |
__ dec(ecx); |
__ j(greater_equal, &loop); |
@@ -1378,14 +1378,14 @@ void Builtins::Generate_StringConstructCode(MacroAssembler* masm) { |
if (FLAG_debug_code) { |
__ LoadGlobalFunction(Context::STRING_FUNCTION_INDEX, ecx); |
- __ cmp(edi, Operand(ecx)); |
+ __ cmp(edi, ecx); |
__ Assert(equal, "Unexpected String function"); |
} |
// Load the first argument into eax and get rid of the rest |
// (including the receiver). |
Label no_arguments; |
- __ test(eax, Operand(eax)); |
+ __ test(eax, eax); |
__ j(zero, &no_arguments); |
__ mov(ebx, Operand(esp, eax, times_pointer_size, 0)); |
__ pop(ecx); |
@@ -1495,7 +1495,7 @@ void Builtins::Generate_StringConstructCode(MacroAssembler* masm) { |
static void EnterArgumentsAdaptorFrame(MacroAssembler* masm) { |
__ push(ebp); |
- __ mov(ebp, Operand(esp)); |
+ __ mov(ebp, esp); |
// Store the arguments adaptor context sentinel. |
__ push(Immediate(Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR))); |
@@ -1539,7 +1539,7 @@ void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) { |
__ IncrementCounter(masm->isolate()->counters()->arguments_adaptors(), 1); |
Label enough, too_few; |
- __ cmp(eax, Operand(ebx)); |
+ __ cmp(eax, ebx); |
__ j(less, &too_few); |
__ cmp(ebx, SharedFunctionInfo::kDontAdaptArgumentsSentinel); |
__ j(equal, &dont_adapt_arguments); |
@@ -1557,8 +1557,8 @@ void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) { |
__ bind(©); |
__ inc(edi); |
__ push(Operand(eax, 0)); |
- __ sub(Operand(eax), Immediate(kPointerSize)); |
- __ cmp(edi, Operand(ebx)); |
+ __ sub(eax, Immediate(kPointerSize)); |
+ __ cmp(edi, ebx); |
__ j(less, ©); |
__ jmp(&invoke); |
} |
@@ -1571,17 +1571,17 @@ void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) { |
const int offset = StandardFrameConstants::kCallerSPOffset; |
__ lea(edi, Operand(ebp, eax, times_4, offset)); |
// ebx = expected - actual. |
- __ sub(ebx, Operand(eax)); |
+ __ sub(ebx, eax); |
// eax = -actual - 1 |
__ neg(eax); |
- __ sub(Operand(eax), Immediate(1)); |
+ __ sub(eax, Immediate(1)); |
Label copy; |
__ bind(©); |
__ inc(eax); |
__ push(Operand(edi, 0)); |
- __ sub(Operand(edi), Immediate(kPointerSize)); |
- __ test(eax, Operand(eax)); |
+ __ sub(edi, Immediate(kPointerSize)); |
+ __ test(eax, eax); |
__ j(not_zero, ©); |
// Fill remaining expected arguments with undefined values. |
@@ -1589,7 +1589,7 @@ void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) { |
__ bind(&fill); |
__ inc(eax); |
__ push(Immediate(masm->isolate()->factory()->undefined_value())); |
- __ cmp(eax, Operand(ebx)); |
+ __ cmp(eax, ebx); |
__ j(less, &fill); |
} |
@@ -1597,7 +1597,7 @@ void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) { |
__ bind(&invoke); |
// Restore function pointer. |
__ mov(edi, Operand(ebp, JavaScriptFrameConstants::kFunctionOffset)); |
- __ call(Operand(edx)); |
+ __ call(edx); |
// Leave frame and return. |
LeaveArgumentsAdaptorFrame(masm); |
@@ -1607,7 +1607,7 @@ void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) { |
// Dont adapt arguments. |
// ------------------------------------------- |
__ bind(&dont_adapt_arguments); |
- __ jmp(Operand(edx)); |
+ __ jmp(edx); |
} |
@@ -1649,7 +1649,7 @@ void Builtins::Generate_OnStackReplacement(MacroAssembler* masm) { |
// If the result was -1 it means that we couldn't optimize the |
// function. Just return and continue in the unoptimized version. |
Label skip; |
- __ cmp(Operand(eax), Immediate(Smi::FromInt(-1))); |
+ __ cmp(eax, Immediate(Smi::FromInt(-1))); |
__ j(not_equal, &skip, Label::kNear); |
__ ret(0); |