mirror of https://github.com/xqemu/xqemu.git
-----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 USE_ELF_CORE_DUMP
|
||||||
#define ELF_EXEC_PAGESIZE 4096
|
#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 */
|
#endif /* TARGET_MIPS */
|
||||||
|
|
||||||
#ifdef TARGET_MICROBLAZE
|
#ifdef TARGET_MICROBLAZE
|
||||||
|
|
|
@ -23,7 +23,7 @@ typedef struct target_sigaltstack {
|
||||||
|
|
||||||
static inline abi_ulong get_sp_from_cpustate(CPUMBState *state)
|
static inline abi_ulong get_sp_from_cpustate(CPUMBState *state)
|
||||||
{
|
{
|
||||||
return state->regs[14];
|
return state->regs[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
#!/bin/sh
|
#!/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
|
# program execution by the kernel
|
||||||
|
|
||||||
qemu_target_list="i386 i486 alpha arm armeb sparc32plus ppc ppc64 ppc64le m68k \
|
qemu_target_list="i386 i486 alpha arm armeb sparc32plus ppc ppc64 ppc64le m68k \
|
||||||
mips mipsel mipsn32 mipsn32el mips64 mips64el \
|
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_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'
|
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_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
|
||||||
xtensaeb_family=xtensaeb
|
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() {
|
qemu_get_family() {
|
||||||
cpu=${HOST_ARCH:-$(uname -m)}
|
cpu=${HOST_ARCH:-$(uname -m)}
|
||||||
case "$cpu" in
|
case "$cpu" in
|
||||||
|
|
Loading…
Reference in New Issue