< prev index next >

src/cpu/aarch64/vm/macroAssembler_aarch64.hpp

Print this page
rev 13107 : imported patch jvm_h


 924 // TODO: verify method and klass metadata (compare against vptr?)
 925   void _verify_method_ptr(Register reg, const char * msg, const char * file, int line) {}
 926   void _verify_klass_ptr(Register reg, const char * msg, const char * file, int line){}
 927 
 928 #define verify_method_ptr(reg) _verify_method_ptr(reg, "broken method " #reg, __FILE__, __LINE__)
 929 #define verify_klass_ptr(reg) _verify_klass_ptr(reg, "broken klass " #reg, __FILE__, __LINE__)
 930 
 931   // only if +VerifyFPU
 932   void verify_FPU(int stack_depth, const char* s = "illegal FPU state");
 933 
 934   // prints msg, dumps registers and stops execution
 935   void stop(const char* msg);
 936 
 937   // prints msg and continues
 938   void warn(const char* msg);
 939 
 940   static void debug64(char* msg, int64_t pc, int64_t regs[]);
 941 
 942   void untested()                                { stop("untested"); }
 943 
 944   void unimplemented(const char* what = "")      { char* b = new char[1024];  jio_snprintf(b, 1024, "unimplemented: %s", what);  stop(b); }
 945 
 946   void should_not_reach_here()                   { stop("should not reach here"); }
 947 
 948   // Stack overflow checking
 949   void bang_stack_with_offset(int offset) {
 950     // stack grows down, caller passes positive offset
 951     assert(offset > 0, "must bang with negative offset");
 952     mov(rscratch2, -offset);
 953     str(zr, Address(sp, rscratch2));
 954   }
 955 
 956   // Writes to stack successive pages until offset reached to check for
 957   // stack overflow + shadow pages.  Also, clobbers tmp
 958   void bang_stack_size(Register size, Register tmp);
 959 
 960   // Check for reserved stack access in method being exited (for JIT)
 961   void reserved_stack_check();
 962 
 963   virtual RegisterOrConstant delayed_value_impl(intptr_t* delayed_value_addr,
 964                                                 Register tmp,




 924 // TODO: verify method and klass metadata (compare against vptr?)
 925   void _verify_method_ptr(Register reg, const char * msg, const char * file, int line) {}
 926   void _verify_klass_ptr(Register reg, const char * msg, const char * file, int line){}
 927 
 928 #define verify_method_ptr(reg) _verify_method_ptr(reg, "broken method " #reg, __FILE__, __LINE__)
 929 #define verify_klass_ptr(reg) _verify_klass_ptr(reg, "broken klass " #reg, __FILE__, __LINE__)
 930 
 931   // only if +VerifyFPU
 932   void verify_FPU(int stack_depth, const char* s = "illegal FPU state");
 933 
 934   // prints msg, dumps registers and stops execution
 935   void stop(const char* msg);
 936 
 937   // prints msg and continues
 938   void warn(const char* msg);
 939 
 940   static void debug64(char* msg, int64_t pc, int64_t regs[]);
 941 
 942   void untested()                                { stop("untested"); }
 943 
 944   void unimplemented(const char* what = "");
 945 
 946   void should_not_reach_here()                   { stop("should not reach here"); }
 947 
 948   // Stack overflow checking
 949   void bang_stack_with_offset(int offset) {
 950     // stack grows down, caller passes positive offset
 951     assert(offset > 0, "must bang with negative offset");
 952     mov(rscratch2, -offset);
 953     str(zr, Address(sp, rscratch2));
 954   }
 955 
 956   // Writes to stack successive pages until offset reached to check for
 957   // stack overflow + shadow pages.  Also, clobbers tmp
 958   void bang_stack_size(Register size, Register tmp);
 959 
 960   // Check for reserved stack access in method being exited (for JIT)
 961   void reserved_stack_check();
 962 
 963   virtual RegisterOrConstant delayed_value_impl(intptr_t* delayed_value_addr,
 964                                                 Register tmp,


< prev index next >