| 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);
|
| }
|
|
|
|
|
|
|