303 friend class CompiledStaticCall;
304 public:
305 address entry() const { return _entry; }
306 methodHandle callee() const { return _callee; }
307 };
308
309
310 class CompiledStaticCall: public NativeCall {
311 friend class CompiledIC;
312
313 // Also used by CompiledIC
314 void set_to_interpreted(methodHandle callee, address entry);
315 bool is_optimized_virtual();
316
317 public:
318 friend CompiledStaticCall* compiledStaticCall_before(address return_addr);
319 friend CompiledStaticCall* compiledStaticCall_at(address native_call);
320 friend CompiledStaticCall* compiledStaticCall_at(Relocation* call_site);
321
322 // Code
323 static void emit_to_interp_stub(CodeBuffer &cbuf);
324 static int to_interp_stub_size();
325 static int reloc_to_interp_stub();
326
327 // State
328 bool is_clean() const;
329 bool is_call_to_compiled() const;
330 bool is_call_to_interpreted() const;
331
332 // Clean static call (will force resolving on next use)
333 void set_to_clean();
334
335 // Set state. The entry must be the same, as computed by compute_entry.
336 // Computation and setting is split up, since the actions are separate during
337 // a OptoRuntime::resolve_xxx.
338 void set(const StaticCallInfo& info);
339
340 // Compute entry point given a method
341 static void compute_entry(methodHandle m, StaticCallInfo& info);
342
343 // Stub support
|
303 friend class CompiledStaticCall;
304 public:
305 address entry() const { return _entry; }
306 methodHandle callee() const { return _callee; }
307 };
308
309
310 class CompiledStaticCall: public NativeCall {
311 friend class CompiledIC;
312
313 // Also used by CompiledIC
314 void set_to_interpreted(methodHandle callee, address entry);
315 bool is_optimized_virtual();
316
317 public:
318 friend CompiledStaticCall* compiledStaticCall_before(address return_addr);
319 friend CompiledStaticCall* compiledStaticCall_at(address native_call);
320 friend CompiledStaticCall* compiledStaticCall_at(Relocation* call_site);
321
322 // Code
323 static address emit_to_interp_stub(CodeBuffer &cbuf);
324 static int to_interp_stub_size();
325 static int reloc_to_interp_stub();
326
327 // State
328 bool is_clean() const;
329 bool is_call_to_compiled() const;
330 bool is_call_to_interpreted() const;
331
332 // Clean static call (will force resolving on next use)
333 void set_to_clean();
334
335 // Set state. The entry must be the same, as computed by compute_entry.
336 // Computation and setting is split up, since the actions are separate during
337 // a OptoRuntime::resolve_xxx.
338 void set(const StaticCallInfo& info);
339
340 // Compute entry point given a method
341 static void compute_entry(methodHandle m, StaticCallInfo& info);
342
343 // Stub support
|