Lines Matching +full:0 +full:x180000

49 		switch ((insn>>19)&0xf) {  in decode_direction()
63 tmp = ((insn >> 19) & 0xf); in decode_access_size()
83 return 0; in decode_access_size()
89 if (insn & 0x800000) { in decode_asi()
90 if (insn & 0x2000) in decode_asi()
98 /* 0x400000 = signed, 0 = unsigned */
101 return (insn & 0x400000); in decode_signedness()
108 if (from_kernel != 0) in maybe_flush_windows()
125 return (!reg ? 0 : regs->u_regs[reg]); in fetch_reg()
172 int from_kernel = (regs->tstate & TSTATE_PRIV) != 0; in compute_effective_address()
173 unsigned int rs1 = (insn >> 14) & 0x1f; in compute_effective_address()
174 unsigned int rs2 = insn & 0x1f; in compute_effective_address()
177 if (insn & 0x2000) { in compute_effective_address()
178 maybe_flush_windows(rs1, 0, rd, from_kernel); in compute_effective_address()
186 addr &= 0xffffffff; in compute_effective_address()
206 unsigned long zero = 0; in do_int_store()
213 (unsigned int)fetch_reg(reg_num, regs) : 0)) << 32) | in do_int_store()
244 regs->tpc &= 0xffffffff; in advance()
245 regs->tnpc &= 0xffffffff; in advance()
270 ((insn >> 25) & 0x1f)); in kernel_mna_trap_fault()
321 kernel_mna_trap_fault(0); in kernel_unaligned_trap()
333 kernel_mna_trap_fault(0); in kernel_unaligned_trap()
339 ((insn >> 25) & 0x1f)); in kernel_unaligned_trap()
349 asi &= ~0x08; in kernel_unaligned_trap()
354 reg_addr = fetch_reg_addr(((insn>>25)&0x1f), regs); in kernel_unaligned_trap()
380 err = do_int_store(((insn>>25)&0x1f), size, in kernel_unaligned_trap()
398 int from_kernel = (regs->tstate & TSTATE_PRIV) != 0; in handle_popc()
399 int ret, rd = ((insn >> 25) & 0x1f); in handle_popc()
402 perf_sw_event(PERF_COUNT_SW_EMULATION_FAULTS, 1, regs, 0); in handle_popc()
403 if (insn & 0x2000) { in handle_popc()
404 maybe_flush_windows(0, 0, rd, from_kernel); in handle_popc()
407 maybe_flush_windows(0, insn & 0x1f, rd, from_kernel); in handle_popc()
408 value = fetch_reg(insn & 0x1f, regs); in handle_popc()
439 unsigned long addr = compute_effective_address(regs, insn, 0); in handle_ldf_stq()
445 perf_sw_event(PERF_COUNT_SW_EMULATION_FAULTS, 1, regs, 0); in handle_ldf_stq()
448 current_thread_info()->xfsr[0] &= ~0x1c000; in handle_ldf_stq()
449 if (insn & 0x200000) { in handle_ldf_stq()
451 u64 first = 0, second = 0; in handle_ldf_stq()
453 freg = ((insn >> 25) & 0x1e) | ((insn >> 20) & 0x20); in handle_ldf_stq()
456 current_thread_info()->xfsr[0] |= (6 << 14) /* invalid_fp_register */; in handle_ldf_stq()
458 return 0; in handle_ldf_stq()
460 if (current_thread_info()->fpsaved[0] & flag) { in handle_ldf_stq()
464 if (asi < 0x80) { in handle_ldf_stq()
483 sun4v_data_access_exception(regs, addr, 0); in handle_ldf_stq()
485 spitfire_data_access_exception(regs, 0, addr); in handle_ldf_stq()
493 sun4v_data_access_exception(regs, addr, 0); in handle_ldf_stq()
495 spitfire_data_access_exception(regs, 0, addr); in handle_ldf_stq()
504 if (asi < 0x80) { in handle_ldf_stq()
509 sun4v_data_access_exception(regs, addr, 0); in handle_ldf_stq()
511 spitfire_data_access_exception(regs, 0, addr); in handle_ldf_stq()
514 switch (insn & 0x180000) { in handle_ldf_stq()
515 case 0x000000: size = 1; break; in handle_ldf_stq()
516 case 0x100000: size = 4; break; in handle_ldf_stq()
520 freg = (insn >> 25) & 0x1f; in handle_ldf_stq()
522 freg = ((insn >> 25) & 0x1e) | ((insn >> 20) & 0x20); in handle_ldf_stq()
525 for (i = 0; i < size; i++) in handle_ldf_stq()
526 data[i] = 0; in handle_ldf_stq()
528 err = get_user (data[0], (u32 __user *) addr); in handle_ldf_stq()
533 if (err && !(asi & 0x2 /* NF */)) { in handle_ldf_stq()
535 sun4v_data_access_exception(regs, addr, 0); in handle_ldf_stq()
537 spitfire_data_access_exception(regs, 0, addr); in handle_ldf_stq()
540 if (asi & 0x8) /* Little */ { in handle_ldf_stq()
544 case 1: data[0] = le32_to_cpup(data + 0); break; in handle_ldf_stq()
545 default:*(u64 *)(data + 0) = le64_to_cpup((u64 *)(data + 0)); in handle_ldf_stq()
547 case 4: tmp = le64_to_cpup((u64 *)(data + 0)); in handle_ldf_stq()
548 *(u64 *)(data + 0) = le64_to_cpup((u64 *)(data + 2)); in handle_ldf_stq()
553 if (!(current_thread_info()->fpsaved[0] & FPRS_FEF)) { in handle_ldf_stq()
554 current_thread_info()->fpsaved[0] = FPRS_FEF; in handle_ldf_stq()
555 current_thread_info()->gsr[0] = 0; in handle_ldf_stq()
557 if (!(current_thread_info()->fpsaved[0] & flag)) { in handle_ldf_stq()
559 memset(f->regs, 0, 32*sizeof(u32)); in handle_ldf_stq()
561 memset(f->regs+32, 0, 32*sizeof(u32)); in handle_ldf_stq()
564 current_thread_info()->fpsaved[0] |= flag; in handle_ldf_stq()
572 int rd = ((insn >> 25) & 0x1f); in handle_ld_nf()
573 int from_kernel = (regs->tstate & TSTATE_PRIV) != 0; in handle_ld_nf()
576 perf_sw_event(PERF_COUNT_SW_EMULATION_FAULTS, 1, regs, 0); in handle_ld_nf()
578 maybe_flush_windows(0, 0, rd, from_kernel); in handle_ld_nf()
581 reg[0] = 0; in handle_ld_nf()
582 if ((insn & 0x780000) == 0x180000) in handle_ld_nf()
583 reg[1] = 0; in handle_ld_nf()
585 put_user(0, (int __user *) reg); in handle_ld_nf()
586 if ((insn & 0x780000) == 0x180000) in handle_ld_nf()
587 put_user(0, ((int __user *) reg) + 1); in handle_ld_nf()
589 put_user(0, (unsigned long __user *) reg); in handle_ld_nf()
590 if ((insn & 0x780000) == 0x180000) in handle_ld_nf()
591 put_user(0, (unsigned long __user *) reg + 1); in handle_ld_nf()
620 first = second = 0; in handle_lddfmna()
625 if (!(asi & 0x2)) in handle_lddfmna()
627 first = second = 0; in handle_lddfmna()
630 freg = ((insn >> 25) & 0x1e) | ((insn >> 20) & 0x20); in handle_lddfmna()
632 if (asi & 0x8) /* Little */ in handle_lddfmna()
635 if (!(current_thread_info()->fpsaved[0] & FPRS_FEF)) { in handle_lddfmna()
636 current_thread_info()->fpsaved[0] = FPRS_FEF; in handle_lddfmna()
637 current_thread_info()->gsr[0] = 0; in handle_lddfmna()
639 if (!(current_thread_info()->fpsaved[0] & flag)) { in handle_lddfmna()
641 memset(f->regs, 0, 32*sizeof(u32)); in handle_lddfmna()
643 memset(f->regs+32, 0, 32*sizeof(u32)); in handle_lddfmna()
646 current_thread_info()->fpsaved[0] |= flag; in handle_lddfmna()
678 freg = ((insn >> 25) & 0x1e) | ((insn >> 20) & 0x20); in handle_stdfmna()
679 value = 0; in handle_stdfmna()
685 if (current_thread_info()->fpsaved[0] & flag) in handle_stdfmna()