X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=opcodes%2Frl78-decode.opc;h=2a3aa55185299cdf2c843afed547de136c87ec5b;hb=301a9420d947da145884261ac31a7a52438c2894;hp=8bb8d0940dbf5b33f44a9053ebef8600b089a618;hpb=02f12cd4669463a1b2346145808213adeb303e2d;p=deliverable%2Fbinutils-gdb.git diff --git a/opcodes/rl78-decode.opc b/opcodes/rl78-decode.opc index 8bb8d0940d..2a3aa55185 100644 --- a/opcodes/rl78-decode.opc +++ b/opcodes/rl78-decode.opc @@ -1,5 +1,5 @@ /* -*- c -*- */ -/* Copyright (C) 2012-2015 Free Software Foundation, Inc. +/* Copyright (C) 2012-2020 Free Software Foundation, Inc. Contributed by Red Hat. Written by DJ Delorie. @@ -24,7 +24,8 @@ #include #include #include -#include "ansidecl.h" +#include "bfd.h" +#include "opintl.h" #include "opcode/rl78.h" static int trace = 0; @@ -50,7 +51,9 @@ typedef struct #define W() rl78->size = RL78_Word #define AU ATTRIBUTE_UNUSED -#define GETBYTE() (ld->op [ld->rl78->n_bytes++] = ld->getbyte (ld->ptr)) + +#define OP_BUF_LEN 20 +#define GETBYTE() (ld->rl78->n_bytes < (OP_BUF_LEN - 1) ? ld->op [ld->rl78->n_bytes++] = ld->getbyte (ld->ptr): 0) #define B ((unsigned long) GETBYTE()) #define SYNTAX(x) rl78->syntax = x @@ -98,7 +101,10 @@ immediate (int bytes, int sign_extend, LocalData * ld) i -= 0x1000000; break; default: - fprintf (stderr, "Programmer error: immediate() called with invalid byte count %d\n", bytes); + opcodes_error_handler + /* xgettext:c-format */ + (_("internal error: immediate() called with invalid byte count %d"), + bytes); abort(); } return i; @@ -168,7 +174,7 @@ rl78_decode_opcode (unsigned long pc AU, RL78_Dis_Isa isa) { LocalData lds, * ld = &lds; - unsigned char op_buf[20] = {0}; + unsigned char op_buf[OP_BUF_LEN] = {0}; unsigned char *op = op_buf; int op0, op1; @@ -614,10 +620,10 @@ rl78_decode_opcode (unsigned long pc AU, /** 1001 1001 mov %e0, %1 */ ID(mov); DM(DE, 0); SR(A); -/** 1100 1010 mov %e0, #%1 */ +/** 1100 1010 mov %ea0, #%1 */ ID(mov); DM(DE, IMMU(1)); SC(IMMU(1)); -/** 1001 1010 mov %e0, %1 */ +/** 1001 1010 mov %ea0, %1 */ ID(mov); DM(DE, IMMU(1)); SR(A); /** 1001 1011 mov %e0, %1 */ @@ -647,7 +653,7 @@ rl78_decode_opcode (unsigned long pc AU, /** 1000 1001 mov %0, %e1 */ ID(mov); DR(A); SM(DE, 0); -/** 1000 1010 mov %0, %e1 */ +/** 1000 1010 mov %0, %ea1 */ ID(mov); DR(A); SM(DE, IMMU(1)); /** 1000 1011 mov %0, %e1 */ @@ -776,7 +782,7 @@ rl78_decode_opcode (unsigned long pc AU, break; } -/** 1001 1110 mov %0, %1 */ +/** 1001 1110 mov %s0, %1 */ ID(mov); DM(None, SFR); SR(A); /*----------------------------------------------------------------------*/ @@ -818,7 +824,7 @@ rl78_decode_opcode (unsigned long pc AU, /** 1011 1001 movw %e0, %1 */ ID(mov); W(); DM(DE, 0); SR(AX); -/** 1011 1010 movw %e0, %1 */ +/** 1011 1010 movw %ea0, %1 */ ID(mov); W(); DM(DE, IMMU(1)); SR(AX); /** 1011 1011 movw %e0, %1 */ @@ -837,7 +843,7 @@ rl78_decode_opcode (unsigned long pc AU, /** 1010 1001 movw %0, %e1 */ ID(mov); W(); DR(AX); SM(DE, 0); -/** 1010 1010 movw %0, %e1 */ +/** 1010 1010 movw %0, %ea1 */ ID(mov); W(); DR(AX); SM(DE, IMMU(1)); /** 1010 1011 movw %0, %e1 */ @@ -882,7 +888,7 @@ rl78_decode_opcode (unsigned long pc AU, /** 1010 1110 movw %0, %s1 */ ID(mov); W(); DR(AX); SM(None, SFR); -/** 11ra 1011 movw %0, %e!1 */ +/** 11ra 1011 movw %0, %es!1 */ ID(mov); W(); DRW(ra); SM(None, IMMU(2)); /** 11ra 1010 movw %0, %1 */ @@ -894,17 +900,16 @@ rl78_decode_opcode (unsigned long pc AU, /** 1011 1101 movw %0, %1 */ ID(mov); W(); DM(None, SADDR); SR(AX); -/** 1100 1011 movw %0, #%1 */ +/** 1100 1011 movw %s0, #%1 */ ID(mov); W(); DM(None, SFR); SC(IMMU(2)); -/** 1011 1110 movw %0, %1 */ +/** 1011 1110 movw %s0, %1 */ ID(mov); W(); DM(None, SFR); SR(AX); /*----------------------------------------------------------------------*/ /** 1101 0110 mulu x */ - if (isa == RL78_ISA_G14) - ID(mulu); + ID(mulu); /*----------------------------------------------------------------------*/ @@ -1206,7 +1211,7 @@ rl78_decode_opcode (unsigned long pc AU, /** 0110 0001 1010 1110 xch %0, %e1 */ ID(xch); DR(A); SM(DE, 0); -/** 0110 0001 1010 1111 xch %0, %e1 */ +/** 0110 0001 1010 1111 xch %0, %ea1 */ ID(xch); DR(A); SM(DE, IMMU(1)); /** 0110 0001 1010 1100 xch %0, %e1 */ @@ -1228,7 +1233,7 @@ rl78_decode_opcode (unsigned long pc AU, /** 0110 0001 1010 1000 xch %0, %1 */ ID(xch); DR(A); SM(None, SADDR); -/** 0110 0001 1010 1011 xch %0, %1 */ +/** 0110 0001 1010 1011 xch %0, %s1 */ ID(xch); DR(A); SM(None, SFR); /** 0000 1000 xch a, x */