comparison src/cpu/x86/vm/frame_x86.cpp @ 1506:2338d41fbd81

6943304: remove tagged stack interpreter Reviewed-by: coleenp, never, gbenson
author twisti
date Fri, 30 Apr 2010 08:37:24 -0700
parents 18a389214829
children df736661d0c8
comparison
equal deleted inserted replaced
1505:0c5b3cf3c1f5 1506:2338d41fbd81
500 assert(is_interpreted_frame(), "must be interpreter frame"); 500 assert(is_interpreted_frame(), "must be interpreter frame");
501 methodOop method = interpreter_frame_method(); 501 methodOop method = interpreter_frame_method();
502 // When unpacking an optimized frame the frame pointer is 502 // When unpacking an optimized frame the frame pointer is
503 // adjusted with: 503 // adjusted with:
504 int diff = (method->max_locals() - method->size_of_parameters()) * 504 int diff = (method->max_locals() - method->size_of_parameters()) *
505 Interpreter::stackElementWords(); 505 Interpreter::stackElementWords;
506 return _fp == (fp - diff); 506 return _fp == (fp - diff);
507 } 507 }
508 508
509 void frame::pd_gc_epilog() { 509 void frame::pd_gc_epilog() {
510 // nothing done here now 510 // nothing done here now
540 // validate the method we'd find in this potential sender 540 // validate the method we'd find in this potential sender
541 if (!Universe::heap()->is_valid_method(m)) return false; 541 if (!Universe::heap()->is_valid_method(m)) return false;
542 542
543 // stack frames shouldn't be much larger than max_stack elements 543 // stack frames shouldn't be much larger than max_stack elements
544 544
545 if (fp() - sp() > 1024 + m->max_stack()*Interpreter::stackElementSize()) { 545 if (fp() - sp() > 1024 + m->max_stack()*Interpreter::stackElementSize) {
546 return false; 546 return false;
547 } 547 }
548 548
549 // validate bci/bcx 549 // validate bci/bcx
550 550
592 if (type == T_FLOAT || type == T_DOUBLE) { 592 if (type == T_FLOAT || type == T_DOUBLE) {
593 // QQQ seems like this code is equivalent on the two platforms 593 // QQQ seems like this code is equivalent on the two platforms
594 #ifdef AMD64 594 #ifdef AMD64
595 // This is times two because we do a push(ltos) after pushing XMM0 595 // This is times two because we do a push(ltos) after pushing XMM0
596 // and that takes two interpreter stack slots. 596 // and that takes two interpreter stack slots.
597 tos_addr += 2 * Interpreter::stackElementWords(); 597 tos_addr += 2 * Interpreter::stackElementWords;
598 #else 598 #else
599 tos_addr += 2; 599 tos_addr += 2;
600 #endif // AMD64 600 #endif // AMD64
601 } 601 }
602 } else { 602 } else {