Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 706 → Rev 707

/programs/develop/fasm/trunk/assemble.inc
331,10 → 331,11
or byte [ebx+8],1+2
jmp instruction_assembled
assemble_instruction:
mov [operand_size],0
mov [size_override],0
mov [operand_prefix],0
mov [rex_prefix],0
; mov [operand_size],0
; mov [size_override],0
; mov [operand_prefix],0
; mov [rex_prefix],0
mov dword [operand_size],0
mov [immediate_size],0
movzx ebx,word [esi]
mov al,[esi+2]
/programs/develop/fasm/trunk/tables.inc
583,6 → 583,10
dw simple_instruction_32bit-assembler
db 'data',0
dw data_directive-assembler
db 'dppd',41h
dw sse4_instruction_3a_imm8-assembler
db 'dpps',40h
dw sse4_instruction_3a_imm8-assembler
db 'else',0
dw else_directive-assembler
db 'emms',77h
1072,6 → 1076,8
dw basic_mmx_instruction-assembler
db 'psubw',0F9h
dw basic_mmx_instruction-assembler
db 'ptest',17h
dw sse4_instruction_38-assembler
db 'pusha',60h
dw simple_instruction_except64-assembler
db 'pushd',4
1293,6 → 1299,8
dw ffree_instruction-assembler
db 'fxsave',0
dw fxsave_instruction-assembler
db 'getsec',37h
dw simple_extended_instruction-assembler
db 'haddpd',07Ch
dw sse_pd_instruction-assembler
db 'haddps',07Ch
1369,16 → 1377,36
dw ssse3_instruction-assembler
db 'pinsrw',0C4h
dw pinsrw_instruction-assembler
db 'pmaxsb',3Ch
dw sse4_instruction_38-assembler
db 'pmaxsd',3Dh
dw sse4_instruction_38-assembler
db 'pmaxsw',0EEh
dw basic_mmx_instruction-assembler
db 'pmaxub',0DEh
dw basic_mmx_instruction-assembler
db 'pmaxud',3Fh
dw sse4_instruction_38-assembler
db 'pmaxuw',3Eh
dw sse4_instruction_38-assembler
db 'pminsb',38h
dw sse4_instruction_38-assembler
db 'pminsd',39h
dw sse4_instruction_38-assembler
db 'pminsw',0EAh
dw basic_mmx_instruction-assembler
db 'pminub',0DAh
dw basic_mmx_instruction-assembler
db 'pminud',3Bh
dw sse4_instruction_38-assembler
db 'pminuw',3Ah
dw sse4_instruction_38-assembler
db 'pmuldq',28h
dw sse4_instruction_38-assembler
db 'pmulhw',0E5h
dw basic_mmx_instruction-assembler
db 'pmulld',40h
dw sse4_instruction_38-assembler
db 'pmullw',0D5h
dw basic_mmx_instruction-assembler
db 'psadbw',0F6h
1436,9 → 1464,9
db 'sfence',0F8h
dw fence_instruction-assembler
db 'shufpd',0C6h
dw sse_pd_instruction-assembler
dw sse_pd_instruction_imm8-assembler
db 'shufps',0C6h
dw sse_ps_instruction-assembler
dw sse_ps_instruction_imm8-assembler
db 'skinit',0
dw skinit_instruction-assembler
db 'sqrtpd',51h
1468,6 → 1496,10
db 'wrmsrq',30h
dw simple_extended_instruction_64bit-assembler
instructions_7:
db 'blendpd',0Dh
dw sse4_instruction_3a_imm8-assembler
db 'blendps',0Ch
dw sse4_instruction_3a_imm8-assembler
db 'clflush',111b
dw fxsave_instruction-assembler
db 'cmovnae',42h
1568,6 → 1600,8
dw movntps_instruction-assembler
db 'movq2dq',0
dw movq2dq_instruction-assembler
db 'mpsadbw',42h
dw sse4_instruction_3a_imm8-assembler
db 'paddusb',0DCh
dw basic_mmx_instruction-assembler
db 'paddusw',0DDh
1576,10 → 1610,14
dw palignr_instruction-assembler
db 'pavgusb',0BFh
dw amd3dnow_instruction-assembler
db 'pblendw',0Eh
dw sse4_instruction_3a_imm8-assembler
db 'pcmpeqb',74h
dw basic_mmx_instruction-assembler
db 'pcmpeqd',76h
dw basic_mmx_instruction-assembler
db 'pcmpeqq',29h
dw sse4_instruction_38-assembler
db 'pcmpeqw',75h
dw basic_mmx_instruction-assembler
db 'pcmpgtb',64h
1586,6 → 1624,8
dw basic_mmx_instruction-assembler
db 'pcmpgtd',66h
dw basic_mmx_instruction-assembler
db 'pcmpgtq',37h
dw sse4_instruction_38-assembler
db 'pcmpgtw',65h
dw basic_mmx_instruction-assembler
db 'pfcmpeq',0B0h
1618,6 → 1658,14
dw basic_mmx_instruction-assembler
db 'psubusw',0D9h
dw basic_mmx_instruction-assembler
db 'roundpd',9
dw sse4_instruction_3a_imm8-assembler
db 'roundps',8
dw sse4_instruction_3a_imm8-assembler
db 'roundsd',0Bh
dw sse4_instruction_3a_imm8-assembler
db 'roundss',0Ah
dw sse4_instruction_3a_imm8-assembler
db 'rsqrtps',52h
dw sse_ps_instruction-assembler
db 'rsqrtss',52h
1655,6 → 1703,10
dw sse_pd_instruction-assembler
db 'addsubps',0D0h
dw cvtpd2dq_instruction-assembler
db 'blendvpd',15h
dw sse4_instruction_38_xmm0-assembler
db 'blendvps',14h
dw sse4_instruction_38_xmm0-assembler
db 'cmpneqpd',4
dw cmp_pd_instruction-assembler
db 'cmpneqps',4
1735,8 → 1787,12
dw basic_mmx_instruction-assembler
db 'packsswb',63h
dw basic_mmx_instruction-assembler
db 'packusdw',2Bh
dw sse4_instruction_38-assembler
db 'packuswb',67h
dw basic_mmx_instruction-assembler
db 'pblendvb',10h
dw sse4_instruction_38_xmm0-assembler
db 'pfrcpit1',0A6h
dw amd3dnow_instruction-assembler
db 'pfrcpit2',0B6h
1780,6 → 1836,14
dw cvtsd2si_instruction-assembler
db 'cvttss2si',2Ch
dw cvtss2si_instruction-assembler
db 'pcmpestri',61h
dw sse4_instruction_3a_imm8-assembler
db 'pcmpestrm',60h
dw sse4_instruction_3a_imm8-assembler
db 'pcmpistri',63h
dw sse4_instruction_3a_imm8-assembler
db 'pcmpistrm',62h
dw sse4_instruction_3a_imm8-assembler
db 'pmaddubsw',4
dw ssse3_instruction-assembler
db 'prefetchw',1
1813,6 → 1877,8
dw simple_extended_instruction-assembler
db 'maskmovdqu',0
dw maskmovdqu_instruction-assembler
db 'phminposuw',41h
dw sse4_instruction_38-assembler
db 'prefetcht0',1
dw prefetch_instruction-assembler
db 'prefetcht1',2
/programs/develop/fasm/trunk/variable.inc
91,35 → 91,36
logical_value_parentheses dd ?
file_extension dd ?
 
