goalc: Get CodeTester tests passing on Arm64 (only targetting macOS atm) (#3290)

This PR does the following:
- Designs a mechanism by which arm64 instructions can be encoded and
emitted
- Dispatch our higher-level instruction emitting calls to either x86 or
arm64 instructions depending on what the compiler is set to (defaults to
x86)
- Bare minimum scaffolding to get the arm64 instructions successfully
executing atleast on apple silicon
- Implement enough instructions to get the codetester test suite passing
on arm
This commit is contained in:
Tyler Wilding
2026-03-30 20:20:47 -04:00
committed by GitHub
parent 40cc1f0ae7
commit 64bcd8c030
72 changed files with 17001 additions and 9598 deletions
+6 -4
View File
@@ -1,6 +1,6 @@
/*!
* @file ObjectGenerator.cpp
* Tool to build GOAL object files. Will eventually support v3 and v4.
* Tool to build GOAL object files.
*
* There are 5 steps:
* 1. The user adds static data / instructions and specifies links.
@@ -21,11 +21,13 @@
#include "goalc/debugger/DebugInfo.h"
#include "fmt/format.h"
namespace emitter {
ObjectGenerator::ObjectGenerator(GameVersion version) : m_version(version) {}
ObjectGenerator::ObjectGenerator(GameVersion version)
: m_version(version), m_instruction_set(InstructionSet::X86) {}
ObjectGenerator::ObjectGenerator(GameVersion version, InstructionSet instr_set)
: m_version(version), m_instruction_set(instr_set) {}
/*!
* Build an object file with the v3 format.