Mercurial > hg > truffle
comparison src/cpu/x86/vm/c1_LIRAssembler_x86.cpp @ 1297:c466efa608d5
6932496: c1: deoptimization of jsr subroutine fails on sparcv9
Summary: store jsr ret bci as intptr constant in c1 debug info
Reviewed-by: never
author | roland |
---|---|
date | Fri, 05 Mar 2010 13:58:34 +0100 |
parents | 3cf667df43ef |
children | fc2c71045ada |
comparison
equal
deleted
inserted
replaced
1296:d8e270c4f609 | 1297:c466efa608d5 |
---|---|
626 assert(src->is_constant(), "should not call otherwise"); | 626 assert(src->is_constant(), "should not call otherwise"); |
627 assert(dest->is_register(), "should not call otherwise"); | 627 assert(dest->is_register(), "should not call otherwise"); |
628 LIR_Const* c = src->as_constant_ptr(); | 628 LIR_Const* c = src->as_constant_ptr(); |
629 | 629 |
630 switch (c->type()) { | 630 switch (c->type()) { |
631 case T_INT: { | 631 case T_INT: |
632 case T_ADDRESS: { | |
632 assert(patch_code == lir_patch_none, "no patching handled here"); | 633 assert(patch_code == lir_patch_none, "no patching handled here"); |
633 __ movl(dest->as_register(), c->as_jint()); | 634 __ movl(dest->as_register(), c->as_jint()); |
634 break; | 635 break; |
635 } | 636 } |
636 | 637 |
709 LIR_Const* c = src->as_constant_ptr(); | 710 LIR_Const* c = src->as_constant_ptr(); |
710 | 711 |
711 switch (c->type()) { | 712 switch (c->type()) { |
712 case T_INT: // fall through | 713 case T_INT: // fall through |
713 case T_FLOAT: | 714 case T_FLOAT: |
715 case T_ADDRESS: | |
714 __ movl(frame_map()->address_for_slot(dest->single_stack_ix()), c->as_jint_bits()); | 716 __ movl(frame_map()->address_for_slot(dest->single_stack_ix()), c->as_jint_bits()); |
715 break; | 717 break; |
716 | 718 |
717 case T_OBJECT: | 719 case T_OBJECT: |
718 __ movoop(frame_map()->address_for_slot(dest->single_stack_ix()), c->as_jobject()); | 720 __ movoop(frame_map()->address_for_slot(dest->single_stack_ix()), c->as_jobject()); |
744 | 746 |
745 int null_check_here = code_offset(); | 747 int null_check_here = code_offset(); |
746 switch (type) { | 748 switch (type) { |
747 case T_INT: // fall through | 749 case T_INT: // fall through |
748 case T_FLOAT: | 750 case T_FLOAT: |
751 case T_ADDRESS: | |
749 __ movl(as_Address(addr), c->as_jint_bits()); | 752 __ movl(as_Address(addr), c->as_jint_bits()); |
750 break; | 753 break; |
751 | 754 |
752 case T_OBJECT: // fall through | 755 case T_OBJECT: // fall through |
753 case T_ARRAY: | 756 case T_ARRAY: |