1.1 --- a/src/cpu/x86/vm/x86_32.ad Mon Nov 14 18:38:03 2011 -0800 1.2 +++ b/src/cpu/x86/vm/x86_32.ad Wed Nov 16 01:39:50 2011 -0800 1.3 @@ -507,9 +507,12 @@ 1.4 1.5 1.6 //============================================================================= 1.7 -const bool Matcher::constant_table_absolute_addressing = true; 1.8 const RegMask& MachConstantBaseNode::_out_RegMask = RegMask::Empty; 1.9 1.10 +int Compile::ConstantTable::calculate_table_base_offset() const { 1.11 + return 0; // absolute addressing, no offset 1.12 +} 1.13 + 1.14 void MachConstantBaseNode::emit(CodeBuffer& cbuf, PhaseRegAlloc* ra_) const { 1.15 // Empty encoding 1.16 } 1.17 @@ -639,6 +642,12 @@ 1.18 } 1.19 #endif 1.20 1.21 + if (C->has_mach_constant_base_node()) { 1.22 + // NOTE: We set the table base offset here because users might be 1.23 + // emitted before MachConstantBaseNode. 1.24 + Compile::ConstantTable& constant_table = C->constant_table(); 1.25 + constant_table.set_table_base_offset(constant_table.calculate_table_base_offset()); 1.26 + } 1.27 } 1.28 1.29 uint MachPrologNode::size(PhaseRegAlloc *ra_) const {