Subversion Repositories Kolibri OS

Rev

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

Rev 872 Rev 992
Line 659... Line 659...
659
      struc_name_ok:
659
      struc_name_ok:
660
	mov	edx,[struc_name]
660
	mov	edx,[struc_name]
661
	movzx	eax,byte [edx-1]
661
	movzx	eax,byte [edx-1]
662
	add	edx,eax
662
	add	edx,eax
663
	mov	al,3Ah
663
	push	edi
-
 
664
	lea	esi,[edi-1]
-
 
665
	mov	ecx,edi
-
 
666
	sub	ecx,edx
-
 
667
	std
-
 
668
	rep	movs byte [edi],[esi]
-
 
669
	cld
-
 
670
	pop	edi
-
 
671
	inc	edi
-
 
672
	mov	al,3Ah
664
	mov	[edx],al
673
	mov	[edx],al
665
	inc	al
674
	inc	al
666
	xchg	al,[edx+1]
675
	mov	[edx+1],al
667
	dec	al
-
 
668
	mov	[edx+2],al
-
 
669
	pop	esi edx
676
	pop	esi edx
670
	jmp	use_macro
677
	inc	esi
-
 
678
	jmp	use_macro
671
      preprocess_label:
679
      preprocess_label:
672
	dec	esi
680
	dec	esi
673
	sub	esi,ecx
681
	sub	esi,ecx
674
	lea	ebp,[esi-2]
682
	lea	ebp,[esi-2]
675
	mov	ch,10b
683
	mov	ch,10b
Line 803... Line 811...
803
	jb	fnv1a_hash
811
	jb	fnv1a_hash
804
	ret
812
	ret
805
add_preprocessor_symbol:
813
add_preprocessor_symbol:
806
	push	edi esi
814
	push	edi esi
807
 
815
	cmp	ch,11b
-
 
816
	je	preprocessor_symbol_name_ok
-
 
817
	push	ecx
808
	mov	edi,preprocessor_directives
818
	movzx	ecx,cl
-
 
819
	mov	edi,preprocessor_directives
809
	call	get_directive
820
	call	get_directive
810
	jnc	reserved_word_used_as_symbol
821
	jnc	reserved_word_used_as_symbol
811
 
822
	pop	ecx
812
	call	calculate_hash
823
      preprocessor_symbol_name_ok:
-
 
824
	call	calculate_hash
813
	mov	ebp,eax
825
	mov	ebp,eax
814
	and	ebp,3FFh
826
	and	ebp,3FFh
815
	shr	eax,10
827
	shr	eax,10
816
	xor	ebp,eax
828
	xor	ebp,eax
817
	shl	ecx,22
829
	shl	ecx,22
Line 2037... Line 2049...
2037
	mov	eax,[macro_line]
2049
	mov	eax,[macro_line]
2038
	stos	dword [edi]
2050
	stos	dword [edi]
2039
	jmp	macro_line_header_ok
2051
	jmp	macro_line_header_ok
2040
      instant_macro_line_header:
2052
      instant_macro_line_header:
2041
	mov	edx,[macro_line]
2053
	mov	eax,[macro_line]
2042
	mov	eax,[edx]
2054
	add	eax,16+1
2043
	stos	dword [edi]
2055
	stos	dword [edi]
2044
	mov	eax,[edx+4]
2056
	mov	eax,ecx
2045
	stos	dword [edi]
2057
	stos	dword [edi]
2046
	mov	eax,[edx+8]
2058
	mov	eax,[macro_line]
2047
	stos	dword [edi]
2059
	stos	dword [edi]
2048
	mov	eax,[edx+12]
2060
	stos	dword [edi]
2049
	stos	dword [edi]
-
 
2050
      macro_line_header_ok:
2061
      macro_line_header_ok:
2051
	or	[macro_status],20h
2062
	or	[macro_status],20h
2052
	push	ebx ecx
2063
	push	ebx ecx
2053
	test	[macro_status],0Fh
2064
	test	[macro_status],0Fh
2054
	jz	process_macro_line_element
2065
	jz	process_macro_line_element