/*
* Copyright (C) 2011 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.taobao.dx.instruction;
/**
* *** This file is NOT a part of AOSP. ***
*
* Created by tangyinsheng on 2016/5/26.
*/
public class InstructionVisitor {
private final InstructionVisitor prevIv;
public InstructionVisitor(InstructionVisitor iv) {
this.prevIv = iv;
}
public void visitZeroRegisterInsn(int currentAddress, int opcode, int index, int indexType, int target, long literal) {
if (prevIv != null) {
prevIv.visitZeroRegisterInsn(currentAddress, opcode, index, indexType, target, literal);
}
}
public void visitOneRegisterInsn(int currentAddress, int opcode, int index, int indexType, int target, long literal, int a) {
if (prevIv != null) {
prevIv.visitOneRegisterInsn(currentAddress, opcode, index, indexType, target, literal, a);
}
}
public void visitTwoRegisterInsn(int currentAddress, int opcode, int index, int indexType, int target, long literal, int a, int b) {
if (prevIv != null) {
prevIv.visitTwoRegisterInsn(currentAddress, opcode, index, indexType, target, literal, a, b);
}
}
public void visitThreeRegisterInsn(int currentAddress, int opcode, int index, int indexType, int target, long literal, int a, int b, int c) {
if (prevIv != null) {
prevIv.visitThreeRegisterInsn(currentAddress, opcode, index, indexType, target, literal, a, b, c);
}
}
public void visitFourRegisterInsn(int currentAddress, int opcode, int index, int indexType, int target, long literal, int a, int b, int c, int d) {
if (prevIv != null) {
prevIv.visitFourRegisterInsn(currentAddress, opcode, index, indexType, target, literal, a, b, c, d);
}
}
public void visitFiveRegisterInsn(int currentAddress, int opcode, int index, int indexType, int target, long literal, int a, int b, int c, int d, int e) {
if (prevIv != null) {
prevIv.visitFiveRegisterInsn(currentAddress, opcode, index, indexType, target, literal, a, b, c, d, e);
}
}
public void visitRegisterRangeInsn(int currentAddress, int opcode, int index, int indexType, int target, long literal, int a, int registerCount) {
if (prevIv != null) {
prevIv.visitRegisterRangeInsn(currentAddress, opcode, index, indexType, target, literal, a, registerCount);
}
}
public void visitSparseSwitchPayloadInsn(int currentAddress, int opcode, int[] keys, int[] targets) {
if (prevIv != null) {
prevIv.visitSparseSwitchPayloadInsn(currentAddress, opcode, keys, targets);
}
}
public void visitPackedSwitchPayloadInsn(int currentAddress, int opcode, int firstKey, int[] targets) {
if (prevIv != null) {
prevIv.visitPackedSwitchPayloadInsn(currentAddress, opcode, firstKey, targets);
}
}
public void visitFillArrayDataPayloadInsn(int currentAddress, int opcode, Object data, int size, int elementWidth) {
if (prevIv != null) {
prevIv.visitFillArrayDataPayloadInsn(currentAddress, opcode, data, size, elementWidth);
}
}
}