Somewhat recursive string construction

This commit is contained in:
VegOwOtenks 2024-09-05 00:33:14 +02:00
parent 4dabd6c3a8
commit 3c4921aa54
9 changed files with 1130 additions and 185 deletions

View file

@ -72,6 +72,7 @@ impl Bytecode {
0xB8 => (Instruction::InvokeStatic((self.bytes[offset+1] as u16) << 8 | self.bytes[offset+2] as u16), 3),
0xBA => (Instruction::InvokeDynamic((self.bytes[offset+1] as u16) << 8 | self.bytes[offset+2] as u16, (self.bytes[offset+3] as u16) << 8 | self.bytes[offset+4] as u16), 5),
0xBB => (Instruction::NewObject((self.bytes[offset+1] as u16) << 8 | self.bytes[offset+2] as u16), 3),
0xBD => (Instruction::NewArray((self.bytes[offset+1] as u16) << 8 | self.bytes[offset+2] as u16), 3),
_ => (Instruction::Unknown(opcode), 1)
}
}
@ -164,6 +165,7 @@ pub enum Instruction {
InvokeSpecial(u16) = 0xB7, // invoke instance method
InvokeStatic(u16) = 0xB8, // invoke static function
InvokeDynamic(u16, u16) = 0xBA, // invoke dynamic function
NewObject(u16) = 0xBB, // Create a new object from a constant-pool reference
NewObject(u16) = 0xBB, // Create a new object from a constant-pool class reference
NewArray(u16) = 0xBD, // Create a new array from a constant-pool component class reference
Unknown(u8),
}