< prev index next >

src/cpu/sparc/vm/abstractInterpreter_sparc.cpp

Print this page




 253     if (caller->is_interpreted_frame()) {
 254       tty->print("interpreted ");
 255     }
 256     tty->print_cr("caller fp=" INTPTR_FORMAT " sp=" INTPTR_FORMAT, p2i(caller->fp()), p2i(caller->sp()));
 257     tty->print_cr("save area = " INTPTR_FORMAT ", " INTPTR_FORMAT, p2i(caller->sp()), p2i(caller->sp() + 16));
 258     tty->print_cr("save area = " INTPTR_FORMAT ", " INTPTR_FORMAT, p2i(caller->fp()), p2i(caller->fp() + 16));
 259     tty->print_cr("interpreter fp=" INTPTR_FORMAT ", " INTPTR_FORMAT, p2i(interpreter_frame->fp()), p2i(interpreter_frame->sp()));
 260     tty->print_cr("save area = " INTPTR_FORMAT ", " INTPTR_FORMAT, p2i(interpreter_frame->sp()), p2i(interpreter_frame->sp() + 16));
 261     tty->print_cr("save area = " INTPTR_FORMAT ", " INTPTR_FORMAT, p2i(interpreter_frame->fp()), p2i(interpreter_frame->fp() + 16));
 262     tty->print_cr("Llocals = " INTPTR_FORMAT, p2i(locals));
 263     tty->print_cr("Lesp = " INTPTR_FORMAT, p2i(esp));
 264     tty->print_cr("Lmonitors = " INTPTR_FORMAT, p2i(monitors));
 265   }
 266 
 267   if (method->max_locals() > 0) {
 268     assert(locals < caller->sp() || locals >= (caller->sp() + 16), "locals in save area");
 269     assert(locals < caller->fp() || locals > (caller->fp() + 16), "locals in save area");
 270     assert(locals < interpreter_frame->sp() || locals > (interpreter_frame->sp() + 16), "locals in save area");
 271     assert(locals < interpreter_frame->fp() || locals >= (interpreter_frame->fp() + 16), "locals in save area");
 272   }
 273 #ifdef _LP64
 274   assert(*interpreter_frame->register_addr(I5_savedSP) & 1, "must be odd");
 275 #endif
 276 
 277   *interpreter_frame->register_addr(Lmethod)     = (intptr_t) method;
 278   *interpreter_frame->register_addr(Llocals)     = (intptr_t) locals;
 279   *interpreter_frame->register_addr(Lmonitors)   = (intptr_t) monitors;
 280   *interpreter_frame->register_addr(Lesp)        = (intptr_t) esp;
 281   // Llast_SP will be same as SP as there is no adapter space
 282   *interpreter_frame->register_addr(Llast_SP)    = (intptr_t) interpreter_frame->sp() - STACK_BIAS;
 283   *interpreter_frame->register_addr(LcpoolCache) = (intptr_t) method->constants()->cache();
 284   // save the mirror in the interpreter frame
 285   *interpreter_frame->interpreter_frame_mirror_addr() = method->method_holder()->java_mirror();
 286 #ifdef FAST_DISPATCH
 287   *interpreter_frame->register_addr(IdispatchTables) = (intptr_t) Interpreter::dispatch_table();
 288 #endif
 289 
 290 #ifdef ASSERT
 291   BasicObjectLock* mp = (BasicObjectLock*)monitors;
 292 
 293   assert(interpreter_frame->interpreter_frame_method() == method, "method matches");
 294   assert(interpreter_frame->interpreter_frame_local_at(9) == (intptr_t *)((intptr_t)locals - (9 * Interpreter::stackElementSize)), "locals match");
 295   assert(interpreter_frame->interpreter_frame_monitor_end()   == mp, "monitor_end matches");


 253     if (caller->is_interpreted_frame()) {
 254       tty->print("interpreted ");
 255     }
 256     tty->print_cr("caller fp=" INTPTR_FORMAT " sp=" INTPTR_FORMAT, p2i(caller->fp()), p2i(caller->sp()));
 257     tty->print_cr("save area = " INTPTR_FORMAT ", " INTPTR_FORMAT, p2i(caller->sp()), p2i(caller->sp() + 16));
 258     tty->print_cr("save area = " INTPTR_FORMAT ", " INTPTR_FORMAT, p2i(caller->fp()), p2i(caller->fp() + 16));
 259     tty->print_cr("interpreter fp=" INTPTR_FORMAT ", " INTPTR_FORMAT, p2i(interpreter_frame->fp()), p2i(interpreter_frame->sp()));
 260     tty->print_cr("save area = " INTPTR_FORMAT ", " INTPTR_FORMAT, p2i(interpreter_frame->sp()), p2i(interpreter_frame->sp() + 16));
 261     tty->print_cr("save area = " INTPTR_FORMAT ", " INTPTR_FORMAT, p2i(interpreter_frame->fp()), p2i(interpreter_frame->fp() + 16));
 262     tty->print_cr("Llocals = " INTPTR_FORMAT, p2i(locals));
 263     tty->print_cr("Lesp = " INTPTR_FORMAT, p2i(esp));
 264     tty->print_cr("Lmonitors = " INTPTR_FORMAT, p2i(monitors));
 265   }
 266 
 267   if (method->max_locals() > 0) {
 268     assert(locals < caller->sp() || locals >= (caller->sp() + 16), "locals in save area");
 269     assert(locals < caller->fp() || locals > (caller->fp() + 16), "locals in save area");
 270     assert(locals < interpreter_frame->sp() || locals > (interpreter_frame->sp() + 16), "locals in save area");
 271     assert(locals < interpreter_frame->fp() || locals >= (interpreter_frame->fp() + 16), "locals in save area");
 272   }

 273   assert(*interpreter_frame->register_addr(I5_savedSP) & 1, "must be odd");

 274 
 275   *interpreter_frame->register_addr(Lmethod)     = (intptr_t) method;
 276   *interpreter_frame->register_addr(Llocals)     = (intptr_t) locals;
 277   *interpreter_frame->register_addr(Lmonitors)   = (intptr_t) monitors;
 278   *interpreter_frame->register_addr(Lesp)        = (intptr_t) esp;
 279   // Llast_SP will be same as SP as there is no adapter space
 280   *interpreter_frame->register_addr(Llast_SP)    = (intptr_t) interpreter_frame->sp() - STACK_BIAS;
 281   *interpreter_frame->register_addr(LcpoolCache) = (intptr_t) method->constants()->cache();
 282   // save the mirror in the interpreter frame
 283   *interpreter_frame->interpreter_frame_mirror_addr() = method->method_holder()->java_mirror();
 284 #ifdef FAST_DISPATCH
 285   *interpreter_frame->register_addr(IdispatchTables) = (intptr_t) Interpreter::dispatch_table();
 286 #endif
 287 
 288 #ifdef ASSERT
 289   BasicObjectLock* mp = (BasicObjectLock*)monitors;
 290 
 291   assert(interpreter_frame->interpreter_frame_method() == method, "method matches");
 292   assert(interpreter_frame->interpreter_frame_local_at(9) == (intptr_t *)((intptr_t)locals - (9 * Interpreter::stackElementSize)), "locals match");
 293   assert(interpreter_frame->interpreter_frame_monitor_end()   == mp, "monitor_end matches");
< prev index next >