On 2016-12-01 21:51, Jin Guojie wrote: > Changes in v5: > * Update against master(v2.8.0-rc2) > * Fix a bug: 64-bit big-endian guests hang on mips64 little-endian > hosts, and vice versa. This bug was first introduced in v2 patch, > due to obvious misuse of ret/arg registers in tcg_out_bswap64(). > > tcg_out_opc_reg(s, OPC_DSBH, ret, 0, arg); > - tcg_out_opc_reg(s, OPC_DSHD, ret, 0, arg); > + tcg_out_opc_reg(s, OPC_DSHD, ret, 0, ret); > > * Fix a style problem: checkpatch.pl forbids 'extern' to be used in .c. > > ERROR: externs should be avoided in .c files > #28: FILE: tcg/mips/tcg-target.inc.c:39: > +extern int link_error(void); > > Simply comment the type identifier to pass the check. > > * Tested successfully on following machines: > > | HOST | qemu-system | Debian ISO | > |-----------------------------------------| > | mips 32 le | i386 | i386 | > | mips 32 le | x86_64 | i386 | > | mips 32 le | x86_64 | amd64 | > | mips 64 le | i386 | i386 | > | mips 64 le | x86_64 | i386 | > | mips 64 le | x86_64 | amd64 | > | mips 64 le | mips 64 be | mips 64 be | > |-----------------------------------------| > | mips 32 be | i386 | i386 | > | mips 32 be | x86_64 | i386 | > | mips 32 be | x86_64 | amd64 | > | mips 64 be | i386 | i386 | > | mips 64 be | x86_64 | i386 | > | mips 64 be | x86_64 | amd64 | > | mips n32 be | 386 | i386 | > | mips n32 be | x86_64 | i386 | > | mips n32 be | x86_64 | amd64 | > > (No plan to test MIPS R6 in this patch.) > > Summary of changes from v4: > > | tcg-mips: Support 64-bit opcodes | Fix tcg_out_bswap64() | > | tcg-mips: Adjust qemu_ld/st for mips64 | Fix a style problem |
Thanks for the new version. I just gave it a try on a mips64 le guest, and I confirm this fixes booting mips64 be and ppc64 guests. I'll try to do more tests on mips be / mips le / mips64 le over the week-end. Aurelien -- Aurelien Jarno GPG: 4096R/1DDD8C9B aurel...@aurel32.net http://www.aurel32.net