X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb/blobdiff_plain/e275090f9f712a8d9dda4e309ce38bb520778016..a90d420cbe87490c844ae422c966e746d3134b07:/base/asm-common.h diff --git a/base/asm-common.h b/base/asm-common.h index 44c223da..d162a5d9 100644 --- a/base/asm-common.h +++ b/base/asm-common.h @@ -452,10 +452,20 @@ name: #endif #define WHOLE(reg) _REGFORM(reg, r) +// Macros for some common registers. +#define AX R_a(r) +#define BX R_b(r) +#define CX R_c(r) +#define DX R_d(r) +#define SI R_si(r) +#define DI R_di(r) +#define BP R_bp(r) +#define SP R_sp(r) + // Stack management and unwinding. -.macro setfp fp=R_bp(r), offset=0 +.macro setfp fp=BP, offset=0 .if \offset == 0 - mov \fp, R_sp(r) + mov \fp, SP #if __ELF__ .cfi_def_cfa_register \fp #endif @@ -463,7 +473,7 @@ name: .seh_setframe \fp, 0 #endif .else - lea \fp, [R_sp(r) + \offset] + lea \fp, [SP + \offset] #if __ELF__ .cfi_def_cfa_register \fp .cfi_adjust_cfa_offset -\offset @@ -478,14 +488,14 @@ name: .macro _dropfp fp, offset=0 .if \offset == 0 - mov R_sp(r), \fp + mov SP, \fp #if __ELF__ - .cfi_def_cfa_register R_sp(r) + .cfi_def_cfa_register SP #endif .else - lea R_sp(r), [\fp - \offset] + lea SP, [\fp - \offset] #if __ELF__ - .cfi_def_cfa_register R_sp(r) + .cfi_def_cfa_register SP .cfi_adjust_cfa_offset +\offset #endif .endif @@ -494,7 +504,7 @@ name: .endm .macro stalloc n - sub R_sp(r), \n + sub SP, \n #if __ELF__ .cfi_adjust_cfa_offset +\n #endif @@ -504,7 +514,7 @@ name: .endm .macro stfree n - add R_sp(r), \n + add SP, \n #if __ELF__ .cfi_adjust_cfa_offset -\n #endif @@ -530,14 +540,14 @@ name: .endm .macro savexmm r, offset - movdqa [R_sp(r) + \offset], \r + movdqa [SP + \offset], \r #if ABI_WIN && CPUFAM_AMD64 .seh_savexmm \r, \offset #endif .endm .macro rstrxmm r, offset - movdqa \r, [R_sp(r) + \offset] + movdqa \r, [SP + \offset] .endm .macro endprologue