Commit 8b866d9c authored by lrn@chromium.org's avatar lrn@chromium.org

Fix bug in test-macro-assembler-x64 which is the probable cause for hanging on Win64.

Review URL: http://codereview.chromium.org/6733024

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7348 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent c26f2c32
......@@ -45,11 +45,11 @@ MacroAssembler::MacroAssembler(void* buffer, int size)
generating_stub_(false),
allow_stub_calls_(true),
root_array_available_(true),
code_object_(HEAP->undefined_value()) {
code_object_(isolate()->heap()->undefined_value()) {
}
static intptr_t RootRegisterDelta(ExternalReference other, Isolate* isolate) {
static intptr_t RootRegisterDelta(ExternalReference other, Isolate* isolate) {
Address roots_register_value = kRootRegisterBias +
reinterpret_cast<Address>(isolate->heap()->roots_address());
intptr_t delta = other.address() - roots_register_value;
......
......@@ -95,6 +95,7 @@ typedef int (*F0)();
static void EntryCode(MacroAssembler* masm) {
// Smi constant register is callee save.
__ push(v8::internal::kSmiConstantRegister);
__ push(v8::internal::kRootRegister);
__ InitializeSmiConstantRegister();
__ InitializeRootRegister();
}
......@@ -106,6 +107,7 @@ static void ExitCode(MacroAssembler* masm) {
__ cmpq(rdx, v8::internal::kSmiConstantRegister);
__ movq(rdx, Immediate(-1));
__ cmovq(not_equal, rax, rdx);
__ pop(v8::internal::kRootRegister);
__ pop(v8::internal::kSmiConstantRegister);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment