source: rtems-tools/tools/4.11/binutils/moxie/binutils-2.22-rtems4.11-moxie-20130516.diff @ acdef36

4.104.115
Last change on this file since acdef36 was acdef36, checked in by Amar Takhar <verm@…>, on 05/16/13 at 08:13:31

Add three patches from Anthony Green to fix moxie tools.

http://sourceware.org/git/?p=binutils.git;a=commitdiff;h=cdef5ce2d07eefec59c3ef2157bc44a85df89157
http://sourceware.org/git/?p=binutils.git;a=commitdiff;h=9cd5917ee16c8d8b138bc7c6ffd76a97952b650d
http://sourceware.org/git/?p=binutils.git;a=commitdiff;h=fa75401a3f5c44e9f1ca1235135e579b833e26bb

  • Property mode set to 100644
File size: 16.1 KB
  • .23.2/bfd/config.bfd

    Only in a_binutils-2.23.2: 1.diff
    Only in a_binutils-2.23.2: 2.diff
    Only in a_binutils-2.23.2: 3.diff
    Only in a_binutils-2.23.2: a.diff
    Only in a_binutils-2.23.2/bfd: ChangeLog.orig
    Only in a_binutils-2.23.2/bfd: ChangeLog.rej
    diff -ru binutils-2.23.2/bfd/config.bfd a_binutils-2.23.2/bfd/config.bfd
    old new  
    419419    ;;
    420420
    421421  moxie-*-elf | moxie-*-rtems* | moxie-*-uclinux)
    422     targ_defvec=bfd_elf32_moxie_vec
     422    targ_defvec=bfd_elf32_bigmoxie_vec
     423    targ_selvecs=bfd_elf32_littlemoxie_vec
    423424    ;;
    424425
    425426  h8300*-*-rtemscoff*)
  • .23.2/bfd/configure

    diff -ru binutils-2.23.2/bfd/configure a_binutils-2.23.2/bfd/configure
    old new  
    1521215212    bfd_elf32_bigmips_vec)      tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
    1521315213    bfd_elf32_bigmips_vxworks_vec)
    1521415214                                tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
     15215    bfd_elf32_bigmoxie_vec)     tb="$tb elf32-moxie.lo elf32.lo $elf" ;;
    1521515216    bfd_elf32_cr16_vec)         tb="$tb elf32-cr16.lo elf32.lo $elf" ;;
    1521615217    bfd_elf32_cr16c_vec)        tb="$tb elf32-cr16c.lo elf32.lo $elf" ;;
    1521715218    bfd_elf32_cris_vec)         tb="$tb elf32-cris.lo elf32.lo $elf" ;;
     
    1522315224    bfd_elf32_fr30_vec)         tb="$tb elf32-fr30.lo elf32.lo $elf" ;;
    1522415225    bfd_elf32_frv_vec)          tb="$tb elf32-frv.lo elf32.lo $elf" ;;
    1522515226    bfd_elf32_frvfdpic_vec)     tb="$tb elf32-frv.lo elf32.lo $elf" ;;
    15226     bfd_elf32_moxie_vec)        tb="$tb elf32-moxie.lo elf32.lo $elf" ;;
    1522715227    bfd_elf32_h8300_vec)        tb="$tb elf32-h8300.lo elf32.lo $elf" ;;
    1522815228    bfd_elf32_hppa_linux_vec)   tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
    1522915229    bfd_elf32_hppa_nbsd_vec)    tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
     
    1525415254    bfd_elf32_littlemips_vec)   tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
    1525515255    bfd_elf32_littlemips_vxworks_vec)
    1525615256                                tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
     15257    bfd_elf32_littlemoxie_vec)  tb="$tb elf32-moxie.lo elf32.lo $elf" ;;
    1525715258    bfd_elf32_m32c_vec)         tb="$tb elf32-m32c.lo elf32.lo $elf" ;;
    1525815259    bfd_elf32_m32r_vec)         tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
    1525915260    bfd_elf32_m32rle_vec)       tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
  • .23.2/bfd/configure.in

    diff -ru binutils-2.23.2/bfd/configure.in a_binutils-2.23.2/bfd/configure.in
    old new  
    704704    bfd_elf32_bigmips_vec)      tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
    705705    bfd_elf32_bigmips_vxworks_vec)
    706706                                tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
     707    bfd_elf32_bigmoxie_vec)     tb="$tb elf32-moxie.lo elf32.lo $elf" ;;
    707708    bfd_elf32_cr16_vec)         tb="$tb elf32-cr16.lo elf32.lo $elf" ;;
    708709    bfd_elf32_cr16c_vec)        tb="$tb elf32-cr16c.lo elf32.lo $elf" ;;
    709710    bfd_elf32_cris_vec)         tb="$tb elf32-cris.lo elf32.lo $elf" ;;
     
    715716    bfd_elf32_fr30_vec)         tb="$tb elf32-fr30.lo elf32.lo $elf" ;;
    716717    bfd_elf32_frv_vec)          tb="$tb elf32-frv.lo elf32.lo $elf" ;;
    717718    bfd_elf32_frvfdpic_vec)     tb="$tb elf32-frv.lo elf32.lo $elf" ;;
    718     bfd_elf32_moxie_vec)        tb="$tb elf32-moxie.lo elf32.lo $elf" ;;
    719719    bfd_elf32_h8300_vec)        tb="$tb elf32-h8300.lo elf32.lo $elf" ;;
    720720    bfd_elf32_hppa_linux_vec)   tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
    721721    bfd_elf32_hppa_nbsd_vec)    tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
     
    746746    bfd_elf32_littlemips_vec)   tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
    747747    bfd_elf32_littlemips_vxworks_vec)
    748748                                tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
     749    bfd_elf32_littlemoxie_vec)  tb="$tb elf32-moxie.lo elf32.lo $elf" ;;
    749750    bfd_elf32_m32c_vec)         tb="$tb elf32-m32c.lo elf32.lo $elf" ;;
    750751    bfd_elf32_m32r_vec)         tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
    751752    bfd_elf32_m32rle_vec)       tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
  • .23.2/bfd/elf32-moxie.c

    Only in a_binutils-2.23.2/bfd: configure.orig
    diff -ru binutils-2.23.2/bfd/elf32-moxie.c a_binutils-2.23.2/bfd/elf32-moxie.c
    old new  
    366366#define ELF_MACHINE_CODE        EM_MOXIE
    367367#define ELF_MAXPAGESIZE         0x1
    368368
    369 #define TARGET_BIG_SYM          bfd_elf32_moxie_vec
    370 #define TARGET_BIG_NAME         "elf32-moxie"
     369#define TARGET_BIG_SYM          bfd_elf32_bigmoxie_vec
     370#define TARGET_BIG_NAME         "elf32-bigmoxie"
     371#define TARGET_LITTLE_SYM       bfd_elf32_littlemoxie_vec
     372#define TARGET_LITTLE_NAME      "elf32-littlemoxie"
    371373
    372374#define elf_info_to_howto_rel                   NULL
    373375#define elf_info_to_howto                       moxie_info_to_howto_rela
  • .23.2/bfd/targets.c

    diff -ru binutils-2.23.2/bfd/targets.c a_binutils-2.23.2/bfd/targets.c
    old new  
    606606extern const bfd_target bfd_elf32_bigarm_vxworks_vec;
    607607extern const bfd_target bfd_elf32_bigmips_vec;
    608608extern const bfd_target bfd_elf32_bigmips_vxworks_vec;
     609extern const bfd_target bfd_elf32_bigmoxie_vec;
    609610extern const bfd_target bfd_elf32_cr16_vec;
    610611extern const bfd_target bfd_elf32_cr16c_vec;
    611612extern const bfd_target bfd_elf32_cris_vec;
     
    617618extern const bfd_target bfd_elf32_fr30_vec;
    618619extern const bfd_target bfd_elf32_frv_vec;
    619620extern const bfd_target bfd_elf32_frvfdpic_vec;
    620 extern const bfd_target bfd_elf32_moxie_vec;
    621621extern const bfd_target bfd_elf32_h8300_vec;
    622622extern const bfd_target bfd_elf32_hppa_linux_vec;
    623623extern const bfd_target bfd_elf32_hppa_nbsd_vec;
     
    645645extern const bfd_target bfd_elf32_littlearm_vxworks_vec;
    646646extern const bfd_target bfd_elf32_littlemips_vec;
    647647extern const bfd_target bfd_elf32_littlemips_vxworks_vec;
     648extern const bfd_target bfd_elf32_littlemoxie_vec;
    648649extern const bfd_target bfd_elf32_m32c_vec;
    649650extern const bfd_target bfd_elf32_m32r_vec;
    650651extern const bfd_target bfd_elf32_m32rle_vec;
     
    979980        &bfd_elf32_bigarm_vxworks_vec,
    980981        &bfd_elf32_bigmips_vec,
    981982        &bfd_elf32_bigmips_vxworks_vec,
     983        &bfd_elf32_bigmoxie_vec,
    982984        &bfd_elf32_cr16_vec,
    983985        &bfd_elf32_cr16c_vec,
    984986        &bfd_elf32_cris_vec,
     
    990992        &bfd_elf32_fr30_vec,
    991993        &bfd_elf32_frv_vec,
    992994        &bfd_elf32_frvfdpic_vec,
    993         &bfd_elf32_moxie_vec,
    994995        &bfd_elf32_h8300_vec,
    995996        &bfd_elf32_hppa_linux_vec,
    996997        &bfd_elf32_hppa_nbsd_vec,
     
    10201021        &bfd_elf32_littlearm_vxworks_vec,
    10211022        &bfd_elf32_littlemips_vec,
    10221023        &bfd_elf32_littlemips_vxworks_vec,
     1024        &bfd_elf32_littlemoxie_vec,
    10231025        &bfd_elf32_m32c_vec,
    10241026        &bfd_elf32_m32r_vec,
    10251027        &bfd_elf32_m32rle_vec,
  • .23.2/gas/config/tc-moxie.c

    Only in a_binutils-2.23.2/gas: ChangeLog.orig
    Only in a_binutils-2.23.2/gas: ChangeLog.rej
    diff -ru binutils-2.23.2/gas/config/tc-moxie.c a_binutils-2.23.2/gas/config/tc-moxie.c
    old new  
    11/* tc-moxie.c -- Assemble code for moxie
    2    Copyright 2009
     2   Copyright 2009, 2012
    33   Free Software Foundation, Inc.
    44
    55   This file is part of GAS, the GNU Assembler.
     
    4343const char FLT_CHARS[] = "rRsSfFdDxXpP";
    4444const char EXP_CHARS[] = "eE";
    4545
    46 static int md_chars_to_number (char *val, int n);
     46static valueT md_chars_to_number (char * buf, int n);
     47
     48/* Byte order.  */
     49extern int target_big_endian;
     50const char *moxie_target_format = DEFAULT_TARGET_FORMAT;
    4751
    4852void
    4953md_operand (expressionS *op __attribute__((unused)))
     
    203207        op_end++;
    204208        op_end = parse_exp_save_ilp (op_end, &arg);
    205209        fix_new_exp (frag_now,
    206                      ((p+1) - frag_now->fr_literal),
     210                     ((p + (target_big_endian ? 1 : 0)) - frag_now->fr_literal),
    207211                     1,
    208212                     &arg,
    209213                     0,
     
    589593
    590594  return NULL;
    591595}
    592 
    593596
    594 const char *md_shortopts = "";
     597
     598enum options
     599{
     600  OPTION_EB = OPTION_MD_BASE,
     601  OPTION_EL,
     602};
    595603
    596604struct option md_longopts[] =
    597605{
    598   {NULL, no_argument, NULL, 0}
     606  { "EB",          no_argument, NULL, OPTION_EB},
     607  { "EL",          no_argument, NULL, OPTION_EL},
     608  { NULL,          no_argument, NULL, 0}
    599609};
     610
    600611size_t md_longopts_size = sizeof (md_longopts);
     612
    601613
     614const char *md_shortopts = "";
    602615
    603 /* We have no target specific options yet, so these next
    604    two functions are empty.  */
    605616int
    606617md_parse_option (int c ATTRIBUTE_UNUSED, char *arg ATTRIBUTE_UNUSED)
    607618{
    608   return 0;
     619  switch (c)
     620    {
     621    case OPTION_EB:
     622      target_big_endian = 1;
     623      moxie_target_format = "elf32-bigmoxie";
     624      break;
     625    case OPTION_EL:
     626      target_big_endian = 0;
     627      moxie_target_format = "elf32-littlemoxie";
     628      break;
     629    default:       
     630      return 0;
     631    }
     632
     633  return 1;
    609634}
    610635
    611636void
    612637md_show_usage (FILE *stream ATTRIBUTE_UNUSED)
    613638{
     639  fprintf (stream, _("\
     640  -EB                     assemble for a big endian system (default)\n\
     641  -EL                     assemble for a little endian system\n"));
    614642}
  • .23.2/gas/config/tc-moxie.h

     
     /* Apply a fixup to the object file.  */
    @@ -626,15 +654,35 @@
       switch (fixP->fx_r_type)
         {
         case BFD_RELOC_32:
    -      *buf++ = val >> 24;
    -      *buf++ = val >> 16;
    -      *buf++ = val >> 8;
    -      *buf++ = val >> 0;
    +      if (target_big_endian)
    +	{
    +	  buf[0] = val >> 24;
    +	  buf[1] = val >> 16;
    +	  buf[2] = val >> 8;
    +	  buf[3] = val >> 0;
    +	}
    +      else
    +	{
    +	  buf[3] = val >> 24;
    +	  buf[2] = val >> 16;
    +	  buf[1] = val >> 8;
    +	  buf[0] = val >> 0;
    +	}
    +      buf += 4;
           break;
     
         case BFD_RELOC_16:
    -      *buf++ = val >> 8;
    -      *buf++ = val >> 0;
    +      if (target_big_endian)
    +	{
    +	  buf[0] = val >> 8;
    +	  buf[1] = val >> 0;
    +	}
    +      else
    +	{
    +	  buf[1] = val >> 8;
    +	  buf[0] = val >> 0;
    +	}
    +      buf += 2;
           break;
     
         case BFD_RELOC_8:
    @@ -665,28 +713,43 @@
         fixP->fx_done = 1;
     }
     
    -/* Put number into target byte order (big endian).  */
    +/* Put number into target byte order.  */
     
     void
    -md_number_to_chars (char *ptr, valueT use, int nbytes)
    +md_number_to_chars (char * ptr, valueT use, int nbytes)
     {
    -  number_to_chars_bigendian (ptr, use, nbytes);
    +  if (target_big_endian)
    +    number_to_chars_bigendian (ptr, use, nbytes);
    +  else
    +    number_to_chars_littleendian (ptr, use, nbytes);
     }
     
     /* Convert from target byte order to host byte order.  */
     
    -static int
    -md_chars_to_number (char *val, int n)
    +static valueT
    +md_chars_to_number (char * buf, int n)
     {
    -  int retval = 0;
    +  valueT result = 0;
    +  unsigned char * where = (unsigned char *) buf;
     
    -  while (n--)
    +  if (target_big_endian)
         {
    -      retval <<= 8;
    -      retval |= (*val++ & 255);
    +      while (n--)
    +	{
    +	  result <<= 8;
    +	  result |= (*where++ & 255);
    +	}
    +    }
    +  else
    +    {
    +      while (n--)
    +	{
    +	  result <<= 8;
    +	  result |= (where[n] & 255);
    +	}
         }
     
    -  return retval;
    +  return result;
     }
     
     /* Generate a machine-dependent relocation.  */
    @@ -774,7 +837,8 @@
         case BFD_RELOC_32:
           return addr + 4;
         case BFD_RELOC_MOXIE_10_PCREL:
    -      return addr;
    +      /* Offset is from the end of the instruction.  */
    +      return addr + 2;
         default:
           abort ();
           return addr;
    Only in a_binutils-2.23.2/gas/config: tc-moxie.c.orig
    diff -ru binutils-2.23.2/gas/config/tc-moxie.h a_binutils-2.23.2/gas/config/tc-moxie.h
    old new  
    11/* tc-moxie.h -- Header file for tc-moxie.c.
    22
    3    Copyright 2009 Free Software Foundation, Inc.
     3   Copyright 2009, 2012 Free Software Foundation, Inc.
    44
    55   This file is part of GAS, the GNU Assembler.
    66
     
    2222#define TARGET_BYTES_BIG_ENDIAN 1
    2323#define WORKING_DOT_WORD
    2424
    25 /* This macro is the BFD target name to use when creating the output
    26    file.  This will normally depend upon the `OBJ_FMT' macro.  */
    27 #define TARGET_FORMAT "elf32-moxie"
    28 
    2925/* This macro is the BFD architecture to pass to `bfd_set_arch_mach'.  */
     26const char *moxie_target_format;
     27#define DEFAULT_TARGET_FORMAT  "elf32-bigmoxie"
     28#define TARGET_FORMAT          moxie_target_format
     29
    3030#define TARGET_ARCH bfd_arch_moxie
    3131
    3232#define md_undefined_symbol(NAME)           0
  • .23.2/ld/emulparams/elf32moxie.sh

    Only in a_binutils-2.23.2/ld: ChangeLog.orig
    Only in a_binutils-2.23.2/ld: ChangeLog.rej
    diff -ru binutils-2.23.2/ld/emulparams/elf32moxie.sh a_binutils-2.23.2/ld/emulparams/elf32moxie.sh
    old new  
    11SCRIPT_NAME=elf
    22TEMPLATE_NAME=generic
    33EXTRA_EM_FILE=genelf
    4 OUTPUT_FORMAT="elf32-moxie"
     4OUTPUT_FORMAT="elf32-bigmoxie"
     5BIG_OUTPUT_FORMAT="elf32-bigmoxie"
     6LITTLE_OUTPUT_FORMAT="elf32-littlemoxie"
    57TEXT_START_ADDR=0x1000
    68MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
    79ARCH=moxie
     10EMBEDDED=yes
    811STACK_ADDR=0x400000
  • .23.2/opcodes/moxie-dis.c

    Only in a_binutils-2.23.2/opcodes: ChangeLog.orig
    Only in a_binutils-2.23.2/opcodes: ChangeLog.rej
    diff -ru binutils-2.23.2/opcodes/moxie-dis.c a_binutils-2.23.2/opcodes/moxie-dis.c
    old new  
    5353
    5454  if ((status = info->read_memory_func (addr, buffer, 2, info)))
    5555    goto fail;
    56   iword = bfd_getb16 (buffer);
     56
     57  if (info->endian == BFD_ENDIAN_BIG)
     58    iword = bfd_getb16 (buffer);
     59  else
     60    iword = bfd_getl16 (buffer);
    5761
    5862  /* Form 1 instructions have the high bit set to 0.  */
    5963  if ((iword & (1<<15)) == 0)
     
    7983            unsigned imm;
    8084            if ((status = info->read_memory_func (addr + 2, buffer, 4, info)))
    8185              goto fail;
    82             imm = bfd_getb32 (buffer);
     86            if (info->endian == BFD_ENDIAN_BIG)
     87              imm = bfd_getb32 (buffer);
     88            else
     89              imm = bfd_getl32 (buffer);
    8390            fpr (stream, "%s\t%s, 0x%x", opcode->name,
    8491                 reg_names[OP_A(iword)], imm);
    8592            length = 6;
     
    9097            unsigned imm;
    9198            if ((status = info->read_memory_func (addr + 2, buffer, 4, info)))
    9299              goto fail;
    93             imm = bfd_getb32 (buffer);
     100            if (info->endian == BFD_ENDIAN_BIG)
     101              imm = bfd_getb32 (buffer);
     102            else
     103              imm = bfd_getl32 (buffer);
    94104            fpr (stream, "%s\t0x%x", opcode->name, imm);
    95105            length = 6;
    96106          }
     
    100110            unsigned imm;
    101111            if ((status = info->read_memory_func (addr + 2, buffer, 4, info)))
    102112              goto fail;
    103             imm = bfd_getb32 (buffer);
     113            if (info->endian == BFD_ENDIAN_BIG)
     114              imm = bfd_getb32 (buffer);
     115            else
     116              imm = bfd_getl32 (buffer);
    104117            fpr (stream, "%s\t", opcode->name);
    105118            info->print_address_func ((bfd_vma) imm, info);
    106119            length = 6;
     
    119132            unsigned imm;
    120133            if ((status = info->read_memory_func (addr + 2, buffer, 4, info)))
    121134              goto fail;
    122             imm = bfd_getb32 (buffer);
     135            if (info->endian == BFD_ENDIAN_BIG)
     136              imm = bfd_getb32 (buffer);
     137            else
     138              imm = bfd_getl32 (buffer);
    123139            fpr (stream, "%s\t0x%x, %s",
    124140                 opcode->name, imm, reg_names[OP_A(iword)]);
    125141            length = 6;
     
    130146            unsigned imm;
    131147            if ((status = info->read_memory_func (addr+2, buffer, 4, info)))
    132148              goto fail;
    133             imm = bfd_getb32 (buffer);
     149            if (info->endian == BFD_ENDIAN_BIG)
     150              imm = bfd_getb32 (buffer);
     151            else
     152              imm = bfd_getl32 (buffer);
    134153            fpr (stream, "%s\t0x%x(%s), %s", opcode->name,
    135154                 imm,
    136155                 reg_names[OP_A(iword)],
     
    143162            unsigned imm;
    144163            if ((status = info->read_memory_func (addr+2, buffer, 4, info)))
    145164              goto fail;
    146             imm = bfd_getb32 (buffer);
     165            if (info->endian == BFD_ENDIAN_BIG)
     166              imm = bfd_getb32 (buffer);
     167            else
     168              imm = bfd_getl32 (buffer);
    147169            fpr (stream, "%s\t%s, 0x%x(%s)",
    148170                 opcode->name,
    149171                 reg_names[OP_A(iword)],
     
    183205        {
    184206        case MOXIE_F3_PCREL:
    185207          fpr (stream, "%s\t", opcode->name);
    186           info->print_address_func ((bfd_vma) (addr + INST2OFFSET(iword)),
     208          info->print_address_func ((bfd_vma) (addr + INST2OFFSET(iword) + 2),
    187209                                    info);
    188210          break;
    189211        default:
Note: See TracBrowser for help on using the repository browser.