Fasm updated to 1.67.9

git-svn-id: svn://kolibrios.org@157 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
heavyiron 2006-09-22 15:55:59 +00:00
parent b239f46ecb
commit 69e4361cc8
10 changed files with 16708 additions and 16686 deletions

View File

@ -1,4 +1,5 @@
@erase lang.inc @erase lang.inc
@echo lang fix en >lang.inc @echo lang fix en >lang.inc
@fasm fasm.asm fasm @fasm fasm.asm fasm
@erase lang.inc
@pause @pause

View File

@ -1,4 +1,5 @@
@erase lang.inc @erase lang.inc
@echo lang fix ru >lang.inc @echo lang fix ru >lang.inc
@fasm fasm.asm fasm @fasm fasm.asm fasm
@erase lang.inc
@pause @pause

View File

@ -2006,6 +2006,12 @@ get_address_value:
jne invalid_address jne invalid_address
check_address_registers: check_address_registers:
or al,ah or al,ah
mov ah,[address_size]
and ah,0Fh
jz address_registers_sizes_ok
cmp al,ah
jne invalid_address
address_registers_sizes_ok:
cmp al,4 cmp al,4
je sib_allowed je sib_allowed
cmp al,8 cmp al,8

View File

@ -915,7 +915,7 @@ define_macro:
mov ecx,4 mov ecx,4
rep movs dword [edi],[esi] rep movs dword [edi],[esi]
mov edi,ebx mov edi,ebx
jmp preprocess_current_line jmp initial_preprocessing_ok
skip_macro_symbol: skip_macro_symbol:
movzx eax,byte [esi] movzx eax,byte [esi]
inc esi inc esi
@ -1572,7 +1572,7 @@ use_instant_macro:
sub edx,ebx sub edx,ebx
mov ecx,edx mov ecx,edx
call move_data call move_data
jmp preprocess_current_line jmp initial_preprocessing_ok
do_irp: do_irp:
cmp byte [esi],1Ah cmp byte [esi],1Ah
jne invalid_macro_arguments jne invalid_macro_arguments

View File

@ -1392,6 +1392,8 @@ instructions_6:
dw simple_instruction_only64-assembler dw simple_instruction_only64-assembler
db 'pushfw',9Ch db 'pushfw',9Ch
dw simple_instruction_16bit-assembler dw simple_instruction_16bit-assembler
db 'rdmsrq',32h
dw simple_extended_instruction_64bit-assembler
db 'rdtscp',1 db 'rdtscp',1
dw swapgs_instruction-assembler dw swapgs_instruction-assembler
db 'repeat',0 db 'repeat',0
@ -1438,6 +1440,8 @@ instructions_6:
dw simple_vmx_instruction-assembler dw simple_vmx_instruction-assembler
db 'wbinvd',9 db 'wbinvd',9
dw simple_extended_instruction-assembler dw simple_extended_instruction-assembler
db 'wrmsrq',30h
dw simple_extended_instruction_64bit-assembler
instructions_7: instructions_7:
db 'clflush',111b db 'clflush',111b
dw fxsave_instruction-assembler dw fxsave_instruction-assembler
@ -1597,6 +1601,8 @@ instructions_7:
dw simple_extended_instruction-assembler dw simple_extended_instruction-assembler
db 'sysexit',35h db 'sysexit',35h
dw simple_extended_instruction-assembler dw simple_extended_instruction-assembler
db 'sysretq',07h
dw simple_extended_instruction_64bit-assembler
db 'ucomisd',2Eh db 'ucomisd',2Eh
dw comisd_instruction-assembler dw comisd_instruction-assembler
db 'ucomiss',2Eh db 'ucomiss',2Eh
@ -1712,6 +1718,8 @@ instructions_8:
dw amd_prefetch_instruction-assembler dw amd_prefetch_instruction-assembler
db 'sysenter',34h db 'sysenter',34h
dw simple_extended_instruction-assembler dw simple_extended_instruction-assembler
db 'sysexitq',35h
dw simple_extended_instruction_64bit-assembler
db 'unpckhpd',15h db 'unpckhpd',15h
dw sse_pd_instruction-assembler dw sse_pd_instruction-assembler
db 'unpckhps',15h db 'unpckhps',15h

View File

@ -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.67.5" VERSION_STRING equ "1.67.9"
VERSION_MAJOR = 1 VERSION_MAJOR = 1
VERSION_MINOR = 67 VERSION_MINOR = 67

View File

@ -41,6 +41,11 @@ simple_instruction_64bit:
mov al,48h mov al,48h
stos word [edi] stos word [edi]
jmp instruction_assembled jmp instruction_assembled
simple_extended_instruction_64bit:
cmp [code_type],64
jne illegal_instruction
mov al,48h
stos byte [edi]
simple_extended_instruction: simple_extended_instruction:
mov ah,al mov ah,al
mov al,0Fh mov al,0Fh
@ -4817,6 +4822,7 @@ movq_instruction:
lods byte [esi] lods byte [esi]
cmp al,',' cmp al,','
jne invalid_operand jne invalid_operand
mov [operand_size],0
lods byte [esi] lods byte [esi]
call get_size_operator call get_size_operator
cmp al,10h cmp al,10h