Subversion Repositories Kolibri OS

Rev

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

Rev 624 Rev 692
Line 2664... Line 2664...
2664
	mov	eax,[esi+0Ch]
2664
	mov	eax,[esi+0Ch]
2665
	mov	[current_line],eax
2665
	mov	[current_line],eax
2666
	mov	eax,[esi+8]
2666
	mov	eax,[esi+8]
2667
	test	byte [eax+8],1
2667
	test	byte [eax+8],1
2668
	jz	undefined_symbol
2668
	jz	undefined_coff_public
2669
	mov	cx,[current_pass]
2669
	mov	cx,[current_pass]
2670
	cmp	cx,[eax+16]
2670
	cmp	cx,[eax+16]
2671
	jne	undefined_symbol
2671
	jne	undefined_coff_public
2672
	mov	cl,[eax+11]
2672
	mov	cl,[eax+11]
2673
	or	cl,cl
2673
	or	cl,cl
2674
	jz	public_constant
2674
	jz	public_constant
2675
	test	[format_flags],8
2675
	test	[format_flags],8
2676
	jnz	check_64bit_public_symbol
2676
	jnz	check_64bit_public_symbol
2677
	cmp	cl,2
2677
	cmp	cl,2
2678
	je	public_symbol_type_ok
2678
	je	public_symbol_type_ok
2679
	jmp	invalid_use_of_symbol
2679
	jmp	invalid_use_of_symbol
2680
      check_64bit_public_symbol:
2680
      undefined_coff_public:
-
 
2681
	mov	eax,[eax+24]
-
 
2682
	mov	[error_info],eax
-
 
2683
	jmp	undefined_symbol
-
 
2684
      check_64bit_public_symbol:
2681
	cmp	cl,4
2685
	cmp	cl,4
2682
	jne	invalid_use_of_symbol
2686
	jne	invalid_use_of_symbol
2683
      public_symbol_type_ok:
2687
      public_symbol_type_ok:
2684
	mov	ecx,[eax+20]
2688
	mov	ecx,[eax+20]
2685
	cmp	byte [ecx],80h
2689
	cmp	byte [ecx],80h
Line 3090... Line 3094...
3090
	cmp	byte [esi],0C0h
3094
	cmp	byte [esi],0C0h
3091
	jne	invalid_argument
3095
	jne	invalid_argument
3092
	mov	ebx,[esi+8]
3096
	mov	ebx,[esi+8]
3093
	test	byte [ebx+8],1
3097
	test	byte [ebx+8],1
3094
	jz	undefined_symbol
3098
	jz	undefined_public
3095
	mov	ax,[current_pass]
3099
	mov	ax,[current_pass]
3096
	cmp	ax,[ebx+16]
3100
	cmp	ax,[ebx+16]
3097
	jne	undefined_symbol
3101
	jne	undefined_public
3098
	mov	dl,[ebx+11]
3102
	mov	dl,[ebx+11]
3099
	or	dl,dl
3103
	or	dl,dl
3100
	jz	public_absolute
3104
	jz	public_absolute
3101
	mov	eax,[ebx+20]
3105
	mov	eax,[ebx+20]
3102
	cmp	byte [eax],0
3106
	cmp	byte [eax],0
3103
	jne	invalid_use_of_symbol
3107
	jne	invalid_use_of_symbol
Line 3107... Line 3111...
3107
	cmp	dl,2
3111
	cmp	dl,2
3108
	jne	invalid_use_of_symbol
3112
	jne	invalid_use_of_symbol
3109
	mov	dx,[eax+0Eh]
3113
	mov	dx,[eax+0Eh]
3110
	jmp	section_for_public_ok
3114
	jmp	section_for_public_ok
3111
      elf64_public:
3115
      undefined_public:
-
 
3116
	mov	eax,[ebx+24]
-
 
3117
	mov	[error_info],eax
-
 
3118
	jmp	undefined_symbol
-
 
3119
      elf64_public:
3112
	cmp	dl,4
3120
	cmp	dl,4
3113
	jne	invalid_use_of_symbol
3121
	jne	invalid_use_of_symbol
3114
	mov	dx,[eax+6]
3122
	mov	dx,[eax+6]
3115
	jmp	section_for_public_ok
3123
	jmp	section_for_public_ok
3116
      public_absolute:
3124
      public_absolute: