swf: Add missing opcodes
This commit is contained in:
parent
b2bed7a18d
commit
a39a1dd64f
|
@ -91,6 +91,11 @@ pub enum OpCode {
|
||||||
Label = 0x09,
|
Label = 0x09,
|
||||||
LessEquals = 0xae,
|
LessEquals = 0xae,
|
||||||
LessThan = 0xad,
|
LessThan = 0xad,
|
||||||
|
Lf32 = 0x38,
|
||||||
|
Lf64 = 0x39,
|
||||||
|
Li16 = 0x36,
|
||||||
|
Li32 = 0x37,
|
||||||
|
Li8 = 0x35,
|
||||||
LookupSwitch = 0x1b,
|
LookupSwitch = 0x1b,
|
||||||
LShift = 0xa5,
|
LShift = 0xa5,
|
||||||
Modulo = 0xa4,
|
Modulo = 0xa4,
|
||||||
|
@ -136,10 +141,18 @@ pub enum OpCode {
|
||||||
SetProperty = 0x61,
|
SetProperty = 0x61,
|
||||||
SetSlot = 0x6d,
|
SetSlot = 0x6d,
|
||||||
SetSuper = 0x05,
|
SetSuper = 0x05,
|
||||||
|
Sf32 = 0x3d,
|
||||||
|
Sf64 = 0x3e,
|
||||||
|
Si16 = 0x3b,
|
||||||
|
Si32 = 0x3c,
|
||||||
|
Si8 = 0x3a,
|
||||||
StrictEquals = 0xac,
|
StrictEquals = 0xac,
|
||||||
Subtract = 0xa1,
|
Subtract = 0xa1,
|
||||||
SubtractI = 0xc6,
|
SubtractI = 0xc6,
|
||||||
Swap = 0x2b,
|
Swap = 0x2b,
|
||||||
|
Sxi1 = 0x50,
|
||||||
|
Sxi16 = 0x52,
|
||||||
|
Sxi8 = 0x51,
|
||||||
Throw = 0x03,
|
Throw = 0x03,
|
||||||
TypeOf = 0x95,
|
TypeOf = 0x95,
|
||||||
URShift = 0xa7,
|
URShift = 0xa7,
|
||||||
|
|
|
@ -726,6 +726,11 @@ impl<'a> Reader<'a> {
|
||||||
OpCode::Label => Op::Label,
|
OpCode::Label => Op::Label,
|
||||||
OpCode::LessEquals => Op::LessEquals,
|
OpCode::LessEquals => Op::LessEquals,
|
||||||
OpCode::LessThan => Op::LessThan,
|
OpCode::LessThan => Op::LessThan,
|
||||||
|
OpCode::Lf32 => Op::Lf32,
|
||||||
|
OpCode::Lf64 => Op::Lf64,
|
||||||
|
OpCode::Li16 => Op::Li16,
|
||||||
|
OpCode::Li32 => Op::Li32,
|
||||||
|
OpCode::Li8 => Op::Li8,
|
||||||
OpCode::LookupSwitch => Op::LookupSwitch {
|
OpCode::LookupSwitch => Op::LookupSwitch {
|
||||||
default_offset: self.read_i24()?,
|
default_offset: self.read_i24()?,
|
||||||
case_offsets: {
|
case_offsets: {
|
||||||
|
@ -815,10 +820,18 @@ impl<'a> Reader<'a> {
|
||||||
OpCode::SetSuper => Op::SetSuper {
|
OpCode::SetSuper => Op::SetSuper {
|
||||||
index: self.read_index()?,
|
index: self.read_index()?,
|
||||||
},
|
},
|
||||||
|
OpCode::Sf32 => Op::Sf32,
|
||||||
|
OpCode::Sf64 => Op::Sf64,
|
||||||
|
OpCode::Si16 => Op::Si16,
|
||||||
|
OpCode::Si32 => Op::Si32,
|
||||||
|
OpCode::Si8 => Op::Si8,
|
||||||
OpCode::StrictEquals => Op::StrictEquals,
|
OpCode::StrictEquals => Op::StrictEquals,
|
||||||
OpCode::Subtract => Op::Subtract,
|
OpCode::Subtract => Op::Subtract,
|
||||||
OpCode::SubtractI => Op::SubtractI,
|
OpCode::SubtractI => Op::SubtractI,
|
||||||
OpCode::Swap => Op::Swap,
|
OpCode::Swap => Op::Swap,
|
||||||
|
OpCode::Sxi1 => Op::Sxi1,
|
||||||
|
OpCode::Sxi16 => Op::Sxi16,
|
||||||
|
OpCode::Sxi8 => Op::Sxi8,
|
||||||
OpCode::Throw => Op::Throw,
|
OpCode::Throw => Op::Throw,
|
||||||
OpCode::TypeOf => Op::TypeOf,
|
OpCode::TypeOf => Op::TypeOf,
|
||||||
OpCode::URShift => Op::URShift,
|
OpCode::URShift => Op::URShift,
|
||||||
|
|
|
@ -427,6 +427,11 @@ pub enum Op {
|
||||||
Label,
|
Label,
|
||||||
LessEquals,
|
LessEquals,
|
||||||
LessThan,
|
LessThan,
|
||||||
|
Lf32,
|
||||||
|
Lf64,
|
||||||
|
Li16,
|
||||||
|
Li32,
|
||||||
|
Li8,
|
||||||
LookupSwitch {
|
LookupSwitch {
|
||||||
default_offset: i32,
|
default_offset: i32,
|
||||||
case_offsets: Vec<i32>,
|
case_offsets: Vec<i32>,
|
||||||
|
@ -505,10 +510,18 @@ pub enum Op {
|
||||||
SetSuper {
|
SetSuper {
|
||||||
index: Index<Multiname>,
|
index: Index<Multiname>,
|
||||||
},
|
},
|
||||||
|
Sf32,
|
||||||
|
Sf64,
|
||||||
|
Si16,
|
||||||
|
Si32,
|
||||||
|
Si8,
|
||||||
StrictEquals,
|
StrictEquals,
|
||||||
Subtract,
|
Subtract,
|
||||||
SubtractI,
|
SubtractI,
|
||||||
Swap,
|
Swap,
|
||||||
|
Sxi1,
|
||||||
|
Sxi16,
|
||||||
|
Sxi8,
|
||||||
Throw,
|
Throw,
|
||||||
TypeOf,
|
TypeOf,
|
||||||
URShift,
|
URShift,
|
||||||
|
|
|
@ -890,6 +890,11 @@ impl<W: Write> Writer<W> {
|
||||||
Op::Label => self.write_opcode(OpCode::Label)?,
|
Op::Label => self.write_opcode(OpCode::Label)?,
|
||||||
Op::LessEquals => self.write_opcode(OpCode::LessEquals)?,
|
Op::LessEquals => self.write_opcode(OpCode::LessEquals)?,
|
||||||
Op::LessThan => self.write_opcode(OpCode::LessThan)?,
|
Op::LessThan => self.write_opcode(OpCode::LessThan)?,
|
||||||
|
Op::Lf32 => self.write_opcode(OpCode::Lf32)?,
|
||||||
|
Op::Lf64 => self.write_opcode(OpCode::Lf64)?,
|
||||||
|
Op::Li16 => self.write_opcode(OpCode::Li16)?,
|
||||||
|
Op::Li32 => self.write_opcode(OpCode::Li32)?,
|
||||||
|
Op::Li8 => self.write_opcode(OpCode::Li8)?,
|
||||||
Op::LookupSwitch {
|
Op::LookupSwitch {
|
||||||
default_offset,
|
default_offset,
|
||||||
ref case_offsets,
|
ref case_offsets,
|
||||||
|
@ -998,10 +1003,18 @@ impl<W: Write> Writer<W> {
|
||||||
self.write_opcode(OpCode::SetSuper)?;
|
self.write_opcode(OpCode::SetSuper)?;
|
||||||
self.write_index(index)?;
|
self.write_index(index)?;
|
||||||
}
|
}
|
||||||
|
Op::Sf32 => self.write_opcode(OpCode::Sf32)?,
|
||||||
|
Op::Sf64 => self.write_opcode(OpCode::Sf64)?,
|
||||||
|
Op::Si16 => self.write_opcode(OpCode::Si16)?,
|
||||||
|
Op::Si32 => self.write_opcode(OpCode::Si32)?,
|
||||||
|
Op::Si8 => self.write_opcode(OpCode::Si8)?,
|
||||||
Op::StrictEquals => self.write_opcode(OpCode::StrictEquals)?,
|
Op::StrictEquals => self.write_opcode(OpCode::StrictEquals)?,
|
||||||
Op::Subtract => self.write_opcode(OpCode::Subtract)?,
|
Op::Subtract => self.write_opcode(OpCode::Subtract)?,
|
||||||
Op::SubtractI => self.write_opcode(OpCode::SubtractI)?,
|
Op::SubtractI => self.write_opcode(OpCode::SubtractI)?,
|
||||||
Op::Swap => self.write_opcode(OpCode::Swap)?,
|
Op::Swap => self.write_opcode(OpCode::Swap)?,
|
||||||
|
Op::Sxi1 => self.write_opcode(OpCode::Sxi1)?,
|
||||||
|
Op::Sxi16 => self.write_opcode(OpCode::Sxi16)?,
|
||||||
|
Op::Sxi8 => self.write_opcode(OpCode::Sxi8)?,
|
||||||
Op::Throw => self.write_opcode(OpCode::Throw)?,
|
Op::Throw => self.write_opcode(OpCode::Throw)?,
|
||||||
Op::TypeOf => self.write_opcode(OpCode::TypeOf)?,
|
Op::TypeOf => self.write_opcode(OpCode::TypeOf)?,
|
||||||
Op::URShift => self.write_opcode(OpCode::URShift)?,
|
Op::URShift => self.write_opcode(OpCode::URShift)?,
|
||||||
|
|
Loading…
Reference in New Issue