XCHAL_NUM_AREGS
#define WSBITS (XCHAL_NUM_AREGS / 4) /* width of WINDOWSTART in bits */
unsigned long areg[XCHAL_NUM_AREGS] __aligned(16);
" .rept (" __stringify(XCHAL_NUM_AREGS) " - 16) / 12\n"
#if XCHAL_NUM_AREGS % 12 == 0
#elif XCHAL_NUM_AREGS % 12 == 4
#elif XCHAL_NUM_AREGS % 12 == 8
#if XCHAL_NUM_AREGS > 16
#if XCHAL_NUM_AREGS == 32
DEFINE(PT_AREG_END, offsetof (struct pt_regs, areg[XCHAL_NUM_AREGS]));
DEFINE(PT_USER_SIZE, offsetof(struct pt_regs, areg[XCHAL_NUM_AREGS]));
#if XCHAL_NUM_AREGS > 16
#if XCHAL_NUM_AREGS > 32
#if XCHAL_NUM_AREGS % 12 == 0
#elif XCHAL_NUM_AREGS % 12 == 4
#elif XCHAL_NUM_AREGS % 12 == 8
int caller_ars = XCHAL_NUM_AREGS - callinc * 4;
memcpy(regs->areg + XCHAL_NUM_AREGS - newregs.windowbase * 4,
case REG_AR_BASE ... REG_AR_BASE + XCHAL_NUM_AREGS - 1:
case REG_AR_BASE ... REG_AR_BASE + XCHAL_NUM_AREGS - 1:
regs->areg + XCHAL_NUM_AREGS - regs->windowbase * 4,
if (newregs.windowbase >= XCHAL_NUM_AREGS / 4)
XCHAL_NUM_AREGS,
sp = regs->areg[((base + inc) * 4 + 1) % XCHAL_NUM_AREGS];
wm = (ws >> wb) | (ws << (XCHAL_NUM_AREGS / 4 - wb));
base = (XCHAL_NUM_AREGS / 4) - (regs->wmask >> 4);
while (base < XCHAL_NUM_AREGS / 4) {