void pop_ptr(Register r = r0); void pop_i(Register r = r0); void pop_l(Register r = r0); void pop_f(FloatRegister r = v0); void pop_d(FloatRegister r = v0); void push_ptr(Register r = r0); void push_i(Register r = r0); void push_l(Register r = r0); void push_f(FloatRegister r = v0); void push_d(FloatRegister r = v0);
void pop(Register r ) { ((MacroAssembler*)this)->pop(r); }
void push(Register r ) { ((MacroAssembler*)this)->push(r); }
void pop(TosState state); // transition vtos -> state void push(TosState state); // transition state -> vtos
// Helpers for swap and dup void load_ptr(int n, Register val); void store_ptr(int n, Register val);
// Load float value from 'address'. The value is loaded onto the FPU register v0. void load_float(Address src); void load_double(Address src);
// Generate a subtype check: branch to ok_is_subtype if sub_klass is // a subtype of super_klass. void gen_subtype_check( Register sub_klass, Label &ok_is_subtype );
// Dispatching void dispatch_prolog(TosState state, int step = 0); void dispatch_epilog(TosState state, int step = 0); // dispatch via rscratch1 void dispatch_only(TosState state, bool generate_poll = false); // dispatch normal table via rscratch1 (assume rscratch1 is loaded already) void dispatch_only_normal(TosState state); void dispatch_only_noverify(TosState state); // load rscratch1 from [rbcp + step] and dispatch via rscratch1 void dispatch_next(TosState state, int step = 0, bool generate_poll = false); // load rscratch1 from [esi] and dispatch via rscratch1 and table void dispatch_via (TosState state, address* table);
// jump to an invoked target void prepare_to_jump_from_interpreted(); void jump_from_interpreted(Register method, Register temp);
// Returning from interpreted functions // // Removes the current activation (incl. unlocking of monitors) // and sets up the return address. This code is also used for // exception unwindwing. In that case, we do not want to throw // IllegalMonitorStateExceptions, since that might get us into an // infinite rethrow exception loop. // Additionally this code is used for popFrame and earlyReturn. // In popFrame case we want to skip throwing an exception, // installing an exception, and notifying jvmdi. // In earlyReturn case we only want to skip throwing an exception // and installing an exception. void remove_activation(TosState state, bool throw_monitor_exception = true, bool install_monitor_exception = true, bool notify_jvmdi = true);
// FIXME: Give us a valid frame at a null check. virtualvoid null_check(Register reg, int offset = -1) { // #ifdef ASSERT // save_bcp(); // set_last_Java_frame(esp, rfp, (address) pc()); // #endif
MacroAssembler::null_check(reg, offset); // #ifdef ASSERT // reset_last_Java_frame(true); // #endif
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.