1. 16 Jan, 2019 1 commit
    • John Darrington's avatar
      S12Z: Emit RELOC_S12Z_OPR instead of RELOC_EXT24 where appropriate. · d5dcaf1b
      John Darrington authored
      When assembling instructions which involve OPR references, emit
      RELOC_S12Z_OPR instead of RELOC_EXT24.
      
      bfd/
      	* bfd-in2.h [BFD_RELOC_S12Z_OPR]: New reloc.
      	* libbfd.h: regen.
      	* elf32-s12z.c (eld_s12z_howto_table): R_S12Z_OPR takes non zero
      	source field.  (md_apply_fix): Apply final fix
      	to BFD_RELOC_S12Z_OPR.
      	* reloc.c[BFD_RELOC_S12Z_OPR]: New reloc.
      
      gas/
      	* config/tc-s12z.c (emit_opr): Emit BFD_RELOC_S12Z_OPR instead of
      	BFD_RELOC_24.
      	* testsuite/gas/s12z/opr-indirect-expr.d: Expect R_S12Z_OPR instead
      	of R_S12Z_EXT24.
      d5dcaf1b
  2. 01 Jan, 2019 1 commit
  3. 21 Nov, 2018 1 commit
    • John Darrington's avatar
      S12Z: Add alias instructions BHS and BLO. · 51534d7a
      John Darrington authored
      These are documented by NXP as alternative mnemonics for BCC and BCS
      respectively.
      
      gas/ChangeLog:
      
              * config/tc-s12z.c (opcodes): bhs, blo: New members.
      	* testsuite/gas/s12z/bra.d: Add tests for aliases.
      	* testsuite/gas/s12z/bra.s: Add tests for aliases.
      51534d7a
  4. 23 Oct, 2018 1 commit
    • John Darrington's avatar
      S12Z: Handle 16 bit fixups which are constant. · 405b6196
      John Darrington authored
      Commit 1f38083f added a test
      to check that the assembler handled fixups with resolved to
      constant values.  We were not handling this in the case of
      16 bit values.  This change fixes that.
      
      * gas/config/tc-s12z.c (md_apply_fix): Handle BFD_RELOC_16
      405b6196
  5. 20 Sep, 2018 1 commit
    • Maciej W. Rozycki's avatar
      S12Z/GAS: Correct a signed vs unsigned comparison error with GCC 4.1 · fa9d2bd6
      Maciej W. Rozycki authored
      Fix a build error:
      
      cc1: warnings being treated as errors
      .../gas/config/tc-s12z.c: In function 'lex_opr':
      .../gas/config/tc-s12z.c:617: warning: comparison between signed and unsigned
      .../gas/config/tc-s12z.c:624: warning: comparison between signed and unsigned
      make[4]: *** [config/tc-s12z.o] Error 1
      
      observed with GCC 4.1.2 with the `s12z-elf' target.
      
      Here we have a constant assembly instruction operand, whose value is
      within the 24-bit unsigned range, to be placed in a machine instruction
      such as to use the least space-consuming encoding.  So the sign of that
      value does not matter, because signed values are out of range and are
      not supposed to appear here, and we only have this warning here because
      the `X_add_number' member of `struct expressionS' is of the `offsetT'
      type, which is signed.
      
      Use an auxiliary variable of an unsigned data type then, observing that
      both `offsetT' and `valueT' have the same width, as they correspond to
      `bfd_signed_vma' and `bfd_vma' respectively.
      
      	gas/
      	* config/tc-s12z.c (lex_opr): Use an auxiliary unsigned variable
      	in encoding a constant operand.
      fa9d2bd6
  6. 18 Aug, 2018 1 commit
  7. 18 May, 2018 1 commit
    • John Darrington's avatar
      Add support for the Freescale s12z processor. · 7b4ae824
      John Darrington authored
      bfd	* Makefile.am: Add s12z files.
      	* Makefile.in: Regenerate.
      	* archures.c: Add bfd_s12z_arch.
      	* bfd-in.h: Add exports of bfd_putb24 and bfd_putl24.
      	* bfd-in2.h: Regenerate.
      	* config.bfd: Add s12z target.
      	* configure.ac: Add s12z target.
      	* configure: Regenerate.
      	* cpu-s12z.c: New file.
      	* elf32-s12z.c: New file.
      	* libbfd.c (bfd_putb24): New function.
      	(bfd_putl24): New function.
      	* libbfd.h: Regenerate.
      	* reloc.c: Add s12z relocations.
      	(bfd_get_reloc_size): Handle size 5 relocs.
      	* targets.c: Add s12z_elf32_vec.
      
      opcodes	* Makefile.am: Add support for s12z architecture.
      	* configure.ac: Likewise.
      	* disassemble.c: Likewise.
      	* disassemble.h: Likewise.
      	* Makefile.in: Regenerate.
      	* configure: Regenerate.
      	* s12z-dis.c: New file.
      	* s12z.h: New file.
      
      include	* elf/s12z.h: New header.
      
      ld	* Makefile.am: Add support for s12z architecture.
      	* configure.tgt: Likewise.
      	* Makefile.in: Regenerate.
      	* emulparams/m9s12zelf.sh: New file.
      	* scripttempl/elfm9s12z.sc: New file.
      	* testsuite/ld-discard/static.d: Expect to fail for the s12z
      	target.
      	* testsuite/ld-elf/endsym.d: Likewise.
      	* testsuite/ld-elf/merge.d: Likewise.
      	* testsuite/ld-elf/pr14926.d: Skip for the s12z target.
      	* testsuite/ld-elf/sec64k.exp: Likewise.
      	* testsuite/ld-s12z: New directory.
      	* testsuite/ld-s12z/opr-linking.d: New file.
      	* testsuite/ld-s12z/opr-linking.s: New file.
      	* testsuite/ld-s12z/relative-linking.d: New file.
      	* testsuite/ld-s12z/relative-linking.s: New file.
      	* testsuite/ld-s12z/z12s.exp: New file.
      
      gas	* Makefile.am: Add support for s12z target.
      	* Makefile.in: Regenerate.
      	* NEWS: Mention the new support.
      	* config/tc-s12z.c: New file.
      	* config/tc-s12z.h: New file.
      	* configure.tgt: Add  s12z support.
      	* doc/Makefile.am: Likewise.
      	* doc/Makefile.in: Regenerate.
      	* doc/all.texi: Add s12z documentation.
      	* doc/as.textinfo: Likewise.
      	* doc/c-s12z.texi: New file.
      	* testsuite/gas/s12z: New directory.
      	* testsuite/gas/s12z/abs.d: New file.
      	* testsuite/gas/s12z/abs.s: New file.
      	* testsuite/gas/s12z/adc-imm.d: New file.
      	* testsuite/gas/s12z/adc-imm.s: New file.
      	* testsuite/gas/s12z/adc-opr.d: New file.
      	* testsuite/gas/s12z/adc-opr.s: New file.
      	* testsuite/gas/s12z/add-imm.d: New file.
      	* testsuite/gas/s12z/add-imm.s: New file.
      	* testsuite/gas/s12z/add-opr.d: New file.
      	* testsuite/gas/s12z/add-opr.s: New file.
      	* testsuite/gas/s12z/and-imm.d: New file.
      	* testsuite/gas/s12z/and-imm.s: New file.
      	* testsuite/gas/s12z/and-opr.d: New file.
      	* testsuite/gas/s12z/and-opr.s: New file.
      	* testsuite/gas/s12z/and-or-cc.d: New file.
      	* testsuite/gas/s12z/and-or-cc.s: New file.
      	* testsuite/gas/s12z/bfext-special.d: New file.
      	* testsuite/gas/s12z/bfext-special.s: New file.
      	* testsuite/gas/s12z/bfext.d: New file.
      	* testsuite/gas/s12z/bfext.s: New file.
      	* testsuite/gas/s12z/bit-manip.d: New file.
      	* testsuite/gas/s12z/bit-manip.s: New file.
      	* testsuite/gas/s12z/bit.d: New file.
      	* testsuite/gas/s12z/bit.s: New file.
      	* testsuite/gas/s12z/bra-expression-defined.d: New file.
      	* testsuite/gas/s12z/bra-expression-defined.s: New file.
      	* testsuite/gas/s12z/bra-expression-undef.d: New file.
      	* testsuite/gas/s12z/bra-expression-undef.s: New file.
      	* testsuite/gas/s12z/bra.d: New file.
      	* testsuite/gas/s12z/bra.s: New file.
      	* testsuite/gas/s12z/brclr-symbols.d: New file.
      	* testsuite/gas/s12z/brclr-symbols.s: New file.
      	* testsuite/gas/s12z/brset-clr-opr-imm-rel.d: New file.
      	* testsuite/gas/s12z/brset-clr-opr-imm-rel.s: New file.
      	* testsuite/gas/s12z/brset-clr-opr-reg-rel.d: New file.
      	* testsuite/gas/s12z/brset-clr-opr-reg-rel.s: New file.
      	* testsuite/gas/s12z/brset-clr-reg-imm-rel.d: New file.
      	* testsuite/gas/s12z/brset-clr-reg-imm-rel.s: New file.
      	* testsuite/gas/s12z/brset-clr-reg-reg-rel.d: New file.
      	* testsuite/gas/s12z/brset-clr-reg-reg-rel.s: New file.
      	* testsuite/gas/s12z/clb.d: New file.
      	* testsuite/gas/s12z/clb.s: New file.
      	* testsuite/gas/s12z/clr-opr.d: New file.
      	* testsuite/gas/s12z/clr-opr.s: New file.
      	* testsuite/gas/s12z/clr.d: New file.
      	* testsuite/gas/s12z/clr.s: New file.
      	* testsuite/gas/s12z/cmp-imm.d: New file.
      	* testsuite/gas/s12z/cmp-imm.s: New file.
      	* testsuite/gas/s12z/cmp-opr-inc.d: New file.
      	* testsuite/gas/s12z/cmp-opr-inc.s: New file.
      	* testsuite/gas/s12z/cmp-opr-rdirect.d: New file.
      	* testsuite/gas/s12z/cmp-opr-rdirect.s: New file.
      	* testsuite/gas/s12z/cmp-opr-reg.d: New file.
      	* testsuite/gas/s12z/cmp-opr-reg.s: New file.
      	* testsuite/gas/s12z/cmp-opr-rindirect.d: New file.
      	* testsuite/gas/s12z/cmp-opr-rindirect.s: New file.
      	* testsuite/gas/s12z/cmp-opr-sxe4.d: New file.
      	* testsuite/gas/s12z/cmp-opr-sxe4.s: New file.
      	* testsuite/gas/s12z/cmp-opr-xys.d: New file.
      	* testsuite/gas/s12z/cmp-opr-xys.s: New file.
      	* testsuite/gas/s12z/cmp-s-imm.d: New file.
      	* testsuite/gas/s12z/cmp-s-imm.s: New file.
      	* testsuite/gas/s12z/cmp-s-opr.d: New file.
      	* testsuite/gas/s12z/cmp-s-opr.s: New file.
      	* testsuite/gas/s12z/cmp-xy.d: New file.
      	* testsuite/gas/s12z/cmp-xy.s: New file.
      	* testsuite/gas/s12z/com-opr.d: New file.
      	* testsuite/gas/s12z/com-opr.s: New file.
      	* testsuite/gas/s12z/complex-shifts.d: New file.
      	* testsuite/gas/s12z/complex-shifts.s: New file.
      	* testsuite/gas/s12z/db-tb-cc-opr.d: New file.
      	* testsuite/gas/s12z/db-tb-cc-opr.s: New file.
      	* testsuite/gas/s12z/db-tb-cc-reg.d: New file.
      	* testsuite/gas/s12z/db-tb-cc-reg.s: New file.
      	* testsuite/gas/s12z/dbCC.d: New file.
      	* testsuite/gas/s12z/dbCC.s: New file.
      	* testsuite/gas/s12z/dec-opr.d: New file.
      	* testsuite/gas/s12z/dec-opr.s: New file.
      	* testsuite/gas/s12z/dec.d: New file.
      	* testsuite/gas/s12z/dec.s: New file.
      	* testsuite/gas/s12z/div.d: New file.
      	* testsuite/gas/s12z/div.s: New file.
      	* testsuite/gas/s12z/eor.d: New file.
      	* testsuite/gas/s12z/eor.s: New file.
      	* testsuite/gas/s12z/exg.d: New file.
      	* testsuite/gas/s12z/exg.s: New file.
      	* testsuite/gas/s12z/ext24-ld-xy.d: New file.
      	* testsuite/gas/s12z/ext24-ld-xy.s: New file.
      	* testsuite/gas/s12z/inc-opr.d: New file.
      	* testsuite/gas/s12z/inc-opr.s: New file.
      	* testsuite/gas/s12z/inc.d: New file.
      	* testsuite/gas/s12z/inc.s: New file.
      	* testsuite/gas/s12z/inh.d: New file.
      	* testsuite/gas/s12z/inh.s: New file.
      	* testsuite/gas/s12z/jmp.d: New file.
      	* testsuite/gas/s12z/jmp.s: New file.
      	* testsuite/gas/s12z/jsr.d: New file.
      	* testsuite/gas/s12z/jsr.s: New file.
      	* testsuite/gas/s12z/ld-imm-page2.d: New file.
      	* testsuite/gas/s12z/ld-imm-page2.s: New file.
      	* testsuite/gas/s12z/ld-imm.d: New file.
      	* testsuite/gas/s12z/ld-imm.s: New file.
      	* testsuite/gas/s12z/ld-immu18.d: New file.
      	* testsuite/gas/s12z/ld-immu18.s: New file.
      	* testsuite/gas/s12z/ld-large-direct.d: New file.
      	* testsuite/gas/s12z/ld-large-direct.s: New file.
      	* testsuite/gas/s12z/ld-opr.d: New file.
      	* testsuite/gas/s12z/ld-opr.s: New file.
      	* testsuite/gas/s12z/ld-s-opr.d: New file.
      	* testsuite/gas/s12z/ld-s-opr.s: New file.
      	* testsuite/gas/s12z/ld-small-direct.d: New file.
      	* testsuite/gas/s12z/ld-small-direct.s: New file.
      	* testsuite/gas/s12z/lea-immu18.d: New file.
      	* testsuite/gas/s12z/lea-immu18.s: New file.
      	* testsuite/gas/s12z/lea.d: New file.
      	* testsuite/gas/s12z/lea.s: New file.
      	* testsuite/gas/s12z/mac.d: New file.
      	* testsuite/gas/s12z/mac.s: New file.
      	* testsuite/gas/s12z/min-max.d: New file.
      	* testsuite/gas/s12z/min-max.s: New file.
      	* testsuite/gas/s12z/mod.d: New file.
      	* testsuite/gas/s12z/mod.s: New file.
      	* testsuite/gas/s12z/mov.d: New file.
      	* testsuite/gas/s12z/mov.s: New file.
      	* testsuite/gas/s12z/mul-imm.d: New file.
      	* testsuite/gas/s12z/mul-imm.s: New file.
      	* testsuite/gas/s12z/mul-opr-opr.d: New file.
      	* testsuite/gas/s12z/mul-opr-opr.s: New file.
      	* testsuite/gas/s12z/mul-opr.d: New file.
      	* testsuite/gas/s12z/mul-opr.s: New file.
      	* testsuite/gas/s12z/mul-reg.d: New file.
      	* testsuite/gas/s12z/mul-reg.s: New file.
      	* testsuite/gas/s12z/mul.d: New file.
      	* testsuite/gas/s12z/mul.s: New file.
      	* testsuite/gas/s12z/neg-opr.d: New file.
      	* testsuite/gas/s12z/neg-opr.s: New file.
      	* testsuite/gas/s12z/not-so-simple-shifts.d: New file.
      	* testsuite/gas/s12z/not-so-simple-shifts.s: New file.
      	* testsuite/gas/s12z/opr-18u.d: New file.
      	* testsuite/gas/s12z/opr-18u.s: New file.
      	* testsuite/gas/s12z/opr-expr.d: New file.
      	* testsuite/gas/s12z/opr-expr.s: New file.
      	* testsuite/gas/s12z/opr-ext-18.d: New file.
      	* testsuite/gas/s12z/opr-ext-18.s: New file.
      	* testsuite/gas/s12z/opr-idx-24-reg.d: New file.
      	* testsuite/gas/s12z/opr-idx-24-reg.s: New file.
      	* testsuite/gas/s12z/opr-idx3-reg.d: New file.
      	* testsuite/gas/s12z/opr-idx3-reg.s: New file.
      	* testsuite/gas/s12z/opr-idx3-xysp-24.d: New file.
      	* testsuite/gas/s12z/opr-idx3-xysp-24.s: New file.
      	* testsuite/gas/s12z/opr-indirect-expr.d: New file.
      	* testsuite/gas/s12z/opr-indirect-expr.s: New file.
      	* testsuite/gas/s12z/opr-symbol.d: New file.
      	* testsuite/gas/s12z/opr-symbol.s: New file.
      	* testsuite/gas/s12z/or-imm.d: New file.
      	* testsuite/gas/s12z/or-imm.s: New file.
      	* testsuite/gas/s12z/or-opr.d: New file.
      	* testsuite/gas/s12z/or-opr.s: New file.
      	* testsuite/gas/s12z/p2-mul.d: New file.
      	* testsuite/gas/s12z/p2-mul.s: New file.
      	* testsuite/gas/s12z/page2-inh.d: New file.
      	* testsuite/gas/s12z/page2-inh.s: New file.
      	* testsuite/gas/s12z/psh-pul.d: New file.
      	* testsuite/gas/s12z/psh-pul.s: New file.
      	* testsuite/gas/s12z/qmul.d: New file.
      	* testsuite/gas/s12z/qmul.s: New file.
      	* testsuite/gas/s12z/rotate.d: New file.
      	* testsuite/gas/s12z/rotate.s: New file.
      	* testsuite/gas/s12z/s12z.exp: New file.
      	* testsuite/gas/s12z/sat.d: New file.
      	* testsuite/gas/s12z/sat.s: New file.
      	* testsuite/gas/s12z/sbc-imm.d: New file.
      	* testsuite/gas/s12z/sbc-imm.s: New file.
      	* testsuite/gas/s12z/sbc-opr.d: New file.
      	* testsuite/gas/s12z/sbc-opr.s: New file.
      	* testsuite/gas/s12z/shift.d: New file.
      	* testsuite/gas/s12z/shift.s: New file.
      	* testsuite/gas/s12z/simple-shift.d: New file.
      	* testsuite/gas/s12z/simple-shift.s: New file.
      	* testsuite/gas/s12z/single-ops.d: New file.
      	* testsuite/gas/s12z/single-ops.s: New file.
      	* testsuite/gas/s12z/specd6.d: New file.
      	* testsuite/gas/s12z/specd6.s: New file.
      	* testsuite/gas/s12z/st-large-direct.d: New file.
      	* testsuite/gas/s12z/st-large-direct.s: New file.
      	* testsuite/gas/s12z/st-opr.d: New file.
      	* testsuite/gas/s12z/st-opr.s: New file.
      	* testsuite/gas/s12z/st-s-opr.d: New file.
      	* testsuite/gas/s12z/st-s-opr.s: New file.
      	* testsuite/gas/s12z/st-small-direct.d: New file.
      	* testsuite/gas/s12z/st-small-direct.s: New file.
      	* testsuite/gas/s12z/st-xy.d: New file.
      	* testsuite/gas/s12z/st-xy.s: New file.
      	* testsuite/gas/s12z/sub-imm.d: New file.
      	* testsuite/gas/s12z/sub-imm.s: New file.
      	* testsuite/gas/s12z/sub-opr.d: New file.
      	* testsuite/gas/s12z/sub-opr.s: New file.
      	* testsuite/gas/s12z/tfr.d: New file.
      	* testsuite/gas/s12z/tfr.s: New file.
      	* testsuite/gas/s12z/trap.d: New file.
      	* testsuite/gas/s12z/trap.s: New file.
      
      binutils* readelf.c: Add support for s12z architecture.
      	* testsuite/lib/binutils-common.exp (is_elf_format): Excluse s12z
      	targets.
      7b4ae824