Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 991 → Rev 992

/programs/develop/fasm/trunk/expressi.inc
893,40 → 893,33
expression_value_ok:
ret
get_byte_number:
mov word [edi+8],0
mov byte [edi+12],0
xor eax,eax
lods byte [esi]
stos dword [edi]
xor al,al
stos dword [edi]
got_number:
mov word [edi-8+8],0
mov byte [edi-8+12],0
mov dword [edi-8+16],0
add edi,0Ch
jmp calculation_loop
get_word_number:
mov word [edi+8],0
mov byte [edi+12],0
xor eax,eax
lods word [esi]
stos dword [edi]
xor ax,ax
stos dword [edi]
add edi,0Ch
jmp calculation_loop
jmp got_number
get_dword_number:
mov word [edi+8],0
mov byte [edi+12],0
movs dword [edi],[esi]
xor eax,eax
stos dword [edi]
add edi,0Ch
jmp calculation_loop
jmp got_number
get_qword_number:
mov word [edi+8],0
mov byte [edi+12],0
movs dword [edi],[esi]
movs dword [edi],[esi]
add edi,0Ch
jmp calculation_loop
jmp got_number
get_register:
mov byte [edi+9],0
mov byte [edi+12],0
934,6 → 927,7
mov [edi+8],al
mov byte [edi+10],1
xor eax,eax
mov [edi+16],eax
stos dword [edi]
stos dword [edi]
add edi,0Ch
1525,6 → 1519,8
jne invalid_expression
cmp [output_format],5
je calculate_gotoff
cmp [output_format],4
je calculate_coff_rva
cmp [output_format],3
jne invalid_expression
test [format_flags],8
1575,6 → 1571,7
calculate_gotoff:
test [format_flags],8+1
jnz invalid_expression
calculate_coff_rva:
mov dl,5
cmp byte [edi+12],2
je change_value_type
1607,7 → 1604,7
cmp byte [edi+12],dh
jne incorrect_change_of_value_type
mov eax,[edi+16]
cmp byte [eax],81h
cmp byte [eax],80h
jne incorrect_change_of_value_type
jmp change_value_type
div_64:
2009,9 → 2006,9
mov al,[edi+12]
mov [value_type],al
cmp al,6
je plt_address
je special_address_type_32bit
cmp al,5
je gotoff_address
je special_address_type_32bit
ja invalid_use_of_symbol
test al,1
jnz invalid_use_of_symbol
2019,8 → 2016,7
jz address_size_ok
shl al,5
jmp address_symbol_ok
gotoff_address:
plt_address:
special_address_type_32bit:
mov al,40h
address_symbol_ok:
mov ah,[address_size]
2032,7 → 2028,10
je address_size_ok
cmp ax,0804h
jne address_sizes_do_not_agree
cmp [value_type],2
ja value_type_correction_ok
mov [value_type],2
value_type_correction_ok:
mov eax,[edi]
cdq
cmp edx,[edi+4]
2180,13 → 2179,13
je relative_offset_ok
test bl,1
jnz invalid_use_of_symbol
mov ecx,[address_symbol]
mov [symbol_identifier],ecx
cmp bl,6
je plt_relative_offset
cmp bl,[labels_type]
jne invalid_use_of_symbol
mov [value_type],0
mov ecx,[address_symbol]
mov [symbol_identifier],ecx
cmp ecx,[org_symbol]
je relative_offset_ok
mov [value_type],3