Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0c51ed93 authored by David S. Miller's avatar David S. Miller
Browse files

[SPARC64]: First cut at VIS simulator for Niagara.



Niagara does not implement some of the VIS instructions in
hardware, so we have to emulate them.

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 90a6646b
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -11,7 +11,8 @@ obj-y := process.o setup.o cpu.o idprom.o \
		   traps.o devices.o auxio.o una_asm.o \
		   traps.o devices.o auxio.o una_asm.o \
		   irq.o ptrace.o time.o sys_sparc.o signal.o \
		   irq.o ptrace.o time.o sys_sparc.o signal.o \
		   unaligned.o central.o pci.o starfire.o semaphore.o \
		   unaligned.o central.o pci.o starfire.o semaphore.o \
		   power.o sbus.o iommu_common.o sparc64_ksyms.o chmc.o
		   power.o sbus.o iommu_common.o sparc64_ksyms.o chmc.o \
		   visemul.o


obj-$(CONFIG_PCI)	 += ebus.o isa.o pci_common.o pci_iommu.o \
obj-$(CONFIG_PCI)	 += ebus.o isa.o pci_common.o pci_iommu.o \
			    pci_psycho.o pci_sabre.o pci_schizo.o \
			    pci_psycho.o pci_sabre.o pci_schizo.o \
+5 −0
Original line number Original line Diff line number Diff line
@@ -2273,6 +2273,11 @@ void do_illegal_instruction(struct pt_regs *regs)
		} else if ((insn & 0xc1580000) == 0xc1100000) /* LDQ/STQ */ {
		} else if ((insn & 0xc1580000) == 0xc1100000) /* LDQ/STQ */ {
			if (handle_ldf_stq(insn, regs))
			if (handle_ldf_stq(insn, regs))
				return;
				return;
		} else if (tlb_type == hypervisor) {
			extern int vis_emul(struct pt_regs *, unsigned int);

			if (!vis_emul(regs, insn))
				return;
		}
		}
	}
	}
	info.si_signo = SIGILL;
	info.si_signo = SIGILL;
+894 −0

File added.

Preview size limit exceeded, changes collapsed.