comparison src/share/vm/ci/ciMethod.hpp @ 3280:548597e74aa4

7030715: JSR 292 JRuby test/test_super_call_site_caching.rb asserts with +DoEscapeAnalysis Reviewed-by: twisti
author never
date Mon, 25 Apr 2011 16:25:58 -0700
parents 2a23b1b5a0a8
children 2c359f27615c
comparison
equal deleted inserted replaced
3279:08ccee2c4dbf 3280:548597e74aa4
125 125
126 // Signature information. 126 // Signature information.
127 ciSignature* signature() const { return _signature; } 127 ciSignature* signature() const { return _signature; }
128 ciType* return_type() const { return _signature->return_type(); } 128 ciType* return_type() const { return _signature->return_type(); }
129 int arg_size_no_receiver() const { return _signature->size(); } 129 int arg_size_no_receiver() const { return _signature->size(); }
130 int arg_size() const { return _signature->size() + (_flags.is_static() ? 0 : 1); } 130 // Can only be used on loaded ciMethods
131 int arg_size() const {
132 check_is_loaded();
133 return _signature->size() + (_flags.is_static() ? 0 : 1);
134 }
135 // Report the number of elements on stack when invoking this method.
136 // This is different than the regular arg_size because invokdynamic
137 // has an implicit receiver.
138 int invoke_arg_size(Bytecodes::Code code) const {
139 int arg_size = _signature->size();
140 // Add a receiver argument, maybe:
141 if (code != Bytecodes::_invokestatic &&
142 code != Bytecodes::_invokedynamic) {
143 arg_size++;
144 }
145 return arg_size;
146 }
147
131 148
132 // Method code and related information. 149 // Method code and related information.
133 address code() { if (_code == NULL) load_code(); return _code; } 150 address code() { if (_code == NULL) load_code(); return _code; }
134 int code_size() const { check_is_loaded(); return _code_size; } 151 int code_size() const { check_is_loaded(); return _code_size; }
135 int max_stack() const { check_is_loaded(); return _max_stack; } 152 int max_stack() const { check_is_loaded(); return _max_stack; }