Lines Matching refs:DEST
153 #define TRAP_LOAD_TRAP_BLOCK(DEST, TMP) \
155 sethi %hi(trap_block), DEST; \
157 or DEST, %lo(trap_block), DEST; \
158 add DEST, TMP, DEST; \
160 /* Clobbers TMP, current address space PGD phys address into DEST. */
161 #define TRAP_LOAD_PGD_PHYS(DEST, TMP) \
162 TRAP_LOAD_TRAP_BLOCK(DEST, TMP) \
163 ldx [DEST + TRAP_PER_CPU_PGD_PADDR], DEST;
165 /* Clobbers TMP, loads local processor's IRQ work area into DEST. */
166 #define TRAP_LOAD_IRQ_WORK_PA(DEST, TMP) \
167 TRAP_LOAD_TRAP_BLOCK(DEST, TMP) \
168 add DEST, TRAP_PER_CPU_IRQ_WORKLIST_PA, DEST;
170 /* Clobbers TMP, loads DEST with current thread info pointer. */
171 #define TRAP_LOAD_THREAD_REG(DEST, TMP) \
172 TRAP_LOAD_TRAP_BLOCK(DEST, TMP) \
173 ldx [DEST + TRAP_PER_CPU_THREAD], DEST;
176 * area base of the current processor into DEST. REG1, REG2, and REG3 are
179 * You absolutely cannot use DEST as a temporary in this code. The
181 * trap will load the fully resolved DEST per-cpu base. This can corrupt
184 #define LOAD_PER_CPU_BASE(DEST, THR, REG1, REG2, REG3) \
190 ldx [REG2 + TRAP_PER_CPU_PER_CPU_BASE], DEST;
194 #define TRAP_LOAD_TRAP_BLOCK(DEST, TMP) \
195 sethi %hi(trap_block), DEST; \
196 or DEST, %lo(trap_block), DEST; \
199 #define TRAP_LOAD_PGD_PHYS(DEST, TMP) \
200 TRAP_LOAD_TRAP_BLOCK(DEST, TMP) \
201 ldx [DEST + TRAP_PER_CPU_PGD_PADDR], DEST;
203 /* Clobbers TMP, loads local processor's IRQ work area into DEST. */
204 #define TRAP_LOAD_IRQ_WORK_PA(DEST, TMP) \
205 TRAP_LOAD_TRAP_BLOCK(DEST, TMP) \
206 add DEST, TRAP_PER_CPU_IRQ_WORKLIST_PA, DEST;
208 #define TRAP_LOAD_THREAD_REG(DEST, TMP) \
209 TRAP_LOAD_TRAP_BLOCK(DEST, TMP) \
210 ldx [DEST + TRAP_PER_CPU_THREAD], DEST;
212 /* No per-cpu areas on uniprocessor, so no need to load DEST. */
213 #define LOAD_PER_CPU_BASE(DEST, THR, REG1, REG2, REG3)