< prev index next >

src/cpu/x86/vm/macroAssembler_x86.hpp

Print this page
rev 12906 : [mq]: gc_interface

*** 36,50 **** class MacroAssembler: public Assembler { friend class LIR_Assembler; friend class Runtime1; // as_Address() ! protected: ! ! Address as_Address(AddressLiteral adr); ! Address as_Address(ArrayAddress adr); ! // Support for VM calls // // This is the base routine called by the different versions of call_VM_leaf. The interpreter // may customize this version by overriding it for its purposes (e.g., to save/restore // additional registers when doing a VM call). --- 36,46 ---- class MacroAssembler: public Assembler { friend class LIR_Assembler; friend class Runtime1; // as_Address() ! public: // Support for VM calls // // This is the base routine called by the different versions of call_VM_leaf. The interpreter // may customize this version by overriding it for its purposes (e.g., to save/restore // additional registers when doing a VM call).
*** 52,61 **** --- 48,58 ---- virtual void call_VM_leaf_base( address entry_point, // the entry point int number_of_arguments // the number of arguments to pop after the call ); + protected: // This is the base routine called by the different versions of call_VM. The interpreter // may customize this version by overriding it for its purposes (e.g., to save/restore // additional registers when doing a VM call). // // If no java_thread register is specified (noreg) than rdi will be used instead. call_VM_base
*** 85,94 **** --- 82,94 ---- // The implementation is only non-empty for the InterpreterMacroAssembler, // as only the interpreter handles PopFrame and ForceEarlyReturn requests. virtual void check_and_handle_popframe(Register java_thread); virtual void check_and_handle_earlyret(Register java_thread); + Address as_Address(AddressLiteral adr); + Address as_Address(ArrayAddress adr); + // Support for NULL-checks // // Generates code that causes a NULL OS exception if the content of reg is NULL. // If the accessed location is M[reg + offset] and the offset is known, provide the // offset. No explicit code generation is needed if the offset is within a certain
*** 291,323 **** void reset_last_Java_frame(Register thread, bool clear_fp); // thread in the default location (r15_thread on 64bit) void reset_last_Java_frame(bool clear_fp); ! // Stores ! void store_check(Register obj); // store check for obj - register is destroyed afterwards ! void store_check(Register obj, Address dst); // same as above, dst is exact store location (reg. is destroyed) ! void resolve_jobject(Register value, Register thread, Register tmp); - void clear_jweak_tag(Register possibly_jweak); - - #if INCLUDE_ALL_GCS - - void g1_write_barrier_pre(Register obj, - Register pre_val, - Register thread, - Register tmp, - bool tosca_live, - bool expand_call); - - void g1_write_barrier_post(Register store_addr, - Register new_val, - Register thread, - Register tmp, - Register tmp2); - - #endif // INCLUDE_ALL_GCS // C 'boolean' to Java boolean: x == 0 ? 0 : 1 void c2bool(Register x); // C++ bool manipulation --- 291,302 ---- void reset_last_Java_frame(Register thread, bool clear_fp); // thread in the default location (r15_thread on 64bit) void reset_last_Java_frame(bool clear_fp); ! // jobjects void resolve_jobject(Register value, Register thread, Register tmp); // C 'boolean' to Java boolean: x == 0 ? 0 : 1 void c2bool(Register x); // C++ bool manipulation
< prev index next >