forked from KolibriOS/kolibrios
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:
parent
1ed35470d7
commit
7438822d17
@ -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:
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user