default.cc=amd64 # win64 passes argument N in rcx/rdx/r8/r9 OR xmm0-3 depending on its type: one # sequence with per-type homes, not two parallel sequences like sysv. A separate # fparg sequence would invent extra arguments, so this cc must not define one. ms=cc cc.ms.arg0=rcx cc.ms.arg1=rdx cc.ms.arg2=r8 cc.ms.arg3=r9 cc.ms.argn=stack cc.ms.stackalloc=lower cc.ms.shadow=32 cc.ms.pop=caller cc.ms.clobber=rax,rcx,rdx,r8,r9,r10,r11,xmm0,xmm1,xmm2,xmm3,xmm4,xmm5 cc.ms.preserve=rbx,rbp,rdi,rsi,rsp,r12,r13,r14,r15,xmm6,xmm7,xmm8,xmm9,xmm10,xmm11,xmm12,xmm13,xmm14,xmm15 cc.ms.ret0=rax cc.ms.fpret0=xmm0 amd64=cc cc.amd64.arg0=rdi cc.amd64.arg1=rsi cc.amd64.arg2=rdx cc.amd64.arg3=rcx cc.amd64.arg4=r8 cc.amd64.arg5=r9 cc.amd64.argn=stack cc.amd64.fparg0=xmm0 cc.amd64.fparg1=xmm1 cc.amd64.fparg2=xmm2 cc.amd64.fparg3=xmm3 cc.amd64.fparg4=xmm4 cc.amd64.fparg5=xmm5 cc.amd64.fparg6=xmm6 cc.amd64.fparg7=xmm7 cc.amd64.stackalloc=lower cc.amd64.redzone=128 cc.amd64.retmech=stack:0:8:8 cc.amd64.pop=caller cc.amd64.clobber=rax,rcx,rdx,rsi,rdi,r8,r9,r10,r11,xmm0,xmm1,xmm2,xmm3,xmm4,xmm5,xmm6,xmm7,xmm8,xmm9,xmm10,xmm11,xmm12,xmm13,xmm14,xmm15 cc.amd64.preserve=rbx,rbp,rsp,r12,r13,r14,r15 cc.amd64.ret0=rax cc.amd64.fpret0=xmm0 swift=cc cc.swift.arg0=rdi cc.swift.arg1=rsi cc.swift.arg2=rdx cc.swift.arg3=rcx cc.swift.arg4=r8 cc.swift.arg5=r9 cc.swift.argn=stack cc.swift.fparg0=xmm0 cc.swift.fparg1=xmm1 cc.swift.fparg2=xmm2 cc.swift.fparg3=xmm3 cc.swift.fparg4=xmm4 cc.swift.fparg5=xmm5 cc.swift.fparg6=xmm6 cc.swift.fparg7=xmm7 cc.swift.stackalloc=lower cc.swift.clobber=rax,rcx,rdx,rsi,rdi,r8,r9,r10,r11,r12,xmm0,xmm1,xmm2,xmm3,xmm4,xmm5,xmm6,xmm7,xmm8,xmm9,xmm10,xmm11,xmm12,xmm13,xmm14,xmm15 cc.swift.preserve=rbx,rbp,rsp,r13,r14,r15 cc.swift.self=r13 cc.swift.error=r12 cc.swift.pop=caller cc.swift.ret0=rax cc.swift.fpret0=xmm0 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.pop=caller cc.amd64syscall.clobber=rax,rcx,r11 cc.amd64syscall.ret0=rax p9=cc cc.p9.arg0=rbp cc.p9.argn=stack cc.p9.stackalloc=lower cc.p9.pop=caller cc.p9.ret0=rax dlang=cc cc.dlang.ret0=rax cc.dlang.ret1=rdx cc.dlang.retn=2 cc.dlang.arg0=rdi cc.dlang.arg1=rsi cc.dlang.arg2=rdx cc.dlang.arg3=rcx cc.dlang.arg4=r8d cc.dlang.arg5=r9d cc.dlang.argn=stack cc.dlang.stackalloc=lower cc.dlang.pop=caller # Go ABIInternal: R14 holds the goroutine pointer, not a receiver. golang=cc cc.golang.arg0=rax cc.golang.arg1=rbx cc.golang.arg2=rcx cc.golang.arg3=rdi cc.golang.arg4=rsi cc.golang.arg5=r8 cc.golang.arg6=r9 cc.golang.arg7=r10 cc.golang.arg8=r11 cc.golang.argn=stack cc.golang.fparg0=xmm0 cc.golang.fparg1=xmm1 cc.golang.fparg2=xmm2 cc.golang.fparg3=xmm3 cc.golang.fparg4=xmm4 cc.golang.fparg5=xmm5 cc.golang.fparg6=xmm6 cc.golang.fparg7=xmm7 cc.golang.fparg8=xmm8 cc.golang.fparg9=xmm9 cc.golang.fparg10=xmm10 cc.golang.fparg11=xmm11 cc.golang.fparg12=xmm12 cc.golang.fparg13=xmm13 cc.golang.fparg14=xmm14 cc.golang.stackalloc=lower cc.golang.pop=caller cc.golang.ret0=rax cc.golang.ret1=rbx cc.golang.ret2=rcx cc.golang.ret3=rdi cc.golang.ret4=rsi cc.golang.ret5=r8 cc.golang.ret6=r9 cc.golang.ret7=r10 cc.golang.ret8=r11 cc.golang.retn=9 cc.golang.fpret0=xmm0 # ABI0 results follow the arguments on the caller's stack. golang_abi0=cc cc.golang_abi0.argn=stack cc.golang_abi0.stackalloc=lower cc.golang_abi0.pop=caller cc.golang_abi0.ret0=stack