Lines Matching refs:regs
86 if (tsk == current && tsk->thread.regs && in giveup_fpu_maybe_transactional()
87 MSR_TM_ACTIVE(tsk->thread.regs->msr) && in giveup_fpu_maybe_transactional()
89 tsk->thread.tm_orig_msr = tsk->thread.regs->msr; in giveup_fpu_maybe_transactional()
104 if (tsk == current && tsk->thread.regs && in giveup_altivec_maybe_transactional()
105 MSR_TM_ACTIVE(tsk->thread.regs->msr) && in giveup_altivec_maybe_transactional()
107 tsk->thread.tm_orig_msr = tsk->thread.regs->msr; in giveup_altivec_maybe_transactional()
126 if (tsk->thread.regs) { in flush_fp_to_thread()
136 if (tsk->thread.regs->msr & MSR_FP) { in flush_fp_to_thread()
160 if (current->thread.regs && (current->thread.regs->msr & MSR_FP)) in enable_kernel_fp()
176 if (current->thread.regs && (current->thread.regs->msr & MSR_VEC)) in enable_kernel_altivec()
192 if (tsk->thread.regs) { in flush_altivec_to_thread()
194 if (tsk->thread.regs->msr & MSR_VEC) { in flush_altivec_to_thread()
212 if (current->thread.regs && (current->thread.regs->msr & MSR_VSX)) in enable_kernel_vsx()
232 if (tsk->thread.regs) { in flush_vsx_to_thread()
234 if (tsk->thread.regs->msr & MSR_VSX) { in flush_vsx_to_thread()
253 if (current->thread.regs && (current->thread.regs->msr & MSR_SPE)) in enable_kernel_spe()
265 if (tsk->thread.regs) { in flush_spe_to_thread()
267 if (tsk->thread.regs->msr & MSR_SPE) { in flush_spe_to_thread()
306 void do_send_trap(struct pt_regs *regs, unsigned long address, in do_send_trap() argument
312 if (notify_die(DIE_DABR_MATCH, "dabr_match", regs, error_code, in do_send_trap()
324 void do_break (struct pt_regs *regs, unsigned long address, in do_break() argument
330 if (notify_die(DIE_DABR_MATCH, "dabr_match", regs, error_code, in do_break()
334 if (debugger_break_match(regs)) in do_break()
543 msr_diff = thr->tm_orig_msr & ~thr->regs->msr; in tm_reclaim_thread()
572 tm_reclaim(thr, thr->regs->msr, cause); in tm_reclaim_thread()
580 thr->regs->msr |= msr_diff; in tm_reclaim_thread()
603 if (!thr->regs) in tm_reclaim_task()
606 if (!MSR_TM_ACTIVE(thr->regs->msr)) in tm_reclaim_task()
615 thr->tm_orig_msr = thr->regs->msr; in tm_reclaim_task()
619 tsk->pid, thr->regs->nip, in tm_reclaim_task()
620 thr->regs->ccr, thr->regs->msr, in tm_reclaim_task()
621 thr->regs->trap); in tm_reclaim_task()
677 if (!new->thread.regs) in tm_recheckpoint_new_task()
680 if (!MSR_TM_ACTIVE(new->thread.regs->msr)){ in tm_recheckpoint_new_task()
688 new->pid, new->thread.regs->msr, msr); in tm_recheckpoint_new_task()
696 new->thread.regs->msr |= in tm_recheckpoint_new_task()
702 new->thread.regs->msr |= MSR_VEC; in tm_recheckpoint_new_task()
707 new->thread.regs->msr |= MSR_VSX; in tm_recheckpoint_new_task()
736 void restore_tm_state(struct pt_regs *regs) in restore_tm_state() argument
741 if (!MSR_TM_ACTIVE(regs->msr)) in restore_tm_state()
744 msr_diff = current->thread.tm_orig_msr & ~regs->msr; in restore_tm_state()
749 regs->msr |= current->thread.fpexc_mode; in restore_tm_state()
755 regs->msr |= msr_diff; in restore_tm_state()
796 if (prev->thread.regs && (prev->thread.regs->msr & MSR_FP)) in __switch_to()
810 if (prev->thread.regs && (prev->thread.regs->msr & MSR_VEC)) in __switch_to()
814 if (prev->thread.regs && (prev->thread.regs->msr & MSR_VSX)) in __switch_to()
826 if ((prev->thread.regs && (prev->thread.regs->msr & MSR_SPE))) in __switch_to()
835 if (new->thread.regs && last_task_used_altivec == new) in __switch_to()
836 new->thread.regs->msr |= MSR_VEC; in __switch_to()
839 if (new->thread.regs && last_task_used_vsx == new) in __switch_to()
840 new->thread.regs->msr |= MSR_VSX; in __switch_to()
846 if (new->thread.regs && last_task_used_spe == new) in __switch_to()
847 new->thread.regs->msr |= MSR_SPE; in __switch_to()
917 static void show_instructions(struct pt_regs *regs) in show_instructions() argument
920 unsigned long pc = regs->nip - (instructions_to_print * 3 / 4 * in show_instructions()
935 if (!(regs->msr & MSR_IR)) in show_instructions()
943 if (regs->nip == pc) in show_instructions()
1011 void show_regs(struct pt_regs * regs) in show_regs() argument
1018 regs->nip, regs->link, regs->ctr); in show_regs()
1020 regs, regs->trap, print_tainted(), init_utsname()->release); in show_regs()
1021 printk("MSR: "REG" ", regs->msr); in show_regs()
1022 printbits(regs->msr, msr_bits); in show_regs()
1023 printk(" CR: %08lx XER: %08lx\n", regs->ccr, regs->xer); in show_regs()
1024 trap = TRAP(regs); in show_regs()
1025 if ((regs->trap != 0xc00) && cpu_has_feature(CPU_FTR_CFAR)) in show_regs()
1026 printk("CFAR: "REG" ", regs->orig_gpr3); in show_regs()
1029 printk("DEAR: "REG" ESR: "REG" ", regs->dar, regs->dsisr); in show_regs()
1031 printk("DAR: "REG" DSISR: %08lx ", regs->dar, regs->dsisr); in show_regs()
1034 printk("SOFTE: %ld ", regs->softe); in show_regs()
1037 if (MSR_TM_ACTIVE(regs->msr)) in show_regs()
1044 printk(REG " ", regs->gpr[i]); in show_regs()
1045 if (i == LAST_VOLATILE && !FULL_REGS(regs)) in show_regs()
1054 printk("NIP ["REG"] %pS\n", regs->nip, (void *)regs->nip); in show_regs()
1055 printk("LR ["REG"] %pS\n", regs->link, (void *)regs->link); in show_regs()
1057 show_stack(current, (unsigned long *) regs->gpr[1]); in show_regs()
1058 if (!user_mode(regs)) in show_regs()
1059 show_instructions(regs); in show_regs()
1160 p->thread.regs = NULL; /* no user register state */ in copy_thread()
1165 struct pt_regs *regs = current_pt_regs(); in copy_thread() local
1166 CHECK_FULL_REGS(regs); in copy_thread()
1167 *childregs = *regs; in copy_thread()
1170 p->thread.regs = childregs; in copy_thread()
1228 void start_thread(struct pt_regs *regs, unsigned long start, unsigned long sp) in start_thread() argument
1231 unsigned long load_addr = regs->gpr[2]; /* saved by ELF_PLAT_INIT */ in start_thread()
1238 if (!current->thread.regs) { in start_thread()
1239 struct pt_regs *regs = task_stack_page(current) + THREAD_SIZE; in start_thread() local
1240 current->thread.regs = regs - 1; in start_thread()
1243 memset(regs->gpr, 0, sizeof(regs->gpr)); in start_thread()
1244 regs->ctr = 0; in start_thread()
1245 regs->link = 0; in start_thread()
1246 regs->xer = 0; in start_thread()
1247 regs->ccr = 0; in start_thread()
1248 regs->gpr[1] = sp; in start_thread()
1255 regs->trap &= ~1UL; in start_thread()
1258 regs->mq = 0; in start_thread()
1259 regs->nip = start; in start_thread()
1260 regs->msr = MSR_USER; in start_thread()
1277 regs->gpr[12] = start; in start_thread()
1299 regs->gpr[2] = toc; in start_thread()
1301 regs->nip = entry; in start_thread()
1302 regs->msr = MSR_USER64; in start_thread()
1304 regs->nip = start; in start_thread()
1305 regs->gpr[2] = 0; in start_thread()
1306 regs->msr = MSR_USER32; in start_thread()
1330 regs->msr |= MSR_TM; in start_thread()
1343 struct pt_regs *regs = tsk->thread.regs; in set_fpexc_mode() local
1384 if (regs != NULL && (regs->msr & MSR_FP) != 0) in set_fpexc_mode()
1385 regs->msr = (regs->msr & ~(MSR_FE0|MSR_FE1)) in set_fpexc_mode()
1423 struct pt_regs *regs = tsk->thread.regs; in set_endian() local
1429 if (regs == NULL) in set_endian()
1433 regs->msr &= ~MSR_LE; in set_endian()
1435 regs->msr |= MSR_LE; in set_endian()
1444 struct pt_regs *regs = tsk->thread.regs; in get_endian() local
1451 if (regs == NULL) in get_endian()
1454 if (regs->msr & MSR_LE) { in get_endian()
1592 struct pt_regs *regs = (struct pt_regs *) in show_stack() local
1594 lr = regs->link; in show_stack()
1596 regs->trap, (void *)regs->nip, (void *)lr); in show_stack()