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
jmp calculation_loop
current_offset_label:
mov al,[labels_type]
mov [edi+12],al
mov eax,[org_symbol]
mov [edi+16],eax
mov eax,[current_offset]
make_current_offset_label:
xor edx,edx
sub eax,dword [org_origin]
sbb edx,dword [org_origin+4]
@ -1027,24 +1024,15 @@ calculate_expression:
stos dword [edi]
mov eax,[org_registers]
stos dword [edi]
mov al,[labels_type]
mov [edi-12+12],al
mov eax,[org_symbol]
mov [edi-12+16],eax
add edi,8
jmp calculation_loop
org_origin_label:
mov al,[labels_type]
mov [edi+12],al
mov eax,[org_symbol]
mov [edi+16],eax
mov eax,[org_start]
xor edx,edx
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
jmp make_current_offset_label
counter_label:
mov eax,[counter]
make_dword_label_value:

View File

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

View File

@ -33,7 +33,7 @@
; cannot simply be copied and put under another distribution licence
; (including the GNU Public Licence).
VERSION_STRING equ "1.67.37"
VERSION_STRING equ "1.67.38"
VERSION_MAJOR = 1
VERSION_MINOR = 67

View File

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