Index: src/ia32/codegen-ia32.cc |
=================================================================== |
--- src/ia32/codegen-ia32.cc (revision 3694) |
+++ src/ia32/codegen-ia32.cc (working copy) |
@@ -741,14 +741,14 @@ |
} |
-enum ArgLocation { |
- ARGS_ON_STACK, |
- ARGS_IN_REGISTERS |
-}; |
+class FloatingPointHelper : public AllStatic { |
+ public: |
+ enum ArgLocation { |
+ ARGS_ON_STACK, |
+ ARGS_IN_REGISTERS |
+ }; |
-class FloatingPointHelper : public AllStatic { |
- public: |
// Code pattern for loading a floating point value. Input value must |
// be either a smi or a heap number object (fp value). Requirements: |
// operand in register number. Returns operand as floating point number |
@@ -7077,7 +7077,7 @@ |
void GenericBinaryOpStub::GenerateSmiCode(MacroAssembler* masm, Label* slow) { |
- if (HasArgumentsInRegisters()) { |
+ if (HasArgsInRegisters()) { |
__ mov(ebx, eax); |
__ mov(eax, edx); |
} else { |
@@ -7249,16 +7249,18 @@ |
case Token::DIV: { |
Label after_alloc_failure; |
- ArgLocation arg_location = |
+ FloatingPointHelper::ArgLocation arg_location = |
(op_ == Token::ADD || op_ == Token::SUB) ? |
- ARGS_IN_REGISTERS : |
- ARGS_ON_STACK; |
+ FloatingPointHelper::ARGS_IN_REGISTERS : |
+ FloatingPointHelper::ARGS_ON_STACK; |
__ AllocateHeapNumber( |
edx, |
ecx, |
no_reg, |
- arg_location == ARGS_IN_REGISTERS ? &after_alloc_failure : slow); |
+ arg_location == FloatingPointHelper::ARGS_IN_REGISTERS ? |
+ &after_alloc_failure : |
+ slow); |
if (CpuFeatures::IsSupported(SSE2)) { |
CpuFeatures::Scope use_sse2(SSE2); |
@@ -7285,13 +7287,15 @@ |
__ mov(eax, edx); |
GenerateReturn(masm); |
- if (arg_location == ARGS_IN_REGISTERS) { |
+ if (arg_location == FloatingPointHelper::ARGS_IN_REGISTERS) { |
__ bind(&after_alloc_failure); |
__ mov(edx, eax); |
__ mov(eax, ebx); |
__ jmp(slow); |
} |
+ break; |
} |
+ |
case Token::BIT_OR: |
case Token::BIT_AND: |
case Token::BIT_XOR: |
@@ -7375,7 +7379,10 @@ |
GenerateReturn(masm); |
} else { // SSE2 not available, use FPU. |
FloatingPointHelper::CheckFloatOperands(masm, &call_runtime, ebx); |
- FloatingPointHelper::LoadFloatOperands(masm, ecx, ARGS_IN_REGISTERS); |
+ FloatingPointHelper::LoadFloatOperands( |
+ masm, |
+ ecx, |
+ FloatingPointHelper::ARGS_IN_REGISTERS); |
switch (op_) { |
case Token::ADD: __ faddp(1); break; |
case Token::SUB: __ fsubp(1); break; |
@@ -7469,9 +7476,9 @@ |
// result. If arguments was passed in registers now place them on the |
// stack in the correct order below the return address. |
__ bind(&call_runtime); |
- if (HasArgumentsInRegisters()) { |
+ if (HasArgsInRegisters()) { |
__ pop(ecx); |
- if (HasArgumentsReversed()) { |
+ if (HasArgsReversed()) { |
__ push(eax); |
__ push(edx); |
} else { |
@@ -7503,10 +7510,10 @@ |
// Only first argument is a string. |
__ bind(&string1); |
__ InvokeBuiltin( |
- HasArgumentsReversed() ? |
+ HasArgsReversed() ? |
Builtins::STRING_ADD_RIGHT : |
Builtins::STRING_ADD_LEFT, |
- JUMP_FUNCTION); |
+ JUMP_FUNCTION); |
// First argument was not a string, test second. |
__ bind(¬_string1); |
@@ -7517,10 +7524,10 @@ |
// Only second argument is a string. |
__ InvokeBuiltin( |
- HasArgumentsReversed() ? |
+ HasArgsReversed() ? |
Builtins::STRING_ADD_LEFT : |
Builtins::STRING_ADD_RIGHT, |
- JUMP_FUNCTION); |
+ JUMP_FUNCTION); |
__ bind(¬_strings); |
// Neither argument is a string. |
@@ -7567,7 +7574,7 @@ |
Label* alloc_failure) { |
Label skip_allocation; |
OverwriteMode mode = mode_; |
- if (HasArgumentsReversed()) { |
+ if (HasArgsReversed()) { |
if (mode == OVERWRITE_RIGHT) { |
mode = OVERWRITE_LEFT; |
} else if (mode == OVERWRITE_LEFT) { |
@@ -7613,7 +7620,7 @@ |
void GenericBinaryOpStub::GenerateLoadArguments(MacroAssembler* masm) { |
// If arguments are not passed in registers read them from the stack. |
- if (!HasArgumentsInRegisters()) { |
+ if (!HasArgsInRegisters()) { |
__ mov(eax, Operand(esp, 1 * kPointerSize)); |
__ mov(edx, Operand(esp, 2 * kPointerSize)); |
} |
@@ -7623,7 +7630,7 @@ |
void GenericBinaryOpStub::GenerateReturn(MacroAssembler* masm) { |
// If arguments are not passed in registers remove them from the stack before |
// returning. |
- if (!HasArgumentsInRegisters()) { |
+ if (!HasArgsInRegisters()) { |
__ ret(2 * kPointerSize); // Remove both operands |
} else { |
__ ret(0); |