Commit 7883a18c authored by Richard Henderson's avatar Richard Henderson

[ALPHA] Tidy ELF_HWCAP and ELF_PLATFORM.

Provide all relevant platform identifiers up to ev67.
parent 755fa12b
...@@ -122,27 +122,19 @@ extern int dump_elf_task_fp(elf_fpreg_t *dest, struct task_struct *task); ...@@ -122,27 +122,19 @@ extern int dump_elf_task_fp(elf_fpreg_t *dest, struct task_struct *task);
instruction set this CPU supports. This is trivial on Alpha, instruction set this CPU supports. This is trivial on Alpha,
but not so on other machines. */ but not so on other machines. */
#define ELF_HWCAP \ #define ELF_HWCAP (~amask(-1))
({ \
/* Sadly, most folks don't yet have assemblers that know about \
amask. This is "amask v0, v0" */ \
register long _v0 __asm("$0") = -1; \
__asm(".long 0x47e00c20" : "=r"(_v0) : "0"(_v0)); \
~_v0; \
})
/* This yields a string that ld.so will use to load implementation /* This yields a string that ld.so will use to load implementation
specific libraries for optimization. This is more specific in specific libraries for optimization. This is more specific in
intent than poking at uname or /proc/cpuinfo. intent than poking at uname or /proc/cpuinfo. */
This might do with checking bwx simultaneously... */
#define ELF_PLATFORM \ #define ELF_PLATFORM \
({ \ ({ \
/* Or "implver v0" ... */ \ enum implver_enum i_ = implver(); \
register long _v0 __asm("$0"); \ ( i_ == IMPLVER_EV4 ? "ev4" \
__asm(".long 0x47e03d80" : "=r"(_v0)); \ : i_ == IMPLVER_EV5 \
_v0 == 0 ? "ev4" : "ev5"; \ ? (amask(AMASK_BWX) ? "ev5" : "ev56") \
: amask (AMASK_CIX) ? "ev6" : "ev67"); \
}) })
#ifdef __KERNEL__ #ifdef __KERNEL__
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment