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
This commit is contained in:
parent
c26f2c32f9
commit
8b866d9c87
@ -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);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user