Index: src/x64/virtual-frame-x64.h |
=================================================================== |
--- src/x64/virtual-frame-x64.h (revision 3859) |
+++ src/x64/virtual-frame-x64.h (working copy) |
@@ -28,6 +28,7 @@ |
#ifndef V8_X64_VIRTUAL_FRAME_X64_H_ |
#define V8_X64_VIRTUAL_FRAME_X64_H_ |
+#include "number-info.h" |
#include "register-allocator.h" |
#include "scopes.h" |
@@ -81,7 +82,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(); } |
@@ -380,16 +382,20 @@ |
// Push an element on top of the expression stack and emit a |
// corresponding push instruction. |
- void EmitPush(Register reg); |
- void EmitPush(const Operand& operand); |
- void EmitPush(Heap::RootListIndex index); |
- void EmitPush(Immediate immediate); |
+ void EmitPush(Register reg, |
+ NumberInfo::Type info = NumberInfo::kUnknown); |
+ void EmitPush(const Operand& operand, |
+ NumberInfo::Type info = NumberInfo::kUnknown); |
+ void EmitPush(Heap::RootListIndex index, |
+ NumberInfo::Type info = NumberInfo::kUnknown); |
+ void EmitPush(Immediate immediate, |
+ NumberInfo::Type info = NumberInfo::kUnknown); |
void EmitPush(Smi* value); |
// Uses kScratchRegister, emits appropriate relocation info. |
void EmitPush(Handle<Object> value); |
// 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)); } |
@@ -397,7 +403,7 @@ |
// frame). |
void Push(Result* result) { |
if (result->is_register()) { |
- Push(result->reg()); |
+ Push(result->reg(), result->number_info()); |
} else { |
ASSERT(result->is_constant()); |
Push(result->handle()); |