Changeset 609 for branches/GNU/src/binutils/bfd/elf32-pj.c
- Timestamp:
- Aug 16, 2003, 6:59:22 PM (22 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/GNU/src/binutils/bfd/elf32-pj.c
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.1.1.2
r608 r609 1 1 /* picoJava specific support for 32-bit ELF 2 Copyright 1999, 2000 Free Software Foundation, Inc.2 Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. 3 3 Contributed by Steve Chamberlan of Transmeta (sac@pobox.com). 4 4 … … 32 32 static void pj_elf_info_to_howto 33 33 PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); 34 static void pj_elf_final_write_processing 35 PARAMS ((bfd *, bfd_boolean)); 34 36 35 37 static reloc_howto_type pj_elf_howto_table[] = … … 40 42 0, /* size (0 = byte, 1 = short, 2 = long) */ 41 43 0, /* bitsize */ 42 false, /* pc_relative */44 FALSE, /* pc_relative */ 43 45 0, /* bitpos */ 44 46 complain_overflow_dont, /* complain_on_overflow */ 45 47 pj_elf_reloc, /* special_function */ 46 48 "R_PJ_NONE", /* name */ 47 false, /* partial_inplace */49 FALSE, /* partial_inplace */ 48 50 0, /* src_mask */ 49 51 0, /* dst_mask */ 50 false), /* pcrel_offset */51 52 /* 32 bit absolute relocation. Setting partial_inplace to trueand52 FALSE), /* pcrel_offset */ 53 54 /* 32 bit absolute relocation. Setting partial_inplace to TRUE and 53 55 src_mask to a non-zero value is similar to the COFF toolchain. */ 54 56 HOWTO (R_PJ_DATA_DIR32, /* type */ … … 56 58 2, /* size (0 = byte, 1 = short, 2 = long) */ 57 59 32, /* bitsize */ 58 false, /* pc_relative */60 FALSE, /* pc_relative */ 59 61 0, /* bitpos */ 60 62 complain_overflow_bitfield, /* complain_on_overflow */ 61 63 pj_elf_reloc, /* special_function */ 62 64 "R_PJ_DIR32", /* name */ 63 true, /* partial_inplace */65 TRUE, /* partial_inplace */ 64 66 0xffffffff, /* src_mask */ 65 67 0xffffffff, /* dst_mask */ 66 false), /* pcrel_offset */68 FALSE), /* pcrel_offset */ 67 69 68 70 /* 32 bit PC relative relocation. */ … … 71 73 2, /* size (0 = byte, 1 = short, 2 = long) */ 72 74 32, /* bitsize */ 73 true, /* pc_relative */75 TRUE, /* pc_relative */ 74 76 0, /* bitpos */ 75 77 complain_overflow_signed, /* complain_on_overflow */ 76 78 pj_elf_reloc, /* special_function */ 77 79 "R_PJ_REL32", /* name */ 78 false, /* partial_inplace */80 FALSE, /* partial_inplace */ 79 81 0, /* src_mask */ 80 82 0xffffffff, /* dst_mask */ 81 true), /* pcrel_offset */83 TRUE), /* pcrel_offset */ 82 84 83 85 /* 16 bit PC relative relocation. */ … … 86 88 1, /* size (0 = byte, 1 = short, 2 = long) */ 87 89 16, /* bitsize */ 88 true, /* pc_relative */90 TRUE, /* pc_relative */ 89 91 0, /* bitpos */ 90 92 complain_overflow_signed, /* complain_on_overf6w */ 91 93 pj_elf_reloc, /* special_function */ 92 94 "R_PJ_REL16", /* name */ 93 false, /* partial_inplace */95 FALSE, /* partial_inplace */ 94 96 0xffff, /* src_mask */ 95 97 0xffff, /* dst_mask */ 96 true), /* pcrel_offset */98 TRUE), /* pcrel_offset */ 97 99 EMPTY_HOWTO (4), 98 100 EMPTY_HOWTO (5), … … 101 103 2, /* size (0 = byte, 1 = short, 2 = long) */ 102 104 32, /* bitsize */ 103 false, /* pc_relative */105 FALSE, /* pc_relative */ 104 106 0, /* bitpos */ 105 107 complain_overflow_bitfield, /* complain_on_overflow */ 106 108 pj_elf_reloc, /* special_function */ 107 109 "R_PJ_CODE_DIR32", /* name */ 108 true, /* partial_inplace */110 TRUE, /* partial_inplace */ 109 111 0xffffffff, /* src_mask */ 110 112 0xffffffff, /* dst_mask */ 111 false), /* pcrel_offset */113 FALSE), /* pcrel_offset */ 112 114 113 115 EMPTY_HOWTO (7), … … 122 124 1, /* size (0 = byte, 1 = short, 2 = long) */ 123 125 16, /* bitsize */ 124 false, /* pc_relative */126 FALSE, /* pc_relative */ 125 127 0, /* bitpos */ 126 128 complain_overflow_unsigned, /* complain_on_overflow */ 127 129 pj_elf_reloc, /* special_function */ 128 130 "R_PJ_LO16", /* name */ 129 false, /* partial_inplace */131 FALSE, /* partial_inplace */ 130 132 0xffff, /* src_mask */ 131 133 0xffff, /* dst_mask */ 132 true), /* pcrel_offset */134 TRUE), /* pcrel_offset */ 133 135 134 136 HOWTO (R_PJ_CODE_HI16, /* type */ … … 136 138 1, /* size (0 = byte, 1 = short, 2 = long) */ 137 139 16, /* bitsize */ 138 false, /* pc_relative */140 FALSE, /* pc_relative */ 139 141 0, /* bitpos */ 140 142 complain_overflow_unsigned, /* complain_on_overflow */ 141 143 pj_elf_reloc, /* special_function */ 142 144 "R_PJ_HI16", /* name */ 143 false, /* partial_inplace */145 FALSE, /* partial_inplace */ 144 146 0xffff, /* src_mask */ 145 147 0xffff, /* dst_mask */ 146 true), /* pcrel_offset */148 TRUE), /* pcrel_offset */ 147 149 148 150 /* GNU extension to record C++ vtable hierarchy */ … … 151 153 2, /* size (0 = byte, 1 = short, 2 = long) */ 152 154 0, /* bitsize */ 153 false, /* pc_relative */155 FALSE, /* pc_relative */ 154 156 0, /* bitpos */ 155 157 complain_overflow_dont, /* complain_on_overflow */ 156 158 NULL, /* special_function */ 157 159 "R_PJ_GNU_VTINHERIT", /* name */ 158 false, /* partial_inplace */160 FALSE, /* partial_inplace */ 159 161 0, /* src_mask */ 160 162 0, /* dst_mask */ 161 false), /* pcrel_offset */163 FALSE), /* pcrel_offset */ 162 164 163 165 /* GNU extension to record C++ vtable member usage */ … … 166 168 2, /* size (0 = byte, 1 = short, 2 = long) */ 167 169 0, /* bitsize */ 168 false, /* pc_relative */170 FALSE, /* pc_relative */ 169 171 0, /* bitpos */ 170 172 complain_overflow_dont, /* complain_on_overflow */ 171 173 _bfd_elf_rel_vtable_reloc_fn, /* special_function */ 172 174 "R_PJ_GNU_VTENTRY", /* name */ 173 false, /* partial_inplace */175 FALSE, /* partial_inplace */ 174 176 0, /* src_mask */ 175 177 0, /* dst_mask */ 176 false), /* pcrel_offset */ 177 178 FALSE), /* pcrel_offset */ 178 179 }; 179 180 … … 223 224 insn = bfd_get_32 (abfd, hit_data); 224 225 insn += sym_value + reloc_entry->addend; 225 bfd_put_32 (abfd, insn, hit_data);226 bfd_put_32 (abfd, (bfd_vma) insn, hit_data); 226 227 break; 227 228 … … 232 233 insn = bfd_getb32 (hit_data); 233 234 insn += sym_value + reloc_entry->addend; 234 bfd_putb32 ( insn, hit_data);235 bfd_putb32 ((bfd_vma) insn, hit_data); 235 236 break; 236 237 … … 240 241 - (input_section->output_section->vma 241 242 + input_section->output_offset); 242 bfd_putb16 ( insn, hit_data);243 bfd_putb16 ((bfd_vma) insn, hit_data); 243 244 break; 244 245 case R_PJ_CODE_LO16: 245 246 insn = bfd_getb16 (hit_data); 246 247 insn += sym_value + reloc_entry->addend; 247 bfd_putb16 ( insn, hit_data);248 bfd_putb16 ((bfd_vma) insn, hit_data); 248 249 break; 249 250 … … 251 252 insn = bfd_getb16 (hit_data); 252 253 insn += (sym_value + reloc_entry->addend) >> 16; 253 bfd_putb16 ( insn, hit_data);254 bfd_putb16 ((bfd_vma) insn, hit_data); 254 255 break; 255 256 … … 328 329 pj_elf_final_write_processing (abfd, linker) 329 330 bfd *abfd; 330 b oolean linker ATTRIBUTE_UNUSED;331 bfd_boolean linker ATTRIBUTE_UNUSED; 331 332 { 332 333 elf_elfheader (abfd)->e_flags |= EF_PICOJAVA_ARCH; … … 340 341 #define ELF_ARCH bfd_arch_pj 341 342 #define ELF_MACHINE_CODE EM_PJ 343 #define ELF_MACHINE_ALT1 EM_PJ_OLD 342 344 #define ELF_MAXPAGESIZE 0x1000 343 345 #define bfd_elf32_bfd_get_relocated_section_contents bfd_generic_get_relocated_section_contents -
Property cvs2svn:cvs-rev
changed from
Note:
See TracChangeset
for help on using the changeset viewer.