|
@@ -1,388 +0,0 @@
|
|
|
-use core::str;
|
|
|
|
|
-use std::fmt::Display;
|
|
|
|
|
-
|
|
|
|
|
-use serde::{Deserialize, Serialize};
|
|
|
|
|
-
|
|
|
|
|
-use crate::errors::DisassemblerError;
|
|
|
|
|
-
|
|
|
|
|
-#[repr(u8)]
|
|
|
|
|
-#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)]
|
|
|
|
|
-pub enum OpCode {
|
|
|
|
|
- Lddw = 0x18,
|
|
|
|
|
- Ldxb = 0x71,
|
|
|
|
|
- Ldxh = 0x69,
|
|
|
|
|
- Ldxw = 0x61,
|
|
|
|
|
- Ldxdw = 0x79,
|
|
|
|
|
- Stb = 0x72,
|
|
|
|
|
- Sth = 0x6a,
|
|
|
|
|
- Stw = 0x62,
|
|
|
|
|
- Stdw = 0x7a,
|
|
|
|
|
- Stxb = 0x73,
|
|
|
|
|
- Stxh = 0x6b,
|
|
|
|
|
- Stxw = 0x63,
|
|
|
|
|
- Stxdw = 0x7b,
|
|
|
|
|
- Add32Imm = 0x04,
|
|
|
|
|
- Add32Reg = 0x0c,
|
|
|
|
|
- Sub32Imm = 0x14,
|
|
|
|
|
- Sub32Reg = 0x1c,
|
|
|
|
|
- Mul32Imm = 0x24,
|
|
|
|
|
- Mul32Reg = 0x2c,
|
|
|
|
|
- Div32Imm = 0x34,
|
|
|
|
|
- Div32Reg = 0x3c,
|
|
|
|
|
- Or32Imm = 0x44,
|
|
|
|
|
- Or32Reg = 0x4c,
|
|
|
|
|
- And32Imm = 0x54,
|
|
|
|
|
- And32Reg = 0x5c,
|
|
|
|
|
- Lsh32Imm = 0x64,
|
|
|
|
|
- Lsh32Reg = 0x6c,
|
|
|
|
|
- Rsh32Imm = 0x74,
|
|
|
|
|
- Rsh32Reg = 0x7c,
|
|
|
|
|
- Neg32 = 0x84,
|
|
|
|
|
- Mod32Imm = 0x94,
|
|
|
|
|
- Mod32Reg = 0x9c,
|
|
|
|
|
- Xor32Imm = 0xa4,
|
|
|
|
|
- Xor32Reg = 0xac,
|
|
|
|
|
- Mov32Imm = 0xb4,
|
|
|
|
|
- Mov32Reg = 0xbc,
|
|
|
|
|
- Arsh32Imm = 0xc4,
|
|
|
|
|
- Arsh32Reg = 0xcc,
|
|
|
|
|
- Lmul32Imm = 0x86,
|
|
|
|
|
- Lmul32Reg = 0x8e,
|
|
|
|
|
- Udiv32Imm = 0x46,
|
|
|
|
|
- Udiv32Reg = 0x4e,
|
|
|
|
|
- Urem32Imm = 0x66,
|
|
|
|
|
- Urem32Reg = 0x6e,
|
|
|
|
|
- Sdiv32Imm = 0xc6,
|
|
|
|
|
- Sdiv32Reg = 0xce,
|
|
|
|
|
- Srem32Imm = 0xe6,
|
|
|
|
|
- Srem32Reg = 0xee,
|
|
|
|
|
- Le = 0xd4,
|
|
|
|
|
- Be = 0xdc,
|
|
|
|
|
- Add64Imm = 0x07,
|
|
|
|
|
- Add64Reg = 0x0f,
|
|
|
|
|
- Sub64Imm = 0x17,
|
|
|
|
|
- Sub64Reg = 0x1f,
|
|
|
|
|
- Mul64Imm = 0x27,
|
|
|
|
|
- Mul64Reg = 0x2f,
|
|
|
|
|
- Div64Imm = 0x37,
|
|
|
|
|
- Div64Reg = 0x3f,
|
|
|
|
|
- Or64Imm = 0x47,
|
|
|
|
|
- Or64Reg = 0x4f,
|
|
|
|
|
- And64Imm = 0x57,
|
|
|
|
|
- And64Reg = 0x5f,
|
|
|
|
|
- Lsh64Imm = 0x67,
|
|
|
|
|
- Lsh64Reg = 0x6f,
|
|
|
|
|
- Rsh64Imm = 0x77,
|
|
|
|
|
- Rsh64Reg = 0x7f,
|
|
|
|
|
- Neg64 = 0x87,
|
|
|
|
|
- Mod64Imm = 0x97,
|
|
|
|
|
- Mod64Reg = 0x9f,
|
|
|
|
|
- Xor64Imm = 0xa7,
|
|
|
|
|
- Xor64Reg = 0xaf,
|
|
|
|
|
- Mov64Imm = 0xb7,
|
|
|
|
|
- Mov64Reg = 0xbf,
|
|
|
|
|
- Arsh64Imm = 0xc7,
|
|
|
|
|
- Arsh64Reg = 0xcf,
|
|
|
|
|
- Hor64Imm = 0xf7,
|
|
|
|
|
- Lmul64Imm = 0x96,
|
|
|
|
|
- Lmul64Reg = 0x9e,
|
|
|
|
|
- Uhmul64Imm = 0x36,
|
|
|
|
|
- Uhmul64Reg = 0x3e,
|
|
|
|
|
- Udiv64Imm = 0x56,
|
|
|
|
|
- Udiv64Reg = 0x5e,
|
|
|
|
|
- Urem64Imm = 0x76,
|
|
|
|
|
- Urem64Reg = 0x7e,
|
|
|
|
|
- Shmul64Imm = 0xb6,
|
|
|
|
|
- Shmul64Reg = 0xbe,
|
|
|
|
|
- Sdiv64Imm = 0xd6,
|
|
|
|
|
- Sdiv64Reg = 0xde,
|
|
|
|
|
- Srem64Imm = 0xf6,
|
|
|
|
|
- Srem64Reg = 0xfe,
|
|
|
|
|
- Ja = 0x05,
|
|
|
|
|
- JeqImm = 0x15,
|
|
|
|
|
- JeqReg = 0x1d,
|
|
|
|
|
- JgtImm = 0x25,
|
|
|
|
|
- JgtReg = 0x2d,
|
|
|
|
|
- JgeImm = 0x35,
|
|
|
|
|
- JgeReg = 0x3d,
|
|
|
|
|
- JltImm = 0xa5,
|
|
|
|
|
- JltReg = 0xad,
|
|
|
|
|
- JleImm = 0xb5,
|
|
|
|
|
- JleReg = 0xbd,
|
|
|
|
|
- JsetImm = 0x45,
|
|
|
|
|
- JsetReg = 0x4d,
|
|
|
|
|
- JneImm = 0x55,
|
|
|
|
|
- JneReg = 0x5d,
|
|
|
|
|
- JsgtImm = 0x65,
|
|
|
|
|
- JsgtReg = 0x6d,
|
|
|
|
|
- JsgeImm = 0x75,
|
|
|
|
|
- JsgeReg = 0x7d,
|
|
|
|
|
- JsltImm = 0xc5,
|
|
|
|
|
- JsltReg = 0xcd,
|
|
|
|
|
- JsleImm = 0xd5,
|
|
|
|
|
- JsleReg = 0xdd,
|
|
|
|
|
- Call = 0x85,
|
|
|
|
|
- Callx = 0x8d,
|
|
|
|
|
- Exit = 0x95,
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-impl Display for OpCode {
|
|
|
|
|
- fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
|
|
|
|
- f.write_str(Into::<&str>::into(self.clone()))
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-impl TryFrom<u8> for OpCode {
|
|
|
|
|
- type Error = DisassemblerError;
|
|
|
|
|
-
|
|
|
|
|
- fn try_from(value: u8) -> Result<Self, Self::Error> {
|
|
|
|
|
- Ok(match value {
|
|
|
|
|
- 0x18 => OpCode::Lddw,
|
|
|
|
|
- 0x71 => OpCode::Ldxb,
|
|
|
|
|
- 0x69 => OpCode::Ldxh,
|
|
|
|
|
- 0x61 => OpCode::Ldxw,
|
|
|
|
|
- 0x79 => OpCode::Ldxdw,
|
|
|
|
|
- 0x72 => OpCode::Stb,
|
|
|
|
|
- 0x6a => OpCode::Sth,
|
|
|
|
|
- 0x62 => OpCode::Stw,
|
|
|
|
|
- 0x7a => OpCode::Stdw,
|
|
|
|
|
- 0x73 => OpCode::Stxb,
|
|
|
|
|
- 0x6b => OpCode::Stxh,
|
|
|
|
|
- 0x63 => OpCode::Stxw,
|
|
|
|
|
- 0x7b => OpCode::Stxdw,
|
|
|
|
|
- 0x04 => OpCode::Add32Imm,
|
|
|
|
|
- 0x0c => OpCode::Add32Reg,
|
|
|
|
|
- 0x14 => OpCode::Sub32Imm,
|
|
|
|
|
- 0x1c => OpCode::Sub32Reg,
|
|
|
|
|
- 0x24 => OpCode::Mul32Imm,
|
|
|
|
|
- 0x2c => OpCode::Mul32Reg,
|
|
|
|
|
- 0x34 => OpCode::Div32Imm,
|
|
|
|
|
- 0x3c => OpCode::Div32Reg,
|
|
|
|
|
- 0x44 => OpCode::Or32Imm,
|
|
|
|
|
- 0x4c => OpCode::Or32Reg,
|
|
|
|
|
- 0x54 => OpCode::And32Imm,
|
|
|
|
|
- 0x5c => OpCode::And32Reg,
|
|
|
|
|
- 0x64 => OpCode::Lsh32Imm,
|
|
|
|
|
- 0x6c => OpCode::Lsh32Reg,
|
|
|
|
|
- 0x74 => OpCode::Rsh32Imm,
|
|
|
|
|
- 0x7c => OpCode::Rsh32Reg,
|
|
|
|
|
- 0x84 => OpCode::Neg32,
|
|
|
|
|
- 0x94 => OpCode::Mod32Imm,
|
|
|
|
|
- 0x9c => OpCode::Mod32Reg,
|
|
|
|
|
- 0xa4 => OpCode::Xor32Imm,
|
|
|
|
|
- 0xac => OpCode::Xor32Reg,
|
|
|
|
|
- 0xb4 => OpCode::Mov32Imm,
|
|
|
|
|
- 0xbc => OpCode::Mov32Reg,
|
|
|
|
|
- 0xc4 => OpCode::Arsh32Imm,
|
|
|
|
|
- 0xcc => OpCode::Arsh32Reg,
|
|
|
|
|
- 0x86 => OpCode::Lmul32Imm,
|
|
|
|
|
- 0x8e => OpCode::Lmul32Reg,
|
|
|
|
|
- 0x46 => OpCode::Udiv32Imm,
|
|
|
|
|
- 0x4e => OpCode::Udiv32Reg,
|
|
|
|
|
- 0x66 => OpCode::Urem32Imm,
|
|
|
|
|
- 0x6e => OpCode::Urem32Reg,
|
|
|
|
|
- 0xc6 => OpCode::Sdiv32Imm,
|
|
|
|
|
- 0xce => OpCode::Sdiv32Reg,
|
|
|
|
|
- 0xe6 => OpCode::Srem32Imm,
|
|
|
|
|
- 0xee => OpCode::Srem32Reg,
|
|
|
|
|
- 0xd4 => OpCode::Le,
|
|
|
|
|
- 0xdc => OpCode::Be,
|
|
|
|
|
- 0x07 => OpCode::Add64Imm,
|
|
|
|
|
- 0x0f => OpCode::Add64Reg,
|
|
|
|
|
- 0x17 => OpCode::Sub64Imm,
|
|
|
|
|
- 0x1f => OpCode::Sub64Reg,
|
|
|
|
|
- 0x27 => OpCode::Mul64Imm,
|
|
|
|
|
- 0x2f => OpCode::Mul64Reg,
|
|
|
|
|
- 0x37 => OpCode::Div64Imm,
|
|
|
|
|
- 0x3f => OpCode::Div64Reg,
|
|
|
|
|
- 0x47 => OpCode::Or64Imm,
|
|
|
|
|
- 0x4f => OpCode::Or64Reg,
|
|
|
|
|
- 0x57 => OpCode::And64Imm,
|
|
|
|
|
- 0x5f => OpCode::And64Reg,
|
|
|
|
|
- 0x67 => OpCode::Lsh64Imm,
|
|
|
|
|
- 0x6f => OpCode::Lsh64Reg,
|
|
|
|
|
- 0x77 => OpCode::Rsh64Imm,
|
|
|
|
|
- 0x7f => OpCode::Rsh64Reg,
|
|
|
|
|
- 0x87 => OpCode::Neg64,
|
|
|
|
|
- 0x97 => OpCode::Mod64Imm,
|
|
|
|
|
- 0x9f => OpCode::Mod64Reg,
|
|
|
|
|
- 0xa7 => OpCode::Xor64Imm,
|
|
|
|
|
- 0xaf => OpCode::Xor64Reg,
|
|
|
|
|
- 0xb7 => OpCode::Mov64Imm,
|
|
|
|
|
- 0xbf => OpCode::Mov64Reg,
|
|
|
|
|
- 0xc7 => OpCode::Arsh64Imm,
|
|
|
|
|
- 0xcf => OpCode::Arsh64Reg,
|
|
|
|
|
- 0xf7 => OpCode::Hor64Imm,
|
|
|
|
|
- 0x96 => OpCode::Lmul64Imm,
|
|
|
|
|
- 0x9e => OpCode::Lmul64Reg,
|
|
|
|
|
- 0x36 => OpCode::Uhmul64Imm,
|
|
|
|
|
- 0x3e => OpCode::Uhmul64Reg,
|
|
|
|
|
- 0x56 => OpCode::Udiv64Imm,
|
|
|
|
|
- 0x5e => OpCode::Udiv64Reg,
|
|
|
|
|
- 0x76 => OpCode::Urem64Imm,
|
|
|
|
|
- 0x7e => OpCode::Urem64Reg,
|
|
|
|
|
- 0xb6 => OpCode::Shmul64Imm,
|
|
|
|
|
- 0xbe => OpCode::Shmul64Reg,
|
|
|
|
|
- 0xd6 => OpCode::Sdiv64Imm,
|
|
|
|
|
- 0xde => OpCode::Sdiv64Reg,
|
|
|
|
|
- 0xf6 => OpCode::Srem64Imm,
|
|
|
|
|
- 0xfe => OpCode::Srem64Reg,
|
|
|
|
|
- 0x05 => OpCode::Ja,
|
|
|
|
|
- 0x15 => OpCode::JeqImm,
|
|
|
|
|
- 0x1d => OpCode::JeqReg,
|
|
|
|
|
- 0x25 => OpCode::JgtImm,
|
|
|
|
|
- 0x2d => OpCode::JgtReg,
|
|
|
|
|
- 0x35 => OpCode::JgeImm,
|
|
|
|
|
- 0x3d => OpCode::JgeReg,
|
|
|
|
|
- 0xa5 => OpCode::JltImm,
|
|
|
|
|
- 0xad => OpCode::JltReg,
|
|
|
|
|
- 0xb5 => OpCode::JleImm,
|
|
|
|
|
- 0xbd => OpCode::JleReg,
|
|
|
|
|
- 0x45 => OpCode::JsetImm,
|
|
|
|
|
- 0x4d => OpCode::JsetReg,
|
|
|
|
|
- 0x55 => OpCode::JneImm,
|
|
|
|
|
- 0x5d => OpCode::JneReg,
|
|
|
|
|
- 0x65 => OpCode::JsgtImm,
|
|
|
|
|
- 0x6d => OpCode::JsgtReg,
|
|
|
|
|
- 0x75 => OpCode::JsgeImm,
|
|
|
|
|
- 0x7d => OpCode::JsgeReg,
|
|
|
|
|
- 0xc5 => OpCode::JsltImm,
|
|
|
|
|
- 0xcd => OpCode::JsltReg,
|
|
|
|
|
- 0xd5 => OpCode::JsleImm,
|
|
|
|
|
- 0xdd => OpCode::JsleReg,
|
|
|
|
|
- 0x85 => OpCode::Call,
|
|
|
|
|
- 0x8d => OpCode::Callx,
|
|
|
|
|
- 0x95 => OpCode::Exit,
|
|
|
|
|
- _ => return Err(DisassemblerError::InvalidOpcode),
|
|
|
|
|
- })
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-impl From<OpCode> for u8 {
|
|
|
|
|
- fn from(val: OpCode) -> Self {
|
|
|
|
|
- val as u8
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-impl From<OpCode> for &str {
|
|
|
|
|
- fn from(val: OpCode) -> Self {
|
|
|
|
|
- match val {
|
|
|
|
|
- OpCode::Lddw => "lddw",
|
|
|
|
|
- OpCode::Ldxb => "ldxb",
|
|
|
|
|
- OpCode::Ldxh => "ldxh",
|
|
|
|
|
- OpCode::Ldxw => "ldxw",
|
|
|
|
|
- OpCode::Ldxdw => "ldxdw",
|
|
|
|
|
- OpCode::Stb => "stb",
|
|
|
|
|
- OpCode::Sth => "sth",
|
|
|
|
|
- OpCode::Stw => "stw",
|
|
|
|
|
- OpCode::Stdw => "stdw",
|
|
|
|
|
- OpCode::Stxb => "stxb",
|
|
|
|
|
- OpCode::Stxh => "stxh",
|
|
|
|
|
- OpCode::Stxw => "stxw",
|
|
|
|
|
- OpCode::Stxdw => "stxdw",
|
|
|
|
|
- OpCode::Add32Imm => "add32",
|
|
|
|
|
- OpCode::Add32Reg => "add32",
|
|
|
|
|
- OpCode::Sub32Imm => "sub32",
|
|
|
|
|
- OpCode::Sub32Reg => "sub32",
|
|
|
|
|
- OpCode::Mul32Imm => "mul32",
|
|
|
|
|
- OpCode::Mul32Reg => "mul32",
|
|
|
|
|
- OpCode::Div32Imm => "div32",
|
|
|
|
|
- OpCode::Div32Reg => "div32",
|
|
|
|
|
- OpCode::Or32Imm => "or32",
|
|
|
|
|
- OpCode::Or32Reg => "or32",
|
|
|
|
|
- OpCode::And32Imm => "and32",
|
|
|
|
|
- OpCode::And32Reg => "and32",
|
|
|
|
|
- OpCode::Lsh32Imm => "lsh32",
|
|
|
|
|
- OpCode::Lsh32Reg => "lsh32",
|
|
|
|
|
- OpCode::Rsh32Imm => "rsh32",
|
|
|
|
|
- OpCode::Rsh32Reg => "rsh32",
|
|
|
|
|
- OpCode::Neg32 => "neg32",
|
|
|
|
|
- OpCode::Mod32Imm => "mod32",
|
|
|
|
|
- OpCode::Mod32Reg => "mod32",
|
|
|
|
|
- OpCode::Xor32Imm => "xor32",
|
|
|
|
|
- OpCode::Xor32Reg => "xor32",
|
|
|
|
|
- OpCode::Mov32Imm => "mov32",
|
|
|
|
|
- OpCode::Mov32Reg => "mov32",
|
|
|
|
|
- OpCode::Arsh32Imm => "arsh32",
|
|
|
|
|
- OpCode::Arsh32Reg => "arsh32",
|
|
|
|
|
- OpCode::Lmul32Imm => "lmul32",
|
|
|
|
|
- OpCode::Lmul32Reg => "lmul32",
|
|
|
|
|
- OpCode::Udiv32Imm => "udiv32",
|
|
|
|
|
- OpCode::Udiv32Reg => "udiv32",
|
|
|
|
|
- OpCode::Urem32Imm => "urem32",
|
|
|
|
|
- OpCode::Urem32Reg => "urem32",
|
|
|
|
|
- OpCode::Sdiv32Imm => "sdiv32",
|
|
|
|
|
- OpCode::Sdiv32Reg => "sdiv32",
|
|
|
|
|
- OpCode::Srem32Imm => "srem32",
|
|
|
|
|
- OpCode::Srem32Reg => "srem32",
|
|
|
|
|
- OpCode::Le => "le",
|
|
|
|
|
- OpCode::Be => "be",
|
|
|
|
|
- OpCode::Add64Imm => "add64",
|
|
|
|
|
- OpCode::Add64Reg => "add64",
|
|
|
|
|
- OpCode::Sub64Imm => "sub64",
|
|
|
|
|
- OpCode::Sub64Reg => "sub64",
|
|
|
|
|
- OpCode::Mul64Imm => "mul64",
|
|
|
|
|
- OpCode::Mul64Reg => "mul64",
|
|
|
|
|
- OpCode::Div64Imm => "div64",
|
|
|
|
|
- OpCode::Div64Reg => "div64",
|
|
|
|
|
- OpCode::Or64Imm => "or64",
|
|
|
|
|
- OpCode::Or64Reg => "or64",
|
|
|
|
|
- OpCode::And64Imm => "and64",
|
|
|
|
|
- OpCode::And64Reg => "and64",
|
|
|
|
|
- OpCode::Lsh64Imm => "lsh64",
|
|
|
|
|
- OpCode::Lsh64Reg => "lsh64",
|
|
|
|
|
- OpCode::Rsh64Imm => "rsh64",
|
|
|
|
|
- OpCode::Rsh64Reg => "rsh64",
|
|
|
|
|
- OpCode::Neg64 => "neg64",
|
|
|
|
|
- OpCode::Mod64Imm => "mod64",
|
|
|
|
|
- OpCode::Mod64Reg => "mod64",
|
|
|
|
|
- OpCode::Xor64Imm => "xor64",
|
|
|
|
|
- OpCode::Xor64Reg => "xor64",
|
|
|
|
|
- OpCode::Mov64Imm => "mov64",
|
|
|
|
|
- OpCode::Mov64Reg => "mov64",
|
|
|
|
|
- OpCode::Arsh64Imm => "arsh64",
|
|
|
|
|
- OpCode::Arsh64Reg => "arsh64",
|
|
|
|
|
- OpCode::Hor64Imm => "hor64",
|
|
|
|
|
- OpCode::Lmul64Imm => "lmul64",
|
|
|
|
|
- OpCode::Lmul64Reg => "lmul64",
|
|
|
|
|
- OpCode::Uhmul64Imm => "uhmul64",
|
|
|
|
|
- OpCode::Uhmul64Reg => "uhmul64",
|
|
|
|
|
- OpCode::Udiv64Imm => "udiv64",
|
|
|
|
|
- OpCode::Udiv64Reg => "udiv64",
|
|
|
|
|
- OpCode::Urem64Imm => "urem64",
|
|
|
|
|
- OpCode::Urem64Reg => "urem64",
|
|
|
|
|
- OpCode::Shmul64Imm => "shmul64",
|
|
|
|
|
- OpCode::Shmul64Reg => "shmul64",
|
|
|
|
|
- OpCode::Sdiv64Imm => "sdiv64",
|
|
|
|
|
- OpCode::Sdiv64Reg => "sdiv64",
|
|
|
|
|
- OpCode::Srem64Imm => "srem64",
|
|
|
|
|
- OpCode::Srem64Reg => "srem64",
|
|
|
|
|
- OpCode::Ja => "ja",
|
|
|
|
|
- OpCode::JeqImm => "jeq",
|
|
|
|
|
- OpCode::JeqReg => "jeq",
|
|
|
|
|
- OpCode::JgtImm => "jgt",
|
|
|
|
|
- OpCode::JgtReg => "jgt",
|
|
|
|
|
- OpCode::JgeImm => "jge",
|
|
|
|
|
- OpCode::JgeReg => "jge",
|
|
|
|
|
- OpCode::JltImm => "jlt",
|
|
|
|
|
- OpCode::JltReg => "jlt",
|
|
|
|
|
- OpCode::JleImm => "jle",
|
|
|
|
|
- OpCode::JleReg => "jle",
|
|
|
|
|
- OpCode::JsetImm => "jset",
|
|
|
|
|
- OpCode::JsetReg => "jset",
|
|
|
|
|
- OpCode::JneImm => "jne",
|
|
|
|
|
- OpCode::JneReg => "jne",
|
|
|
|
|
- OpCode::JsgtImm => "jsgt",
|
|
|
|
|
- OpCode::JsgtReg => "jsgt",
|
|
|
|
|
- OpCode::JsgeImm => "jsge",
|
|
|
|
|
- OpCode::JsgeReg => "jsge",
|
|
|
|
|
- OpCode::JsltImm => "jslt",
|
|
|
|
|
- OpCode::JsltReg => "jslt",
|
|
|
|
|
- OpCode::JsleImm => "jsle",
|
|
|
|
|
- OpCode::JsleReg => "jsle",
|
|
|
|
|
- OpCode::Call => "call",
|
|
|
|
|
- OpCode::Callx => "callx",
|
|
|
|
|
- OpCode::Exit => "exit",
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|