Subversion Repositories Kolibri OS

Rev

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

Rev 157 Rev 174
Line 2885... Line 2885...
2885
	jmp	instruction_assembled
2885
	jmp	instruction_assembled
2886
mark_elf_relocation:
2886
mark_elf_relocation:
2887
	cmp	[value_type],3
2887
	cmp	[value_type],3
2888
	je	elf_relocation_relative
2888
	je	elf_relocation_relative
2889
	push	ebx eax
2889
	cmp	[value_type],7
-
 
2890
	je	elf_relocation_relative
-
 
2891
	push	ebx eax
2890
	cmp	[value_type],3
2892
	cmp	[value_type],5
2891
	je	elf_gotoff_relocation
2893
	je	elf_gotoff_relocation
2892
	mov	al,1
2894
	ja	invalid_use_of_symbol
-
 
2895
	mov	al,1			; R_386_32 / R_AMD64_64
2893
	test	[format_flags],8
2896
	test	[format_flags],8
2894
	jz	coff_relocation
2897
	jz	coff_relocation
2895
	cmp	[value_type],4
2898
	cmp	[value_type],4
2896
	je	coff_relocation
2899
	je	coff_relocation
2897
	mov	al,11
2900
	mov	al,11			; R_AMD64_32S
2898
	jmp	coff_relocation
2901
	jmp	coff_relocation
2899
      elf_gotoff_relocation:
2902
      elf_gotoff_relocation:
2900
	mov	al,9
2903
	test	[format_flags],8
-
 
2904
	jnz	invalid_use_of_symbol
-
 
2905
	mov	al,9			; R_386_GOTOFF
2901
	jmp	coff_relocation
2906
	jmp	coff_relocation
2902
      elf_relocation_relative:
2907
      elf_relocation_relative:
2903
	cmp	[labels_type],0
2908
	cmp	[labels_type],0
2904
	je	invalid_use_of_symbol
2909
	je	invalid_use_of_symbol
2905
	push	ebx
2910
	push	ebx
2906
	mov	ebx,[current_section]
2911
	mov	ebx,[current_section]
2907
	mov	ebx,[ebx+8]
2912
	mov	ebx,[ebx+8]
2908
	sub	ebx,edi
2913
	sub	ebx,edi
2909
	sub	eax,ebx
2914
	sub	eax,ebx
2910
	push	eax
2915
	push	eax
2911
	mov	al,2
2916
	mov	al,2			; R_386_PC32 / R_AMD64_PC32
-
 
2917
	cmp	[value_type],3
2912
	jmp	coff_relocation
2918
	je	coff_relocation
-
 
2919
	mov	al,4			; R_386_PLT32 / R_AMD64_PLT32
-
 
2920
	jmp	coff_relocation
2913
close_elf:
2921
close_elf:
2914
	bt	[format_flags],0
2922
	bt	[format_flags],0
2915
	jc	close_elf_exe
2923
	jc	close_elf_exe
2916
	call	close_coff_section
2924
	call	close_coff_section
2917
	cmp	[next_pass_needed],0
2925
	cmp	[next_pass_needed],0