1.1 --- a/src/cpu/x86/vm/relocInfo_x86.cpp Fri Aug 31 16:39:35 2012 -0700 1.2 +++ b/src/cpu/x86/vm/relocInfo_x86.cpp Sat Sep 01 13:25:18 2012 -0400 1.3 @@ -1,5 +1,5 @@ 1.4 /* 1.5 - * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved. 1.6 + * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved. 1.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 1.8 * 1.9 * This code is free software; you can redistribute it and/or modify it 1.10 @@ -47,12 +47,21 @@ 1.11 } 1.12 } else if (which == Assembler::narrow_oop_operand) { 1.13 address disp = Assembler::locate_operand(addr(), which); 1.14 + // both compressed oops and compressed classes look the same 1.15 + if (Universe::heap()->is_in_reserved((oop)x)) { 1.16 if (verify_only) { 1.17 assert(*(uint32_t*) disp == oopDesc::encode_heap_oop((oop)x), "instructions must match"); 1.18 } else { 1.19 *(int32_t*) disp = oopDesc::encode_heap_oop((oop)x); 1.20 } 1.21 } else { 1.22 + if (verify_only) { 1.23 + assert(*(uint32_t*) disp == oopDesc::encode_klass((Klass*)x), "instructions must match"); 1.24 + } else { 1.25 + *(int32_t*) disp = oopDesc::encode_klass((Klass*)x); 1.26 + } 1.27 + } 1.28 + } else { 1.29 // Note: Use runtime_call_type relocations for call32_operand. 1.30 address ip = addr(); 1.31 address disp = Assembler::locate_operand(ip, which); 1.32 @@ -239,3 +248,6 @@ 1.33 } 1.34 #endif // _LP64 1.35 } 1.36 + 1.37 +void metadata_Relocation::pd_fix_value(address x) { 1.38 +}