android_kernel_oneplus_msm8998/arch/sparc/kernel
David S. Miller 4ba991d3eb sparc: Detect and handle UltraSPARC-T3 cpu types.
The cpu compatible string we look for is "SPARC-T3".

As far as memset/memcpy optimizations go, we treat this chip the same
as Niagara-T2/T2+.  Use cache initializing stores for memset, and use
perfetch, FPU block loads, cache initializing stores, and block stores
for copies.

We use the Niagara-T2 perf support, since T3 is a close relative in
this regard.  Later we'll add support for the new events T3 can
report, plus enable T3's new "sample" mode.

For now I haven't added any new ELF hwcap flags.  We probably need
to add a couple, for example:

T2 and T3 both support the population count instruction in hardware.

T3 supports VIS3 instructions, including support (finally) for
partitioned shift.  One can also now move directly between float
and integer registers.

T3 supports instructions meant to help with Galois Field and other HPC
calculations, such as XOR multiply.  Also there are "OP and negate"
instructions, for example "fnmul" which is multiply-and-negate.

T3 recognizes the transactional memory opcodes, however since
transactional memory isn't supported: 1) 'commit' behaves as a NOP and
2) 'chkpt' always branches 3) 'rdcps' returns all zeros and 4) 'wrcps'
behaves as a NOP.

So we'll need about 3 new elf capability flags in the end to represent
all of these things.

