summaryrefslogtreecommitdiffstats
path: root/arch/sparc/kernel/entry.h
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2011-07-29 09:42:07 -0700
committerDavid S. Miller <davem@davemloft.net>2011-08-02 21:28:50 -0700
commitef7c4d4675d2a9206f913f26ca1a5cd41bff9d41 (patch)
tree88839b80e603ba395882df98b8a8c8f8385337b1 /arch/sparc/kernel/entry.h
parente95ade083939dcb4b0c51c1a2c8504ea9ef3d6ef (diff)
downloadlinux-ef7c4d4675d2a9206f913f26ca1a5cd41bff9d41.tar.gz
linux-ef7c4d4675d2a9206f913f26ca1a5cd41bff9d41.tar.bz2
linux-ef7c4d4675d2a9206f913f26ca1a5cd41bff9d41.zip
sparc: Use popc if possible for hweight routines.
Just like powerpc, we code patch at boot time. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc/kernel/entry.h')
-rw-r--r--arch/sparc/kernel/entry.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/sparc/kernel/entry.h b/arch/sparc/kernel/entry.h
index d1f1361c4167..16d1545d84fc 100644
--- a/arch/sparc/kernel/entry.h
+++ b/arch/sparc/kernel/entry.h
@@ -42,6 +42,13 @@ extern void fpsave(unsigned long *fpregs, unsigned long *fsr,
extern void fpload(unsigned long *fpregs, unsigned long *fsr);
#else /* CONFIG_SPARC32 */
+struct popc_3insn_patch_entry {
+ unsigned int addr;
+ unsigned int insns[3];
+};
+extern struct popc_3insn_patch_entry __popc_3insn_patch,
+ __popc_3insn_patch_end;
+
extern void __init per_cpu_patch(void);
extern void __init sun4v_patch(void);
extern void __init boot_cpu_id_too_large(int cpu);