mohitmishra786/low-level-dev-skills/abi-and-calling-conventions

Claude Code and agent skill by mohitmishra786/low-level-dev-skills

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

ABI and calling conventions skill for cross-language boundaries. Use when explaining System V AMD64, ARM AAPCS, RISC-V psABI, stack frames, variadic calls, or FFI register rules. Activates on queries about calling convention, ABI, System V AMD64, AAPCS, stack frame, variadic function, or FFI registers.

Install

npx vskill@latest install mohitmishra786/low-level-dev-skills/abi-and-calling-conventions

SKILL.md

ABI and Calling Conventions

Purpose

Document application binary interface (ABI) rules: register roles, stack alignment, argument passing, return values, and variadic conventions across System V AMD64, ARM AAPCS, and RISC-V — essential for assembly, FFI, and debugging.

When to Use

  • Writing assembly thunks or inline asm clobbers
  • Debugging corrupted stack in mixed C/asm
  • FFI between Rust/C/Zig (skills/rust/rust-ffi, skills/zig/zig-cinterop)
  • Reading disassembly from skills/debuggers/gdb

Workflow

1. System V AMD64 (Linux/macOS)
ItemRule
Integer argsrdi, rsi, rdx, rcx, r8, r9
XMM argsxmm0–xmm7 (float)
Return int/ptrrax (+ rdx for 128-bit)
Stack alignment16-byte before call
Red zone128 bytes below rsp (Linux)
Callee-savedrbx, rbp, r12–r15
c
/* void foo(int a, int b, int c, int d, int e, int f, int g); */
/* a–f in regs, g on stack */

Windows x64 differs — see skills/compilers/msvc-cl.

2. ARM AAPCS (AArch32/AArch64)

AArch64:

ItemRule
Integer argsx0–x7
Float argsv0–v7
Returnx0/x1 or v0
Stack align16-byte
Callee-savedx19–x28, fp (x29), lr (x30)

Thumb interworking: LSB of function pointer set for Thumb code.

See skills/low-level-programming/assembly-arm.

3. RISC-V psABI (RV64)
ItemRule
Integer argsa0–a7
Callee-saveds0–s11, sp
Returna0, a1
Stack align16-byte

See skills/low-level-programming/assembly-riscv.

4. Stack frame layout (conceptual)
high addresses
├── return address
├── saved frame pointer
├── local variables
├── spill slots / alignment padding
└── outgoing args (if any)
low addresses (rsp)
5. Variadic functions

System V: al holds number of vector args used; register_save_area on stack for va_start. Prefer typed wrappers over raw va_arg in portable FFI.

6. Verify in compiler output
bash
gcc -O2 -S -o - foo.c # study .cfi_* and mov args
objdump -d -M intel ./a.out
7. Agent usage
/abi-and-calling-conventions Which registers hold args 5–8 in AArch64 for my C function?

Common Problems

SymptomCauseFix
Crash on callStack misalignedAlign rsp mod 16
Wrong float argXMM vs GPR mismatchMatch prototype
Corrupt callee-savedAsm clobber missingList in clobber or save
FFI garbageWindows vs SysV mixMatch toolchain ABI
Variadic UBWrong type to va_argCast to promoted type

Related Skills

  • skills/low-level-programming/assembly-x86 — x86-64 asm
  • skills/low-level-programming/assembly-arm — AAPCS examples
  • skills/low-level-programming/assembly-riscv — RISC-V asm
  • skills/rust/rust-ffi — extern "C" guarantees
  • skills/binaries/elf-inspection — symbol and relocation views

Security

  • Security scanPassed, 95 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
237
Repository forks
28
7-day trend score
27

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/mohitmishra786/low-level-dev-skills/abi-and-calling-conventions/badge)](https://verified-skill.com/skills/mohitmishra786/low-level-dev-skills/abi-and-calling-conventions)

Something wrong with this skill or its page? Tell us.