rizin/test/db/cmd/cmd_tcc
pancake 391caa460a 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>
2020-12-22 08:26:41 +08:00

95 lines
1.6 KiB
Text

NAME=tcc-star
FILE=bins/elf/ls
CMDS=<<EOF
tcc
tcc-*
tcc
EOF
EXPECT=<<EOF
swift
amd64
amd64syscall
ms
reg
EOF
RUN
NAME=tcc
FILE=bins/elf/ls
CMDS=tcc
EXPECT=<<EOF
swift
amd64
amd64syscall
ms
reg
EOF
RUN
NAME=tccj, tccl, tcc* outputs
FILE=bins/elf/ls
CMDS=<<EOF
tccj
tccl
tcc*
EOF
EXPECT=<<EOF
["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 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
NAME=tcc
FILE=-
CMDS=<<EOF
e asm.arch=x86
e asm.bits=32
?e 1
"tcc eax jeje(ebx, ecx)"
tcc jeje
tcc- jeje
?e 2
"tcc eax jeje(ebx, ecx)"
tcc jeje
tcc- jeje
?e 3
"tcc eax jeje (ebx, ecx)"
tcc jeje
tcc- jeje
?e 4
"tcc eax jeje (ebx, ecx)"
tcc jeje
tcc- jeje
?e 5
"tcc eax jeje ( ebx, ecx )"
tcc jeje
tcc- jeje
?e 6
"tcc eax jeje ( ebx , ecx )"
tcc jeje
tcc- jeje
EOF
EXPECT=<<EOF
1
eax jeje (ebx, ecx);
2
eax jeje (ebx, ecx);
3
eax jeje (ebx, ecx);
4
eax jeje (ebx, ecx);
5
eax jeje (ebx, ecx);
6
eax jeje (ebx, ecx);
EOF
RUN