Mercurial > hg > truffle
comparison src/share/vm/classfile/classFileParser.cpp @ 1138:dd57230ba8fe
6893268: additional dynamic language related optimizations in C2
Summary: C2 needs some additional optimizations to be able to handle MethodHandle invokes and invokedynamic instructions at the best performance.
Reviewed-by: kvn, never
author | twisti |
---|---|
date | Tue, 05 Jan 2010 15:21:25 +0100 |
parents | 85f13cdfbc1d |
children | 4ce7240d622c |
comparison
equal
deleted
inserted
replaced
1137:97125851f396 | 1138:dd57230ba8fe |
---|---|
641 break; | 641 break; |
642 case T_BYTE: case T_CHAR: case T_SHORT: case T_BOOLEAN: case T_INT: | 642 case T_BYTE: case T_CHAR: case T_SHORT: case T_BOOLEAN: case T_INT: |
643 guarantee_property(value_type.is_int(), "Inconsistent constant value type in class file %s", CHECK); | 643 guarantee_property(value_type.is_int(), "Inconsistent constant value type in class file %s", CHECK); |
644 break; | 644 break; |
645 case T_OBJECT: | 645 case T_OBJECT: |
646 guarantee_property((cp->symbol_at(signature_index)->equals("Ljava/lang/String;", 18) | 646 guarantee_property((cp->symbol_at(signature_index)->equals("Ljava/lang/String;") |
647 && (value_type.is_string() || value_type.is_unresolved_string())), | 647 && (value_type.is_string() || value_type.is_unresolved_string())), |
648 "Bad string initial value in class file %s", CHECK); | 648 "Bad string initial value in class file %s", CHECK); |
649 break; | 649 break; |
650 default: | 650 default: |
651 classfile_parse_error( | 651 classfile_parse_error( |
1716 * sure that the oops can pass verification when this field is set. | 1716 * sure that the oops can pass verification when this field is set. |
1717 */ | 1717 */ |
1718 m->set_exception_table(exception_handlers()); | 1718 m->set_exception_table(exception_handlers()); |
1719 | 1719 |
1720 // Copy byte codes | 1720 // Copy byte codes |
1721 if (code_length > 0) { | 1721 m->set_code(code_start); |
1722 memcpy(m->code_base(), code_start, code_length); | |
1723 } | |
1724 | 1722 |
1725 // Copy line number table | 1723 // Copy line number table |
1726 if (linenumber_table != NULL) { | 1724 if (linenumber_table != NULL) { |
1727 memcpy(m->compressed_linenumber_table(), | 1725 memcpy(m->compressed_linenumber_table(), |
1728 linenumber_table->buffer(), linenumber_table_length); | 1726 linenumber_table->buffer(), linenumber_table_length); |