Added basic support for arm64

This commit is contained in:
Eduard Urbach 2025-03-06 13:40:17 +01:00
parent cc1c990dc8
commit dfe807c2e2
Signed by: eduard
GPG key ID: 49226B848C78F6C8
25 changed files with 270 additions and 33 deletions

View file

@ -28,13 +28,24 @@ func Write(writer io.Writer, code []byte, data []byte) {
var (
codeStart, codePadding = fs.Align(HeaderEnd, config.Align)
dataStart, dataPadding = fs.Align(codeStart+len(code), config.Align)
arch CPU
microArch uint32
)
switch config.TargetArch {
case config.ARM:
arch = CPU_ARM_64
microArch = CPU_SUBTYPE_ARM64_ALL | 0x80000000
case config.X86:
arch = CPU_X86_64
microArch = CPU_SUBTYPE_X86_64_ALL | 0x80000000
}
m := &MachO{
Header: Header{
Magic: 0xFEEDFACF,
Architecture: CPU_X86_64,
MicroArchitecture: 3 | 0x80000000,
Architecture: arch,
MicroArchitecture: microArch,
Type: TypeExecute,
NumCommands: 4,
SizeCommands: SizeCommands,