fasm version 1.67.38 (Mar 29, 2009)

[-] Fixed a bug with size of memory operand for ROUNDSS/ROUNDSD

git-svn-id: svn://kolibrios.org@1062 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
heavyiron 2009-04-12 06:27:47 +00:00
parent 1ed35470d7
commit 7438822d17
4 changed files with 26 additions and 29 deletions

View File

@ -1014,11 +1014,8 @@ calculate_expression:
jne operand_sizes_do_not_match jne operand_sizes_do_not_match
jmp calculation_loop jmp calculation_loop
current_offset_label: current_offset_label:
mov al,[labels_type]
mov [edi+12],al
mov eax,[org_symbol]
mov [edi+16],eax
mov eax,[current_offset] mov eax,[current_offset]
make_current_offset_label:
xor edx,edx xor edx,edx
sub eax,dword [org_origin] sub eax,dword [org_origin]
sbb edx,dword [org_origin+4] sbb edx,dword [org_origin+4]
@ -1027,24 +1024,15 @@ calculate_expression:
stos dword [edi] stos dword [edi]
mov eax,[org_registers] mov eax,[org_registers]
stos dword [edi] stos dword [edi]
mov al,[labels_type]
mov [edi-12+12],al
mov eax,[org_symbol]
mov [edi-12+16],eax
add edi,8 add edi,8
jmp calculation_loop jmp calculation_loop
org_origin_label: org_origin_label:
mov al,[labels_type]
mov [edi+12],al
mov eax,[org_symbol]
mov [edi+16],eax
mov eax,[org_start] mov eax,[org_start]
xor edx,edx jmp make_current_offset_label
sub eax,dword [org_origin]
sbb edx,dword [org_origin+4]
stos dword [edi]
mov eax,edx
stos dword [edi]
mov eax,[org_registers]
stos dword [edi]
add edi,8
jmp calculation_loop
counter_label: counter_label:
mov eax,[counter] mov eax,[counter]
make_dword_label_value: make_dword_label_value:

View File

@ -1714,9 +1714,9 @@ instructions_7:
db 'roundps',8 db 'roundps',8
dw sse4_instruction_3a_imm8-assembler dw sse4_instruction_3a_imm8-assembler
db 'roundsd',0Bh db 'roundsd',0Bh
dw sse4_instruction_3a_imm8-assembler dw sse4_sd_instruction_3a_imm8-assembler
db 'roundss',0Ah db 'roundss',0Ah
dw sse4_instruction_3a_imm8-assembler dw sse4_ss_instruction_3a_imm8-assembler
db 'rsqrtps',52h db 'rsqrtps',52h
dw sse_ps_instruction-assembler dw sse_ps_instruction-assembler
db 'rsqrtss',52h db 'rsqrtss',52h

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.37" VERSION_STRING equ "1.67.38"
VERSION_MAJOR = 1 VERSION_MAJOR = 1
VERSION_MINOR = 67 VERSION_MINOR = 67

View File

@ -4821,12 +4821,12 @@ movdq2q_instruction:
jmp nomem_instruction_ready jmp nomem_instruction_ready
sse_ps_instruction_imm8: sse_ps_instruction_imm8:
mov [immediate_size],8 mov [immediate_size],1
sse_ps_instruction: sse_ps_instruction:
mov [mmx_size],16 mov [mmx_size],16
jmp sse_instruction jmp sse_instruction
sse_pd_instruction_imm8: sse_pd_instruction_imm8:
mov [immediate_size],8 mov [immediate_size],1
sse_pd_instruction: sse_pd_instruction:
mov [mmx_size],16 mov [mmx_size],16
mov [opcode_prefix],66h mov [opcode_prefix],66h
@ -4888,7 +4888,7 @@ sse_instruction:
cmp [operand_size],al cmp [operand_size],al
jne invalid_operand_size jne invalid_operand_size
sse_mem_size_ok: sse_mem_size_ok:
cmp [immediate_size],8 cmp [immediate_size],1
je mmx_imm8 je mmx_imm8
cmp [immediate_size],-1 cmp [immediate_size],-1
jne sse_ok jne sse_ok
@ -4908,7 +4908,7 @@ sse_instruction:
cmp ah,16 cmp ah,16
jne invalid_operand_size jne invalid_operand_size
mov bl,al mov bl,al
cmp [immediate_size],8 cmp [immediate_size],1
je mmx_nomem_imm8 je mmx_nomem_imm8
cmp [immediate_size],-1 cmp [immediate_size],-1
jne sse_nomem_ok jne sse_nomem_ok
@ -5405,22 +5405,31 @@ sse4_instruction_38_xmm0:
mov [immediate_size],-1 mov [immediate_size],-1
jmp sse4_instruction_38 jmp sse4_instruction_38
sse4_instruction_38_imm8: sse4_instruction_38_imm8:
mov [immediate_size],8 mov [immediate_size],1
sse4_instruction_38: sse4_instruction_38:
mov [mmx_size],16
mov [opcode_prefix],66h mov [opcode_prefix],66h
mov [base_code],0Fh mov [base_code],0Fh
mov [supplemental_code],al mov [supplemental_code],al
mov al,38h mov al,38h
mov [mmx_size],16
jmp sse_instruction jmp sse_instruction
sse4_ss_instruction_3a_imm8:
mov [immediate_size],1
mov [mmx_size],4
jmp sse4_instruction_3a_setup
sse4_sd_instruction_3a_imm8:
mov [immediate_size],1
mov [mmx_size],8
jmp sse4_instruction_3a_setup
sse4_instruction_3a_imm8: sse4_instruction_3a_imm8:
mov [immediate_size],8 mov [immediate_size],1
sse4_instruction_3a: sse4_instruction_3a:
mov [mmx_size],16
sse4_instruction_3a_setup:
mov [opcode_prefix],66h mov [opcode_prefix],66h
mov [base_code],0Fh mov [base_code],0Fh
mov [supplemental_code],al mov [supplemental_code],al
mov al,3Ah mov al,3Ah
mov [mmx_size],16
jmp sse_instruction jmp sse_instruction
extractps_instruction: extractps_instruction:
mov [opcode_prefix],66h mov [opcode_prefix],66h