linux-kernel-test/arch/sparc64/kernel
Joseph Myers 726c12f57d sparc64: Fix VIS emulation bugs
This patch fixes some bugs in VIS emulation that cause the GCC test
failure

FAIL: gcc.target/sparc/pdist-3.c execution test

for both 32-bit and 64-bit testing on hardware lacking these
instructions.  The emulation code for the pdist instruction uses
RS1(insn) for both source registers rs1 and rs2, which is obviously
wrong and leads to the instruction doing nothing (the observed
problem), and further inspection of the code shows that RS1 uses a
shift of 24 and RD a shift of 25, which clearly cannot both be right;
examining SPARC documentation indicates the correct shift for RS1 is
14.

This patch fixes the bug if single-stepping over the affected
instruction in the debugger, but not if the testcase is run
standalone.  For that, Wind River has another patch I hope they will
send as a followup to this patch submission.

Signed-off-by: Joseph Myers <joseph@codesourcery.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-12-03 19:36:05 -08:00
..
asm-offsets.c
audit.c sparc64: Kill CONFIG_SPARC32_COMPAT 2008-04-26 21:41:19 -07:00
auxio.c sparc: Annotate of_device_id arrays with const or __initdata. 2008-08-31 01:23:17 -07:00
central.c sparc64: Rewrite central driver. 2008-08-31 20:56:15 -07:00
cherrs.S sparc64: Split entry.S up into seperate files. 2008-04-28 00:47:20 -07:00
chmc.c chmc: Mark %ver register inline asm with __volatile__ 2008-10-12 23:56:12 -07:00
compat_audit.c sparc, sparc64: use arch/sparc/include 2008-07-27 23:00:59 +02:00
cpu.c sparc64: Clean up CPU chip type probing code. 2008-08-31 21:48:12 -07:00
ds.c sparc64: Apply const or __initdata to vio_device_id[] 2008-09-01 01:48:52 -07:00
dtlb_miss.S
dtlb_prot.S sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
ebus.c sparc: Kill EBUS driver layer. 2008-08-30 00:36:11 -07:00
entry.h sparc64: Clean up CPU chip type probing code. 2008-08-31 21:48:12 -07:00
etrap.S sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
fpu_traps.S sparc64: Split entry.S up into seperate files. 2008-04-28 00:47:20 -07:00
ftrace.c ftrace, powerpc, sparc64, x86: remove notrace from arch ftrace file 2008-10-23 16:00:25 +02:00
getsetcc.S sparc64: Split entry.S up into seperate files. 2008-04-28 00:47:20 -07:00
head.S sparc64: Use ENTRY/ENDPROC in hypervisor asm. 2008-09-01 03:13:17 -07:00
helpers.S sparc64: Split entry.S up into seperate files. 2008-04-28 00:47:20 -07:00
hvapi.c sparc64: Implement SSTATE purely using notifiers and initcalls. 2008-09-02 00:49:38 -07:00
hvcalls.S sparc64: Use ENTRY/ENDPROC in hypervisor asm. 2008-09-01 03:13:17 -07:00
hvtramp.S [SPARC64]: Fix cpu trampoline et al. mismatch warnings. 2008-02-20 22:22:16 -08:00
idprom.c sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
init_task.c [PATCH] take init_files to fs/file.c 2008-05-16 17:22:20 -04:00
iommu_common.h sparc64: use iommu_num_pages function in IOMMU code 2008-10-16 11:21:33 -07:00
iommu.c sparc64: use iommu_num_pages function in IOMMU code 2008-10-16 11:21:33 -07:00
irq.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-10-11 12:39:35 -07:00
itlb_miss.S [SPARC64]: Fix _PAGE_EXEC_4U check in sun4u I-TLB miss handler. 2007-05-29 02:50:15 -07:00
ivec.S sparc64: Split entry.S up into seperate files. 2008-04-28 00:47:20 -07:00
kgdb.c sparc: Add kgdb support. 2008-04-29 02:38:50 -07:00
kprobes.c kprobes: improve kretprobe scalability with hashed locking 2008-07-25 10:53:30 -07:00
kstack.h sparc64: Handle stack trace attempts before irqstacks are setup. 2008-08-13 17:20:04 -07:00
ktlb.S [SPARC64]: Fix build with SPARSEMEM_VMEMMAP disabled. 2008-01-12 21:52:16 -08:00
ldc.c sparc64: Fix lockdep issues in LDC protocol layer. 2008-07-22 22:34:29 -07:00
Makefile ftrace, powerpc, sparc64, x86: remove notrace from arch ftrace file 2008-10-23 16:00:25 +02:00
mdesc.c [SPARC64]: Initialize MDESC earlier and use lmb_alloc() 2008-04-23 23:32:12 -07:00
misctrap.S sparc: Add kgdb support. 2008-04-29 02:38:50 -07:00
module.c [SPARC]: Remove duplicate includes. 2007-11-06 21:23:11 -08:00
of_device.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-10-11 12:39:35 -07:00
pci_common.c sparc64: Record OF device instead of device node pointer in pci_pbm_info. 2008-09-10 23:07:59 -07:00
pci_fire.c Revert "of_platform_driver noise on sparce" 2008-12-01 07:55:14 -08:00
pci_impl.h sparc64: Fix sparse warnings in pci.c 2008-09-11 23:57:40 -07:00
pci_msi.c sparc64: Record OF device instead of device node pointer in pci_pbm_info. 2008-09-10 23:07:59 -07:00
pci_psycho.c Revert "of_platform_driver noise on sparce" 2008-12-01 07:55:14 -08:00
pci_sabre.c sparc64: Kill hand-crafted I/O accessors in PCI controller drivers. 2008-09-10 23:14:46 -07:00
pci_schizo.c sparc64: Kill hand-crafted I/O accessors in PCI controller drivers. 2008-09-10 23:14:46 -07:00
pci_sun4v_asm.S sparc64: Use ENTRY/ENDPROC in PCI SUN4V asm. 2008-09-01 03:18:49 -07:00
pci_sun4v.c Revert "of_platform_driver noise on sparce" 2008-12-01 07:55:14 -08:00
pci_sun4v.h [SPARC64]: Add PCI MSI support on Niagara. 2007-02-10 23:50:37 -08:00
pci.c sparc64: Fix PCI resource mapping on sparc64 2008-11-02 00:34:10 -07:00
power.c sparc64: Move reboot handling into seperate file and kill power reg programming. 2008-09-02 00:31:11 -07:00
process.c sparc64: Fix sparse warnings in global reg snapshotting. 2008-09-11 23:19:22 -07:00
prom.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6 2008-09-16 14:11:43 -07:00
psycho_common.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6 2008-09-16 14:11:43 -07:00
psycho_common.h Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6 2008-09-16 14:11:43 -07:00
ptrace.c sparc64: Fix bug in PTRACE_SETFPREGS64 handling. 2008-12-03 00:47:28 -08:00
reboot.c sysctl: Use header file for sysctl knob declarations on sparc. 2008-09-11 23:33:53 -07:00
rtrap.S sparc64: tracehook: TIF_NOTIFY_RESUME 2008-07-27 17:32:19 -07:00
sbus.c sparc64: Rewrite central driver. 2008-08-31 20:56:15 -07:00
setup.c sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
signal32.c sparc64: tracehook_signal_handler 2008-07-27 17:32:35 -07:00
signal.c arch/sparc64/kernel/signal.c: removed duplicated #include 2008-08-04 13:51:36 -07:00
smp.c sparc64 trivial section misannotations 2008-11-30 10:03:35 -08:00
sparc64_ksyms.c sparc: Kill EBUS driver layer. 2008-08-30 00:36:11 -07:00
spiterrs.S sparc64: Split entry.S up into seperate files. 2008-04-28 00:47:20 -07:00
sstate.c sparc64: Implement SSTATE purely using notifiers and initcalls. 2008-09-02 00:49:38 -07:00
stacktrace.c sparc64: Handle stack trace attempts before irqstacks are setup. 2008-08-13 17:20:04 -07:00
starfire.c sparc64: Delete starfire_cpu_setup(). 2008-08-31 01:40:12 -07:00
sun4v_ivec.S [SPARC64]: Use sun4v VIRQ interfaces as intended. 2007-10-13 21:53:16 -07:00
sun4v_tlb_miss.S [SPARC64]: %l6 trap return handling no longer necessary. 2008-04-24 03:15:22 -07:00
sys32.S sparc64: wire up accept4() 2008-11-19 18:49:57 -08:00
sys_sparc32.c compat: generic compat get/settimeofday 2008-10-16 11:21:33 -07:00
sys_sparc.c flag parameters: pipe 2008-07-24 10:47:28 -07:00
syscalls.S sparc64: Split syscall_trace() into two functions. 2008-08-24 20:34:31 -07:00
sysfs.c sysdev: Pass the attribute to the low level sysdev show/store function 2008-07-21 21:55:02 -07:00
systbls.h [SPARC]: Remove SunOS and Solaris binary support. 2008-04-21 15:10:15 -07:00
systbls.S sparc64: wire up accept4() 2008-11-19 18:49:57 -08:00
time.c sparc64: Add missing null terminating entry to bq4802_match[]. 2008-10-30 22:58:06 -07:00
trampoline.S sparc64: Fix race in arch/sparc64/kernel/trampoline.S 2008-10-22 21:53:40 -07:00
traps.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-10-11 12:39:35 -07:00
tsb.S [SPARC64]: %l6 trap return handling no longer necessary. 2008-04-24 03:15:22 -07:00
ttable.S sparc64: Convert to generic helpers for IPI function calls. 2008-07-17 23:44:50 -07:00
una_asm.S
unaligned.c sparc: Use new '%pS' infrastructure to print symbols. 2008-07-17 22:11:32 -07:00
us2e_cpufreq.c [CPUFREQ] move policy's governor initialisation out of low-level drivers into cpufreq core 2007-10-04 18:40:57 -04:00
us3_cpufreq.c cpufreq: remove policy->governor setting in drivers initialization 2008-10-15 16:42:47 -07:00
utrap.S sparc64: Split entry.S up into seperate files. 2008-04-28 00:47:20 -07:00
vio.c sparc64: Fix sparse warnings in vio.c 2008-09-12 00:04:33 -07:00
viohs.c viohs: extern on function definition 2007-07-26 11:11:56 -07:00
visemul.c sparc64: Fix VIS emulation bugs 2008-12-03 19:36:05 -08:00
vmlinux.lds.S all archs: consolidate init and exit sections in vmlinux.lds.h 2008-01-28 23:21:17 +01:00
winfixup.S [SPARC64]: %l6 trap return handling no longer necessary. 2008-04-24 03:15:22 -07:00