Index: src/x64/macro-assembler-x64.cc |
diff --git a/src/x64/macro-assembler-x64.cc b/src/x64/macro-assembler-x64.cc |
index f7db250f9ec64b11dab52563cb93baf28c432e2c..63c41edf35e115c8f045eef3d6acb7505e84ab39 100644 |
--- a/src/x64/macro-assembler-x64.cc |
+++ b/src/x64/macro-assembler-x64.cc |
@@ -150,6 +150,17 @@ int MacroAssembler::LoadAddressSize(ExternalReference source) { |
} |
+void MacroAssembler::PushAddress(ExternalReference source) { |
+ int64_t address = reinterpret_cast<int64_t>(source.address()); |
+ if (is_int32(address) && !Serializer::enabled()) { |
+ push(Immediate(static_cast<int32_t>(address))); |
+ return; |
+ } |
+ LoadAddress(kScratchRegister, source); |
+ push(kScratchRegister); |
Erik Corry
2012/04/14 08:37:04
If we are emitting debug code we should zap the sc
Michael Starzinger
2012/04/16 10:53:55
Done.
|
+} |
+ |
+ |
void MacroAssembler::LoadRoot(Register destination, Heap::RootListIndex index) { |
ASSERT(root_array_available_); |
movq(destination, Operand(kRootRegister, |