Added basic support for arm64
This commit is contained in:
@ -9,6 +9,11 @@ const (
|
||||
CPU_ARM_64 CPU = CPU_ARM | 0x01000000
|
||||
)
|
||||
|
||||
const (
|
||||
CPU_SUBTYPE_ARM64_ALL = 0
|
||||
CPU_SUBTYPE_X86_64_ALL = 3
|
||||
)
|
||||
|
||||
type Prot uint32
|
||||
|
||||
const (
|
||||
|
@ -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,
|
||||
|
Reference in New Issue
Block a user