TranslateArm: Implement QADD16/QSUB16/UQADD16/UQSUB16.

This commit is contained in:
bunnei 2016-08-12 13:42:16 -04:00 committed by MerryMage
parent 4b09c0d032
commit 8e68e6fdd9
7 changed files with 79 additions and 11 deletions

View file

@ -298,6 +298,22 @@ IR::Value IREmitter::PackedSaturatedSubS8(const IR::Value& a, const IR::Value& b
return Inst(IR::Opcode::PackedSaturatedSubS8, {a, b});
}
IR::Value IREmitter::PackedSaturatedAddU16(const IR::Value& a, const IR::Value& b) {
return Inst(IR::Opcode::PackedSaturatedAddU16, {a, b});
}
IR::Value IREmitter::PackedSaturatedAddS16(const IR::Value& a, const IR::Value& b) {
return Inst(IR::Opcode::PackedSaturatedAddS16, {a, b});
}
IR::Value IREmitter::PackedSaturatedSubU16(const IR::Value& a, const IR::Value& b) {
return Inst(IR::Opcode::PackedSaturatedSubU16, {a, b});
}
IR::Value IREmitter::PackedSaturatedSubS16(const IR::Value& a, const IR::Value& b) {
return Inst(IR::Opcode::PackedSaturatedSubS16, {a, b});
}
IR::Value IREmitter::TransferToFP32(const IR::Value& a) {
return Inst(IR::Opcode::TransferToFP32, {a});
}

View file

@ -102,6 +102,10 @@ public:
IR::Value PackedSaturatedAddS8(const IR::Value& a, const IR::Value& b);
IR::Value PackedSaturatedSubU8(const IR::Value& a, const IR::Value& b);
IR::Value PackedSaturatedSubS8(const IR::Value& a, const IR::Value& b);
IR::Value PackedSaturatedAddU16(const IR::Value& a, const IR::Value& b);
IR::Value PackedSaturatedAddS16(const IR::Value& a, const IR::Value& b);
IR::Value PackedSaturatedSubU16(const IR::Value& a, const IR::Value& b);
IR::Value PackedSaturatedSubS16(const IR::Value& a, const IR::Value& b);
IR::Value TransferToFP32(const IR::Value& a);
IR::Value TransferToFP64(const IR::Value& a);

View file

@ -64,6 +64,10 @@ OPCODE(PackedSaturatedAddU8, T::U32, T::U32, T::U32
OPCODE(PackedSaturatedAddS8, T::U32, T::U32, T::U32 )
OPCODE(PackedSaturatedSubU8, T::U32, T::U32, T::U32 )
OPCODE(PackedSaturatedSubS8, T::U32, T::U32, T::U32 )
OPCODE(PackedSaturatedAddU16, T::U32, T::U32, T::U32 )
OPCODE(PackedSaturatedAddS16, T::U32, T::U32, T::U32 )
OPCODE(PackedSaturatedSubU16, T::U32, T::U32, T::U32 )
OPCODE(PackedSaturatedSubS16, T::U32, T::U32, T::U32 )
// Floating-point
OPCODE(TransferToFP32, T::F32, T::U32 )