src/cpu/x86/vm/relocInfo_x86.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/cpu/x86/vm/relocInfo_x86.cpp	Fri Mar 25 19:58:42 2011
--- new/src/cpu/x86/vm/relocInfo_x86.cpp	Fri Mar 25 19:58:42 2011

*** 1,7 **** --- 1,7 ---- /* ! * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. ! * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 180,189 **** --- 180,190 ---- *(short*)ni->addr_at(0) = instrs[0]; } void poll_Relocation::fix_relocation_after_move(const CodeBuffer* src, CodeBuffer* dest) { #ifdef _LP64 + if (!Assembler::is_polling_page_far()) { typedef Assembler::WhichOperand WhichOperand; WhichOperand which = (WhichOperand) format(); // This format is imm but it is really disp32 which = Assembler::disp32_operand; address orig_addr = old_addr_for(addr(), src, dest);
*** 195,210 **** --- 196,212 ---- NativeInstruction* ni = nativeInstruction_at(addr()); intptr_t new_disp = poll_addr - (intptr_t) ni; int32_t* disp = (int32_t*) Assembler::locate_operand(addr(), which); * disp = (int32_t)new_disp; + } #endif // _LP64 } void poll_return_Relocation::fix_relocation_after_move(const CodeBuffer* src, CodeBuffer* dest) { #ifdef _LP64 + if (!Assembler::is_polling_page_far()) { typedef Assembler::WhichOperand WhichOperand; WhichOperand which = (WhichOperand) format(); // This format is imm but it is really disp32 which = Assembler::disp32_operand; address orig_addr = old_addr_for(addr(), src, dest);
*** 216,222 **** --- 218,225 ---- NativeInstruction* ni = nativeInstruction_at(addr()); intptr_t new_disp = poll_addr - (intptr_t) ni; int32_t* disp = (int32_t*) Assembler::locate_operand(addr(), which); * disp = (int32_t)new_disp; + } #endif // _LP64 }

src/cpu/x86/vm/relocInfo_x86.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File