equal
deleted
inserted
replaced
25 |
25 |
26 #include "precompiled.hpp" |
26 #include "precompiled.hpp" |
27 #include "asm/macroAssembler.inline.hpp" |
27 #include "asm/macroAssembler.inline.hpp" |
28 #include "interpreter/bytecodeHistogram.hpp" |
28 #include "interpreter/bytecodeHistogram.hpp" |
29 #include "interpreter/interpreter.hpp" |
29 #include "interpreter/interpreter.hpp" |
30 #include "interpreter/interpreterGenerator.hpp" |
|
31 #include "interpreter/interpreterRuntime.hpp" |
30 #include "interpreter/interpreterRuntime.hpp" |
32 #include "interpreter/interp_masm.hpp" |
31 #include "interpreter/interp_masm.hpp" |
|
32 #include "interpreter/templateInterpreterGenerator.hpp" |
33 #include "interpreter/templateTable.hpp" |
33 #include "interpreter/templateTable.hpp" |
34 #include "oops/arrayOop.hpp" |
34 #include "oops/arrayOop.hpp" |
35 #include "oops/methodData.hpp" |
35 #include "oops/methodData.hpp" |
36 #include "oops/method.hpp" |
36 #include "oops/method.hpp" |
37 #include "oops/oop.inline.hpp" |
37 #include "oops/oop.inline.hpp" |
414 return entry; |
414 return entry; |
415 } |
415 } |
416 |
416 |
417 // Abstract method entry. |
417 // Abstract method entry. |
418 // |
418 // |
419 address InterpreterGenerator::generate_abstract_entry(void) { |
419 address TemplateInterpreterGenerator::generate_abstract_entry(void) { |
420 address entry = __ pc(); |
420 address entry = __ pc(); |
421 |
421 |
422 // |
422 // |
423 // Registers alive |
423 // Registers alive |
424 // R16_thread - JavaThread* |
424 // R16_thread - JavaThread* |
472 // into R8 and return quickly |
472 // into R8 and return quickly |
473 // 2. If G1 is active we *must* execute this intrinsic for corrrectness: |
473 // 2. If G1 is active we *must* execute this intrinsic for corrrectness: |
474 // It contains a GC barrier which puts the reference into the satb buffer |
474 // It contains a GC barrier which puts the reference into the satb buffer |
475 // to indicate that someone holds a strong reference to the object the |
475 // to indicate that someone holds a strong reference to the object the |
476 // weak ref points to! |
476 // weak ref points to! |
477 address InterpreterGenerator::generate_Reference_get_entry(void) { |
477 address TemplateInterpreterGenerator::generate_Reference_get_entry(void) { |
478 // Code: _aload_0, _getfield, _areturn |
478 // Code: _aload_0, _getfield, _areturn |
479 // parameter size = 1 |
479 // parameter size = 1 |
480 // |
480 // |
481 // The code that gets generated by this routine is split into 2 parts: |
481 // The code that gets generated by this routine is split into 2 parts: |
482 // 1. the "intrinsified" code for G1 (or any SATB based GC), |
482 // 1. the "intrinsified" code for G1 (or any SATB based GC), |