Subversion Repositories Kolibri OS

Rev

Rev 692 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 692 Rev 872
Line 803... Line 803...
803
	jb	fnv1a_hash
803
	jb	fnv1a_hash
804
	ret
804
	ret
805
add_preprocessor_symbol:
805
add_preprocessor_symbol:
806
	push	edi esi
806
	push	edi esi
807
	call	calculate_hash
807
 
-
 
808
	mov	edi,preprocessor_directives
-
 
809
	call	get_directive
-
 
810
	jnc	reserved_word_used_as_symbol
-
 
811
 
-
 
812
	call	calculate_hash
808
	mov	ebp,eax
813
	mov	ebp,eax
809
	and	ebp,3FFh
814
	and	ebp,3FFh
810
	shr	eax,10
815
	shr	eax,10
811
	xor	ebp,eax
816
	xor	ebp,eax
812
	shl	ecx,22
817
	shl	ecx,22
Line 1653... Line 1658...
1653
	jnz	invalid_value
1658
	jnz	invalid_value
1654
	cmp	dword [edi+4],0
1659
	cmp	dword [edi+4],0
1655
	jne	value_out_of_range
1660
	jne	value_out_of_range
1656
	mov	eax,[edi]
1661
	mov	eax,[edi]
1657
	or	eax,eax
1662
 
1658
	jz	instant_macro_done
1663
	cmp	eax,80000000h
1659
	cmp	eax,80000000h
-
 
1660
	jae	value_out_of_range
1664
	jae	value_out_of_range
1661
	push	[free_additional_memory]
1665
	push	[free_additional_memory]
1662
	push	[macro_symbols]
1666
	push	[macro_symbols]
1663
	mov	[macro_symbols],0
1667
	mov	[macro_symbols],0
1664
	push	[counter_limit]
1668
	push	[counter_limit]
Line 1706... Line 1710...
1706
	jne	invalid_macro_arguments
1710
	jne	invalid_macro_arguments
1707
	jmp	add_rept_counter
1711
	jmp	add_rept_counter
1708
      rept_counters_ok:
1712
      rept_counters_ok:
1709
	dec	esi
1713
	dec	esi
1710
      instant_macro_parameters_ok:
1714
	cmp	[counter_limit],0
-
 
1715
	je	instant_macro_finish
-
 
1716
      instant_macro_parameters_ok:
1711
	xor	eax,eax
1717
	xor	eax,eax
1712
	call	process_macro
1718
	call	process_macro
1713
	pop	[counter_limit]
1719
      instant_macro_finish:
-
 
1720
	pop	[counter_limit]
1714
	pop	[macro_symbols]
1721
	pop	[macro_symbols]
1715
	pop	[free_additional_memory]
1722
	pop	[free_additional_memory]
1716
      instant_macro_done:
1723
      instant_macro_done:
1717
	pop	ebx esi edx
1724
	pop	ebx esi edx
1718
	cmp	byte [ebx],0
1725
	cmp	byte [ebx],0