From 4c19461753e535b9c7d638be0f50b9ac1f3ab389 Mon Sep 17 00:00:00 2001 From: NikVolf Date: Mon, 26 Jun 2017 22:26:03 +0300 Subject: [PATCH] remaining ops --- src/elements/ops.rs | 210 ++++++++++++++++++++++---------------------- 1 file changed, 107 insertions(+), 103 deletions(-) diff --git a/src/elements/ops.rs b/src/elements/ops.rs index 36b3de0..35d9b68 100644 --- a/src/elements/ops.rs +++ b/src/elements/ops.rs @@ -1052,114 +1052,118 @@ impl fmt::Display for Opcode { I64GeS => write!(f, "i64.ge_s"), I64GeU => write!(f, "i64.ge_u"), - /* - F32Eq => op!(writer, 0x5b), - F32Ne => op!(writer, 0x5c), - F32Lt => op!(writer, 0x5d), - F32Gt => op!(writer, 0x5e), - F32Le => op!(writer, 0x5f), - F32Ge => op!(writer, 0x60), + F32Eq => write!(f, "f32.eq"), + F32Ne => write!(f, "f32.ne"), + F32Lt => write!(f, "f32.lt"), + F32Gt => write!(f, "f32.gt"), + F32Le => write!(f, "f32.le"), + F32Ge => write!(f, "f32.ge"), - F64Eq => op!(writer, 0x61), - F64Ne => op!(writer, 0x62), - F64Lt => op!(writer, 0x63), - F64Gt => op!(writer, 0x64), - F64Le => op!(writer, 0x65), - F64Ge => op!(writer, 0x66), + F64Eq => write!(f, "f64.eq"), + F64Ne => write!(f, "f64.ne"), + F64Lt => write!(f, "f64.lt"), + F64Gt => write!(f, "f64.gt"), + F64Le => write!(f, "f64.le"), + F64Ge => write!(f, "f64.ge"), - I32Clz => op!(writer, 0x67), - I32Ctz => op!(writer, 0x68), - I32Popcnt => op!(writer, 0x69), - I32Add => op!(writer, 0x6a), - I32Sub => op!(writer, 0x6b), - I32Mul => op!(writer, 0x6c), - I32DivS => op!(writer, 0x6d), - I32DivU => op!(writer, 0x6e), - I32RemS => op!(writer, 0x6f), - I32RemU => op!(writer, 0x70), - I32And => op!(writer, 0x71), - I32Or => op!(writer, 0x72), - I32Xor => op!(writer, 0x73), - I32Shl => op!(writer, 0x74), - I32ShrS => op!(writer, 0x75), - I32ShrU => op!(writer, 0x76), - I32Rotl => op!(writer, 0x77), - I32Rotr => op!(writer, 0x78), + I32Clz => write!(f, "i32.clz"), + I32Ctz => write!(f, "i32.ctz"), + I32Popcnt => write!(f, "i32.popcnt"), + I32Add => write!(f, "i32.add"), + I32Sub => write!(f, "i32.sub"), + I32Mul => write!(f, "i32.mul"), + I32DivS => write!(f, "i32.div_s"), + I32DivU => write!(f, "i32.div_u"), + I32RemS => write!(f, "i32.rem_s"), + I32RemU => write!(f, "i32.rem_u"), + I32And => write!(f, "i32.and"), + I32Or => write!(f, "i32.or"), + I32Xor => write!(f, "i32.xor"), + I32Shl => write!(f, "i32.shl"), + I32ShrS => write!(f, "i32.shr_s"), + I32ShrU => write!(f, "i32.shr_u"), + I32Rotl => write!(f, "i32.rotl"), + I32Rotr => write!(f, "i32.rotr"), + + I64Clz => write!(f, "i64.clz"), + I64Ctz => write!(f, "i64.ctz"), + I64Popcnt => write!(f, "i64.popcnt"), + I64Add => write!(f, "i64.add"), + I64Sub => write!(f, "i64.sub"), + I64Mul => write!(f, "i64.mul"), + I64DivS => write!(f, "i64.div_s"), + I64DivU => write!(f, "i64.div_u"), + I64RemS => write!(f, "i64.rem_s"), + I64RemU => write!(f, "i64.rem_u"), + I64And => write!(f, "i64.and"), + I64Or => write!(f, "i64.or"), + I64Xor => write!(f, "i64.xor"), + I64Shl => write!(f, "i64.shl"), + I64ShrS => write!(f, "i64.shr_s"), + I64ShrU => write!(f, "i64.shr_u"), + I64Rotl => write!(f, "i64.rotl"), + I64Rotr => write!(f, "i64.rotr"), + + F32Abs => write!(f, "f32.abs"), + F32Neg => write!(f, "f32.neg"), + F32Ceil => write!(f, "f32.ceil"), + F32Floor => write!(f, "f32.floor"), + F32Trunc => write!(f, "f32.trunc"), + F32Nearest => write!(f, "f32.nearest"), + F32Sqrt => write!(f, "f32.sqrt"), + F32Add => write!(f, "f32.add"), + F32Sub => write!(f, "f32.sub"), + F32Mul => write!(f, "f32.mul"), + F32Div => write!(f, "f32.div"), + F32Min => write!(f, "f32.min"), + F32Max => write!(f, "f32.max"), + F32Copysign => write!(f, "f32.copysign"), - I64Clz => op!(writer, 0x79), - I64Ctz => op!(writer, 0x7a), - I64Popcnt => op!(writer, 0x7b), - I64Add => op!(writer, 0x7c), - I64Sub => op!(writer, 0x7d), - I64Mul => op!(writer, 0x7e), - I64DivS => op!(writer, 0x7f), - I64DivU => op!(writer, 0x80), - I64RemS => op!(writer, 0x81), - I64RemU => op!(writer, 0x82), - I64And => op!(writer, 0x83), - I64Or => op!(writer, 0x84), - I64Xor => op!(writer, 0x85), - I64Shl => op!(writer, 0x86), - I64ShrS => op!(writer, 0x87), - I64ShrU => op!(writer, 0x88), - I64Rotl => op!(writer, 0x89), - I64Rotr => op!(writer, 0x8a), - F32Abs => op!(writer, 0x8b), - F32Neg => op!(writer, 0x8c), - F32Ceil => op!(writer, 0x8d), - F32Floor => op!(writer, 0x8e), - F32Trunc => op!(writer, 0x8f), - F32Nearest => op!(writer, 0x90), - F32Sqrt => op!(writer, 0x91), - F32Add => op!(writer, 0x92), - F32Sub => op!(writer, 0x93), - F32Mul => op!(writer, 0x94), - F32Div => op!(writer, 0x95), - F32Min => op!(writer, 0x96), - F32Max => op!(writer, 0x97), - F32Copysign => op!(writer, 0x98), - F64Abs => op!(writer, 0x99), - F64Neg => op!(writer, 0x9a), - F64Ceil => op!(writer, 0x9b), - F64Floor => op!(writer, 0x9c), - F64Trunc => op!(writer, 0x9d), - F64Nearest => op!(writer, 0x9e), - F64Sqrt => op!(writer, 0x9f), - F64Add => op!(writer, 0xa0), - F64Sub => op!(writer, 0xa1), - F64Mul => op!(writer, 0xa2), - F64Div => op!(writer, 0xa3), - F64Min => op!(writer, 0xa4), - F64Max => op!(writer, 0xa5), - F64Copysign => op!(writer, 0xa6), + F64Abs => write!(f, "f64.abs"), + F64Neg => write!(f, "f64.neg"), + F64Ceil => write!(f, "f64.ceil"), + F64Floor => write!(f, "f64.floor"), + F64Trunc => write!(f, "f64.trunc"), + F64Nearest => write!(f, "f64.nearest"), + F64Sqrt => write!(f, "f64.sqrt"), + F64Add => write!(f, "f64.add"), + F64Sub => write!(f, "f64.sub"), + F64Mul => write!(f, "f64.mul"), + F64Div => write!(f, "f64.div"), + F64Min => write!(f, "f64.min"), + F64Max => write!(f, "f64.max"), + F64Copysign => write!(f, "f64.copysign"), - I32WarpI64 => op!(writer, 0xa7), - I32TruncSF32 => op!(writer, 0xa8), - I32TruncUF32 => op!(writer, 0xa9), - I32TruncSF64 => op!(writer, 0xaa), - I32TruncUF64 => op!(writer, 0xab), - I64ExtendSI32 => op!(writer, 0xac), - I64ExtendUI32 => op!(writer, 0xad), - I64TruncSF32 => op!(writer, 0xae), - I64TruncUF32 => op!(writer, 0xaf), - I64TruncSF64 => op!(writer, 0xb0), - I64TruncUF64 => op!(writer, 0xb1), - F32ConvertSI32 => op!(writer, 0xb2), - F32ConvertUI32 => op!(writer, 0xb3), - F32ConvertSI64 => op!(writer, 0xb4), - F32ConvertUI64 => op!(writer, 0xb5), - F32DemoteF64 => op!(writer, 0xb6), - F64ConvertSI32 => op!(writer, 0xb7), - F64ConvertUI32 => op!(writer, 0xb8), - F64ConvertSI64 => op!(writer, 0xb9), - F64ConvertUI64 => op!(writer, 0xba), - F64PromoteF32 => op!(writer, 0xbb), + I32WarpI64 => write!(f, "i32.wrap/i64"), + I32TruncSF32 => write!(f, "i32.trunc_s/f32"), + I32TruncUF32 => write!(f, "i32.trunc_u/f32"), + I32TruncSF64 => write!(f, "i32.trunc_s/f64"), + I32TruncUF64 => write!(f, "i32.trunc_u/f64"), - I32ReinterpretF32 => op!(writer, 0xbc), - I64ReinterpretF64 => op!(writer, 0xbd), - F32ReinterpretI32 => op!(writer, 0xbe), - F64ReinterpretI64 => op!(writer, 0xbf),*/ - _ => fmt_op!(f, "unknown"), + I64ExtendSI32 => write!(f, "i64.extend_s/i32"), + I64ExtendUI32 => write!(f, "i64.extend_u/i32"), + + I64TruncSF32 => write!(f, "i64.trunc_s/f32"), + I64TruncUF32 => write!(f, "i64.trunc_u/f32"), + I64TruncSF64 => write!(f, "i64.trunc_s/f64"), + I64TruncUF64 => write!(f, "i64.trunc_u/f64"), + + F32ConvertSI32 => write!(f, "f32.convert_s/i32"), + F32ConvertUI32 => write!(f, "f32.convert_u/i32"), + F32ConvertSI64 => write!(f, "f32.convert_s/i64"), + F32ConvertUI64 => write!(f, "f32.convert_u/i64"), + F32DemoteF64 => write!(f, "f32.demote/f64"), + + F64ConvertSI32 => write!(f, "f64.convert_s/i32"), + F64ConvertUI32 => write!(f, "f64.convert_u/i32"), + F64ConvertSI64 => write!(f, "f64.convert_s/i64"), + F64ConvertUI64 => write!(f, "f64.convert_u/i64"), + F64PromoteF32 => write!(f, "f64.promote/f32"), + + I32ReinterpretF32 => write!(f, "i32.reinterpret/f32"), + I64ReinterpretF64 => write!(f, "i64.reinterpret/f64"), + F32ReinterpretI32 => write!(f, "f32.reinterpret/i32"), + F64ReinterpretI64 => write!(f, "f64.reinterpret/i64"), } } }