Index: src/ia32/macro-assembler-ia32.cc |
diff --git a/src/ia32/macro-assembler-ia32.cc b/src/ia32/macro-assembler-ia32.cc |
index 52d42f6ca87b47ab6ec7cbf59f47a7fcbe201d5d..6c3b2cc0c9d1994eda82807ec7beb5fc85a555e6 100644 |
--- a/src/ia32/macro-assembler-ia32.cc |
+++ b/src/ia32/macro-assembler-ia32.cc |
@@ -2455,23 +2455,6 @@ void MacroAssembler::JumpToExternalReference(const ExternalReference& ext) { |
} |
-void MacroAssembler::SetCallKind(Register dst, CallKind call_kind) { |
- // This macro takes the dst register to make the code more readable |
- // at the call sites. However, the dst register has to be ecx to |
- // follow the calling convention which requires the call type to be |
- // in ecx. |
- ASSERT(dst.is(ecx)); |
- if (call_kind == CALL_AS_FUNCTION) { |
- // Set to some non-zero smi by updating the least significant |
- // byte. |
- mov_b(dst, 1 << kSmiTagSize); |
- } else { |
- // Set to smi zero by clearing the register. |
- xor_(dst, dst); |
- } |
-} |
- |
- |
void MacroAssembler::InvokePrologue(const ParameterCount& expected, |
const ParameterCount& actual, |
Handle<Code> code_constant, |
@@ -2480,8 +2463,7 @@ void MacroAssembler::InvokePrologue(const ParameterCount& expected, |
bool* definitely_mismatches, |
InvokeFlag flag, |
Label::Distance done_near, |
- const CallWrapper& call_wrapper, |
- CallKind call_kind) { |
+ const CallWrapper& call_wrapper) { |
bool definitely_matches = false; |
*definitely_mismatches = false; |
Label invoke; |
@@ -2534,14 +2516,12 @@ void MacroAssembler::InvokePrologue(const ParameterCount& expected, |
if (flag == CALL_FUNCTION) { |
call_wrapper.BeforeCall(CallSize(adaptor, RelocInfo::CODE_TARGET)); |
- SetCallKind(ecx, call_kind); |
call(adaptor, RelocInfo::CODE_TARGET); |
call_wrapper.AfterCall(); |
if (!*definitely_mismatches) { |
jmp(done, done_near); |
} |
} else { |
- SetCallKind(ecx, call_kind); |
jmp(adaptor, RelocInfo::CODE_TARGET); |
} |
bind(&invoke); |
@@ -2553,8 +2533,7 @@ void MacroAssembler::InvokeCode(const Operand& code, |
const ParameterCount& expected, |
const ParameterCount& actual, |
InvokeFlag flag, |
- const CallWrapper& call_wrapper, |
- CallKind call_kind) { |
+ const CallWrapper& call_wrapper) { |
// You can't call a function without a valid frame. |
ASSERT(flag == JUMP_FUNCTION || has_frame()); |
@@ -2562,16 +2541,14 @@ void MacroAssembler::InvokeCode(const Operand& code, |
bool definitely_mismatches = false; |
InvokePrologue(expected, actual, Handle<Code>::null(), code, |
&done, &definitely_mismatches, flag, Label::kNear, |
- call_wrapper, call_kind); |
+ call_wrapper); |
if (!definitely_mismatches) { |
if (flag == CALL_FUNCTION) { |
call_wrapper.BeforeCall(CallSize(code)); |
- SetCallKind(ecx, call_kind); |
call(code); |
call_wrapper.AfterCall(); |
} else { |
ASSERT(flag == JUMP_FUNCTION); |
- SetCallKind(ecx, call_kind); |
jmp(code); |
} |
bind(&done); |
@@ -2584,8 +2561,7 @@ void MacroAssembler::InvokeCode(Handle<Code> code, |
const ParameterCount& actual, |
RelocInfo::Mode rmode, |
InvokeFlag flag, |
- const CallWrapper& call_wrapper, |
- CallKind call_kind) { |
+ const CallWrapper& call_wrapper) { |
// You can't call a function without a valid frame. |
ASSERT(flag == JUMP_FUNCTION || has_frame()); |
@@ -2593,16 +2569,14 @@ void MacroAssembler::InvokeCode(Handle<Code> code, |
Operand dummy(eax, 0); |
bool definitely_mismatches = false; |
InvokePrologue(expected, actual, code, dummy, &done, &definitely_mismatches, |
- flag, Label::kNear, call_wrapper, call_kind); |
+ flag, Label::kNear, call_wrapper); |
if (!definitely_mismatches) { |
if (flag == CALL_FUNCTION) { |
call_wrapper.BeforeCall(CallSize(code, rmode)); |
- SetCallKind(ecx, call_kind); |
call(code, rmode); |
call_wrapper.AfterCall(); |
} else { |
ASSERT(flag == JUMP_FUNCTION); |
- SetCallKind(ecx, call_kind); |
jmp(code, rmode); |
} |
bind(&done); |
@@ -2613,8 +2587,7 @@ void MacroAssembler::InvokeCode(Handle<Code> code, |
void MacroAssembler::InvokeFunction(Register fun, |
const ParameterCount& actual, |
InvokeFlag flag, |
- const CallWrapper& call_wrapper, |
- CallKind call_kind) { |
+ const CallWrapper& call_wrapper) { |
// You can't call a function without a valid frame. |
ASSERT(flag == JUMP_FUNCTION || has_frame()); |
@@ -2626,7 +2599,7 @@ void MacroAssembler::InvokeFunction(Register fun, |
ParameterCount expected(ebx); |
InvokeCode(FieldOperand(edi, JSFunction::kCodeEntryOffset), |
- expected, actual, flag, call_wrapper, call_kind); |
+ expected, actual, flag, call_wrapper); |
} |
@@ -2634,8 +2607,7 @@ void MacroAssembler::InvokeFunction(Register fun, |
const ParameterCount& expected, |
const ParameterCount& actual, |
InvokeFlag flag, |
- const CallWrapper& call_wrapper, |
- CallKind call_kind) { |
+ const CallWrapper& call_wrapper) { |
// You can't call a function without a valid frame. |
ASSERT(flag == JUMP_FUNCTION || has_frame()); |
@@ -2643,7 +2615,7 @@ void MacroAssembler::InvokeFunction(Register fun, |
mov(esi, FieldOperand(edi, JSFunction::kContextOffset)); |
InvokeCode(FieldOperand(edi, JSFunction::kCodeEntryOffset), |
- expected, actual, flag, call_wrapper, call_kind); |
+ expected, actual, flag, call_wrapper); |
} |
@@ -2651,10 +2623,9 @@ void MacroAssembler::InvokeFunction(Handle<JSFunction> function, |
const ParameterCount& expected, |
const ParameterCount& actual, |
InvokeFlag flag, |
- const CallWrapper& call_wrapper, |
- CallKind call_kind) { |
+ const CallWrapper& call_wrapper) { |
LoadHeapObject(edi, function); |
- InvokeFunction(edi, expected, actual, flag, call_wrapper, call_kind); |
+ InvokeFunction(edi, expected, actual, flag, call_wrapper); |
} |
@@ -2670,7 +2641,7 @@ void MacroAssembler::InvokeBuiltin(Builtins::JavaScript id, |
ParameterCount expected(0); |
GetBuiltinFunction(edi, id); |
InvokeCode(FieldOperand(edi, JSFunction::kCodeEntryOffset), |
- expected, expected, flag, call_wrapper, CALL_AS_METHOD); |
+ expected, expected, flag, call_wrapper); |
} |