Index: src/ia32/codegen-ia32.cc |
diff --git a/src/ia32/codegen-ia32.cc b/src/ia32/codegen-ia32.cc |
index 8135e85f197773c8ee1735db840a2bf28c0f543e..e260ab2d35ff033326a0e65d94719c0bfe7268b8 100644 |
--- a/src/ia32/codegen-ia32.cc |
+++ b/src/ia32/codegen-ia32.cc |
@@ -4544,6 +4544,17 @@ void CodeGenerator::GenerateObjectEquals(ZoneList<Expression*>* args) { |
} |
+void CodeGenerator::GenerateGetFramePointer(ZoneList<Expression*>* args) { |
+ ASSERT(args->length() == 0); |
+ ASSERT(kSmiTagSize == 1 && kSmiTag == 0); // shifting code depends on this |
+ Result ebp_as_smi = allocator_->Allocate(); |
+ ASSERT(ebp_as_smi.is_valid()); |
+ __ mov(ebp_as_smi.reg(), Operand(ebp)); |
+ __ shr(ebp_as_smi.reg(), kSmiTagSize); |
+ frame_->Push(&ebp_as_smi); |
+} |
+ |
+ |
void CodeGenerator::VisitCallRuntime(CallRuntime* node) { |
if (CheckForInlineRuntimeCall(node)) { |
return; |