< prev index next >

src/hotspot/cpu/aarch64/c1_CodeStubs_aarch64.cpp

Print this page
@@ -30,10 +30,11 @@
  #include "c1/c1_LIRAssembler.hpp"
  #include "c1/c1_MacroAssembler.hpp"
  #include "c1/c1_Runtime1.hpp"
  #include "classfile/javaClasses.hpp"
  #include "nativeInst_aarch64.hpp"
+ #include "runtime/objectMonitor.hpp"
  #include "runtime/sharedRuntime.hpp"
  #include "vmreg_aarch64.inline.hpp"
  
  
  #define __ ce->masm()->

@@ -251,10 +252,17 @@
    }
    __ adr(lr, _continuation);
    __ far_jump(RuntimeAddress(Runtime1::entry_for(exit_id)));
  }
  
+ void LoadKlassStub::emit_code(LIR_Assembler* ce) {
+   assert(UseCompactObjectHeaders, "Only use with compact object headers");
+   __ bind(_entry);
+   Register d = _result->as_register();
+   __ ldr(d, Address(d, OM_OFFSET_NO_MONITOR_VALUE_TAG(header)));
+   __ b(_continuation);
+ }
  
  // 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 >