Index: src/ia32/macro-assembler-ia32.cc |
=================================================================== |
--- src/ia32/macro-assembler-ia32.cc (revision 3744) |
+++ src/ia32/macro-assembler-ia32.cc (working copy) |
@@ -1098,10 +1098,14 @@ |
return; |
} |
- Runtime::FunctionId function_id = |
- static_cast<Runtime::FunctionId>(f->stub_id); |
- RuntimeStub stub(function_id, num_arguments); |
- CallStub(&stub); |
+ // TODO(1236192): Most runtime routines don't need the number of |
+ // arguments passed in because it is constant. At some point we |
+ // should remove this need and make the runtime routine entry code |
+ // smarter. |
+ Set(eax, Immediate(num_arguments)); |
+ mov(ebx, Immediate(ExternalReference(f))); |
+ CEntryStub ces(1); |
+ CallStub(&ces); |
} |
@@ -1114,10 +1118,14 @@ |
return Heap::undefined_value(); |
} |
- Runtime::FunctionId function_id = |
- static_cast<Runtime::FunctionId>(f->stub_id); |
- RuntimeStub stub(function_id, num_arguments); |
- return TryCallStub(&stub); |
+ // TODO(1236192): Most runtime routines don't need the number of |
+ // arguments passed in because it is constant. At some point we |
+ // should remove this need and make the runtime routine entry code |
+ // smarter. |
+ Set(eax, Immediate(num_arguments)); |
+ mov(ebx, Immediate(ExternalReference(f))); |
+ CEntryStub ces(1); |
+ return TryCallStub(&ces); |
} |