Commit b66563b5 authored by Tomasz Buchert's avatar Tomasz Buchert

Imported Upstream version 1.71.47

parent bb22f16a
No preview for this file type
......@@ -193,7 +193,7 @@ assemble_line:
new_line:
lods dword [esi]
mov [current_line],eax
mov [prefixed_instruction],0
and [prefix_flags],0
cmp [symbols_file],0
je continue_line
cmp [next_pass_needed],0
......@@ -451,6 +451,8 @@ assemble_line:
add [esp],ebx
ret
instruction_assembled:
test [prefix_flags],not 1
jnz illegal_instruction
mov al,[esi]
cmp al,0Fh
je line_assembled
......@@ -813,7 +815,7 @@ times_directive:
cmp eax,[stack_limit]
jb stack_overflow
push esi
or [prefixed_instruction],-1
or [prefix_flags],1
call continue_line
mov eax,[counter_limit]
cmp [counter],eax
......@@ -988,8 +990,8 @@ virtual_directive:
addressing_space_closed:
ret
repeat_directive:
cmp [prefixed_instruction],0
jne unexpected_instruction
test [prefix_flags],1
jnz unexpected_instruction
lods byte [esi]
cmp al,'('
jne invalid_argument
......@@ -1010,8 +1012,8 @@ repeat_directive:
mov [ebx+4],eax
jmp instruction_assembled
end_repeat:
cmp [prefixed_instruction],0
jne unexpected_instruction
test [prefix_flags],1
jnz unexpected_instruction
call find_structure_data
jc unexpected_instruction
mov eax,[counter_limit]
......@@ -1042,8 +1044,8 @@ repeat_directive:
jne unexpected_instruction
ret
while_directive:
cmp [prefixed_instruction],0
jne unexpected_instruction
test [prefix_flags],1
jnz unexpected_instruction
call allocate_structure_data
mov word [ebx],while_directive-instruction_handler
mov eax,1
......@@ -1073,8 +1075,8 @@ while_directive:
pop ebx
jmp instruction_assembled
end_while:
cmp [prefixed_instruction],0
jne unexpected_instruction
test [prefix_flags],1
jnz unexpected_instruction
call find_structure_data
jc unexpected_instruction
mov eax,[ebx+4]
......@@ -1089,8 +1091,8 @@ while_directive:
jne unexpected_instruction
ret
if_directive:
cmp [prefixed_instruction],0
jne unexpected_instruction
test [prefix_flags],1
jnz unexpected_instruction
call calculate_logical_expression
mov dl,al
mov al,[esi]
......@@ -1126,8 +1128,8 @@ if_directive:
or al,-1
jmp make_if_structure
else_directive:
cmp [prefixed_instruction],0
jne unexpected_instruction
test [prefix_flags],1
jnz unexpected_instruction
mov ax,if_directive-instruction_handler
call find_structure_data
jc unexpected_instruction
......@@ -1153,8 +1155,8 @@ if_directive:
call remove_structure_data
jmp instruction_assembled
end_if:
cmp [prefixed_instruction],0
jne unexpected_instruction
test [prefix_flags],1
jnz unexpected_instruction
call find_structure_data
jc unexpected_instruction
call remove_structure_data
......
......@@ -885,10 +885,16 @@ parse_line_contents:
lods byte [esi]
cmp al,']'
je address_parsed
cmp al,','
je divided_address
dec esi
mov al,')'
stos byte [edi]
jmp argument_parsed
divided_address:
mov ax,'),'
stos word [edi]
jmp expression
address_parsed:
mov al,']'
stos byte [edi]
......
......@@ -243,6 +243,10 @@ symbols_4:
db '1to2',1Fh,11h
db '1to4',1Fh,12h
db '1to8',1Fh,13h
db 'bnd0',14h,60h
db 'bnd1',14h,61h
db 'bnd2',14h,62h
db 'bnd3',14h,63h
db 'byte',11h,1
db 'code',19h,5
db 'coff',18h,40h
......@@ -494,6 +498,8 @@ instructions_3:
dw basic_instruction-instruction_handler
db 'and',20h
dw basic_instruction-instruction_handler
db 'bnd',0F2h
dw bnd_prefix_instruction-instruction_handler
db 'bsf',0BCh
dw bs_instruction-instruction_handler
db 'bsr',0BDh
......@@ -936,6 +942,14 @@ instructions_5:
dw tbm_instruction-instruction_handler
db 'blsic',16h
dw tbm_instruction-instruction_handler
db 'bndcl',1Ah
dw bndcl_instruction-instruction_handler
db 'bndcn',1Bh
dw bndcu_instruction-instruction_handler
db 'bndcu',1Ah
dw bndcu_instruction-instruction_handler
db 'bndmk',1Bh
dw bndmk_instruction-instruction_handler
db 'bound',0
dw bound_instruction-instruction_handler
db 'break',0
......@@ -1293,11 +1307,11 @@ instructions_5:
db 'repnz',0F2h
dw prefix_instruction-instruction_handler
db 'retfd',0CAh
dw ret_instruction_32bit-instruction_handler
dw retf_instruction_32bit-instruction_handler
db 'retfq',0CAh
dw ret_instruction_64bit-instruction_handler
dw retf_instruction_64bit-instruction_handler
db 'retfw',0CAh
dw ret_instruction_16bit-instruction_handler
dw retf_instruction_16bit-instruction_handler
db 'retnd',0C2h
dw ret_instruction_32bit_except64-instruction_handler
db 'retnq',0C2h
......@@ -1425,6 +1439,12 @@ instructions_6:
dw tbm_instruction-instruction_handler
db 'blsmsk',2
dw bmi_instruction-instruction_handler
db 'bndldx',1Ah
dw bndldx_instruction-instruction_handler
db 'bndmov',1Ah
dw bndmov_instruction-instruction_handler
db 'bndstx',1Bh
dw bndstx_instruction-instruction_handler
db 'cmovae',43h
dw bs_instruction-instruction_handler
db 'cmovbe',46h
......
......@@ -123,6 +123,7 @@ value_size db ?
address_size db ?
label_size db ?
size_declared db ?
address_size_declared db ?
displacement_compression db ?
value_undefined db ?
......@@ -132,6 +133,7 @@ value_sign db ?
fp_sign db ?
fp_format db ?
address_sign db ?
address_register db ?
compare_type db ?
logical_value_wrapping db ?
next_pass_needed db ?
......@@ -142,7 +144,7 @@ evex_mode db ?
macro_status db ?
skip_default_argument_value db ?
prefixed_instruction db ?
prefix_flags db ?
formatter_symbols_allowed db ?
decorator_symbols_allowed db ?
free_address_range db ?
......
......@@ -33,7 +33,7 @@
; cannot simply be copied and put under another distribution licence
; (including the GNU Public Licence).
VERSION_STRING equ "1.71.46"
VERSION_STRING equ "1.71.47"
VERSION_MAJOR = 1
VERSION_MINOR = 71
This diff is collapsed.
......@@ -2,6 +2,11 @@
Visit http://flatassembler.net/ for more information.
version 1.71.47 (Nov 09, 2015)
[+] Added support for Intel MPX instructions.
version 1.71.46 (Oct 31, 2015)
[-] Another minor bug fixed.
......
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