/*
* Copyright (c) 2011, Oracle and/or its affiliates. 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.
*/
package com.oracle.max.vm.ext.vma;
import com.sun.max.vm.actor.member.*;
/**
* The VM executes an (extended) bytecode instruction set and the execution can be subject to advice,
* specified by the methods below.
*
* Auto-generated by {@link BytecodeAdviceGenerator}.
*/
public abstract class BytecodeAdvice {
// START GENERATED CODE
// EDIT AND RUN BytecodeAdviceGenerator.main() TO MODIFY
public abstract void adviseBeforeConstLoad(int bci, Object value);
public abstract void adviseBeforeConstLoad(int bci, long value);
public abstract void adviseBeforeConstLoad(int bci, float value);
public abstract void adviseBeforeConstLoad(int bci, double value);
public abstract void adviseBeforeLoad(int bci, int index);
public abstract void adviseBeforeArrayLoad(int bci, Object array, int index);
public abstract void adviseBeforeStore(int bci, int index, long value);
public abstract void adviseBeforeStore(int bci, int index, float value);
public abstract void adviseBeforeStore(int bci, int index, double value);
public abstract void adviseBeforeStore(int bci, int index, Object value);
public abstract void adviseBeforeArrayStore(int bci, Object array, int index, long value);
public abstract void adviseBeforeArrayStore(int bci, Object array, int index, float value);
public abstract void adviseBeforeArrayStore(int bci, Object array, int index, double value);
public abstract void adviseBeforeArrayStore(int bci, Object array, int index, Object value);
public abstract void adviseBeforeStackAdjust(int bci, int opcode);
public abstract void adviseBeforeOperation(int bci, int opcode, long op1, long op2);
public abstract void adviseBeforeOperation(int bci, int opcode, float op1, float op2);
public abstract void adviseBeforeOperation(int bci, int opcode, double op1, double op2);
public abstract void adviseBeforeConversion(int bci, int opcode, long op);
public abstract void adviseBeforeConversion(int bci, int opcode, float op);
public abstract void adviseBeforeConversion(int bci, int opcode, double op);
public abstract void adviseBeforeIf(int bci, int opcode, int op1, int op2, int targetBci);
public abstract void adviseBeforeIf(int bci, int opcode, Object op1, Object op2, int targetBci);
public abstract void adviseBeforeGoto(int bci, int targetBci);
public abstract void adviseBeforeReturn(int bci, long value);
public abstract void adviseBeforeReturn(int bci, float value);
public abstract void adviseBeforeReturn(int bci, double value);
public abstract void adviseBeforeReturn(int bci, Object value);
public abstract void adviseBeforeReturn(int bci);
public abstract void adviseBeforeGetStatic(int bci, Object staticTuple, FieldActor f);
public abstract void adviseBeforePutStatic(int bci, Object staticTuple, FieldActor f, Object value);
public abstract void adviseBeforePutStatic(int bci, Object staticTuple, FieldActor f, double value);
public abstract void adviseBeforePutStatic(int bci, Object staticTuple, FieldActor f, long value);
public abstract void adviseBeforePutStatic(int bci, Object staticTuple, FieldActor f, float value);
public abstract void adviseBeforeGetField(int bci, Object object, FieldActor f);
public abstract void adviseBeforePutField(int bci, Object object, FieldActor f, Object value);
public abstract void adviseBeforePutField(int bci, Object object, FieldActor f, double value);
public abstract void adviseBeforePutField(int bci, Object object, FieldActor f, long value);
public abstract void adviseBeforePutField(int bci, Object object, FieldActor f, float value);
public abstract void adviseBeforeInvokeVirtual(int bci, Object object, MethodActor methodActor);
public abstract void adviseBeforeInvokeSpecial(int bci, Object object, MethodActor methodActor);
public abstract void adviseBeforeInvokeStatic(int bci, Object object, MethodActor methodActor);
public abstract void adviseBeforeInvokeInterface(int bci, Object object, MethodActor methodActor);
public abstract void adviseBeforeArrayLength(int bci, Object array, int length);
public abstract void adviseBeforeThrow(int bci, Object object);
public abstract void adviseBeforeCheckCast(int bci, Object object, Object classActor);
public abstract void adviseBeforeInstanceOf(int bci, Object object, Object classActor);
public abstract void adviseBeforeMonitorEnter(int bci, Object object);
public abstract void adviseBeforeMonitorExit(int bci, Object object);
public abstract void adviseAfterLoad(int bci, int index, Object value);
public abstract void adviseAfterArrayLoad(int bci, Object array, int index, Object value);
public abstract void adviseAfterNew(int bci, Object object);
public abstract void adviseAfterNewArray(int bci, Object object, int length);
public abstract void adviseAfterMultiNewArray(int bci, Object object, int[] lengths);
public abstract void adviseAfterMethodEntry(int bci, Object object, MethodActor methodActor);
// END GENERATED CODE
}