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 |