comparison src/share/vm/graal/graalCompilerToVM.cpp @ 11519:a3b39ab7c453

Make is_rewritten a guarantee in initializeBytecode
author Gilles Duboscq <duboscq@ssw.jku.at>
date Tue, 03 Sep 2013 18:02:29 +0200
parents 8d4e5e08d83f
children 7cca436d600b
comparison
equal deleted inserted replaced
11518:9ea3658e7c5d 11519:a3b39ab7c453
64 ResourceMark rm; 64 ResourceMark rm;
65 65
66 int code_size = method->code_size(); 66 int code_size = method->code_size();
67 jbyte* reconstituted_code = NEW_RESOURCE_ARRAY(jbyte, code_size); 67 jbyte* reconstituted_code = NEW_RESOURCE_ARRAY(jbyte, code_size);
68 68
69 bool is_rewritten = method->method_holder()->is_rewritten(); 69 guarantee(method->method_holder()->is_rewritten(), "Method's holder should be rewritten");
70 // iterate over all bytecodes and replace non-Java bytecodes 70 // iterate over all bytecodes and replace non-Java bytecodes
71 71
72 for (BytecodeStream s(method); s.next() != Bytecodes::_illegal; ) { 72 for (BytecodeStream s(method); s.next() != Bytecodes::_illegal; ) {
73 Bytecodes::Code code = s.code(); 73 Bytecodes::Code code = s.code();
74 Bytecodes::Code raw_code = s.raw_code(); 74 Bytecodes::Code raw_code = s.raw_code();
79 reconstituted_code[bci] = (jbyte) (s.is_wide()? Bytecodes::_wide : code); 79 reconstituted_code[bci] = (jbyte) (s.is_wide()? Bytecodes::_wide : code);
80 if (len > 1) { 80 if (len > 1) {
81 memcpy(&reconstituted_code[bci+1], s.bcp()+1, len-1); 81 memcpy(&reconstituted_code[bci+1], s.bcp()+1, len-1);
82 } 82 }
83 83
84 if (is_rewritten && len > 1) { 84 if (len > 1) {
85 // Restore the big-endian constant pool indexes. 85 // Restore the big-endian constant pool indexes.
86 // Cf. Rewriter::scan_method 86 // Cf. Rewriter::scan_method
87 switch (code) { 87 switch (code) {
88 case Bytecodes::_getstatic: 88 case Bytecodes::_getstatic:
89 case Bytecodes::_putstatic: 89 case Bytecodes::_putstatic: