comparison src/share/vm/prims/methodHandleWalk.cpp @ 1565:ab102d5d923e

6939207: refactor constant pool index processing Summary: Factored cleanup of instruction decode which prepares for enhanced ldc semantics. Reviewed-by: twisti
author jrose
date Sun, 23 May 2010 01:38:26 -0700
parents cd5dbf694d45
children e9ff18c4ace7
comparison
equal deleted inserted replaced
1564:61b2245abf36 1565:ab102d5d923e
730 case Bytecodes::_lreturn: 730 case Bytecodes::_lreturn:
731 case Bytecodes::_freturn: 731 case Bytecodes::_freturn:
732 case Bytecodes::_dreturn: 732 case Bytecodes::_dreturn:
733 case Bytecodes::_areturn: 733 case Bytecodes::_areturn:
734 case Bytecodes::_return: 734 case Bytecodes::_return:
735 assert(strcmp(Bytecodes::format(op), "b") == 0, "wrong bytecode format"); 735 assert(Bytecodes::format_bits(op, false) == Bytecodes::_fmt_b, "wrong bytecode format");
736 _bytecode.push(op); 736 _bytecode.push(op);
737 break; 737 break;
738 738
739 // bi 739 // bi
740 case Bytecodes::_ldc: 740 case Bytecodes::_ldc:
746 case Bytecodes::_istore: 746 case Bytecodes::_istore:
747 case Bytecodes::_lstore: 747 case Bytecodes::_lstore:
748 case Bytecodes::_fstore: 748 case Bytecodes::_fstore:
749 case Bytecodes::_dstore: 749 case Bytecodes::_dstore:
750 case Bytecodes::_astore: 750 case Bytecodes::_astore:
751 assert(strcmp(Bytecodes::format(op), "bi") == 0, "wrong bytecode format"); 751 assert(Bytecodes::format_bits(op, false) == Bytecodes::_fmt_bi, "wrong bytecode format");
752 assert((char) index == index, "index does not fit in 8-bit"); 752 assert((char) index == index, "index does not fit in 8-bit");
753 _bytecode.push(op); 753 _bytecode.push(op);
754 _bytecode.push(index); 754 _bytecode.push(index);
755 break; 755 break;
756 756
757 // bii 757 // bii
758 case Bytecodes::_ldc2_w: 758 case Bytecodes::_ldc2_w:
759 case Bytecodes::_checkcast: 759 case Bytecodes::_checkcast:
760 assert(strcmp(Bytecodes::format(op), "bii") == 0, "wrong bytecode format"); 760 assert(Bytecodes::format_bits(op, false) == Bytecodes::_fmt_bkk, "wrong bytecode format");
761 assert((short) index == index, "index does not fit in 16-bit"); 761 assert((short) index == index, "index does not fit in 16-bit");
762 _bytecode.push(op); 762 _bytecode.push(op);
763 _bytecode.push(index >> 8); 763 _bytecode.push(index >> 8);
764 _bytecode.push(index); 764 _bytecode.push(index);
765 break; 765 break;
766 766
767 // bjj 767 // bJJ
768 case Bytecodes::_invokestatic: 768 case Bytecodes::_invokestatic:
769 case Bytecodes::_invokespecial: 769 case Bytecodes::_invokespecial:
770 case Bytecodes::_invokevirtual: 770 case Bytecodes::_invokevirtual:
771 assert(strcmp(Bytecodes::format(op), "bjj") == 0, "wrong bytecode format"); 771 assert(Bytecodes::format_bits(op, false) == Bytecodes::_fmt_bJJ, "wrong bytecode format");
772 assert((short) index == index, "index does not fit in 16-bit"); 772 assert((short) index == index, "index does not fit in 16-bit");
773 _bytecode.push(op); 773 _bytecode.push(op);
774 _bytecode.push(index >> 8); 774 _bytecode.push(index >> 8);
775 _bytecode.push(index); 775 _bytecode.push(index);
776 break; 776 break;