/* * Copyright (c) 2003, 2022, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2014, 2015, Red Hat Inc. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. *
*/
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 ist noch experimentell.