Added basic support for arm64
This commit is contained in:
parent
cc1c990dc8
commit
dfe807c2e2
25 changed files with 270 additions and 33 deletions
|
@ -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,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue