< prev index next >

src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp

Print this page
@@ -80,20 +80,31 @@
      bool     check_exceptions          // whether to check for pending exceptions after return
    );
  
    void call_VM_helper(Register oop_result, address entry_point, int number_of_arguments, bool check_exceptions = true);
  
+  public:
+ 
    enum KlassDecodeMode {
      KlassDecodeNone,
      KlassDecodeZero,
      KlassDecodeXor,
      KlassDecodeMovk
    };
  
-   KlassDecodeMode klass_decode_mode();
+   // Return the current narrow Klass pointer decode mode. Initialized on first call.
+   static KlassDecodeMode klass_decode_mode();
+ 
+   // Given an arbitrary base address, return the KlassDecodeMode that would be used. Return KlassDecodeNone
+   // if base address is not valid for encoding.
+   static KlassDecodeMode klass_decode_mode_for_base(address base);
+ 
+   // Returns a static string
+   static const char* describe_klass_decode_mode(KlassDecodeMode mode);
  
   private:
+ 
    static KlassDecodeMode _klass_decode_mode;
  
   public:
    MacroAssembler(CodeBuffer* code) : Assembler(code) {}
  
< prev index next >