< prev index next >

src/hotspot/cpu/x86/c1_CodeStubs_x86.cpp

Print this page
@@ -28,10 +28,11 @@
  #include "c1/c1_LIRAssembler.hpp"
  #include "c1/c1_MacroAssembler.hpp"
  #include "c1/c1_Runtime1.hpp"
  #include "classfile/javaClasses.hpp"
  #include "nativeInst_x86.hpp"
+ #include "runtime/objectMonitor.hpp"
  #include "runtime/sharedRuntime.hpp"
  #include "utilities/align.hpp"
  #include "utilities/macros.hpp"
  #include "vmreg_x86.inline.hpp"
  

@@ -276,10 +277,21 @@
    }
    __ call(RuntimeAddress(Runtime1::entry_for(exit_id)));
    __ jmp(_continuation);
  }
  
+ void LoadKlassStub::emit_code(LIR_Assembler* ce) {
+   assert(UseCompactObjectHeaders, "only with compact headers");
+   __ bind(_entry);
+ #ifdef _LP64
+   Register d = _result->as_register();
+   __ movq(d, Address(d, OM_OFFSET_NO_MONITOR_VALUE_TAG(header)));
+   __ jmp(_continuation);
+ #else
+   __ should_not_reach_here();
+ #endif
+ }
  
  // Implementation of patching:
  // - Copy the code at given offset to an inlined buffer (first the bytes, then the number of bytes)
  // - Replace original code with a call to the stub
  // At Runtime:
< prev index next >