operand_size db ?
size_override db ?
operand_prefix db ?
rex_prefix db ?
base_code db ?
extended_code db ?
supplemental_code db ?
postbyte_register db ?
 
immediate_size db ?
mmx_size db ?
jump_type db ?
push_size db ?
value_size db ?
address_size db ?
size_declared db ?
value_undefined db ?
value_type db ?
compare_type db ?
logical_value_wrapping db ?
next_pass_needed db ?
macro_status db ?
output_format db ?
code_type db ?
labels_type db ?
segment_register db ?
prefixed_instruction db ?
virtual_data db ?
fp_sign db ?
fp_format db ?
value_size db ?
size_override db ?
address_size db ?
operand_size db ?
size_declared db ?
value_undefined db ?
value_type db ?
compare_type db ?
base_code db ?
extended_code db ?
supplemental_code db ?
postbyte_register db ?
segment_register db ?
mmx_size db ?
jump_type db ?
push_size db ?
operand_prefix db ?
rex_prefix db ?
immediate_size db ?
logical_value_wrapping db ?
 
characters rb 100h
converted rb 100h
/programs/develop/fasm/trunk/version.inc
33,7 → 33,7
; cannot simply be copied and put under another distribution licence
; (including the GNU Public Licence).
 
VERSION_STRING equ "1.67.25"
VERSION_STRING equ "1.67.26"
 
