summaryrefslogtreecommitdiff
path: root/bfd/elf32-m68hc12.c
diff options
context:
space:
mode:
authorDavid Carlton <carlton@bactrian.org>2003-09-17 21:29:05 +0000
committerDavid Carlton <carlton@bactrian.org>2003-09-17 21:29:05 +0000
commit5993e46956fada1bbe5ad7b95b63c22a5c858746 (patch)
tree94451834539b4a3459fcd3b18f22ea6cdd838f0f /bfd/elf32-m68hc12.c
parent6ac3a292f75ffbdc018a333c89e23809dc90bc56 (diff)
downloadgdb-5993e46956fada1bbe5ad7b95b63c22a5c858746.tar.gz
2003-09-17 David Carlton <carlton@kealia.com>
* Merge with mainline; tag is carlton_dictionary-20030917-merge.
Diffstat (limited to 'bfd/elf32-m68hc12.c')
-rw-r--r--bfd/elf32-m68hc12.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/bfd/elf32-m68hc12.c b/bfd/elf32-m68hc12.c
index 54fdca28277..3074935cc83 100644
--- a/bfd/elf32-m68hc12.c
+++ b/bfd/elf32-m68hc12.c
@@ -538,6 +538,25 @@ m68hc12_elf_set_mach_from_flags (abfd)
return TRUE;
}
+/* Specific sections:
+ - The .page0 is a data section that is mapped in [0x0000..0x00FF].
+ Page0 accesses are faster on the M68HC12.
+ - The .vectors is the section that represents the interrupt
+ vectors. */
+static struct bfd_elf_special_section const elf32_m68hc12_special_sections[]=
+{
+ { ".eeprom", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+ { ".softregs", 0, NULL, 0,
+ SHT_NOBITS, SHF_ALLOC + SHF_WRITE },
+ { ".page0", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+ { ".vectors", 0, NULL, 0,
+ SHT_PROGBITS, SHF_ALLOC },
+ { NULL, 0, NULL, 0,
+ 0, 0 }
+};
+
#define ELF_ARCH bfd_arch_m68hc12
#define ELF_MACHINE_CODE EM_68HC12
#define ELF_MAXPAGESIZE 0x1000
@@ -554,6 +573,7 @@ m68hc12_elf_set_mach_from_flags (abfd)
#define elf_backend_object_p m68hc12_elf_set_mach_from_flags
#define elf_backend_final_write_processing 0
#define elf_backend_can_gc_sections 1
+#define elf_backend_special_sections elf32_m68hc12_special_sections
#define elf_backend_post_process_headers elf32_m68hc11_post_process_headers
#define elf_backend_add_symbol_hook elf32_m68hc11_add_symbol_hook