Index: src/ia32/virtual-frame-ia32.h |
=================================================================== |
--- src/ia32/virtual-frame-ia32.h (revision 3859) |
+++ src/ia32/virtual-frame-ia32.h (working copy) |
@@ -28,6 +28,7 @@ |
#ifndef V8_IA32_VIRTUAL_FRAME_IA32_H_ |
#define V8_IA32_VIRTUAL_FRAME_IA32_H_ |
+#include "number-info.h" |
#include "register-allocator.h" |
#include "scopes.h" |
@@ -82,7 +83,8 @@ |
MacroAssembler* masm() { return cgen()->masm(); } |
// Create a duplicate of an existing valid frame element. |
- FrameElement CopyElementAt(int index); |
+ FrameElement CopyElementAt(int index, |
+ NumberInfo::Type info = NumberInfo::kUninitialized); |
// The number of elements on the virtual frame. |
int element_count() { return elements_.length(); } |
@@ -385,12 +387,15 @@ |
// Push an element on top of the expression stack and emit a |
// corresponding push instruction. |
- void EmitPush(Register reg); |
- void EmitPush(Operand operand); |
- void EmitPush(Immediate immediate); |
+ void EmitPush(Register reg, |
+ NumberInfo::Type info = NumberInfo::kUnknown); |
+ void EmitPush(Operand operand, |
+ NumberInfo::Type info = NumberInfo::kUnknown); |
+ void EmitPush(Immediate immediate, |
+ NumberInfo::Type info = NumberInfo::kUnknown); |
// Push an element on the virtual frame. |
- void Push(Register reg); |
+ void Push(Register reg, NumberInfo::Type info = NumberInfo::kUnknown); |
void Push(Handle<Object> value); |
void Push(Smi* value) { |
Push(Handle<Object> (value)); |
@@ -402,7 +407,7 @@ |
// This assert will trigger if you try to push the same value twice. |
ASSERT(result->is_valid()); |
if (result->is_register()) { |
- Push(result->reg()); |
+ Push(result->reg(), result->number_info()); |
} else { |
ASSERT(result->is_constant()); |
Push(result->handle()); |