X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=opcodes%2Frl78-decode.opc;h=2a3aa55185299cdf2c843afed547de136c87ec5b;hb=2f13234bc5e1a9fa50d555c746f2a0068014cbdc;hp=4af2bf3a7bbb27cc74fe6827587cc0d8cdb02f18;hpb=21abe33a9bdebefa7f917bcc99e946eb464cc67f;p=deliverable%2Fbinutils-gdb.git diff --git a/opcodes/rl78-decode.opc b/opcodes/rl78-decode.opc index 4af2bf3a7b..2a3aa55185 100644 --- a/opcodes/rl78-decode.opc +++ b/opcodes/rl78-decode.opc @@ -1,10 +1,31 @@ /* -*- c -*- */ +/* Copyright (C) 2012-2020 Free Software Foundation, Inc. + Contributed by Red Hat. + Written by DJ Delorie. + + This file is part of the GNU opcodes library. + + This library is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. + + It is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, + MA 02110-1301, USA. */ + +#include "sysdep.h" #include #include #include - -#include "config.h" -#include "ansidecl.h" +#include "bfd.h" +#include "opintl.h" #include "opcode/rl78.h" static int trace = 0; @@ -30,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 @@ -78,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; @@ -144,10 +170,11 @@ int rl78_decode_opcode (unsigned long pc AU, RL78_Opcode_Decoded * rl78, int (* getbyte)(void *), - void * ptr) + void * ptr, + 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; @@ -176,19 +203,19 @@ rl78_decode_opcode (unsigned long pc AU, /*----------------------------------------------------------------------*/ -/** 0000 1111 add %0, %e1%!1 */ +/** 0000 1111 add %0, %e!1 */ ID(add); DR(A); SM(None, IMMU(2)); Fzac; -/** 0000 1101 add %0, %e1%1 */ +/** 0000 1101 add %0, %e1 */ ID(add); DR(A); SM(HL, 0); Fzac; -/** 0110 0001 1000 000 add %0, %e1%1 */ +/** 0110 0001 1000 000 add %0, %e1 */ ID(add); DR(A); SM2(HL, B, 0); Fzac; -/** 0000 1110 add %0, %e1%1 */ +/** 0000 1110 add %0, %ea1 */ ID(add); DR(A); SM(HL, IMMU(1)); Fzac; -/** 0110 0001 1000 0010 add %0, %e1%1 */ +/** 0110 0001 1000 0010 add %0, %e1 */ ID(add); DR(A); SM2(HL, C, 0); Fzac; /** 0000 1100 add %0, #%1 */ @@ -208,19 +235,19 @@ rl78_decode_opcode (unsigned long pc AU, /*----------------------------------------------------------------------*/ -/** 0001 1111 addc %0, %e1%!1 */ +/** 0001 1111 addc %0, %e!1 */ ID(addc); DR(A); SM(None, IMMU(2)); Fzac; -/** 0001 1101 addc %0, %e1%1 */ +/** 0001 1101 addc %0, %e1 */ ID(addc); DR(A); SM(HL, 0); Fzac; -/** 0110 0001 1001 0000 addc %0, %e1%1 */ +/** 0110 0001 1001 0000 addc %0, %e1 */ ID(addc); DR(A); SM2(HL, B, 0); Fzac; -/** 0110 0001 1001 0010 addc %0, %e1%1 */ +/** 0110 0001 1001 0010 addc %0, %e1 */ ID(addc); DR(A); SM2(HL, C, 0); Fzac; -/** 0001 1110 addc %0, %e1%1 */ +/** 0001 1110 addc %0, %ea1 */ ID(addc); DR(A); SM(HL, IMMU(1)); Fzac; /** 0001 1100 addc %0, #%1 */ @@ -240,10 +267,10 @@ rl78_decode_opcode (unsigned long pc AU, /*----------------------------------------------------------------------*/ -/** 0000 0010 addw %0, %e1%!1 */ +/** 0000 0010 addw %0, %e!1 */ ID(add); W(); DR(AX); SM(None, IMMU(2)); Fzac; -/** 0110 0001 0000 1001 addw %0, %e1%1 */ +/** 0110 0001 0000 1001 addw %0, %ea1 */ ID(add); W(); DR(AX); SM(HL, IMMU(1)); Fzac; /** 0000 0100 addw %0, #%1 */ @@ -260,19 +287,19 @@ rl78_decode_opcode (unsigned long pc AU, /*----------------------------------------------------------------------*/ -/** 0101 1111 and %0, %e1%!1 */ +/** 0101 1111 and %0, %e!1 */ ID(and); DR(A); SM(None, IMMU(2)); Fz; -/** 0101 1101 and %0, %e1%1 */ +/** 0101 1101 and %0, %e1 */ ID(and); DR(A); SM(HL, 0); Fz; -/** 0110 0001 1101 0000 and %0, %e1%1 */ +/** 0110 0001 1101 0000 and %0, %e1 */ ID(and); DR(A); SM2(HL, B, 0); Fz; -/** 0101 1110 and %0, %e1%1 */ +/** 0101 1110 and %0, %ea1 */ ID(and); DR(A); SM(HL, IMMU(1)); Fz; -/** 0110 0001 1101 0010 and %0, %e1%1 */ +/** 0110 0001 1101 0010 and %0, %e1 */ ID(and); DR(A); SM2(HL, C, 0); Fz; /** 0101 1100 and %0, #%1 */ @@ -292,7 +319,7 @@ rl78_decode_opcode (unsigned long pc AU, /*----------------------------------------------------------------------*/ -/** 0111 0001 1bit 0101 and1 cy, %e1%1 */ +/** 0111 0001 1bit 0101 and1 cy, %e1 */ ID(and); DCY(); SM(HL, 0); SB(bit); /** 0111 0001 1bit 1101 and1 cy, %1 */ @@ -329,7 +356,7 @@ rl78_decode_opcode (unsigned long pc AU, /*----------------------------------------------------------------------*/ -/** 0011 0001 1bit 0101 bf %e1%1, $%a0 */ +/** 0011 0001 1bit 0101 bf %e1, $%a0 */ ID(branch_cond); DC(pc+IMMS(1)+3); SM(HL,0); SB(bit); COND(F); /** 0011 0001 0bit 0101 bf %1, $%a0 */ @@ -368,7 +395,7 @@ rl78_decode_opcode (unsigned long pc AU, /*----------------------------------------------------------------------*/ -/** 0011 0001 1bit 0011 bt %e1%1, $%a0 */ +/** 0011 0001 1bit 0011 bt %e1, $%a0 */ ID(branch_cond); DC(pc+IMMS(1)+3); SM(HL,0); SB(bit); COND(T); /** 0011 0001 0bit 0011 bt %1, $%a0 */ @@ -382,7 +409,7 @@ rl78_decode_opcode (unsigned long pc AU, /*----------------------------------------------------------------------*/ -/** 0011 0001 1bit 0001 btclr %e1%1, $%a0 */ +/** 0011 0001 1bit 0001 btclr %e1, $%a0 */ ID(branch_cond_clear); DC(pc+IMMS(1)+3); SM(HL,0); SB(bit); COND(T); /** 0011 0001 0bit 0001 btclr %1, $%a0 */ @@ -413,10 +440,10 @@ rl78_decode_opcode (unsigned long pc AU, /*----------------------------------------------------------------------*/ -/** 0111 0001 0bit 1000 clr1 %e0%!0 */ +/** 0111 0001 0bit 1000 clr1 %e!0 */ ID(mov); DM(None, IMMU(2)); DB(bit); SC(0); -/** 0111 0001 1bit 0011 clr1 %e0%0 */ +/** 0111 0001 1bit 0011 clr1 %e0 */ ID(mov); DM(HL, 0); DB(bit); SC(0); /** 0111 0001 1bit 1011 clr1 %0 */ @@ -436,7 +463,7 @@ rl78_decode_opcode (unsigned long pc AU, /*----------------------------------------------------------------------*/ -/** 1111 0101 clrb %e0%!0 */ +/** 1111 0101 clrb %e!0 */ ID(mov); DM(None, IMMU(2)); SC(0); /** 1111 00rg clrb %0 */ @@ -455,25 +482,25 @@ rl78_decode_opcode (unsigned long pc AU, /*----------------------------------------------------------------------*/ -/** 0100 0000 cmp %e0%!0, #%1 */ +/** 0100 0000 cmp %e!0, #%1 */ ID(cmp); DM(None, IMMU(2)); SC(IMMU(1)); Fzac; /** 0100 1010 cmp %0, #%1 */ ID(cmp); DM(None, SADDR); SC(IMMU(1)); Fzac; -/** 0100 1111 cmp %0, %e1%!1 */ +/** 0100 1111 cmp %0, %e!1 */ ID(cmp); DR(A); SM(None, IMMU(2)); Fzac; -/** 0100 1101 cmp %0, %e1%1 */ +/** 0100 1101 cmp %0, %e1 */ ID(cmp); DR(A); SM(HL, 0); Fzac; -/** 0110 0001 1100 0000 cmp %0, %e1%1 */ +/** 0110 0001 1100 0000 cmp %0, %e1 */ ID(cmp); DR(A); SM2(HL, B, 0); Fzac; -/** 0110 0001 1100 0010 cmp %0, %e1%1 */ +/** 0110 0001 1100 0010 cmp %0, %e1 */ ID(cmp); DR(A); SM2(HL, C, 0); Fzac; -/** 0100 1110 cmp %0, %e1%1 */ +/** 0100 1110 cmp %0, %ea1 */ ID(cmp); DR(A); SM(HL, IMMU(1)); Fzac; /** 0100 1100 cmp %0, #%1 */ @@ -490,7 +517,7 @@ rl78_decode_opcode (unsigned long pc AU, /*----------------------------------------------------------------------*/ -/** 1101 0101 cmp0 %e0%!0 */ +/** 1101 0101 cmp0 %e!0 */ ID(cmp); DM(None, IMMU(2)); SC(0); Fzac; /** 1101 00rg cmp0 %0 */ @@ -501,15 +528,15 @@ rl78_decode_opcode (unsigned long pc AU, /*----------------------------------------------------------------------*/ -/** 0110 0001 1101 1110 cmps %0, %e1%1 */ +/** 0110 0001 1101 1110 cmps %0, %ea1 */ ID(cmp); DR(X); SM(HL, IMMU(1)); Fzac; /*----------------------------------------------------------------------*/ -/** 0100 0010 cmpw %0, %e1%!1 */ +/** 0100 0010 cmpw %0, %e!1 */ ID(cmp); W(); DR(AX); SM(None, IMMU(2)); Fzac; -/** 0110 0001 0100 1001 cmpw %0, %e1%1 */ +/** 0110 0001 0100 1001 cmpw %0, %ea1 */ ID(cmp); W(); DR(AX); SM(HL, IMMU(1)); Fzac; /** 0100 0100 cmpw %0, #%1 */ @@ -523,10 +550,10 @@ rl78_decode_opcode (unsigned long pc AU, /*----------------------------------------------------------------------*/ -/** 1011 0000 dec %e0%!0 */ +/** 1011 0000 dec %e!0 */ ID(sub); DM(None, IMMU(2)); SC(1); Fza; -/** 0110 0001 0110 1001 dec %e0%0 */ +/** 0110 0001 0110 1001 dec %ea0 */ ID(sub); DM(HL, IMMU(1)); SC(1); Fza; /** 1001 0reg dec %0 */ @@ -537,10 +564,10 @@ rl78_decode_opcode (unsigned long pc AU, /*----------------------------------------------------------------------*/ -/** 1011 0010 decw %e0%!0 */ +/** 1011 0010 decw %e!0 */ ID(sub); W(); DM(None, IMMU(2)); SC(1); -/** 0110 0001 1000 1001 decw %e0%0 */ +/** 0110 0001 1000 1001 decw %ea0 */ ID(sub); W(); DM(HL, IMMU(1)); SC(1); /** 1011 0rg1 decw %0 */ @@ -556,10 +583,10 @@ rl78_decode_opcode (unsigned long pc AU, /*----------------------------------------------------------------------*/ -/** 1010 0000 inc %e0%!0 */ +/** 1010 0000 inc %e!0 */ ID(add); DM(None, IMMU(2)); SC(1); Fza; -/** 0110 0001 0101 1001 inc %e0%0 */ +/** 0110 0001 0101 1001 inc %ea0 */ ID(add); DM(HL, IMMU(1)); SC(1); Fza; /** 1000 0reg inc %0 */ @@ -570,10 +597,10 @@ rl78_decode_opcode (unsigned long pc AU, /*----------------------------------------------------------------------*/ -/** 1010 0010 incw %e0%!0 */ +/** 1010 0010 incw %e!0 */ ID(add); W(); DM(None, IMMU(2)); SC(1); -/** 0110 0001 0111 1001 incw %e0%0 */ +/** 0110 0001 0111 1001 incw %ea0 */ ID(add); W(); DM(HL, IMMU(1)); SC(1); /** 1010 0rg1 incw %0 */ @@ -584,64 +611,64 @@ rl78_decode_opcode (unsigned long pc AU, /*----------------------------------------------------------------------*/ -/** 1100 1111 mov %e0%!0, #%1 */ +/** 1100 1111 mov %e!0, #%1 */ ID(mov); DM(None, IMMU(2)); SC(IMMU(1)); -/** 1001 1111 mov %e0%!0, %1 */ +/** 1001 1111 mov %e!0, %1 */ ID(mov); DM(None, IMMU(2)); SR(A); -/** 1001 1001 mov %e0%0,%1 */ +/** 1001 1001 mov %e0, %1 */ ID(mov); DM(DE, 0); SR(A); -/** 1100 1010 mov %e0%0, #%1 */ +/** 1100 1010 mov %ea0, #%1 */ ID(mov); DM(DE, IMMU(1)); SC(IMMU(1)); -/** 1001 1010 mov %e0%0, %1 */ +/** 1001 1010 mov %ea0, %1 */ ID(mov); DM(DE, IMMU(1)); SR(A); -/** 1001 1011 mov %e0%0,%1 */ +/** 1001 1011 mov %e0, %1 */ ID(mov); DM(HL, 0); SR(A); -/** 0110 0001 1101 1001 mov %e0%0, %1 */ +/** 0110 0001 1101 1001 mov %e0, %1 */ ID(mov); DM2(HL, B, 0); SR(A); -/** 1100 1100 mov %e0%0, #%1 */ +/** 1100 1100 mov %ea0, #%1 */ ID(mov); DM(HL, IMMU(1)); SC(IMMU(1)); -/** 1001 1100 mov %e0%0, %1 */ +/** 1001 1100 mov %ea0, %1 */ ID(mov); DM(HL, IMMU(1)); SR(A); -/** 0110 0001 1111 1001 mov %e0%0, %1 */ +/** 0110 0001 1111 1001 mov %e0, %1 */ ID(mov); DM2(HL, C, 0); SR(A); -/** 1100 1000 mov %0, #%1 */ +/** 1100 1000 mov %a0, #%1 */ ID(mov); DM(SP, IMMU(1)); SC(IMMU(1)); -/** 1001 1000 mov %0, %1 */ +/** 1001 1000 mov %a0, %1 */ ID(mov); DM(SP, IMMU(1)); SR(A); -/** 1000 1111 mov %0, %e1%!1 */ +/** 1000 1111 mov %0, %e!1 */ ID(mov); DR(A); SM(None, IMMU(2)); -/** 1000 1001 mov %0, %e1%1 */ +/** 1000 1001 mov %0, %e1 */ ID(mov); DR(A); SM(DE, 0); -/** 1000 1010 mov %0, %e1%1 */ +/** 1000 1010 mov %0, %ea1 */ ID(mov); DR(A); SM(DE, IMMU(1)); -/** 1000 1011 mov %0, %e1%1 */ +/** 1000 1011 mov %0, %e1 */ ID(mov); DR(A); SM(HL, 0); -/** 1000 1100 mov %0, %e1%1 */ +/** 1000 1100 mov %0, %ea1 */ ID(mov); DR(A); SM(HL, IMMU(1)); -/** 0110 0001 1100 1001 mov %0, %e1%1 */ +/** 0110 0001 1100 1001 mov %0, %e1 */ ID(mov); DR(A); SM2(HL, B, 0); -/** 0110 0001 1110 1001 mov %0, %e1%1 */ +/** 0110 0001 1110 1001 mov %0, %e1 */ ID(mov); DR(A); SM2(HL, C, 0); -/** 1000 1000 mov %0, %e1%1 */ +/** 1000 1000 mov %0, %ea1 */ ID(mov); DR(A); SM(SP, IMMU(1)); /** 0101 0reg mov %0, #%1 */ @@ -653,13 +680,13 @@ rl78_decode_opcode (unsigned long pc AU, /** 1000 1110 1111 1101 mov %0, %1 */ ID(mov); DR(A); SR(ES); -/** 0000 1001 mov %0, %e1%1 */ +/** 0000 1001 mov %0, %e1 */ ID(mov); DR(A); SM(B, IMMU(2)); -/** 0100 1001 mov %0, %e1%1 */ +/** 0100 1001 mov %0, %e1 */ ID(mov); DR(A); SM(BC, IMMU(2)); -/** 0010 1001 mov %0, %e1%1 */ +/** 0010 1001 mov %0, %e1 */ ID(mov); DR(A); SM(C, IMMU(2)); /** 1000 1110 mov %0, %s1 */ @@ -668,7 +695,7 @@ rl78_decode_opcode (unsigned long pc AU, /** 1000 1101 mov %0, %1 */ ID(mov); DR(A); SM(None, SADDR); -/** 1110 1001 mov %0, %e1%!1 */ +/** 1110 1001 mov %0, %e!1 */ ID(mov); DR(B); SM(None, IMMU(2)); /** 0111 0rba mov %0, %1 */ @@ -677,13 +704,13 @@ rl78_decode_opcode (unsigned long pc AU, /** 1110 1000 mov %0, %1 */ ID(mov); DR(B); SM(None, SADDR); -/** 1111 1001 mov %0, %e1%!1 */ +/** 1111 1001 mov %0, %e!1 */ ID(mov); DR(C); SM(None, IMMU(2)); /** 1111 1000 mov %0, %1 */ ID(mov); DR(C); SM(None, SADDR); -/** 1101 1001 mov %0, %e1%!1 */ +/** 1101 1001 mov %0, %e!1 */ ID(mov); DR(X); SM(None, IMMU(2)); /** 1101 1000 mov %0, %1 */ @@ -693,30 +720,30 @@ rl78_decode_opcode (unsigned long pc AU, ID(mov); DR(CS); SR(A); /** 0100 0001 mov %0, #%1 */ - ID(mov); DR(ES); SC(IMMU(1)); + ID(mov); DR(ES); SC(IMMU(1)); /** 1001 1110 1111 1101 mov %0, %1 */ - ID(mov); DR(ES); SR(A); + ID(mov); DR(ES); SR(A); /** 0110 0001 1011 1000 mov %0, %1 */ - ID(mov); DR(ES); SM(None, SADDR); + ID(mov); DR(ES); SM(None, SADDR); -/** 0001 1001 mov %e0%0, #%1 */ - ID(mov); DM(B, IMMU(2)); SC(IMMU(1)); +/** 0001 1001 mov %e0, #%1 */ + ID(mov); DM(B, IMMU(2)); SC(IMMU(1)); -/** 0001 1000 mov %e0%0, %1 */ - ID(mov); DM(B, IMMU(2)); SR(A); +/** 0001 1000 mov %e0, %1 */ + ID(mov); DM(B, IMMU(2)); SR(A); -/** 0011 1001 mov %e0%0, #%1 */ - ID(mov); DM(BC, IMMU(2)); SC(IMMU(1)); +/** 0011 1001 mov %e0, #%1 */ + ID(mov); DM(BC, IMMU(2)); SC(IMMU(1)); -/** 0100 1000 mov %e0%0, %1 */ - ID(mov); DM(BC, IMMU(2)); SR(A); +/** 0100 1000 mov %e0, %1 */ + ID(mov); DM(BC, IMMU(2)); SR(A); -/** 0011 1000 mov %e0%0, #%1 */ - ID(mov); DM(C, IMMU(2)); SC(IMMU(1)); +/** 0011 1000 mov %e0, #%1 */ + ID(mov); DM(C, IMMU(2)); SC(IMMU(1)); -/** 0010 1000 mov %e0%0, %1 */ +/** 0010 1000 mov %e0, %1 */ ID(mov); DM(C, IMMU(2)); SR(A); /** 1100 1101 mov %0, #%1 */ @@ -729,7 +756,7 @@ rl78_decode_opcode (unsigned long pc AU, op0 = SFR; op1 = IMMU(1); ID(mov); DM(None, op0); SC(op1); - if (op0 == 0xffffb) + if (op0 == 0xffffb && isa == RL78_ISA_G14) switch (op1) { case 0x01: @@ -742,7 +769,7 @@ rl78_decode_opcode (unsigned long pc AU, rl78->syntax = "divhu"; ID(divhu); break; case 0x04: - rl78->syntax = "divwu"; ID(divwu); + rl78->syntax = "divwu "; ID(divwu); break; case 0x05: rl78->syntax = "machu"; ID(machu); @@ -750,23 +777,26 @@ rl78_decode_opcode (unsigned long pc AU, case 0x06: rl78->syntax = "mach"; ID(mach); break; + case 0x0b: + rl78->syntax = "divwu"; ID(divwu); + break; } -/** 1001 1110 mov %0, %1 */ +/** 1001 1110 mov %s0, %1 */ ID(mov); DM(None, SFR); SR(A); /*----------------------------------------------------------------------*/ -/** 0111 0001 1bit 0001 mov1 %e0%0, cy */ +/** 0111 0001 1bit 0001 mov1 %e0, cy */ ID(mov); DM(HL, 0); DB(bit); SCY(); -/** 0111 0001 1bit 1001 mov1 %e0%0, cy */ +/** 0111 0001 1bit 1001 mov1 %e0, cy */ ID(mov); DR(A); DB(bit); SCY(); -/** 0111 0001 1bit 0100 mov1 cy, %e1%1 */ +/** 0111 0001 1bit 0100 mov1 cy, %e1 */ ID(mov); DCY(); SM(HL, 0); SB(bit); -/** 0111 0001 1bit 1100 mov1 cy, %e1%1 */ +/** 0111 0001 1bit 1100 mov1 cy, %e1 */ ID(mov); DCY(); SR(A); SB(bit); /** 0111 0001 0bit 0100 mov1 cy, %1 */ @@ -783,46 +813,46 @@ rl78_decode_opcode (unsigned long pc AU, /*----------------------------------------------------------------------*/ -/** 0110 0001 1100 1110 movs %e0%0, %1 */ +/** 0110 0001 1100 1110 movs %ea0, %1 */ ID(mov); DM(HL, IMMU(1)); SR(X); Fzc; /*----------------------------------------------------------------------*/ -/** 1011 1111 movw %e0%!0, %1 */ +/** 1011 1111 movw %e!0, %1 */ ID(mov); W(); DM(None, IMMU(2)); SR(AX); -/** 1011 1001 movw %e0%0, %1 */ +/** 1011 1001 movw %e0, %1 */ ID(mov); W(); DM(DE, 0); SR(AX); -/** 1011 1010 movw %e0%0, %1 */ +/** 1011 1010 movw %ea0, %1 */ ID(mov); W(); DM(DE, IMMU(1)); SR(AX); -/** 1011 1011 movw %e0%0, %1 */ +/** 1011 1011 movw %e0, %1 */ ID(mov); W(); DM(HL, 0); SR(AX); -/** 1011 1100 movw %e0%0, %1 */ +/** 1011 1100 movw %ea0, %1 */ ID(mov); W(); DM(HL, IMMU(1)); SR(AX); -/** 1011 1000 movw %0, %1 */ +/** 1011 1000 movw %a0, %1 */ ID(mov); W(); DM(SP, IMMU(1)); SR(AX); -/** 1010 1111 movw %0, %e1%!1 */ +/** 1010 1111 movw %0, %e!1 */ ID(mov); W(); DR(AX); SM(None, IMMU(2)); -/** 1010 1001 movw %0, %e1%1 */ +/** 1010 1001 movw %0, %e1 */ ID(mov); W(); DR(AX); SM(DE, 0); -/** 1010 1010 movw %0, %e1%1 */ +/** 1010 1010 movw %0, %ea1 */ ID(mov); W(); DR(AX); SM(DE, IMMU(1)); -/** 1010 1011 movw %0, %e1%1 */ +/** 1010 1011 movw %0, %e1 */ ID(mov); W(); DR(AX); SM(HL, 0); -/** 1010 1100 movw %0, %e1%1 */ +/** 1010 1100 movw %0, %ea1 */ ID(mov); W(); DR(AX); SM(HL, IMMU(1)); -/** 1010 1000 movw %0, %1 */ +/** 1010 1000 movw %0, %a1 */ ID(mov); W(); DR(AX); SM(SP, IMMU(1)); /** 0011 0rg0 movw %0, #%1 */ @@ -834,22 +864,22 @@ rl78_decode_opcode (unsigned long pc AU, /** 0001 0ra0 movw %0, %1 */ ID(mov); W(); DRW(ra); SR(AX); -/** 0101 1001 movw %0, %e1%1 */ +/** 0101 1001 movw %0, %e1 */ ID(mov); W(); DR(AX); SM(B, IMMU(2)); -/** 0110 1001 movw %0, %e1%1 */ +/** 0110 1001 movw %0, %e1 */ ID(mov); W(); DR(AX); SM(C, IMMU(2)); -/** 0111 1001 movw %0, %e1%1 */ +/** 0111 1001 movw %0, %e1 */ ID(mov); W(); DR(AX); SM(BC, IMMU(2)); -/** 0101 1000 movw %e0%0, %1 */ +/** 0101 1000 movw %e0, %1 */ ID(mov); W(); DM(B, IMMU(2)); SR(AX); -/** 0110 1000 movw %e0%0, %1 */ +/** 0110 1000 movw %e0, %1 */ ID(mov); W(); DM(C, IMMU(2)); SR(AX); -/** 0111 1000 movw %e0%0, %1 */ +/** 0111 1000 movw %e0, %1 */ ID(mov); W(); DM(BC, IMMU(2)); SR(AX); /** 1010 1101 movw %0, %1 */ @@ -858,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, %e1%!1 */ +/** 11ra 1011 movw %0, %es!1 */ ID(mov); W(); DRW(ra); SM(None, IMMU(2)); /** 11ra 1010 movw %0, %1 */ @@ -870,10 +900,10 @@ 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); /*----------------------------------------------------------------------*/ @@ -893,7 +923,7 @@ rl78_decode_opcode (unsigned long pc AU, /*----------------------------------------------------------------------*/ -/** 1110 0101 oneb %e0%!0 */ +/** 1110 0101 oneb %e!0 */ ID(mov); DM(None, IMMU(2)); SC(1); /** 1110 00rg oneb %0 */ @@ -912,19 +942,19 @@ rl78_decode_opcode (unsigned long pc AU, /*----------------------------------------------------------------------*/ -/** 0110 1111 or %0, %e1%!1 */ +/** 0110 1111 or %0, %e!1 */ ID(or); DR(A); SM(None, IMMU(2)); Fz; -/** 0110 1101 or %0, %e1%1 */ +/** 0110 1101 or %0, %e1 */ ID(or); DR(A); SM(HL, 0); Fz; -/** 0110 0001 1110 0000 or %0, %e1%1 */ +/** 0110 0001 1110 0000 or %0, %e1 */ ID(or); DR(A); SM2(HL, B, 0); Fz; -/** 0110 1110 or %0, %e1%1 */ +/** 0110 1110 or %0, %ea1 */ ID(or); DR(A); SM(HL, IMMU(1)); Fz; -/** 0110 0001 1110 0010 or %0, %e1%1 */ +/** 0110 0001 1110 0010 or %0, %e1 */ ID(or); DR(A); SM2(HL, C, 0); Fz; /** 0110 1100 or %0, #%1 */ @@ -944,7 +974,7 @@ rl78_decode_opcode (unsigned long pc AU, /*----------------------------------------------------------------------*/ -/** 0111 0001 1bit 0110 or1 cy, %e1%1 */ +/** 0111 0001 1bit 0110 or1 cy, %e1 */ ID(or); DCY(); SM(HL, 0); SB(bit); /** 0111 0001 1bit 1110 or1 cy, %1 */ @@ -1018,10 +1048,10 @@ rl78_decode_opcode (unsigned long pc AU, /*----------------------------------------------------------------------*/ -/** 0111 0001 0bit 0000 set1 %e0%!0 */ +/** 0111 0001 0bit 0000 set1 %e!0 */ ID(mov); DM(None, IMMU(2)); DB(bit); SC(1); -/** 0111 0001 1bit 0010 set1 %e0%0 */ +/** 0111 0001 1bit 0010 set1 %e0 */ ID(mov); DM(HL, 0); DB(bit); SC(1); /** 0111 0001 1bit 1010 set1 %0 */ @@ -1086,24 +1116,24 @@ rl78_decode_opcode (unsigned long pc AU, /*----------------------------------------------------------------------*/ -/** 0110 0001 1111 1101 stop */ +/** 0110 0001 1111 1101 stop */ ID(stop); /*----------------------------------------------------------------------*/ -/** 0010 1111 sub %0, %e1%!1 */ +/** 0010 1111 sub %0, %e!1 */ ID(sub); DR(A); SM(None, IMMU(2)); Fzac; -/** 0010 1101 sub %0, %e1%1 */ +/** 0010 1101 sub %0, %e1 */ ID(sub); DR(A); SM(HL, 0); Fzac; -/** 0110 0001 1010 000 sub %0, %e1%1 */ +/** 0110 0001 1010 000 sub %0, %e1 */ ID(sub); DR(A); SM2(HL, B, 0); Fzac; -/** 0010 1110 sub %0, %e1%1 */ +/** 0010 1110 sub %0, %ea1 */ ID(sub); DR(A); SM(HL, IMMU(1)); Fzac; -/** 0110 0001 1010 0010 sub %0, %e1%1 */ +/** 0110 0001 1010 0010 sub %0, %e1 */ ID(sub); DR(A); SM2(HL, C, 0); Fzac; /** 0010 1100 sub %0, #%1 */ @@ -1123,19 +1153,19 @@ rl78_decode_opcode (unsigned long pc AU, /*----------------------------------------------------------------------*/ -/** 0011 1111 subc %0, %e1%!1 */ +/** 0011 1111 subc %0, %e!1 */ ID(subc); DR(A); SM(None, IMMU(2)); Fzac; -/** 0011 1101 subc %0, %e1%1 */ +/** 0011 1101 subc %0, %e1 */ ID(subc); DR(A); SM(HL, 0); Fzac; -/** 0110 0001 1011 0000 subc %0, %e1%1 */ +/** 0110 0001 1011 0000 subc %0, %e1 */ ID(subc); DR(A); SM2(HL, B, 0); Fzac; -/** 0110 0001 1011 0010 subc %0, %e1%1 */ +/** 0110 0001 1011 0010 subc %0, %e1 */ ID(subc); DR(A); SM2(HL, C, 0); Fzac; -/** 0011 1110 subc %0, %e1%1 */ +/** 0011 1110 subc %0, %ea1 */ ID(subc); DR(A); SM(HL, IMMU(1)); Fzac; /** 0011 1100 subc %0, #%1 */ @@ -1155,10 +1185,10 @@ rl78_decode_opcode (unsigned long pc AU, /*----------------------------------------------------------------------*/ -/** 0010 0010 subw %0, %e1%!1 */ +/** 0010 0010 subw %0, %e!1 */ ID(sub); W(); DR(AX); SM(None, IMMU(2)); Fzac; -/** 0110 0001 0010 1001 subw %0, %e1%1 */ +/** 0110 0001 0010 1001 subw %0, %ea1 */ ID(sub); W(); DR(AX); SM(HL, IMMU(1)); Fzac; /** 0010 0100 subw %0, #%1 */ @@ -1175,25 +1205,25 @@ rl78_decode_opcode (unsigned long pc AU, /*----------------------------------------------------------------------*/ -/** 0110 0001 1010 1010 xch %0, %e1%!1 */ +/** 0110 0001 1010 1010 xch %0, %e!1 */ ID(xch); DR(A); SM(None, IMMU(2)); -/** 0110 0001 1010 1110 xch %0, %e1%1 */ +/** 0110 0001 1010 1110 xch %0, %e1 */ ID(xch); DR(A); SM(DE, 0); -/** 0110 0001 1010 1111 xch %0, %e1%1 */ +/** 0110 0001 1010 1111 xch %0, %ea1 */ ID(xch); DR(A); SM(DE, IMMU(1)); -/** 0110 0001 1010 1100 xch %0, %e1%1 */ +/** 0110 0001 1010 1100 xch %0, %e1 */ ID(xch); DR(A); SM(HL, 0); -/** 0110 0001 1011 1001 xch %0, %e1%1 */ +/** 0110 0001 1011 1001 xch %0, %e1 */ ID(xch); DR(A); SM2(HL, B, 0); -/** 0110 0001 1010 1101 xch %0, %e1%1 */ +/** 0110 0001 1010 1101 xch %0, %ea1 */ ID(xch); DR(A); SM(HL, IMMU(1)); -/** 0110 0001 1010 1001 xch %0, %e1%1 */ +/** 0110 0001 1010 1001 xch %0, %e1 */ ID(xch); DR(A); SM2(HL, C, 0); /** 0110 0001 1000 1reg xch %0, %1 */ @@ -1203,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 */ @@ -1216,19 +1246,19 @@ rl78_decode_opcode (unsigned long pc AU, /*----------------------------------------------------------------------*/ -/** 0111 1111 xor %0, %e1%!1 */ +/** 0111 1111 xor %0, %e!1 */ ID(xor); DR(A); SM(None, IMMU(2)); Fz; -/** 0111 1101 xor %0, %e1%1 */ +/** 0111 1101 xor %0, %e1 */ ID(xor); DR(A); SM(HL, 0); Fz; -/** 0110 0001 1111 0000 xor %0, %e1%1 */ +/** 0110 0001 1111 0000 xor %0, %e1 */ ID(xor); DR(A); SM2(HL, B, 0); Fz; -/** 0111 1110 xor %0, %e1%1 */ +/** 0111 1110 xor %0, %ea1 */ ID(xor); DR(A); SM(HL, IMMU(1)); Fz; -/** 0110 0001 1111 0010 xor %0, %e1%1 */ +/** 0110 0001 1111 0010 xor %0, %e1 */ ID(xor); DR(A); SM2(HL, C, 0); Fz; /** 0111 1100 xor %0, #%1 */ @@ -1248,7 +1278,7 @@ rl78_decode_opcode (unsigned long pc AU, /*----------------------------------------------------------------------*/ -/** 0111 0001 1bit 0111 xor1 cy, %e1%1 */ +/** 0111 0001 1bit 0111 xor1 cy, %e1 */ ID(xor); DCY(); SM(HL, 0); SB(bit); /** 0111 0001 1bit 1111 xor1 cy, %1 */