Commit 9f9d6596 authored by Tomasz Buchert's avatar Tomasz Buchert

Imported Upstream version 1.71.52

parent 0bccf957
No preview for this file type
...@@ -687,8 +687,9 @@ instructon is to reverse the sign of the operand from positive to negative or ...@@ -687,8 +687,9 @@ instructon is to reverse the sign of the operand from positive to negative or
from negative to positive. Rules for the operand are the same as for the "inc" from negative to positive. Rules for the operand are the same as for the "inc"
instruction. instruction.
"xadd" exchanges the destination operand with the source operand, then loads "xadd" exchanges the destination operand with the source operand, then loads
the sum of the two values into the destination operand. Rules for the operands the sum of the two values into the destination operand. The destination operand
are the same as for the "add" instruction. may be a general register or memory, the source operand must be a general
register.
All the above binary arithmetic instructions update SF, ZF, PF and OF flags. All the above binary arithmetic instructions update SF, ZF, PF and OF flags.
SF is always set to the same value as the result's sign bit, ZF is set when SF is always set to the same value as the result's sign bit, ZF is set when
all the bits of result are zero, PF is set when low order eight bits of result all the bits of result are zero, PF is set when low order eight bits of result
......
...@@ -101,7 +101,7 @@ preprocessor: ...@@ -101,7 +101,7 @@ preprocessor:
or al,al or al,al
jz predefinition_converted jz predefinition_converted
cmp al,20h cmp al,20h
je convert_line_data je convert_predefinition
cmp al,3Bh cmp al,3Bh
je invalid_definition je invalid_definition
cmp al,5Ch cmp al,5Ch
......
...@@ -684,9 +684,9 @@ instructions_4: ...@@ -684,9 +684,9 @@ instructions_4:
db 'cdqe',98h db 'cdqe',98h
dw simple_instruction_64bit-instruction_handler dw simple_instruction_64bit-instruction_handler
db 'clac',0CAh db 'clac',0CAh
dw simple_vmx_instruction-instruction_handler dw simple_instruction_0f_01-instruction_handler
db 'clgi',0DDh db 'clgi',0DDh
dw simple_vmx_instruction-instruction_handler dw simple_instruction_0f_01-instruction_handler
db 'clts',6 db 'clts',6
dw simple_extended_instruction-instruction_handler dw simple_extended_instruction-instruction_handler
db 'clwb',6 db 'clwb',6
...@@ -898,9 +898,9 @@ instructions_4: ...@@ -898,9 +898,9 @@ instructions_4:
db 'smsw',14h db 'smsw',14h
dw pm_store_word_instruction-instruction_handler dw pm_store_word_instruction-instruction_handler
db 'stac',0CBh db 'stac',0CBh
dw simple_vmx_instruction-instruction_handler dw simple_instruction_0f_01-instruction_handler
db 'stgi',0DCh db 'stgi',0DCh
dw simple_vmx_instruction-instruction_handler dw simple_instruction_0f_01-instruction_handler
db 'stos',0AAh db 'stos',0AAh
dw stos_instruction-instruction_handler dw stos_instruction-instruction_handler
db 'test',0 db 'test',0
...@@ -918,7 +918,7 @@ instructions_4: ...@@ -918,7 +918,7 @@ instructions_4:
db 'xchg',0 db 'xchg',0
dw xchg_instruction-instruction_handler dw xchg_instruction-instruction_handler
db 'xend',0D5h db 'xend',0D5h
dw simple_vmx_instruction-instruction_handler dw simple_instruction_0f_01-instruction_handler
db 'xlat',0D7h db 'xlat',0D7h
dw xlat_instruction-instruction_handler dw xlat_instruction-instruction_handler
instructions_5: instructions_5:
...@@ -1421,7 +1421,7 @@ instructions_5: ...@@ -1421,7 +1421,7 @@ instructions_5:
db 'xsave',100b db 'xsave',100b
dw fxsave_instruction-instruction_handler dw fxsave_instruction-instruction_handler
db 'xtest',0D6h db 'xtest',0D6h
dw simple_vmx_instruction-instruction_handler dw simple_instruction_0f_01-instruction_handler
instructions_6: instructions_6:
db 'aesdec',0DEh db 'aesdec',0DEh
dw sse4_instruction_66_38-instruction_handler dw sse4_instruction_66_38-instruction_handler
...@@ -1747,12 +1747,14 @@ instructions_6: ...@@ -1747,12 +1747,14 @@ instructions_6:
dw simple_instruction_16bit-instruction_handler dw simple_instruction_16bit-instruction_handler
db 'rdmsrq',32h db 'rdmsrq',32h
dw simple_extended_instruction_64bit-instruction_handler dw simple_extended_instruction_64bit-instruction_handler
db 'rdpkru',0EEh
dw simple_instruction_0f_01-instruction_handler
db 'rdrand',110b db 'rdrand',110b
dw rdrand_instruction-instruction_handler dw rdrand_instruction-instruction_handler
db 'rdseed',111b db 'rdseed',111b
dw rdrand_instruction-instruction_handler dw rdrand_instruction-instruction_handler
db 'rdtscp',1 db 'rdtscp',0F9h
dw rdtscp_instruction-instruction_handler dw simple_instruction_0f_01-instruction_handler
db 'repeat',0 db 'repeat',0
dw repeat_directive-instruction_handler dw repeat_directive-instruction_handler
db 'setalc',0D6h db 'setalc',0D6h
...@@ -1828,7 +1830,7 @@ instructions_6: ...@@ -1828,7 +1830,7 @@ instructions_6:
db 'vmaxss',5Fh db 'vmaxss',5Fh
dw avx_ss_instruction_sae-instruction_handler dw avx_ss_instruction_sae-instruction_handler
db 'vmcall',0C1h db 'vmcall',0C1h
dw simple_vmx_instruction-instruction_handler dw simple_instruction_0f_01-instruction_handler
db 'vminpd',5Dh db 'vminpd',5Dh
dw avx_pd_instruction_sae-instruction_handler dw avx_pd_instruction_sae-instruction_handler
db 'vminps',5Dh db 'vminps',5Dh
...@@ -1856,7 +1858,7 @@ instructions_6: ...@@ -1856,7 +1858,7 @@ instructions_6:
db 'vmulss',59h db 'vmulss',59h
dw avx_ss_instruction_er-instruction_handler dw avx_ss_instruction_er-instruction_handler
db 'vmxoff',0C4h db 'vmxoff',0C4h
dw simple_vmx_instruction-instruction_handler dw simple_instruction_0f_01-instruction_handler
db 'vpabsb',1Ch db 'vpabsb',1Ch
dw avx_single_source_bw_instruction_38-instruction_handler dw avx_single_source_bw_instruction_38-instruction_handler
db 'vpabsd',1Eh db 'vpabsd',1Eh
...@@ -1995,16 +1997,18 @@ instructions_6: ...@@ -1995,16 +1997,18 @@ instructions_6:
dw simple_extended_instruction-instruction_handler dw simple_extended_instruction-instruction_handler
db 'wrmsrq',30h db 'wrmsrq',30h
dw simple_extended_instruction_64bit-instruction_handler dw simple_extended_instruction_64bit-instruction_handler
db 'wrpkru',0EFh
dw simple_instruction_0f_01-instruction_handler
db 'xabort',0 db 'xabort',0
dw xabort_instruction-instruction_handler dw xabort_instruction-instruction_handler
db 'xbegin',0 db 'xbegin',0
dw xbegin_instruction-instruction_handler dw xbegin_instruction-instruction_handler
db 'xgetbv',0D0h db 'xgetbv',0D0h
dw simple_vmx_instruction-instruction_handler dw simple_instruction_0f_01-instruction_handler
db 'xrstor',101b db 'xrstor',101b
dw fxsave_instruction-instruction_handler dw fxsave_instruction-instruction_handler
db 'xsetbv',0D1h db 'xsetbv',0D1h
dw simple_vmx_instruction-instruction_handler dw simple_instruction_0f_01-instruction_handler
instructions_7: instructions_7:
db 'blcfill',11h db 'blcfill',11h
dw tbm_instruction-instruction_handler dw tbm_instruction-instruction_handler
...@@ -2271,7 +2275,7 @@ instructions_7: ...@@ -2271,7 +2275,7 @@ instructions_7:
db 'vmclear',6 db 'vmclear',6
dw vmclear_instruction-instruction_handler dw vmclear_instruction-instruction_handler
db 'vmmcall',0D9h db 'vmmcall',0D9h
dw simple_vmx_instruction-instruction_handler dw simple_instruction_0f_01-instruction_handler
db 'vmovapd',28h db 'vmovapd',28h
dw avx_movpd_instruction-instruction_handler dw avx_movpd_instruction-instruction_handler
db 'vmovaps',28h db 'vmovaps',28h
...@@ -2722,7 +2726,7 @@ instructions_8: ...@@ -2722,7 +2726,7 @@ instructions_8:
db 'vldmxcsr',10b db 'vldmxcsr',10b
dw vldmxcsr_instruction-instruction_handler dw vldmxcsr_instruction-instruction_handler
db 'vmlaunch',0C2h db 'vmlaunch',0C2h
dw simple_vmx_instruction-instruction_handler dw simple_instruction_0f_01-instruction_handler
db 'vmovddup',12h db 'vmovddup',12h
dw avx_movddup_instruction-instruction_handler dw avx_movddup_instruction-instruction_handler
db 'vmovdqu8',6Fh db 'vmovdqu8',6Fh
...@@ -2740,7 +2744,7 @@ instructions_8: ...@@ -2740,7 +2744,7 @@ instructions_8:
db 'vmpsadbw',42h db 'vmpsadbw',42h
dw avx_pi_instruction_3a_imm8_noevex-instruction_handler dw avx_pi_instruction_3a_imm8_noevex-instruction_handler
db 'vmresume',0C3h db 'vmresume',0C3h
dw simple_vmx_instruction-instruction_handler dw simple_instruction_0f_01-instruction_handler
db 'vpaddusb',0DCh db 'vpaddusb',0DCh
dw avx_bw_instruction-instruction_handler dw avx_bw_instruction-instruction_handler
db 'vpaddusw',0DDh db 'vpaddusw',0DDh
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
; cannot simply be copied and put under another distribution licence ; cannot simply be copied and put under another distribution licence
; (including the GNU Public Licence). ; (including the GNU Public Licence).
VERSION_STRING equ "1.71.51" VERSION_STRING equ "1.71.52"
VERSION_MAJOR = 1 VERSION_MAJOR = 1
VERSION_MINOR = 71 VERSION_MINOR = 71
...@@ -3633,12 +3633,13 @@ invlpg_instruction: ...@@ -3633,12 +3633,13 @@ invlpg_instruction:
swapgs_instruction: swapgs_instruction:
cmp [code_type],64 cmp [code_type],64
jne illegal_instruction jne illegal_instruction
rdtscp_instruction: simple_instruction_0f_01:
mov [base_code],0Fh mov ah,al
mov [extended_code],1 mov al,0Fh
mov [postbyte_register],7 stos byte [edi]
mov bl,al mov al,1
jmp nomem_instruction_ready stos word [edi]
jmp instruction_assembled
basic_486_instruction: basic_486_instruction:
mov [base_code],0Fh mov [base_code],0Fh
...@@ -5858,13 +5859,6 @@ adx_instruction: ...@@ -5858,13 +5859,6 @@ adx_instruction:
call operand_64bit call operand_64bit
jmp nomem_instruction_ready jmp nomem_instruction_ready
simple_vmx_instruction:
mov ah,al
mov al,0Fh
stos byte [edi]
mov al,1
stos word [edi]
jmp instruction_assembled
vmclear_instruction: vmclear_instruction:
mov [opcode_prefix],66h mov [opcode_prefix],66h
jmp vmx_instruction jmp vmx_instruction
...@@ -6005,7 +5999,7 @@ skinit_instruction: ...@@ -6005,7 +5999,7 @@ skinit_instruction:
cmp ax,0400h cmp ax,0400h
jne invalid_operand jne invalid_operand
mov al,0DEh mov al,0DEh
jmp simple_vmx_instruction jmp simple_instruction_0f_01
invlpga_instruction: invlpga_instruction:
push eax push eax
mov [base_code],0Fh mov [base_code],0Fh
......
...@@ -2,6 +2,13 @@ ...@@ -2,6 +2,13 @@
Visit http://flatassembler.net/ for more information. Visit http://flatassembler.net/ for more information.
version 1.71.52 (May 13, 2016)
[+] Added "rdpkru" and "wrpkru" instructions.
[-] Fixed a bug in processing the "-d" switch.
version 1.71.51 (Feb 08, 2016) version 1.71.51 (Feb 08, 2016)
[-] Corrected the signalling of "operand size not specified" error with [-] Corrected the signalling of "operand size not specified" error with
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment