Mercurial > hg > truffle
comparison src/share/vm/opto/graphKit.cpp @ 1162:d749b1813f40
Merge
author | trims |
---|---|
date | Fri, 15 Jan 2010 14:25:44 -0800 |
parents | 97125851f396 |
children | 7b0e9cba0307 |
comparison
equal
deleted
inserted
replaced
1130:1bc68593a110 | 1162:d749b1813f40 |
---|---|
979 case Bytecodes::_invokespecial: | 979 case Bytecodes::_invokespecial: |
980 case Bytecodes::_invokestatic: | 980 case Bytecodes::_invokestatic: |
981 case Bytecodes::_invokedynamic: | 981 case Bytecodes::_invokedynamic: |
982 case Bytecodes::_invokeinterface: | 982 case Bytecodes::_invokeinterface: |
983 { | 983 { |
984 bool is_static = (depth == 0); | |
985 bool ignore; | 984 bool ignore; |
986 ciBytecodeStream iter(method()); | 985 ciBytecodeStream iter(method()); |
987 iter.reset_to_bci(bci()); | 986 iter.reset_to_bci(bci()); |
988 iter.next(); | 987 iter.next(); |
989 ciMethod* method = iter.get_method(ignore); | 988 ciMethod* method = iter.get_method(ignore); |
990 inputs = method->arg_size_no_receiver(); | 989 inputs = method->arg_size_no_receiver(); |
991 if (!is_static) inputs += 1; | 990 // Add a receiver argument, maybe: |
991 if (code != Bytecodes::_invokestatic && | |
992 code != Bytecodes::_invokedynamic) | |
993 inputs += 1; | |
994 // (Do not use ciMethod::arg_size(), because | |
995 // it might be an unloaded method, which doesn't | |
996 // know whether it is static or not.) | |
992 int size = method->return_type()->size(); | 997 int size = method->return_type()->size(); |
993 depth = size - inputs; | 998 depth = size - inputs; |
994 } | 999 } |
995 break; | 1000 break; |
996 | 1001 |