X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb/blobdiff_plain/483edf69cdc738c2315040ff9f98e4f25afdf4ae..9ce6487b3fa682ec01de023fe84a7d1d4f8d483d:/base/asm-common.h diff --git a/base/asm-common.h b/base/asm-common.h index 18c61fc1..2b06e529 100644 --- a/base/asm-common.h +++ b/base/asm-common.h @@ -1114,6 +1114,11 @@ name: .macro endprologue .endm +// cmov RD, RN, CC: set RD to RN if CC is satisfied, otherwise do nothing +.macro cmov rd, rn, cc + csel \rd, \rn, \rd, \cc +.endm + // Notational improvement: write `csel.CC' etc., rather than `csel ..., CC'. #define _COND(_) \ _(eq) _(ne) _(cs) _(cc) _(vs) _(vc) _(mi) _(pl) \ @@ -1121,7 +1126,7 @@ name: _(hs) _(lo) #define _INST(_) \ _(ccmp) _(ccmn) \ - _(csel) \ + _(csel) _(cmov) \ _(csinc) _(cinc) _(cset) \ _(csneg) _(cneg) \ _(csinv) _(cinv) _(csetm) @@ -1194,7 +1199,7 @@ name: # define SIZE_OBJ(name) #endif -#if __ELF__ && !defined(WANT_EXECUTABLE_STACK) +#if __ELF__ && !defined(FORCE_EXECUTABLE_STACK) .pushsection .note.GNU-stack, "", _SECTTY(progbits) .popsection #endif