comparison src/cpu/x86/vm/frame_x86.cpp @ 1513:df736661d0c8

Merge
author jrose
date Tue, 11 May 2010 15:19:19 -0700
parents 615a9d95d265 2338d41fbd81
children c18cbe5936b8
comparison
equal deleted inserted replaced
1496:e8e83be27dd7 1513:df736661d0c8
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 {