Added basic support for arm64
This commit is contained in:
parent
cc1c990dc8
commit
dfe807c2e2
25 changed files with 270 additions and 33 deletions
|
@ -4,6 +4,7 @@ const (
|
|||
LittleEndian = 1
|
||||
TypeExecutable = 2
|
||||
ArchitectureAMD64 = 0x3E
|
||||
ArchitectureARM64 = 0xB7
|
||||
)
|
||||
|
||||
type ProgramType int32
|
||||
|
|
|
@ -23,8 +23,16 @@ 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 int16
|
||||
)
|
||||
|
||||
switch config.TargetArch {
|
||||
case config.ARM:
|
||||
arch = ArchitectureARM64
|
||||
case config.X86:
|
||||
arch = ArchitectureAMD64
|
||||
}
|
||||
|
||||
elf := &ELF{
|
||||
Header: Header{
|
||||
Magic: [4]byte{0x7F, 'E', 'L', 'F'},
|
||||
|
@ -34,7 +42,7 @@ func Write(writer io.Writer, code []byte, data []byte) {
|
|||
OSABI: 0,
|
||||
ABIVersion: 0,
|
||||
Type: TypeExecutable,
|
||||
Architecture: ArchitectureAMD64,
|
||||
Architecture: arch,
|
||||
FileVersion: 1,
|
||||
EntryPointInMemory: int64(config.BaseAddress + codeStart),
|
||||
ProgramHeaderOffset: HeaderSize,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue