/* * Copyright (c) 2007 innoSysTec (R) GmbH, Germany. All rights reserved. * Original author: Edmund Wagner * Creation date: 31.05.2007 * * Source: $HeadURL$ * Last changed: $LastChangedDate$ * * the unrar licence applies to all junrar source and binary distributions * you are not allowed to use this source to re-create the RAR compression algorithm * * Here some html entities which can be used for escaping javadoc tags: * "&": "&" or "&" * "<": "<" or "<" * ">": ">" or ">" * "@": "@" */ package com.github.junrar.unpack.vm; /** * DOCUMENT ME * * @author $LastChangedBy$ * @version $LastChangedRevision$ */ public enum VMCommands { VM_MOV(0), VM_CMP(1), VM_ADD(2), VM_SUB(3), VM_JZ(4), VM_JNZ(5), VM_INC(6), VM_DEC( 7), VM_JMP(8), VM_XOR(9), VM_AND(10), VM_OR(11), VM_TEST(12), VM_JS( 13), VM_JNS(14), VM_JB(15), VM_JBE(16), VM_JA(17), VM_JAE(18), VM_PUSH( 19), VM_POP(20), VM_CALL(21), VM_RET(22), VM_NOT(23), VM_SHL(24), VM_SHR( 25), VM_SAR(26), VM_NEG(27), VM_PUSHA(28), VM_POPA(29), VM_PUSHF(30), VM_POPF( 31), VM_MOVZX(32), VM_MOVSX(33), VM_XCHG(34), VM_MUL(35), VM_DIV(36), VM_ADC( 37), VM_SBB(38), VM_PRINT(39), // #ifdef VM_OPTIMIZE VM_MOVB(40), VM_MOVD(41), VM_CMPB(42), VM_CMPD(43), VM_ADDB(44), VM_ADDD(45), VM_SUBB(46), VM_SUBD(47), VM_INCB(48), VM_INCD(49), VM_DECB( 50), VM_DECD(51), VM_NEGB(52), VM_NEGD(53), // #endif*/ VM_STANDARD(54); private int vmCommand; private VMCommands(int vmCommand) { this.vmCommand = vmCommand; } public int getVMCommand() { return vmCommand; } public boolean equals(int vmCommand) { return this.vmCommand == vmCommand; } public static VMCommands findVMCommand(int vmCommand) { if (VM_MOV.equals(vmCommand)) { return VM_MOV; } if (VM_CMP.equals(vmCommand)) { return VM_CMP; } if (VM_ADD.equals(vmCommand)) { return VM_ADD; } if (VM_SUB.equals(vmCommand)) { return VM_SUB; } if (VM_JZ.equals(vmCommand)) { return VM_JZ; } if (VM_JNZ.equals(vmCommand)) { return VM_JNZ; } if (VM_INC.equals(vmCommand)) { return VM_INC; } if (VM_DEC.equals(vmCommand)) { return VM_DEC; } if (VM_JMP.equals(vmCommand)) { return VM_JMP; } if (VM_XOR.equals(vmCommand)) { return VM_XOR; } if (VM_AND.equals(vmCommand)) { return VM_AND; } if (VM_OR.equals(vmCommand)) { return VM_OR; } if (VM_TEST.equals(vmCommand)) { return VM_TEST; } if (VM_JS.equals(vmCommand)) { return VM_JS; } if (VM_JNS.equals(vmCommand)) { return VM_JNS; } if (VM_JB.equals(vmCommand)) { return VM_JB; } if (VM_JBE.equals(vmCommand)) { return VM_JBE; } if (VM_JA.equals(vmCommand)) { return VM_JA; } if (VM_JAE.equals(vmCommand)) { return VM_JAE; } if (VM_PUSH.equals(vmCommand)) { return VM_PUSH; } if (VM_POP.equals(vmCommand)) { return VM_POP; } if (VM_CALL.equals(vmCommand)) { return VM_CALL; } if (VM_RET.equals(vmCommand)) { return VM_RET; } if (VM_NOT.equals(vmCommand)) { return VM_NOT; } if (VM_SHL.equals(vmCommand)) { return VM_SHL; } if (VM_SHR.equals(vmCommand)) { return VM_SHR; } if (VM_SAR.equals(vmCommand)) { return VM_SAR; } if (VM_NEG.equals(vmCommand)) { return VM_NEG; } if (VM_PUSHA.equals(vmCommand)) { return VM_PUSHA; } if (VM_POPA.equals(vmCommand)) { return VM_POPA; } if (VM_PUSHF.equals(vmCommand)) { return VM_PUSHF; } if (VM_POPF.equals(vmCommand)) { return VM_POPF; } if (VM_MOVZX.equals(vmCommand)) { return VM_MOVZX; } if (VM_MOVSX.equals(vmCommand)) { return VM_MOVSX; } if (VM_XCHG.equals(vmCommand)) { return VM_XCHG; } if (VM_MUL.equals(vmCommand)) { return VM_MUL; } if (VM_DIV.equals(vmCommand)) { return VM_DIV; } if (VM_ADC.equals(vmCommand)) { return VM_ADC; } if (VM_SBB.equals(vmCommand)) { return VM_SBB; } if (VM_PRINT.equals(vmCommand)) { return VM_PRINT; } if (VM_MOVB.equals(vmCommand)) { return VM_MOVB; } if (VM_MOVD.equals(vmCommand)) { return VM_MOVD; } if (VM_CMPB.equals(vmCommand)) { return VM_CMPB; } if (VM_CMPD.equals(vmCommand)) { return VM_CMPD; } if (VM_ADDB.equals(vmCommand)) { return VM_ADDB; } if (VM_ADDD.equals(vmCommand)) { return VM_ADDD; } if (VM_SUBB.equals(vmCommand)) { return VM_SUBB; } if (VM_SUBD.equals(vmCommand)) { return VM_SUBD; } if (VM_INCB.equals(vmCommand)) { return VM_INCB; } if (VM_INCD.equals(vmCommand)) { return VM_INCD; } if (VM_DECB.equals(vmCommand)) { return VM_DECB; } if (VM_DECD.equals(vmCommand)) { return VM_DECD; } if (VM_NEGB.equals(vmCommand)) { return VM_NEGB; } if (VM_NEGD.equals(vmCommand)) { return VM_NEGD; } if (VM_STANDARD.equals(vmCommand)) { return VM_STANDARD; } return null; } }