VERSION_MAJOR = 1
VERSION_MINOR = 67
/programs/develop/fasm/trunk/x86_64.inc
5022,9 → 5022,13
call store_nomem_instruction
jmp instruction_assembled
 
sse_ps_instruction_imm8:
mov [immediate_size],8
sse_ps_instruction:
mov [mmx_size],16
jmp sse_instruction
sse_pd_instruction_imm8:
mov [immediate_size],8
sse_pd_instruction:
mov [mmx_size],16
mov [operand_prefix],66h
5086,8 → 5090,12
cmp [operand_size],al
jne invalid_operand_size
sse_mem_size_ok:
cmp [extended_code],0C6h
cmp [immediate_size],8
je mmx_imm8
cmp [immediate_size],-1
jne sse_ok
call take_additional_xmm0
sse_ok:
call store_instruction
jmp instruction_assembled
sse_xmmreg_xmmreg:
5103,10 → 5111,29
cmp ah,16
jne invalid_operand_size
mov bl,al
cmp [extended_code],0C6h
cmp [immediate_size],8
je mmx_nomem_imm8
cmp [immediate_size],-1
jne sse_nomem_ok
call take_additional_xmm0
sse_nomem_ok:
call store_nomem_instruction
jmp instruction_assembled
take_additional_xmm0:
lods byte [esi]
cmp al,','
jne invalid_operand
lods byte [esi]
cmp al,10h
jne invalid_operand
lods byte [esi]
call convert_mmx_register
cmp ah,16
jne invalid_operand_size
test al,al
jnz invalid_operand
ret
 
ps_dq_instruction:
mov [postbyte_register],al
mov [operand_prefix],66h
5585,6 → 5612,26
stos byte [edi]
jmp instruction_assembled
 
sse4_instruction_38_xmm0:
mov [immediate_size],-1
jmp sse4_instruction_38
sse4_instruction_38_imm8:
mov [immediate_size],8
sse4_instruction_38:
mov [operand_prefix],66h
mov [base_code],0Fh
mov [supplemental_code],al
mov al,38h
jmp sse_instruction
sse4_instruction_3a_imm8:
mov [immediate_size],8
sse4_instruction_3a:
mov [operand_prefix],66h
mov [base_code],0Fh
mov [supplemental_code],al
mov al,3Ah
jmp sse_instruction
 
fxsave_instruction:
mov [extended_code],0AEh
mov [base_code],0Fh
6063,7 → 6110,13
mov [address_high],edx
cdq
cmp edx,[address_high]
jne value_out_of_range
je address_high_ok
cmp [error_line],0
jne address_high_ok
mov ebx,[current_line]
mov [error_line],ebx
mov [error],value_out_of_range
address_high_ok:
mov edx,eax
ror ecx,16
mov cl,[value_type]