MCPcopy Create free account
hub / github.com/Palmr/classfile-parser / instruction_parser

Function instruction_parser

src/code_attribute/parser.rs:56–292  ·  view source on GitHub ↗
(input: &[u8], address: usize)

Source from the content-addressed store, hash-verified

54}
55
56pub fn instruction_parser(input: &[u8], address: usize) -> IResult<&[u8], Instruction> {
57 let (input, b0) = be_u8(input)?;
58 let (input, instruction) = match b0 {
59 0x32 => success(Instruction::Aaload)(input)?,
60 0x53 => success(Instruction::Aastore)(input)?,
61 0x01 => success(Instruction::Aconstnull)(input)?,
62 0x19 => map(be_u8, Instruction::Aload)(input)?,
63 0x2a => success(Instruction::Aload0)(input)?,
64 0x2b => success(Instruction::Aload1)(input)?,
65 0x2c => success(Instruction::Aload2)(input)?,
66 0x2d => success(Instruction::Aload3)(input)?,
67 0xbd => map(be_u16, Instruction::Anewarray)(input)?,
68 0xb0 => success(Instruction::Areturn)(input)?,
69 0xbe => success(Instruction::Arraylength)(input)?,
70 0x3a => map(be_u8, Instruction::Astore)(input)?,
71 0x4b => success(Instruction::Astore0)(input)?,
72 0x4c => success(Instruction::Astore1)(input)?,
73 0x4d => success(Instruction::Astore2)(input)?,
74 0x4e => success(Instruction::Astore3)(input)?,
75 0xbf => success(Instruction::Athrow)(input)?,
76 0x33 => success(Instruction::Baload)(input)?,
77 0x54 => success(Instruction::Bastore)(input)?,
78 0x10 => map(be_i8, Instruction::Bipush)(input)?,
79 0x34 => success(Instruction::Caload)(input)?,
80 0x55 => success(Instruction::Castore)(input)?,
81 0xc0 => map(be_u16, Instruction::Checkcast)(input)?,
82 0x90 => success(Instruction::D2f)(input)?,
83 0x8e => success(Instruction::D2i)(input)?,
84 0x8f => success(Instruction::D2l)(input)?,
85 0x63 => success(Instruction::Dadd)(input)?,
86 0x31 => success(Instruction::Daload)(input)?,
87 0x52 => success(Instruction::Dastore)(input)?,
88 0x98 => success(Instruction::Dcmpg)(input)?,
89 0x97 => success(Instruction::Dcmpl)(input)?,
90 0x0e => success(Instruction::Dconst0)(input)?,
91 0x0f => success(Instruction::Dconst1)(input)?,
92 0x6f => success(Instruction::Ddiv)(input)?,
93 0x18 => map(be_u8, Instruction::Dload)(input)?,
94 0x26 => success(Instruction::Dload0)(input)?,
95 0x27 => success(Instruction::Dload1)(input)?,
96 0x28 => success(Instruction::Dload2)(input)?,
97 0x29 => success(Instruction::Dload3)(input)?,
98 0x6b => success(Instruction::Dmul)(input)?,
99 0x77 => success(Instruction::Dneg)(input)?,
100 0x73 => success(Instruction::Drem)(input)?,
101 0xaf => success(Instruction::Dreturn)(input)?,
102 0x39 => map(be_u8, Instruction::Dstore)(input)?,
103 0x47 => success(Instruction::Dstore0)(input)?,
104 0x48 => success(Instruction::Dstore1)(input)?,
105 0x49 => success(Instruction::Dstore2)(input)?,
106 0x4a => success(Instruction::Dstore3)(input)?,
107 0x67 => success(Instruction::Dsub)(input)?,
108 0x59 => success(Instruction::Dup)(input)?,
109 0x5a => success(Instruction::Dupx1)(input)?,
110 0x5b => success(Instruction::Dupx2)(input)?,
111 0x5c => success(Instruction::Dup2)(input)?,
112 0x5d => success(Instruction::Dup2x1)(input)?,
113 0x5e => success(Instruction::Dup2x2)(input)?,

Callers 1

code_parserFunction · 0.85

Calls 1

alignFunction · 0.85

Tested by

no test coverage detected