mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-06 18:00:17 +02:00
ARMEmitter: Handle SVE conditionally terminate scalars group
This commit is contained in:
1 parent
ad37c19043
commit
5ee2db34a7
2 files changed
+18
-2
No files matched your search
@@ -1469,7 +1469,19 @@ public:
|
||||
}
|
||||
|
||||
// SVE conditionally terminate scalars
|
||||
// XXX:
|
||||
template <typename T>
|
||||
requires IsXOrWRegister<T>
|
||||
void ctermeq(T rn, T rm) {
|
||||
constexpr auto size = std::is_same_v<T, XRegister> ? SubRegSize::i64Bit : SubRegSize::i32Bit;
|
||||
SVEIntCompareScalar(0b1000, 0, 0b0000, size, rn, rm);
|
||||
}
|
||||
template <typename T>
|
||||
requires IsXOrWRegister<T>
|
||||
void ctermne(T rn, T rm) {
|
||||
constexpr auto size = std::is_same_v<T, XRegister> ? SubRegSize::i64Bit : SubRegSize::i32Bit;
|
||||
SVEIntCompareScalar(0b1000, 1, 0b0000, size, rn, rm);
|
||||
}
|
||||
|
||||
// SVE pointer conflict compare
|
||||
// XXX:
|
||||
|
||||
|
||||
+5
-1
@@ -1675,7 +1675,11 @@ TEST_CASE_METHOD(TestDisassembler, "Emitter: SVE: SVE integer compare scalar cou
|
||||
}
|
||||
|
||||
TEST_CASE_METHOD(TestDisassembler, "Emitter: SVE: SVE conditionally terminate scalars") {
|
||||
// TODO: Implement in emitter.
|
||||
TEST_SINGLE(ctermeq(XReg::x30, XReg::x29), "ctermeq x30, x29");
|
||||
TEST_SINGLE(ctermeq(WReg::w30, WReg::w29), "ctermeq w30, w29");
|
||||
|
||||
TEST_SINGLE(ctermne(XReg::x30, XReg::x29), "ctermne x30, x29");
|
||||
TEST_SINGLE(ctermne(WReg::w30, WReg::w29), "ctermne w30, w29");
|
||||
}
|
||||
|
||||
TEST_CASE_METHOD(TestDisassembler, "Emitter: SVE: SVE pointer conflict compare") {
|
||||
|
||||
Reference in new issue
Block a user