#ifndef CEPIS_ABI_INC #define CEPIS_ABI_INC .macro FUNC name .text .globl \name .hidden \name .type \name, @function .p2align 4 \name: .endm .macro PUBFUNC name .text .globl \name .type \name, @function .p2align 4 \name: .endm .macro ENDFUNC name .size \name, . - \name .endm .macro PROLOGUE n=8 .if (\n % 16) != 8 .error "PROLOGUE frame size must be congruent to 8 modulo 16" .endif push %rbp mov %rsp, %rbp push %rbx push %r12 push %r13 push %r14 push %r15 sub $\n, %rsp .endm .macro EPILOGUE lea -40(%rbp), %rsp pop %r15 pop %r14 pop %r13 pop %r12 pop %rbx pop %rbp .endm #define LOCAL0 -48 #define LOCAL1 -56 #define LOCAL2 -64 #define LOCAL3 -72 #define LOCAL4 -80 #define LOCAL5 -88 #define LOCAL6 -96 #define LOCAL7 -104 #endif