diff options
author | H. Peter Anvin <hpa@zytor.com> | 2008-08-28 18:03:49 -0700 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2008-08-28 18:03:49 -0700 |
commit | 5e7d6f1105917d5ef490078a2444aa8523e2d85b (patch) | |
tree | 04697e713f7dd69d327db5c3a972b85f7ba5db5e | |
parent | c5b37dbf5e18a77a91c1cb0454e537018b71b5d3 (diff) | |
download | nasm-5e7d6f1105917d5ef490078a2444aa8523e2d85b.tar.gz |
BR 2029472: Wrong operand size for VMREAD/VMWRITE in 64-bit mode
Fix the operand size for VMREAD/VMWRITE in 64-bit mode
-rw-r--r-- | insns.dat | 6 | ||||
-rw-r--r-- | test/vmread.asm | 22 |
2 files changed, 26 insertions, 2 deletions
@@ -1735,11 +1735,13 @@ VMLOAD void \3\x0F\x01\xDA X64,VMX VMMCALL void \3\x0F\x01\xD9 X64,VMX VMPTRLD mem \2\x0F\xC7\206 VMX VMPTRST mem \2\x0F\xC7\207 VMX -VMREAD rm32,reg32 \360\2\x0F\x78\101 VMX +VMREAD rm32,reg32 \360\2\x0F\x78\101 VMX,NOLONG +VMREAD rm64,reg64 \323\360\2\x0F\x78\101 X64,VMX VMRESUME void \3\x0F\x01\xC3 VMX VMRUN void \3\x0F\x01\xD8 X64,VMX VMSAVE void \3\x0F\x01\xDB X64,VMX -VMWRITE reg32,rm32 \360\2\x0F\x79\110 VMX +VMWRITE reg32,rm32 \360\2\x0F\x79\110 VMX,NOLONG +VMWRITE reg64,rm64 \323\360\2\x0F\x79\110 X64,VMX VMXOFF void \3\x0F\x01\xC4 VMX VMXON mem \363\2\x0F\xC7\206 VMX ;# Extended Page Tables VMX instructions diff --git a/test/vmread.asm b/test/vmread.asm new file mode 100644 index 00000000..1b6ac708 --- /dev/null +++ b/test/vmread.asm @@ -0,0 +1,22 @@ +;Testname=test; Arguments=-fbin -ovmread.bin; Files=.stdout .stderr vmread.bin + + bits 32 + vmread dword [0], eax + vmwrite eax, dword [0] + + bits 64 + vmread qword [0], rax + vmwrite rax, qword [0] + +%ifdef ERROR + bits 32 + vmread qword [0], eax + vmwrite eax, qword [0] + + bits 64 + vmread dword [0], eax + vmwrite eax, dword [0] + + vmread qword [0], eax + vmwrite eax, qword [0] +%endif
\ No newline at end of file |