diff options
author | Yoshinori Sato <ysato@users.sourceforge.jp> | 2015-12-15 09:26:56 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2015-12-15 09:26:56 +0000 |
commit | a117b0a51cd3c768453c244a3754c1b9a77e74fc (patch) | |
tree | fd573106470e4c963aa723316530c87ed5ba2a36 | |
parent | ef603459d553034a3f4daeb9c8c673f5ef3e4ed0 (diff) | |
download | gdb-a117b0a51cd3c768453c244a3754c1b9a77e74fc.zip gdb-a117b0a51cd3c768453c244a3754c1b9a77e74fc.tar.gz gdb-a117b0a51cd3c768453c244a3754c1b9a77e74fc.tar.bz2 |
Add support for RX V2 Instruction Set
binutils
* readelf.c(get_machine_flags): Add v2 flag.
gas
* config/rx-defs.h(rx_cpu_type): Add RXV2 type.
* config/tc-rx.c(cpu_type_list): New type lookup table.
(md_parse_option): Use lookup table for choose cpu.
(md_show_usage): Add rxv2 for mcpu option.
* doc/c-rx.texi: Likewise.
* config/rx-parse.y: Add v2 instructions and ACC register.
(rx_check_v2): check v2 type.
include/elf
* rx.h(E_FLAG_RX_V2): New RXv2 type.
include/opcode
* rx.h: Add new instructions.
opcoes
* rx-deocde.opc(rx_decode_opcode): Add new instructions pattern.
* rx-dis.c(register_name): Add new register.
gas/testsuite
* gas/rx/emaca.d: New.
* gas/rx/emaca.sm: New.
* gas/rx/emsba.d: New.
* gas/rx/emsba.sm: New.
* gas/rx/emula.d: New.
* gas/rx/emula.sm: New.
* gas/rx/fadd.d: Add new pattern.
* gas/rx/fadd.sm: Add new pattern.
* gas/rx/fmul.d: Add new pattern.
* gas/rx/fmul.sm: Add new pattern.
* gas/rx/fsqrt.d: New.
* gas/rx/fsqrt.sm: New.
* gas/rx/fsub.d: Add new pattern.
* gas/rx/fsub.sm: Add new pattern.
* gas/rx/ftou.d: New.
* gas/rx/ftou.sm: New.
* gas/rx/maclh.d: New.
* gas/rx/maclh.sm: New.
* gas/rx/maclo.d: Add new pattern.
* gas/rx/maclo.sm: Add new pattern.
* gas/rx/macros.inc: Add new register.
* gas/rx/movco.d: New.
* gas/rx/movco.sm: New.
* gas/rx/movli.d: New.
* gas/rx/movli.sm: New.
* gas/rx/msbhi.d: New.
* gas/rx/msbhi.sm: New.
* gas/rx/msblh.d: New.
* gas/rx/msblh.sm: New.
* gas/rx/msblo.d: New.
* gas/rx/msblo.sm: New.
* gas/rx/mullh.d: New.
* gas/rx/mullh.sm: New.
* gas/rx/mvfacgu.d: New.
* gas/rx/mvfacgu.sm: New.
* gas/rx/mvfachi.d: Add new pattern.
* gas/rx/mvfachi.sm: Add new pattern.
* gas/rx/mvfaclo.d: Add new pattern.
* gas/rx/mvfaclo.sm: Add new pattern.
* gas/rx/mvfacmi.d: Add new pattern.
* gas/rx/mvfacmi.sm: Add new pattern.
* gas/rx/mvfc.d: Add new pattern.
* gas/rx/mvtacgu.d: New.
* gas/rx/mvtacgu.sm: New.
* gas/rx/mvtc.d: Add new pattern.
* gas/rx/popc.d: Add new pattern.
* gas/rx/pushc.d: Add new pattern.
* gas/rx/racl.d: New.
* gas/rx/racl.sm: New.
* gas/rx/racw.d: Add new pattern.
* gas/rx/racw.sm: Add new pattern.
* gas/rx/rdacl.d: New.
* gas/rx/rdacl.sm: New.
* gas/rx/rdacw.d: New.
* gas/rx/rdacw.sm: New.
* gas/rx/rx.exp: Add option.
* gas/rx/stnz.d: Add new pattern.
* gas/rx/stnz.sm: Add new pattern.
* gas/rx/stz.d: Add new pattern.
* gas/rx/stz.sm: Add new pattern.
* gas/rx/utof.d: New.
* gas/rx/utof.sm: New.
92 files changed, 3800 insertions, 1368 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 5db9eac..3535d76 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,7 @@ +2015-12-14 Yoshinori Sato <ysato@users.sourceforge.jp> + + * readelf.c (get_machine_flags): Add support for RX v2 flag. + 2015-12-14 Jan Beulich <jbeulich@suse.com> * nm.c: Include coff/external.h, coff/internal.h, and diff --git a/binutils/readelf.c b/binutils/readelf.c index d5dd46f..c21ce3f 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -3376,6 +3376,8 @@ get_machine_flags (unsigned e_flags, unsigned e_machine) if (e_flags & E_FLAG_RX_SINSNS_SET) strcat (buf, e_flags & E_FLAG_RX_SINSNS_YES ? ", uses String instructions" : ", bans String instructions"); + if (e_flags & E_FLAG_RX_V2) + strcat (buf, ", V2"); break; case EM_S390: diff --git a/gas/ChangeLog b/gas/ChangeLog index 6a7cab6..2683acb 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -9,6 +9,16 @@ * config/tc-aarch64.c (vectype_to_qualifier): Calculate operand qualifier from per-type base and offet. +2015-12-14 Yoshinori Sato <ysato@users.sourceforge.jp> + + * config/rx-defs.h(rx_cpu_type): Add RXV2 type. + * config/tc-rx.c(cpu_type_list): New type lookup table. + (md_parse_option): Use lookup table for choose cpu. + (md_show_usage): Add rxv2 for mcpu option. + * doc/c-rx.texi: Likewise. + * config/rx-parse.y: Add v2 instructions and ACC register. + (rx_check_v2): check v2 type. + 2015-12-14 Jan Beulich <jbeulich@suse.com> * dw2gencfi.c (dot_cfi_label): Free "name". diff --git a/gas/config/rx-defs.h b/gas/config/rx-defs.h index 15c447d..8d075ce 100644 --- a/gas/config/rx-defs.h +++ b/gas/config/rx-defs.h @@ -38,7 +38,8 @@ enum rx_cpu_types RX600, RX610, RX200, - RX100 + RX100, + RXV2 }; extern int rx_pid_register; diff --git a/gas/config/rx-parse.y b/gas/config/rx-parse.y index 87a6c48..44a1247 100644 --- a/gas/config/rx-parse.y +++ b/gas/config/rx-parse.y @@ -101,7 +101,7 @@ static int sizemap[] = { BSIZE, WSIZE, LSIZE, WSIZE }; else rx_linkrelax_dsp (pos); \ F (displacement (v, msz), pos, 2) -#define id24(a,b2,b3) B3 (0xfb+a, b2, b3) +#define id24(a,b2,b3) B3 (0xfb + a, b2, b3) static void rx_check_float_support (void); static int rx_intop (expressionS, int, int); @@ -115,6 +115,7 @@ static int immediate (expressionS, int, int, int); static int displacement (expressionS, int); static void rtsd_immediate (expressionS); static void rx_range (expressionS, int, int); +static void rx_check_v2 (void); static int need_flag = 0; static int rx_in_brackets = 0; @@ -136,11 +137,11 @@ static int sub_op2; expressionS exp; } -%type <regno> REG FLAG CREG BCND BMCND SCCND +%type <regno> REG FLAG CREG BCND BMCND SCCND ACC %type <regno> flag bwl bw memex %type <exp> EXPR disp -%token REG FLAG CREG +%token REG FLAG CREG ACC %token EXPR UNKNOWN_OPCODE IS_OPCODE @@ -150,19 +151,22 @@ static int sub_op2; %token BCLR BCND BMCND BNOT BRA BRK BSET BSR BTST %token CLRPSW CMP %token DBT DIV DIVU -%token EDIV EDIVU EMUL EMULU -%token FADD FCMP FDIV FMUL FREIT FSUB FTOI +%token EDIV EDIVU EMACA EMSBA EMUL EMULA EMULU +%token FADD FCMP FDIV FMUL FREIT FSUB FSQRT FTOI FTOU %token INT ITOF %token JMP JSR -%token MACHI MACLO MAX MIN MOV MOVU MUL MULHI MULLO MULU MVFACHI MVFACMI MVFACLO -%token MVFC MVTACHI MVTACLO MVTC MVTIPL +%token MACHI MACLH MACLO MAX MIN MOV MOVCO MOVLI MOVU MSBHI MSBLH MSBLO MUL +%token MULHI MULLH MULLO MULU MVFACHI MVFACGU MVFACMI MVFACLO MVFC MVTACGU +%token MVTACHI MVTACLO MVTC MVTIPL %token NEG NOP NOT %token OR %token POP POPC POPM PUSH PUSHA PUSHC PUSHM -%token RACW REIT REVL REVW RMPA ROLC RORC ROTL ROTR ROUND RTE RTFI RTS RTSD +%token RACL RACW RDACL RDACW REIT REVL REVW RMPA ROLC RORC ROTL ROTR ROUND +%token RTE RTFI RTS RTSD %token SAT SATR SBB SCCND SCMPU SETPSW SHAR SHLL SHLR SMOVB SMOVF %token SMOVU SSTR STNZ STOP STZ SUB SUNTIL SWHILE %token TST +%token UTOF %token WAIT %token XCHG XOR @@ -466,7 +470,9 @@ statement : /* ---------------------------------------------------------------------- */ | PUSHC CREG - { if ($2 < 16) + { if ($2 == 13) + { rx_check_v2 (); } + if ($2 < 16) { B2 (0x7e, 0xc0); F ($2, 12, 4); } else as_bad (_("PUSHC can only push the first 16 control registers")); } @@ -474,7 +480,9 @@ statement : /* ---------------------------------------------------------------------- */ | POPC CREG - { if ($2 < 16) + { if ($2 == 13) + { rx_check_v2 (); } + if ($2 < 16) { B2 (0x7e, 0xe0); F ($2, 12, 4); } else as_bad (_("POPC can only pop the first 16 control registers")); } @@ -615,8 +623,8 @@ statement : | TST { sub_op = 12; } op_dp20_rim | XOR { sub_op = 13; } op_dp20_rim | NOT { sub_op = 14; sub_op2 = 0; } op_dp20_rr - | STZ { sub_op = 14; } op_dp20_i - | STNZ { sub_op = 15; } op_dp20_i + | STZ { sub_op = 14; sub_op2 = 0; } op_dp20_ri + | STNZ { sub_op = 15; sub_op2 = 1; } op_dp20_ri /* ---------------------------------------------------------------------- */ @@ -624,6 +632,7 @@ statement : | EMULU { sub_op = 7; } op_xchg | XCHG { sub_op = 16; } op_xchg | ITOF { sub_op = 17; } op_xchg + | UTOF { sub_op = 21; } op_xchg /* ---------------------------------------------------------------------- */ @@ -647,16 +656,21 @@ statement : /* ---------------------------------------------------------------------- */ - | FSUB { sub_op = 0; } float2_op + | FSUB { sub_op = 0; } float3_op | FCMP { sub_op = 1; } float2_op - | FADD { sub_op = 2; } float2_op - | FMUL { sub_op = 3; } float2_op + | FADD { sub_op = 2; } float3_op + | FMUL { sub_op = 3; } float3_op | FDIV { sub_op = 4; } float2_op + | FSQRT { sub_op = 8; } float2_op_ni | FTOI { sub_op = 5; } float2_op_ni + | FTOU { sub_op = 9; } float2_op_ni | ROUND { sub_op = 6; } float2_op_ni /* ---------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- */ + | SCCND DOT_L REG { id24 (1, 0xdb, 0x00); F ($1, 20, 4); F ($3, 16, 4); } | SCCND bwl disp '[' REG ']' @@ -678,27 +692,41 @@ statement : | MULHI REG ',' REG { id24 (2, 0x00, 0x00); F ($2, 16, 4); F ($4, 20, 4); } + | MULHI REG ',' REG ',' ACC + { rx_check_v2 (); id24 (2, 0x00, 0x00); F ($2, 16, 4); F ($4, 20, 4); F ($6, 12, 1); } | MULLO REG ',' REG { id24 (2, 0x01, 0x00); F ($2, 16, 4); F ($4, 20, 4); } + | MULLO REG ',' REG ',' ACC + { rx_check_v2 (); id24 (2, 0x01, 0x00); F ($2, 16, 4); F ($4, 20, 4); F ($6, 12, 1); } | MACHI REG ',' REG { id24 (2, 0x04, 0x00); F ($2, 16, 4); F ($4, 20, 4); } + | MACHI REG ',' REG ',' ACC + { rx_check_v2 (); id24 (2, 0x04, 0x00); F ($2, 16, 4); F ($4, 20, 4); F ($6, 12, 1); } | MACLO REG ',' REG { id24 (2, 0x05, 0x00); F ($2, 16, 4); F ($4, 20, 4); } + | MACLO REG ',' REG ',' ACC + { rx_check_v2 (); id24 (2, 0x05, 0x00); F ($2, 16, 4); F ($4, 20, 4); F ($6, 12, 1); } /* ---------------------------------------------------------------------- */ /* We don't have syntax for these yet. */ | MVTACHI REG { id24 (2, 0x17, 0x00); F ($2, 20, 4); } + | MVTACHI REG ',' ACC + { rx_check_v2 (); id24 (2, 0x17, 0x00); F ($2, 20, 4); F ($4, 16, 1); } | MVTACLO REG { id24 (2, 0x17, 0x10); F ($2, 20, 4); } + | MVTACLO REG ',' ACC + { rx_check_v2 (); id24 (2, 0x17, 0x10); F ($2, 20, 4); F ($4, 16, 1); } | MVFACHI REG { id24 (2, 0x1f, 0x00); F ($2, 20, 4); } + | MVFACHI { sub_op = 0; } mvfa_op | MVFACMI REG { id24 (2, 0x1f, 0x20); F ($2, 20, 4); } + | MVFACMI { sub_op = 2; } mvfa_op | MVFACLO REG { id24 (2, 0x1f, 0x10); F ($2, 20, 4); } - + | MVFACLO { sub_op = 1; } mvfa_op | RACW '#' EXPR { id24 (2, 0x18, 0x00); if (rx_uintop ($3, 4) && $3.X_add_number == 1) @@ -707,6 +735,14 @@ statement : F (1, 19, 1); else as_bad (_("RACW expects #1 or #2"));} + | RACW '#' EXPR ',' ACC + { rx_check_v2 (); id24 (2, 0x18, 0x00); F ($5, 16, 1); + if (rx_uintop ($3, 4) && $3.X_add_number == 1) + ; + else if (rx_uintop ($3, 4) && $3.X_add_number == 2) + F (1, 19, 1); + else + as_bad (_("RACW expects #1 or #2"));} /* ---------------------------------------------------------------------- */ @@ -739,13 +775,17 @@ statement : /* ---------------------------------------------------------------------- */ | MVTC REG ',' CREG - { id24 (2, 0x68, 0x00); F ($4 % 16, 20, 4); F ($4 / 16, 15, 1); + { if ($4 == 13) + rx_check_v2 (); + id24 (2, 0x68, 0x00); F ($4 % 16, 20, 4); F ($4 / 16, 15, 1); F ($2, 16, 4); } /* ---------------------------------------------------------------------- */ | MVFC CREG ',' REG - { id24 (2, 0x6a, 0); F ($2, 15, 5); F ($4, 20, 4); } + { if ($2 == 13) + rx_check_v2 (); + id24 (2, 0x6a, 0); F ($2, 15, 5); F ($4, 20, 4); } /* ---------------------------------------------------------------------- */ @@ -757,7 +797,9 @@ statement : /* ---------------------------------------------------------------------- */ | MVTC '#' EXPR ',' CREG - { id24 (2, 0x73, 0x00); F ($5, 19, 5); IMM ($3, 12); } + { if ($5 == 13) + rx_check_v2 (); + id24 (2, 0x73, 0x00); F ($5, 19, 5); IMM ($3, 12); } /* ---------------------------------------------------------------------- */ @@ -797,6 +839,62 @@ statement : /* ---------------------------------------------------------------------- */ + | MOVCO REG ',' '[' REG ']' + { rx_check_v2 (); B3 (0xfd, 0x27, 0x00); F ($5, 16, 4); F ($2, 20, 4); } + +/* ---------------------------------------------------------------------- */ + + | MOVLI '[' REG ']' ',' REG + { rx_check_v2 (); B3 (0xfd, 0x2f, 0x00); F ($3, 16, 4); F ($6, 20, 4); } + +/* ---------------------------------------------------------------------- */ + + | EMACA REG ',' REG ',' ACC + { rx_check_v2 (); id24 (2, 0x07, 0x00); F ($2, 16, 4); F ($4, 20, 4); F ($6, 12, 1); } + | EMSBA REG ',' REG ',' ACC + { rx_check_v2 (); id24 (2, 0x47, 0x00); F ($2, 16, 4); F ($4, 20, 4); F ($6, 12, 1); } + | EMULA REG ',' REG ',' ACC + { rx_check_v2 (); id24 (2, 0x03, 0x00); F ($2, 16, 4); F ($4, 20, 4); F ($6, 12, 1); } + | MACLH REG ',' REG ',' ACC + { rx_check_v2 (); id24 (2, 0x06, 0x00); F ($2, 16, 4); F ($4, 20, 4); F ($6, 12, 1); } + | MSBHI REG ',' REG ',' ACC + { rx_check_v2 (); id24 (2, 0x44, 0x00); F ($2, 16, 4); F ($4, 20, 4); F ($6, 12, 1); } + | MSBLH REG ',' REG ',' ACC + { rx_check_v2 (); id24 (2, 0x46, 0x00); F ($2, 16, 4); F ($4, 20, 4); F ($6, 12, 1); } + | MSBLO REG ',' REG ',' ACC + { rx_check_v2 (); id24 (2, 0x45, 0x00); F ($2, 16, 4); F ($4, 20, 4); F ($6, 12, 1); } + | MULLH REG ',' REG ',' ACC + { rx_check_v2 (); id24 (2, 0x02, 0x00); F ($2, 16, 4); F ($4, 20, 4); F ($6, 12, 1); } + | MVFACGU { sub_op = 3; } mvfa_op + | MVTACGU REG ',' ACC + { rx_check_v2 (); id24 (2, 0x17, 0x30); F ($4, 16, 1); F ($2, 20, 4); } + | RACL '#' EXPR ',' ACC + { rx_check_v2 (); id24 (2, 0x19, 0x00); F ($5, 16, 1); + if (rx_uintop ($3, 4) && $3.X_add_number == 1) + ; + else if (rx_uintop ($3, 4) && $3.X_add_number == 2) + F (1, 19, 1); + else + as_bad (_("RACL expects #1 or #2"));} + | RDACL '#' EXPR ',' ACC + { rx_check_v2 (); id24 (2, 0x19, 0x40); F ($5, 16, 1); + if (rx_uintop ($3, 4) && $3.X_add_number == 1) + ; + else if (rx_uintop ($3, 4) && $3.X_add_number == 2) + F (1, 19, 1); + else + as_bad (_("RDACL expects #1 or #2"));} + | RDACW '#' EXPR ',' ACC + { rx_check_v2 (); id24 (2, 0x18, 0x40); F ($5, 16, 1); + if (rx_uintop ($3, 4) && $3.X_add_number == 1) + ; + else if (rx_uintop ($3, 4) && $3.X_add_number == 2) + F (1, 19, 1); + else + as_bad (_("RDACW expects #1 or #2"));} + +/* ---------------------------------------------------------------------- */ + ; /* ====================================================================== */ @@ -856,7 +954,18 @@ op_dp20_rr { B2 (0x7e, sub_op2 << 4); F ($1, 12, 4); } ; -/* xchg, itof, emul, emulu */ +op_dp20_r + : REG ',' REG + { id24 (1, 0x4b + (sub_op2<<2), 0x00); F ($1, 16, 4); F ($3, 20, 4); } + ; + +op_dp20_ri + : { rx_check_v2 (); } + op_dp20_r + | op_dp20_i + ; + +/* xchg, utof, itof, emul, emulu */ op_xchg : REG ',' REG { id24 (1, 0x03 + (sub_op<<2), 0); F ($1, 16, 4); F ($3, 20, 4); } @@ -880,6 +989,16 @@ op_shift | op_shift_rot ; +float3_op + : '#' EXPR ',' REG + { rx_check_float_support (); id24 (2, 0x72, sub_op << 4); F ($4, 20, 4); O4 ($2); } + | REG ',' REG + { rx_check_float_support (); id24 (1, 0x83 + (sub_op << 2), 0); F ($1, 16, 4); F ($3, 20, 4); } + | disp '[' REG ']' opt_l ',' REG + { rx_check_float_support (); id24 (1, 0x80 + (sub_op << 2), 0); F ($3, 16, 4); F ($7, 20, 4); DSP ($1, 14, LSIZE); } + | REG ',' REG ',' REG + { rx_check_v2 (); id24 (4, 0x80 + (sub_op << 4), 0 ); F ($1, 16, 4); F ($3, 20, 4); F ($5, 12, 4); } + ; float2_op : { rx_check_float_support (); } @@ -897,6 +1016,29 @@ float2_op_ni { id24 (1, 0x80 + (sub_op << 2), 0); F ($4, 16, 4); F ($8, 20, 4); DSP ($2, 14, LSIZE); } ; +mvfa_op + : { rx_check_v2 (); } + '#' EXPR ',' ACC ',' REG + { id24 (2, 0x1e, sub_op << 4); F ($7, 20, 4); F ($5, 16, 1); + if (rx_uintop ($3, 4)) + { + switch (exp_val ($3)) + { + case 0: + F (1, 15, 1); + break; + case 1: + F (1, 15, 1); + F (1, 17, 1); + break; + case 2: + break; + default: + as_bad (_("IMM expects #0 to #2"));} + } else + as_bad (_("IMM expects #0 to #2"));} + ; + /* ====================================================================== */ disp : { $$ = zero_expr (); } @@ -976,6 +1118,7 @@ token_table[] = { "isp", CREG, 10 }, { "fintv", CREG, 11 }, { "intb", CREG, 12 }, + { "extb", CREG, 13 }, { "pbp", CREG, 16 }, { "pben", CREG, 17 }, @@ -998,6 +1141,9 @@ token_table[] = { "i", FLAG, 8 }, { "u", FLAG, 9 }, + { "a0", ACC, 0 }, + { "a1", ACC, 1 }, + #define OPC(x) { #x, x, IS_OPCODE } OPC(ABS), OPC(ADC), @@ -1019,35 +1165,49 @@ token_table[] = OPC(DIVU), OPC(EDIV), OPC(EDIVU), + OPC(EMACA), + OPC(EMSBA), OPC(EMUL), + OPC(EMULA), OPC(EMULU), OPC(FADD), OPC(FCMP), OPC(FDIV), OPC(FMUL), OPC(FREIT), + OPC(FSQRT), + OPC(FTOU), OPC(FSUB), OPC(FTOI), OPC(INT), OPC(ITOF), OPC(JMP), OPC(JSR), + OPC(MVFACGU), OPC(MVFACHI), OPC(MVFACMI), OPC(MVFACLO), OPC(MVFC), + OPC(MVTACGU), OPC(MVTACHI), OPC(MVTACLO), OPC(MVTC), OPC(MVTIPL), OPC(MACHI), OPC(MACLO), + OPC(MACLH), OPC(MAX), OPC(MIN), OPC(MOV), + OPC(MOVCO), + OPC(MOVLI), OPC(MOVU), + OPC(MSBHI), + OPC(MSBLH), + OPC(MSBLO), OPC(MUL), OPC(MULHI), + OPC(MULLH), OPC(MULLO), OPC(MULU), OPC(NEG), @@ -1061,7 +1221,10 @@ token_table[] = OPC(PUSHA), OPC(PUSHC), OPC(PUSHM), + OPC(RACL), OPC(RACW), + OPC(RDACL), + OPC(RDACW), OPC(REIT), OPC(REVL), OPC(REVW), @@ -1095,6 +1258,7 @@ token_table[] = OPC(SUNTIL), OPC(SWHILE), OPC(TST), + OPC(UTOF), OPC(WAIT), OPC(XCHG), OPC(XOR), @@ -1643,3 +1807,10 @@ rx_check_float_support (void) if (rx_cpu == RX100 || rx_cpu == RX200) rx_error (_("target CPU type does not support floating point instructions")); } + +static void +rx_check_v2 (void) +{ + if (rx_cpu < RXV2) + rx_error (_("target CPU type does not support v2 instructions")); +} diff --git a/gas/config/tc-rx.c b/gas/config/tc-rx.c index 82e94a7..e18e034 100644 --- a/gas/config/tc-rx.c +++ b/gas/config/tc-rx.c @@ -106,6 +106,21 @@ struct option md_longopts[] = }; size_t md_longopts_size = sizeof (md_longopts); +struct cpu_type +{ + char *cpu_name; + int type; +}; + +struct cpu_type cpu_type_list[] = +{ + {"rx100",RX100}, + {"rx200",RX200}, + {"rx600",RX600}, + {"rx610",RX610}, + {"rxv2",RXV2} +}; + int md_parse_option (int c ATTRIBUTE_UNUSED, char * arg ATTRIBUTE_UNUSED) { @@ -161,25 +176,27 @@ md_parse_option (int c ATTRIBUTE_UNUSED, char * arg ATTRIBUTE_UNUSED) return 1; case OPTION_CPU: - if (strcasecmp (arg, "rx100") == 0) - rx_cpu = RX100; - else if (strcasecmp (arg, "rx200") == 0) - rx_cpu = RX200; - else if (strcasecmp (arg, "rx600") == 0) - rx_cpu = RX600; - else if (strcasecmp (arg, "rx610") == 0) - rx_cpu = RX610; - else - { - as_warn (_("unrecognised RX CPU type %s"), arg); - break; - } - return 1; + { + unsigned int i; + for (i = 0; i < ARRAY_SIZE (cpu_type_list); i++) + { + if (strcasecmp (arg, cpu_type_list[i].cpu_name) == 0) + { + rx_cpu = cpu_type_list[i].type; + if (rx_cpu == RXV2) + elf_flags |= E_FLAG_RX_V2; + return 1; + } + } + as_warn (_("unrecognised RX CPU type %s"), arg); + break; + } case OPTION_DISALLOW_STRING_INSNS: elf_flags |= E_FLAG_RX_SINSNS_SET | E_FLAG_RX_SINSNS_NO; return 1; } + return 0; } @@ -197,7 +214,7 @@ md_show_usage (FILE * stream) fprintf (stream, _(" --mrelax\n")); fprintf (stream, _(" --mpid\n")); fprintf (stream, _(" --mint-register=<value>\n")); - fprintf (stream, _(" --mcpu=<rx100|rx200|rx600|rx610>\n")); + fprintf (stream, _(" --mcpu=<rx100|rx200|rx600|rx610|rxv2>\n")); fprintf (stream, _(" --mno-allow-string-insns")); } diff --git a/gas/doc/c-rx.texi b/gas/doc/c-rx.texi index 3fe2dd6..d2861eb 100644 --- a/gas/doc/c-rx.texi +++ b/gas/doc/c-rx.texi @@ -108,9 +108,10 @@ alignments. This option is the default. @cindex @samp{-mcpu=} @item -mcpu=@var{name} This option tells the assembler the target CPU type. Currently the -@code{rx200}, @code{rx600} and @code{rx610} are recognised as valid -cpu names. Attempting to assemble an instruction not supported by the -indicated cpu type will result in an error message being generated. +@code{rx100}, @code{rx200}, @code{rx600}, @code{rx610} and @code{rxv2} +are recognised as valid cpu names. Attempting to assemble an instruction +not supported by the indicated cpu type will result in an error message +being generated. @cindex @samp{-mno-allow-string-insns} @item -mno-allow-string-insns diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 2259d86..587e583 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -68,6 +68,71 @@ * gas/aarch64/advsimd-fp16.d: New. * gas/aarch64/advsimd-fp16.s: New. +2015-12-14 Yoshinori Sato <ysato@users.sourceforge.jp> + + * gas/rx/emaca.d: New. + * gas/rx/emaca.sm: New. + * gas/rx/emsba.d: New. + * gas/rx/emsba.sm: New. + * gas/rx/emula.d: New. + * gas/rx/emula.sm: New. + * gas/rx/fadd.d: Add new pattern. + * gas/rx/fadd.sm: Add new pattern. + * gas/rx/fmul.d: Add new pattern. + * gas/rx/fmul.sm: Add new pattern. + * gas/rx/fsqrt.d: New. + * gas/rx/fsqrt.sm: New. + * gas/rx/fsub.d: Add new pattern. + * gas/rx/fsub.sm: Add new pattern. + * gas/rx/ftou.d: New. + * gas/rx/ftou.sm: New. + * gas/rx/maclh.d: New. + * gas/rx/maclh.sm: New. + * gas/rx/maclo.d: Add new pattern. + * gas/rx/maclo.sm: Add new pattern. + * gas/rx/macros.inc: Add new register. + * gas/rx/movco.d: New. + * gas/rx/movco.sm: New. + * gas/rx/movli.d: New. + * gas/rx/movli.sm: New. + * gas/rx/msbhi.d: New. + * gas/rx/msbhi.sm: New. + * gas/rx/msblh.d: New. + * gas/rx/msblh.sm: New. + * gas/rx/msblo.d: New. + * gas/rx/msblo.sm: New. + * gas/rx/mullh.d: New. + * gas/rx/mullh.sm: New. + * gas/rx/mvfacgu.d: New. + * gas/rx/mvfacgu.sm: New. + * gas/rx/mvfachi.d: Add new pattern. + * gas/rx/mvfachi.sm: Add new pattern. + * gas/rx/mvfaclo.d: Add new pattern. + * gas/rx/mvfaclo.sm: Add new pattern. + * gas/rx/mvfacmi.d: Add new pattern. + * gas/rx/mvfacmi.sm: Add new pattern. + * gas/rx/mvfc.d: Add new pattern. + * gas/rx/mvtacgu.d: New. + * gas/rx/mvtacgu.sm: New. + * gas/rx/mvtc.d: Add new pattern. + * gas/rx/popc.d: Add new pattern. + * gas/rx/pushc.d: Add new pattern. + * gas/rx/racl.d: New. + * gas/rx/racl.sm: New. + * gas/rx/racw.d: Add new pattern. + * gas/rx/racw.sm: Add new pattern. + * gas/rx/rdacl.d: New. + * gas/rx/rdacl.sm: New. + * gas/rx/rdacw.d: New. + * gas/rx/rdacw.sm: New. + * gas/rx/rx.exp: Add option. + * gas/rx/stnz.d: Add new pattern. + * gas/rx/stnz.sm: Add new pattern. + * gas/rx/stz.d: Add new pattern. + * gas/rx/stz.sm: Add new pattern. + * gas/rx/utof.d: New. + * gas/rx/utof.sm: New. + 2015-12-12 Alan Modra <amodra@gmail.com> * gas/sh/tlsd.s: Use .tdata not .tbss. diff --git a/gas/testsuite/gas/rx/emaca.d b/gas/testsuite/gas/rx/emaca.d new file mode 100644 index 0000000..5cb5dea --- /dev/null +++ b/gas/testsuite/gas/rx/emaca.d @@ -0,0 +1,16 @@ +#objdump: -dr + +dump\.o: file format .* + + +Disassembly of section \.text: + +00000000 <\.text>: + 0: fd 07 00 emaca r0, r0, a0 + 3: fd 07 0f emaca r0, r15, a0 + 6: fd 07 f0 emaca r15, r0, a0 + 9: fd 07 ff emaca r15, r15, a0 + c: fd 0f 00 emaca r0, r0, a1 + f: fd 0f 0f emaca r0, r15, a1 + 12: fd 0f f0 emaca r15, r0, a1 + 15: fd 0f ff emaca r15, r15, a1 diff --git a/gas/testsuite/gas/rx/emaca.sm b/gas/testsuite/gas/rx/emaca.sm new file mode 100644 index 0000000..3740676 --- /dev/null +++ b/gas/testsuite/gas/rx/emaca.sm @@ -0,0 +1,2 @@ + emaca {reg},{reg},a0 + emaca {reg},{reg},a1 diff --git a/gas/testsuite/gas/rx/emsba.d b/gas/testsuite/gas/rx/emsba.d new file mode 100644 index 0000000..1910107 --- /dev/null +++ b/gas/testsuite/gas/rx/emsba.d @@ -0,0 +1,16 @@ +#objdump: -dr + +dump\.o: file format .* + + +Disassembly of section \.text: + +00000000 <\.text>: + 0: fd 47 00 emsba r0, r0, a0 + 3: fd 47 0f emsba r0, r15, a0 + 6: fd 47 f0 emsba r15, r0, a0 + 9: fd 47 ff emsba r15, r15, a0 + c: fd 4f 00 emsba r0, r0, a1 + f: fd 4f 0f emsba r0, r15, a1 + 12: fd 4f f0 emsba r15, r0, a1 + 15: fd 4f ff emsba r15, r15, a1 diff --git a/gas/testsuite/gas/rx/emsba.sm b/gas/testsuite/gas/rx/emsba.sm new file mode 100644 index 0000000..70938fa --- /dev/null +++ b/gas/testsuite/gas/rx/emsba.sm @@ -0,0 +1,2 @@ + emsba {reg},{reg},a0 + emsba {reg},{reg},a1 diff --git a/gas/testsuite/gas/rx/emula.d b/gas/testsuite/gas/rx/emula.d new file mode 100644 index 0000000..9c689db --- /dev/null +++ b/gas/testsuite/gas/rx/emula.d @@ -0,0 +1,16 @@ +#objdump: -dr + +dump\.o: file format .* + + +Disassembly of section \.text: + +00000000 <\.text>: + 0: fd 03 00 emula r0, r0, a0 + 3: fd 03 0f emula r0, r15, a0 + 6: fd 03 f0 emula r15, r0, a0 + 9: fd 03 ff emula r15, r15, a0 + c: fd 0b 00 emula r0, r0, a1 + f: fd 0b 0f emula r0, r15, a1 + 12: fd 0b f0 emula r15, r0, a1 + 15: fd 0b ff emula r15, r15, a1 diff --git a/gas/testsuite/gas/rx/emula.sm b/gas/testsuite/gas/rx/emula.sm new file mode 100644 index 0000000..95c7767 --- /dev/null +++ b/gas/testsuite/gas/rx/emula.sm @@ -0,0 +1,2 @@ + emula {reg},{reg},a0 + emula {reg},{reg},a1 diff --git a/gas/testsuite/gas/rx/fadd.d b/gas/testsuite/gas/rx/fadd.d index 406052b..718193c 100644 --- a/gas/testsuite/gas/rx/fadd.d +++ b/gas/testsuite/gas/rx/fadd.d @@ -26,3 +26,11 @@ Disassembly of section \.text: 49: fc 8a 0f ff 3f fadd 65532\[r0\]\.l, r15 4e: fc 8a f0 ff 3f fadd 65532\[r15\]\.l, r0 53: fc 8a ff ff 3f fadd 65532\[r15\]\.l, r15 + 58: ff a0 00 fadd r0, r0, r0 + 5b: ff af 00 fadd r0, r0, r15 + 5e: ff a0 0f fadd r0, r15, r0 + 61: ff af 0f fadd r0, r15, r15 + 64: ff a0 f0 fadd r15, r0, r0 + 67: ff af f0 fadd r15, r0, r15 + 6a: ff a0 ff fadd r15, r15, r0 + 6d: ff af ff fadd r15, r15, r15 diff --git a/gas/testsuite/gas/rx/fadd.sm b/gas/testsuite/gas/rx/fadd.sm index 94021af..34cb78e 100644 --- a/gas/testsuite/gas/rx/fadd.sm +++ b/gas/testsuite/gas/rx/fadd.sm @@ -1,3 +1,4 @@ fadd #{imm32},{reg} fadd {reg},{reg} fadd {mem}.L,{reg} + fadd {reg},{reg},{reg} diff --git a/gas/testsuite/gas/rx/fmul.d b/gas/testsuite/gas/rx/fmul.d index 7fec0af..2685e78 100644 --- a/gas/testsuite/gas/rx/fmul.d +++ b/gas/testsuite/gas/rx/fmul.d @@ -26,3 +26,11 @@ Disassembly of section \.text: 49: fc 8e 0f ff 3f fmul 65532\[r0\]\.l, r15 4e: fc 8e f0 ff 3f fmul 65532\[r15\]\.l, r0 53: fc 8e ff ff 3f fmul 65532\[r15\]\.l, r15 + 58: ff b0 00 fmul r0, r0, r0 + 5b: ff bf 00 fmul r0, r0, r15 + 5e: ff b0 0f fmul r0, r15, r0 + 61: ff bf 0f fmul r0, r15, r15 + 64: ff b0 f0 fmul r15, r0, r0 + 67: ff bf f0 fmul r15, r0, r15 + 6a: ff b0 ff fmul r15, r15, r0 + 6d: ff bf ff fmul r15, r15, r15 diff --git a/gas/testsuite/gas/rx/fmul.sm b/gas/testsuite/gas/rx/fmul.sm index e68f24f..37408e4 100644 --- a/gas/testsuite/gas/rx/fmul.sm +++ b/gas/testsuite/gas/rx/fmul.sm @@ -1,3 +1,4 @@ fmul #{imm32},{reg} fmul {reg},{reg} fmul {mem}.L,{reg} + fmul {reg},{reg},{reg} diff --git a/gas/testsuite/gas/rx/fsqrt.d b/gas/testsuite/gas/rx/fsqrt.d new file mode 100644 index 0000000..31b84dc --- /dev/null +++ b/gas/testsuite/gas/rx/fsqrt.d @@ -0,0 +1,24 @@ +#objdump: -dr + +dump\.o: file format .* + + +Disassembly of section \.text: + +00000000 <\.text>: + 0: fc a3 00 fsqrt r0, r0 + 3: fc a3 0f fsqrt r0, r15 + 6: fc a3 f0 fsqrt r15, r0 + 9: fc a3 ff fsqrt r15, r15 + c: fc a0 00 fsqrt \[r0\]\.l, r0 + f: fc a0 0f fsqrt \[r0\]\.l, r15 + 12: fc a0 f0 fsqrt \[r15\]\.l, r0 + 15: fc a0 ff fsqrt \[r15\]\.l, r15 + 18: fc a1 00 3f fsqrt 252\[r0\]\.l, r0 + 1c: fc a1 0f 3f fsqrt 252\[r0\]\.l, r15 + 20: fc a1 f0 3f fsqrt 252\[r15\]\.l, r0 + 24: fc a1 ff 3f fsqrt 252\[r15\]\.l, r15 + 28: fc a2 00 ff 3f fsqrt 65532\[r0\]\.l, r0 + 2d: fc a2 0f ff 3f fsqrt 65532\[r0\]\.l, r15 + 32: fc a2 f0 ff 3f fsqrt 65532\[r15\]\.l, r0 + 37: fc a2 ff ff 3f fsqrt 65532\[r15\]\.l, r15 diff --git a/gas/testsuite/gas/rx/fsqrt.sm b/gas/testsuite/gas/rx/fsqrt.sm new file mode 100644 index 0000000..b187839 --- /dev/null +++ b/gas/testsuite/gas/rx/fsqrt.sm @@ -0,0 +1,2 @@ + fsqrt {reg},{reg} + fsqrt {mem}.L,{reg} diff --git a/gas/testsuite/gas/rx/fsub.d b/gas/testsuite/gas/rx/fsub.d index 5d26e5a..e36ddb6 100644 --- a/gas/testsuite/gas/rx/fsub.d +++ b/gas/testsuite/gas/rx/fsub.d @@ -26,3 +26,11 @@ Disassembly of section \.text: 49: fc 82 0f ff 3f fsub 65532\[r0\]\.l, r15 4e: fc 82 f0 ff 3f fsub 65532\[r15\]\.l, r0 53: fc 82 ff ff 3f fsub 65532\[r15\]\.l, r15 + 58: ff 80 00 fsub r0, r0, r0 + 5b: ff 8f 00 fsub r0, r0, r15 + 5e: ff 80 0f fsub r0, r15, r0 + 61: ff 8f 0f fsub r0, r15, r15 + 64: ff 80 f0 fsub r15, r0, r0 + 67: ff 8f f0 fsub r15, r0, r15 + 6a: ff 80 ff fsub r15, r15, r0 + 6d: ff 8f ff fsub r15, r15, r15 diff --git a/gas/testsuite/gas/rx/fsub.sm b/gas/testsuite/gas/rx/fsub.sm index 64b93c9..5dfe022 100644 --- a/gas/testsuite/gas/rx/fsub.sm +++ b/gas/testsuite/gas/rx/fsub.sm @@ -1,3 +1,4 @@ fsub #{imm32},{reg} fsub {reg},{reg} fsub {mem}.L,{reg} + fsub {reg},{reg},{reg} diff --git a/gas/testsuite/gas/rx/ftou.d b/gas/testsuite/gas/rx/ftou.d new file mode 100644 index 0000000..84a285b --- /dev/null +++ b/gas/testsuite/gas/rx/ftou.d @@ -0,0 +1,24 @@ +#objdump: -dr + +dump\.o: file format .* + + +Disassembly of section \.text: + +00000000 <\.text>: + 0: fc a7 00 ftou r0, r0 + 3: fc a7 0f ftou r0, r15 + 6: fc a7 f0 ftou r15, r0 + 9: fc a7 ff ftou r15, r15 + c: fc a4 00 ftou \[r0\]\.l, r0 + f: fc a4 0f ftou \[r0\]\.l, r15 + 12: fc a4 f0 ftou \[r15\]\.l, r0 + 15: fc a4 ff ftou \[r15\]\.l, r15 + 18: fc a5 00 3f ftou 252\[r0\]\.l, r0 + 1c: fc a5 0f 3f ftou 252\[r0\]\.l, r15 + 20: fc a5 f0 3f ftou 252\[r15\]\.l, r0 + 24: fc a5 ff 3f ftou 252\[r15\]\.l, r15 + 28: fc a6 00 ff 3f ftou 65532\[r0\]\.l, r0 + 2d: fc a6 0f ff 3f ftou 65532\[r0\]\.l, r15 + 32: fc a6 f0 ff 3f ftou 65532\[r15\]\.l, r0 + 37: fc a6 ff ff 3f ftou 65532\[r15\]\.l, r15 diff --git a/gas/testsuite/gas/rx/ftou.sm b/gas/testsuite/gas/rx/ftou.sm new file mode 100644 index 0000000..95fc1fe --- /dev/null +++ b/gas/testsuite/gas/rx/ftou.sm @@ -0,0 +1,2 @@ + ftou {reg},{reg} + ftou {mem}.L,{reg} diff --git a/gas/testsuite/gas/rx/gprel.d b/gas/testsuite/gas/rx/gprel.d index 6e7c887..ea1d3e9 100644 --- a/gas/testsuite/gas/rx/gprel.d +++ b/gas/testsuite/gas/rx/gprel.d @@ -3,9 +3,9 @@ dump\.o: file format .* -Disassembly of section .text: +Disassembly of section .*: -00000000 <_start>: +00000000 <.*>: 0: ce f1 04 00 mov\.b 4\[r15\], r1 2: R_RX_SYM _foo 2: R_RX_SYM __gp @@ -16,7 +16,7 @@ Disassembly of section .text: 6: R_RX_SYM __gp 6: R_RX_OPsub __gp 6: R_RX_ABS16U __gp - 8: ce f1 00 00 mov\.b \[r15\], r1 + 8: ce f1 00 00 mov\.b 0\[r15\], r1 a: R_RX_SYM _grill a: R_RX_SYM __gp a: R_RX_OPsub __gp @@ -31,7 +31,7 @@ Disassembly of section .text: 12: R_RX_SYM __gp 12: R_RX_OPsub __gp 12: R_RX_ABS16UW __gp - 14: de f1 00 00 mov\.w \[r15\], r1 + 14: de f1 00 00 mov\.w 0\[r15\], r1 16: R_RX_SYM _grill 16: R_RX_SYM __gp 16: R_RX_OPsub __gp @@ -46,7 +46,7 @@ Disassembly of section .text: 1e: R_RX_SYM __gp 1e: R_RX_OPsub __gp 1e: R_RX_ABS16UL __gp - 20: ee f1 00 00 mov\.l \[r15\], r1 + 20: ee f1 00 00 mov\.l 0\[r15\], r1 22: R_RX_SYM _grill 22: R_RX_SYM __gp 22: R_RX_OPsub __gp diff --git a/gas/testsuite/gas/rx/machi.d b/gas/testsuite/gas/rx/machi.d index 0800696..9be594d 100644 --- a/gas/testsuite/gas/rx/machi.d +++ b/gas/testsuite/gas/rx/machi.d @@ -6,7 +6,15 @@ dump\.o: file format .* Disassembly of section \.text: 00000000 <\.text>: - 0: fd 04 00 machi r0, r0 - 3: fd 04 0f machi r0, r15 - 6: fd 04 f0 machi r15, r0 - 9: fd 04 ff machi r15, r15 + 0: fd 04 00 machi r0, r0, a0 + 3: fd 04 0f machi r0, r15, a0 + 6: fd 04 f0 machi r15, r0, a0 + 9: fd 04 ff machi r15, r15, a0 + c: fd 04 00 machi r0, r0, a0 + f: fd 04 0f machi r0, r15, a0 + 12: fd 04 f0 machi r15, r0, a0 + 15: fd 04 ff machi r15, r15, a0 + 18: fd 0c 00 machi r0, r0, a1 + 1b: fd 0c 0f machi r0, r15, a1 + 1e: fd 0c f0 machi r15, r0, a1 + 21: fd 0c ff machi r15, r15, a1 diff --git a/gas/testsuite/gas/rx/machi.sm b/gas/testsuite/gas/rx/machi.sm index f3651d0..ed2a456 100644 --- a/gas/testsuite/gas/rx/machi.sm +++ b/gas/testsuite/gas/rx/machi.sm @@ -1 +1,3 @@ machi {reg},{reg} + machi {reg},{reg},a0 + machi {reg},{reg},a1 diff --git a/gas/testsuite/gas/rx/maclh.d b/gas/testsuite/gas/rx/maclh.d new file mode 100644 index 0000000..90fc4cd --- /dev/null +++ b/gas/testsuite/gas/rx/maclh.d @@ -0,0 +1,16 @@ +#objdump: -dr + +dump\.o: file format .* + + +Disassembly of section \.text: + +00000000 <\.text>: + 0: fd 06 00 maclh r0, r0, a0 + 3: fd 06 0f maclh r0, r15, a0 + 6: fd 06 f0 maclh r15, r0, a0 + 9: fd 06 ff maclh r15, r15, a0 + c: fd 0e 00 maclh r0, r0, a1 + f: fd 0e 0f maclh r0, r15, a1 + 12: fd 0e f0 maclh r15, r0, a1 + 15: fd 0e ff maclh r15, r15, a1 diff --git a/gas/testsuite/gas/rx/maclh.sm b/gas/testsuite/gas/rx/maclh.sm new file mode 100644 index 0000000..7322b2a --- /dev/null +++ b/gas/testsuite/gas/rx/maclh.sm @@ -0,0 +1,2 @@ + maclh {reg},{reg},a0 + maclh {reg},{reg},a1 diff --git a/gas/testsuite/gas/rx/maclo.d b/gas/testsuite/gas/rx/maclo.d index 41ee1f2..abf299f 100644 --- a/gas/testsuite/gas/rx/maclo.d +++ b/gas/testsuite/gas/rx/maclo.d @@ -6,7 +6,15 @@ dump\.o: file format .* Disassembly of section \.text: 00000000 <\.text>: - 0: fd 05 00 maclo r0, r0 - 3: fd 05 0f maclo r0, r15 - 6: fd 05 f0 maclo r15, r0 - 9: fd 05 ff maclo r15, r15 + 0: fd 05 00 maclo r0, r0, a0 + 3: fd 05 0f maclo r0, r15, a0 + 6: fd 05 f0 maclo r15, r0, a0 + 9: fd 05 ff maclo r15, r15, a0 + c: fd 05 00 maclo r0, r0, a0 + f: fd 05 0f maclo r0, r15, a0 + 12: fd 05 f0 maclo r15, r0, a0 + 15: fd 05 ff maclo r15, r15, a0 + 18: fd 0d 00 maclo r0, r0, a1 + 1b: fd 0d 0f maclo r0, r15, a1 + 1e: fd 0d f0 maclo r15, r0, a1 + 21: fd 0d ff maclo r15, r15, a1 diff --git a/gas/testsuite/gas/rx/maclo.sm b/gas/testsuite/gas/rx/maclo.sm index 84a019c..7ba11ef 100644 --- a/gas/testsuite/gas/rx/maclo.sm +++ b/gas/testsuite/gas/rx/maclo.sm @@ -1 +1,3 @@ maclo {reg},{reg} + maclo {reg},{reg},a0 + maclo {reg},{reg},a1 diff --git a/gas/testsuite/gas/rx/macros.inc b/gas/testsuite/gas/rx/macros.inc index 60921e6..02d2fac 100644 --- a/gas/testsuite/gas/rx/macros.inc +++ b/gas/testsuite/gas/rx/macros.inc @@ -4,7 +4,7 @@ macro reg2 {r0;r14} macro reg7 {r0;r7} macro regPlo {r1;r7} macro regPhi {r8;r14} -macro creg {psw;fpsw;usp;isp;intb;bpsw;bpc;fintv} +macro creg {psw;fpsw;usp;isp;intb;bpsw;bpc;fintv;extb} macro pswf {U;I;O;S;Z;C} macro simm8 {-128;127} diff --git a/gas/testsuite/gas/rx/max.d b/gas/testsuite/gas/rx/max.d index 229a30d..e7076fd 100644 --- a/gas/testsuite/gas/rx/max.d +++ b/gas/testsuite/gas/rx/max.d @@ -3,9 +3,9 @@ dump\.o: file format .* -Disassembly of section \..*: +Disassembly of section .*: -00000000 <\..*>: +00000000 <.*>: 0: fd 74 40 80 max #-128, r0 4: fd 74 4f 80 max #-128, r15 8: fd 74 40 7f max #127, r0 diff --git a/gas/testsuite/gas/rx/mov.d b/gas/testsuite/gas/rx/mov.d index a96ba90..1df5321 100644 --- a/gas/testsuite/gas/rx/mov.d +++ b/gas/testsuite/gas/rx/mov.d @@ -5,7 +5,7 @@ dump\.o: file format .* Disassembly of section .*: -00000000 <\..*>: +00000000 <.*>: [0-9a-f]+: c3 00[ ]+mov\.b r0, \[r0\] [0-9a-f]+: c3 70[ ]+mov\.b r0, \[r7\] [0-9a-f]+: c3 07[ ]+mov\.b r7, \[r0\] diff --git a/gas/testsuite/gas/rx/movco.d b/gas/testsuite/gas/rx/movco.d new file mode 100644 index 0000000..2041201 --- /dev/null +++ b/gas/testsuite/gas/rx/movco.d @@ -0,0 +1,12 @@ +#objdump: -dr + +dump\.o: file format .* + + +Disassembly of section \.text: + +00000000 <\.text>: + 0: fd 27 00 movco r0, \[r0\] + 3: fd 27 f0 movco r0, \[r15\] + 6: fd 27 0f movco r15, \[r0\] + 9: fd 27 ff movco r15, \[r15\] diff --git a/gas/testsuite/gas/rx/movco.sm b/gas/testsuite/gas/rx/movco.sm new file mode 100644 index 0000000..686f075 --- /dev/null +++ b/gas/testsuite/gas/rx/movco.sm @@ -0,0 +1 @@ + movco {reg},[{reg}] diff --git a/gas/testsuite/gas/rx/movli.d b/gas/testsuite/gas/rx/movli.d new file mode 100644 index 0000000..5799d63 --- /dev/null +++ b/gas/testsuite/gas/rx/movli.d @@ -0,0 +1,12 @@ +#objdump: -dr + +dump\.o: file format .* + + +Disassembly of section \.text: + +00000000 <\.text>: + 0: fd 2f 00 movli \[r0\], r0 + 3: fd 2f 0f movli \[r0\], r15 + 6: fd 2f f0 movli \[r15\], r0 + 9: fd 2f ff movli \[r15\], r15 diff --git a/gas/testsuite/gas/rx/movli.sm b/gas/testsuite/gas/rx/movli.sm new file mode 100644 index 0000000..76a0d15 --- /dev/null +++ b/gas/testsuite/gas/rx/movli.sm @@ -0,0 +1 @@ + movli [{reg}],{reg} diff --git a/gas/testsuite/gas/rx/msbhi.d b/gas/testsuite/gas/rx/msbhi.d new file mode 100644 index 0000000..e92d3f2 --- /dev/null +++ b/gas/testsuite/gas/rx/msbhi.d @@ -0,0 +1,16 @@ +#objdump: -dr + +dump\.o: file format .* + + +Disassembly of section \.text: + +00000000 <\.text>: + 0: fd 44 00 msbhi r0, r0, a0 + 3: fd 44 0f msbhi r0, r15, a0 + 6: fd 44 f0 msbhi r15, r0, a0 + 9: fd 44 ff msbhi r15, r15, a0 + c: fd 4c 00 msbhi r0, r0, a1 + f: fd 4c 0f msbhi r0, r15, a1 + 12: fd 4c f0 msbhi r15, r0, a1 + 15: fd 4c ff msbhi r15, r15, a1 diff --git a/gas/testsuite/gas/rx/msbhi.sm b/gas/testsuite/gas/rx/msbhi.sm new file mode 100644 index 0000000..db290a9 --- /dev/null +++ b/gas/testsuite/gas/rx/msbhi.sm @@ -0,0 +1,2 @@ + msbhi {reg},{reg},a0 + msbhi {reg},{reg},a1 diff --git a/gas/testsuite/gas/rx/msblh.d b/gas/testsuite/gas/rx/msblh.d new file mode 100644 index 0000000..15dfea8 --- /dev/null +++ b/gas/testsuite/gas/rx/msblh.d @@ -0,0 +1,16 @@ +#objdump: -dr + +dump\.o: file format .* + + +Disassembly of section \.text: + +00000000 <\.text>: + 0: fd 46 00 msblh r0, r0, a0 + 3: fd 46 0f msblh r0, r15, a0 + 6: fd 46 f0 msblh r15, r0, a0 + 9: fd 46 ff msblh r15, r15, a0 + c: fd 4e 00 msblh r0, r0, a1 + f: fd 4e 0f msblh r0, r15, a1 + 12: fd 4e f0 msblh r15, r0, a1 + 15: fd 4e ff msblh r15, r15, a1 diff --git a/gas/testsuite/gas/rx/msblh.sm b/gas/testsuite/gas/rx/msblh.sm new file mode 100644 index 0000000..99d4134 --- /dev/null +++ b/gas/testsuite/gas/rx/msblh.sm @@ -0,0 +1,2 @@ + msblh {reg},{reg},a0 + msblh {reg},{reg},a1 diff --git a/gas/testsuite/gas/rx/msblo.d b/gas/testsuite/gas/rx/msblo.d new file mode 100644 index 0000000..e085785 --- /dev/null +++ b/gas/testsuite/gas/rx/msblo.d @@ -0,0 +1,16 @@ +#objdump: -dr + +dump\.o: file format .* + + +Disassembly of section \.text: + +00000000 <\.text>: + 0: fd 45 00 msblo r0, r0, a0 + 3: fd 45 0f msblo r0, r15, a0 + 6: fd 45 f0 msblo r15, r0, a0 + 9: fd 45 ff msblo r15, r15, a0 + c: fd 4d 00 msblo r0, r0, a1 + f: fd 4d 0f msblo r0, r15, a1 + 12: fd 4d f0 msblo r15, r0, a1 + 15: fd 4d ff msblo r15, r15, a1 diff --git a/gas/testsuite/gas/rx/msblo.sm b/gas/testsuite/gas/rx/msblo.sm new file mode 100644 index 0000000..e3a4736 --- /dev/null +++ b/gas/testsuite/gas/rx/msblo.sm @@ -0,0 +1,2 @@ + msblo {reg},{reg},a0 + msblo {reg},{reg},a1 diff --git a/gas/testsuite/gas/rx/mulhi.d b/gas/testsuite/gas/rx/mulhi.d index 0653bb4..c1a21ba 100644 --- a/gas/testsuite/gas/rx/mulhi.d +++ b/gas/testsuite/gas/rx/mulhi.d @@ -6,7 +6,15 @@ dump\.o: file format .* Disassembly of section \.text: 00000000 <\.text>: - 0: fd 00 00 mulhi r0, r0 - 3: fd 00 0f mulhi r0, r15 - 6: fd 00 f0 mulhi r15, r0 - 9: fd 00 ff mulhi r15, r15 + 0: fd 00 00 mulhi r0, r0, a0 + 3: fd 00 0f mulhi r0, r15, a0 + 6: fd 00 f0 mulhi r15, r0, a0 + 9: fd 00 ff mulhi r15, r15, a0 + c: fd 00 00 mulhi r0, r0, a0 + f: fd 00 0f mulhi r0, r15, a0 + 12: fd 00 f0 mulhi r15, r0, a0 + 15: fd 00 ff mulhi r15, r15, a0 + 18: fd 08 00 mulhi r0, r0, a1 + 1b: fd 08 0f mulhi r0, r15, a1 + 1e: fd 08 f0 mulhi r15, r0, a1 + 21: fd 08 ff mulhi r15, r15, a1 diff --git a/gas/testsuite/gas/rx/mulhi.sm b/gas/testsuite/gas/rx/mulhi.sm index a9765a4..f71b03a 100644 --- a/gas/testsuite/gas/rx/mulhi.sm +++ b/gas/testsuite/gas/rx/mulhi.sm @@ -1 +1,3 @@ mulhi {reg},{reg} + mulhi {reg},{reg},a0 + mulhi {reg},{reg},a1 diff --git a/gas/testsuite/gas/rx/mullh.d b/gas/testsuite/gas/rx/mullh.d new file mode 100644 index 0000000..057d4e4 --- /dev/null +++ b/gas/testsuite/gas/rx/mullh.d @@ -0,0 +1,16 @@ +#objdump: -dr + +dump\.o: file format .* + + +Disassembly of section \.text: + +00000000 <\.text>: + 0: fd 02 00 mullh r0, r0, a0 + 3: fd 02 0f mullh r0, r15, a0 + 6: fd 02 f0 mullh r15, r0, a0 + 9: fd 02 ff mullh r15, r15, a0 + c: fd 0a 00 mullh r0, r0, a1 + f: fd 0a 0f mullh r0, r15, a1 + 12: fd 0a f0 mullh r15, r0, a1 + 15: fd 0a ff mullh r15, r15, a1 diff --git a/gas/testsuite/gas/rx/mullh.sm b/gas/testsuite/gas/rx/mullh.sm new file mode 100644 index 0000000..0c7d0ed --- /dev/null +++ b/gas/testsuite/gas/rx/mullh.sm @@ -0,0 +1,2 @@ + mullh {reg},{reg},a0 + mullh {reg},{reg},a1 diff --git a/gas/testsuite/gas/rx/mullo.d b/gas/testsuite/gas/rx/mullo.d index fbf014f..9ce4c0e 100644 --- a/gas/testsuite/gas/rx/mullo.d +++ b/gas/testsuite/gas/rx/mullo.d @@ -6,7 +6,15 @@ dump\.o: file format .* Disassembly of section \.text: 00000000 <\.text>: - 0: fd 01 00 mullo r0, r0 - 3: fd 01 0f mullo r0, r15 - 6: fd 01 f0 mullo r15, r0 - 9: fd 01 ff mullo r15, r15 + 0: fd 01 00 mullo r0, r0, a0 + 3: fd 01 0f mullo r0, r15, a0 + 6: fd 01 f0 mullo r15, r0, a0 + 9: fd 01 ff mullo r15, r15, a0 + c: fd 01 00 mullo r0, r0, a0 + f: fd 01 0f mullo r0, r15, a0 + 12: fd 01 f0 mullo r15, r0, a0 + 15: fd 01 ff mullo r15, r15, a0 + 18: fd 09 00 mullo r0, r0, a1 + 1b: fd 09 0f mullo r0, r15, a1 + 1e: fd 09 f0 mullo r15, r0, a1 + 21: fd 09 ff mullo r15, r15, a1 diff --git a/gas/testsuite/gas/rx/mullo.sm b/gas/testsuite/gas/rx/mullo.sm index 56d6b8b1..dc3708e 100644 --- a/gas/testsuite/gas/rx/mullo.sm +++ b/gas/testsuite/gas/rx/mullo.sm @@ -1 +1,3 @@ mullo {reg},{reg} + mullo {reg},{reg},a0 + mullo {reg},{reg},a1 diff --git a/gas/testsuite/gas/rx/mvfacgu.d b/gas/testsuite/gas/rx/mvfacgu.d new file mode 100644 index 0000000..79d71e7 --- /dev/null +++ b/gas/testsuite/gas/rx/mvfacgu.d @@ -0,0 +1,20 @@ +#objdump: -dr + +dump\.o: file format .* + + +Disassembly of section \.text: + +00000000 <\.text>: + 0: fd 1f 30 mvfacgu #0, a0, r0 + 3: fd 1f 3f mvfacgu #0, a0, r15 + 6: fd 1f 70 mvfacgu #1, a0, r0 + 9: fd 1f 7f mvfacgu #1, a0, r15 + c: fd 1e 30 mvfacgu #2, a0, r0 + f: fd 1e 3f mvfacgu #2, a0, r15 + 12: fd 1f b0 mvfacgu #0, a1, r0 + 15: fd 1f bf mvfacgu #0, a1, r15 + 18: fd 1f f0 mvfacgu #1, a1, r0 + 1b: fd 1f ff mvfacgu #1, a1, r15 + 1e: fd 1e b0 mvfacgu #2, a1, r0 + 21: fd 1e bf mvfacgu #2, a1, r15 diff --git a/gas/testsuite/gas/rx/mvfacgu.sm b/gas/testsuite/gas/rx/mvfacgu.sm new file mode 100644 index 0000000..67a9fe1 --- /dev/null +++ b/gas/testsuite/gas/rx/mvfacgu.sm @@ -0,0 +1,6 @@ + mvfacgu #0,a0,{reg} + mvfacgu #1,a0,{reg} + mvfacgu #2,a0,{reg} + mvfacgu #0,a1,{reg} + mvfacgu #1,a1,{reg} + mvfacgu #2,a1,{reg} diff --git a/gas/testsuite/gas/rx/mvfachi.d b/gas/testsuite/gas/rx/mvfachi.d index de0abf1..153c821 100644 --- a/gas/testsuite/gas/rx/mvfachi.d +++ b/gas/testsuite/gas/rx/mvfachi.d @@ -6,5 +6,17 @@ dump\.o: file format .* Disassembly of section \.text: 00000000 <\.text>: - 0: fd 1f 00 mvfachi r0 - 3: fd 1f 0f mvfachi r15 + 0: fd 1f 00 mvfachi #0, a0, r0 + 3: fd 1f 0f mvfachi #0, a0, r15 + 6: fd 1f 00 mvfachi #0, a0, r0 + 9: fd 1f 0f mvfachi #0, a0, r15 + c: fd 1f 40 mvfachi #1, a0, r0 + f: fd 1f 4f mvfachi #1, a0, r15 + 12: fd 1e 00 mvfachi #2, a0, r0 + 15: fd 1e 0f mvfachi #2, a0, r15 + 18: fd 1f 80 mvfachi #0, a1, r0 + 1b: fd 1f 8f mvfachi #0, a1, r15 + 1e: fd 1f c0 mvfachi #1, a1, r0 + 21: fd 1f cf mvfachi #1, a1, r15 + 24: fd 1e 80 mvfachi #2, a1, r0 + 27: fd 1e 8f mvfachi #2, a1, r15 diff --git a/gas/testsuite/gas/rx/mvfachi.sm b/gas/testsuite/gas/rx/mvfachi.sm index e8755d6..83d7f66 100644 --- a/gas/testsuite/gas/rx/mvfachi.sm +++ b/gas/testsuite/gas/rx/mvfachi.sm @@ -1 +1,7 @@ mvfachi {reg} + mvfachi #0,a0,{reg} + mvfachi #1,a0,{reg} + mvfachi #2,a0,{reg} + mvfachi #0,a1,{reg} + mvfachi #1,a1,{reg} + mvfachi #2,a1,{reg} diff --git a/gas/testsuite/gas/rx/mvfaclo.d b/gas/testsuite/gas/rx/mvfaclo.d index 33df9b0..46f6349 100644 --- a/gas/testsuite/gas/rx/mvfaclo.d +++ b/gas/testsuite/gas/rx/mvfaclo.d @@ -6,5 +6,17 @@ dump\.o: file format .* Disassembly of section \.text: 00000000 <\.text>: - 0: fd 1f 10 mvfaclo r0 - 3: fd 1f 1f mvfaclo r15 + 0: fd 1f 10 mvfaclo #0, a0, r0 + 3: fd 1f 1f mvfaclo #0, a0, r15 + 6: fd 1f 10 mvfaclo #0, a0, r0 + 9: fd 1f 1f mvfaclo #0, a0, r15 + c: fd 1f 50 mvfaclo #1, a0, r0 + f: fd 1f 5f mvfaclo #1, a0, r15 + 12: fd 1e 10 mvfaclo #2, a0, r0 + 15: fd 1e 1f mvfaclo #2, a0, r15 + 18: fd 1f 90 mvfaclo #0, a1, r0 + 1b: fd 1f 9f mvfaclo #0, a1, r15 + 1e: fd 1f d0 mvfaclo #1, a1, r0 + 21: fd 1f df mvfaclo #1, a1, r15 + 24: fd 1e 90 mvfaclo #2, a1, r0 + 27: fd 1e 9f mvfaclo #2, a1, r15 diff --git a/gas/testsuite/gas/rx/mvfaclo.sm b/gas/testsuite/gas/rx/mvfaclo.sm index b9080e4..2e9b106 100644 --- a/gas/testsuite/gas/rx/mvfaclo.sm +++ b/gas/testsuite/gas/rx/mvfaclo.sm @@ -1 +1,7 @@ mvfaclo {reg} + mvfaclo #0,a0,{reg} + mvfaclo #1,a0,{reg} + mvfaclo #2,a0,{reg} + mvfaclo #0,a1,{reg} + mvfaclo #1,a1,{reg} + mvfaclo #2,a1,{reg} diff --git a/gas/testsuite/gas/rx/mvfacmi.d b/gas/testsuite/gas/rx/mvfacmi.d index c24479a..2795f3d 100644 --- a/gas/testsuite/gas/rx/mvfacmi.d +++ b/gas/testsuite/gas/rx/mvfacmi.d @@ -6,5 +6,17 @@ dump\.o: file format .* Disassembly of section \.text: 00000000 <\.text>: - 0: fd 1f 20 mvfacmi r0 - 3: fd 1f 2f mvfacmi r15 + 0: fd 1f 20 mvfacmi #0, a0, r0 + 3: fd 1f 2f mvfacmi #0, a0, r15 + 6: fd 1f 20 mvfacmi #0, a0, r0 + 9: fd 1f 2f mvfacmi #0, a0, r15 + c: fd 1f 60 mvfacmi #1, a0, r0 + f: fd 1f 6f mvfacmi #1, a0, r15 + 12: fd 1e 20 mvfacmi #2, a0, r0 + 15: fd 1e 2f mvfacmi #2, a0, r15 + 18: fd 1f a0 mvfacmi #0, a1, r0 + 1b: fd 1f af mvfacmi #0, a1, r15 + 1e: fd 1f e0 mvfacmi #1, a1, r0 + 21: fd 1f ef mvfacmi #1, a1, r15 + 24: fd 1e a0 mvfacmi #2, a1, r0 + 27: fd 1e af mvfacmi #2, a1, r15 diff --git a/gas/testsuite/gas/rx/mvfacmi.sm b/gas/testsuite/gas/rx/mvfacmi.sm index 400f125..cdc3402 100644 --- a/gas/testsuite/gas/rx/mvfacmi.sm +++ b/gas/testsuite/gas/rx/mvfacmi.sm @@ -1 +1,7 @@ mvfacmi {reg} + mvfacmi #0,a0,{reg} + mvfacmi #1,a0,{reg} + mvfacmi #2,a0,{reg} + mvfacmi #0,a1,{reg} + mvfacmi #1,a1,{reg} + mvfacmi #2,a1,{reg} diff --git a/gas/testsuite/gas/rx/mvfc.d b/gas/testsuite/gas/rx/mvfc.d index 7f6ca64..e89db68 100644 --- a/gas/testsuite/gas/rx/mvfc.d +++ b/gas/testsuite/gas/rx/mvfc.d @@ -22,4 +22,6 @@ Disassembly of section \.text: 27: fd 6a 9f mvfc bpc, r15 2a: fd 6a b0 mvfc fintv, r0 2d: fd 6a bf mvfc fintv, r15 + 30: fd 6a d0 mvfc extb, r0 + 33: fd 6a df mvfc extb, r15 diff --git a/gas/testsuite/gas/rx/mvtacgu.d b/gas/testsuite/gas/rx/mvtacgu.d new file mode 100644 index 0000000..96fe2ce --- /dev/null +++ b/gas/testsuite/gas/rx/mvtacgu.d @@ -0,0 +1,12 @@ +#objdump: -dr + +dump\.o: file format .* + + +Disassembly of section \.text: + +00000000 <\.text>: + 0: fd 17 30 mvtacgu r0, a0 + 3: fd 17 3f mvtacgu r15, a0 + 6: fd 17 b0 mvtacgu r0, a1 + 9: fd 17 bf mvtacgu r15, a1 diff --git a/gas/testsuite/gas/rx/mvtacgu.sm b/gas/testsuite/gas/rx/mvtacgu.sm new file mode 100644 index 0000000..ff4568d --- /dev/null +++ b/gas/testsuite/gas/rx/mvtacgu.sm @@ -0,0 +1,2 @@ + mvtacgu {reg},a0 + mvtacgu {reg},a1 diff --git a/gas/testsuite/gas/rx/mvtachi.d b/gas/testsuite/gas/rx/mvtachi.d index c9f02ee..31f4a5a 100644 --- a/gas/testsuite/gas/rx/mvtachi.d +++ b/gas/testsuite/gas/rx/mvtachi.d @@ -6,5 +6,9 @@ dump\.o: file format .* Disassembly of section \.text: 00000000 <\.text>: - 0: fd 17 00 mvtachi r0 - 3: fd 17 0f mvtachi r15 + 0: fd 17 00 mvtachi r0, a0 + 3: fd 17 0f mvtachi r15, a0 + 6: fd 17 00 mvtachi r0, a0 + 9: fd 17 0f mvtachi r15, a0 + c: fd 17 80 mvtachi r0, a1 + f: fd 17 8f mvtachi r15, a1 diff --git a/gas/testsuite/gas/rx/mvtachi.sm b/gas/testsuite/gas/rx/mvtachi.sm index 53dad05..9f7c204 100644 --- a/gas/testsuite/gas/rx/mvtachi.sm +++ b/gas/testsuite/gas/rx/mvtachi.sm @@ -1 +1,3 @@ mvtachi {reg} + mvtachi {reg},a0 + mvtachi {reg},a1 diff --git a/gas/testsuite/gas/rx/mvtaclo.d b/gas/testsuite/gas/rx/mvtaclo.d index 09c7ca6..706fc29 100644 --- a/gas/testsuite/gas/rx/mvtaclo.d +++ b/gas/testsuite/gas/rx/mvtaclo.d @@ -6,5 +6,9 @@ dump\.o: file format .* Disassembly of section \.text: 00000000 <\.text>: - 0: fd 17 10 mvtaclo r0 - 3: fd 17 1f mvtaclo r15 + 0: fd 17 10 mvtaclo r0, a0 + 3: fd 17 1f mvtaclo r15, a0 + 6: fd 17 10 mvtaclo r0, a0 + 9: fd 17 1f mvtaclo r15, a0 + c: fd 17 90 mvtaclo r0, a1 + f: fd 17 9f mvtaclo r15, a1 diff --git a/gas/testsuite/gas/rx/mvtaclo.sm b/gas/testsuite/gas/rx/mvtaclo.sm index 840bd88..fc24918 100644 --- a/gas/testsuite/gas/rx/mvtaclo.sm +++ b/gas/testsuite/gas/rx/mvtaclo.sm @@ -1 +1,3 @@ mvtaclo {reg} + mvtaclo {reg},a0 + mvtaclo {reg},a1 diff --git a/gas/testsuite/gas/rx/mvtc.d b/gas/testsuite/gas/rx/mvtc.d index 1deb67e..33c1bd2 100644 --- a/gas/testsuite/gas/rx/mvtc.d +++ b/gas/testsuite/gas/rx/mvtc.d @@ -14,14 +14,16 @@ Disassembly of section \.text: 14: fd 77 08 80 mvtc #-128, bpsw 18: fd 77 09 80 mvtc #-128, bpc 1c: fd 77 0b 80 mvtc #-128, fintv - 20: fd 77 00 7f mvtc #127, psw - 24: fd 77 03 7f mvtc #127, fpsw - 28: fd 77 02 7f mvtc #127, usp - 2c: fd 77 0a 7f mvtc #127, isp - 30: fd 77 0c 7f mvtc #127, intb - 34: fd 77 08 7f mvtc #127, bpsw - 38: fd 77 09 7f mvtc #127, bpc - 3c: fd 77 0b 7f mvtc #127, fintv + 20: fd 77 0d 80 mvtc #-128, extb + 24: fd 77 00 7f mvtc #127, psw + 28: fd 77 03 7f mvtc #127, fpsw + 2c: fd 77 02 7f mvtc #127, usp + 30: fd 77 0a 7f mvtc #127, isp + 34: fd 77 0c 7f mvtc #127, intb + 38: fd 77 08 7f mvtc #127, bpsw + 3c: fd 77 09 7f mvtc #127, bpc + 40: fd 77 0b 7f mvtc #127, fintv + 44: fd 77 0d 7f mvtc #127, extb ..: fd 7b 00 00 80 mvtc #0xffff8000, psw ..: fd 7b 03 00 80 mvtc #0xffff8000, fpsw ..: fd 7b 02 00 80 mvtc #0xffff8000, usp @@ -30,6 +32,7 @@ Disassembly of section \.text: ..: fd 7b 08 00 80 mvtc #0xffff8000, bpsw ..: fd 7b 09 00 80 mvtc #0xffff8000, bpc ..: fd 7b 0b 00 80 mvtc #0xffff8000, fintv + ..: fd 7b 0d 00 80 mvtc #0xffff8000, extb ..: fd 7f 00 00 80 00 mvtc #0x8000, psw ..: fd 7f 03 00 80 00 mvtc #0x8000, fpsw ..: fd 7f 02 00 80 00 mvtc #0x8000, usp @@ -38,6 +41,7 @@ Disassembly of section \.text: ..: fd 7f 08 00 80 00 mvtc #0x8000, bpsw ..: fd 7f 09 00 80 00 mvtc #0x8000, bpc ..: fd 7f 0b 00 80 00 mvtc #0x8000, fintv + ..: fd 7f 0d 00 80 00 mvtc #0x8000, extb ..: fd 7f 00 00 00 80 mvtc #0xff800000, psw ..: fd 7f 03 00 00 80 mvtc #0xff800000, fpsw ..: fd 7f 02 00 00 80 mvtc #0xff800000, usp @@ -46,14 +50,16 @@ Disassembly of section \.text: ..: fd 7f 08 00 00 80 mvtc #0xff800000, bpsw ..: fd 7f 09 00 00 80 mvtc #0xff800000, bpc ..: fd 7f 0b 00 00 80 mvtc #0xff800000, fintv + ..: fd 7f 0d 00 00 80 mvtc #0xff800000, extb ..: fd 7f 00 ff ff 7f mvtc #0x7fffff, psw ..: fd 7f 03 ff ff 7f mvtc #0x7fffff, fpsw ..: fd 7f 02 ff ff 7f mvtc #0x7fffff, usp ..: fd 7f 0a ff ff 7f mvtc #0x7fffff, isp ..: fd 7f 0c ff ff 7f mvtc #0x7fffff, intb - ..: fd 7f 08 ff ff 7f mvtc #0x7fffff, bpsw + ...: fd 7f 08 ff ff 7f mvtc #0x7fffff, bpsw ...: fd 7f 09 ff ff 7f mvtc #0x7fffff, bpc ...: fd 7f 0b ff ff 7f mvtc #0x7fffff, fintv + ...: fd 7f 0d ff ff 7f mvtc #0x7fffff, extb ...: fd 73 00 00 00 00 80 mvtc #0x80000000, psw ...: fd 73 03 00 00 00 80 mvtc #0x80000000, fpsw ...: fd 73 02 00 00 00 80 mvtc #0x80000000, usp @@ -62,6 +68,7 @@ Disassembly of section \.text: ...: fd 73 08 00 00 00 80 mvtc #0x80000000, bpsw ...: fd 73 09 00 00 00 80 mvtc #0x80000000, bpc ...: fd 73 0b 00 00 00 80 mvtc #0x80000000, fintv + ...: fd 73 0d 00 00 00 80 mvtc #0x80000000, extb ...: fd 73 00 ff ff ff 7f mvtc #0x7fffffff, psw ...: fd 73 03 ff ff ff 7f mvtc #0x7fffffff, fpsw ...: fd 73 02 ff ff ff 7f mvtc #0x7fffffff, usp @@ -70,6 +77,7 @@ Disassembly of section \.text: ...: fd 73 08 ff ff ff 7f mvtc #0x7fffffff, bpsw ...: fd 73 09 ff ff ff 7f mvtc #0x7fffffff, bpc ...: fd 73 0b ff ff ff 7f mvtc #0x7fffffff, fintv + ...: fd 73 0d ff ff ff 7f mvtc #0x7fffffff, extb ...: fd 68 00 mvtc r0, psw ...: fd 68 03 mvtc r0, fpsw ...: fd 68 02 mvtc r0, usp @@ -78,6 +86,7 @@ Disassembly of section \.text: ...: fd 68 08 mvtc r0, bpsw ...: fd 68 09 mvtc r0, bpc ...: fd 68 0b mvtc r0, fintv + ...: fd 68 0d mvtc r0, extb ...: fd 68 f0 mvtc r15, psw ...: fd 68 f3 mvtc r15, fpsw ...: fd 68 f2 mvtc r15, usp @@ -86,4 +95,5 @@ Disassembly of section \.text: ...: fd 68 f8 mvtc r15, bpsw ...: fd 68 f9 mvtc r15, bpc ...: fd 68 fb mvtc r15, fintv + ...: fd 68 fd mvtc r15, extb diff --git a/gas/testsuite/gas/rx/nop.d b/gas/testsuite/gas/rx/nop.d index 28988cc..1f33c59 100644 --- a/gas/testsuite/gas/rx/nop.d +++ b/gas/testsuite/gas/rx/nop.d @@ -3,9 +3,9 @@ dump\.o: file format .* -Disassembly of section \..*: +Disassembly of section .*: -00000000 <\..*>: +00000000 <.*>: 0: 03 nop 1: ef 00 nop ; mov.l r0, r0 3: 63 10 nop ; mul #1, r0 diff --git a/gas/testsuite/gas/rx/popc.d b/gas/testsuite/gas/rx/popc.d index da1b248..cddbe05 100644 --- a/gas/testsuite/gas/rx/popc.d +++ b/gas/testsuite/gas/rx/popc.d @@ -14,4 +14,5 @@ Disassembly of section \.text: a: 7e e8 popc bpsw c: 7e e9 popc bpc e: 7e eb popc fintv + 10: 7e ed popc extb diff --git a/gas/testsuite/gas/rx/pushc.d b/gas/testsuite/gas/rx/pushc.d index 307a7a0..2a93da2 100644 --- a/gas/testsuite/gas/rx/pushc.d +++ b/gas/testsuite/gas/rx/pushc.d @@ -14,4 +14,5 @@ Disassembly of section \.text: a: 7e c8 pushc bpsw c: 7e c9 pushc bpc e: 7e cb pushc fintv + 10: 7e cd pushc extb diff --git a/gas/testsuite/gas/rx/racl.d b/gas/testsuite/gas/rx/racl.d new file mode 100644 index 0000000..ae784bd --- /dev/null +++ b/gas/testsuite/gas/rx/racl.d @@ -0,0 +1,12 @@ +#objdump: -dr + +dump\.o: file format .* + + +Disassembly of section \.text: + +00000000 <\.text>: + 0: fd 19 00 racl #1, a0 + 3: fd 19 10 racl #2, a0 + 6: fd 19 80 racl #1, a1 + 9: fd 19 90 racl #2, a1 diff --git a/gas/testsuite/gas/rx/racl.sm b/gas/testsuite/gas/rx/racl.sm new file mode 100644 index 0000000..96c6cb5 --- /dev/null +++ b/gas/testsuite/gas/rx/racl.sm @@ -0,0 +1,4 @@ + racl #1,a0 + racl #2,a0 + racl #1,a1 + racl #2,a1 diff --git a/gas/testsuite/gas/rx/racw.d b/gas/testsuite/gas/rx/racw.d index 6735254..f6a60c6 100644 --- a/gas/testsuite/gas/rx/racw.d +++ b/gas/testsuite/gas/rx/racw.d @@ -6,5 +6,9 @@ dump\.o: file format .* Disassembly of section \.text: 00000000 <\.text>: - 0: fd 18 00 racw #1 - 3: fd 18 10 racw #2 + 0: fd 18 00 racw #1, a0 + 3: fd 18 10 racw #2, a0 + 6: fd 18 00 racw #1, a0 + 9: fd 18 10 racw #2, a0 + c: fd 18 80 racw #1, a1 + f: fd 18 90 racw #2, a1 diff --git a/gas/testsuite/gas/rx/racw.sm b/gas/testsuite/gas/rx/racw.sm index f7dfd5b..26a726c 100644 --- a/gas/testsuite/gas/rx/racw.sm +++ b/gas/testsuite/gas/rx/racw.sm @@ -1,2 +1,6 @@ racw #1 racw #2 + racw #1,a0 + racw #2,a0 + racw #1,a1 + racw #2,a1 diff --git a/gas/testsuite/gas/rx/rdacl.d b/gas/testsuite/gas/rx/rdacl.d new file mode 100644 index 0000000..1e7e49d --- /dev/null +++ b/gas/testsuite/gas/rx/rdacl.d @@ -0,0 +1,12 @@ +#objdump: -dr + +dump\.o: file format .* + + +Disassembly of section \.text: + +00000000 <\.text>: + 0: fd 19 40 rdacl #1, a0 + 3: fd 19 50 rdacl #2, a0 + 6: fd 19 c0 rdacl #1, a1 + 9: fd 19 d0 rdacl #2, a1 diff --git a/gas/testsuite/gas/rx/rdacl.sm b/gas/testsuite/gas/rx/rdacl.sm new file mode 100644 index 0000000..965a206 --- /dev/null +++ b/gas/testsuite/gas/rx/rdacl.sm @@ -0,0 +1,4 @@ + rdacl #1,a0 + rdacl #2,a0 + rdacl #1,a1 + rdacl #2,a1 diff --git a/gas/testsuite/gas/rx/rdacw.d b/gas/testsuite/gas/rx/rdacw.d new file mode 100644 index 0000000..8ec7bd4 --- /dev/null +++ b/gas/testsuite/gas/rx/rdacw.d @@ -0,0 +1,12 @@ +#objdump: -dr + +dump\.o: file format .* + + +Disassembly of section \.text: + +00000000 <\.text>: + 0: fd 18 40 rdacw #1, a0 + 3: fd 18 50 rdacw #2, a0 + 6: fd 18 c0 rdacw #1, a1 + 9: fd 18 d0 rdacw #2, a1 diff --git a/gas/testsuite/gas/rx/rdacw.sm b/gas/testsuite/gas/rx/rdacw.sm new file mode 100644 index 0000000..665f760 --- /dev/null +++ b/gas/testsuite/gas/rx/rdacw.sm @@ -0,0 +1,4 @@ + rdacw #1,a0 + rdacw #2,a0 + rdacw #1,a1 + rdacw #2,a1 diff --git a/gas/testsuite/gas/rx/rx.exp b/gas/testsuite/gas/rx/rx.exp index 6fa5ca5..d78768a 100644 --- a/gas/testsuite/gas/rx/rx.exp +++ b/gas/testsuite/gas/rx/rx.exp @@ -21,6 +21,9 @@ if { ! [istarget rx-*-*] } { return } +global ASFLAGS +set ASFLAGS "--mcpu=rxv2" + foreach test [lsort [glob $srcdir/$subdir/*.sm]] { regexp ".*/(.*)\.sm" $test rxjunk rxbase exec "$srcdir/$subdir/explode" "-I" "$srcdir/$subdir" "$test" "$srcdir/$subdir/$rxbase.s" diff --git a/gas/testsuite/gas/rx/stnz.d b/gas/testsuite/gas/rx/stnz.d index 8dfb0c3..ff2f857 100644 --- a/gas/testsuite/gas/rx/stnz.d +++ b/gas/testsuite/gas/rx/stnz.d @@ -22,3 +22,7 @@ Disassembly of section \.text: 45: fd 70 ff 00 00 00 80 stnz #0x80000000, r15 4c: fd 70 f0 ff ff ff 7f stnz #0x7fffffff, r0 53: fd 70 ff ff ff ff 7f stnz #0x7fffffff, r15 + 5a: fc 4f 00 stnz r0, r0 + 5d: fc 4f 0f stnz r0, r15 + 60: fc 4f f0 stnz r15, r0 + 63: fc 4f ff stnz r15, r15 diff --git a/gas/testsuite/gas/rx/stnz.sm b/gas/testsuite/gas/rx/stnz.sm index 853f1ce..903a32e 100644 --- a/gas/testsuite/gas/rx/stnz.sm +++ b/gas/testsuite/gas/rx/stnz.sm @@ -1 +1,2 @@ stnz #{imm},{reg} + stnz {reg},{reg} diff --git a/gas/testsuite/gas/rx/stz.d b/gas/testsuite/gas/rx/stz.d index f9c6b77..d3426dc 100644 --- a/gas/testsuite/gas/rx/stz.d +++ b/gas/testsuite/gas/rx/stz.d @@ -22,3 +22,7 @@ Disassembly of section \.text: 45: fd 70 ef 00 00 00 80 stz #0x80000000, r15 4c: fd 70 e0 ff ff ff 7f stz #0x7fffffff, r0 53: fd 70 ef ff ff ff 7f stz #0x7fffffff, r15 + 5a: fc 4b 00 stz r0, r0 + 5d: fc 4b 0f stz r0, r15 + 60: fc 4b f0 stz r15, r0 + 63: fc 4b ff stz r15, r15 diff --git a/gas/testsuite/gas/rx/stz.sm b/gas/testsuite/gas/rx/stz.sm index e366213..34b79fe 100644 --- a/gas/testsuite/gas/rx/stz.sm +++ b/gas/testsuite/gas/rx/stz.sm @@ -1 +1,2 @@ stz #{imm},{reg} + stz {reg},{reg} diff --git a/gas/testsuite/gas/rx/utof.d b/gas/testsuite/gas/rx/utof.d new file mode 100644 index 0000000..5059ad1 --- /dev/null +++ b/gas/testsuite/gas/rx/utof.d @@ -0,0 +1,72 @@ +#objdump: -dr + +dump\.o: file format .* + + +Disassembly of section \.text: + +00000000 <\.text>: + 0: fc 57 00 utof r0, r0 + 3: fc 57 0f utof r0, r15 + 6: fc 57 f0 utof r15, r0 + 9: fc 57 ff utof r15, r15 + c: fc 54 00 utof \[r0\]\.ub, r0 + f: fc 54 0f utof \[r0\]\.ub, r15 + 12: 06 20 15 00 utof \[r0\]\.b, r0 + 16: 06 20 15 0f utof \[r0\]\.b, r15 + 1a: 06 e0 15 00 utof \[r0\]\.uw, r0 + 1e: 06 e0 15 0f utof \[r0\]\.uw, r15 + 22: 06 60 15 00 utof \[r0\]\.w, r0 + 26: 06 60 15 0f utof \[r0\]\.w, r15 + 2a: 06 a0 15 00 utof \[r0\]\.l, r0 + 2e: 06 a0 15 0f utof \[r0\]\.l, r15 + 32: fc 54 f0 utof \[r15\]\.ub, r0 + 35: fc 54 ff utof \[r15\]\.ub, r15 + 38: 06 20 15 f0 utof \[r15\]\.b, r0 + 3c: 06 20 15 ff utof \[r15\]\.b, r15 + 40: 06 e0 15 f0 utof \[r15\]\.uw, r0 + 44: 06 e0 15 ff utof \[r15\]\.uw, r15 + 48: 06 60 15 f0 utof \[r15\]\.w, r0 + 4c: 06 60 15 ff utof \[r15\]\.w, r15 + 50: 06 a0 15 f0 utof \[r15\]\.l, r0 + 54: 06 a0 15 ff utof \[r15\]\.l, r15 + 58: fc 55 00 fc utof 252\[r0\]\.ub, r0 + 5c: fc 55 0f fc utof 252\[r0\]\.ub, r15 + 60: 06 21 15 00 fc utof 252\[r0\]\.b, r0 + 65: 06 21 15 0f fc utof 252\[r0\]\.b, r15 + 6a: 06 e1 15 00 7e utof 252\[r0\]\.uw, r0 + 6f: 06 e1 15 0f 7e utof 252\[r0\]\.uw, r15 + 74: 06 61 15 00 7e utof 252\[r0\]\.w, r0 + 79: 06 61 15 0f 7e utof 252\[r0\]\.w, r15 + 7e: 06 a1 15 00 3f utof 252\[r0\]\.l, r0 + 83: 06 a1 15 0f 3f utof 252\[r0\]\.l, r15 + 88: fc 55 f0 fc utof 252\[r15\]\.ub, r0 + 8c: fc 55 ff fc utof 252\[r15\]\.ub, r15 + 90: 06 21 15 f0 fc utof 252\[r15\]\.b, r0 + 95: 06 21 15 ff fc utof 252\[r15\]\.b, r15 + 9a: 06 e1 15 f0 7e utof 252\[r15\]\.uw, r0 + 9f: 06 e1 15 ff 7e utof 252\[r15\]\.uw, r15 + a4: 06 61 15 f0 7e utof 252\[r15\]\.w, r0 + a9: 06 61 15 ff 7e utof 252\[r15\]\.w, r15 + ae: 06 a1 15 f0 3f utof 252\[r15\]\.l, r0 + b3: 06 a1 15 ff 3f utof 252\[r15\]\.l, r15 + b8: fc 56 00 fc ff utof 65532\[r0\]\.ub, r0 + bd: fc 56 0f fc ff utof 65532\[r0\]\.ub, r15 + c2: 06 22 15 00 fc ff utof 65532\[r0\]\.b, r0 + c8: 06 22 15 0f fc ff utof 65532\[r0\]\.b, r15 + ce: 06 e2 15 00 fe 7f utof 65532\[r0\]\.uw, r0 + d4: 06 e2 15 0f fe 7f utof 65532\[r0\]\.uw, r15 + da: 06 62 15 00 fe 7f utof 65532\[r0\]\.w, r0 + e0: 06 62 15 0f fe 7f utof 65532\[r0\]\.w, r15 + e6: 06 a2 15 00 ff 3f utof 65532\[r0\]\.l, r0 + ec: 06 a2 15 0f ff 3f utof 65532\[r0\]\.l, r15 + f2: fc 56 f0 fc ff utof 65532\[r15\]\.ub, r0 + f7: fc 56 ff fc ff utof 65532\[r15\]\.ub, r15 + fc: 06 22 15 f0 fc ff utof 65532\[r15\]\.b, r0 + 102: 06 22 15 ff fc ff utof 65532\[r15\]\.b, r15 + 108: 06 e2 15 f0 fe 7f utof 65532\[r15\]\.uw, r0 + 10e: 06 e2 15 ff fe 7f utof 65532\[r15\]\.uw, r15 + 114: 06 62 15 f0 fe 7f utof 65532\[r15\]\.w, r0 + 11a: 06 62 15 ff fe 7f utof 65532\[r15\]\.w, r15 + 120: 06 a2 15 f0 ff 3f utof 65532\[r15\]\.l, r0 + 126: 06 a2 15 ff ff 3f utof 65532\[r15\]\.l, r15 diff --git a/gas/testsuite/gas/rx/utof.sm b/gas/testsuite/gas/rx/utof.sm new file mode 100644 index 0000000..8a11bac --- /dev/null +++ b/gas/testsuite/gas/rx/utof.sm @@ -0,0 +1,2 @@ + utof {reg},{reg} + utof {memx},{reg} diff --git a/include/elf/ChangeLog b/include/elf/ChangeLog index e6e7af9..5b98c66 100644 --- a/include/elf/ChangeLog +++ b/include/elf/ChangeLog @@ -1,3 +1,7 @@ +2015-12-14 Yoshinori Sato <ysato@users.sourceforge.jp> + + * rx.h (E_FLAG_RX_V2): New RXv2 type. + 2015-12-07 Alan Modra <amodra@gmail.com> * ppc64.h (R_PPC64_ENTRY): Define. diff --git a/include/elf/rx.h b/include/elf/rx.h index f945dac..fa2cbdf 100644 --- a/include/elf/rx.h +++ b/include/elf/rx.h @@ -119,11 +119,11 @@ END_RELOC_NUMBERS (R_RX_max) #define E_FLAG_RX_DSP (1 << 1) /* Defined in the RX CPU Object file specification, but not explained. */ #define E_FLAG_RX_PID (1 << 2) /* Unofficial - DJ */ #define E_FLAG_RX_ABI (1 << 3) /* Binary passes stacked arguments using natural alignment. Unofficial - NC. */ - #define E_FLAG_RX_SINSNS_SET (1 << 6) /* Set if bit-5 is significant. */ #define E_FLAG_RX_SINSNS_YES (1 << 7) /* Set if string instructions are used in the binary. */ #define E_FLAG_RX_SINSNS_NO 0 /* Bit-5 if this binary must not be linked with a string instruction using binary. */ #define E_FLAG_RX_SINSNS_MASK (3 << 6) /* Mask of bits used to determine string instruction use. */ +#define E_FLAG_RX_V2 (1 << 8) /* RX v2 instructions */ /* These define the addend field of R_RX_RH_RELAX relocations. */ #define RX_RELAXA_IMM6 0x00000010 /* Imm8/16/24/32 at bit offset 6. */ diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog index e72c1a0..7ccd62e 100644 --- a/include/opcode/ChangeLog +++ b/include/opcode/ChangeLog @@ -3,6 +3,10 @@ * aarch64.h (enum aarch64_opnd_qualifier): Add AARCH64_OPND_QLF_V_2H. +2015-12-14 Yoshinori Sato <ysato@users.sourceforge.jp> + + * rx.h: Add new instructions. + 2015-12-11 Matthew Wahab <matthew.wahab@arm.com> * aarch64.h (aarch64_opnd): Add AARCH64_OPND_BARRIER_PSB. diff --git a/include/opcode/rx.h b/include/opcode/rx.h index b8ef163..eda0ee3 100644 --- a/include/opcode/rx.h +++ b/include/opcode/rx.h @@ -161,6 +161,25 @@ typedef enum RXO_wait, RXO_sccnd, /* d = cond(s) ? 1 : 0 */ + + RXO_fsqrt, + RXO_ftou, + RXO_utof, + RXO_movco, + RXO_movli, + RXO_emaca, + RXO_emsba, + RXO_emula, + RXO_maclh, + RXO_msbhi, + RXO_msblh, + RXO_msblo, + RXO_mullh, + RXO_mvfacgu, + RXO_mvtacgu, + RXO_racl, + RXO_rdacl, + RXO_rdacw, } RX_Opcode_ID; /* Condition bitpatterns, as registers. */ diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 26cddf0..6145343 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,9 @@ +2015-12-14 Yoshinori Sato <ysato@users.sourceforge.jp> + + * rx-deocde.opc: Add new instructions pattern. + * rx-deocde.c: Regenerate. + * rx-dis.c (register_name): Add new register. + 2015-12-14 Matthew Wahab <matthew.wahab@arm.com> * aarch64-asm-2.c: Regenerate. diff --git a/opcodes/rx-decode.c b/opcodes/rx-decode.c index 3a9099b..e298bed 100644 --- a/opcodes/rx-decode.c +++ b/opcodes/rx-decode.c @@ -294,7 +294,7 @@ rx_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("brk"); -#line 987 "rx-decode.opc" +#line 1025 "rx-decode.opc" ID(brk); } @@ -309,7 +309,7 @@ rx_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("dbt"); -#line 990 "rx-decode.opc" +#line 1028 "rx-decode.opc" ID(dbt); } @@ -324,7 +324,7 @@ rx_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("rts"); -#line 768 "rx-decode.opc" +#line 806 "rx-decode.opc" ID(rts); /*----------------------------------------------------------------------*/ @@ -342,7 +342,7 @@ rx_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("nop"); -#line 774 "rx-decode.opc" +#line 812 "rx-decode.opc" ID(nop); /*----------------------------------------------------------------------*/ @@ -360,7 +360,7 @@ rx_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("bra.a %a0"); -#line 746 "rx-decode.opc" +#line 784 "rx-decode.opc" ID(branch); DC(pc + IMMex(3)); } @@ -375,7 +375,7 @@ rx_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("bsr.a %a0"); -#line 762 "rx-decode.opc" +#line 800 "rx-decode.opc" ID(jsr); DC(pc + IMMex(3)); } @@ -578,13 +578,13 @@ rx_decode_opcode (unsigned long pc AU, op_semantics_4: { /** 0000 0110 mx00 11ss rsrc rdst mul %1%S1, %0 */ -#line 611 "rx-decode.opc" +#line 649 "rx-decode.opc" int mx AU = (op[1] >> 6) & 0x03; -#line 611 "rx-decode.opc" +#line 649 "rx-decode.opc" int ss AU = op[1] & 0x03; -#line 611 "rx-decode.opc" +#line 649 "rx-decode.opc" int rsrc AU = (op[2] >> 4) & 0x0f; -#line 611 "rx-decode.opc" +#line 649 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -597,7 +597,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("mul %1%S1, %0"); -#line 611 "rx-decode.opc" +#line 649 "rx-decode.opc" ID(mul); SPm(ss, rsrc, mx); DR(rdst); F_____; } @@ -802,13 +802,13 @@ rx_decode_opcode (unsigned long pc AU, op_semantics_8: { /** 0000 0110 mx10 00ss 0000 0100 rsrc rdst max %1%S1, %0 */ -#line 584 "rx-decode.opc" +#line 594 "rx-decode.opc" int mx AU = (op[1] >> 6) & 0x03; -#line 584 "rx-decode.opc" +#line 594 "rx-decode.opc" int ss AU = op[1] & 0x03; -#line 584 "rx-decode.opc" +#line 594 "rx-decode.opc" int rsrc AU = (op[3] >> 4) & 0x0f; -#line 584 "rx-decode.opc" +#line 594 "rx-decode.opc" int rdst AU = op[3] & 0x0f; if (trace) { @@ -821,7 +821,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("max %1%S1, %0"); -#line 584 "rx-decode.opc" +#line 594 "rx-decode.opc" ID(max); SPm(ss, rsrc, mx); DR(rdst); /*----------------------------------------------------------------------*/ @@ -839,13 +839,13 @@ rx_decode_opcode (unsigned long pc AU, op_semantics_9: { /** 0000 0110 mx10 00ss 0000 0101 rsrc rdst min %1%S1, %0 */ -#line 596 "rx-decode.opc" +#line 606 "rx-decode.opc" int mx AU = (op[1] >> 6) & 0x03; -#line 596 "rx-decode.opc" +#line 606 "rx-decode.opc" int ss AU = op[1] & 0x03; -#line 596 "rx-decode.opc" +#line 606 "rx-decode.opc" int rsrc AU = (op[3] >> 4) & 0x0f; -#line 596 "rx-decode.opc" +#line 606 "rx-decode.opc" int rdst AU = op[3] & 0x0f; if (trace) { @@ -858,7 +858,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("min %1%S1, %0"); -#line 596 "rx-decode.opc" +#line 606 "rx-decode.opc" ID(min); SPm(ss, rsrc, mx); DR(rdst); /*----------------------------------------------------------------------*/ @@ -876,13 +876,13 @@ rx_decode_opcode (unsigned long pc AU, op_semantics_10: { /** 0000 0110 mx10 00ss 0000 0110 rsrc rdst emul %1%S1, %0 */ -#line 626 "rx-decode.opc" +#line 664 "rx-decode.opc" int mx AU = (op[1] >> 6) & 0x03; -#line 626 "rx-decode.opc" +#line 664 "rx-decode.opc" int ss AU = op[1] & 0x03; -#line 626 "rx-decode.opc" +#line 664 "rx-decode.opc" int rsrc AU = (op[3] >> 4) & 0x0f; -#line 626 "rx-decode.opc" +#line 664 "rx-decode.opc" int rdst AU = op[3] & 0x0f; if (trace) { @@ -895,7 +895,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("emul %1%S1, %0"); -#line 626 "rx-decode.opc" +#line 664 "rx-decode.opc" ID(emul); SPm(ss, rsrc, mx); DR(rdst); /*----------------------------------------------------------------------*/ @@ -913,13 +913,13 @@ rx_decode_opcode (unsigned long pc AU, op_semantics_11: { /** 0000 0110 mx10 00ss 0000 0111 rsrc rdst emulu %1%S1, %0 */ -#line 638 "rx-decode.opc" +#line 676 "rx-decode.opc" int mx AU = (op[1] >> 6) & 0x03; -#line 638 "rx-decode.opc" +#line 676 "rx-decode.opc" int ss AU = op[1] & 0x03; -#line 638 "rx-decode.opc" +#line 676 "rx-decode.opc" int rsrc AU = (op[3] >> 4) & 0x0f; -#line 638 "rx-decode.opc" +#line 676 "rx-decode.opc" int rdst AU = op[3] & 0x0f; if (trace) { @@ -932,7 +932,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("emulu %1%S1, %0"); -#line 638 "rx-decode.opc" +#line 676 "rx-decode.opc" ID(emulu); SPm(ss, rsrc, mx); DR(rdst); /*----------------------------------------------------------------------*/ @@ -950,13 +950,13 @@ rx_decode_opcode (unsigned long pc AU, op_semantics_12: { /** 0000 0110 mx10 00ss 0000 1000 rsrc rdst div %1%S1, %0 */ -#line 650 "rx-decode.opc" +#line 688 "rx-decode.opc" int mx AU = (op[1] >> 6) & 0x03; -#line 650 "rx-decode.opc" +#line 688 "rx-decode.opc" int ss AU = op[1] & 0x03; -#line 650 "rx-decode.opc" +#line 688 "rx-decode.opc" int rsrc AU = (op[3] >> 4) & 0x0f; -#line 650 "rx-decode.opc" +#line 688 "rx-decode.opc" int rdst AU = op[3] & 0x0f; if (trace) { @@ -969,7 +969,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("div %1%S1, %0"); -#line 650 "rx-decode.opc" +#line 688 "rx-decode.opc" ID(div); SPm(ss, rsrc, mx); DR(rdst); F_O___; /*----------------------------------------------------------------------*/ @@ -987,13 +987,13 @@ rx_decode_opcode (unsigned long pc AU, op_semantics_13: { /** 0000 0110 mx10 00ss 0000 1001 rsrc rdst divu %1%S1, %0 */ -#line 662 "rx-decode.opc" +#line 700 "rx-decode.opc" int mx AU = (op[1] >> 6) & 0x03; -#line 662 "rx-decode.opc" +#line 700 "rx-decode.opc" int ss AU = op[1] & 0x03; -#line 662 "rx-decode.opc" +#line 700 "rx-decode.opc" int rsrc AU = (op[3] >> 4) & 0x0f; -#line 662 "rx-decode.opc" +#line 700 "rx-decode.opc" int rdst AU = op[3] & 0x0f; if (trace) { @@ -1006,7 +1006,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("divu %1%S1, %0"); -#line 662 "rx-decode.opc" +#line 700 "rx-decode.opc" ID(divu); SPm(ss, rsrc, mx); DR(rdst); F_O___; /*----------------------------------------------------------------------*/ @@ -1135,13 +1135,13 @@ rx_decode_opcode (unsigned long pc AU, op_semantics_17: { /** 0000 0110 mx10 00sd 0001 0001 rsrc rdst itof %1%S1, %0 */ -#line 891 "rx-decode.opc" +#line 929 "rx-decode.opc" int mx AU = (op[1] >> 6) & 0x03; -#line 891 "rx-decode.opc" +#line 929 "rx-decode.opc" int sd AU = op[1] & 0x03; -#line 891 "rx-decode.opc" +#line 929 "rx-decode.opc" int rsrc AU = (op[3] >> 4) & 0x0f; -#line 891 "rx-decode.opc" +#line 929 "rx-decode.opc" int rdst AU = op[3] & 0x0f; if (trace) { @@ -1154,7 +1154,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("itof %1%S1, %0"); -#line 891 "rx-decode.opc" +#line 929 "rx-decode.opc" ID(itof); DR (rdst); SPm(sd, rsrc, mx); F__SZ_; /*----------------------------------------------------------------------*/ @@ -1164,6 +1164,40 @@ rx_decode_opcode (unsigned long pc AU, break; } break; + case 0x15: + GETBYTE (); + switch (op[3] & 0x00) + { + case 0x00: + op_semantics_18: + { + /** 0000 0110 mx10 00sd 0001 0101 rsrc rdst utof %1%S1, %0 */ +#line 1115 "rx-decode.opc" + int mx AU = (op[1] >> 6) & 0x03; +#line 1115 "rx-decode.opc" + int sd AU = op[1] & 0x03; +#line 1115 "rx-decode.opc" + int rsrc AU = (op[3] >> 4) & 0x0f; +#line 1115 "rx-decode.opc" + int rdst AU = op[3] & 0x0f; + if (trace) + { + printf ("\033[33m%s\033[0m %02x %02x %02x %02x\n", + "/** 0000 0110 mx10 00sd 0001 0101 rsrc rdst utof %1%S1, %0 */", + op[0], op[1], op[2], op[3]); + printf (" mx = 0x%x,", mx); + printf (" sd = 0x%x,", sd); + printf (" rsrc = 0x%x,", rsrc); + printf (" rdst = 0x%x\n", rdst); + } + SYNTAX("utof %1%S1, %0"); +#line 1115 "rx-decode.opc" + ID(utof); DR (rdst); SPm(sd, rsrc, mx); F__SZ_; + + } + break; + } + break; default: UNSUPPORTED(); break; } break; @@ -1270,6 +1304,15 @@ rx_decode_opcode (unsigned long pc AU, break; } break; + case 0x15: + GETBYTE (); + switch (op[3] & 0x00) + { + case 0x00: + goto op_semantics_18; + break; + } + break; default: UNSUPPORTED(); break; } break; @@ -1376,6 +1419,15 @@ rx_decode_opcode (unsigned long pc AU, break; } break; + case 0x15: + GETBYTE (); + switch (op[3] & 0x00) + { + case 0x00: + goto op_semantics_18; + break; + } + break; default: UNSUPPORTED(); break; } break; @@ -1482,6 +1534,15 @@ rx_decode_opcode (unsigned long pc AU, break; } break; + case 0x15: + GETBYTE (); + switch (op[3] & 0x00) + { + case 0x00: + goto op_semantics_18; + break; + } + break; default: UNSUPPORTED(); break; } break; @@ -1804,6 +1865,15 @@ rx_decode_opcode (unsigned long pc AU, break; } break; + case 0x15: + GETBYTE (); + switch (op[3] & 0x00) + { + case 0x00: + goto op_semantics_18; + break; + } + break; default: UNSUPPORTED(); break; } break; @@ -1910,6 +1980,15 @@ rx_decode_opcode (unsigned long pc AU, break; } break; + case 0x15: + GETBYTE (); + switch (op[3] & 0x00) + { + case 0x00: + goto op_semantics_18; + break; + } + break; default: UNSUPPORTED(); break; } break; @@ -2016,6 +2095,15 @@ rx_decode_opcode (unsigned long pc AU, break; } break; + case 0x15: + GETBYTE (); + switch (op[3] & 0x00) + { + case 0x00: + goto op_semantics_18; + break; + } + break; default: UNSUPPORTED(); break; } break; @@ -2122,6 +2210,15 @@ rx_decode_opcode (unsigned long pc AU, break; } break; + case 0x15: + GETBYTE (); + switch (op[3] & 0x00) + { + case 0x00: + goto op_semantics_18; + break; + } + break; default: UNSUPPORTED(); break; } break; @@ -2359,7 +2456,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[3] & 0x00) { case 0x00: - op_semantics_18: + op_semantics_19: { /** 0000 0110 1010 00ss 0000 0010 rsrc rdst adc %1%S1, %0 */ #line 494 "rx-decode.opc" @@ -2478,6 +2575,15 @@ rx_decode_opcode (unsigned long pc AU, break; } break; + case 0x15: + GETBYTE (); + switch (op[3] & 0x00) + { + case 0x00: + goto op_semantics_18; + break; + } + break; default: UNSUPPORTED(); break; } break; @@ -2499,7 +2605,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[3] & 0x00) { case 0x00: - goto op_semantics_18; + goto op_semantics_19; break; } break; @@ -2593,6 +2699,15 @@ rx_decode_opcode (unsigned long pc AU, break; } break; + case 0x15: + GETBYTE (); + switch (op[3] & 0x00) + { + case 0x00: + goto op_semantics_18; + break; + } + break; default: UNSUPPORTED(); break; } break; @@ -2614,7 +2729,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[3] & 0x00) { case 0x00: - goto op_semantics_18; + goto op_semantics_19; break; } break; @@ -2708,6 +2823,15 @@ rx_decode_opcode (unsigned long pc AU, break; } break; + case 0x15: + GETBYTE (); + switch (op[3] & 0x00) + { + case 0x00: + goto op_semantics_18; + break; + } + break; default: UNSUPPORTED(); break; } break; @@ -2729,7 +2853,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[3] & 0x00) { case 0x00: - goto op_semantics_18; + goto op_semantics_19; break; } break; @@ -2823,6 +2947,15 @@ rx_decode_opcode (unsigned long pc AU, break; } break; + case 0x15: + GETBYTE (); + switch (op[3] & 0x00) + { + case 0x00: + goto op_semantics_18; + break; + } + break; default: UNSUPPORTED(); break; } break; @@ -3145,6 +3278,15 @@ rx_decode_opcode (unsigned long pc AU, break; } break; + case 0x15: + GETBYTE (); + switch (op[3] & 0x00) + { + case 0x00: + goto op_semantics_18; + break; + } + break; default: UNSUPPORTED(); break; } break; @@ -3251,6 +3393,15 @@ rx_decode_opcode (unsigned long pc AU, break; } break; + case 0x15: + GETBYTE (); + switch (op[3] & 0x00) + { + case 0x00: + goto op_semantics_18; + break; + } + break; default: UNSUPPORTED(); break; } break; @@ -3357,6 +3508,15 @@ rx_decode_opcode (unsigned long pc AU, break; } break; + case 0x15: + GETBYTE (); + switch (op[3] & 0x00) + { + case 0x00: + goto op_semantics_18; + break; + } + break; default: UNSUPPORTED(); break; } break; @@ -3463,6 +3623,15 @@ rx_decode_opcode (unsigned long pc AU, break; } break; + case 0x15: + GETBYTE (); + switch (op[3] & 0x00) + { + case 0x00: + goto op_semantics_18; + break; + } + break; default: UNSUPPORTED(); break; } break; @@ -3479,7 +3648,7 @@ rx_decode_opcode (unsigned long pc AU, case 0x0f: { /** 0000 1dsp bra.s %a0 */ -#line 737 "rx-decode.opc" +#line 775 "rx-decode.opc" int dsp AU = op[0] & 0x07; if (trace) { @@ -3489,7 +3658,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" dsp = 0x%x\n", dsp); } SYNTAX("bra.s %a0"); -#line 737 "rx-decode.opc" +#line 775 "rx-decode.opc" ID(branch); DC(pc + dsp3map[dsp]); } @@ -3512,9 +3681,9 @@ rx_decode_opcode (unsigned long pc AU, case 0x1f: { /** 0001 n dsp b%1.s %a0 */ -#line 727 "rx-decode.opc" +#line 765 "rx-decode.opc" int n AU = (op[0] >> 3) & 0x01; -#line 727 "rx-decode.opc" +#line 765 "rx-decode.opc" int dsp AU = op[0] & 0x07; if (trace) { @@ -3525,7 +3694,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" dsp = 0x%x\n", dsp); } SYNTAX("b%1.s %a0"); -#line 727 "rx-decode.opc" +#line 765 "rx-decode.opc" ID(branch); Scc(n); DC(pc + dsp3map[dsp]); } @@ -3547,7 +3716,7 @@ rx_decode_opcode (unsigned long pc AU, case 0x2f: { /** 0010 cond b%1.b %a0 */ -#line 730 "rx-decode.opc" +#line 768 "rx-decode.opc" int cond AU = op[0] & 0x0f; if (trace) { @@ -3557,7 +3726,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" cond = 0x%x\n", cond); } SYNTAX("b%1.b %a0"); -#line 730 "rx-decode.opc" +#line 768 "rx-decode.opc" ID(branch); Scc(cond); DC(pc + IMMex (1)); } @@ -3572,7 +3741,7 @@ rx_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("bra.b %a0"); -#line 740 "rx-decode.opc" +#line 778 "rx-decode.opc" ID(branch); DC(pc + IMMex(1)); } @@ -3587,7 +3756,7 @@ rx_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("bra.w %a0"); -#line 743 "rx-decode.opc" +#line 781 "rx-decode.opc" ID(branch); DC(pc + IMMex(2)); } @@ -3602,7 +3771,7 @@ rx_decode_opcode (unsigned long pc AU, op[0]); } SYNTAX("bsr.w %a0"); -#line 759 "rx-decode.opc" +#line 797 "rx-decode.opc" ID(jsr); DC(pc + IMMex(2)); } @@ -3611,7 +3780,7 @@ rx_decode_opcode (unsigned long pc AU, case 0x3b: { /** 0011 101c b%1.w %a0 */ -#line 733 "rx-decode.opc" +#line 771 "rx-decode.opc" int c AU = op[0] & 0x01; if (trace) { @@ -3621,7 +3790,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" c = 0x%x\n", c); } SYNTAX("b%1.w %a0"); -#line 733 "rx-decode.opc" +#line 771 "rx-decode.opc" ID(branch); Scc(c); DC(pc + IMMex (2)); @@ -3632,7 +3801,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - op_semantics_19: + op_semantics_20: { /** 0011 11sz d dst sppp mov%s #%1, %0 */ #line 307 "rx-decode.opc" @@ -3666,7 +3835,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_19; + goto op_semantics_20; break; } break; @@ -3675,7 +3844,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_19; + goto op_semantics_20; break; } break; @@ -3714,7 +3883,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - op_semantics_20: + op_semantics_21: { /** 0100 00ss rsrc rdst sub %2%S2, %1 */ #line 539 "rx-decode.opc" @@ -3745,7 +3914,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_20; + goto op_semantics_21; break; } break; @@ -3754,7 +3923,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_20; + goto op_semantics_21; break; } break; @@ -3763,7 +3932,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_20; + goto op_semantics_21; break; } break; @@ -3772,7 +3941,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - op_semantics_21: + op_semantics_22: { /** 0100 01ss rsrc rdst cmp %2%S2, %1 */ #line 527 "rx-decode.opc" @@ -3803,7 +3972,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_21; + goto op_semantics_22; break; } break; @@ -3812,7 +3981,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_21; + goto op_semantics_22; break; } break; @@ -3821,7 +3990,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_21; + goto op_semantics_22; break; } break; @@ -3830,7 +3999,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - op_semantics_22: + op_semantics_23: { /** 0100 10ss rsrc rdst add %1%S1, %0 */ #line 503 "rx-decode.opc" @@ -3861,7 +4030,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_22; + goto op_semantics_23; break; } break; @@ -3870,7 +4039,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_22; + goto op_semantics_23; break; } break; @@ -3879,7 +4048,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_22; + goto op_semantics_23; break; } break; @@ -3888,14 +4057,14 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - op_semantics_23: + op_semantics_24: { /** 0100 11ss rsrc rdst mul %1%S1, %0 */ -#line 608 "rx-decode.opc" +#line 646 "rx-decode.opc" int ss AU = op[0] & 0x03; -#line 608 "rx-decode.opc" +#line 646 "rx-decode.opc" int rsrc AU = (op[1] >> 4) & 0x0f; -#line 608 "rx-decode.opc" +#line 646 "rx-decode.opc" int rdst AU = op[1] & 0x0f; if (trace) { @@ -3907,7 +4076,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("mul %1%S1, %0"); -#line 608 "rx-decode.opc" +#line 646 "rx-decode.opc" ID(mul); SP(ss, rsrc); DR(rdst); F_____; } @@ -3919,7 +4088,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_23; + goto op_semantics_24; break; } break; @@ -3928,7 +4097,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_23; + goto op_semantics_24; break; } break; @@ -3937,7 +4106,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_23; + goto op_semantics_24; break; } break; @@ -3946,7 +4115,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - op_semantics_24: + op_semantics_25: { /** 0101 00ss rsrc rdst and %1%S1, %0 */ #line 416 "rx-decode.opc" @@ -3977,7 +4146,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_24; + goto op_semantics_25; break; } break; @@ -3986,7 +4155,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_24; + goto op_semantics_25; break; } break; @@ -3995,7 +4164,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_24; + goto op_semantics_25; break; } break; @@ -4004,7 +4173,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - op_semantics_25: + op_semantics_26: { /** 0101 01ss rsrc rdst or %1%S1, %0 */ #line 434 "rx-decode.opc" @@ -4035,7 +4204,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_25; + goto op_semantics_26; break; } break; @@ -4044,7 +4213,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_25; + goto op_semantics_26; break; } break; @@ -4053,7 +4222,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_25; + goto op_semantics_26; break; } break; @@ -4062,7 +4231,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - op_semantics_26: + op_semantics_27: { /** 0101 1 s ss rsrc rdst movu%s %1, %0 */ #line 355 "rx-decode.opc" @@ -4096,7 +4265,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_26; + goto op_semantics_27; break; } break; @@ -4105,7 +4274,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_26; + goto op_semantics_27; break; } break; @@ -4114,7 +4283,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_26; + goto op_semantics_27; break; } break; @@ -4123,7 +4292,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_26; + goto op_semantics_27; break; } break; @@ -4132,7 +4301,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_26; + goto op_semantics_27; break; } break; @@ -4141,7 +4310,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_26; + goto op_semantics_27; break; } break; @@ -4150,7 +4319,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_26; + goto op_semantics_27; break; } break; @@ -4242,9 +4411,9 @@ rx_decode_opcode (unsigned long pc AU, case 0x00: { /** 0110 0011 immm rdst mul #%1, %0 */ -#line 602 "rx-decode.opc" +#line 612 "rx-decode.opc" int immm AU = (op[1] >> 4) & 0x0f; -#line 602 "rx-decode.opc" +#line 612 "rx-decode.opc" int rdst AU = op[1] & 0x0f; if (trace) { @@ -4255,17 +4424,18 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("mul #%1, %0"); -#line 602 "rx-decode.opc" - if (immm == 1 && rdst == 0) - { - ID(nop2); - SYNTAX ("nop\t; mul\t#1, r0"); - } - else - { - ID(mul); - } - DR(rdst); SC(immm); F_____; +#line 612 "rx-decode.opc" + if (immm == 1 && rdst == 0) + { + ID(nop2); + SYNTAX ("nop\t; mul\t#1, r0"); + } + else + { + ID(mul); + } + DR(rdst); SC(immm); F_____; + } break; } @@ -4371,14 +4541,14 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - op_semantics_27: + op_semantics_28: { /** 0110 100i mmmm rdst shlr #%2, %0 */ -#line 688 "rx-decode.opc" +#line 726 "rx-decode.opc" int i AU = op[0] & 0x01; -#line 688 "rx-decode.opc" +#line 726 "rx-decode.opc" int mmmm AU = (op[1] >> 4) & 0x0f; -#line 688 "rx-decode.opc" +#line 726 "rx-decode.opc" int rdst AU = op[1] & 0x0f; if (trace) { @@ -4390,7 +4560,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("shlr #%2, %0"); -#line 688 "rx-decode.opc" +#line 726 "rx-decode.opc" ID(shlr); S2C(i*16+mmmm); SR(rdst); DR(rdst); F__SZC; } @@ -4402,7 +4572,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_27; + goto op_semantics_28; break; } break; @@ -4411,14 +4581,14 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - op_semantics_28: + op_semantics_29: { /** 0110 101i mmmm rdst shar #%2, %0 */ -#line 678 "rx-decode.opc" +#line 716 "rx-decode.opc" int i AU = op[0] & 0x01; -#line 678 "rx-decode.opc" +#line 716 "rx-decode.opc" int mmmm AU = (op[1] >> 4) & 0x0f; -#line 678 "rx-decode.opc" +#line 716 "rx-decode.opc" int rdst AU = op[1] & 0x0f; if (trace) { @@ -4430,7 +4600,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("shar #%2, %0"); -#line 678 "rx-decode.opc" +#line 716 "rx-decode.opc" ID(shar); S2C(i*16+mmmm); SR(rdst); DR(rdst); F_0SZC; } @@ -4442,7 +4612,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_28; + goto op_semantics_29; break; } break; @@ -4451,14 +4621,14 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - op_semantics_29: + op_semantics_30: { /** 0110 110i mmmm rdst shll #%2, %0 */ -#line 668 "rx-decode.opc" +#line 706 "rx-decode.opc" int i AU = op[0] & 0x01; -#line 668 "rx-decode.opc" +#line 706 "rx-decode.opc" int mmmm AU = (op[1] >> 4) & 0x0f; -#line 668 "rx-decode.opc" +#line 706 "rx-decode.opc" int rdst AU = op[1] & 0x0f; if (trace) { @@ -4470,7 +4640,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("shll #%2, %0"); -#line 668 "rx-decode.opc" +#line 706 "rx-decode.opc" ID(shll); S2C(i*16+mmmm); SR(rdst); DR(rdst); F_OSZC; } @@ -4482,7 +4652,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_29; + goto op_semantics_30; break; } break; @@ -4545,7 +4715,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - op_semantics_30: + op_semantics_31: { /** 0111 00im rsrc rdst add #%1, %2, %0 */ #line 509 "rx-decode.opc" @@ -4576,7 +4746,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_30; + goto op_semantics_31; break; } break; @@ -4585,7 +4755,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_30; + goto op_semantics_31; break; } break; @@ -4594,7 +4764,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_30; + goto op_semantics_31; break; } break; @@ -4603,7 +4773,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0xf0) { case 0x00: - op_semantics_31: + op_semantics_32: { /** 0111 01im 0000 rsrc cmp #%2, %1%S1 */ #line 521 "rx-decode.opc" @@ -4625,14 +4795,13 @@ rx_decode_opcode (unsigned long pc AU, } break; case 0x10: - op_semantics_32: + op_semantics_33: { /** 0111 01im 0001rdst mul #%1, %0 */ -#line 605 "rx-decode.opc" +#line 624 "rx-decode.opc" int im AU = op[0] & 0x03; -#line 605 "rx-decode.opc" +#line 624 "rx-decode.opc" int rdst AU = op[1] & 0x0f; - int val = IMMex(im); if (trace) { printf ("\033[33m%s\033[0m %02x %02x\n", @@ -4642,31 +4811,32 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("mul #%1, %0"); -#line 605 "rx-decode.opc" - if (val == 1 && rdst == 0) - { - SYNTAX("nop\t; mul\t#1, r0"); - switch (im) - { - case 2: ID(nop4); break; - case 3: ID(nop5); break; - case 0: ID(nop6); break; - default: - ID(mul); - SYNTAX("mul #%1, %0"); - break; - } - } - else - { - ID(mul); - } - DR(rdst); SC(val); F_____; +#line 624 "rx-decode.opc" + int val = IMMex(im); + if (val == 1 && rdst == 0) + { + SYNTAX("nop\t; mul\t#1, r0"); + switch (im) + { + case 2: ID(nop4); break; + case 3: ID(nop5); break; + case 0: ID(nop6); break; + default: + ID(mul); + SYNTAX("mul #%1, %0"); + break; + } + } + else + { + ID(mul); + } + DR(rdst); SC(val); F_____; } break; case 0x20: - op_semantics_33: + op_semantics_34: { /** 0111 01im 0010 rdst and #%1, %0 */ #line 413 "rx-decode.opc" @@ -4688,7 +4858,7 @@ rx_decode_opcode (unsigned long pc AU, } break; case 0x30: - op_semantics_34: + op_semantics_35: { /** 0111 01im 0011 rdst or #%1, %0 */ #line 431 "rx-decode.opc" @@ -4732,7 +4902,7 @@ rx_decode_opcode (unsigned long pc AU, case 0x0d: case 0x0e: case 0x0f: - goto op_semantics_31; + goto op_semantics_32; break; case 0x10: case 0x11: @@ -4750,7 +4920,7 @@ rx_decode_opcode (unsigned long pc AU, case 0x1d: case 0x1e: case 0x1f: - goto op_semantics_32; + goto op_semantics_33; break; case 0x20: case 0x21: @@ -4768,7 +4938,7 @@ rx_decode_opcode (unsigned long pc AU, case 0x2d: case 0x2e: case 0x2f: - goto op_semantics_33; + goto op_semantics_34; break; case 0x30: case 0x31: @@ -4786,7 +4956,7 @@ rx_decode_opcode (unsigned long pc AU, case 0x3d: case 0x3e: case 0x3f: - goto op_semantics_34; + goto op_semantics_35; break; case 0x40: case 0x41: @@ -4864,7 +5034,7 @@ rx_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("int #%1"); -#line 993 "rx-decode.opc" +#line 1031 "rx-decode.opc" ID(int); SC(IMM(1)); } @@ -4876,7 +5046,7 @@ rx_decode_opcode (unsigned long pc AU, case 0x00: { /** 0111 0101 0111 0000 0000 immm mvtipl #%1 */ -#line 960 "rx-decode.opc" +#line 998 "rx-decode.opc" int immm AU = op[2] & 0x0f; if (trace) { @@ -4886,7 +5056,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" immm = 0x%x\n", immm); } SYNTAX("mvtipl #%1"); -#line 960 "rx-decode.opc" +#line 998 "rx-decode.opc" ID(mvtipl); SC(immm); } @@ -4902,16 +5072,16 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0xf0) { case 0x00: - goto op_semantics_31; + goto op_semantics_32; break; case 0x10: - goto op_semantics_32; + goto op_semantics_33; break; case 0x20: - goto op_semantics_33; + goto op_semantics_34; break; case 0x30: - goto op_semantics_34; + goto op_semantics_35; break; default: UNSUPPORTED(); break; } @@ -4921,16 +5091,16 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0xf0) { case 0x00: - goto op_semantics_31; + goto op_semantics_32; break; case 0x10: - goto op_semantics_32; + goto op_semantics_33; break; case 0x20: - goto op_semantics_33; + goto op_semantics_34; break; case 0x30: - goto op_semantics_34; + goto op_semantics_35; break; default: UNSUPPORTED(); break; } @@ -4940,14 +5110,14 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - op_semantics_35: + op_semantics_36: { /** 0111 100b ittt rdst bset #%1, %0 */ -#line 905 "rx-decode.opc" +#line 943 "rx-decode.opc" int b AU = op[0] & 0x01; -#line 905 "rx-decode.opc" +#line 943 "rx-decode.opc" int ittt AU = (op[1] >> 4) & 0x0f; -#line 905 "rx-decode.opc" +#line 943 "rx-decode.opc" int rdst AU = op[1] & 0x0f; if (trace) { @@ -4959,7 +5129,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("bset #%1, %0"); -#line 905 "rx-decode.opc" +#line 943 "rx-decode.opc" ID(bset); BWL(LSIZE); SC(b*16+ittt); DR(rdst); F_____; @@ -4972,7 +5142,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_35; + goto op_semantics_36; break; } break; @@ -4981,14 +5151,14 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - op_semantics_36: + op_semantics_37: { /** 0111 101b ittt rdst bclr #%1, %0 */ -#line 917 "rx-decode.opc" +#line 955 "rx-decode.opc" int b AU = op[0] & 0x01; -#line 917 "rx-decode.opc" +#line 955 "rx-decode.opc" int ittt AU = (op[1] >> 4) & 0x0f; -#line 917 "rx-decode.opc" +#line 955 "rx-decode.opc" int rdst AU = op[1] & 0x0f; if (trace) { @@ -5000,7 +5170,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("bclr #%1, %0"); -#line 917 "rx-decode.opc" +#line 955 "rx-decode.opc" ID(bclr); BWL(LSIZE); SC(b*16+ittt); DR(rdst); F_____; @@ -5013,7 +5183,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_36; + goto op_semantics_37; break; } break; @@ -5022,14 +5192,14 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - op_semantics_37: + op_semantics_38: { /** 0111 110b ittt rdst btst #%2, %1 */ -#line 929 "rx-decode.opc" +#line 967 "rx-decode.opc" int b AU = op[0] & 0x01; -#line 929 "rx-decode.opc" +#line 967 "rx-decode.opc" int ittt AU = (op[1] >> 4) & 0x0f; -#line 929 "rx-decode.opc" +#line 967 "rx-decode.opc" int rdst AU = op[1] & 0x0f; if (trace) { @@ -5041,7 +5211,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("btst #%2, %1"); -#line 929 "rx-decode.opc" +#line 967 "rx-decode.opc" ID(btst); BWL(LSIZE); S2C(b*16+ittt); SR(rdst); F___ZC; @@ -5054,7 +5224,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_37; + goto op_semantics_38; break; } break; @@ -5119,7 +5289,7 @@ rx_decode_opcode (unsigned long pc AU, case 0x30: { /** 0111 1110 0011 rdst sat %0 */ -#line 843 "rx-decode.opc" +#line 881 "rx-decode.opc" int rdst AU = op[1] & 0x0f; if (trace) { @@ -5129,7 +5299,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("sat %0"); -#line 843 "rx-decode.opc" +#line 881 "rx-decode.opc" ID(sat); DR (rdst); } @@ -5137,7 +5307,7 @@ rx_decode_opcode (unsigned long pc AU, case 0x40: { /** 0111 1110 0100 rdst rorc %0 */ -#line 703 "rx-decode.opc" +#line 741 "rx-decode.opc" int rdst AU = op[1] & 0x0f; if (trace) { @@ -5147,7 +5317,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("rorc %0"); -#line 703 "rx-decode.opc" +#line 741 "rx-decode.opc" ID(rorc); DR(rdst); F__SZC; } @@ -5155,7 +5325,7 @@ rx_decode_opcode (unsigned long pc AU, case 0x50: { /** 0111 1110 0101 rdst rolc %0 */ -#line 700 "rx-decode.opc" +#line 738 "rx-decode.opc" int rdst AU = op[1] & 0x0f; if (trace) { @@ -5165,7 +5335,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("rolc %0"); -#line 700 "rx-decode.opc" +#line 738 "rx-decode.opc" ID(rolc); DR(rdst); F__SZC; } @@ -5215,7 +5385,7 @@ rx_decode_opcode (unsigned long pc AU, case 0xd0: { /** 0111 1110 110 crsrc pushc %1 */ -#line 966 "rx-decode.opc" +#line 1004 "rx-decode.opc" int crsrc AU = op[1] & 0x1f; if (trace) { @@ -5225,7 +5395,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" crsrc = 0x%x\n", crsrc); } SYNTAX("pushc %1"); -#line 966 "rx-decode.opc" +#line 1004 "rx-decode.opc" ID(mov); OP(0, RX_Operand_Predec, 0, 0); SR(crsrc + 16); } @@ -5234,7 +5404,7 @@ rx_decode_opcode (unsigned long pc AU, case 0xf0: { /** 0111 1110 111 crdst popc %0 */ -#line 963 "rx-decode.opc" +#line 1001 "rx-decode.opc" int crdst AU = op[1] & 0x1f; if (trace) { @@ -5244,7 +5414,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" crdst = 0x%x\n", crdst); } SYNTAX("popc %0"); -#line 963 "rx-decode.opc" +#line 1001 "rx-decode.opc" ID(mov); OP(1, RX_Operand_Postinc, 0, 0); DR(crdst + 16); } @@ -5274,7 +5444,7 @@ rx_decode_opcode (unsigned long pc AU, case 0x0f: { /** 0111 1111 0000 rsrc jmp %0 */ -#line 753 "rx-decode.opc" +#line 791 "rx-decode.opc" int rsrc AU = op[1] & 0x0f; if (trace) { @@ -5284,7 +5454,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rsrc = 0x%x\n", rsrc); } SYNTAX("jmp %0"); -#line 753 "rx-decode.opc" +#line 791 "rx-decode.opc" ID(branch); DR(rsrc); } @@ -5307,7 +5477,7 @@ rx_decode_opcode (unsigned long pc AU, case 0x1f: { /** 0111 1111 0001 rsrc jsr %0 */ -#line 756 "rx-decode.opc" +#line 794 "rx-decode.opc" int rsrc AU = op[1] & 0x0f; if (trace) { @@ -5317,7 +5487,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rsrc = 0x%x\n", rsrc); } SYNTAX("jsr %0"); -#line 756 "rx-decode.opc" +#line 794 "rx-decode.opc" ID(jsr); DR(rsrc); } @@ -5340,7 +5510,7 @@ rx_decode_opcode (unsigned long pc AU, case 0x4f: { /** 0111 1111 0100 rsrc bra.l %0 */ -#line 749 "rx-decode.opc" +#line 787 "rx-decode.opc" int rsrc AU = op[1] & 0x0f; if (trace) { @@ -5350,7 +5520,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rsrc = 0x%x\n", rsrc); } SYNTAX("bra.l %0"); -#line 749 "rx-decode.opc" +#line 787 "rx-decode.opc" ID(branchrel); DR(rsrc); @@ -5374,7 +5544,7 @@ rx_decode_opcode (unsigned long pc AU, case 0x5f: { /** 0111 1111 0101 rsrc bsr.l %0 */ -#line 765 "rx-decode.opc" +#line 803 "rx-decode.opc" int rsrc AU = op[1] & 0x0f; if (trace) { @@ -5384,7 +5554,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rsrc = 0x%x\n", rsrc); } SYNTAX("bsr.l %0"); -#line 765 "rx-decode.opc" +#line 803 "rx-decode.opc" ID(jsrrel); DR(rsrc); } @@ -5394,7 +5564,7 @@ rx_decode_opcode (unsigned long pc AU, case 0x82: { /** 0111 1111 1000 00sz suntil%s */ -#line 789 "rx-decode.opc" +#line 827 "rx-decode.opc" int sz AU = op[1] & 0x03; if (trace) { @@ -5404,7 +5574,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" sz = 0x%x\n", sz); } SYNTAX("suntil%s"); -#line 789 "rx-decode.opc" +#line 827 "rx-decode.opc" ID(suntil); BWL(sz); F___ZC; } @@ -5419,7 +5589,7 @@ rx_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("scmpu"); -#line 780 "rx-decode.opc" +#line 818 "rx-decode.opc" ID(scmpu); F___ZC; } @@ -5429,7 +5599,7 @@ rx_decode_opcode (unsigned long pc AU, case 0x86: { /** 0111 1111 1000 01sz swhile%s */ -#line 792 "rx-decode.opc" +#line 830 "rx-decode.opc" int sz AU = op[1] & 0x03; if (trace) { @@ -5439,7 +5609,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" sz = 0x%x\n", sz); } SYNTAX("swhile%s"); -#line 792 "rx-decode.opc" +#line 830 "rx-decode.opc" ID(swhile); BWL(sz); F___ZC; } @@ -5454,7 +5624,7 @@ rx_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("smovu"); -#line 783 "rx-decode.opc" +#line 821 "rx-decode.opc" ID(smovu); } @@ -5464,7 +5634,7 @@ rx_decode_opcode (unsigned long pc AU, case 0x8a: { /** 0111 1111 1000 10sz sstr%s */ -#line 798 "rx-decode.opc" +#line 836 "rx-decode.opc" int sz AU = op[1] & 0x03; if (trace) { @@ -5474,7 +5644,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" sz = 0x%x\n", sz); } SYNTAX("sstr%s"); -#line 798 "rx-decode.opc" +#line 836 "rx-decode.opc" ID(sstr); BWL(sz); /*----------------------------------------------------------------------*/ @@ -5492,7 +5662,7 @@ rx_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("smovb"); -#line 786 "rx-decode.opc" +#line 824 "rx-decode.opc" ID(smovb); } @@ -5502,7 +5672,7 @@ rx_decode_opcode (unsigned long pc AU, case 0x8e: { /** 0111 1111 1000 11sz rmpa%s */ -#line 804 "rx-decode.opc" +#line 842 "rx-decode.opc" int sz AU = op[1] & 0x03; if (trace) { @@ -5512,7 +5682,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" sz = 0x%x\n", sz); } SYNTAX("rmpa%s"); -#line 804 "rx-decode.opc" +#line 842 "rx-decode.opc" ID(rmpa); BWL(sz); F_OS__; /*----------------------------------------------------------------------*/ @@ -5530,7 +5700,7 @@ rx_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("smovf"); -#line 795 "rx-decode.opc" +#line 833 "rx-decode.opc" ID(smovf); } @@ -5545,7 +5715,7 @@ rx_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("satr"); -#line 846 "rx-decode.opc" +#line 884 "rx-decode.opc" ID(satr); /*----------------------------------------------------------------------*/ @@ -5563,7 +5733,7 @@ rx_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("rtfi"); -#line 981 "rx-decode.opc" +#line 1019 "rx-decode.opc" ID(rtfi); } @@ -5578,7 +5748,7 @@ rx_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("rte"); -#line 984 "rx-decode.opc" +#line 1022 "rx-decode.opc" ID(rte); } @@ -5593,7 +5763,7 @@ rx_decode_opcode (unsigned long pc AU, op[0], op[1]); } SYNTAX("wait"); -#line 996 "rx-decode.opc" +#line 1034 "rx-decode.opc" ID(wait); /*----------------------------------------------------------------------*/ @@ -5619,7 +5789,7 @@ rx_decode_opcode (unsigned long pc AU, case 0xaf: { /** 0111 1111 1010 rdst setpsw %0 */ -#line 957 "rx-decode.opc" +#line 995 "rx-decode.opc" int rdst AU = op[1] & 0x0f; if (trace) { @@ -5629,7 +5799,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("setpsw %0"); -#line 957 "rx-decode.opc" +#line 995 "rx-decode.opc" ID(setpsw); DF(rdst); } @@ -5652,7 +5822,7 @@ rx_decode_opcode (unsigned long pc AU, case 0xbf: { /** 0111 1111 1011 rdst clrpsw %0 */ -#line 954 "rx-decode.opc" +#line 992 "rx-decode.opc" int rdst AU = op[1] & 0x0f; if (trace) { @@ -5662,7 +5832,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("clrpsw %0"); -#line 954 "rx-decode.opc" +#line 992 "rx-decode.opc" ID(clrpsw); DF(rdst); } @@ -5675,7 +5845,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - op_semantics_38: + op_semantics_39: { /** 10sz 0dsp a dst b src mov%s %1, %0 */ #line 332 "rx-decode.opc" @@ -5715,7 +5885,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_38; + goto op_semantics_39; break; } break; @@ -5724,7 +5894,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_38; + goto op_semantics_39; break; } break; @@ -5733,7 +5903,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_38; + goto op_semantics_39; break; } break; @@ -5742,7 +5912,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_38; + goto op_semantics_39; break; } break; @@ -5751,7 +5921,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_38; + goto op_semantics_39; break; } break; @@ -5760,7 +5930,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_38; + goto op_semantics_39; break; } break; @@ -5769,7 +5939,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_38; + goto op_semantics_39; break; } break; @@ -5778,7 +5948,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - op_semantics_39: + op_semantics_40: { /** 10sz 1dsp a src b dst mov%s %1, %0 */ #line 329 "rx-decode.opc" @@ -5818,7 +5988,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_39; + goto op_semantics_40; break; } break; @@ -5827,7 +5997,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_39; + goto op_semantics_40; break; } break; @@ -5836,7 +6006,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_39; + goto op_semantics_40; break; } break; @@ -5845,7 +6015,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_39; + goto op_semantics_40; break; } break; @@ -5854,7 +6024,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_39; + goto op_semantics_40; break; } break; @@ -5863,7 +6033,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_39; + goto op_semantics_40; break; } break; @@ -5872,7 +6042,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_39; + goto op_semantics_40; break; } break; @@ -5881,7 +6051,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_38; + goto op_semantics_39; break; } break; @@ -5890,7 +6060,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_38; + goto op_semantics_39; break; } break; @@ -5899,7 +6069,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_38; + goto op_semantics_39; break; } break; @@ -5908,7 +6078,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_38; + goto op_semantics_39; break; } break; @@ -5917,7 +6087,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_38; + goto op_semantics_39; break; } break; @@ -5926,7 +6096,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_38; + goto op_semantics_39; break; } break; @@ -5935,7 +6105,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_38; + goto op_semantics_39; break; } break; @@ -5944,7 +6114,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_38; + goto op_semantics_39; break; } break; @@ -5953,7 +6123,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_39; + goto op_semantics_40; break; } break; @@ -5962,7 +6132,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_39; + goto op_semantics_40; break; } break; @@ -5971,7 +6141,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_39; + goto op_semantics_40; break; } break; @@ -5980,7 +6150,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_39; + goto op_semantics_40; break; } break; @@ -5989,7 +6159,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_39; + goto op_semantics_40; break; } break; @@ -5998,7 +6168,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_39; + goto op_semantics_40; break; } break; @@ -6007,7 +6177,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_39; + goto op_semantics_40; break; } break; @@ -6016,7 +6186,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_39; + goto op_semantics_40; break; } break; @@ -6025,7 +6195,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_38; + goto op_semantics_39; break; } break; @@ -6034,7 +6204,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_38; + goto op_semantics_39; break; } break; @@ -6043,7 +6213,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_38; + goto op_semantics_39; break; } break; @@ -6052,7 +6222,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_38; + goto op_semantics_39; break; } break; @@ -6061,7 +6231,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_38; + goto op_semantics_39; break; } break; @@ -6070,7 +6240,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_38; + goto op_semantics_39; break; } break; @@ -6079,7 +6249,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_38; + goto op_semantics_39; break; } break; @@ -6088,7 +6258,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_38; + goto op_semantics_39; break; } break; @@ -6097,7 +6267,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_39; + goto op_semantics_40; break; } break; @@ -6106,7 +6276,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_39; + goto op_semantics_40; break; } break; @@ -6115,7 +6285,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_39; + goto op_semantics_40; break; } break; @@ -6124,7 +6294,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_39; + goto op_semantics_40; break; } break; @@ -6133,7 +6303,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_39; + goto op_semantics_40; break; } break; @@ -6142,7 +6312,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_39; + goto op_semantics_40; break; } break; @@ -6151,7 +6321,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_39; + goto op_semantics_40; break; } break; @@ -6160,7 +6330,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_39; + goto op_semantics_40; break; } break; @@ -6169,7 +6339,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - op_semantics_40: + op_semantics_41: { /** 1011 w dsp a src b dst movu%s %1, %0 */ #line 352 "rx-decode.opc" @@ -6209,7 +6379,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_40; + goto op_semantics_41; break; } break; @@ -6218,7 +6388,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_40; + goto op_semantics_41; break; } break; @@ -6227,7 +6397,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_40; + goto op_semantics_41; break; } break; @@ -6236,7 +6406,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_40; + goto op_semantics_41; break; } break; @@ -6245,7 +6415,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_40; + goto op_semantics_41; break; } break; @@ -6254,7 +6424,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_40; + goto op_semantics_41; break; } break; @@ -6263,7 +6433,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_40; + goto op_semantics_41; break; } break; @@ -6272,7 +6442,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_40; + goto op_semantics_41; break; } break; @@ -6281,7 +6451,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_40; + goto op_semantics_41; break; } break; @@ -6290,7 +6460,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_40; + goto op_semantics_41; break; } break; @@ -6299,7 +6469,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_40; + goto op_semantics_41; break; } break; @@ -6308,7 +6478,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_40; + goto op_semantics_41; break; } break; @@ -6317,7 +6487,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_40; + goto op_semantics_41; break; } break; @@ -6326,7 +6496,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_40; + goto op_semantics_41; break; } break; @@ -6335,7 +6505,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_40; + goto op_semantics_41; break; } break; @@ -6344,7 +6514,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - op_semantics_41: + op_semantics_42: { /** 11sz sd ss rsrc rdst mov%s %1, %0 */ #line 310 "rx-decode.opc" @@ -6379,13 +6549,13 @@ rx_decode_opcode (unsigned long pc AU, { ID(mov); sBWL(sz); F_____; if ((ss == 3) && (sd != 3)) - { - SD(ss, rdst, sz); DD(sd, rsrc, sz); - } + { + SD(ss, rdst, sz); DD(sd, rsrc, sz); + } else - { - SD(ss, rsrc, sz); DD(sd, rdst, sz); - } + { + SD(ss, rsrc, sz); DD(sd, rdst, sz); + } } } @@ -6397,7 +6567,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6406,7 +6576,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6415,7 +6585,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6424,7 +6594,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6433,7 +6603,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6442,7 +6612,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6451,7 +6621,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6460,7 +6630,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6469,7 +6639,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6478,7 +6648,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6487,7 +6657,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6496,7 +6666,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6505,7 +6675,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6514,7 +6684,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6523,7 +6693,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6532,7 +6702,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6541,7 +6711,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6550,7 +6720,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6559,7 +6729,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6568,7 +6738,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6577,7 +6747,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6586,7 +6756,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6595,7 +6765,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6604,7 +6774,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6613,7 +6783,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6622,7 +6792,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6631,7 +6801,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6640,7 +6810,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6649,7 +6819,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6658,7 +6828,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6667,7 +6837,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6676,7 +6846,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6685,7 +6855,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6694,7 +6864,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6703,7 +6873,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6712,7 +6882,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6721,7 +6891,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6730,7 +6900,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6739,7 +6909,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6748,7 +6918,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6757,7 +6927,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6766,7 +6936,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6775,7 +6945,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6784,7 +6954,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6793,7 +6963,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6802,7 +6972,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6811,7 +6981,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_41; + goto op_semantics_42; break; } break; @@ -6820,14 +6990,14 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x08) { case 0x00: - op_semantics_42: + op_semantics_43: { /** 1111 00sd rdst 0bit bset #%1, %0%S0 */ -#line 897 "rx-decode.opc" +#line 935 "rx-decode.opc" int sd AU = op[0] & 0x03; -#line 897 "rx-decode.opc" +#line 935 "rx-decode.opc" int rdst AU = (op[1] >> 4) & 0x0f; -#line 897 "rx-decode.opc" +#line 935 "rx-decode.opc" int bit AU = op[1] & 0x07; if (trace) { @@ -6839,20 +7009,20 @@ rx_decode_opcode (unsigned long pc AU, printf (" bit = 0x%x\n", bit); } SYNTAX("bset #%1, %0%S0"); -#line 897 "rx-decode.opc" +#line 935 "rx-decode.opc" ID(bset); BWL(BSIZE); SC(bit); DD(sd, rdst, BSIZE); F_____; } break; case 0x08: - op_semantics_43: + op_semantics_44: { /** 1111 00sd rdst 1bit bclr #%1, %0%S0 */ -#line 909 "rx-decode.opc" +#line 947 "rx-decode.opc" int sd AU = op[0] & 0x03; -#line 909 "rx-decode.opc" +#line 947 "rx-decode.opc" int rdst AU = (op[1] >> 4) & 0x0f; -#line 909 "rx-decode.opc" +#line 947 "rx-decode.opc" int bit AU = op[1] & 0x07; if (trace) { @@ -6864,7 +7034,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" bit = 0x%x\n", bit); } SYNTAX("bclr #%1, %0%S0"); -#line 909 "rx-decode.opc" +#line 947 "rx-decode.opc" ID(bclr); BWL(BSIZE); SC(bit); DD(sd, rdst, BSIZE); F_____; } @@ -6876,10 +7046,10 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x08) { case 0x00: - goto op_semantics_42; + goto op_semantics_43; break; case 0x08: - goto op_semantics_43; + goto op_semantics_44; break; } break; @@ -6888,10 +7058,10 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x08) { case 0x00: - goto op_semantics_42; + goto op_semantics_43; break; case 0x08: - goto op_semantics_43; + goto op_semantics_44; break; } break; @@ -6900,10 +7070,10 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x08) { case 0x00: - goto op_semantics_42; + goto op_semantics_43; break; case 0x08: - goto op_semantics_43; + goto op_semantics_44; break; } break; @@ -6913,14 +7083,14 @@ rx_decode_opcode (unsigned long pc AU, { case 0x00: case 0x04: - op_semantics_44: + op_semantics_45: { /** 1111 01sd rdst 0bit btst #%2, %1%S1 */ -#line 921 "rx-decode.opc" +#line 959 "rx-decode.opc" int sd AU = op[0] & 0x03; -#line 921 "rx-decode.opc" +#line 959 "rx-decode.opc" int rdst AU = (op[1] >> 4) & 0x0f; -#line 921 "rx-decode.opc" +#line 959 "rx-decode.opc" int bit AU = op[1] & 0x07; if (trace) { @@ -6932,13 +7102,13 @@ rx_decode_opcode (unsigned long pc AU, printf (" bit = 0x%x\n", bit); } SYNTAX("btst #%2, %1%S1"); -#line 921 "rx-decode.opc" +#line 959 "rx-decode.opc" ID(btst); BWL(BSIZE); S2C(bit); SD(sd, rdst, BSIZE); F___ZC; } break; case 0x08: - op_semantics_45: + op_semantics_46: { /** 1111 01ss rsrc 10sz push%s %1 */ #line 377 "rx-decode.opc" @@ -6974,10 +7144,10 @@ rx_decode_opcode (unsigned long pc AU, { case 0x00: case 0x04: - goto op_semantics_44; + goto op_semantics_45; break; case 0x08: - goto op_semantics_45; + goto op_semantics_46; break; default: UNSUPPORTED(); break; } @@ -6988,10 +7158,10 @@ rx_decode_opcode (unsigned long pc AU, { case 0x00: case 0x04: - goto op_semantics_44; + goto op_semantics_45; break; case 0x08: - goto op_semantics_45; + goto op_semantics_46; break; default: UNSUPPORTED(); break; } @@ -7002,10 +7172,10 @@ rx_decode_opcode (unsigned long pc AU, { case 0x00: case 0x04: - goto op_semantics_44; + goto op_semantics_45; break; case 0x08: - goto op_semantics_45; + goto op_semantics_46; break; default: UNSUPPORTED(); break; } @@ -7015,7 +7185,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - op_semantics_46: + op_semantics_47: { /** 1111 10sd rdst im sz mov%s #%1, %0 */ #line 288 "rx-decode.opc" @@ -7062,7 +7232,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_46; + goto op_semantics_47; break; } break; @@ -7071,7 +7241,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_46; + goto op_semantics_47; break; } break; @@ -7080,7 +7250,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[1] & 0x00) { case 0x00: - goto op_semantics_46; + goto op_semantics_47; break; } break; @@ -7208,14 +7378,14 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_47: + op_semantics_48: { /** 1111 1100 0001 00ss rsrc rdst max %1%S1, %0 */ -#line 573 "rx-decode.opc" +#line 583 "rx-decode.opc" int ss AU = op[1] & 0x03; -#line 573 "rx-decode.opc" +#line 583 "rx-decode.opc" int rsrc AU = (op[2] >> 4) & 0x0f; -#line 573 "rx-decode.opc" +#line 583 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -7227,11 +7397,11 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("max %1%S1, %0"); -#line 573 "rx-decode.opc" +#line 583 "rx-decode.opc" if (ss == 3 && rsrc == 0 && rdst == 0) { ID(nop3); - SYNTAX ("nop\t; max\tr0, r0"); + SYNTAX("nop\t; max\tr0, r0"); } else { @@ -7247,7 +7417,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_47; + goto op_semantics_48; break; } break; @@ -7256,7 +7426,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_47; + goto op_semantics_48; break; } break; @@ -7265,7 +7435,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_47; + goto op_semantics_48; break; } break; @@ -7274,14 +7444,14 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_48: + op_semantics_49: { /** 1111 1100 0001 01ss rsrc rdst min %1%S1, %0 */ -#line 593 "rx-decode.opc" +#line 603 "rx-decode.opc" int ss AU = op[1] & 0x03; -#line 593 "rx-decode.opc" +#line 603 "rx-decode.opc" int rsrc AU = (op[2] >> 4) & 0x0f; -#line 593 "rx-decode.opc" +#line 603 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -7293,7 +7463,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("min %1%S1, %0"); -#line 593 "rx-decode.opc" +#line 603 "rx-decode.opc" ID(min); SP(ss, rsrc); DR(rdst); } @@ -7305,7 +7475,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_48; + goto op_semantics_49; break; } break; @@ -7314,7 +7484,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_48; + goto op_semantics_49; break; } break; @@ -7323,7 +7493,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_48; + goto op_semantics_49; break; } break; @@ -7332,14 +7502,14 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_49: + op_semantics_50: { /** 1111 1100 0001 10ss rsrc rdst emul %1%S1, %0 */ -#line 623 "rx-decode.opc" +#line 661 "rx-decode.opc" int ss AU = op[1] & 0x03; -#line 623 "rx-decode.opc" +#line 661 "rx-decode.opc" int rsrc AU = (op[2] >> 4) & 0x0f; -#line 623 "rx-decode.opc" +#line 661 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -7351,7 +7521,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("emul %1%S1, %0"); -#line 623 "rx-decode.opc" +#line 661 "rx-decode.opc" ID(emul); SP(ss, rsrc); DR(rdst); } @@ -7363,7 +7533,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_49; + goto op_semantics_50; break; } break; @@ -7372,7 +7542,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_49; + goto op_semantics_50; break; } break; @@ -7381,7 +7551,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_49; + goto op_semantics_50; break; } break; @@ -7390,14 +7560,14 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_50: + op_semantics_51: { /** 1111 1100 0001 11ss rsrc rdst emulu %1%S1, %0 */ -#line 635 "rx-decode.opc" +#line 673 "rx-decode.opc" int ss AU = op[1] & 0x03; -#line 635 "rx-decode.opc" +#line 673 "rx-decode.opc" int rsrc AU = (op[2] >> 4) & 0x0f; -#line 635 "rx-decode.opc" +#line 673 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -7409,7 +7579,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("emulu %1%S1, %0"); -#line 635 "rx-decode.opc" +#line 673 "rx-decode.opc" ID(emulu); SP(ss, rsrc); DR(rdst); } @@ -7421,7 +7591,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_50; + goto op_semantics_51; break; } break; @@ -7430,7 +7600,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_50; + goto op_semantics_51; break; } break; @@ -7439,7 +7609,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_50; + goto op_semantics_51; break; } break; @@ -7448,14 +7618,14 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_51: + op_semantics_52: { /** 1111 1100 0010 00ss rsrc rdst div %1%S1, %0 */ -#line 647 "rx-decode.opc" +#line 685 "rx-decode.opc" int ss AU = op[1] & 0x03; -#line 647 "rx-decode.opc" +#line 685 "rx-decode.opc" int rsrc AU = (op[2] >> 4) & 0x0f; -#line 647 "rx-decode.opc" +#line 685 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -7467,7 +7637,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("div %1%S1, %0"); -#line 647 "rx-decode.opc" +#line 685 "rx-decode.opc" ID(div); SP(ss, rsrc); DR(rdst); F_O___; } @@ -7479,7 +7649,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_51; + goto op_semantics_52; break; } break; @@ -7488,7 +7658,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_51; + goto op_semantics_52; break; } break; @@ -7497,7 +7667,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_51; + goto op_semantics_52; break; } break; @@ -7506,14 +7676,14 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_52: + op_semantics_53: { /** 1111 1100 0010 01ss rsrc rdst divu %1%S1, %0 */ -#line 659 "rx-decode.opc" +#line 697 "rx-decode.opc" int ss AU = op[1] & 0x03; -#line 659 "rx-decode.opc" +#line 697 "rx-decode.opc" int rsrc AU = (op[2] >> 4) & 0x0f; -#line 659 "rx-decode.opc" +#line 697 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -7525,7 +7695,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("divu %1%S1, %0"); -#line 659 "rx-decode.opc" +#line 697 "rx-decode.opc" ID(divu); SP(ss, rsrc); DR(rdst); F_O___; } @@ -7537,7 +7707,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_52; + goto op_semantics_53; break; } break; @@ -7546,7 +7716,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_52; + goto op_semantics_53; break; } break; @@ -7555,7 +7725,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_52; + goto op_semantics_53; break; } break; @@ -7564,7 +7734,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_53: + op_semantics_54: { /** 1111 1100 0011 00ss rsrc rdst tst %1%S1, %2 */ #line 470 "rx-decode.opc" @@ -7595,7 +7765,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_53; + goto op_semantics_54; break; } break; @@ -7604,7 +7774,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_53; + goto op_semantics_54; break; } break; @@ -7613,7 +7783,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_53; + goto op_semantics_54; break; } break; @@ -7622,7 +7792,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_54: + op_semantics_55: { /** 1111 1100 0011 01ss rsrc rdst xor %1%S1, %0 */ #line 449 "rx-decode.opc" @@ -7653,7 +7823,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_54; + goto op_semantics_55; break; } break; @@ -7662,7 +7832,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_54; + goto op_semantics_55; break; } break; @@ -7671,7 +7841,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_54; + goto op_semantics_55; break; } break; @@ -7710,7 +7880,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_55: + op_semantics_56: { /** 1111 1100 0100 00ss rsrc rdst xchg %1%S1, %0 */ #line 383 "rx-decode.opc" @@ -7741,7 +7911,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_55; + goto op_semantics_56; break; } break; @@ -7750,7 +7920,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_55; + goto op_semantics_56; break; } break; @@ -7759,7 +7929,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_55; + goto op_semantics_56; break; } break; @@ -7768,14 +7938,14 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_56: + op_semantics_57: { /** 1111 1100 0100 01sd rsrc rdst itof %1%S1, %0 */ -#line 888 "rx-decode.opc" +#line 926 "rx-decode.opc" int sd AU = op[1] & 0x03; -#line 888 "rx-decode.opc" +#line 926 "rx-decode.opc" int rsrc AU = (op[2] >> 4) & 0x0f; -#line 888 "rx-decode.opc" +#line 926 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -7787,7 +7957,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("itof %1%S1, %0"); -#line 888 "rx-decode.opc" +#line 926 "rx-decode.opc" ID(itof); DR (rdst); SP(sd, rsrc); F__SZ_; } @@ -7799,7 +7969,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_56; + goto op_semantics_57; break; } break; @@ -7808,7 +7978,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_56; + goto op_semantics_57; break; } break; @@ -7817,7 +7987,119 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_56; + goto op_semantics_57; + break; + } + break; + case 0x4b: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + { + /** 1111 1100 0100 1011 rsrc rdst stz %1, %0 */ +#line 1052 "rx-decode.opc" + int rsrc AU = (op[2] >> 4) & 0x0f; +#line 1052 "rx-decode.opc" + int rdst AU = op[2] & 0x0f; + if (trace) + { + printf ("\033[33m%s\033[0m %02x %02x %02x\n", + "/** 1111 1100 0100 1011 rsrc rdst stz %1, %0 */", + op[0], op[1], op[2]); + printf (" rsrc = 0x%x,", rsrc); + printf (" rdst = 0x%x\n", rdst); + } + SYNTAX("stz %1, %0"); +#line 1052 "rx-decode.opc" + ID(stcc); SR(rsrc); DR(rdst); S2cc(RXC_z); + + } + break; + } + break; + case 0x4f: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + { + /** 1111 1100 0100 1111 rsrc rdst stnz %1, %0 */ +#line 1055 "rx-decode.opc" + int rsrc AU = (op[2] >> 4) & 0x0f; +#line 1055 "rx-decode.opc" + int rdst AU = op[2] & 0x0f; + if (trace) + { + printf ("\033[33m%s\033[0m %02x %02x %02x\n", + "/** 1111 1100 0100 1111 rsrc rdst stnz %1, %0 */", + op[0], op[1], op[2]); + printf (" rsrc = 0x%x,", rsrc); + printf (" rdst = 0x%x\n", rdst); + } + SYNTAX("stnz %1, %0"); +#line 1055 "rx-decode.opc" + ID(stcc); SR(rsrc); DR(rdst); S2cc(RXC_z); + + } + break; + } + break; + case 0x54: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + op_semantics_58: + { + /** 1111 1100 0101 01sd rsrc rdst utof %1%S1, %0 */ +#line 1112 "rx-decode.opc" + int sd AU = op[1] & 0x03; +#line 1112 "rx-decode.opc" + int rsrc AU = (op[2] >> 4) & 0x0f; +#line 1112 "rx-decode.opc" + int rdst AU = op[2] & 0x0f; + if (trace) + { + printf ("\033[33m%s\033[0m %02x %02x %02x\n", + "/** 1111 1100 0101 01sd rsrc rdst utof %1%S1, %0 */", + op[0], op[1], op[2]); + printf (" sd = 0x%x,", sd); + printf (" rsrc = 0x%x,", rsrc); + printf (" rdst = 0x%x\n", rdst); + } + SYNTAX("utof %1%S1, %0"); +#line 1112 "rx-decode.opc" + ID(utof); DR (rdst); SP(sd, rsrc); F__SZ_; + + } + break; + } + break; + case 0x55: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_58; + break; + } + break; + case 0x56: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_58; + break; + } + break; + case 0x57: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_58; break; } break; @@ -7826,14 +8108,14 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_57: + op_semantics_59: { /** 1111 1100 0110 00sd rdst rsrc bset %1, %0%S0 */ -#line 900 "rx-decode.opc" +#line 938 "rx-decode.opc" int sd AU = op[1] & 0x03; -#line 900 "rx-decode.opc" +#line 938 "rx-decode.opc" int rdst AU = (op[2] >> 4) & 0x0f; -#line 900 "rx-decode.opc" +#line 938 "rx-decode.opc" int rsrc AU = op[2] & 0x0f; if (trace) { @@ -7845,7 +8127,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rsrc = 0x%x\n", rsrc); } SYNTAX("bset %1, %0%S0"); -#line 900 "rx-decode.opc" +#line 938 "rx-decode.opc" ID(bset); BWL(BSIZE); SR(rsrc); DD(sd, rdst, BSIZE); F_____; if (sd == 3) /* bset reg,reg */ BWL(LSIZE); @@ -7859,7 +8141,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_57; + goto op_semantics_59; break; } break; @@ -7868,7 +8150,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_57; + goto op_semantics_59; break; } break; @@ -7877,7 +8159,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_57; + goto op_semantics_59; break; } break; @@ -7886,14 +8168,14 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_58: + op_semantics_60: { /** 1111 1100 0110 01sd rdst rsrc bclr %1, %0%S0 */ -#line 912 "rx-decode.opc" +#line 950 "rx-decode.opc" int sd AU = op[1] & 0x03; -#line 912 "rx-decode.opc" +#line 950 "rx-decode.opc" int rdst AU = (op[2] >> 4) & 0x0f; -#line 912 "rx-decode.opc" +#line 950 "rx-decode.opc" int rsrc AU = op[2] & 0x0f; if (trace) { @@ -7905,7 +8187,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rsrc = 0x%x\n", rsrc); } SYNTAX("bclr %1, %0%S0"); -#line 912 "rx-decode.opc" +#line 950 "rx-decode.opc" ID(bclr); BWL(BSIZE); SR(rsrc); DD(sd, rdst, BSIZE); F_____; if (sd == 3) /* bset reg,reg */ BWL(LSIZE); @@ -7919,7 +8201,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_58; + goto op_semantics_60; break; } break; @@ -7928,7 +8210,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_58; + goto op_semantics_60; break; } break; @@ -7937,7 +8219,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_58; + goto op_semantics_60; break; } break; @@ -7946,14 +8228,14 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_59: + op_semantics_61: { /** 1111 1100 0110 10sd rdst rsrc btst %2, %1%S1 */ -#line 924 "rx-decode.opc" +#line 962 "rx-decode.opc" int sd AU = op[1] & 0x03; -#line 924 "rx-decode.opc" +#line 962 "rx-decode.opc" int rdst AU = (op[2] >> 4) & 0x0f; -#line 924 "rx-decode.opc" +#line 962 "rx-decode.opc" int rsrc AU = op[2] & 0x0f; if (trace) { @@ -7965,7 +8247,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rsrc = 0x%x\n", rsrc); } SYNTAX("btst %2, %1%S1"); -#line 924 "rx-decode.opc" +#line 962 "rx-decode.opc" ID(btst); BWL(BSIZE); S2R(rsrc); SD(sd, rdst, BSIZE); F___ZC; if (sd == 3) /* bset reg,reg */ BWL(LSIZE); @@ -7979,7 +8261,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_59; + goto op_semantics_61; break; } break; @@ -7988,7 +8270,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_59; + goto op_semantics_61; break; } break; @@ -7997,7 +8279,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_59; + goto op_semantics_61; break; } break; @@ -8006,14 +8288,14 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_60: + op_semantics_62: { /** 1111 1100 0110 11sd rdst rsrc bnot %1, %0%S0 */ -#line 936 "rx-decode.opc" +#line 974 "rx-decode.opc" int sd AU = op[1] & 0x03; -#line 936 "rx-decode.opc" +#line 974 "rx-decode.opc" int rdst AU = (op[2] >> 4) & 0x0f; -#line 936 "rx-decode.opc" +#line 974 "rx-decode.opc" int rsrc AU = op[2] & 0x0f; if (trace) { @@ -8025,7 +8307,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rsrc = 0x%x\n", rsrc); } SYNTAX("bnot %1, %0%S0"); -#line 936 "rx-decode.opc" +#line 974 "rx-decode.opc" ID(bnot); BWL(BSIZE); SR(rsrc); DD(sd, rdst, BSIZE); if (sd == 3) /* bset reg,reg */ BWL(LSIZE); @@ -8039,7 +8321,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_60; + goto op_semantics_62; break; } break; @@ -8048,7 +8330,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_60; + goto op_semantics_62; break; } break; @@ -8057,7 +8339,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_60; + goto op_semantics_62; break; } break; @@ -8066,14 +8348,14 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_61: + op_semantics_63: { /** 1111 1100 1000 00sd rsrc rdst fsub %1%S1, %0 */ -#line 867 "rx-decode.opc" +#line 905 "rx-decode.opc" int sd AU = op[1] & 0x03; -#line 867 "rx-decode.opc" +#line 905 "rx-decode.opc" int rsrc AU = (op[2] >> 4) & 0x0f; -#line 867 "rx-decode.opc" +#line 905 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -8085,7 +8367,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("fsub %1%S1, %0"); -#line 867 "rx-decode.opc" +#line 905 "rx-decode.opc" ID(fsub); DR(rdst); SD(sd, rsrc, LSIZE); F__SZ_; } @@ -8097,7 +8379,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_61; + goto op_semantics_63; break; } break; @@ -8106,7 +8388,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_61; + goto op_semantics_63; break; } break; @@ -8115,7 +8397,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_61; + goto op_semantics_63; break; } break; @@ -8124,14 +8406,14 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_62: + op_semantics_64: { /** 1111 1100 1000 01sd rsrc rdst fcmp %1%S1, %0 */ -#line 861 "rx-decode.opc" +#line 899 "rx-decode.opc" int sd AU = op[1] & 0x03; -#line 861 "rx-decode.opc" +#line 899 "rx-decode.opc" int rsrc AU = (op[2] >> 4) & 0x0f; -#line 861 "rx-decode.opc" +#line 899 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -8143,7 +8425,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("fcmp %1%S1, %0"); -#line 861 "rx-decode.opc" +#line 899 "rx-decode.opc" ID(fcmp); DR(rdst); SD(sd, rsrc, LSIZE); F_OSZ_; } @@ -8155,7 +8437,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_62; + goto op_semantics_64; break; } break; @@ -8164,7 +8446,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_62; + goto op_semantics_64; break; } break; @@ -8173,7 +8455,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_62; + goto op_semantics_64; break; } break; @@ -8182,14 +8464,14 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_63: + op_semantics_65: { /** 1111 1100 1000 10sd rsrc rdst fadd %1%S1, %0 */ -#line 855 "rx-decode.opc" +#line 893 "rx-decode.opc" int sd AU = op[1] & 0x03; -#line 855 "rx-decode.opc" +#line 893 "rx-decode.opc" int rsrc AU = (op[2] >> 4) & 0x0f; -#line 855 "rx-decode.opc" +#line 893 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -8201,7 +8483,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("fadd %1%S1, %0"); -#line 855 "rx-decode.opc" +#line 893 "rx-decode.opc" ID(fadd); DR(rdst); SD(sd, rsrc, LSIZE); F__SZ_; } @@ -8213,7 +8495,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_63; + goto op_semantics_65; break; } break; @@ -8222,7 +8504,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_63; + goto op_semantics_65; break; } break; @@ -8231,7 +8513,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_63; + goto op_semantics_65; break; } break; @@ -8240,14 +8522,14 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_64: + op_semantics_66: { /** 1111 1100 1000 11sd rsrc rdst fmul %1%S1, %0 */ -#line 876 "rx-decode.opc" +#line 914 "rx-decode.opc" int sd AU = op[1] & 0x03; -#line 876 "rx-decode.opc" +#line 914 "rx-decode.opc" int rsrc AU = (op[2] >> 4) & 0x0f; -#line 876 "rx-decode.opc" +#line 914 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -8259,7 +8541,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("fmul %1%S1, %0"); -#line 876 "rx-decode.opc" +#line 914 "rx-decode.opc" ID(fmul); DR(rdst); SD(sd, rsrc, LSIZE); F__SZ_; } @@ -8271,7 +8553,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_64; + goto op_semantics_66; break; } break; @@ -8280,7 +8562,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_64; + goto op_semantics_66; break; } break; @@ -8289,7 +8571,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_64; + goto op_semantics_66; break; } break; @@ -8298,14 +8580,14 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_65: + op_semantics_67: { /** 1111 1100 1001 00sd rsrc rdst fdiv %1%S1, %0 */ -#line 882 "rx-decode.opc" +#line 920 "rx-decode.opc" int sd AU = op[1] & 0x03; -#line 882 "rx-decode.opc" +#line 920 "rx-decode.opc" int rsrc AU = (op[2] >> 4) & 0x0f; -#line 882 "rx-decode.opc" +#line 920 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -8317,7 +8599,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("fdiv %1%S1, %0"); -#line 882 "rx-decode.opc" +#line 920 "rx-decode.opc" ID(fdiv); DR(rdst); SD(sd, rsrc, LSIZE); F__SZ_; } @@ -8329,7 +8611,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_65; + goto op_semantics_67; break; } break; @@ -8338,7 +8620,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_65; + goto op_semantics_67; break; } break; @@ -8347,7 +8629,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_65; + goto op_semantics_67; break; } break; @@ -8356,14 +8638,14 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_66: + op_semantics_68: { /** 1111 1100 1001 01sd rsrc rdst ftoi %1%S1, %0 */ -#line 870 "rx-decode.opc" +#line 908 "rx-decode.opc" int sd AU = op[1] & 0x03; -#line 870 "rx-decode.opc" +#line 908 "rx-decode.opc" int rsrc AU = (op[2] >> 4) & 0x0f; -#line 870 "rx-decode.opc" +#line 908 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -8375,7 +8657,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("ftoi %1%S1, %0"); -#line 870 "rx-decode.opc" +#line 908 "rx-decode.opc" ID(ftoi); DR(rdst); SD(sd, rsrc, LSIZE); F__SZ_; } @@ -8387,7 +8669,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_66; + goto op_semantics_68; break; } break; @@ -8396,7 +8678,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_66; + goto op_semantics_68; break; } break; @@ -8405,7 +8687,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_66; + goto op_semantics_68; break; } break; @@ -8414,14 +8696,14 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_67: + op_semantics_69: { /** 1111 1100 1001 10sd rsrc rdst round %1%S1, %0 */ -#line 885 "rx-decode.opc" +#line 923 "rx-decode.opc" int sd AU = op[1] & 0x03; -#line 885 "rx-decode.opc" +#line 923 "rx-decode.opc" int rsrc AU = (op[2] >> 4) & 0x0f; -#line 885 "rx-decode.opc" +#line 923 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -8433,7 +8715,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("round %1%S1, %0"); -#line 885 "rx-decode.opc" +#line 923 "rx-decode.opc" ID(round); DR(rdst); SD(sd, rsrc, LSIZE); F__SZ_; } @@ -8445,7 +8727,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_67; + goto op_semantics_69; break; } break; @@ -8454,7 +8736,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_67; + goto op_semantics_69; break; } break; @@ -8463,7 +8745,123 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_67; + goto op_semantics_69; + break; + } + break; + case 0xa0: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + op_semantics_70: + { + /** 1111 1100 1010 00sd rsrc rdst fsqrt %1%S1, %0 */ +#line 1106 "rx-decode.opc" + int sd AU = op[1] & 0x03; +#line 1106 "rx-decode.opc" + int rsrc AU = (op[2] >> 4) & 0x0f; +#line 1106 "rx-decode.opc" + int rdst AU = op[2] & 0x0f; + if (trace) + { + printf ("\033[33m%s\033[0m %02x %02x %02x\n", + "/** 1111 1100 1010 00sd rsrc rdst fsqrt %1%S1, %0 */", + op[0], op[1], op[2]); + printf (" sd = 0x%x,", sd); + printf (" rsrc = 0x%x,", rsrc); + printf (" rdst = 0x%x\n", rdst); + } + SYNTAX("fsqrt %1%S1, %0"); +#line 1106 "rx-decode.opc" + ID(fsqrt); DR(rdst); SD(sd, rsrc, LSIZE); F__SZ_; + + } + break; + } + break; + case 0xa1: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_70; + break; + } + break; + case 0xa2: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_70; + break; + } + break; + case 0xa3: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_70; + break; + } + break; + case 0xa4: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + op_semantics_71: + { + /** 1111 1100 1010 01sd rsrc rdst ftou %1%S1, %0 */ +#line 1109 "rx-decode.opc" + int sd AU = op[1] & 0x03; +#line 1109 "rx-decode.opc" + int rsrc AU = (op[2] >> 4) & 0x0f; +#line 1109 "rx-decode.opc" + int rdst AU = op[2] & 0x0f; + if (trace) + { + printf ("\033[33m%s\033[0m %02x %02x %02x\n", + "/** 1111 1100 1010 01sd rsrc rdst ftou %1%S1, %0 */", + op[0], op[1], op[2]); + printf (" sd = 0x%x,", sd); + printf (" rsrc = 0x%x,", rsrc); + printf (" rdst = 0x%x\n", rdst); + } + SYNTAX("ftou %1%S1, %0"); +#line 1109 "rx-decode.opc" + ID(ftou); DR(rdst); SD(sd, rsrc, LSIZE); F__SZ_; + + } + break; + } + break; + case 0xa5: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_71; + break; + } + break; + case 0xa6: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_71; + break; + } + break; + case 0xa7: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_71; break; } break; @@ -8472,16 +8870,16 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_68: + op_semantics_72: { /** 1111 1100 1101 sz sd rdst cond sc%1%s %0 */ -#line 1002 "rx-decode.opc" +#line 1040 "rx-decode.opc" int sz AU = (op[1] >> 2) & 0x03; -#line 1002 "rx-decode.opc" +#line 1040 "rx-decode.opc" int sd AU = op[1] & 0x03; -#line 1002 "rx-decode.opc" +#line 1040 "rx-decode.opc" int rdst AU = (op[2] >> 4) & 0x0f; -#line 1002 "rx-decode.opc" +#line 1040 "rx-decode.opc" int cond AU = op[2] & 0x0f; if (trace) { @@ -8494,9 +8892,12 @@ rx_decode_opcode (unsigned long pc AU, printf (" cond = 0x%x\n", cond); } SYNTAX("sc%1%s %0"); -#line 1002 "rx-decode.opc" +#line 1040 "rx-decode.opc" ID(sccnd); BWL(sz); DD (sd, rdst, sz); Scc(cond); + /*----------------------------------------------------------------------*/ + /* RXv2 enhanced */ + } break; } @@ -8506,7 +8907,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_68; + goto op_semantics_72; break; } break; @@ -8515,7 +8916,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_68; + goto op_semantics_72; break; } break; @@ -8524,7 +8925,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_68; + goto op_semantics_72; break; } break; @@ -8533,7 +8934,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_68; + goto op_semantics_72; break; } break; @@ -8542,7 +8943,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_68; + goto op_semantics_72; break; } break; @@ -8551,7 +8952,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_68; + goto op_semantics_72; break; } break; @@ -8560,7 +8961,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_68; + goto op_semantics_72; break; } break; @@ -8569,7 +8970,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_68; + goto op_semantics_72; break; } break; @@ -8578,7 +8979,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_68; + goto op_semantics_72; break; } break; @@ -8587,7 +8988,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_68; + goto op_semantics_72; break; } break; @@ -8596,7 +8997,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_68; + goto op_semantics_72; break; } break; @@ -8619,16 +9020,16 @@ rx_decode_opcode (unsigned long pc AU, case 0x0c: case 0x0d: case 0x0e: - op_semantics_69: + op_semantics_73: { /** 1111 1100 111bit sd rdst cond bm%2 #%1, %0%S0 */ -#line 945 "rx-decode.opc" +#line 983 "rx-decode.opc" int bit AU = (op[1] >> 2) & 0x07; -#line 945 "rx-decode.opc" +#line 983 "rx-decode.opc" int sd AU = op[1] & 0x03; -#line 945 "rx-decode.opc" +#line 983 "rx-decode.opc" int rdst AU = (op[2] >> 4) & 0x0f; -#line 945 "rx-decode.opc" +#line 983 "rx-decode.opc" int cond AU = op[2] & 0x0f; if (trace) { @@ -8641,20 +9042,20 @@ rx_decode_opcode (unsigned long pc AU, printf (" cond = 0x%x\n", cond); } SYNTAX("bm%2 #%1, %0%S0"); -#line 945 "rx-decode.opc" +#line 983 "rx-decode.opc" ID(bmcc); BWL(BSIZE); S2cc(cond); SC(bit); DD(sd, rdst, BSIZE); } break; case 0x0f: - op_semantics_70: + op_semantics_74: { /** 1111 1100 111bit sd rdst 1111 bnot #%1, %0%S0 */ -#line 933 "rx-decode.opc" +#line 971 "rx-decode.opc" int bit AU = (op[1] >> 2) & 0x07; -#line 933 "rx-decode.opc" +#line 971 "rx-decode.opc" int sd AU = op[1] & 0x03; -#line 933 "rx-decode.opc" +#line 971 "rx-decode.opc" int rdst AU = (op[2] >> 4) & 0x0f; if (trace) { @@ -8666,7 +9067,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("bnot #%1, %0%S0"); -#line 933 "rx-decode.opc" +#line 971 "rx-decode.opc" ID(bnot); BWL(BSIZE); SC(bit); DD(sd, rdst, BSIZE); } @@ -8692,10 +9093,10 @@ rx_decode_opcode (unsigned long pc AU, case 0x0c: case 0x0d: case 0x0e: - goto op_semantics_69; + goto op_semantics_73; break; case 0x0f: - goto op_semantics_70; + goto op_semantics_74; break; } break; @@ -8718,10 +9119,10 @@ rx_decode_opcode (unsigned long pc AU, case 0x0c: case 0x0d: case 0x0e: - goto op_semantics_69; + goto op_semantics_73; break; case 0x0f: - goto op_semantics_70; + goto op_semantics_74; break; } break; @@ -8744,10 +9145,10 @@ rx_decode_opcode (unsigned long pc AU, case 0x0c: case 0x0d: case 0x0e: - goto op_semantics_69; + goto op_semantics_73; break; case 0x0f: - goto op_semantics_70; + goto op_semantics_74; break; } break; @@ -8770,10 +9171,10 @@ rx_decode_opcode (unsigned long pc AU, case 0x0c: case 0x0d: case 0x0e: - goto op_semantics_69; + goto op_semantics_73; break; case 0x0f: - goto op_semantics_70; + goto op_semantics_74; break; } break; @@ -8796,10 +9197,10 @@ rx_decode_opcode (unsigned long pc AU, case 0x0c: case 0x0d: case 0x0e: - goto op_semantics_69; + goto op_semantics_73; break; case 0x0f: - goto op_semantics_70; + goto op_semantics_74; break; } break; @@ -8822,10 +9223,10 @@ rx_decode_opcode (unsigned long pc AU, case 0x0c: case 0x0d: case 0x0e: - goto op_semantics_69; + goto op_semantics_73; break; case 0x0f: - goto op_semantics_70; + goto op_semantics_74; break; } break; @@ -8848,10 +9249,10 @@ rx_decode_opcode (unsigned long pc AU, case 0x0c: case 0x0d: case 0x0e: - goto op_semantics_69; + goto op_semantics_73; break; case 0x0f: - goto op_semantics_70; + goto op_semantics_74; break; } break; @@ -8874,10 +9275,10 @@ rx_decode_opcode (unsigned long pc AU, case 0x0c: case 0x0d: case 0x0e: - goto op_semantics_69; + goto op_semantics_73; break; case 0x0f: - goto op_semantics_70; + goto op_semantics_74; break; } break; @@ -8900,10 +9301,10 @@ rx_decode_opcode (unsigned long pc AU, case 0x0c: case 0x0d: case 0x0e: - goto op_semantics_69; + goto op_semantics_73; break; case 0x0f: - goto op_semantics_70; + goto op_semantics_74; break; } break; @@ -8926,10 +9327,10 @@ rx_decode_opcode (unsigned long pc AU, case 0x0c: case 0x0d: case 0x0e: - goto op_semantics_69; + goto op_semantics_73; break; case 0x0f: - goto op_semantics_70; + goto op_semantics_74; break; } break; @@ -8952,10 +9353,10 @@ rx_decode_opcode (unsigned long pc AU, case 0x0c: case 0x0d: case 0x0e: - goto op_semantics_69; + goto op_semantics_73; break; case 0x0f: - goto op_semantics_70; + goto op_semantics_74; break; } break; @@ -8978,10 +9379,10 @@ rx_decode_opcode (unsigned long pc AU, case 0x0c: case 0x0d: case 0x0e: - goto op_semantics_69; + goto op_semantics_73; break; case 0x0f: - goto op_semantics_70; + goto op_semantics_74; break; } break; @@ -9004,10 +9405,10 @@ rx_decode_opcode (unsigned long pc AU, case 0x0c: case 0x0d: case 0x0e: - goto op_semantics_69; + goto op_semantics_73; break; case 0x0f: - goto op_semantics_70; + goto op_semantics_74; break; } break; @@ -9030,10 +9431,10 @@ rx_decode_opcode (unsigned long pc AU, case 0x0c: case 0x0d: case 0x0e: - goto op_semantics_69; + goto op_semantics_73; break; case 0x0f: - goto op_semantics_70; + goto op_semantics_74; break; } break; @@ -9056,10 +9457,10 @@ rx_decode_opcode (unsigned long pc AU, case 0x0c: case 0x0d: case 0x0e: - goto op_semantics_69; + goto op_semantics_73; break; case 0x0f: - goto op_semantics_70; + goto op_semantics_74; break; } break; @@ -9082,10 +9483,10 @@ rx_decode_opcode (unsigned long pc AU, case 0x0c: case 0x0d: case 0x0e: - goto op_semantics_69; + goto op_semantics_73; break; case 0x0f: - goto op_semantics_70; + goto op_semantics_74; break; } break; @@ -9108,10 +9509,10 @@ rx_decode_opcode (unsigned long pc AU, case 0x0c: case 0x0d: case 0x0e: - goto op_semantics_69; + goto op_semantics_73; break; case 0x0f: - goto op_semantics_70; + goto op_semantics_74; break; } break; @@ -9134,10 +9535,10 @@ rx_decode_opcode (unsigned long pc AU, case 0x0c: case 0x0d: case 0x0e: - goto op_semantics_69; + goto op_semantics_73; break; case 0x0f: - goto op_semantics_70; + goto op_semantics_74; break; } break; @@ -9160,10 +9561,10 @@ rx_decode_opcode (unsigned long pc AU, case 0x0c: case 0x0d: case 0x0e: - goto op_semantics_69; + goto op_semantics_73; break; case 0x0f: - goto op_semantics_70; + goto op_semantics_74; break; } break; @@ -9186,10 +9587,10 @@ rx_decode_opcode (unsigned long pc AU, case 0x0c: case 0x0d: case 0x0e: - goto op_semantics_69; + goto op_semantics_73; break; case 0x0f: - goto op_semantics_70; + goto op_semantics_74; break; } break; @@ -9212,10 +9613,10 @@ rx_decode_opcode (unsigned long pc AU, case 0x0c: case 0x0d: case 0x0e: - goto op_semantics_69; + goto op_semantics_73; break; case 0x0f: - goto op_semantics_70; + goto op_semantics_74; break; } break; @@ -9238,10 +9639,10 @@ rx_decode_opcode (unsigned long pc AU, case 0x0c: case 0x0d: case 0x0e: - goto op_semantics_69; + goto op_semantics_73; break; case 0x0f: - goto op_semantics_70; + goto op_semantics_74; break; } break; @@ -9264,10 +9665,10 @@ rx_decode_opcode (unsigned long pc AU, case 0x0c: case 0x0d: case 0x0e: - goto op_semantics_69; + goto op_semantics_73; break; case 0x0f: - goto op_semantics_70; + goto op_semantics_74; break; } break; @@ -9290,10 +9691,10 @@ rx_decode_opcode (unsigned long pc AU, case 0x0c: case 0x0d: case 0x0e: - goto op_semantics_69; + goto op_semantics_73; break; case 0x0f: - goto op_semantics_70; + goto op_semantics_74; break; } break; @@ -9316,10 +9717,10 @@ rx_decode_opcode (unsigned long pc AU, case 0x0c: case 0x0d: case 0x0e: - goto op_semantics_69; + goto op_semantics_73; break; case 0x0f: - goto op_semantics_70; + goto op_semantics_74; break; } break; @@ -9342,10 +9743,10 @@ rx_decode_opcode (unsigned long pc AU, case 0x0c: case 0x0d: case 0x0e: - goto op_semantics_69; + goto op_semantics_73; break; case 0x0f: - goto op_semantics_70; + goto op_semantics_74; break; } break; @@ -9368,10 +9769,10 @@ rx_decode_opcode (unsigned long pc AU, case 0x0c: case 0x0d: case 0x0e: - goto op_semantics_69; + goto op_semantics_73; break; case 0x0f: - goto op_semantics_70; + goto op_semantics_74; break; } break; @@ -9394,10 +9795,10 @@ rx_decode_opcode (unsigned long pc AU, case 0x0c: case 0x0d: case 0x0e: - goto op_semantics_69; + goto op_semantics_73; break; case 0x0f: - goto op_semantics_70; + goto op_semantics_74; break; } break; @@ -9420,10 +9821,10 @@ rx_decode_opcode (unsigned long pc AU, case 0x0c: case 0x0d: case 0x0e: - goto op_semantics_69; + goto op_semantics_73; break; case 0x0f: - goto op_semantics_70; + goto op_semantics_74; break; } break; @@ -9446,10 +9847,10 @@ rx_decode_opcode (unsigned long pc AU, case 0x0c: case 0x0d: case 0x0e: - goto op_semantics_69; + goto op_semantics_73; break; case 0x0f: - goto op_semantics_70; + goto op_semantics_74; break; } break; @@ -9472,10 +9873,10 @@ rx_decode_opcode (unsigned long pc AU, case 0x0c: case 0x0d: case 0x0e: - goto op_semantics_69; + goto op_semantics_73; break; case 0x0f: - goto op_semantics_70; + goto op_semantics_74; break; } break; @@ -9491,23 +9892,27 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: + op_semantics_75: { - /** 1111 1101 0000 0000 srca srcb mulhi %1, %2 */ -#line 810 "rx-decode.opc" + /** 1111 1101 0000 a000 srca srcb mulhi %1, %2, %0 */ +#line 848 "rx-decode.opc" + int a AU = (op[1] >> 3) & 0x01; +#line 848 "rx-decode.opc" int srca AU = (op[2] >> 4) & 0x0f; -#line 810 "rx-decode.opc" +#line 848 "rx-decode.opc" int srcb AU = op[2] & 0x0f; if (trace) { printf ("\033[33m%s\033[0m %02x %02x %02x\n", - "/** 1111 1101 0000 0000 srca srcb mulhi %1, %2 */", + "/** 1111 1101 0000 a000 srca srcb mulhi %1, %2, %0 */", op[0], op[1], op[2]); + printf (" a = 0x%x,", a); printf (" srca = 0x%x,", srca); printf (" srcb = 0x%x\n", srcb); } - SYNTAX("mulhi %1, %2"); -#line 810 "rx-decode.opc" - ID(mulhi); SR(srca); S2R(srcb); F_____; + SYNTAX("mulhi %1, %2, %0"); +#line 848 "rx-decode.opc" + ID(mulhi); DR(a+32); SR(srca); S2R(srcb); F_____; } break; @@ -9518,23 +9923,89 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: + op_semantics_76: + { + /** 1111 1101 0000 a001 srca srcb mullo %1, %2, %0 */ +#line 851 "rx-decode.opc" + int a AU = (op[1] >> 3) & 0x01; +#line 851 "rx-decode.opc" + int srca AU = (op[2] >> 4) & 0x0f; +#line 851 "rx-decode.opc" + int srcb AU = op[2] & 0x0f; + if (trace) + { + printf ("\033[33m%s\033[0m %02x %02x %02x\n", + "/** 1111 1101 0000 a001 srca srcb mullo %1, %2, %0 */", + op[0], op[1], op[2]); + printf (" a = 0x%x,", a); + printf (" srca = 0x%x,", srca); + printf (" srcb = 0x%x\n", srcb); + } + SYNTAX("mullo %1, %2, %0"); +#line 851 "rx-decode.opc" + ID(mullo); DR(a+32); SR(srca); S2R(srcb); F_____; + + } + break; + } + break; + case 0x02: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + op_semantics_77: + { + /** 1111 1101 0000 a010 srca srcb mullh %1, %2, %0 */ +#line 1079 "rx-decode.opc" + int a AU = (op[1] >> 3) & 0x01; +#line 1079 "rx-decode.opc" + int srca AU = (op[2] >> 4) & 0x0f; +#line 1079 "rx-decode.opc" + int srcb AU = op[2] & 0x0f; + if (trace) + { + printf ("\033[33m%s\033[0m %02x %02x %02x\n", + "/** 1111 1101 0000 a010 srca srcb mullh %1, %2, %0 */", + op[0], op[1], op[2]); + printf (" a = 0x%x,", a); + printf (" srca = 0x%x,", srca); + printf (" srcb = 0x%x\n", srcb); + } + SYNTAX("mullh %1, %2, %0"); +#line 1079 "rx-decode.opc" + ID(mullh); DR(a+32); SR(srca); S2R(srcb); F_____; + + } + break; + } + break; + case 0x03: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + op_semantics_78: { - /** 1111 1101 0000 0001 srca srcb mullo %1, %2 */ -#line 813 "rx-decode.opc" + /** 1111 1101 0000 a011 srca srcb emula %1, %2, %0 */ +#line 1064 "rx-decode.opc" + int a AU = (op[1] >> 3) & 0x01; +#line 1064 "rx-decode.opc" int srca AU = (op[2] >> 4) & 0x0f; -#line 813 "rx-decode.opc" +#line 1064 "rx-decode.opc" int srcb AU = op[2] & 0x0f; if (trace) { printf ("\033[33m%s\033[0m %02x %02x %02x\n", - "/** 1111 1101 0000 0001 srca srcb mullo %1, %2 */", + "/** 1111 1101 0000 a011 srca srcb emula %1, %2, %0 */", op[0], op[1], op[2]); + printf (" a = 0x%x,", a); printf (" srca = 0x%x,", srca); printf (" srcb = 0x%x\n", srcb); } - SYNTAX("mullo %1, %2"); -#line 813 "rx-decode.opc" - ID(mullo); SR(srca); S2R(srcb); F_____; + SYNTAX("emula %1, %2, %0"); +#line 1064 "rx-decode.opc" + ID(emula); DR(a+32); SR(srca); S2R(srcb); F_____; } break; @@ -9545,23 +10016,27 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: + op_semantics_79: { - /** 1111 1101 0000 0100 srca srcb machi %1, %2 */ -#line 816 "rx-decode.opc" + /** 1111 1101 0000 a100 srca srcb machi %1, %2, %0 */ +#line 854 "rx-decode.opc" + int a AU = (op[1] >> 3) & 0x01; +#line 854 "rx-decode.opc" int srca AU = (op[2] >> 4) & 0x0f; -#line 816 "rx-decode.opc" +#line 854 "rx-decode.opc" int srcb AU = op[2] & 0x0f; if (trace) { printf ("\033[33m%s\033[0m %02x %02x %02x\n", - "/** 1111 1101 0000 0100 srca srcb machi %1, %2 */", + "/** 1111 1101 0000 a100 srca srcb machi %1, %2, %0 */", op[0], op[1], op[2]); + printf (" a = 0x%x,", a); printf (" srca = 0x%x,", srca); printf (" srcb = 0x%x\n", srcb); } - SYNTAX("machi %1, %2"); -#line 816 "rx-decode.opc" - ID(machi); SR(srca); S2R(srcb); F_____; + SYNTAX("machi %1, %2, %0"); +#line 854 "rx-decode.opc" + ID(machi); DR(a+32); SR(srca); S2R(srcb); F_____; } break; @@ -9572,65 +10047,230 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: + op_semantics_80: + { + /** 1111 1101 0000 a101 srca srcb maclo %1, %2, %0 */ +#line 857 "rx-decode.opc" + int a AU = (op[1] >> 3) & 0x01; +#line 857 "rx-decode.opc" + int srca AU = (op[2] >> 4) & 0x0f; +#line 857 "rx-decode.opc" + int srcb AU = op[2] & 0x0f; + if (trace) + { + printf ("\033[33m%s\033[0m %02x %02x %02x\n", + "/** 1111 1101 0000 a101 srca srcb maclo %1, %2, %0 */", + op[0], op[1], op[2]); + printf (" a = 0x%x,", a); + printf (" srca = 0x%x,", srca); + printf (" srcb = 0x%x\n", srcb); + } + SYNTAX("maclo %1, %2, %0"); +#line 857 "rx-decode.opc" + ID(maclo); DR(a+32); SR(srca); S2R(srcb); F_____; + + } + break; + } + break; + case 0x06: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + op_semantics_81: { - /** 1111 1101 0000 0101 srca srcb maclo %1, %2 */ -#line 819 "rx-decode.opc" + /** 1111 1101 0000 a110 srca srcb maclh %1, %2, %0 */ +#line 1067 "rx-decode.opc" + int a AU = (op[1] >> 3) & 0x01; +#line 1067 "rx-decode.opc" int srca AU = (op[2] >> 4) & 0x0f; -#line 819 "rx-decode.opc" +#line 1067 "rx-decode.opc" int srcb AU = op[2] & 0x0f; if (trace) { printf ("\033[33m%s\033[0m %02x %02x %02x\n", - "/** 1111 1101 0000 0101 srca srcb maclo %1, %2 */", + "/** 1111 1101 0000 a110 srca srcb maclh %1, %2, %0 */", op[0], op[1], op[2]); + printf (" a = 0x%x,", a); printf (" srca = 0x%x,", srca); printf (" srcb = 0x%x\n", srcb); } - SYNTAX("maclo %1, %2"); -#line 819 "rx-decode.opc" - ID(maclo); SR(srca); S2R(srcb); F_____; + SYNTAX("maclh %1, %2, %0"); +#line 1067 "rx-decode.opc" + ID(maclh); DR(a+32); SR(srca); S2R(srcb); F_____; } break; } break; + case 0x07: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + op_semantics_82: + { + /** 1111 1101 0000 a111 srca srcb emaca %1, %2, %0 */ +#line 1058 "rx-decode.opc" + int a AU = (op[1] >> 3) & 0x01; +#line 1058 "rx-decode.opc" + int srca AU = (op[2] >> 4) & 0x0f; +#line 1058 "rx-decode.opc" + int srcb AU = op[2] & 0x0f; + if (trace) + { + printf ("\033[33m%s\033[0m %02x %02x %02x\n", + "/** 1111 1101 0000 a111 srca srcb emaca %1, %2, %0 */", + op[0], op[1], op[2]); + printf (" a = 0x%x,", a); + printf (" srca = 0x%x,", srca); + printf (" srcb = 0x%x\n", srcb); + } + SYNTAX("emaca %1, %2, %0"); +#line 1058 "rx-decode.opc" + ID(emaca); DR(a+32); SR(srca); S2R(srcb); F_____; + + } + break; + } + break; + case 0x08: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_75; + break; + } + break; + case 0x09: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_76; + break; + } + break; + case 0x0a: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_77; + break; + } + break; + case 0x0b: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_78; + break; + } + break; + case 0x0c: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_79; + break; + } + break; + case 0x0d: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_80; + break; + } + break; + case 0x0e: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_81; + break; + } + break; + case 0x0f: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_82; + break; + } + break; case 0x17: GETBYTE (); - switch (op[2] & 0xf0) + switch (op[2] & 0x70) { case 0x00: { - /** 1111 1101 0001 0111 0000 rsrc mvtachi %1 */ -#line 822 "rx-decode.opc" + /** 1111 1101 0001 0111 a000 rsrc mvtachi %1, %0 */ +#line 860 "rx-decode.opc" + int a AU = (op[2] >> 7) & 0x01; +#line 860 "rx-decode.opc" int rsrc AU = op[2] & 0x0f; if (trace) { printf ("\033[33m%s\033[0m %02x %02x %02x\n", - "/** 1111 1101 0001 0111 0000 rsrc mvtachi %1 */", + "/** 1111 1101 0001 0111 a000 rsrc mvtachi %1, %0 */", op[0], op[1], op[2]); + printf (" a = 0x%x,", a); printf (" rsrc = 0x%x\n", rsrc); } - SYNTAX("mvtachi %1"); -#line 822 "rx-decode.opc" - ID(mvtachi); SR(rsrc); F_____; + SYNTAX("mvtachi %1, %0"); +#line 860 "rx-decode.opc" + ID(mvtachi); DR(a+32); SR(rsrc); F_____; } break; case 0x10: { - /** 1111 1101 0001 0111 0001 rsrc mvtaclo %1 */ -#line 825 "rx-decode.opc" + /** 1111 1101 0001 0111 a001 rsrc mvtaclo %1, %0 */ +#line 863 "rx-decode.opc" + int a AU = (op[2] >> 7) & 0x01; +#line 863 "rx-decode.opc" int rsrc AU = op[2] & 0x0f; if (trace) { printf ("\033[33m%s\033[0m %02x %02x %02x\n", - "/** 1111 1101 0001 0111 0001 rsrc mvtaclo %1 */", + "/** 1111 1101 0001 0111 a001 rsrc mvtaclo %1, %0 */", op[0], op[1], op[2]); + printf (" a = 0x%x,", a); printf (" rsrc = 0x%x\n", rsrc); } - SYNTAX("mvtaclo %1"); -#line 825 "rx-decode.opc" - ID(mvtaclo); SR(rsrc); F_____; + SYNTAX("mvtaclo %1, %0"); +#line 863 "rx-decode.opc" + ID(mvtaclo); DR(a+32); SR(rsrc); F_____; + + } + break; + case 0x30: + { + /** 1111 1101 0001 0111 a011 rdst mvtacgu %0, %1 */ +#line 1085 "rx-decode.opc" + int a AU = (op[2] >> 7) & 0x01; +#line 1085 "rx-decode.opc" + int rdst AU = op[2] & 0x0f; + if (trace) + { + printf ("\033[33m%s\033[0m %02x %02x %02x\n", + "/** 1111 1101 0001 0111 a011 rdst mvtacgu %0, %1 */", + op[0], op[1], op[2]); + printf (" a = 0x%x,", a); + printf (" rdst = 0x%x\n", rdst); + } + SYNTAX("mvtacgu %0, %1"); +#line 1085 "rx-decode.opc" + ID(mvtacgu); SR(a+32); DR(rdst); F_____; } break; @@ -9639,91 +10279,239 @@ rx_decode_opcode (unsigned long pc AU, break; case 0x18: GETBYTE (); - switch (op[2] & 0xef) + switch (op[2] & 0x6f) { case 0x00: { - /** 1111 1101 0001 1000 000i 0000 racw #%1 */ -#line 837 "rx-decode.opc" + /** 1111 1101 0001 1000 a00i 0000 racw #%1, %0 */ +#line 875 "rx-decode.opc" + int a AU = (op[2] >> 7) & 0x01; +#line 875 "rx-decode.opc" int i AU = (op[2] >> 4) & 0x01; if (trace) { printf ("\033[33m%s\033[0m %02x %02x %02x\n", - "/** 1111 1101 0001 1000 000i 0000 racw #%1 */", + "/** 1111 1101 0001 1000 a00i 0000 racw #%1, %0 */", op[0], op[1], op[2]); + printf (" a = 0x%x,", a); printf (" i = 0x%x\n", i); } - SYNTAX("racw #%1"); -#line 837 "rx-decode.opc" - ID(racw); SC(i+1); F_____; + SYNTAX("racw #%1, %0"); +#line 875 "rx-decode.opc" + ID(racw); SC(i+1); DR(a+32); F_____; /*----------------------------------------------------------------------*/ /* SAT */ } break; + case 0x40: + { + /** 1111 1101 0001 1000 a10i 0000 rdacw #%1, %0 */ +#line 1094 "rx-decode.opc" + int a AU = (op[2] >> 7) & 0x01; +#line 1094 "rx-decode.opc" + int i AU = (op[2] >> 4) & 0x01; + if (trace) + { + printf ("\033[33m%s\033[0m %02x %02x %02x\n", + "/** 1111 1101 0001 1000 a10i 0000 rdacw #%1, %0 */", + op[0], op[1], op[2]); + printf (" a = 0x%x,", a); + printf (" i = 0x%x\n", i); + } + SYNTAX("rdacw #%1, %0"); +#line 1094 "rx-decode.opc" + ID(rdacw); SC(i+1); DR(a+32); F_____; + + } + break; default: UNSUPPORTED(); break; } break; - case 0x1f: + case 0x19: GETBYTE (); - switch (op[2] & 0xf0) + switch (op[2] & 0x6f) { case 0x00: { - /** 1111 1101 0001 1111 0000 rdst mvfachi %0 */ -#line 828 "rx-decode.opc" + /** 1111 1101 0001 1001 a00i 0000 racl #%1, %0 */ +#line 1088 "rx-decode.opc" + int a AU = (op[2] >> 7) & 0x01; +#line 1088 "rx-decode.opc" + int i AU = (op[2] >> 4) & 0x01; + if (trace) + { + printf ("\033[33m%s\033[0m %02x %02x %02x\n", + "/** 1111 1101 0001 1001 a00i 0000 racl #%1, %0 */", + op[0], op[1], op[2]); + printf (" a = 0x%x,", a); + printf (" i = 0x%x\n", i); + } + SYNTAX("racl #%1, %0"); +#line 1088 "rx-decode.opc" + ID(racl); SC(i+1); DR(a+32); F_____; + + } + break; + case 0x40: + { + /** 1111 1101 0001 1001 a10i 0000 rdacl #%1, %0 */ +#line 1091 "rx-decode.opc" + int a AU = (op[2] >> 7) & 0x01; +#line 1091 "rx-decode.opc" + int i AU = (op[2] >> 4) & 0x01; + if (trace) + { + printf ("\033[33m%s\033[0m %02x %02x %02x\n", + "/** 1111 1101 0001 1001 a10i 0000 rdacl #%1, %0 */", + op[0], op[1], op[2]); + printf (" a = 0x%x,", a); + printf (" i = 0x%x\n", i); + } + SYNTAX("rdacl #%1, %0"); +#line 1091 "rx-decode.opc" + ID(rdacl); SC(i+1); DR(a+32); F_____; + + } + break; + default: UNSUPPORTED(); break; + } + break; + case 0x1e: + GETBYTE (); + switch (op[2] & 0x30) + { + case 0x00: + op_semantics_83: + { + /** 1111 1101 0001 111i a m00 rdst mvfachi #%2, %1, %0 */ +#line 866 "rx-decode.opc" + int i AU = op[1] & 0x01; +#line 866 "rx-decode.opc" + int a AU = (op[2] >> 7) & 0x01; +#line 866 "rx-decode.opc" + int m AU = (op[2] >> 6) & 0x01; +#line 866 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { printf ("\033[33m%s\033[0m %02x %02x %02x\n", - "/** 1111 1101 0001 1111 0000 rdst mvfachi %0 */", + "/** 1111 1101 0001 111i a m00 rdst mvfachi #%2, %1, %0 */", op[0], op[1], op[2]); + printf (" i = 0x%x,", i); + printf (" a = 0x%x,", a); + printf (" m = 0x%x,", m); printf (" rdst = 0x%x\n", rdst); } - SYNTAX("mvfachi %0"); -#line 828 "rx-decode.opc" - ID(mvfachi); DR(rdst); F_____; + SYNTAX("mvfachi #%2, %1, %0"); +#line 866 "rx-decode.opc" + ID(mvfachi); S2C(((i^1)<<1)|m); SR(a+32); DR(rdst); F_____; } break; case 0x10: + op_semantics_84: { - /** 1111 1101 0001 1111 0001 rdst mvfaclo %0 */ -#line 834 "rx-decode.opc" + /** 1111 1101 0001 111i a m01 rdst mvfaclo #%2, %1, %0 */ +#line 872 "rx-decode.opc" + int i AU = op[1] & 0x01; +#line 872 "rx-decode.opc" + int a AU = (op[2] >> 7) & 0x01; +#line 872 "rx-decode.opc" + int m AU = (op[2] >> 6) & 0x01; +#line 872 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { printf ("\033[33m%s\033[0m %02x %02x %02x\n", - "/** 1111 1101 0001 1111 0001 rdst mvfaclo %0 */", + "/** 1111 1101 0001 111i a m01 rdst mvfaclo #%2, %1, %0 */", op[0], op[1], op[2]); + printf (" i = 0x%x,", i); + printf (" a = 0x%x,", a); + printf (" m = 0x%x,", m); printf (" rdst = 0x%x\n", rdst); } - SYNTAX("mvfaclo %0"); -#line 834 "rx-decode.opc" - ID(mvfaclo); DR(rdst); F_____; + SYNTAX("mvfaclo #%2, %1, %0"); +#line 872 "rx-decode.opc" + ID(mvfaclo); S2C(((i^1)<<1)|m); SR(a+32); DR(rdst); F_____; } break; case 0x20: + op_semantics_85: { - /** 1111 1101 0001 1111 0010 rdst mvfacmi %0 */ -#line 831 "rx-decode.opc" + /** 1111 1101 0001 111i a m10 rdst mvfacmi #%2, %1, %0 */ +#line 869 "rx-decode.opc" + int i AU = op[1] & 0x01; +#line 869 "rx-decode.opc" + int a AU = (op[2] >> 7) & 0x01; +#line 869 "rx-decode.opc" + int m AU = (op[2] >> 6) & 0x01; +#line 869 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { printf ("\033[33m%s\033[0m %02x %02x %02x\n", - "/** 1111 1101 0001 1111 0010 rdst mvfacmi %0 */", + "/** 1111 1101 0001 111i a m10 rdst mvfacmi #%2, %1, %0 */", op[0], op[1], op[2]); + printf (" i = 0x%x,", i); + printf (" a = 0x%x,", a); + printf (" m = 0x%x,", m); printf (" rdst = 0x%x\n", rdst); } - SYNTAX("mvfacmi %0"); -#line 831 "rx-decode.opc" - ID(mvfacmi); DR(rdst); F_____; + SYNTAX("mvfacmi #%2, %1, %0"); +#line 869 "rx-decode.opc" + ID(mvfacmi); S2C(((i^1)<<1)|m); SR(a+32); DR(rdst); F_____; } break; - default: UNSUPPORTED(); break; + case 0x30: + op_semantics_86: + { + /** 1111 1101 0001 111i a m11 rdst mvfacgu #%2, %1, %0 */ +#line 1082 "rx-decode.opc" + int i AU = op[1] & 0x01; +#line 1082 "rx-decode.opc" + int a AU = (op[2] >> 7) & 0x01; +#line 1082 "rx-decode.opc" + int m AU = (op[2] >> 6) & 0x01; +#line 1082 "rx-decode.opc" + int rdst AU = op[2] & 0x0f; + if (trace) + { + printf ("\033[33m%s\033[0m %02x %02x %02x\n", + "/** 1111 1101 0001 111i a m11 rdst mvfacgu #%2, %1, %0 */", + op[0], op[1], op[2]); + printf (" i = 0x%x,", i); + printf (" a = 0x%x,", a); + printf (" m = 0x%x,", m); + printf (" rdst = 0x%x\n", rdst); + } + SYNTAX("mvfacgu #%2, %1, %0"); +#line 1082 "rx-decode.opc" + ID(mvfacgu); S2C(((i^1)<<1)|m); SR(a+32); DR(rdst); F_____; + + } + break; + } + break; + case 0x1f: + GETBYTE (); + switch (op[2] & 0x30) + { + case 0x00: + goto op_semantics_83; + break; + case 0x10: + goto op_semantics_84; + break; + case 0x20: + goto op_semantics_85; + break; + case 0x30: + goto op_semantics_86; + break; } break; case 0x20: @@ -9731,7 +10519,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_71: + op_semantics_87: { /** 1111 1101 0010 0p sz rdst rsrc mov%s %1, %0 */ #line 344 "rx-decode.opc" @@ -9766,7 +10554,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_71; + goto op_semantics_87; break; } break; @@ -9775,7 +10563,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_71; + goto op_semantics_87; break; } break; @@ -9784,7 +10572,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_71; + goto op_semantics_87; break; } break; @@ -9793,7 +10581,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_71; + goto op_semantics_87; break; } break; @@ -9802,7 +10590,34 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_71; + goto op_semantics_87; + break; + } + break; + case 0x27: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + { + /** 1111 1101 0010 0111 rdst rsrc movco %1, [%0] */ +#line 1046 "rx-decode.opc" + int rdst AU = (op[2] >> 4) & 0x0f; +#line 1046 "rx-decode.opc" + int rsrc AU = op[2] & 0x0f; + if (trace) + { + printf ("\033[33m%s\033[0m %02x %02x %02x\n", + "/** 1111 1101 0010 0111 rdst rsrc movco %1, [%0] */", + op[0], op[1], op[2]); + printf (" rdst = 0x%x,", rdst); + printf (" rsrc = 0x%x\n", rsrc); + } + SYNTAX("movco %1, [%0]"); +#line 1046 "rx-decode.opc" + ID(mov); SR(rsrc); DR(rdst); F_____; + + } break; } break; @@ -9811,7 +10626,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_72: + op_semantics_88: { /** 1111 1101 0010 1p sz rsrc rdst mov%s %1, %0 */ #line 348 "rx-decode.opc" @@ -9846,7 +10661,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_72; + goto op_semantics_88; break; } break; @@ -9855,7 +10670,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_72; + goto op_semantics_88; break; } break; @@ -9864,7 +10679,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_72; + goto op_semantics_88; break; } break; @@ -9873,7 +10688,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_72; + goto op_semantics_88; break; } break; @@ -9882,7 +10697,34 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_72; + goto op_semantics_88; + break; + } + break; + case 0x2f: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + { + /** 1111 1101 0010 1111 rsrc rdst movli [%1], %0 */ +#line 1049 "rx-decode.opc" + int rsrc AU = (op[2] >> 4) & 0x0f; +#line 1049 "rx-decode.opc" + int rdst AU = op[2] & 0x0f; + if (trace) + { + printf ("\033[33m%s\033[0m %02x %02x %02x\n", + "/** 1111 1101 0010 1111 rsrc rdst movli [%1], %0 */", + op[0], op[1], op[2]); + printf (" rsrc = 0x%x,", rsrc); + printf (" rdst = 0x%x\n", rdst); + } + SYNTAX("movli [%1], %0"); +#line 1049 "rx-decode.opc" + ID(mov); SR(rsrc); DR(rdst); F_____; + + } break; } break; @@ -9891,7 +10733,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_73: + op_semantics_89: { /** 1111 1101 0011 1p sz rsrc rdst movu%s %1, %0 */ #line 358 "rx-decode.opc" @@ -9929,7 +10771,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_73; + goto op_semantics_89; break; } break; @@ -9938,7 +10780,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_73; + goto op_semantics_89; break; } break; @@ -9947,7 +10789,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_73; + goto op_semantics_89; break; } break; @@ -9956,7 +10798,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_73; + goto op_semantics_89; break; } break; @@ -9965,7 +10807,167 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_73; + goto op_semantics_89; + break; + } + break; + case 0x44: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + op_semantics_90: + { + /** 1111 1101 0100 a100 srca srcb msbhi %1, %2, %0 */ +#line 1070 "rx-decode.opc" + int a AU = (op[1] >> 3) & 0x01; +#line 1070 "rx-decode.opc" + int srca AU = (op[2] >> 4) & 0x0f; +#line 1070 "rx-decode.opc" + int srcb AU = op[2] & 0x0f; + if (trace) + { + printf ("\033[33m%s\033[0m %02x %02x %02x\n", + "/** 1111 1101 0100 a100 srca srcb msbhi %1, %2, %0 */", + op[0], op[1], op[2]); + printf (" a = 0x%x,", a); + printf (" srca = 0x%x,", srca); + printf (" srcb = 0x%x\n", srcb); + } + SYNTAX("msbhi %1, %2, %0"); +#line 1070 "rx-decode.opc" + ID(msbhi); DR(a+32); SR(srca); S2R(srcb); F_____; + + } + break; + } + break; + case 0x45: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + op_semantics_91: + { + /** 1111 1101 0100 a101 srca srcb msblo %1, %2, %0 */ +#line 1076 "rx-decode.opc" + int a AU = (op[1] >> 3) & 0x01; +#line 1076 "rx-decode.opc" + int srca AU = (op[2] >> 4) & 0x0f; +#line 1076 "rx-decode.opc" + int srcb AU = op[2] & 0x0f; + if (trace) + { + printf ("\033[33m%s\033[0m %02x %02x %02x\n", + "/** 1111 1101 0100 a101 srca srcb msblo %1, %2, %0 */", + op[0], op[1], op[2]); + printf (" a = 0x%x,", a); + printf (" srca = 0x%x,", srca); + printf (" srcb = 0x%x\n", srcb); + } + SYNTAX("msblo %1, %2, %0"); +#line 1076 "rx-decode.opc" + ID(msblo); DR(a+32); SR(srca); S2R(srcb); F_____; + + } + break; + } + break; + case 0x46: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + op_semantics_92: + { + /** 1111 1101 0100 a110 srca srcb msblh %1, %2, %0 */ +#line 1073 "rx-decode.opc" + int a AU = (op[1] >> 3) & 0x01; +#line 1073 "rx-decode.opc" + int srca AU = (op[2] >> 4) & 0x0f; +#line 1073 "rx-decode.opc" + int srcb AU = op[2] & 0x0f; + if (trace) + { + printf ("\033[33m%s\033[0m %02x %02x %02x\n", + "/** 1111 1101 0100 a110 srca srcb msblh %1, %2, %0 */", + op[0], op[1], op[2]); + printf (" a = 0x%x,", a); + printf (" srca = 0x%x,", srca); + printf (" srcb = 0x%x\n", srcb); + } + SYNTAX("msblh %1, %2, %0"); +#line 1073 "rx-decode.opc" + ID(msblh); DR(a+32); SR(srca); S2R(srcb); F_____; + + } + break; + } + break; + case 0x47: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + op_semantics_93: + { + /** 1111 1101 0100 a111 srca srcb emsba %1, %2, %0 */ +#line 1061 "rx-decode.opc" + int a AU = (op[1] >> 3) & 0x01; +#line 1061 "rx-decode.opc" + int srca AU = (op[2] >> 4) & 0x0f; +#line 1061 "rx-decode.opc" + int srcb AU = op[2] & 0x0f; + if (trace) + { + printf ("\033[33m%s\033[0m %02x %02x %02x\n", + "/** 1111 1101 0100 a111 srca srcb emsba %1, %2, %0 */", + op[0], op[1], op[2]); + printf (" a = 0x%x,", a); + printf (" srca = 0x%x,", srca); + printf (" srcb = 0x%x\n", srcb); + } + SYNTAX("emsba %1, %2, %0"); +#line 1061 "rx-decode.opc" + ID(emsba); DR(a+32); SR(srca); S2R(srcb); F_____; + + } + break; + } + break; + case 0x4c: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_90; + break; + } + break; + case 0x4d: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_91; + break; + } + break; + case 0x4e: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_92; + break; + } + break; + case 0x4f: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_93; break; } break; @@ -9976,9 +10978,9 @@ rx_decode_opcode (unsigned long pc AU, case 0x00: { /** 1111 1101 0110 0000 rsrc rdst shlr %2, %0 */ -#line 691 "rx-decode.opc" +#line 729 "rx-decode.opc" int rsrc AU = (op[2] >> 4) & 0x0f; -#line 691 "rx-decode.opc" +#line 729 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -9989,7 +10991,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("shlr %2, %0"); -#line 691 "rx-decode.opc" +#line 729 "rx-decode.opc" ID(shlr); S2R(rsrc); SR(rdst); DR(rdst); F__SZC; } @@ -10003,9 +11005,9 @@ rx_decode_opcode (unsigned long pc AU, case 0x00: { /** 1111 1101 0110 0001 rsrc rdst shar %2, %0 */ -#line 681 "rx-decode.opc" +#line 719 "rx-decode.opc" int rsrc AU = (op[2] >> 4) & 0x0f; -#line 681 "rx-decode.opc" +#line 719 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -10016,7 +11018,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("shar %2, %0"); -#line 681 "rx-decode.opc" +#line 719 "rx-decode.opc" ID(shar); S2R(rsrc); SR(rdst); DR(rdst); F_0SZC; } @@ -10030,9 +11032,9 @@ rx_decode_opcode (unsigned long pc AU, case 0x00: { /** 1111 1101 0110 0010 rsrc rdst shll %2, %0 */ -#line 671 "rx-decode.opc" +#line 709 "rx-decode.opc" int rsrc AU = (op[2] >> 4) & 0x0f; -#line 671 "rx-decode.opc" +#line 709 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -10043,7 +11045,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("shll %2, %0"); -#line 671 "rx-decode.opc" +#line 709 "rx-decode.opc" ID(shll); S2R(rsrc); SR(rdst); DR(rdst); F_OSZC; } @@ -10057,9 +11059,9 @@ rx_decode_opcode (unsigned long pc AU, case 0x00: { /** 1111 1101 0110 0100 rsrc rdst rotr %1, %0 */ -#line 715 "rx-decode.opc" +#line 753 "rx-decode.opc" int rsrc AU = (op[2] >> 4) & 0x0f; -#line 715 "rx-decode.opc" +#line 753 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -10070,7 +11072,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("rotr %1, %0"); -#line 715 "rx-decode.opc" +#line 753 "rx-decode.opc" ID(rotr); SR(rsrc); DR(rdst); F__SZC; } @@ -10084,9 +11086,9 @@ rx_decode_opcode (unsigned long pc AU, case 0x00: { /** 1111 1101 0110 0101 rsrc rdst revw %1, %0 */ -#line 718 "rx-decode.opc" +#line 756 "rx-decode.opc" int rsrc AU = (op[2] >> 4) & 0x0f; -#line 718 "rx-decode.opc" +#line 756 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -10097,7 +11099,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("revw %1, %0"); -#line 718 "rx-decode.opc" +#line 756 "rx-decode.opc" ID(revw); SR(rsrc); DR(rdst); } @@ -10111,9 +11113,9 @@ rx_decode_opcode (unsigned long pc AU, case 0x00: { /** 1111 1101 0110 0110 rsrc rdst rotl %1, %0 */ -#line 709 "rx-decode.opc" +#line 747 "rx-decode.opc" int rsrc AU = (op[2] >> 4) & 0x0f; -#line 709 "rx-decode.opc" +#line 747 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -10124,7 +11126,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("rotl %1, %0"); -#line 709 "rx-decode.opc" +#line 747 "rx-decode.opc" ID(rotl); SR(rsrc); DR(rdst); F__SZC; } @@ -10138,9 +11140,9 @@ rx_decode_opcode (unsigned long pc AU, case 0x00: { /** 1111 1101 0110 0111 rsrc rdst revl %1, %0 */ -#line 721 "rx-decode.opc" +#line 759 "rx-decode.opc" int rsrc AU = (op[2] >> 4) & 0x0f; -#line 721 "rx-decode.opc" +#line 759 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -10151,7 +11153,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("revl %1, %0"); -#line 721 "rx-decode.opc" +#line 759 "rx-decode.opc" ID(revl); SR(rsrc); DR(rdst); /*----------------------------------------------------------------------*/ @@ -10166,14 +11168,14 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_74: + op_semantics_94: { /** 1111 1101 0110 100c rsrc rdst mvtc %1, %0 */ -#line 972 "rx-decode.opc" +#line 1010 "rx-decode.opc" int c AU = op[1] & 0x01; -#line 972 "rx-decode.opc" +#line 1010 "rx-decode.opc" int rsrc AU = (op[2] >> 4) & 0x0f; -#line 972 "rx-decode.opc" +#line 1010 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -10185,7 +11187,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("mvtc %1, %0"); -#line 972 "rx-decode.opc" +#line 1010 "rx-decode.opc" ID(mov); SR(rsrc); DR(c*16+rdst + 16); } @@ -10197,7 +11199,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_74; + goto op_semantics_94; break; } break; @@ -10206,14 +11208,14 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_75: + op_semantics_95: { /** 1111 1101 0110 101s rsrc rdst mvfc %1, %0 */ -#line 975 "rx-decode.opc" +#line 1013 "rx-decode.opc" int s AU = op[1] & 0x01; -#line 975 "rx-decode.opc" +#line 1013 "rx-decode.opc" int rsrc AU = (op[2] >> 4) & 0x0f; -#line 975 "rx-decode.opc" +#line 1013 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -10225,7 +11227,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("mvfc %1, %0"); -#line 975 "rx-decode.opc" +#line 1013 "rx-decode.opc" ID(mov); SR((s*16+rsrc) + 16); DR(rdst); /*----------------------------------------------------------------------*/ @@ -10240,7 +11242,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_75; + goto op_semantics_95; break; } break; @@ -10249,14 +11251,14 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_76: + op_semantics_96: { /** 1111 1101 0110 110i mmmm rdst rotr #%1, %0 */ -#line 712 "rx-decode.opc" +#line 750 "rx-decode.opc" int i AU = op[1] & 0x01; -#line 712 "rx-decode.opc" +#line 750 "rx-decode.opc" int mmmm AU = (op[2] >> 4) & 0x0f; -#line 712 "rx-decode.opc" +#line 750 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -10268,7 +11270,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("rotr #%1, %0"); -#line 712 "rx-decode.opc" +#line 750 "rx-decode.opc" ID(rotr); SC(i*16+mmmm); DR(rdst); F__SZC; } @@ -10280,7 +11282,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_76; + goto op_semantics_96; break; } break; @@ -10289,14 +11291,14 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_77: + op_semantics_97: { /** 1111 1101 0110 111i mmmm rdst rotl #%1, %0 */ -#line 706 "rx-decode.opc" +#line 744 "rx-decode.opc" int i AU = op[1] & 0x01; -#line 706 "rx-decode.opc" +#line 744 "rx-decode.opc" int mmmm AU = (op[2] >> 4) & 0x0f; -#line 706 "rx-decode.opc" +#line 744 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -10308,7 +11310,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("rotl #%1, %0"); -#line 706 "rx-decode.opc" +#line 744 "rx-decode.opc" ID(rotl); SC(i*16+mmmm); DR(rdst); F__SZC; } @@ -10320,7 +11322,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_77; + goto op_semantics_97; break; } break; @@ -10329,7 +11331,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0xf0) { case 0x20: - op_semantics_78: + op_semantics_98: { /** 1111 1101 0111 im00 0010rdst adc #%1, %0 */ #line 488 "rx-decode.opc" @@ -10351,14 +11353,13 @@ rx_decode_opcode (unsigned long pc AU, } break; case 0x40: - op_semantics_79: + op_semantics_99: { /** 1111 1101 0111 im00 0100rdst max #%1, %0 */ #line 570 "rx-decode.opc" int im AU = (op[1] >> 2) & 0x03; #line 570 "rx-decode.opc" int rdst AU = op[2] & 0x0f; - int val = IMMex (im); if (trace) { printf ("\033[33m%s\033[0m %02x %02x %02x\n", @@ -10369,25 +11370,27 @@ rx_decode_opcode (unsigned long pc AU, } SYNTAX("max #%1, %0"); #line 570 "rx-decode.opc" - if (im == 0 && (unsigned) val == 0x80000000 && rdst == 0) - { - ID(nop7); - SYNTAX ("nop\t; max\t#0x80000000, r0"); - } - else - { - ID(max); - } - DR(rdst); SC(val); + int val = IMMex (im); + if (im == 0 && (unsigned) val == 0x80000000 && rdst == 0) + { + ID (nop7); + SYNTAX("nop\t; max\t#0x80000000, r0"); + } + else + { + ID(max); + } + DR(rdst); SC(val); + } break; case 0x50: - op_semantics_80: + op_semantics_100: { /** 1111 1101 0111 im00 0101rdst min #%1, %0 */ -#line 590 "rx-decode.opc" +#line 600 "rx-decode.opc" int im AU = (op[1] >> 2) & 0x03; -#line 590 "rx-decode.opc" +#line 600 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -10398,18 +11401,18 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("min #%1, %0"); -#line 590 "rx-decode.opc" +#line 600 "rx-decode.opc" ID(min); DR(rdst); SC(IMMex(im)); } break; case 0x60: - op_semantics_81: + op_semantics_101: { /** 1111 1101 0111 im00 0110rdst emul #%1, %0 */ -#line 620 "rx-decode.opc" +#line 658 "rx-decode.opc" int im AU = (op[1] >> 2) & 0x03; -#line 620 "rx-decode.opc" +#line 658 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -10420,18 +11423,18 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("emul #%1, %0"); -#line 620 "rx-decode.opc" +#line 658 "rx-decode.opc" ID(emul); DR(rdst); SC(IMMex(im)); } break; case 0x70: - op_semantics_82: + op_semantics_102: { /** 1111 1101 0111 im00 0111rdst emulu #%1, %0 */ -#line 632 "rx-decode.opc" +#line 670 "rx-decode.opc" int im AU = (op[1] >> 2) & 0x03; -#line 632 "rx-decode.opc" +#line 670 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -10442,18 +11445,18 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("emulu #%1, %0"); -#line 632 "rx-decode.opc" +#line 670 "rx-decode.opc" ID(emulu); DR(rdst); SC(IMMex(im)); } break; case 0x80: - op_semantics_83: + op_semantics_103: { /** 1111 1101 0111 im00 1000rdst div #%1, %0 */ -#line 644 "rx-decode.opc" +#line 682 "rx-decode.opc" int im AU = (op[1] >> 2) & 0x03; -#line 644 "rx-decode.opc" +#line 682 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -10464,18 +11467,18 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("div #%1, %0"); -#line 644 "rx-decode.opc" +#line 682 "rx-decode.opc" ID(div); DR(rdst); SC(IMMex(im)); F_O___; } break; case 0x90: - op_semantics_84: + op_semantics_104: { /** 1111 1101 0111 im00 1001rdst divu #%1, %0 */ -#line 656 "rx-decode.opc" +#line 694 "rx-decode.opc" int im AU = (op[1] >> 2) & 0x03; -#line 656 "rx-decode.opc" +#line 694 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -10486,13 +11489,13 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("divu #%1, %0"); -#line 656 "rx-decode.opc" +#line 694 "rx-decode.opc" ID(divu); DR(rdst); SC(IMMex(im)); F_O___; } break; case 0xc0: - op_semantics_85: + op_semantics_105: { /** 1111 1101 0111 im00 1100rdst tst #%1, %2 */ #line 467 "rx-decode.opc" @@ -10514,7 +11517,7 @@ rx_decode_opcode (unsigned long pc AU, } break; case 0xd0: - op_semantics_86: + op_semantics_106: { /** 1111 1101 0111 im00 1101rdst xor #%1, %0 */ #line 446 "rx-decode.opc" @@ -10536,7 +11539,7 @@ rx_decode_opcode (unsigned long pc AU, } break; case 0xe0: - op_semantics_87: + op_semantics_107: { /** 1111 1101 0111 im00 1110rdst stz #%1, %0 */ #line 392 "rx-decode.opc" @@ -10558,7 +11561,7 @@ rx_decode_opcode (unsigned long pc AU, } break; case 0xf0: - op_semantics_88: + op_semantics_108: { /** 1111 1101 0111 im00 1111rdst stnz #%1, %0 */ #line 395 "rx-decode.opc" @@ -10592,7 +11595,7 @@ rx_decode_opcode (unsigned long pc AU, case 0x00: { /** 1111 1101 0111 0010 0000 rdst fsub #%1, %0 */ -#line 864 "rx-decode.opc" +#line 902 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -10602,7 +11605,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("fsub #%1, %0"); -#line 864 "rx-decode.opc" +#line 902 "rx-decode.opc" ID(fsub); DR(rdst); SC(IMM(0)); F__SZ_; } @@ -10610,7 +11613,7 @@ rx_decode_opcode (unsigned long pc AU, case 0x10: { /** 1111 1101 0111 0010 0001 rdst fcmp #%1, %0 */ -#line 858 "rx-decode.opc" +#line 896 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -10620,7 +11623,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("fcmp #%1, %0"); -#line 858 "rx-decode.opc" +#line 896 "rx-decode.opc" ID(fcmp); DR(rdst); SC(IMM(0)); F_OSZ_; } @@ -10628,7 +11631,7 @@ rx_decode_opcode (unsigned long pc AU, case 0x20: { /** 1111 1101 0111 0010 0010 rdst fadd #%1, %0 */ -#line 852 "rx-decode.opc" +#line 890 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -10638,7 +11641,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("fadd #%1, %0"); -#line 852 "rx-decode.opc" +#line 890 "rx-decode.opc" ID(fadd); DR(rdst); SC(IMM(0)); F__SZ_; } @@ -10646,7 +11649,7 @@ rx_decode_opcode (unsigned long pc AU, case 0x30: { /** 1111 1101 0111 0010 0011 rdst fmul #%1, %0 */ -#line 873 "rx-decode.opc" +#line 911 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -10656,7 +11659,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("fmul #%1, %0"); -#line 873 "rx-decode.opc" +#line 911 "rx-decode.opc" ID(fmul); DR(rdst); SC(IMM(0)); F__SZ_; } @@ -10664,7 +11667,7 @@ rx_decode_opcode (unsigned long pc AU, case 0x40: { /** 1111 1101 0111 0010 0100 rdst fdiv #%1, %0 */ -#line 879 "rx-decode.opc" +#line 917 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -10674,7 +11677,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("fdiv #%1, %0"); -#line 879 "rx-decode.opc" +#line 917 "rx-decode.opc" ID(fdiv); DR(rdst); SC(IMM(0)); F__SZ_; } @@ -10687,12 +11690,12 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0xe0) { case 0x00: - op_semantics_89: + op_semantics_109: { /** 1111 1101 0111 im11 000crdst mvtc #%1, %0 */ -#line 969 "rx-decode.opc" +#line 1007 "rx-decode.opc" int im AU = (op[1] >> 2) & 0x03; -#line 969 "rx-decode.opc" +#line 1007 "rx-decode.opc" int crdst AU = op[2] & 0x1f; if (trace) { @@ -10703,7 +11706,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" crdst = 0x%x\n", crdst); } SYNTAX("mvtc #%1, %0"); -#line 969 "rx-decode.opc" +#line 1007 "rx-decode.opc" ID(mov); SC(IMMex(im)); DR(crdst + 16); } @@ -10716,37 +11719,37 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0xf0) { case 0x20: - goto op_semantics_78; + goto op_semantics_98; break; case 0x40: - goto op_semantics_79; + goto op_semantics_99; break; case 0x50: - goto op_semantics_80; + goto op_semantics_100; break; case 0x60: - goto op_semantics_81; + goto op_semantics_101; break; case 0x70: - goto op_semantics_82; + goto op_semantics_102; break; case 0x80: - goto op_semantics_83; + goto op_semantics_103; break; case 0x90: - goto op_semantics_84; + goto op_semantics_104; break; case 0xc0: - goto op_semantics_85; + goto op_semantics_105; break; case 0xd0: - goto op_semantics_86; + goto op_semantics_106; break; case 0xe0: - goto op_semantics_87; + goto op_semantics_107; break; case 0xf0: - goto op_semantics_88; + goto op_semantics_108; break; default: UNSUPPORTED(); break; } @@ -10756,7 +11759,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0xe0) { case 0x00: - goto op_semantics_89; + goto op_semantics_109; break; default: UNSUPPORTED(); break; } @@ -10766,37 +11769,37 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0xf0) { case 0x20: - goto op_semantics_78; + goto op_semantics_98; break; case 0x40: - goto op_semantics_79; + goto op_semantics_99; break; case 0x50: - goto op_semantics_80; + goto op_semantics_100; break; case 0x60: - goto op_semantics_81; + goto op_semantics_101; break; case 0x70: - goto op_semantics_82; + goto op_semantics_102; break; case 0x80: - goto op_semantics_83; + goto op_semantics_103; break; case 0x90: - goto op_semantics_84; + goto op_semantics_104; break; case 0xc0: - goto op_semantics_85; + goto op_semantics_105; break; case 0xd0: - goto op_semantics_86; + goto op_semantics_106; break; case 0xe0: - goto op_semantics_87; + goto op_semantics_107; break; case 0xf0: - goto op_semantics_88; + goto op_semantics_108; break; default: UNSUPPORTED(); break; } @@ -10806,7 +11809,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0xe0) { case 0x00: - goto op_semantics_89; + goto op_semantics_109; break; default: UNSUPPORTED(); break; } @@ -10816,37 +11819,37 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0xf0) { case 0x20: - goto op_semantics_78; + goto op_semantics_98; break; case 0x40: - goto op_semantics_79; + goto op_semantics_99; break; case 0x50: - goto op_semantics_80; + goto op_semantics_100; break; case 0x60: - goto op_semantics_81; + goto op_semantics_101; break; case 0x70: - goto op_semantics_82; + goto op_semantics_102; break; case 0x80: - goto op_semantics_83; + goto op_semantics_103; break; case 0x90: - goto op_semantics_84; + goto op_semantics_104; break; case 0xc0: - goto op_semantics_85; + goto op_semantics_105; break; case 0xd0: - goto op_semantics_86; + goto op_semantics_106; break; case 0xe0: - goto op_semantics_87; + goto op_semantics_107; break; case 0xf0: - goto op_semantics_88; + goto op_semantics_108; break; default: UNSUPPORTED(); break; } @@ -10856,7 +11859,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0xe0) { case 0x00: - goto op_semantics_89; + goto op_semantics_109; break; default: UNSUPPORTED(); break; } @@ -10866,14 +11869,14 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_90: + op_semantics_110: { /** 1111 1101 100immmm rsrc rdst shlr #%2, %1, %0 */ -#line 694 "rx-decode.opc" +#line 732 "rx-decode.opc" int immmm AU = op[1] & 0x1f; -#line 694 "rx-decode.opc" +#line 732 "rx-decode.opc" int rsrc AU = (op[2] >> 4) & 0x0f; -#line 694 "rx-decode.opc" +#line 732 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -10885,7 +11888,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("shlr #%2, %1, %0"); -#line 694 "rx-decode.opc" +#line 732 "rx-decode.opc" ID(shlr); S2C(immmm); SR(rsrc); DR(rdst); F__SZC; /*----------------------------------------------------------------------*/ @@ -10900,7 +11903,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_90; + goto op_semantics_110; break; } break; @@ -10909,7 +11912,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_90; + goto op_semantics_110; break; } break; @@ -10918,7 +11921,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_90; + goto op_semantics_110; break; } break; @@ -10927,7 +11930,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_90; + goto op_semantics_110; break; } break; @@ -10936,7 +11939,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_90; + goto op_semantics_110; break; } break; @@ -10945,7 +11948,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_90; + goto op_semantics_110; break; } break; @@ -10954,7 +11957,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_90; + goto op_semantics_110; break; } break; @@ -10963,7 +11966,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_90; + goto op_semantics_110; break; } break; @@ -10972,7 +11975,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_90; + goto op_semantics_110; break; } break; @@ -10981,7 +11984,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_90; + goto op_semantics_110; break; } break; @@ -10990,7 +11993,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_90; + goto op_semantics_110; break; } break; @@ -10999,7 +12002,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_90; + goto op_semantics_110; break; } break; @@ -11008,7 +12011,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_90; + goto op_semantics_110; break; } break; @@ -11017,7 +12020,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_90; + goto op_semantics_110; break; } break; @@ -11026,7 +12029,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_90; + goto op_semantics_110; break; } break; @@ -11035,7 +12038,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_90; + goto op_semantics_110; break; } break; @@ -11044,7 +12047,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_90; + goto op_semantics_110; break; } break; @@ -11053,7 +12056,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_90; + goto op_semantics_110; break; } break; @@ -11062,7 +12065,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_90; + goto op_semantics_110; break; } break; @@ -11071,7 +12074,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_90; + goto op_semantics_110; break; } break; @@ -11080,7 +12083,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_90; + goto op_semantics_110; break; } break; @@ -11089,7 +12092,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_90; + goto op_semantics_110; break; } break; @@ -11098,7 +12101,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_90; + goto op_semantics_110; break; } break; @@ -11107,7 +12110,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_90; + goto op_semantics_110; break; } break; @@ -11116,7 +12119,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_90; + goto op_semantics_110; break; } break; @@ -11125,7 +12128,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_90; + goto op_semantics_110; break; } break; @@ -11134,7 +12137,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_90; + goto op_semantics_110; break; } break; @@ -11143,7 +12146,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_90; + goto op_semantics_110; break; } break; @@ -11152,7 +12155,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_90; + goto op_semantics_110; break; } break; @@ -11161,7 +12164,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_90; + goto op_semantics_110; break; } break; @@ -11170,7 +12173,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_90; + goto op_semantics_110; break; } break; @@ -11179,14 +12182,14 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_91: + op_semantics_111: { /** 1111 1101 101immmm rsrc rdst shar #%2, %1, %0 */ -#line 684 "rx-decode.opc" +#line 722 "rx-decode.opc" int immmm AU = op[1] & 0x1f; -#line 684 "rx-decode.opc" +#line 722 "rx-decode.opc" int rsrc AU = (op[2] >> 4) & 0x0f; -#line 684 "rx-decode.opc" +#line 722 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -11198,7 +12201,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("shar #%2, %1, %0"); -#line 684 "rx-decode.opc" +#line 722 "rx-decode.opc" ID(shar); S2C(immmm); SR(rsrc); DR(rdst); F_0SZC; @@ -11211,7 +12214,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_91; + goto op_semantics_111; break; } break; @@ -11220,7 +12223,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_91; + goto op_semantics_111; break; } break; @@ -11229,7 +12232,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_91; + goto op_semantics_111; break; } break; @@ -11238,7 +12241,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_91; + goto op_semantics_111; break; } break; @@ -11247,7 +12250,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_91; + goto op_semantics_111; break; } break; @@ -11256,7 +12259,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_91; + goto op_semantics_111; break; } break; @@ -11265,7 +12268,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_91; + goto op_semantics_111; break; } break; @@ -11274,7 +12277,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_91; + goto op_semantics_111; break; } break; @@ -11283,7 +12286,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_91; + goto op_semantics_111; break; } break; @@ -11292,7 +12295,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_91; + goto op_semantics_111; break; } break; @@ -11301,7 +12304,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_91; + goto op_semantics_111; break; } break; @@ -11310,7 +12313,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_91; + goto op_semantics_111; break; } break; @@ -11319,7 +12322,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_91; + goto op_semantics_111; break; } break; @@ -11328,7 +12331,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_91; + goto op_semantics_111; break; } break; @@ -11337,7 +12340,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_91; + goto op_semantics_111; break; } break; @@ -11346,7 +12349,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_91; + goto op_semantics_111; break; } break; @@ -11355,7 +12358,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_91; + goto op_semantics_111; break; } break; @@ -11364,7 +12367,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_91; + goto op_semantics_111; break; } break; @@ -11373,7 +12376,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_91; + goto op_semantics_111; break; } break; @@ -11382,7 +12385,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_91; + goto op_semantics_111; break; } break; @@ -11391,7 +12394,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_91; + goto op_semantics_111; break; } break; @@ -11400,7 +12403,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_91; + goto op_semantics_111; break; } break; @@ -11409,7 +12412,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_91; + goto op_semantics_111; break; } break; @@ -11418,7 +12421,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_91; + goto op_semantics_111; break; } break; @@ -11427,7 +12430,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_91; + goto op_semantics_111; break; } break; @@ -11436,7 +12439,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_91; + goto op_semantics_111; break; } break; @@ -11445,7 +12448,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_91; + goto op_semantics_111; break; } break; @@ -11454,7 +12457,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_91; + goto op_semantics_111; break; } break; @@ -11463,7 +12466,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_91; + goto op_semantics_111; break; } break; @@ -11472,7 +12475,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_91; + goto op_semantics_111; break; } break; @@ -11481,7 +12484,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_91; + goto op_semantics_111; break; } break; @@ -11490,14 +12493,14 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_92: + op_semantics_112: { /** 1111 1101 110immmm rsrc rdst shll #%2, %1, %0 */ -#line 674 "rx-decode.opc" +#line 712 "rx-decode.opc" int immmm AU = op[1] & 0x1f; -#line 674 "rx-decode.opc" +#line 712 "rx-decode.opc" int rsrc AU = (op[2] >> 4) & 0x0f; -#line 674 "rx-decode.opc" +#line 712 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -11509,7 +12512,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("shll #%2, %1, %0"); -#line 674 "rx-decode.opc" +#line 712 "rx-decode.opc" ID(shll); S2C(immmm); SR(rsrc); DR(rdst); F_OSZC; @@ -11522,7 +12525,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_92; + goto op_semantics_112; break; } break; @@ -11531,7 +12534,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_92; + goto op_semantics_112; break; } break; @@ -11540,7 +12543,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_92; + goto op_semantics_112; break; } break; @@ -11549,7 +12552,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_92; + goto op_semantics_112; break; } break; @@ -11558,7 +12561,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_92; + goto op_semantics_112; break; } break; @@ -11567,7 +12570,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_92; + goto op_semantics_112; break; } break; @@ -11576,7 +12579,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_92; + goto op_semantics_112; break; } break; @@ -11585,7 +12588,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_92; + goto op_semantics_112; break; } break; @@ -11594,7 +12597,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_92; + goto op_semantics_112; break; } break; @@ -11603,7 +12606,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_92; + goto op_semantics_112; break; } break; @@ -11612,7 +12615,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_92; + goto op_semantics_112; break; } break; @@ -11621,7 +12624,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_92; + goto op_semantics_112; break; } break; @@ -11630,7 +12633,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_92; + goto op_semantics_112; break; } break; @@ -11639,7 +12642,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_92; + goto op_semantics_112; break; } break; @@ -11648,7 +12651,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_92; + goto op_semantics_112; break; } break; @@ -11657,7 +12660,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_92; + goto op_semantics_112; break; } break; @@ -11666,7 +12669,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_92; + goto op_semantics_112; break; } break; @@ -11675,7 +12678,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_92; + goto op_semantics_112; break; } break; @@ -11684,7 +12687,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_92; + goto op_semantics_112; break; } break; @@ -11693,7 +12696,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_92; + goto op_semantics_112; break; } break; @@ -11702,7 +12705,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_92; + goto op_semantics_112; break; } break; @@ -11711,7 +12714,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_92; + goto op_semantics_112; break; } break; @@ -11720,7 +12723,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_92; + goto op_semantics_112; break; } break; @@ -11729,7 +12732,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_92; + goto op_semantics_112; break; } break; @@ -11738,7 +12741,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_92; + goto op_semantics_112; break; } break; @@ -11747,7 +12750,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_92; + goto op_semantics_112; break; } break; @@ -11756,7 +12759,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_92; + goto op_semantics_112; break; } break; @@ -11765,7 +12768,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_92; + goto op_semantics_112; break; } break; @@ -11774,7 +12777,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_92; + goto op_semantics_112; break; } break; @@ -11783,7 +12786,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_92; + goto op_semantics_112; break; } break; @@ -11792,7 +12795,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_92; + goto op_semantics_112; break; } break; @@ -11815,14 +12818,14 @@ rx_decode_opcode (unsigned long pc AU, case 0xc0: case 0xd0: case 0xe0: - op_semantics_93: + op_semantics_113: { /** 1111 1101 111 bittt cond rdst bm%2 #%1, %0%S0 */ -#line 948 "rx-decode.opc" +#line 986 "rx-decode.opc" int bittt AU = op[1] & 0x1f; -#line 948 "rx-decode.opc" +#line 986 "rx-decode.opc" int cond AU = (op[2] >> 4) & 0x0f; -#line 948 "rx-decode.opc" +#line 986 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -11834,7 +12837,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("bm%2 #%1, %0%S0"); -#line 948 "rx-decode.opc" +#line 986 "rx-decode.opc" ID(bmcc); BWL(LSIZE); S2cc(cond); SC(bittt); DR(rdst); /*----------------------------------------------------------------------*/ @@ -11843,12 +12846,12 @@ rx_decode_opcode (unsigned long pc AU, } break; case 0xf0: - op_semantics_94: + op_semantics_114: { /** 1111 1101 111bittt 1111 rdst bnot #%1, %0 */ -#line 941 "rx-decode.opc" +#line 979 "rx-decode.opc" int bittt AU = op[1] & 0x1f; -#line 941 "rx-decode.opc" +#line 979 "rx-decode.opc" int rdst AU = op[2] & 0x0f; if (trace) { @@ -11859,7 +12862,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" rdst = 0x%x\n", rdst); } SYNTAX("bnot #%1, %0"); -#line 941 "rx-decode.opc" +#line 979 "rx-decode.opc" ID(bnot); BWL(LSIZE); SC(bittt); DR(rdst); @@ -11886,10 +12889,10 @@ rx_decode_opcode (unsigned long pc AU, case 0xc0: case 0xd0: case 0xe0: - goto op_semantics_93; + goto op_semantics_113; break; case 0xf0: - goto op_semantics_94; + goto op_semantics_114; break; } break; @@ -11912,10 +12915,10 @@ rx_decode_opcode (unsigned long pc AU, case 0xc0: case 0xd0: case 0xe0: - goto op_semantics_93; + goto op_semantics_113; break; case 0xf0: - goto op_semantics_94; + goto op_semantics_114; break; } break; @@ -11938,10 +12941,10 @@ rx_decode_opcode (unsigned long pc AU, case 0xc0: case 0xd0: case 0xe0: - goto op_semantics_93; + goto op_semantics_113; break; case 0xf0: - goto op_semantics_94; + goto op_semantics_114; break; } break; @@ -11964,10 +12967,10 @@ rx_decode_opcode (unsigned long pc AU, case 0xc0: case 0xd0: case 0xe0: - goto op_semantics_93; + goto op_semantics_113; break; case 0xf0: - goto op_semantics_94; + goto op_semantics_114; break; } break; @@ -11990,10 +12993,10 @@ rx_decode_opcode (unsigned long pc AU, case 0xc0: case 0xd0: case 0xe0: - goto op_semantics_93; + goto op_semantics_113; break; case 0xf0: - goto op_semantics_94; + goto op_semantics_114; break; } break; @@ -12016,10 +13019,10 @@ rx_decode_opcode (unsigned long pc AU, case 0xc0: case 0xd0: case 0xe0: - goto op_semantics_93; + goto op_semantics_113; break; case 0xf0: - goto op_semantics_94; + goto op_semantics_114; break; } break; @@ -12042,10 +13045,10 @@ rx_decode_opcode (unsigned long pc AU, case 0xc0: case 0xd0: case 0xe0: - goto op_semantics_93; + goto op_semantics_113; break; case 0xf0: - goto op_semantics_94; + goto op_semantics_114; break; } break; @@ -12068,10 +13071,10 @@ rx_decode_opcode (unsigned long pc AU, case 0xc0: case 0xd0: case 0xe0: - goto op_semantics_93; + goto op_semantics_113; break; case 0xf0: - goto op_semantics_94; + goto op_semantics_114; break; } break; @@ -12094,10 +13097,10 @@ rx_decode_opcode (unsigned long pc AU, case 0xc0: case 0xd0: case 0xe0: - goto op_semantics_93; + goto op_semantics_113; break; case 0xf0: - goto op_semantics_94; + goto op_semantics_114; break; } break; @@ -12120,10 +13123,10 @@ rx_decode_opcode (unsigned long pc AU, case 0xc0: case 0xd0: case 0xe0: - goto op_semantics_93; + goto op_semantics_113; break; case 0xf0: - goto op_semantics_94; + goto op_semantics_114; break; } break; @@ -12146,10 +13149,10 @@ rx_decode_opcode (unsigned long pc AU, case 0xc0: case 0xd0: case 0xe0: - goto op_semantics_93; + goto op_semantics_113; break; case 0xf0: - goto op_semantics_94; + goto op_semantics_114; break; } break; @@ -12172,10 +13175,10 @@ rx_decode_opcode (unsigned long pc AU, case 0xc0: case 0xd0: case 0xe0: - goto op_semantics_93; + goto op_semantics_113; break; case 0xf0: - goto op_semantics_94; + goto op_semantics_114; break; } break; @@ -12198,10 +13201,10 @@ rx_decode_opcode (unsigned long pc AU, case 0xc0: case 0xd0: case 0xe0: - goto op_semantics_93; + goto op_semantics_113; break; case 0xf0: - goto op_semantics_94; + goto op_semantics_114; break; } break; @@ -12224,10 +13227,10 @@ rx_decode_opcode (unsigned long pc AU, case 0xc0: case 0xd0: case 0xe0: - goto op_semantics_93; + goto op_semantics_113; break; case 0xf0: - goto op_semantics_94; + goto op_semantics_114; break; } break; @@ -12250,10 +13253,10 @@ rx_decode_opcode (unsigned long pc AU, case 0xc0: case 0xd0: case 0xe0: - goto op_semantics_93; + goto op_semantics_113; break; case 0xf0: - goto op_semantics_94; + goto op_semantics_114; break; } break; @@ -12276,10 +13279,10 @@ rx_decode_opcode (unsigned long pc AU, case 0xc0: case 0xd0: case 0xe0: - goto op_semantics_93; + goto op_semantics_113; break; case 0xf0: - goto op_semantics_94; + goto op_semantics_114; break; } break; @@ -12302,10 +13305,10 @@ rx_decode_opcode (unsigned long pc AU, case 0xc0: case 0xd0: case 0xe0: - goto op_semantics_93; + goto op_semantics_113; break; case 0xf0: - goto op_semantics_94; + goto op_semantics_114; break; } break; @@ -12328,10 +13331,10 @@ rx_decode_opcode (unsigned long pc AU, case 0xc0: case 0xd0: case 0xe0: - goto op_semantics_93; + goto op_semantics_113; break; case 0xf0: - goto op_semantics_94; + goto op_semantics_114; break; } break; @@ -12354,10 +13357,10 @@ rx_decode_opcode (unsigned long pc AU, case 0xc0: case 0xd0: case 0xe0: - goto op_semantics_93; + goto op_semantics_113; break; case 0xf0: - goto op_semantics_94; + goto op_semantics_114; break; } break; @@ -12380,10 +13383,10 @@ rx_decode_opcode (unsigned long pc AU, case 0xc0: case 0xd0: case 0xe0: - goto op_semantics_93; + goto op_semantics_113; break; case 0xf0: - goto op_semantics_94; + goto op_semantics_114; break; } break; @@ -12406,10 +13409,10 @@ rx_decode_opcode (unsigned long pc AU, case 0xc0: case 0xd0: case 0xe0: - goto op_semantics_93; + goto op_semantics_113; break; case 0xf0: - goto op_semantics_94; + goto op_semantics_114; break; } break; @@ -12432,10 +13435,10 @@ rx_decode_opcode (unsigned long pc AU, case 0xc0: case 0xd0: case 0xe0: - goto op_semantics_93; + goto op_semantics_113; break; case 0xf0: - goto op_semantics_94; + goto op_semantics_114; break; } break; @@ -12458,10 +13461,10 @@ rx_decode_opcode (unsigned long pc AU, case 0xc0: case 0xd0: case 0xe0: - goto op_semantics_93; + goto op_semantics_113; break; case 0xf0: - goto op_semantics_94; + goto op_semantics_114; break; } break; @@ -12484,10 +13487,10 @@ rx_decode_opcode (unsigned long pc AU, case 0xc0: case 0xd0: case 0xe0: - goto op_semantics_93; + goto op_semantics_113; break; case 0xf0: - goto op_semantics_94; + goto op_semantics_114; break; } break; @@ -12510,10 +13513,10 @@ rx_decode_opcode (unsigned long pc AU, case 0xc0: case 0xd0: case 0xe0: - goto op_semantics_93; + goto op_semantics_113; break; case 0xf0: - goto op_semantics_94; + goto op_semantics_114; break; } break; @@ -12536,10 +13539,10 @@ rx_decode_opcode (unsigned long pc AU, case 0xc0: case 0xd0: case 0xe0: - goto op_semantics_93; + goto op_semantics_113; break; case 0xf0: - goto op_semantics_94; + goto op_semantics_114; break; } break; @@ -12562,10 +13565,10 @@ rx_decode_opcode (unsigned long pc AU, case 0xc0: case 0xd0: case 0xe0: - goto op_semantics_93; + goto op_semantics_113; break; case 0xf0: - goto op_semantics_94; + goto op_semantics_114; break; } break; @@ -12588,10 +13591,10 @@ rx_decode_opcode (unsigned long pc AU, case 0xc0: case 0xd0: case 0xe0: - goto op_semantics_93; + goto op_semantics_113; break; case 0xf0: - goto op_semantics_94; + goto op_semantics_114; break; } break; @@ -12614,10 +13617,10 @@ rx_decode_opcode (unsigned long pc AU, case 0xc0: case 0xd0: case 0xe0: - goto op_semantics_93; + goto op_semantics_113; break; case 0xf0: - goto op_semantics_94; + goto op_semantics_114; break; } break; @@ -12640,10 +13643,10 @@ rx_decode_opcode (unsigned long pc AU, case 0xc0: case 0xd0: case 0xe0: - goto op_semantics_93; + goto op_semantics_113; break; case 0xf0: - goto op_semantics_94; + goto op_semantics_114; break; } break; @@ -12666,10 +13669,10 @@ rx_decode_opcode (unsigned long pc AU, case 0xc0: case 0xd0: case 0xe0: - goto op_semantics_93; + goto op_semantics_113; break; case 0xf0: - goto op_semantics_94; + goto op_semantics_114; break; } break; @@ -12685,7 +13688,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_95: + op_semantics_115: { /** 1111 1110 00sz isrc bsrc rdst mov%s %0, [%1, %2] */ #line 338 "rx-decode.opc" @@ -12719,7 +13722,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -12728,7 +13731,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -12737,7 +13740,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -12746,7 +13749,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -12755,7 +13758,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -12764,7 +13767,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -12773,7 +13776,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -12782,7 +13785,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -12791,7 +13794,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -12800,7 +13803,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -12809,7 +13812,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -12818,7 +13821,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -12827,7 +13830,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -12836,7 +13839,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -12845,7 +13848,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -12854,7 +13857,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -12863,7 +13866,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -12872,7 +13875,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -12881,7 +13884,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -12890,7 +13893,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -12899,7 +13902,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -12908,7 +13911,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -12917,7 +13920,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -12926,7 +13929,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -12935,7 +13938,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -12944,7 +13947,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -12953,7 +13956,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -12962,7 +13965,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -12971,7 +13974,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -12980,7 +13983,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -12989,7 +13992,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -12998,7 +14001,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -13007,7 +14010,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -13016,7 +14019,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -13025,7 +14028,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -13034,7 +14037,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -13043,7 +14046,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -13052,7 +14055,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -13061,7 +14064,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -13070,7 +14073,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -13079,7 +14082,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -13088,7 +14091,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -13097,7 +14100,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -13106,7 +14109,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -13115,7 +14118,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -13124,7 +14127,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -13133,7 +14136,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_95; + goto op_semantics_115; break; } break; @@ -13142,7 +14145,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_96: + op_semantics_116: { /** 1111 1110 01sz isrc bsrc rdst mov%s [%1, %2], %0 */ #line 335 "rx-decode.opc" @@ -13176,7 +14179,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13185,7 +14188,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13194,7 +14197,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13203,7 +14206,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13212,7 +14215,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13221,7 +14224,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13230,7 +14233,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13239,7 +14242,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13248,7 +14251,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13257,7 +14260,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13266,7 +14269,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13275,7 +14278,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13284,7 +14287,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13293,7 +14296,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13302,7 +14305,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13311,7 +14314,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13320,7 +14323,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13329,7 +14332,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13338,7 +14341,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13347,7 +14350,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13356,7 +14359,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13365,7 +14368,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13374,7 +14377,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13383,7 +14386,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13392,7 +14395,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13401,7 +14404,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13410,7 +14413,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13419,7 +14422,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13428,7 +14431,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13437,7 +14440,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13446,7 +14449,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13455,7 +14458,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13464,7 +14467,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13473,7 +14476,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13482,7 +14485,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13491,7 +14494,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13500,7 +14503,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13509,7 +14512,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13518,7 +14521,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13527,7 +14530,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13536,7 +14539,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13545,7 +14548,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13554,7 +14557,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13563,7 +14566,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13572,7 +14575,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13581,7 +14584,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13590,7 +14593,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_96; + goto op_semantics_116; break; } break; @@ -13599,7 +14602,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_97: + op_semantics_117: { /** 1111 1110 11sz isrc bsrc rdst movu%s [%1, %2], %0 */ #line 341 "rx-decode.opc" @@ -13633,7 +14636,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13642,7 +14645,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13651,7 +14654,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13660,7 +14663,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13669,7 +14672,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13678,7 +14681,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13687,7 +14690,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13696,7 +14699,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13705,7 +14708,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13714,7 +14717,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13723,7 +14726,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13732,7 +14735,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13741,7 +14744,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13750,7 +14753,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13759,7 +14762,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13768,7 +14771,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13777,7 +14780,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13786,7 +14789,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13795,7 +14798,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13804,7 +14807,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13813,7 +14816,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13822,7 +14825,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13831,7 +14834,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13840,7 +14843,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13849,7 +14852,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13858,7 +14861,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13867,7 +14870,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13876,7 +14879,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13885,7 +14888,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13894,7 +14897,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13903,7 +14906,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13912,7 +14915,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13921,7 +14924,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13930,7 +14933,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13939,7 +14942,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13948,7 +14951,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13957,7 +14960,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13966,7 +14969,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13975,7 +14978,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13984,7 +14987,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -13993,7 +14996,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -14002,7 +15005,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -14011,7 +15014,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -14020,7 +15023,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -14029,7 +15032,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -14038,7 +15041,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -14047,7 +15050,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_97; + goto op_semantics_117; break; } break; @@ -14063,7 +15066,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_98: + op_semantics_118: { /** 1111 1111 0000 rdst srca srcb sub %2, %1, %0 */ #line 545 "rx-decode.opc" @@ -14097,7 +15100,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_98; + goto op_semantics_118; break; } break; @@ -14106,7 +15109,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_98; + goto op_semantics_118; break; } break; @@ -14115,7 +15118,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_98; + goto op_semantics_118; break; } break; @@ -14124,7 +15127,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_98; + goto op_semantics_118; break; } break; @@ -14133,7 +15136,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_98; + goto op_semantics_118; break; } break; @@ -14142,7 +15145,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_98; + goto op_semantics_118; break; } break; @@ -14151,7 +15154,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_98; + goto op_semantics_118; break; } break; @@ -14160,7 +15163,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_98; + goto op_semantics_118; break; } break; @@ -14169,7 +15172,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_98; + goto op_semantics_118; break; } break; @@ -14178,7 +15181,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_98; + goto op_semantics_118; break; } break; @@ -14187,7 +15190,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_98; + goto op_semantics_118; break; } break; @@ -14196,7 +15199,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_98; + goto op_semantics_118; break; } break; @@ -14205,7 +15208,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_98; + goto op_semantics_118; break; } break; @@ -14214,7 +15217,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_98; + goto op_semantics_118; break; } break; @@ -14223,7 +15226,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_98; + goto op_semantics_118; break; } break; @@ -14232,7 +15235,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_99: + op_semantics_119: { /** 1111 1111 0010 rdst srca srcb add %2, %1, %0 */ #line 512 "rx-decode.opc" @@ -14266,7 +15269,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_99; + goto op_semantics_119; break; } break; @@ -14275,7 +15278,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_99; + goto op_semantics_119; break; } break; @@ -14284,7 +15287,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_99; + goto op_semantics_119; break; } break; @@ -14293,7 +15296,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_99; + goto op_semantics_119; break; } break; @@ -14302,7 +15305,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_99; + goto op_semantics_119; break; } break; @@ -14311,7 +15314,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_99; + goto op_semantics_119; break; } break; @@ -14320,7 +15323,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_99; + goto op_semantics_119; break; } break; @@ -14329,7 +15332,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_99; + goto op_semantics_119; break; } break; @@ -14338,7 +15341,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_99; + goto op_semantics_119; break; } break; @@ -14347,7 +15350,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_99; + goto op_semantics_119; break; } break; @@ -14356,7 +15359,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_99; + goto op_semantics_119; break; } break; @@ -14365,7 +15368,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_99; + goto op_semantics_119; break; } break; @@ -14374,7 +15377,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_99; + goto op_semantics_119; break; } break; @@ -14383,7 +15386,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_99; + goto op_semantics_119; break; } break; @@ -14392,7 +15395,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_99; + goto op_semantics_119; break; } break; @@ -14401,14 +15404,14 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_100: + op_semantics_120: { /** 1111 1111 0011 rdst srca srcb mul %2, %1, %0 */ -#line 614 "rx-decode.opc" +#line 652 "rx-decode.opc" int rdst AU = op[1] & 0x0f; -#line 614 "rx-decode.opc" +#line 652 "rx-decode.opc" int srca AU = (op[2] >> 4) & 0x0f; -#line 614 "rx-decode.opc" +#line 652 "rx-decode.opc" int srcb AU = op[2] & 0x0f; if (trace) { @@ -14420,7 +15423,7 @@ rx_decode_opcode (unsigned long pc AU, printf (" srcb = 0x%x\n", srcb); } SYNTAX("mul %2, %1, %0"); -#line 614 "rx-decode.opc" +#line 652 "rx-decode.opc" ID(mul); DR(rdst); SR(srcb); S2R(srca); F_____; /*----------------------------------------------------------------------*/ @@ -14435,7 +15438,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_100; + goto op_semantics_120; break; } break; @@ -14444,7 +15447,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_100; + goto op_semantics_120; break; } break; @@ -14453,7 +15456,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_100; + goto op_semantics_120; break; } break; @@ -14462,7 +15465,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_100; + goto op_semantics_120; break; } break; @@ -14471,7 +15474,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_100; + goto op_semantics_120; break; } break; @@ -14480,7 +15483,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_100; + goto op_semantics_120; break; } break; @@ -14489,7 +15492,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_100; + goto op_semantics_120; break; } break; @@ -14498,7 +15501,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_100; + goto op_semantics_120; break; } break; @@ -14507,7 +15510,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_100; + goto op_semantics_120; break; } break; @@ -14516,7 +15519,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_100; + goto op_semantics_120; break; } break; @@ -14525,7 +15528,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_100; + goto op_semantics_120; break; } break; @@ -14534,7 +15537,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_100; + goto op_semantics_120; break; } break; @@ -14543,7 +15546,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_100; + goto op_semantics_120; break; } break; @@ -14552,7 +15555,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_100; + goto op_semantics_120; break; } break; @@ -14561,7 +15564,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_100; + goto op_semantics_120; break; } break; @@ -14570,7 +15573,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_101: + op_semantics_121: { /** 1111 1111 0100 rdst srca srcb and %2, %1, %0 */ #line 422 "rx-decode.opc" @@ -14604,7 +15607,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_101; + goto op_semantics_121; break; } break; @@ -14613,7 +15616,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_101; + goto op_semantics_121; break; } break; @@ -14622,7 +15625,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_101; + goto op_semantics_121; break; } break; @@ -14631,7 +15634,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_101; + goto op_semantics_121; break; } break; @@ -14640,7 +15643,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_101; + goto op_semantics_121; break; } break; @@ -14649,7 +15652,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_101; + goto op_semantics_121; break; } break; @@ -14658,7 +15661,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_101; + goto op_semantics_121; break; } break; @@ -14667,7 +15670,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_101; + goto op_semantics_121; break; } break; @@ -14676,7 +15679,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_101; + goto op_semantics_121; break; } break; @@ -14685,7 +15688,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_101; + goto op_semantics_121; break; } break; @@ -14694,7 +15697,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_101; + goto op_semantics_121; break; } break; @@ -14703,7 +15706,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_101; + goto op_semantics_121; break; } break; @@ -14712,7 +15715,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_101; + goto op_semantics_121; break; } break; @@ -14721,7 +15724,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_101; + goto op_semantics_121; break; } break; @@ -14730,7 +15733,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_101; + goto op_semantics_121; break; } break; @@ -14739,7 +15742,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - op_semantics_102: + op_semantics_122: { /** 1111 1111 0101 rdst srca srcb or %2, %1, %0 */ #line 440 "rx-decode.opc" @@ -14773,7 +15776,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_102; + goto op_semantics_122; break; } break; @@ -14782,7 +15785,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_102; + goto op_semantics_122; break; } break; @@ -14791,7 +15794,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_102; + goto op_semantics_122; break; } break; @@ -14800,7 +15803,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_102; + goto op_semantics_122; break; } break; @@ -14809,7 +15812,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_102; + goto op_semantics_122; break; } break; @@ -14818,7 +15821,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_102; + goto op_semantics_122; break; } break; @@ -14827,7 +15830,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_102; + goto op_semantics_122; break; } break; @@ -14836,7 +15839,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_102; + goto op_semantics_122; break; } break; @@ -14845,7 +15848,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_102; + goto op_semantics_122; break; } break; @@ -14854,7 +15857,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_102; + goto op_semantics_122; break; } break; @@ -14863,7 +15866,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_102; + goto op_semantics_122; break; } break; @@ -14872,7 +15875,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_102; + goto op_semantics_122; break; } break; @@ -14881,7 +15884,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_102; + goto op_semantics_122; break; } break; @@ -14890,7 +15893,7 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_102; + goto op_semantics_122; break; } break; @@ -14899,7 +15902,505 @@ rx_decode_opcode (unsigned long pc AU, switch (op[2] & 0x00) { case 0x00: - goto op_semantics_102; + goto op_semantics_122; + break; + } + break; + case 0x80: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + op_semantics_123: + { + /** 1111 1111 1000 rdst srca srcb fsub %2, %1, %0 */ +#line 1100 "rx-decode.opc" + int rdst AU = op[1] & 0x0f; +#line 1100 "rx-decode.opc" + int srca AU = (op[2] >> 4) & 0x0f; +#line 1100 "rx-decode.opc" + int srcb AU = op[2] & 0x0f; + if (trace) + { + printf ("\033[33m%s\033[0m %02x %02x %02x\n", + "/** 1111 1111 1000 rdst srca srcb fsub %2, %1, %0 */", + op[0], op[1], op[2]); + printf (" rdst = 0x%x,", rdst); + printf (" srca = 0x%x,", srca); + printf (" srcb = 0x%x\n", srcb); + } + SYNTAX("fsub %2, %1, %0"); +#line 1100 "rx-decode.opc" + ID(fsub); DR(rdst); SR(srcb); S2R(srca); F__SZ_; + + } + break; + } + break; + case 0x81: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_123; + break; + } + break; + case 0x82: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_123; + break; + } + break; + case 0x83: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_123; + break; + } + break; + case 0x84: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_123; + break; + } + break; + case 0x85: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_123; + break; + } + break; + case 0x86: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_123; + break; + } + break; + case 0x87: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_123; + break; + } + break; + case 0x88: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_123; + break; + } + break; + case 0x89: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_123; + break; + } + break; + case 0x8a: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_123; + break; + } + break; + case 0x8b: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_123; + break; + } + break; + case 0x8c: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_123; + break; + } + break; + case 0x8d: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_123; + break; + } + break; + case 0x8e: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_123; + break; + } + break; + case 0x8f: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_123; + break; + } + break; + case 0xa0: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + op_semantics_124: + { + /** 1111 1111 1010 rdst srca srcb fadd %2, %1, %0 */ +#line 1097 "rx-decode.opc" + int rdst AU = op[1] & 0x0f; +#line 1097 "rx-decode.opc" + int srca AU = (op[2] >> 4) & 0x0f; +#line 1097 "rx-decode.opc" + int srcb AU = op[2] & 0x0f; + if (trace) + { + printf ("\033[33m%s\033[0m %02x %02x %02x\n", + "/** 1111 1111 1010 rdst srca srcb fadd %2, %1, %0 */", + op[0], op[1], op[2]); + printf (" rdst = 0x%x,", rdst); + printf (" srca = 0x%x,", srca); + printf (" srcb = 0x%x\n", srcb); + } + SYNTAX("fadd %2, %1, %0"); +#line 1097 "rx-decode.opc" + ID(fadd); DR(rdst); SR(srcb); S2R(srca); F__SZ_; + + } + break; + } + break; + case 0xa1: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_124; + break; + } + break; + case 0xa2: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_124; + break; + } + break; + case 0xa3: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_124; + break; + } + break; + case 0xa4: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_124; + break; + } + break; + case 0xa5: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_124; + break; + } + break; + case 0xa6: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_124; + break; + } + break; + case 0xa7: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_124; + break; + } + break; + case 0xa8: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_124; + break; + } + break; + case 0xa9: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_124; + break; + } + break; + case 0xaa: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_124; + break; + } + break; + case 0xab: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_124; + break; + } + break; + case 0xac: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_124; + break; + } + break; + case 0xad: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_124; + break; + } + break; + case 0xae: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_124; + break; + } + break; + case 0xaf: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_124; + break; + } + break; + case 0xb0: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + op_semantics_125: + { + /** 1111 1111 1011 rdst srca srcb fmul %2, %1, %0 */ +#line 1103 "rx-decode.opc" + int rdst AU = op[1] & 0x0f; +#line 1103 "rx-decode.opc" + int srca AU = (op[2] >> 4) & 0x0f; +#line 1103 "rx-decode.opc" + int srcb AU = op[2] & 0x0f; + if (trace) + { + printf ("\033[33m%s\033[0m %02x %02x %02x\n", + "/** 1111 1111 1011 rdst srca srcb fmul %2, %1, %0 */", + op[0], op[1], op[2]); + printf (" rdst = 0x%x,", rdst); + printf (" srca = 0x%x,", srca); + printf (" srcb = 0x%x\n", srcb); + } + SYNTAX("fmul %2, %1, %0"); +#line 1103 "rx-decode.opc" + ID(fmul); DR(rdst); SR(srcb); S2R(srca); F__SZ_; + + } + break; + } + break; + case 0xb1: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_125; + break; + } + break; + case 0xb2: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_125; + break; + } + break; + case 0xb3: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_125; + break; + } + break; + case 0xb4: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_125; + break; + } + break; + case 0xb5: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_125; + break; + } + break; + case 0xb6: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_125; + break; + } + break; + case 0xb7: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_125; + break; + } + break; + case 0xb8: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_125; + break; + } + break; + case 0xb9: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_125; + break; + } + break; + case 0xba: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_125; + break; + } + break; + case 0xbb: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_125; + break; + } + break; + case 0xbc: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_125; + break; + } + break; + case 0xbd: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_125; + break; + } + break; + case 0xbe: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_125; + break; + } + break; + case 0xbf: + GETBYTE (); + switch (op[2] & 0x00) + { + case 0x00: + goto op_semantics_125; break; } break; @@ -14908,7 +16409,7 @@ rx_decode_opcode (unsigned long pc AU, break; default: UNSUPPORTED(); break; } -#line 1005 "rx-decode.opc" +#line 1118 "rx-decode.opc" return rx->n_bytes; } diff --git a/opcodes/rx-decode.opc b/opcodes/rx-decode.opc index 12f6893..a3cc751 100644 --- a/opcodes/rx-decode.opc +++ b/opcodes/rx-decode.opc @@ -844,35 +844,35 @@ rx_decode_opcode (unsigned long pc AU, /*----------------------------------------------------------------------*/ /* HI/LO stuff */ -/** 1111 1101 0000 0000 srca srcb mulhi %1, %2 */ - ID(mulhi); SR(srca); S2R(srcb); F_____; +/** 1111 1101 0000 a000 srca srcb mulhi %1, %2, %0 */ + ID(mulhi); DR(a+32); SR(srca); S2R(srcb); F_____; -/** 1111 1101 0000 0001 srca srcb mullo %1, %2 */ - ID(mullo); SR(srca); S2R(srcb); F_____; +/** 1111 1101 0000 a001 srca srcb mullo %1, %2, %0 */ + ID(mullo); DR(a+32); SR(srca); S2R(srcb); F_____; -/** 1111 1101 0000 0100 srca srcb machi %1, %2 */ - ID(machi); SR(srca); S2R(srcb); F_____; +/** 1111 1101 0000 a100 srca srcb machi %1, %2, %0 */ + ID(machi); DR(a+32); SR(srca); S2R(srcb); F_____; -/** 1111 1101 0000 0101 srca srcb maclo %1, %2 */ - ID(maclo); SR(srca); S2R(srcb); F_____; +/** 1111 1101 0000 a101 srca srcb maclo %1, %2, %0 */ + ID(maclo); DR(a+32); SR(srca); S2R(srcb); F_____; -/** 1111 1101 0001 0111 0000 rsrc mvtachi %1 */ - ID(mvtachi); SR(rsrc); F_____; +/** 1111 1101 0001 0111 a000 rsrc mvtachi %1, %0 */ + ID(mvtachi); DR(a+32); SR(rsrc); F_____; -/** 1111 1101 0001 0111 0001 rsrc mvtaclo %1 */ - ID(mvtaclo); SR(rsrc); F_____; +/** 1111 1101 0001 0111 a001 rsrc mvtaclo %1, %0 */ + ID(mvtaclo); DR(a+32); SR(rsrc); F_____; -/** 1111 1101 0001 1111 0000 rdst mvfachi %0 */ - ID(mvfachi); DR(rdst); F_____; +/** 1111 1101 0001 111i a m00 rdst mvfachi #%2, %1, %0 */ + ID(mvfachi); S2C(((i^1)<<1)|m); SR(a+32); DR(rdst); F_____; -/** 1111 1101 0001 1111 0010 rdst mvfacmi %0 */ - ID(mvfacmi); DR(rdst); F_____; +/** 1111 1101 0001 111i a m10 rdst mvfacmi #%2, %1, %0 */ + ID(mvfacmi); S2C(((i^1)<<1)|m); SR(a+32); DR(rdst); F_____; -/** 1111 1101 0001 1111 0001 rdst mvfaclo %0 */ - ID(mvfaclo); DR(rdst); F_____; +/** 1111 1101 0001 111i a m01 rdst mvfaclo #%2, %1, %0 */ + ID(mvfaclo); S2C(((i^1)<<1)|m); SR(a+32); DR(rdst); F_____; -/** 1111 1101 0001 1000 000i 0000 racw #%1 */ - ID(racw); SC(i+1); F_____; +/** 1111 1101 0001 1000 a00i 0000 racw #%1, %0 */ + ID(racw); SC(i+1); DR(a+32); F_____; /*----------------------------------------------------------------------*/ /* SAT */ @@ -1039,6 +1039,81 @@ rx_decode_opcode (unsigned long pc AU, /** 1111 1100 1101 sz sd rdst cond sc%1%s %0 */ ID(sccnd); BWL(sz); DD (sd, rdst, sz); Scc(cond); +/*----------------------------------------------------------------------*/ +/* RXv2 enhanced */ + +/** 1111 1101 0010 0111 rdst rsrc movco %1, [%0] */ + ID(mov); SR(rsrc); DR(rdst); F_____; + +/** 1111 1101 0010 1111 rsrc rdst movli [%1], %0 */ + ID(mov); SR(rsrc); DR(rdst); F_____; + +/** 1111 1100 0100 1011 rsrc rdst stz %1, %0 */ + ID(stcc); SR(rsrc); DR(rdst); S2cc(RXC_z); + +/** 1111 1100 0100 1111 rsrc rdst stnz %1, %0 */ + ID(stcc); SR(rsrc); DR(rdst); S2cc(RXC_z); + +/** 1111 1101 0000 a111 srca srcb emaca %1, %2, %0 */ + ID(emaca); DR(a+32); SR(srca); S2R(srcb); F_____; + +/** 1111 1101 0100 a111 srca srcb emsba %1, %2, %0 */ + ID(emsba); DR(a+32); SR(srca); S2R(srcb); F_____; + +/** 1111 1101 0000 a011 srca srcb emula %1, %2, %0 */ + ID(emula); DR(a+32); SR(srca); S2R(srcb); F_____; + +/** 1111 1101 0000 a110 srca srcb maclh %1, %2, %0 */ + ID(maclh); DR(a+32); SR(srca); S2R(srcb); F_____; + +/** 1111 1101 0100 a100 srca srcb msbhi %1, %2, %0 */ + ID(msbhi); DR(a+32); SR(srca); S2R(srcb); F_____; + +/** 1111 1101 0100 a110 srca srcb msblh %1, %2, %0 */ + ID(msblh); DR(a+32); SR(srca); S2R(srcb); F_____; + +/** 1111 1101 0100 a101 srca srcb msblo %1, %2, %0 */ + ID(msblo); DR(a+32); SR(srca); S2R(srcb); F_____; + +/** 1111 1101 0000 a010 srca srcb mullh %1, %2, %0 */ + ID(mullh); DR(a+32); SR(srca); S2R(srcb); F_____; + +/** 1111 1101 0001 111i a m11 rdst mvfacgu #%2, %1, %0 */ + ID(mvfacgu); S2C(((i^1)<<1)|m); SR(a+32); DR(rdst); F_____; + +/** 1111 1101 0001 0111 a011 rdst mvtacgu %0, %1 */ + ID(mvtacgu); SR(a+32); DR(rdst); F_____; + +/** 1111 1101 0001 1001 a00i 0000 racl #%1, %0 */ + ID(racl); SC(i+1); DR(a+32); F_____; + +/** 1111 1101 0001 1001 a10i 0000 rdacl #%1, %0 */ + ID(rdacl); SC(i+1); DR(a+32); F_____; + +/** 1111 1101 0001 1000 a10i 0000 rdacw #%1, %0 */ + ID(rdacw); SC(i+1); DR(a+32); F_____; + +/** 1111 1111 1010 rdst srca srcb fadd %2, %1, %0 */ + ID(fadd); DR(rdst); SR(srcb); S2R(srca); F__SZ_; + +/** 1111 1111 1000 rdst srca srcb fsub %2, %1, %0 */ + ID(fsub); DR(rdst); SR(srcb); S2R(srca); F__SZ_; + +/** 1111 1111 1011 rdst srca srcb fmul %2, %1, %0 */ + ID(fmul); DR(rdst); SR(srcb); S2R(srca); F__SZ_; + +/** 1111 1100 1010 00sd rsrc rdst fsqrt %1%S1, %0 */ + ID(fsqrt); DR(rdst); SD(sd, rsrc, LSIZE); F__SZ_; + +/** 1111 1100 1010 01sd rsrc rdst ftou %1%S1, %0 */ + ID(ftou); DR(rdst); SD(sd, rsrc, LSIZE); F__SZ_; + +/** 1111 1100 0101 01sd rsrc rdst utof %1%S1, %0 */ + ID(utof); DR (rdst); SP(sd, rsrc); F__SZ_; + +/** 0000 0110 mx10 00sd 0001 0101 rsrc rdst utof %1%S1, %0 */ + ID(utof); DR (rdst); SPm(sd, rsrc, mx); F__SZ_; + /** */ return rx->n_bytes; diff --git a/opcodes/rx-dis.c b/opcodes/rx-dis.c index 01d0385..74ad726 100644 --- a/opcodes/rx-dis.c +++ b/opcodes/rx-dis.c @@ -65,9 +65,9 @@ static char const * register_names[] = "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15", /* control register */ "psw", "pc", "usp", "fpsw", NULL, NULL, NULL, NULL, - "bpsw", "bpc", "isp", "fintv", "intb", NULL, NULL, NULL, + "bpsw", "bpc", "isp", "fintv", "intb", "extb", NULL, NULL, + "a0", "a1", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; static char const * condition_names[] = |