-----BEGIN PGP SIGNATURE-----
iQIcBAABAgAGBQJazN+TAAoJEPMMOL0/L748seEP+wWI89EHiI8lpih0m7hv4jA3 JFP1FcmxbbO5I1D4mXsV1YsJrl1Y1kCelqEX3I3xWS0ESI3IpC5HpCwsYPbYyh6v /YC+DpJL5xngf5mzgimyiBQr0s72/PQ2Plt85sPICG+wby4j3rWd9Gh7z4hNmp6G 41kJ9YwDqpxsKXyW36Tw+56r0pUd9cUtfEa8IJD5IpmYpvauShTk9sav/CvF5L6g kEDjk9aVL+BFg1C9qQXh56ziCp/20QDJIlS8x2N0heISz1agcRqJm6MLk49tJtRO cppXbrI6hjJC0bdEKmb7WzoCmrG2p/HdbO7LMhSfhmXiAIaZkFb5Nr38uDyaT3Ii IMhLJwaEdKOUIpywdDg7jnrTyif0V3SY/ttRBn9DFu4sYjfBm9Nl+AS9eHcJeOj5 Zw5hdwSeOFUFYB26PrNm75IYqzLkENpd5AdAcSm3L8pUHcDFel5D/2pVw3OgMeCK i5ZAxSjbL24wfjz0Iq2FJ72bq1YCDMzX1+6glUbJFVZsrNKHNtS/3dmufexbqGM4 iVFv1VHrn4s4r7iyar01KaIy7CTOpnM+pl2Q7l9sxSCTck6AjHv4kcCIf4DH7jg1 6RcGYG+jJ9fmvyvA6QaorxAYr0/BIiPhDC7dPT+wlf50Qd4ZSGe2Y1h9OKPD4U3K hfrwFPeGWOF02Cve9rgr =fuuT -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/vivier2/tags/linux-user-for-2.12-pull-request' into staging # gpg: Signature made Tue 10 Apr 2018 17:00:19 BST # gpg: using RSA key F30C38BD3F2FBE3C # gpg: Good signature from "Laurent Vivier <lvivier@redhat.com>" # gpg: aka "Laurent Vivier <laurent@vivier.eu>" # gpg: aka "Laurent Vivier (Red Hat) <lvivier@redhat.com>" # Primary key fingerprint: CD2F 75DD C8E3 A4DC 2E4F 5173 F30C 38BD 3F2F BE3C * remotes/vivier2/tags/linux-user-for-2.12-pull-request: linux-user: implement HWCAP bits on MIPS linux-user: add microblaze/microblazeel magic numbers in qemu-binfmt-conf.sh linux-user: fix microblaze get_sp_from_cpustate() Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
675608cb84
@ -882,6 +882,30 @@ static void elf_core_copy_regs(target_elf_gregset_t *regs, const CPUMIPSState *e
|
||||
#define USE_ELF_CORE_DUMP
|
||||
#define ELF_EXEC_PAGESIZE 4096
|
||||
|
||||
/* See arch/mips/include/uapi/asm/hwcap.h. */
|
||||
enum {
|
||||
HWCAP_MIPS_R6 = (1 << 0),
|
||||
HWCAP_MIPS_MSA = (1 << 1),
|
||||
};
|
||||
|
||||
#define ELF_HWCAP get_elf_hwcap()
|
||||
|
||||
static uint32_t get_elf_hwcap(void)
|
||||
{
|
||||
MIPSCPU *cpu = MIPS_CPU(thread_cpu);
|
||||
uint32_t hwcaps = 0;
|
||||
|
||||
#define GET_FEATURE(flag, hwcap) \
|
||||
do { if (cpu->env.insn_flags & (flag)) { hwcaps |= hwcap; } } while (0)
|
||||
|
||||
GET_FEATURE(ISA_MIPS32R6 | ISA_MIPS64R6, HWCAP_MIPS_R6);
|
||||
GET_FEATURE(ASE_MSA, HWCAP_MIPS_MSA);
|
||||
|
||||
#undef GET_FEATURE
|
||||
|
||||
return hwcaps;
|
||||
}
|
||||
|
||||
#endif /* TARGET_MIPS */
|
||||
|
||||
#ifdef TARGET_MICROBLAZE
|
||||
|
@ -23,7 +23,7 @@ typedef struct target_sigaltstack {
|
||||
|
||||
static inline abi_ulong get_sp_from_cpustate(CPUMBState *state)
|
||||
{
|
||||
return state->regs[14];
|
||||
return state->regs[1];
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
#!/bin/sh
|
||||
# enable automatic i386/ARM/M68K/MIPS/SPARC/PPC/s390/HPPA/Xtensa
|
||||
# enable automatic i386/ARM/M68K/MIPS/SPARC/PPC/s390/HPPA/Xtensa/microblaze
|
||||
# program execution by the kernel
|
||||
|
||||
qemu_target_list="i386 i486 alpha arm armeb sparc32plus ppc ppc64 ppc64le m68k \
|
||||
mips mipsel mipsn32 mipsn32el mips64 mips64el \
|
||||
sh4 sh4eb s390x aarch64 aarch64_be hppa riscv32 riscv64 xtensa xtensaeb"
|
||||
sh4 sh4eb s390x aarch64 aarch64_be hppa riscv32 riscv64 xtensa xtensaeb microblaze microblazeel"
|
||||
|
||||
i386_magic='\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x03\x00'
|
||||
i386_mask='\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
|
||||
@ -116,6 +116,14 @@ xtensaeb_magic='\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\
|
||||
xtensaeb_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
|
||||
xtensaeb_family=xtensaeb
|
||||
|
||||
microblaze_magic='\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xba\xab'
|
||||
microblaze_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
|
||||
microblaze_family=microblaze
|
||||
|
||||
microblazeel_magic='\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xab\xba'
|
||||
microblazeel_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
|
||||
microblazeel_family=microblazeel
|
||||
|
||||
qemu_get_family() {
|
||||
cpu=${HOST_ARCH:-$(uname -m)}
|
||||
case "$cpu" in
|
||||
|
Loading…
Reference in New Issue
Block a user