Add support for WinCE targeted toolchains.
This commit is contained in:
parent
8a0e0f38af
commit
056350c6bd
@ -1,3 +1,33 @@
|
|||||||
|
2000-02-24 Nick Clifton <nickc@cygnus.com>
|
||||||
|
|
||||||
|
* configure: Add arm-wince, mips-pe and sh-pe targets.
|
||||||
|
* configure: Regenerate.
|
||||||
|
|
||||||
|
* config/obj-coff.h (COFF_WITH_PE): Define for mips-pe and
|
||||||
|
sh-pe targets.
|
||||||
|
(TARGET_FORMAT): Set to "pe-shl" for the sh-pe target and to
|
||||||
|
"pe-mips" for the mips-pe target.
|
||||||
|
|
||||||
|
* config/tc-arm.c (insns): Change displacement encoded in BL
|
||||||
|
and B instructions if the target port is arm-wince.
|
||||||
|
(do_ldst): Do not bias the relocation offset if the target
|
||||||
|
port is arm-wince.
|
||||||
|
(md_pcrel_from): Add in missing relocation offset bias if the
|
||||||
|
target os arm-wince.
|
||||||
|
|
||||||
|
* config/tc-mips.c (mips_target_format): Support COFF flavour.
|
||||||
|
(md_begin): Disable -G support for mips-pe target.
|
||||||
|
(md_apply_fix): Treat BFD_RELOC_RVA reloc as BFD_RELOC_32.
|
||||||
|
* config/tc-mips.h (USE_GLOBAL_POINTER_OPT): Add support for
|
||||||
|
COFF flavour.
|
||||||
|
|
||||||
|
* config/tc-sh.c (md_begin): sh-pe target is little endian.
|
||||||
|
* config/tc-sh.h (SUB_SEGMENT_ALIGN): If using a BFD
|
||||||
|
assembler, just set the alignment to 4.
|
||||||
|
|
||||||
|
* config/te-wince-pe.h: New file for WinCE targets. Define
|
||||||
|
TE_WINCE.
|
||||||
|
|
||||||
2000-02-25 Alan Modra <alan@spri.levels.unisa.edu.au>
|
2000-02-25 Alan Modra <alan@spri.levels.unisa.edu.au>
|
||||||
|
|
||||||
* config/tc-i386.c (md_assemble): Swap segments too for intel mode
|
* config/tc-i386.c (md_assemble): Swap segments too for intel mode
|
||||||
|
@ -110,12 +110,29 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef TC_SH
|
#ifdef TC_SH
|
||||||
|
|
||||||
|
#ifdef TE_PE
|
||||||
|
#define COFF_WITH_PE
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "coff/sh.h"
|
#include "coff/sh.h"
|
||||||
|
|
||||||
|
#ifdef TE_PE
|
||||||
|
#define TARGET_FORMAT "pe-shl"
|
||||||
|
#else
|
||||||
#define TARGET_FORMAT \
|
#define TARGET_FORMAT \
|
||||||
(shl \
|
(shl \
|
||||||
? (sh_small ? "coff-shl-small" : "coff-shl") \
|
? (sh_small ? "coff-shl-small" : "coff-shl") \
|
||||||
: (sh_small ? "coff-sh-small" : "coff-sh"))
|
: (sh_small ? "coff-sh-small" : "coff-sh"))
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef TC_MIPS
|
||||||
|
#define COFF_WITH_PE
|
||||||
|
#include "coff/mipspe.h"
|
||||||
|
#undef TARGET_FORMAT
|
||||||
|
#define TARGET_FORMAT "pe-mips"
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef TC_M88K
|
#ifdef TC_M88K
|
||||||
#include "coff/m88k.h"
|
#include "coff/m88k.h"
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* tc-arm.c -- Assemble for the ARM
|
/* tc-arm.c -- Assemble for the ARM
|
||||||
Copyright (C) 1994, 95, 96, 97, 98, 1999 Free Software Foundation, Inc.
|
Copyright (C) 1994, 95, 96, 97, 98, 1999, 2000 Free Software Foundation, Inc.
|
||||||
Contributed by Richard Earnshaw (rwe@pegasus.esprit.ec.org)
|
Contributed by Richard Earnshaw (rwe@pegasus.esprit.ec.org)
|
||||||
Modified by David Taylor (dtaylor@armltd.co.uk)
|
Modified by David Taylor (dtaylor@armltd.co.uk)
|
||||||
|
|
||||||
@ -54,7 +54,7 @@
|
|||||||
#define ARM_EXT_V5 0x00000080 /* allow CLZ etc */
|
#define ARM_EXT_V5 0x00000080 /* allow CLZ etc */
|
||||||
#define ARM_EXT_V5E 0x00000200 /* "El Segundo" */
|
#define ARM_EXT_V5E 0x00000200 /* "El Segundo" */
|
||||||
|
|
||||||
/* Architectures are the sum of the base and extensions */
|
/* Architectures are the sum of the base and extensions. */
|
||||||
#define ARM_ARCH_V4 (ARM_7 | ARM_LONGMUL | ARM_HALFWORD)
|
#define ARM_ARCH_V4 (ARM_7 | ARM_LONGMUL | ARM_HALFWORD)
|
||||||
#define ARM_ARCH_V4T (ARM_ARCH_V4 | ARM_THUMB)
|
#define ARM_ARCH_V4T (ARM_ARCH_V4 | ARM_THUMB)
|
||||||
#define ARM_ARCH_V5 (ARM_ARCH_V4 | ARM_EXT_V5)
|
#define ARM_ARCH_V5 (ARM_ARCH_V4 | ARM_EXT_V5)
|
||||||
@ -547,9 +547,14 @@ static CONST struct asm_opcode insns[] =
|
|||||||
{"stm", 0x08000000, NULL, stm_flags, ARM_ANY, do_ldmstm},
|
{"stm", 0x08000000, NULL, stm_flags, ARM_ANY, do_ldmstm},
|
||||||
{"ldm", 0x08100000, NULL, ldm_flags, ARM_ANY, do_ldmstm},
|
{"ldm", 0x08100000, NULL, ldm_flags, ARM_ANY, do_ldmstm},
|
||||||
{"swi", 0x0f000000, NULL, NULL, ARM_ANY, do_swi},
|
{"swi", 0x0f000000, NULL, NULL, ARM_ANY, do_swi},
|
||||||
|
#ifdef TE_WINCE
|
||||||
|
{"bl", 0x0b000000, NULL, NULL, ARM_ANY, do_branch},
|
||||||
|
{"b", 0x0a000000, NULL, NULL, ARM_ANY, do_branch},
|
||||||
|
#else
|
||||||
{"bl", 0x0bfffffe, NULL, NULL, ARM_ANY, do_branch},
|
{"bl", 0x0bfffffe, NULL, NULL, ARM_ANY, do_branch},
|
||||||
{"b", 0x0afffffe, NULL, NULL, ARM_ANY, do_branch},
|
{"b", 0x0afffffe, NULL, NULL, ARM_ANY, do_branch},
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Pseudo ops */
|
/* Pseudo ops */
|
||||||
{"adr", 0x028f0000, NULL, NULL, ARM_ANY, do_adr},
|
{"adr", 0x028f0000, NULL, NULL, ARM_ANY, do_adr},
|
||||||
{"adrl", 0x028f0000, NULL, NULL, ARM_ANY, do_adrl},
|
{"adrl", 0x028f0000, NULL, NULL, ARM_ANY, do_adrl},
|
||||||
@ -3020,7 +3025,9 @@ do_ldst (str, flags)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
inst.reloc.type = BFD_RELOC_ARM_OFFSET_IMM;
|
inst.reloc.type = BFD_RELOC_ARM_OFFSET_IMM;
|
||||||
|
#ifndef TE_WINCE
|
||||||
inst.reloc.exp.X_add_number -= 8; /* PC rel adjust */
|
inst.reloc.exp.X_add_number -= 8; /* PC rel adjust */
|
||||||
|
#endif
|
||||||
inst.reloc.pc_rel = 1;
|
inst.reloc.pc_rel = 1;
|
||||||
inst.instruction |= (REG_PC << 16);
|
inst.instruction |= (REG_PC << 16);
|
||||||
pre_inc = 1;
|
pre_inc = 1;
|
||||||
@ -4116,6 +4123,7 @@ thumb_add_sub (str, subtract)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
end_of_line (str);
|
end_of_line (str);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4140,7 +4148,7 @@ thumb_shift (str, shift)
|
|||||||
{
|
{
|
||||||
/* Two operand immediate format, set Rs to Rd. */
|
/* Two operand immediate format, set Rs to Rd. */
|
||||||
Rs = Rd;
|
Rs = Rd;
|
||||||
str++;
|
str ++;
|
||||||
if (my_get_expression (&inst.reloc.exp, &str))
|
if (my_get_expression (&inst.reloc.exp, &str))
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -4225,6 +4233,7 @@ thumb_shift (str, shift)
|
|||||||
|
|
||||||
inst.instruction |= Rd | (Rs << 3);
|
inst.instruction |= Rd | (Rs << 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
end_of_line (str);
|
end_of_line (str);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5206,7 +5215,13 @@ md_pcrel_from (fixP)
|
|||||||
return (fixP->fx_where + fixP->fx_frag->fr_address) & ~3;
|
return (fixP->fx_where + fixP->fx_frag->fr_address) & ~3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef TE_WINCE
|
||||||
|
/* The pattern was adjusted to accomodate CE's off-by-one fixups,
|
||||||
|
so we un-adjust here to compensate for the accomodation. */
|
||||||
|
return fixP->fx_where + fixP->fx_frag->fr_address + 8;
|
||||||
|
#else
|
||||||
return fixP->fx_where + fixP->fx_frag->fr_address;
|
return fixP->fx_where + fixP->fx_frag->fr_address;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Round up a section size to the appropriate boundary. */
|
/* Round up a section size to the appropriate boundary. */
|
||||||
@ -6890,13 +6905,14 @@ arm_adjust_symtab ()
|
|||||||
#endif
|
#endif
|
||||||
#ifdef OBJ_ELF
|
#ifdef OBJ_ELF
|
||||||
symbolS * sym;
|
symbolS * sym;
|
||||||
elf_symbol_type * elf_sym;
|
|
||||||
char bind;
|
char bind;
|
||||||
|
|
||||||
for (sym = symbol_rootP; sym != NULL; sym = symbol_next (sym))
|
for (sym = symbol_rootP; sym != NULL; sym = symbol_next (sym))
|
||||||
{
|
{
|
||||||
if (ARM_IS_THUMB (sym))
|
if (ARM_IS_THUMB (sym))
|
||||||
{
|
{
|
||||||
|
elf_symbol_type * elf_sym;
|
||||||
|
|
||||||
elf_sym = elf_symbol (symbol_get_bfdsym (sym));
|
elf_sym = elf_symbol (symbol_get_bfdsym (sym));
|
||||||
bind = ELF_ST_BIND (elf_sym);
|
bind = ELF_ST_BIND (elf_sym);
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* tc-mips.c -- assemble code for a MIPS chip.
|
/* tc-mips.c -- assemble code for a MIPS chip.
|
||||||
Copyright (C) 1993, 94, 95, 96, 97, 98, 1999 Free Software Foundation, Inc.
|
Copyright (C) 1993, 94, 95, 96, 97, 98, 1999, 2000 Free Software Foundation, Inc.
|
||||||
Contributed by the OSF and Ralph Campbell.
|
Contributed by the OSF and Ralph Campbell.
|
||||||
Written by Keith Knowles and Ralph Campbell, working independently.
|
Written by Keith Knowles and Ralph Campbell, working independently.
|
||||||
Modified for ECOFF and R4000 support by Ian Lance Taylor of Cygnus
|
Modified for ECOFF and R4000 support by Ian Lance Taylor of Cygnus
|
||||||
@ -118,6 +118,8 @@ mips_target_format ()
|
|||||||
return target_big_endian ? "a.out-mips-big" : "a.out-mips-little";
|
return target_big_endian ? "a.out-mips-big" : "a.out-mips-little";
|
||||||
case bfd_target_ecoff_flavour:
|
case bfd_target_ecoff_flavour:
|
||||||
return target_big_endian ? "ecoff-bigmips" : ECOFF_LITTLE_FORMAT;
|
return target_big_endian ? "ecoff-bigmips" : ECOFF_LITTLE_FORMAT;
|
||||||
|
case bfd_target_coff_flavour:
|
||||||
|
return "pe-mips";
|
||||||
case bfd_target_elf_flavour:
|
case bfd_target_elf_flavour:
|
||||||
return (target_big_endian
|
return (target_big_endian
|
||||||
? (mips_64 ? "elf64-bigmips" : "elf32-bigmips")
|
? (mips_64 ? "elf64-bigmips" : "elf32-bigmips")
|
||||||
@ -133,6 +135,8 @@ mips_target_format ()
|
|||||||
? ".data" \
|
? ".data" \
|
||||||
: OUTPUT_FLAVOR == bfd_target_ecoff_flavour \
|
: OUTPUT_FLAVOR == bfd_target_ecoff_flavour \
|
||||||
? ".rdata" \
|
? ".rdata" \
|
||||||
|
: OUTPUT_FLAVOR == bfd_target_coff_flavour \
|
||||||
|
? ".rdata" \
|
||||||
: OUTPUT_FLAVOR == bfd_target_elf_flavour \
|
: OUTPUT_FLAVOR == bfd_target_elf_flavour \
|
||||||
? ".rodata" \
|
? ".rodata" \
|
||||||
: (abort (), ""))
|
: (abort (), ""))
|
||||||
@ -848,6 +852,15 @@ md_begin ()
|
|||||||
int broken = 0;
|
int broken = 0;
|
||||||
int mips_isa_from_cpu;
|
int mips_isa_from_cpu;
|
||||||
|
|
||||||
|
/* GP relative stuff not working for PE */
|
||||||
|
if (strncmp (TARGET_OS, "pe", 2) == 0
|
||||||
|
&& g_switch_value != 0)
|
||||||
|
{
|
||||||
|
if (g_switch_seen)
|
||||||
|
as_bad (_("-G not supported in this configuration."));
|
||||||
|
g_switch_value = 0;
|
||||||
|
}
|
||||||
|
|
||||||
cpu = TARGET_CPU;
|
cpu = TARGET_CPU;
|
||||||
if (strcmp (cpu + (sizeof TARGET_CPU) - 3, "el") == 0)
|
if (strcmp (cpu + (sizeof TARGET_CPU) - 3, "el") == 0)
|
||||||
{
|
{
|
||||||
@ -9645,6 +9658,7 @@ md_apply_fix (fixP, valueP)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case BFD_RELOC_RVA:
|
||||||
case BFD_RELOC_32:
|
case BFD_RELOC_32:
|
||||||
/* If we are deleting this reloc entry, we must fill in the
|
/* If we are deleting this reloc entry, we must fill in the
|
||||||
value now. This can happen if we have a .word which is not
|
value now. This can happen if we have a .word which is not
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* tc-mips.h -- header file for tc-mips.c.
|
/* tc-mips.h -- header file for tc-mips.c.
|
||||||
Copyright (C) 1993, 94, 95, 96, 97, 1999 Free Software Foundation, Inc.
|
Copyright (C) 1993, 94, 95, 96, 97, 1999, 2000 Free Software Foundation, Inc.
|
||||||
Contributed by the OSF and Ralph Campbell.
|
Contributed by the OSF and Ralph Campbell.
|
||||||
Written by Keith Knowles and Ralph Campbell, working independently.
|
Written by Keith Knowles and Ralph Campbell, working independently.
|
||||||
Modified for ECOFF support by Ian Lance Taylor of Cygnus Support.
|
Modified for ECOFF support by Ian Lance Taylor of Cygnus Support.
|
||||||
@ -142,6 +142,7 @@ extern void md_mips_end PARAMS ((void));
|
|||||||
#define md_end() md_mips_end()
|
#define md_end() md_mips_end()
|
||||||
|
|
||||||
#define USE_GLOBAL_POINTER_OPT (OUTPUT_FLAVOR == bfd_target_ecoff_flavour \
|
#define USE_GLOBAL_POINTER_OPT (OUTPUT_FLAVOR == bfd_target_ecoff_flavour \
|
||||||
|
|| OUTPUT_FLAVOR == bfd_target_coff_flavour \
|
||||||
|| OUTPUT_FLAVOR == bfd_target_elf_flavour)
|
|| OUTPUT_FLAVOR == bfd_target_elf_flavour)
|
||||||
|
|
||||||
extern void mips_pop_insert PARAMS ((void));
|
extern void mips_pop_insert PARAMS ((void));
|
||||||
|
@ -206,8 +206,13 @@ md_begin ()
|
|||||||
char *prev_name = "";
|
char *prev_name = "";
|
||||||
int target_arch;
|
int target_arch;
|
||||||
|
|
||||||
|
#ifdef TE_PE
|
||||||
|
/* The WinCE OS only supports little endian executables. */
|
||||||
|
target_big_endian = 0;
|
||||||
|
#else
|
||||||
if (! shl)
|
if (! shl)
|
||||||
target_big_endian = 1;
|
target_big_endian = 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
target_arch = arch_sh1_up & ~(sh_dsp ? arch_sh3e_up : arch_sh_dsp_up);
|
target_arch = arch_sh1_up & ~(sh_dsp ? arch_sh3e_up : arch_sh_dsp_up);
|
||||||
valid_arch = target_arch;
|
valid_arch = target_arch;
|
||||||
@ -1678,6 +1683,7 @@ DEFUN (md_undefined_symbol, (name),
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef OBJ_COFF
|
#ifdef OBJ_COFF
|
||||||
|
#ifndef BFD_ASSEMBLER
|
||||||
|
|
||||||
void
|
void
|
||||||
DEFUN (tc_crawl_symbol_chain, (headers),
|
DEFUN (tc_crawl_symbol_chain, (headers),
|
||||||
@ -1693,6 +1699,7 @@ DEFUN (tc_headers_hook, (headers),
|
|||||||
printf (_("call to tc_headers_hook \n"));
|
printf (_("call to tc_headers_hook \n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Various routines to kill one day */
|
/* Various routines to kill one day */
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* This file is tc-sh.h
|
/* This file is tc-sh.h
|
||||||
Copyright (C) 1993, 94, 95, 96, 97, 98, 1999 Free Software Foundation, Inc.
|
Copyright (C) 1993, 94, 95, 96, 97, 98, 99, 2000 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This file is part of GAS, the GNU Assembler.
|
This file is part of GAS, the GNU Assembler.
|
||||||
|
|
||||||
@ -129,6 +129,9 @@ extern void sh_coff_reloc_mangle
|
|||||||
#define TC_COFF_SIZEMACHDEP(frag) tc_coff_sizemachdep(frag)
|
#define TC_COFF_SIZEMACHDEP(frag) tc_coff_sizemachdep(frag)
|
||||||
extern int tc_coff_sizemachdep PARAMS ((fragS *));
|
extern int tc_coff_sizemachdep PARAMS ((fragS *));
|
||||||
|
|
||||||
|
#ifdef BFD_ASSEMBLER
|
||||||
|
#define SUB_SEGMENT_ALIGN(SEG) 4
|
||||||
|
#else
|
||||||
/* We align most sections to a 16 byte boundary. */
|
/* We align most sections to a 16 byte boundary. */
|
||||||
#define SUB_SEGMENT_ALIGN(SEG) \
|
#define SUB_SEGMENT_ALIGN(SEG) \
|
||||||
(strncmp (obj_segment_name (SEG), ".stabstr", 8) == 0 \
|
(strncmp (obj_segment_name (SEG), ".stabstr", 8) == 0 \
|
||||||
@ -138,6 +141,7 @@ extern int tc_coff_sizemachdep PARAMS ((fragS *));
|
|||||||
|| strcmp (obj_segment_name (SEG), ".dtors") == 0) \
|
|| strcmp (obj_segment_name (SEG), ".dtors") == 0) \
|
||||||
? 2 \
|
? 2 \
|
||||||
: (sh_small ? 2 : 4)))
|
: (sh_small ? 2 : 4)))
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* OBJ_COFF */
|
#endif /* OBJ_COFF */
|
||||||
|
|
||||||
|
2
gas/config/te-wince-pe.h
Normal file
2
gas/config/te-wince-pe.h
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
#define TE_WINCE
|
||||||
|
#include "te-pe.h"
|
3
gas/configure
vendored
3
gas/configure
vendored
@ -2089,6 +2089,7 @@ for this_target in $target $canon_targets ; do
|
|||||||
arm-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
|
arm-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
|
||||||
arm-*-oabi | thumb-*-oabi) fmt=elf ;;
|
arm-*-oabi | thumb-*-oabi) fmt=elf ;;
|
||||||
arm-epoc-pe | thumb-epoc-pe) fmt=coff em=epoc-pe ;;
|
arm-epoc-pe | thumb-epoc-pe) fmt=coff em=epoc-pe ;;
|
||||||
|
arm-*-wince) fmt=coff em=wince-pe bfd_gas=yes;;
|
||||||
arm-*-pe | thumb-*-pe) fmt=coff em=pe ;;
|
arm-*-pe | thumb-*-pe) fmt=coff em=pe ;;
|
||||||
arm-*-riscix*) fmt=aout em=riscix ;;
|
arm-*-riscix*) fmt=aout em=riscix ;;
|
||||||
|
|
||||||
@ -2203,6 +2204,7 @@ EOF
|
|||||||
mips-*-osf*) fmt=ecoff endian=little ;;
|
mips-*-osf*) fmt=ecoff endian=little ;;
|
||||||
mips-*-ecoff*) fmt=ecoff ;;
|
mips-*-ecoff*) fmt=ecoff ;;
|
||||||
mips-*-ecoff*) fmt=ecoff ;;
|
mips-*-ecoff*) fmt=ecoff ;;
|
||||||
|
mips-*-pe*) fmt=coff endian=little em=pe ;;
|
||||||
mips-*-irix6*) fmt=elf ;;
|
mips-*-irix6*) fmt=elf ;;
|
||||||
mips-*-irix5*) fmt=elf ;;
|
mips-*-irix5*) fmt=elf ;;
|
||||||
mips-*-irix*) fmt=ecoff ;;
|
mips-*-irix*) fmt=ecoff ;;
|
||||||
@ -2251,6 +2253,7 @@ EOF
|
|||||||
|
|
||||||
sh-*-elf*) fmt=elf ;;
|
sh-*-elf*) fmt=elf ;;
|
||||||
sh-*-coff*) fmt=coff ;;
|
sh-*-coff*) fmt=coff ;;
|
||||||
|
sh-*-pe*) fmt=coff em=pe bfd_gas=yes;;
|
||||||
sh-*-rtemself*) fmt=elf ;;
|
sh-*-rtemself*) fmt=elf ;;
|
||||||
sh-*-rtems*) fmt=coff ;;
|
sh-*-rtems*) fmt=coff ;;
|
||||||
|
|
||||||
|
@ -155,6 +155,7 @@ changequote([,])dnl
|
|||||||
arm-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
|
arm-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
|
||||||
arm-*-oabi | thumb-*-oabi) fmt=elf ;;
|
arm-*-oabi | thumb-*-oabi) fmt=elf ;;
|
||||||
arm-epoc-pe | thumb-epoc-pe) fmt=coff em=epoc-pe ;;
|
arm-epoc-pe | thumb-epoc-pe) fmt=coff em=epoc-pe ;;
|
||||||
|
arm-*-wince) fmt=coff em=wince-pe bfd_gas=yes;;
|
||||||
arm-*-pe | thumb-*-pe) fmt=coff em=pe ;;
|
arm-*-pe | thumb-*-pe) fmt=coff em=pe ;;
|
||||||
arm-*-riscix*) fmt=aout em=riscix ;;
|
arm-*-riscix*) fmt=aout em=riscix ;;
|
||||||
|
|
||||||
@ -267,6 +268,7 @@ changequote([,])dnl
|
|||||||
mips-*-osf*) fmt=ecoff endian=little ;;
|
mips-*-osf*) fmt=ecoff endian=little ;;
|
||||||
mips-*-ecoff*) fmt=ecoff ;;
|
mips-*-ecoff*) fmt=ecoff ;;
|
||||||
mips-*-ecoff*) fmt=ecoff ;;
|
mips-*-ecoff*) fmt=ecoff ;;
|
||||||
|
mips-*-pe*) fmt=coff endian=little em=pe ;;
|
||||||
mips-*-irix6*) fmt=elf ;;
|
mips-*-irix6*) fmt=elf ;;
|
||||||
mips-*-irix5*) fmt=elf ;;
|
mips-*-irix5*) fmt=elf ;;
|
||||||
mips-*-irix*) fmt=ecoff ;;
|
mips-*-irix*) fmt=ecoff ;;
|
||||||
@ -311,6 +313,7 @@ changequote([,])dnl
|
|||||||
|
|
||||||
sh-*-elf*) fmt=elf ;;
|
sh-*-elf*) fmt=elf ;;
|
||||||
sh-*-coff*) fmt=coff ;;
|
sh-*-coff*) fmt=coff ;;
|
||||||
|
sh-*-pe*) fmt=coff em=pe bfd_gas=yes;;
|
||||||
sh-*-rtemself*) fmt=elf ;;
|
sh-*-rtemself*) fmt=elf ;;
|
||||||
sh-*-rtems*) fmt=coff ;;
|
sh-*-rtems*) fmt=coff ;;
|
||||||
|
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
2000-02-22 Nick Clifton <nickc@cygnus.com> DJ Delorie <dj@cygnus.com>
|
||||||
|
|
||||||
|
* sh.h: Add Windows CE definitions.
|
||||||
|
* arm.h: Add Windows CE definitions.
|
||||||
|
* mipspe.h: New file: Windows CE definitions for MIPS.
|
||||||
|
* pe.h: Add constants for ILF support.
|
||||||
|
|
||||||
2000-01-05 Nick Clifton <nickc@cygnus.com>
|
2000-01-05 Nick Clifton <nickc@cygnus.com>
|
||||||
|
|
||||||
* pe.h: Fix formatting of comments.
|
* pe.h: Fix formatting of comments.
|
||||||
|
@ -85,10 +85,16 @@ struct external_filehdr
|
|||||||
* XXX - NC 5/6/97
|
* XXX - NC 5/6/97
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define ARMMAGIC 0xa00 /* I just made this up */
|
#define ARMMAGIC 0xa00 /* I just made this up */
|
||||||
|
|
||||||
#define ARMBADMAG(x) (((x).f_magic != ARMMAGIC))
|
#define ARMBADMAG(x) (((x).f_magic != ARMMAGIC))
|
||||||
|
|
||||||
|
#define ARMPEMAGIC 0x1c0
|
||||||
|
#define THUMBPEMAGIC 0x1c2
|
||||||
|
|
||||||
|
#undef ARMBADMAG
|
||||||
|
#define ARMBADMAG(x) (((x).f_magic != ARMMAGIC) && ((x).f_magic != ARMPEMAGIC) && ((x).f_magic != THUMBPEMAGIC))
|
||||||
|
|
||||||
#define FILHDR struct external_filehdr
|
#define FILHDR struct external_filehdr
|
||||||
#define FILHSZ 20
|
#define FILHSZ 20
|
||||||
|
|
||||||
@ -272,6 +278,18 @@ union external_auxent
|
|||||||
#define _ETEXT "etext"
|
#define _ETEXT "etext"
|
||||||
|
|
||||||
/********************** RELOCATION DIRECTIVES **********************/
|
/********************** RELOCATION DIRECTIVES **********************/
|
||||||
|
#ifdef ARM_WINCE
|
||||||
|
struct external_reloc
|
||||||
|
{
|
||||||
|
char r_vaddr[4];
|
||||||
|
char r_symndx[4];
|
||||||
|
char r_type[2];
|
||||||
|
};
|
||||||
|
|
||||||
|
#define RELOC struct external_reloc
|
||||||
|
#define RELSZ 10
|
||||||
|
|
||||||
|
#else
|
||||||
struct external_reloc
|
struct external_reloc
|
||||||
{
|
{
|
||||||
char r_vaddr[4];
|
char r_vaddr[4];
|
||||||
@ -282,3 +300,4 @@ struct external_reloc
|
|||||||
|
|
||||||
#define RELOC struct external_reloc
|
#define RELOC struct external_reloc
|
||||||
#define RELSZ 14
|
#define RELSZ 14
|
||||||
|
#endif
|
||||||
|
223
include/coff/mipspe.h
Normal file
223
include/coff/mipspe.h
Normal file
@ -0,0 +1,223 @@
|
|||||||
|
/*** coff information for Windows CE with MIPS VR4111 */
|
||||||
|
|
||||||
|
/********************** FILE HEADER **********************/
|
||||||
|
|
||||||
|
struct external_filehdr {
|
||||||
|
char f_magic[2]; /* magic number */
|
||||||
|
char f_nscns[2]; /* number of sections */
|
||||||
|
char f_timdat[4]; /* time & date stamp */
|
||||||
|
char f_symptr[4]; /* file pointer to symtab */
|
||||||
|
char f_nsyms[4]; /* number of symtab entries */
|
||||||
|
char f_opthdr[2]; /* sizeof(optional hdr) */
|
||||||
|
char f_flags[2]; /* flags */
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define MIPS_ARCH_MAGIC_WINCE 0x0166 /* Windows CE - little endian */
|
||||||
|
|
||||||
|
|
||||||
|
#define MIPSBADMAG(x) \
|
||||||
|
((x).f_magic!=MIPS_ARCH_MAGIC_WINCE)
|
||||||
|
|
||||||
|
#define FILHDR struct external_filehdr
|
||||||
|
#define FILHSZ 20
|
||||||
|
|
||||||
|
|
||||||
|
/********************** AOUT "OPTIONAL HEADER" **********************/
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
char magic[2]; /* type of file */
|
||||||
|
char vstamp[2]; /* version stamp */
|
||||||
|
char tsize[4]; /* text size in bytes, padded to FW bdry*/
|
||||||
|
char dsize[4]; /* initialized data " " */
|
||||||
|
char bsize[4]; /* uninitialized data " " */
|
||||||
|
char entry[4]; /* entry pt. */
|
||||||
|
char text_start[4]; /* base of text used for this file */
|
||||||
|
char data_start[4]; /* base of data used for this file */
|
||||||
|
}
|
||||||
|
AOUTHDR;
|
||||||
|
|
||||||
|
|
||||||
|
#define AOUTHDRSZ 28
|
||||||
|
#define AOUTSZ 28
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* define some NT default values */
|
||||||
|
/* #define NT_IMAGE_BASE 0x400000 moved to internal.h */
|
||||||
|
#define NT_SECTION_ALIGNMENT 0x1000
|
||||||
|
#define NT_FILE_ALIGNMENT 0x200
|
||||||
|
#define NT_DEF_RESERVE 0x100000
|
||||||
|
#define NT_DEF_COMMIT 0x1000
|
||||||
|
|
||||||
|
/********************** SECTION HEADER **********************/
|
||||||
|
|
||||||
|
|
||||||
|
struct external_scnhdr {
|
||||||
|
char s_name[8]; /* section name */
|
||||||
|
char s_paddr[4]; /* physical address, aliased s_nlib */
|
||||||
|
char s_vaddr[4]; /* virtual address */
|
||||||
|
char s_size[4]; /* section size */
|
||||||
|
char s_scnptr[4]; /* file ptr to raw data for section */
|
||||||
|
char s_relptr[4]; /* file ptr to relocation */
|
||||||
|
char s_lnnoptr[4]; /* file ptr to line numbers */
|
||||||
|
char s_nreloc[2]; /* number of relocation entries */
|
||||||
|
char s_nlnno[2]; /* number of line number entries*/
|
||||||
|
char s_flags[4]; /* flags */
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* names of "special" sections
|
||||||
|
*/
|
||||||
|
#define _TEXT ".text"
|
||||||
|
#define _DATA ".data"
|
||||||
|
#define _BSS ".bss"
|
||||||
|
|
||||||
|
|
||||||
|
#define SCNHDR struct external_scnhdr
|
||||||
|
#define SCNHSZ 40
|
||||||
|
|
||||||
|
|
||||||
|
/********************** LINE NUMBERS **********************/
|
||||||
|
|
||||||
|
/* 1 line number entry for every "breakpointable" source line in a section.
|
||||||
|
* Line numbers are grouped on a per function basis; first entry in a function
|
||||||
|
* grouping will have l_lnno = 0 and in place of physical address will be the
|
||||||
|
* symbol table index of the function name.
|
||||||
|
*/
|
||||||
|
struct external_lineno {
|
||||||
|
union {
|
||||||
|
char l_symndx[4]; /* function name symbol index, iff l_lnno == 0*/
|
||||||
|
char l_paddr[4]; /* (physical) address of line number */
|
||||||
|
} l_addr;
|
||||||
|
char l_lnno[2]; /* line number */
|
||||||
|
};
|
||||||
|
|
||||||
|
#define GET_LINENO_LNNO(abfd, ext) bfd_h_get_16(abfd, (bfd_byte *) (ext->l_lnno));
|
||||||
|
#define PUT_LINENO_LNNO(abfd,val, ext) bfd_h_put_16(abfd,val, (bfd_byte *) (ext->l_lnno));
|
||||||
|
|
||||||
|
#define LINENO struct external_lineno
|
||||||
|
#define LINESZ 6
|
||||||
|
|
||||||
|
|
||||||
|
/********************** SYMBOLS **********************/
|
||||||
|
|
||||||
|
#define E_SYMNMLEN 8 /* # characters in a symbol name */
|
||||||
|
#define E_FILNMLEN 14 /* # characters in a file name */
|
||||||
|
#define E_DIMNUM 4 /* # array dimensions in auxiliary entry */
|
||||||
|
|
||||||
|
struct external_syment
|
||||||
|
{
|
||||||
|
union {
|
||||||
|
char e_name[E_SYMNMLEN];
|
||||||
|
struct {
|
||||||
|
char e_zeroes[4];
|
||||||
|
char e_offset[4];
|
||||||
|
} e;
|
||||||
|
} e;
|
||||||
|
char e_value[4];
|
||||||
|
char e_scnum[2];
|
||||||
|
char e_type[2];
|
||||||
|
char e_sclass[1];
|
||||||
|
char e_numaux[1];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define N_BTMASK (017)
|
||||||
|
#define N_TMASK (060)
|
||||||
|
#define N_BTSHFT (4)
|
||||||
|
#define N_TSHIFT (2)
|
||||||
|
|
||||||
|
|
||||||
|
union external_auxent {
|
||||||
|
struct {
|
||||||
|
char x_tagndx[4]; /* str, un, or enum tag indx */
|
||||||
|
union {
|
||||||
|
struct {
|
||||||
|
char x_lnno[2]; /* declaration line number */
|
||||||
|
char x_size[2]; /* str/union/array size */
|
||||||
|
} x_lnsz;
|
||||||
|
char x_fsize[4]; /* size of function */
|
||||||
|
} x_misc;
|
||||||
|
union {
|
||||||
|
struct { /* if ISFCN, tag, or .bb */
|
||||||
|
char x_lnnoptr[4]; /* ptr to fcn line # */
|
||||||
|
char x_endndx[4]; /* entry ndx past block end */
|
||||||
|
} x_fcn;
|
||||||
|
struct { /* if ISARY, up to 4 dimen. */
|
||||||
|
char x_dimen[E_DIMNUM][2];
|
||||||
|
} x_ary;
|
||||||
|
} x_fcnary;
|
||||||
|
char x_tvndx[2]; /* tv index */
|
||||||
|
} x_sym;
|
||||||
|
|
||||||
|
union {
|
||||||
|
char x_fname[E_FILNMLEN];
|
||||||
|
struct {
|
||||||
|
char x_zeroes[4];
|
||||||
|
char x_offset[4];
|
||||||
|
} x_n;
|
||||||
|
} x_file;
|
||||||
|
|
||||||
|
struct {
|
||||||
|
char x_scnlen[4]; /* section length */
|
||||||
|
char x_nreloc[2]; /* # relocation entries */
|
||||||
|
char x_nlinno[2]; /* # line numbers */
|
||||||
|
char x_checksum[4]; /* section COMDAT checksum */
|
||||||
|
char x_associated[2]; /* COMDAT associated section index */
|
||||||
|
char x_comdat[1]; /* COMDAT selection number */
|
||||||
|
} x_scn;
|
||||||
|
|
||||||
|
struct {
|
||||||
|
char x_tvfill[4]; /* tv fill value */
|
||||||
|
char x_tvlen[2]; /* length of .tv */
|
||||||
|
char x_tvran[2][2]; /* tv range */
|
||||||
|
} x_tv; /* info about .tv section (in auxent of symbol .tv)) */
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#define SYMENT struct external_syment
|
||||||
|
#define SYMESZ 18
|
||||||
|
#define AUXENT union external_auxent
|
||||||
|
#define AUXESZ 18
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/********************** RELOCATION DIRECTIVES **********************/
|
||||||
|
|
||||||
|
/* The external reloc has an offset field, because some of the reloc
|
||||||
|
types on the h8 don't have room in the instruction for the entire
|
||||||
|
offset - eg the strange jump and high page addressing modes */
|
||||||
|
|
||||||
|
struct external_reloc {
|
||||||
|
char r_vaddr[4];
|
||||||
|
char r_symndx[4];
|
||||||
|
char r_type[2];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#define RELOC struct external_reloc
|
||||||
|
#define RELSZ 10
|
||||||
|
|
||||||
|
/* MIPS PE relocation types. */
|
||||||
|
|
||||||
|
#define MIPS_R_ABSOLUTE 0 /* ignored */
|
||||||
|
#define MIPS_R_REFHALF 1
|
||||||
|
#define MIPS_R_REFWORD 2
|
||||||
|
#define MIPS_R_JMPADDR 3
|
||||||
|
#define MIPS_R_REFHI 4 /* PAIR follows */
|
||||||
|
#define MIPS_R_REFLO 5
|
||||||
|
#define MIPS_R_GPREL 6
|
||||||
|
#define MIPS_R_LITERAL 7 /* same as GPREL */
|
||||||
|
#define MIPS_R_SECTION 10
|
||||||
|
#define MIPS_R_SECREL 11
|
||||||
|
#define MIPS_R_SECRELLO 12
|
||||||
|
#define MIPS_R_SECRELHI 13 /* PAIR follows */
|
||||||
|
#define MIPS_R_RVA 34 /* 0x22 */
|
||||||
|
#define MIPS_R_PAIR 37 /* 0x25 - symndx is really a signed 16-bit addend */
|
@ -183,4 +183,16 @@ typedef struct
|
|||||||
|
|
||||||
#undef E_FILNMLEN
|
#undef E_FILNMLEN
|
||||||
#define E_FILNMLEN 18 /* # characters in a file name */
|
#define E_FILNMLEN 18 /* # characters in a file name */
|
||||||
#endif
|
|
||||||
|
/* Import Tyoes fot ILF format object files.. */
|
||||||
|
#define IMPORT_CODE 0
|
||||||
|
#define IMPORT_DATA 1
|
||||||
|
#define IMPORT_CONST 2
|
||||||
|
|
||||||
|
/* Import Name Tyoes for ILF format object files. */
|
||||||
|
#define IMPORT_ORDINAL 0
|
||||||
|
#define IMPORT_NAME 1
|
||||||
|
#define IMPORT_NAME_NOPREFIX 2
|
||||||
|
#define IMPORT_NAME_UNDECORATE 3
|
||||||
|
|
||||||
|
#endif /* _PE_H */
|
||||||
|
@ -16,10 +16,12 @@ struct external_filehdr {
|
|||||||
|
|
||||||
#define SH_ARCH_MAGIC_BIG 0x0500
|
#define SH_ARCH_MAGIC_BIG 0x0500
|
||||||
#define SH_ARCH_MAGIC_LITTLE 0x0550 /* Little endian SH */
|
#define SH_ARCH_MAGIC_LITTLE 0x0550 /* Little endian SH */
|
||||||
|
#define SH_ARCH_MAGIC_WINCE 0x01a2 /* Windows CE - little endian */
|
||||||
|
|
||||||
|
|
||||||
#define SHBADMAG(x) \
|
#define SHBADMAG(x) \
|
||||||
(((x).f_magic!=SH_ARCH_MAGIC_BIG) && \
|
(((x).f_magic!=SH_ARCH_MAGIC_BIG) && \
|
||||||
|
((x).f_magic!=SH_ARCH_MAGIC_WINCE) && \
|
||||||
((x).f_magic!=SH_ARCH_MAGIC_LITTLE))
|
((x).f_magic!=SH_ARCH_MAGIC_LITTLE))
|
||||||
|
|
||||||
#define FILHDR struct external_filehdr
|
#define FILHDR struct external_filehdr
|
||||||
@ -48,6 +50,12 @@ AOUTHDR;
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* Define some NT default values. */
|
||||||
|
/* #define NT_IMAGE_BASE 0x400000 moved to internal.h */
|
||||||
|
#define NT_SECTION_ALIGNMENT 0x1000
|
||||||
|
#define NT_FILE_ALIGNMENT 0x200
|
||||||
|
#define NT_DEF_RESERVE 0x100000
|
||||||
|
#define NT_DEF_COMMIT 0x1000
|
||||||
|
|
||||||
/********************** SECTION HEADER **********************/
|
/********************** SECTION HEADER **********************/
|
||||||
|
|
||||||
@ -89,14 +97,26 @@ struct external_lineno {
|
|||||||
char l_symndx[4]; /* function name symbol index, iff l_lnno == 0*/
|
char l_symndx[4]; /* function name symbol index, iff l_lnno == 0*/
|
||||||
char l_paddr[4]; /* (physical) address of line number */
|
char l_paddr[4]; /* (physical) address of line number */
|
||||||
} l_addr;
|
} l_addr;
|
||||||
|
#ifdef COFF_WITH_PE
|
||||||
|
char l_lnno[2]; /* line number */
|
||||||
|
#else
|
||||||
char l_lnno[4]; /* line number */
|
char l_lnno[4]; /* line number */
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
#define GET_LINENO_LNNO(abfd, ext) bfd_h_get_32(abfd, (bfd_byte *) (ext->l_lnno));
|
#define GET_LINENO_LNNO(abfd, ext) bfd_h_get_32(abfd, (bfd_byte *) (ext->l_lnno));
|
||||||
#define PUT_LINENO_LNNO(abfd,val, ext) bfd_h_put_32(abfd,val, (bfd_byte *) (ext->l_lnno));
|
#define PUT_LINENO_LNNO(abfd,val, ext) bfd_h_put_32(abfd,val, (bfd_byte *) (ext->l_lnno));
|
||||||
|
|
||||||
#define LINENO struct external_lineno
|
#define LINENO struct external_lineno
|
||||||
|
#ifdef COFF_WITH_PE
|
||||||
|
#define LINESZ 6
|
||||||
|
#undef GET_LINENO_LNNO
|
||||||
|
#define GET_LINENO_LNNO(abfd, ext) bfd_h_get_16(abfd, (bfd_byte *) (ext->l_lnno));
|
||||||
|
#undef PUT_LINENO_LNNO
|
||||||
|
#define PUT_LINENO_LNNO(abfd,val, ext) bfd_h_put_16(abfd,val, (bfd_byte *) (ext->l_lnno));
|
||||||
|
#else
|
||||||
#define LINESZ 8
|
#define LINESZ 8
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/********************** SYMBOLS **********************/
|
/********************** SYMBOLS **********************/
|
||||||
@ -163,6 +183,9 @@ union external_auxent {
|
|||||||
char x_scnlen[4]; /* section length */
|
char x_scnlen[4]; /* section length */
|
||||||
char x_nreloc[2]; /* # relocation entries */
|
char x_nreloc[2]; /* # relocation entries */
|
||||||
char x_nlinno[2]; /* # line numbers */
|
char x_nlinno[2]; /* # line numbers */
|
||||||
|
char x_checksum[4]; /* section COMDAT checksum */
|
||||||
|
char x_associated[2]; /* COMDAT associated section index */
|
||||||
|
char x_comdat[1]; /* COMDAT selection number */
|
||||||
} x_scn;
|
} x_scn;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
@ -187,6 +210,7 @@ union external_auxent {
|
|||||||
types on the h8 don't have room in the instruction for the entire
|
types on the h8 don't have room in the instruction for the entire
|
||||||
offset - eg the strange jump and high page addressing modes */
|
offset - eg the strange jump and high page addressing modes */
|
||||||
|
|
||||||
|
#ifndef COFF_WITH_PE
|
||||||
struct external_reloc {
|
struct external_reloc {
|
||||||
char r_vaddr[4];
|
char r_vaddr[4];
|
||||||
char r_symndx[4];
|
char r_symndx[4];
|
||||||
@ -194,14 +218,26 @@ struct external_reloc {
|
|||||||
char r_type[2];
|
char r_type[2];
|
||||||
char r_stuff[2];
|
char r_stuff[2];
|
||||||
};
|
};
|
||||||
|
#else
|
||||||
|
struct external_reloc {
|
||||||
|
char r_vaddr[4];
|
||||||
|
char r_symndx[4];
|
||||||
|
char r_type[2];
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#define RELOC struct external_reloc
|
#define RELOC struct external_reloc
|
||||||
|
#ifdef COFF_WITH_PE
|
||||||
|
#define RELSZ 10
|
||||||
|
#else
|
||||||
#define RELSZ 16
|
#define RELSZ 16
|
||||||
|
#endif
|
||||||
|
|
||||||
/* SH relocation types. Not all of these are actually used. */
|
/* SH relocation types. Not all of these are actually used. */
|
||||||
|
|
||||||
#define R_SH_UNUSED 0 /* only used internally */
|
#define R_SH_UNUSED 0 /* only used internally */
|
||||||
|
#define R_SH_IMM32CE 2 /* 32 bit immediate for WinCE */
|
||||||
#define R_SH_PCREL8 3 /* 8 bit pcrel */
|
#define R_SH_PCREL8 3 /* 8 bit pcrel */
|
||||||
#define R_SH_PCREL16 4 /* 16 bit pcrel */
|
#define R_SH_PCREL16 4 /* 16 bit pcrel */
|
||||||
#define R_SH_HIGH8 5 /* high 8 bits of 24 bit address */
|
#define R_SH_HIGH8 5 /* high 8 bits of 24 bit address */
|
||||||
@ -213,6 +249,7 @@ struct external_reloc {
|
|||||||
#define R_SH_PCDISP 12 /* 12 bit branch */
|
#define R_SH_PCDISP 12 /* 12 bit branch */
|
||||||
#define R_SH_IMM32 14 /* 32 bit immediate */
|
#define R_SH_IMM32 14 /* 32 bit immediate */
|
||||||
#define R_SH_IMM8 16 /* 8 bit immediate */
|
#define R_SH_IMM8 16 /* 8 bit immediate */
|
||||||
|
#define R_SH_IMAGEBASE 16 /* Windows CE */
|
||||||
#define R_SH_IMM8BY2 17 /* 8 bit immediate *2 */
|
#define R_SH_IMM8BY2 17 /* 8 bit immediate *2 */
|
||||||
#define R_SH_IMM8BY4 18 /* 8 bit immediate *4 */
|
#define R_SH_IMM8BY4 18 /* 8 bit immediate *4 */
|
||||||
#define R_SH_IMM4 19 /* 4 bit immediate */
|
#define R_SH_IMM4 19 /* 4 bit immediate */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user