[Qemu-commits] [qemu/qemu] 9f07e4: target/i386: remove PCOMMIT from TCG, deprecate pr...
Branch: refs/heads/master Home: https://github.com/qemu/qemu Commit: 9f07e47a5e96c88c1d2892fbdcbc8ff0437b7ac3 https://github.com/qemu/qemu/commit/9f07e47a5e96c88c1d2892fbdcbc8ff0437b7ac3 Author: Paolo Bonzini Date: 2024-05-10 (Fri, 10 May 2024) Changed paths: M docs/about/deprecated.rst M target/i386/cpu.c M target/i386/cpu.h M target/i386/tcg/translate.c Log Message: --- target/i386: remove PCOMMIT from TCG, deprecate property The PCOMMIT instruction was never included in any physical processor. TCG implements it as a no-op instruction, but its utility is debatable to say the least. Drop it from the decoder since it is only available with "-cpu max", which does not guarantee migration compatibility across versions, and deprecate the property just in case someone is using it as "pcommit=off". Reviewed-by: Richard Henderson Signed-off-by: Paolo Bonzini Commit: 41c685dc59bb611096f3bb6a663cfa82e4cba97b https://github.com/qemu/qemu/commit/41c685dc59bb611096f3bb6a663cfa82e4cba97b Author: Paolo Bonzini Date: 2024-05-10 (Fri, 10 May 2024) Changed paths: M target/i386/tcg/translate.c Log Message: --- target/i386: fix operand size for DATA16 REX.W POPCNT According to the manual, 32-bit vs 64-bit is governed by REX.W and REX ignores the 0x66 prefix. This can be confirmed with this program: #include int main() { int x = 0x1234; int y; asm("popcntl %1, %0" : "=r" (y) : "r" (x)); printf("%x\n", y); asm("mov $-1, %0; .byte 0x66; popcntl %1, %0" : "+r" (y) : "r" (x)); printf("%x\n", y); asm("mov $-1, %0; .byte 0x66; popcntq %q1, %q0" : "+r" (y) : "r" (x)); printf("%x\n", y); } which prints 5//5 on real hardware and 5// on QEMU. Cc: qemu-sta...@nongnu.org Reviewed-by: Zhao Liu Reviewed-by: Richard Henderson Signed-off-by: Paolo Bonzini Commit: 40a3ec7b5ffde500789d016660a171057d6b467c https://github.com/qemu/qemu/commit/40a3ec7b5ffde500789d016660a171057d6b467c Author: Paolo Bonzini Date: 2024-05-10 (Fri, 10 May 2024) Changed paths: M target/i386/tcg/translate.c Log Message: --- target/i386: rdpkru/wrpkru are no-prefix instructions Reject 0x66/0xf3/0xf2 in front of them. Cc: qemu-sta...@nongnu.org Reviewed-by: Richard Henderson Signed-off-by: Paolo Bonzini Commit: 3fabbe0b7d458d6380f4b3246b8b32400f6bd1d9 https://github.com/qemu/qemu/commit/3fabbe0b7d458d6380f4b3246b8b32400f6bd1d9 Author: Paolo Bonzini Date: 2024-05-10 (Fri, 10 May 2024) Changed paths: M target/i386/tcg/decode-new.c.inc M target/i386/tcg/decode-new.h M target/i386/tcg/emit.c.inc M target/i386/tcg/translate.c Log Message: --- target/i386: move prefetch and multi-byte UD/NOP to new decoder These are trivial to add, and moving them to the new decoder fixes some corner cases: raising #UD instead of an instruction fetch page fault for the undefined opcodes, and incorrectly rejecting 0F 18 prefetches with register operands (which are treated as reserved NOPs). Reviewed-by: Richard Henderson Reviewed-by: Zhao Liu Signed-off-by: Paolo Bonzini Commit: fe01af5d47d4cf7fdf90c54d43f784e5068c8d72 https://github.com/qemu/qemu/commit/fe01af5d47d4cf7fdf90c54d43f784e5068c8d72 Author: Paolo Bonzini Date: 2024-05-10 (Fri, 10 May 2024) Changed paths: M target/i386/cpu.c Log Message: --- target/i386: fix feature dependency for WAITPKG The VMX feature bit depends on general availability of WAITPKG, not the other way round. Fixes: 33cc88261c3 ("target/i386: add support for VMX_SECONDARY_EXEC_ENABLE_USER_WAIT_PAUSE", 2023-08-28) Cc: qemu-sta...@nongnu.org Reviewed-by: Zhao Liu Signed-off-by: Paolo Bonzini Commit: ff5b5739f97d08d9ca984ec8016b54487a76401b https://github.com/qemu/qemu/commit/ff5b5739f97d08d9ca984ec8016b54487a76401b Author: Paolo Bonzini Date: 2024-05-10 (Fri, 10 May 2024) Changed paths: M tests/tcg/i386/test-i386.c Log Message: --- tests/tcg: cover lzcnt/tzcnt/popcnt Reviewed-by: Zhao Liu Signed-off-by: Paolo Bonzini Commit: 23b1f53c2c8990ed745acede171e49645af3d6d0 https://github.com/qemu/qemu/commit/23b1f53c2c8990ed745acede171e49645af3d6d0 Author: Paolo Bonzini Date: 2024-05-10 (Fri, 10 May 2024) Changed paths: M configure Log Message: --- configure: quote -D options that are passed through to meson Ensure that they go through unmodified, instead of removing one layer of quoting. -D is a pretty specialized option and most options that can have spaces do not need it (for example, c_args is covered by --extra-cflags). Therefore it's unlikely that this causes actual trouble. However, a somewhat realistic failure case would be with -Dpkg_config_path and a pkg-config directory that contains spaces. Cc: qemu-sta...@nongnu.org Reviewed-by: Thomas Huth
[Qemu-commits] [qemu/qemu] 9f07e4: target/i386: remove PCOMMIT from TCG, deprecate pr...
Branch: refs/heads/staging Home: https://github.com/qemu/qemu Commit: 9f07e47a5e96c88c1d2892fbdcbc8ff0437b7ac3 https://github.com/qemu/qemu/commit/9f07e47a5e96c88c1d2892fbdcbc8ff0437b7ac3 Author: Paolo Bonzini Date: 2024-05-10 (Fri, 10 May 2024) Changed paths: M docs/about/deprecated.rst M target/i386/cpu.c M target/i386/cpu.h M target/i386/tcg/translate.c Log Message: --- target/i386: remove PCOMMIT from TCG, deprecate property The PCOMMIT instruction was never included in any physical processor. TCG implements it as a no-op instruction, but its utility is debatable to say the least. Drop it from the decoder since it is only available with "-cpu max", which does not guarantee migration compatibility across versions, and deprecate the property just in case someone is using it as "pcommit=off". Reviewed-by: Richard Henderson Signed-off-by: Paolo Bonzini Commit: 41c685dc59bb611096f3bb6a663cfa82e4cba97b https://github.com/qemu/qemu/commit/41c685dc59bb611096f3bb6a663cfa82e4cba97b Author: Paolo Bonzini Date: 2024-05-10 (Fri, 10 May 2024) Changed paths: M target/i386/tcg/translate.c Log Message: --- target/i386: fix operand size for DATA16 REX.W POPCNT According to the manual, 32-bit vs 64-bit is governed by REX.W and REX ignores the 0x66 prefix. This can be confirmed with this program: #include int main() { int x = 0x1234; int y; asm("popcntl %1, %0" : "=r" (y) : "r" (x)); printf("%x\n", y); asm("mov $-1, %0; .byte 0x66; popcntl %1, %0" : "+r" (y) : "r" (x)); printf("%x\n", y); asm("mov $-1, %0; .byte 0x66; popcntq %q1, %q0" : "+r" (y) : "r" (x)); printf("%x\n", y); } which prints 5//5 on real hardware and 5// on QEMU. Cc: qemu-sta...@nongnu.org Reviewed-by: Zhao Liu Reviewed-by: Richard Henderson Signed-off-by: Paolo Bonzini Commit: 40a3ec7b5ffde500789d016660a171057d6b467c https://github.com/qemu/qemu/commit/40a3ec7b5ffde500789d016660a171057d6b467c Author: Paolo Bonzini Date: 2024-05-10 (Fri, 10 May 2024) Changed paths: M target/i386/tcg/translate.c Log Message: --- target/i386: rdpkru/wrpkru are no-prefix instructions Reject 0x66/0xf3/0xf2 in front of them. Cc: qemu-sta...@nongnu.org Reviewed-by: Richard Henderson Signed-off-by: Paolo Bonzini Commit: 3fabbe0b7d458d6380f4b3246b8b32400f6bd1d9 https://github.com/qemu/qemu/commit/3fabbe0b7d458d6380f4b3246b8b32400f6bd1d9 Author: Paolo Bonzini Date: 2024-05-10 (Fri, 10 May 2024) Changed paths: M target/i386/tcg/decode-new.c.inc M target/i386/tcg/decode-new.h M target/i386/tcg/emit.c.inc M target/i386/tcg/translate.c Log Message: --- target/i386: move prefetch and multi-byte UD/NOP to new decoder These are trivial to add, and moving them to the new decoder fixes some corner cases: raising #UD instead of an instruction fetch page fault for the undefined opcodes, and incorrectly rejecting 0F 18 prefetches with register operands (which are treated as reserved NOPs). Reviewed-by: Richard Henderson Reviewed-by: Zhao Liu Signed-off-by: Paolo Bonzini Commit: fe01af5d47d4cf7fdf90c54d43f784e5068c8d72 https://github.com/qemu/qemu/commit/fe01af5d47d4cf7fdf90c54d43f784e5068c8d72 Author: Paolo Bonzini Date: 2024-05-10 (Fri, 10 May 2024) Changed paths: M target/i386/cpu.c Log Message: --- target/i386: fix feature dependency for WAITPKG The VMX feature bit depends on general availability of WAITPKG, not the other way round. Fixes: 33cc88261c3 ("target/i386: add support for VMX_SECONDARY_EXEC_ENABLE_USER_WAIT_PAUSE", 2023-08-28) Cc: qemu-sta...@nongnu.org Reviewed-by: Zhao Liu Signed-off-by: Paolo Bonzini Commit: ff5b5739f97d08d9ca984ec8016b54487a76401b https://github.com/qemu/qemu/commit/ff5b5739f97d08d9ca984ec8016b54487a76401b Author: Paolo Bonzini Date: 2024-05-10 (Fri, 10 May 2024) Changed paths: M tests/tcg/i386/test-i386.c Log Message: --- tests/tcg: cover lzcnt/tzcnt/popcnt Reviewed-by: Zhao Liu Signed-off-by: Paolo Bonzini Commit: 23b1f53c2c8990ed745acede171e49645af3d6d0 https://github.com/qemu/qemu/commit/23b1f53c2c8990ed745acede171e49645af3d6d0 Author: Paolo Bonzini Date: 2024-05-10 (Fri, 10 May 2024) Changed paths: M configure Log Message: --- configure: quote -D options that are passed through to meson Ensure that they go through unmodified, instead of removing one layer of quoting. -D is a pretty specialized option and most options that can have spaces do not need it (for example, c_args is covered by --extra-cflags). Therefore it's unlikely that this causes actual trouble. However, a somewhat realistic failure case would be with -Dpkg_config_path and a pkg-config directory that contains spaces. Cc: qemu-sta...@nongnu.org Reviewed-by: Thomas Huth