mirror of
https://github.com/open-goal/jak-project
synced 2026-08-15 04:51:00 -04:00
goalc: Implement the bulk of ARM64 instructions from x86 (#4318)
Less than 100 instructions left to implement, with the vast vast majority being load-and-stores. These will likely be knocked out quickly but they require a more involved implementation than just simply translating the instructions (several need multiple instructions, others may need reserved registers (x16 or x17 are common for this purpose)) This is a good milestone to get something pushed to master.
This commit is contained in:
@@ -634,20 +634,20 @@ TEST(EmitterAVX, VPSHUFHW) {
|
||||
TEST(EmitterAVX, movq_to_gpr_from_xmm) {
|
||||
CodeTester tester;
|
||||
tester.init_code_buffer(1024);
|
||||
tester.emit(IGen::movq_gpr64_xmm64(tester.generator(), RSP, XMM0 + 3));
|
||||
tester.emit(IGen::movq_gpr64_xmm64(tester.generator(), RSP, XMM0 + 13));
|
||||
tester.emit(IGen::movq_gpr64_xmm64(tester.generator(), R12, XMM0 + 3));
|
||||
tester.emit(IGen::movq_gpr64_xmm64(tester.generator(), R12, XMM0 + 13));
|
||||
tester.emit(IGen::movq_gpr64_f64(tester.generator(), RSP, XMM0 + 3));
|
||||
tester.emit(IGen::movq_gpr64_f64(tester.generator(), RSP, XMM0 + 13));
|
||||
tester.emit(IGen::movq_gpr64_f64(tester.generator(), R12, XMM0 + 3));
|
||||
tester.emit(IGen::movq_gpr64_f64(tester.generator(), R12, XMM0 + 13));
|
||||
EXPECT_EQ(tester.dump_to_hex_string(true), "66480F7EDC664C0F7EEC66490F7EDC664D0F7EEC");
|
||||
}
|
||||
|
||||
TEST(EmitterAVX, movq_to_xmm_from_gpr) {
|
||||
CodeTester tester;
|
||||
tester.init_code_buffer(1024);
|
||||
tester.emit(IGen::movq_xmm64_gpr64(tester.generator(), XMM0 + 3, RSP));
|
||||
tester.emit(IGen::movq_xmm64_gpr64(tester.generator(), XMM0 + 13, RSP));
|
||||
tester.emit(IGen::movq_xmm64_gpr64(tester.generator(), XMM0 + 3, R12));
|
||||
tester.emit(IGen::movq_xmm64_gpr64(tester.generator(), XMM0 + 13, R12));
|
||||
tester.emit(IGen::movq_f64_gpr64(tester.generator(), XMM0 + 3, RSP));
|
||||
tester.emit(IGen::movq_f64_gpr64(tester.generator(), XMM0 + 13, RSP));
|
||||
tester.emit(IGen::movq_f64_gpr64(tester.generator(), XMM0 + 3, R12));
|
||||
tester.emit(IGen::movq_f64_gpr64(tester.generator(), XMM0 + 13, R12));
|
||||
EXPECT_EQ(tester.dump_to_hex_string(true), "66480F6EDC664C0F6EEC66490F6EDC664D0F6EEC");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user