Signed-off-by: David S. Miller <davem@davemloft.net>
2011-07-27 22:10:10 -07:00
..
.gitignore
apc.c sparc: Remove unnecessary semicolons 2011-06-07 16:06:34 -07:00
asm-offsets.c
audit.c
auxio_32.c sparc: Remove unnecessary semicolons 2011-06-07 16:06:34 -07:00
auxio_64.c sparc64: Fix section mis-match errors. 2011-03-30 17:37:56 -07:00
btext.c of/sparc: convert various prom_* functions to use phandle 2010-10-09 02:33:34 -06:00
central.c sparc64: Fix section mis-match errors. 2011-03-30 17:37:56 -07:00
cherrs.S
chmc.c sparc: Remove unnecessary semicolons 2011-06-07 16:06:34 -07:00
compat_audit.c
cpu.c sparc: Detect and handle UltraSPARC-T3 cpu types. 2011-07-27 22:10:10 -07:00
cpumap.c sparc: Detect and handle UltraSPARC-T3 cpu types. 2011-07-27 22:10:10 -07:00
cpumap.h
devices.c sparc32: always register a PROM based early console 2011-04-21 15:47:35 -07:00
dma.c
ds.c sparc: convert old cpumask API into new one 2011-05-16 13:38:07 -07:00
dtlb_miss.S
dtlb_prot.S
ebus.c
entry.h sparc64: rename virt_irq => irq - I 2011-03-16 18:19:03 -07:00
entry.S sparc: sun4m SMP: fix wrong shift instruction in IPI handler 2011-07-16 10:45:12 -07:00
etrap_32.S
etrap_64.S
fpu_traps.S
ftrace.c sparc64: Add function graph tracer support. 2010-04-12 22:37:26 -07:00
getsetcc.S
head_32.S sparc32,leon: operate on boot-cpu IRQ controller registers 2011-04-21 16:44:45 -07:00
head_64.S sparc: Detect and handle UltraSPARC-T3 cpu types. 2011-07-27 22:10:10 -07:00
helpers.S sparc64: Fix perf_arch_get_caller_regs(). 2010-08-08 22:07:36 -07:00
hvapi.c sparc: Add T3 sun4v cpu type and hypervisor group defines. 2011-07-27 20:43:51 -07:00
hvcalls.S
hvtramp.S
idprom.c
init_task.c Fix common misspellings 2011-03-31 11:26:23 -03:00
iommu.c sparc64: Fix build errors with gcc-4.6.0 2011-03-16 18:19:15 -07:00
iommu_common.h
ioport.c treewide: Convert uses of struct resource to resource_size(ptr) 2011-06-10 14:55:36 +02:00
irq.h sparc32, sun4d: Implemented SMP IPIs support for SUN4D machines 2011-05-16 13:07:44 -07:00
irq_32.c sparc32: implement SMP IPIs using the generic functions 2011-05-16 13:07:43 -07:00
irq_64.c atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
itlb_miss.S
ivec.S
jump_label.c jump label: Add sparc64 support 2010-09-22 16:35:09 -04:00
kernel.h sparc: consolidate show_cpuinfo in cpu.c 2011-04-21 15:45:45 -07:00
kgdb_32.c kgdb,sparc: Add in kgdb_arch_set_pc for sparc 2010-05-20 21:04:19 -05:00
kgdb_64.c kgdb,sparc: Add in kgdb_arch_set_pc for sparc 2010-05-20 21:04:19 -05:00
kprobes.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
kstack.h sparc64: Run NMIs on the hardirq stack. 2010-04-14 02:04:29 -07:00
ktlb.S
ldc.c sparc64: Fix build errors with gcc-4.6.0 2011-03-16 18:19:15 -07:00
led.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
leon_kernel.c sparc32, leon: bugfix in LEON SMP interrupt init 2011-06-09 16:12:34 -07:00
leon_pci.c sparc32,leon: added LEON-common low-level PCI routines 2011-06-02 14:32:37 -07:00
leon_pci_grpci2.c sparc32,leon: add GRPCI2 PCI Host driver 2011-06-02 14:32:38 -07:00
leon_pmc.c SPARC/LEON: power down instruction different of different LEONs 2011-03-16 18:19:04 -07:00
leon_smp.c atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
Makefile sparc32,leon: add GRPCI2 PCI Host driver 2011-06-02 14:32:38 -07:00
mdesc.c sparc: convert old cpumask API into new one 2011-05-16 13:38:07 -07:00
misctrap.S
module.c modules: make arch's use default loader hooks 2011-07-24 22:06:04 +09:30
muldiv.c
nmi.c perf, arch: Cleanup perf-pmu init vs lockup-detector 2010-11-26 15:14:56 +01:00
of_device_32.c sparc32: introduce build_device_irq 2011-03-16 18:19:14 -07:00
of_device_64.c sparc: convert old cpumask API into new one 2011-05-16 13:38:07 -07:00
of_device_common.c sparc: Implement of_iomap(). 2011-03-18 15:47:26 -07:00
of_device_common.h
pci.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2011-07-25 13:56:39 -07:00
pci_common.c sparc: Remove unnecessary semicolons 2011-06-07 16:06:34 -07:00
pci_fire.c sparc64: Fix section mis-match errors. 2011-03-30 17:37:56 -07:00
pci_impl.h sparc64: rename virt_irq => irq - II 2011-03-16 18:19:03 -07:00
pci_msi.c sparc: convert old cpumask API into new one 2011-05-16 13:38:07 -07:00
pci_psycho.c sparc64: Fix section mis-match errors. 2011-03-30 17:37:56 -07:00
pci_sabre.c drivercore: revert addition of of_match to struct device 2011-05-18 12:32:23 -06:00
pci_schizo.c sparc: Remove unnecessary semicolons 2011-06-07 16:06:34 -07:00
pci_sun4v.c sparc64: Fix section mis-match errors. 2011-03-30 17:37:56 -07:00
pci_sun4v.h
pci_sun4v_asm.S
pcic.c pci/of: Consolidate pci_device_to_OF_node() 2011-06-08 09:08:43 +10:00
pcr.c sparc: Detect and handle UltraSPARC-T3 cpu types. 2011-07-27 22:10:10 -07:00
perf_event.c sparc: Detect and handle UltraSPARC-T3 cpu types. 2011-07-27 22:10:10 -07:00
pmc.c sparc32: fix section mismatch warnings in apc, pmc and time_32 2011-04-21 15:37:20 -07:00
power.c sparc64: Fix section mis-match errors. 2011-03-30 17:37:56 -07:00
process_32.c sparc32,leon: SMP power down implementation 2011-05-16 13:03:28 -07:00
process_64.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2010-08-28 13:55:31 -07:00
prom.h of/promtree: make drivers/of/pdt.c no longer sparc-only 2010-10-10 21:53:30 -06:00
prom_32.c sparc32: always register a PROM based early console 2011-04-21 15:47:35 -07:00
prom_64.c Merge commit 'v2.6.35-rc6' into devicetree/next 2010-07-24 09:49:13 -06:00
prom_common.c of/promtree: no longer call prom_ functions directly; use an ops structure 2010-10-12 21:57:53 -06:00
prom_irqtrans.c sparc: Remove unnecessary semicolons 2011-06-07 16:06:34 -07:00
psycho_common.c sparc: Remove unnecessary semicolons 2011-06-07 16:06:34 -07:00
psycho_common.h sparc: remove references to of_device and to_of_device 2010-07-24 09:58:22 -06:00
ptrace_32.c ptrace: cleanup arch_ptrace() on sparc 2010-10-27 18:03:12 -07:00
ptrace_64.c sparc64: Fix build errors with gcc-4.6.0 2011-03-16 18:19:15 -07:00
reboot.c
rtrap_32.S sparc: keep calling do_signal() as long as pending signals remain 2010-10-26 08:59:55 -07:00
rtrap_64.S sparc: keep calling do_signal() as long as pending signals remain 2010-10-26 08:59:55 -07:00
sbus.c sparc: Remove unnecessary semicolons 2011-06-07 16:06:34 -07:00
setup_32.c sparc: Remove unnecessary semicolons 2011-06-07 16:06:34 -07:00
setup_64.c sparc: Remove unnecessary semicolons 2011-06-07 16:06:34 -07:00
signal32.c sparc: Prevent no-handler signal syscall restart recursion. 2010-09-21 22:30:13 -07:00
signal_32.c sparc: Prevent no-handler signal syscall restart recursion. 2010-09-21 22:30:13 -07:00
signal_64.c sparc: Prevent no-handler signal syscall restart recursion. 2010-09-21 22:30:13 -07:00
smp_32.c atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
smp_64.c atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
sparc_ksyms_32.c
sparc_ksyms_64.c
spiterrs.S
sstate.c
stacktrace.c sparc64: Fix stack dumping and tracing when function graph is enabled. 2010-04-21 03:08:11 -07:00
starfire.c sparc: explicitly cast negative phandle checks to s32 2011-01-03 20:02:06 -07:00
sun4c_irq.c sparc32: genirq support 2011-04-19 22:11:40 -07:00
sun4d_irq.c Add support for allocating irqs for bootbus devices 2011-06-07 16:06:33 -07:00
sun4d_smp.c sparc: convert old cpumask API into new one 2011-05-16 13:38:07 -07:00
sun4m_irq.c sparc32: genirq support 2011-04-19 22:11:40 -07:00
sun4m_smp.c sparc: convert old cpumask API into new one 2011-05-16 13:38:07 -07:00
sun4v_ivec.S
sun4v_tlb_miss.S
sys32.S sparc: Hook up new fanotify and prlimit64 syscalls. 2010-08-16 15:04:29 -07:00
sys_sparc32.c sparc: Remove unnecessary semicolons 2011-06-07 16:06:34 -07:00
sys_sparc_32.c BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
sys_sparc_64.c sparc: Remove unnecessary semicolons 2011-06-07 16:06:34 -07:00
syscalls.S sparc64: Kill off old sys_perfctr system call and state. 2010-03-03 08:08:49 -08:00
sysfs.c sparc: convert old cpumask API into new one 2011-05-16 13:38:07 -07:00
systbls.h improve sys_newuname() for compat architectures 2010-03-12 15:52:32 -08:00
systbls_32.S ns: Wire up the setns system call 2011-05-28 10:48:39 -07:00
systbls_64.S ns: Wire up the setns system call 2011-05-28 10:48:39 -07:00
tadpole.c of/sparc: convert various prom_* functions to use phandle 2010-10-09 02:33:34 -06:00
time_32.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6 2011-05-20 12:59:54 -07:00
time_64.c sparc: Remove unnecessary semicolons 2011-06-07 16:06:34 -07:00
trampoline_32.S
trampoline_64.S
traps_32.c
traps_64.c sparc: Remove unnecessary semicolons 2011-06-07 16:06:34 -07:00
tsb.S sparc64: Fix sun4u execute bit check in TSB I-TLB load. 2010-02-19 15:19:52 -08:00
ttable.S sparc64: fix the build error due to smp_kgdb_capture_client() 2010-06-25 11:17:57 -07:00
una_asm_32.S sparc32: unaligned memory access (MNA) trap handler bug 2011-02-01 12:39:59 -08:00
una_asm_64.S sparc: Fix .size directive for do_int_load 2011-03-16 18:19:15 -07:00
unaligned_32.c perf: Remove the nmi parameter from the swevent and overflow interface 2011-07-01 11:06:35 +02:00
unaligned_64.c perf: Remove the nmi parameter from the swevent and overflow interface 2011-07-01 11:06:35 +02:00
us2e_cpufreq.c sparc: Remove unnecessary semicolons 2011-06-07 16:06:34 -07:00
us3_cpufreq.c sparc: Remove unnecessary semicolons 2011-06-07 16:06:34 -07:00
utrap.S
vio.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
viohs.c sparc: Remove unnecessary semicolons 2011-06-07 16:06:34 -07:00
visemul.c perf: Remove the nmi parameter from the swevent and overflow interface 2011-07-01 11:06:35 +02:00
vmlinux.lds.S percpu: Always align percpu output section to PAGE_SIZE 2011-03-24 18:50:09 +01:00
windows.c BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
winfixup.S
wof.S
wuf.S