diff options
Diffstat (limited to 'include/asm-sparc64/system.h')
-rw-r--r-- | include/asm-sparc64/system.h | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/include/asm-sparc64/system.h b/include/asm-sparc64/system.h index af254e581834..a18ec87a52c1 100644 --- a/include/asm-sparc64/system.h +++ b/include/asm-sparc64/system.h | |||
@@ -209,9 +209,10 @@ do { if (test_thread_flag(TIF_PERFCTR)) { \ | |||
209 | /* so that ASI is only written if it changes, think again. */ \ | 209 | /* so that ASI is only written if it changes, think again. */ \ |
210 | __asm__ __volatile__("wr %%g0, %0, %%asi" \ | 210 | __asm__ __volatile__("wr %%g0, %0, %%asi" \ |
211 | : : "r" (__thread_flag_byte_ptr(task_thread_info(next))[TI_FLAG_BYTE_CURRENT_DS]));\ | 211 | : : "r" (__thread_flag_byte_ptr(task_thread_info(next))[TI_FLAG_BYTE_CURRENT_DS]));\ |
212 | trap_block[current_thread_info()->cpu].thread = \ | ||
213 | task_thread_info(next); \ | ||
212 | __asm__ __volatile__( \ | 214 | __asm__ __volatile__( \ |
213 | "mov %%g4, %%g7\n\t" \ | 215 | "mov %%g4, %%g7\n\t" \ |
214 | "wrpr %%g0, 0x95, %%pstate\n\t" \ | ||
215 | "stx %%i6, [%%sp + 2047 + 0x70]\n\t" \ | 216 | "stx %%i6, [%%sp + 2047 + 0x70]\n\t" \ |
216 | "stx %%i7, [%%sp + 2047 + 0x78]\n\t" \ | 217 | "stx %%i7, [%%sp + 2047 + 0x78]\n\t" \ |
217 | "rdpr %%wstate, %%o5\n\t" \ | 218 | "rdpr %%wstate, %%o5\n\t" \ |
@@ -225,14 +226,10 @@ do { if (test_thread_flag(TIF_PERFCTR)) { \ | |||
225 | "ldx [%%g6 + %3], %%o6\n\t" \ | 226 | "ldx [%%g6 + %3], %%o6\n\t" \ |
226 | "ldub [%%g6 + %2], %%o5\n\t" \ | 227 | "ldub [%%g6 + %2], %%o5\n\t" \ |
227 | "ldub [%%g6 + %4], %%o7\n\t" \ | 228 | "ldub [%%g6 + %4], %%o7\n\t" \ |
228 | "mov %%g6, %%l2\n\t" \ | ||
229 | "wrpr %%o5, 0x0, %%wstate\n\t" \ | 229 | "wrpr %%o5, 0x0, %%wstate\n\t" \ |
230 | "ldx [%%sp + 2047 + 0x70], %%i6\n\t" \ | 230 | "ldx [%%sp + 2047 + 0x70], %%i6\n\t" \ |
231 | "ldx [%%sp + 2047 + 0x78], %%i7\n\t" \ | 231 | "ldx [%%sp + 2047 + 0x78], %%i7\n\t" \ |
232 | "wrpr %%g0, 0x94, %%pstate\n\t" \ | ||
233 | "mov %%l2, %%g6\n\t" \ | ||
234 | "ldx [%%g6 + %6], %%g4\n\t" \ | 232 | "ldx [%%g6 + %6], %%g4\n\t" \ |
235 | "wrpr %%g0, 0x96, %%pstate\n\t" \ | ||
236 | "brz,pt %%o7, 1f\n\t" \ | 233 | "brz,pt %%o7, 1f\n\t" \ |
237 | " mov %%g7, %0\n\t" \ | 234 | " mov %%g7, %0\n\t" \ |
238 | "b,a ret_from_syscall\n\t" \ | 235 | "b,a ret_from_syscall\n\t" \ |