mirror of
https://github.com/radareorg/radare2.git
synced 2025-02-26 09:06:02 +00:00
Add amd64syscall calling convention definition ##anal (#18074)
* Call convention support for x86-64 kernel interface (syscall) %rdi, %rsi, %rdx, %r10, %r8, %r9 Co-authored-by: Dreg <dreg@fr33project.org> Co-authored-by: pancake <pancake@nopcode.org>
This commit is contained in:
parent
8c742b28f0
commit
625138aa97
@ -37,3 +37,12 @@ cc.swift.arg10=xmm4
|
||||
cc.swift.self=r13
|
||||
cc.swift.error=r12
|
||||
cc.swift.ret=rax
|
||||
|
||||
amd64syscall=cc
|
||||
cc.amd64syscall.arg0=rdi
|
||||
cc.amd64syscall.arg1=rsi
|
||||
cc.amd64syscall.arg2=rdx
|
||||
cc.amd64syscall.arg3=r10
|
||||
cc.amd64syscall.arg4=r8
|
||||
cc.amd64syscall.arg5=r9
|
||||
cc.amd64syscall.ret=rax
|
||||
|
@ -7,9 +7,10 @@ e asm.bits = 64
|
||||
afcl
|
||||
EOF
|
||||
EXPECT=<<EOF
|
||||
ms
|
||||
amd64
|
||||
swift
|
||||
amd64
|
||||
amd64syscall
|
||||
ms
|
||||
reg
|
||||
EOF
|
||||
RUN
|
||||
|
@ -90,15 +90,17 @@ tcc `arcc`
|
||||
afcl
|
||||
EOF
|
||||
EXPECT=<<EOF
|
||||
ms
|
||||
amd64
|
||||
swift
|
||||
amd64
|
||||
amd64syscall
|
||||
ms
|
||||
reg
|
||||
r0 reg(r0, r1, r2, r3)
|
||||
rdi reg(rdi, rsi, rdx, rcx)
|
||||
ms
|
||||
amd64
|
||||
swift
|
||||
amd64
|
||||
amd64syscall
|
||||
ms
|
||||
reg
|
||||
EOF
|
||||
RUN
|
||||
|
@ -6,9 +6,10 @@ tcc-*
|
||||
tcc
|
||||
EOF
|
||||
EXPECT=<<EOF
|
||||
ms
|
||||
amd64
|
||||
swift
|
||||
amd64
|
||||
amd64syscall
|
||||
ms
|
||||
reg
|
||||
EOF
|
||||
RUN
|
||||
@ -17,9 +18,10 @@ NAME=tcc
|
||||
FILE=bins/elf/ls
|
||||
CMDS=tcc
|
||||
EXPECT=<<EOF
|
||||
ms
|
||||
amd64
|
||||
swift
|
||||
amd64
|
||||
amd64syscall
|
||||
ms
|
||||
reg
|
||||
EOF
|
||||
RUN
|
||||
@ -32,14 +34,16 @@ tccl
|
||||
tcc*
|
||||
EOF
|
||||
EXPECT=<<EOF
|
||||
["rax ms (rcx, rdx, r8, r9, stack);","rax amd64 (rdi, rsi, rdx, rcx, r8, r9, xmm0, xmm1, xmm2, xmm3, xmm4);","rax r13.swift (rdi, rsi, rdx, rcx, r8, r9, xmm0, xmm1, xmm2, xmm3, xmm4) r12;","rdi reg (rdi, rsi, rdx, rcx);"]
|
||||
rax ms (rcx, rdx, r8, r9, stack);
|
||||
rax amd64 (rdi, rsi, rdx, rcx, r8, r9, xmm0, xmm1, xmm2, xmm3, xmm4);
|
||||
["rax r13.swift (rdi, rsi, rdx, rcx, r8, r9, xmm0, xmm1, xmm2, xmm3, xmm4) r12;","rax amd64 (rdi, rsi, rdx, rcx, r8, r9, xmm0, xmm1, xmm2, xmm3, xmm4);","rax amd64syscall (rdi, rsi, rdx, r10, r8, r9);","rax ms (rcx, rdx, r8, r9, stack);","rdi reg (rdi, rsi, rdx, rcx);"]
|
||||
rax r13.swift (rdi, rsi, rdx, rcx, r8, r9, xmm0, xmm1, xmm2, xmm3, xmm4) r12;
|
||||
rax amd64 (rdi, rsi, rdx, rcx, r8, r9, xmm0, xmm1, xmm2, xmm3, xmm4);
|
||||
rax amd64syscall (rdi, rsi, rdx, r10, r8, r9);
|
||||
rax ms (rcx, rdx, r8, r9, stack);
|
||||
rdi reg (rdi, rsi, rdx, rcx);
|
||||
tfc rax ms (rcx, rdx, r8, r9, stack);
|
||||
tfc rax amd64 (rdi, rsi, rdx, rcx, r8, r9, xmm0, xmm1, xmm2, xmm3, xmm4);
|
||||
tfc rax r13.swift (rdi, rsi, rdx, rcx, r8, r9, xmm0, xmm1, xmm2, xmm3, xmm4) r12;
|
||||
tfc rax amd64 (rdi, rsi, rdx, rcx, r8, r9, xmm0, xmm1, xmm2, xmm3, xmm4);
|
||||
tfc rax amd64syscall (rdi, rsi, rdx, r10, r8, r9);
|
||||
tfc rax ms (rcx, rdx, r8, r9, stack);
|
||||
tfc rdi reg (rdi, rsi, rdx, rcx);
|
||||
EOF
|
||||
RUN
|
||||
|
Loading…
x
Reference in New Issue
Block a user