X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb/blobdiff_plain/81ceb2c35de440e701d2f4e6960001395d2b7e97..3709fba58c13ab6b9242ea1c63f7f559901dac30:/base/asm-common.h diff --git a/base/asm-common.h b/base/asm-common.h index b4d4a909..0c209580 100644 --- a/base/asm-common.h +++ b/base/asm-common.h @@ -666,6 +666,22 @@ name: vext.8 \vd, \vn, \vz, #\nbit >> 3 .endm +.macro vrol128 vd, vn, nbit + // Set VD to VN rotated left by NBIT. NBIT must be a multiple of 8. + .if \nbit&3 != 0 + .error "shift quantity must be whole number of bytes" + .endif + vext.8 \vd, \vn, \vn, #16 - (\nbit >> 3) +.endm + +.macro vror128 vd, vn, nbit + // Set VD to VN shifted right by NBIT. NBIT must be a multiple of 8. + .if \nbit&3 != 0 + .error "shift quantity must be whole number of bytes" + .endif + vext.8 \vd, \vn, \vn, #\nbit >> 3 +.endm + // Apply decoration decor to register name reg. #define _REGFORM(reg, decor) _GLUE(_REGFORM_, reg)(decor)