Index: src/ia32/macro-assembler-ia32.cc |
diff --git a/src/ia32/macro-assembler-ia32.cc b/src/ia32/macro-assembler-ia32.cc |
index 83c7ce891758b9ca68091d18dad3dd3404dc70da..5a8473266cfdd187195e4a25145a1b182ce47930 100644 |
--- a/src/ia32/macro-assembler-ia32.cc |
+++ b/src/ia32/macro-assembler-ia32.cc |
@@ -2180,7 +2180,9 @@ void MacroAssembler::CallRuntime(const Runtime::Function* f, |
// arguments passed in because it is constant. At some point we |
// should remove this need and make the runtime routine entry code |
// smarter. |
- Move(eax, Immediate(num_arguments)); |
+ if (num_arguments >= 0) { |
+ Move(eax, Immediate(num_arguments)); |
+ } |
mov(ebx, Immediate(ExternalReference(f, isolate()))); |
CEntryStub ces(isolate(), 1, save_doubles); |
CallStub(&ces); |