URL
https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk
Subversion Repositories openrisc_2011-10-31
Compare Revisions
- This comparison shows the changes necessary to convert path
/openrisc/tags/or1ksim/or1ksim-0.3.0/build/cpu/or32
- from Rev 19 to Rev 21
- ↔ Reverse comparison
Rev 19 → Rev 21
/execgen.c
0,0 → 1,6382
/* execgen.c -- Automatically generated decoder |
|
Copyright (C) 1999 Damjan Lampret, lampret@opencores.org |
Copyright (C) 2008 Embecosm Limited |
|
Contributor Jeremy Bennett <jeremy.bennett@embecosm.com> |
|
This file is part of Or1ksim, the OpenRISC 1000 Architectural Simulator. |
|
This program is free software; you can redistribute it and/or modify it |
under the terms of the GNU General Public License as published by the Free |
Software Foundation; either version 3 of the License, or (at your option) |
any later version. |
|
This program is distributed in the hope that it will be useful, but WITHOUT |
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for |
more details. |
|
You should have received a copy of the GNU General Public License along |
with this program. If not, see <http://www.gnu.org/licenses/>. */ |
|
/* This program is commented throughout in a fashion suitable for processing |
with Doxygen. */ |
|
/* This file was automatically generated by generate (see |
cpu/or32/generate.c) */ |
|
static void decode_execute (struct iqueue_entry *current) |
{ |
uint32_t insn = current->insn; |
switch((insn >> 26) & 0x3f) { |
case 0x0: |
/* Instruction: l.j */ |
{ |
uorreg_t a; |
/* Number of operands: 1 */ |
a = (insn >> 0) & 0x3ffffff; |
if(a & 0x02000000) a |= 0xfe000000; |
#define PARAM0 a |
{ /* "l_j" */ |
cpu_state.pc_delay = cpu_state.pc + (orreg_t)PARAM0 * 4; |
next_delay_insn = 1; |
} |
#undef PARAM0 |
|
if (do_stats) { |
current->insn_index = 0; /* "l.j" */ |
analysis(current); |
} |
} |
break; |
case 0x1: |
/* Instruction: l.jal */ |
{ |
uorreg_t a; |
/* Number of operands: 1 */ |
a = (insn >> 0) & 0x3ffffff; |
if(a & 0x02000000) a |= 0xfe000000; |
#define PARAM0 a |
{ /* "l_jal" */ |
cpu_state.pc_delay = cpu_state.pc + (orreg_t)PARAM0 * 4; |
|
setsim_reg(LINK_REGNO, cpu_state.pc + 8); |
next_delay_insn = 1; |
if (config.sim.profile) { |
struct label_entry *tmp; |
if (verify_memoryarea(cpu_state.pc_delay) && (tmp = get_label (cpu_state.pc_delay))) |
fprintf (runtime.sim.fprof, "+%08llX %"PRIxADDR" %"PRIxADDR" %s\n", |
runtime.sim.cycles, cpu_state.pc + 8, cpu_state.pc_delay, |
tmp->name); |
else |
fprintf (runtime.sim.fprof, "+%08llX %"PRIxADDR" %"PRIxADDR" @%"PRIxADDR"\n", |
runtime.sim.cycles, cpu_state.pc + 8, cpu_state.pc_delay, |
cpu_state.pc_delay); |
} |
} |
#undef PARAM0 |
|
if (do_stats) { |
current->insn_index = 1; /* "l.jal" */ |
analysis(current); |
} |
} |
break; |
case 0x2: |
/* Invalid instruction(s) */ |
break; |
case 0x3: |
/* Instruction: l.bnf */ |
{ |
uorreg_t a; |
/* Number of operands: 1 */ |
a = (insn >> 0) & 0x3ffffff; |
if(a & 0x02000000) a |= 0xfe000000; |
#define PARAM0 a |
{ /* "l_bnf" */ |
if (config.bpb.enabled) { |
int fwd = (PARAM0 >= cpu_state.pc) ? 1 : 0; |
or1k_mstats.bnf[cpu_state.sprs[SPR_SR] & SPR_SR_F ? 0 : 1][fwd]++; |
bpb_update(current->insn_addr, cpu_state.sprs[SPR_SR] & SPR_SR_F ? 0 : 1); |
} |
if (!(cpu_state.sprs[SPR_SR] & SPR_SR_F)) { |
cpu_state.pc_delay = cpu_state.pc + (orreg_t)PARAM0 * 4; |
btic_update(pcnext); |
next_delay_insn = 1; |
} else { |
btic_update(cpu_state.pc); |
} |
} |
#undef PARAM0 |
|
if (do_stats) { |
current->insn_index = 2; /* "l.bnf" */ |
analysis(current); |
} |
} |
break; |
case 0x4: |
/* Instruction: l.bf */ |
{ |
uorreg_t a; |
/* Number of operands: 1 */ |
a = (insn >> 0) & 0x3ffffff; |
if(a & 0x02000000) a |= 0xfe000000; |
#define PARAM0 a |
{ /* "l_bf" */ |
if (config.bpb.enabled) { |
int fwd = (PARAM0 >= cpu_state.pc) ? 1 : 0; |
or1k_mstats.bf[cpu_state.sprs[SPR_SR] & SPR_SR_F ? 1 : 0][fwd]++; |
bpb_update(current->insn_addr, cpu_state.sprs[SPR_SR] & SPR_SR_F ? 1 : 0); |
} |
if(cpu_state.sprs[SPR_SR] & SPR_SR_F) { |
cpu_state.pc_delay = cpu_state.pc + (orreg_t)PARAM0 * 4; |
btic_update(pcnext); |
next_delay_insn = 1; |
} else { |
btic_update(cpu_state.pc); |
} |
} |
#undef PARAM0 |
|
if (do_stats) { |
current->insn_index = 3; /* "l.bf" */ |
analysis(current); |
} |
} |
break; |
case 0x5: |
/* Not unique: real mask ff000000 and current mask fc000000 differ - do final check */ |
if((insn & 0xff000000) == 0x15000000) { |
/* Instruction: l.nop */ |
{ |
uorreg_t a; |
/* Number of operands: 1 */ |
a = (insn >> 0) & 0xffff; |
#define PARAM0 a |
{ /* "l_nop" */ |
oraddr_t stackaddr; |
uint32_t k = PARAM0; |
switch (k) { |
case NOP_NOP: |
break; |
case NOP_EXIT: |
PRINTF("exit(%"PRIdREG")\n", evalsim_reg (3)); |
fprintf(stderr, "@reset : cycles %lld, insn #%lld\n", |
runtime.sim.reset_cycles, runtime.cpu.reset_instructions); |
fprintf(stderr, "@exit : cycles %lld, insn #%lld\n", runtime.sim.cycles, |
runtime.cpu.instructions); |
fprintf(stderr, " diff : cycles %lld, insn #%lld\n", |
runtime.sim.cycles - runtime.sim.reset_cycles, |
runtime.cpu.instructions - runtime.cpu.reset_instructions); |
if (config.debug.gdb_enabled) |
set_stall_state (1); |
else |
sim_done(); |
break; |
case NOP_CNT_RESET: |
PRINTF("****************** counters reset ******************\n"); |
PRINTF("cycles %lld, insn #%lld\n", runtime.sim.cycles, runtime.cpu.instructions); |
PRINTF("****************** counters reset ******************\n"); |
runtime.sim.reset_cycles = runtime.sim.cycles; |
runtime.cpu.reset_instructions = runtime.cpu.instructions; |
break; |
case NOP_PRINTF: |
stackaddr = evalsim_reg(4); |
simprintf(stackaddr, evalsim_reg(3)); |
break; |
case NOP_PUTC: /*JPB */ |
printf( "%c", evalsim_reg( 3 )); |
fflush( stdout ); |
break; |
case NOP_REPORT: |
PRINTF("report(0x%"PRIxREG");\n", evalsim_reg(3)); |
default: |
if (k >= NOP_REPORT_FIRST && k <= NOP_REPORT_LAST) |
PRINTF("report %i (0x%"PRIxREG");\n", k - NOP_REPORT_FIRST, |
evalsim_reg(3)); |
break; |
} |
} |
#undef PARAM0 |
|
if (do_stats) { |
current->insn_index = 4; /* "l.nop" */ |
analysis(current); |
} |
} |
} else { |
/* Invalid insn */ |
{ |
l_invalid (); |
|
if (do_stats) { |
current->insn_index = -1; /* "???" */ |
analysis(current); |
} |
} |
} |
break; |
case 0x6: |
switch((insn >> 16) & 0x1) { |
case 0x0: |
/* Instruction: l.movhi */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 0) & 0xffff; |
#define PARAM1 b |
{ /* "l_movhi" */ |
SET_PARAM0(PARAM1 << 16); |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 5; /* "l.movhi" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x1: |
/* Not unique: real mask fc01ffff and current mask fc010000 differ - do final check */ |
if((insn & 0xfc01ffff) == 0x18010000) { |
/* Instruction: l.macrc */ |
{ |
uorreg_t a; |
/* Number of operands: 1 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
{ /* "l_macrc" */ |
uorreg_t lo, hi; |
LONGEST l; |
/* No need for synchronization here -- all MAC instructions are 1 cycle long. */ |
lo = cpu_state.sprs[SPR_MACLO]; |
hi = cpu_state.sprs[SPR_MACHI]; |
l = (ULONGEST) lo | ((LONGEST)hi << 32); |
l >>= 28; |
//PRINTF ("<%08x>\n", (unsigned long)l); |
SET_PARAM0((orreg_t)l); |
cpu_state.sprs[SPR_MACLO] = 0; |
cpu_state.sprs[SPR_MACHI] = 0; |
} |
#undef SET_PARAM |
#undef PARAM0 |
|
if (do_stats) { |
current->insn_index = 6; /* "l.macrc" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
} else { |
/* Invalid insn */ |
{ |
l_invalid (); |
|
if (do_stats) { |
current->insn_index = -1; /* "???" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
} |
break; |
} |
break; |
case 0x7: |
/* Invalid instruction(s) */ |
break; |
case 0x8: |
switch((insn >> 16) & 0x7f) { |
case 0x0: |
switch((insn >> 23) & 0x7) { |
case 0x0: |
/* Instruction: l.sys */ |
{ |
uorreg_t a; |
/* Number of operands: 1 */ |
a = (insn >> 0) & 0xffff; |
#define PARAM0 a |
{ /* "l_sys" */ |
except_handle(EXCEPT_SYSCALL, cpu_state.sprs[SPR_EEAR_BASE]); |
} |
#undef PARAM0 |
|
if (do_stats) { |
current->insn_index = 7; /* "l.sys" */ |
analysis(current); |
} |
} |
break; |
case 0x1: |
/* Invalid instruction(s) */ |
break; |
case 0x2: |
/* Instruction: l.trap */ |
{ |
uorreg_t a; |
/* Number of operands: 1 */ |
a = (insn >> 0) & 0xffff; |
#define PARAM0 a |
{ /* "l_trap" */ |
/* TODO: some SR related code here! */ |
except_handle(EXCEPT_TRAP, cpu_state.sprs[SPR_EEAR_BASE]); |
} |
#undef PARAM0 |
|
if (do_stats) { |
current->insn_index = 8; /* "l.trap" */ |
analysis(current); |
} |
} |
break; |
case 0x3: |
/* Invalid instruction(s) */ |
break; |
case 0x4: |
/* Not unique: real mask ffffffff and current mask ffff0000 differ - do final check */ |
if((insn & 0xffffffff) == 0x22000000) { |
/* Instruction: l.msync */ |
{ |
uorreg_t a; |
/* Number of operands: 1 */ |
a = (insn >> 0) & 0x0; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
l_none (); |
#undef SET_PARAM |
#undef PARAM0 |
|
if (do_stats) { |
current->insn_index = 9; /* "l.msync" */ |
analysis(current); |
} |
} |
} else { |
/* Invalid insn */ |
{ |
l_invalid (); |
|
if (do_stats) { |
current->insn_index = -1; /* "???" */ |
analysis(current); |
} |
} |
} |
break; |
case 0x5: |
/* Not unique: real mask ffffffff and current mask ffff0000 differ - do final check */ |
if((insn & 0xffffffff) == 0x22800000) { |
/* Instruction: l.psync */ |
{ |
uorreg_t a; |
/* Number of operands: 1 */ |
a = (insn >> 0) & 0x0; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
l_none (); |
#undef SET_PARAM |
#undef PARAM0 |
|
if (do_stats) { |
current->insn_index = 10; /* "l.psync" */ |
analysis(current); |
} |
} |
} else { |
/* Invalid insn */ |
{ |
l_invalid (); |
|
if (do_stats) { |
current->insn_index = -1; /* "???" */ |
analysis(current); |
} |
} |
} |
break; |
case 0x6: |
/* Not unique: real mask ffffffff and current mask ffff0000 differ - do final check */ |
if((insn & 0xffffffff) == 0x23000000) { |
/* Instruction: l.csync */ |
{ |
uorreg_t a; |
/* Number of operands: 1 */ |
a = (insn >> 0) & 0x0; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
l_none (); |
#undef SET_PARAM |
#undef PARAM0 |
|
if (do_stats) { |
current->insn_index = 11; /* "l.csync" */ |
analysis(current); |
} |
} |
} else { |
/* Invalid insn */ |
{ |
l_invalid (); |
|
if (do_stats) { |
current->insn_index = -1; /* "???" */ |
analysis(current); |
} |
} |
} |
break; |
case 0x7: |
/* Invalid instruction(s) */ |
break; |
} |
break; |
case 0x1: |
case 0x2: |
case 0x3: |
case 0x4: |
case 0x5: |
case 0x6: |
case 0x7: |
case 0x8: |
case 0x9: |
case 0xa: |
case 0xb: |
case 0xc: |
case 0xd: |
case 0xe: |
case 0xf: |
case 0x10: |
case 0x11: |
case 0x12: |
case 0x13: |
case 0x14: |
case 0x15: |
case 0x16: |
case 0x17: |
case 0x18: |
case 0x19: |
case 0x1a: |
case 0x1b: |
case 0x1c: |
case 0x1d: |
case 0x1e: |
case 0x1f: |
case 0x20: |
case 0x21: |
case 0x22: |
case 0x23: |
case 0x24: |
case 0x25: |
case 0x26: |
case 0x27: |
case 0x28: |
case 0x29: |
case 0x2a: |
case 0x2b: |
case 0x2c: |
case 0x2d: |
case 0x2e: |
case 0x2f: |
case 0x30: |
case 0x31: |
case 0x32: |
case 0x33: |
case 0x34: |
case 0x35: |
case 0x36: |
case 0x37: |
case 0x38: |
case 0x39: |
case 0x3a: |
case 0x3b: |
case 0x3c: |
case 0x3d: |
case 0x3e: |
case 0x3f: |
case 0x40: |
case 0x41: |
case 0x42: |
case 0x43: |
case 0x44: |
case 0x45: |
case 0x46: |
case 0x47: |
case 0x48: |
case 0x49: |
case 0x4a: |
case 0x4b: |
case 0x4c: |
case 0x4d: |
case 0x4e: |
case 0x4f: |
case 0x50: |
case 0x51: |
case 0x52: |
case 0x53: |
case 0x54: |
case 0x55: |
case 0x56: |
case 0x57: |
case 0x58: |
case 0x59: |
case 0x5a: |
case 0x5b: |
case 0x5c: |
case 0x5d: |
case 0x5e: |
case 0x5f: |
case 0x60: |
case 0x61: |
case 0x62: |
case 0x63: |
case 0x64: |
case 0x65: |
case 0x66: |
case 0x67: |
case 0x68: |
case 0x69: |
case 0x6a: |
case 0x6b: |
case 0x6c: |
case 0x6d: |
case 0x6e: |
case 0x6f: |
case 0x70: |
case 0x71: |
case 0x72: |
case 0x73: |
case 0x74: |
case 0x75: |
case 0x76: |
case 0x77: |
case 0x78: |
case 0x79: |
case 0x7a: |
case 0x7b: |
case 0x7c: |
case 0x7d: |
case 0x7e: |
case 0x7f: |
/* Invalid instruction(s) */ |
break; |
} |
break; |
case 0x9: |
/* Instruction: l.rfe */ |
{ |
uorreg_t a; |
/* Number of operands: 1 */ |
a = (insn >> 0) & 0x0; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
{ /* "l_rfe" */ |
pcnext = cpu_state.sprs[SPR_EPCR_BASE]; |
mtspr(SPR_SR, cpu_state.sprs[SPR_ESR_BASE]); |
} |
#undef SET_PARAM |
#undef PARAM0 |
|
if (do_stats) { |
current->insn_index = 12; /* "l.rfe" */ |
analysis(current); |
} |
} |
break; |
case 0xa: |
switch((insn >> 4) & 0xf) { |
case 0x0: |
/* Invalid instruction(s) */ |
break; |
case 0x1: |
switch((insn >> 0) & 0xf) { |
case 0x0: |
/* Instruction: lv.all_eq.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 13; /* "lv.all_eq.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x1: |
/* Instruction: lv.all_eq.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 14; /* "lv.all_eq.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x2: |
/* Instruction: lv.all_ge.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 15; /* "lv.all_ge.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x3: |
/* Instruction: lv.all_ge.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 16; /* "lv.all_ge.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x4: |
/* Instruction: lv.all_gt.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 17; /* "lv.all_gt.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x5: |
/* Instruction: lv.all_gt.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 18; /* "lv.all_gt.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x6: |
/* Instruction: lv.all_le.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 19; /* "lv.all_le.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x7: |
/* Instruction: lv.all_le.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 20; /* "lv.all_le.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x8: |
/* Instruction: lv.all_lt.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 21; /* "lv.all_lt.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x9: |
/* Instruction: lv.all_lt.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 22; /* "lv.all_lt.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0xa: |
/* Instruction: lv.all_ne.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 23; /* "lv.all_ne.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0xb: |
/* Instruction: lv.all_ne.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 24; /* "lv.all_ne.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0xc: |
case 0xd: |
case 0xe: |
case 0xf: |
/* Invalid instruction(s) */ |
break; |
} |
break; |
case 0x2: |
switch((insn >> 0) & 0xf) { |
case 0x0: |
/* Instruction: lv.any_eq.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 25; /* "lv.any_eq.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x1: |
/* Instruction: lv.any_eq.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 26; /* "lv.any_eq.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x2: |
/* Instruction: lv.any_ge.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 27; /* "lv.any_ge.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x3: |
/* Instruction: lv.any_ge.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 28; /* "lv.any_ge.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x4: |
/* Instruction: lv.any_gt.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 29; /* "lv.any_gt.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x5: |
/* Instruction: lv.any_gt.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 30; /* "lv.any_gt.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x6: |
/* Instruction: lv.any_le.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 31; /* "lv.any_le.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x7: |
/* Instruction: lv.any_le.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 32; /* "lv.any_le.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x8: |
/* Instruction: lv.any_lt.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 33; /* "lv.any_lt.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x9: |
/* Instruction: lv.any_lt.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 34; /* "lv.any_lt.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0xa: |
/* Instruction: lv.any_ne.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 35; /* "lv.any_ne.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0xb: |
/* Instruction: lv.any_ne.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 36; /* "lv.any_ne.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0xc: |
case 0xd: |
case 0xe: |
case 0xf: |
/* Invalid instruction(s) */ |
break; |
} |
break; |
case 0x3: |
switch((insn >> 0) & 0xf) { |
case 0x0: |
/* Instruction: lv.add.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 37; /* "lv.add.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x1: |
/* Instruction: lv.add.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 38; /* "lv.add.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x2: |
/* Instruction: lv.adds.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 39; /* "lv.adds.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x3: |
/* Instruction: lv.adds.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 40; /* "lv.adds.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x4: |
/* Instruction: lv.addu.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 41; /* "lv.addu.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x5: |
/* Instruction: lv.addu.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 42; /* "lv.addu.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x6: |
/* Instruction: lv.addus.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 43; /* "lv.addus.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x7: |
/* Instruction: lv.addus.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 44; /* "lv.addus.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x8: |
/* Instruction: lv.and */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 45; /* "lv.and" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x9: |
/* Instruction: lv.avg.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 46; /* "lv.avg.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0xa: |
/* Instruction: lv.avg.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 47; /* "lv.avg.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0xb: |
case 0xc: |
case 0xd: |
case 0xe: |
case 0xf: |
/* Invalid instruction(s) */ |
break; |
} |
break; |
case 0x4: |
switch((insn >> 0) & 0xf) { |
case 0x0: |
/* Instruction: lv.cmp_eq.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 48; /* "lv.cmp_eq.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x1: |
/* Instruction: lv.cmp_eq.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 49; /* "lv.cmp_eq.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x2: |
/* Instruction: lv.cmp_ge.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 50; /* "lv.cmp_ge.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x3: |
/* Instruction: lv.cmp_ge.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 51; /* "lv.cmp_ge.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x4: |
/* Instruction: lv.cmp_gt.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 52; /* "lv.cmp_gt.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x5: |
/* Instruction: lv.cmp_gt.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 53; /* "lv.cmp_gt.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x6: |
/* Instruction: lv.cmp_le.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 54; /* "lv.cmp_le.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x7: |
/* Instruction: lv.cmp_le.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 55; /* "lv.cmp_le.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x8: |
/* Instruction: lv.cmp_lt.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 56; /* "lv.cmp_lt.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x9: |
/* Instruction: lv.cmp_lt.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 57; /* "lv.cmp_lt.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0xa: |
/* Instruction: lv.cmp_ne.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 58; /* "lv.cmp_ne.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0xb: |
/* Instruction: lv.cmp_ne.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 59; /* "lv.cmp_ne.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0xc: |
case 0xd: |
case 0xe: |
case 0xf: |
/* Invalid instruction(s) */ |
break; |
} |
break; |
case 0x5: |
switch((insn >> 0) & 0xf) { |
case 0x0: |
case 0x1: |
case 0x2: |
case 0x3: |
/* Invalid instruction(s) */ |
break; |
case 0x4: |
/* Instruction: lv.madds.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 60; /* "lv.madds.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x5: |
/* Instruction: lv.max.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 61; /* "lv.max.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x6: |
/* Instruction: lv.max.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 62; /* "lv.max.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x7: |
/* Instruction: lv.merge.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 63; /* "lv.merge.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x8: |
/* Instruction: lv.merge.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 64; /* "lv.merge.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x9: |
/* Instruction: lv.min.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 65; /* "lv.min.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0xa: |
/* Instruction: lv.min.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 66; /* "lv.min.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0xb: |
/* Instruction: lv.msubs.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 67; /* "lv.msubs.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0xc: |
/* Instruction: lv.muls.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 68; /* "lv.muls.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0xd: |
/* Instruction: lv.nand */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 69; /* "lv.nand" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0xe: |
/* Instruction: lv.nor */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 70; /* "lv.nor" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0xf: |
/* Instruction: lv.or */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 71; /* "lv.or" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
} |
break; |
case 0x6: |
switch((insn >> 0) & 0xf) { |
case 0x0: |
/* Instruction: lv.pack.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 72; /* "lv.pack.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x1: |
/* Instruction: lv.pack.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 73; /* "lv.pack.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x2: |
/* Instruction: lv.packs.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 74; /* "lv.packs.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x3: |
/* Instruction: lv.packs.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 75; /* "lv.packs.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x4: |
/* Instruction: lv.packus.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 76; /* "lv.packus.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x5: |
/* Instruction: lv.packus.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 77; /* "lv.packus.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x6: |
/* Instruction: lv.perm.n */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 78; /* "lv.perm.n" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x7: |
/* Instruction: lv.rl.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 79; /* "lv.rl.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x8: |
/* Instruction: lv.rl.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 80; /* "lv.rl.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x9: |
/* Instruction: lv.sll.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 81; /* "lv.sll.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0xa: |
/* Instruction: lv.sll.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 82; /* "lv.sll.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0xb: |
/* Instruction: lv.sll */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 83; /* "lv.sll" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0xc: |
/* Instruction: lv.srl.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 84; /* "lv.srl.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0xd: |
/* Instruction: lv.srl.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 85; /* "lv.srl.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0xe: |
/* Instruction: lv.sra.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 86; /* "lv.sra.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0xf: |
/* Instruction: lv.sra.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 87; /* "lv.sra.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
} |
break; |
case 0x7: |
switch((insn >> 0) & 0xf) { |
case 0x0: |
/* Instruction: lv.srl */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 88; /* "lv.srl" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x1: |
/* Instruction: lv.sub.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 89; /* "lv.sub.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x2: |
/* Instruction: lv.sub.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 90; /* "lv.sub.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x3: |
/* Instruction: lv.subs.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 91; /* "lv.subs.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x4: |
/* Instruction: lv.subs.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 92; /* "lv.subs.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x5: |
/* Instruction: lv.subu.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 93; /* "lv.subu.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x6: |
/* Instruction: lv.subu.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 94; /* "lv.subu.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x7: |
/* Instruction: lv.subus.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 95; /* "lv.subus.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x8: |
/* Instruction: lv.subus.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 96; /* "lv.subus.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x9: |
/* Instruction: lv.unpack.b */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 97; /* "lv.unpack.b" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0xa: |
/* Instruction: lv.unpack.h */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 98; /* "lv.unpack.h" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0xb: |
/* Instruction: lv.xor */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 99; /* "lv.xor" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0xc: |
case 0xd: |
case 0xe: |
case 0xf: |
/* Invalid instruction(s) */ |
break; |
} |
break; |
case 0x8: |
case 0x9: |
case 0xa: |
case 0xb: |
/* Invalid instruction(s) */ |
break; |
case 0xc: |
/* Instruction: lv.cust1 */ |
{ |
uorreg_t a; |
/* Number of operands: 1 */ |
a = (insn >> 0) & 0x0; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
|
if (do_stats) { |
current->insn_index = 100; /* "lv.cust1" */ |
analysis(current); |
} |
} |
break; |
case 0xd: |
/* Instruction: lv.cust2 */ |
{ |
uorreg_t a; |
/* Number of operands: 1 */ |
a = (insn >> 0) & 0x0; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
|
if (do_stats) { |
current->insn_index = 101; /* "lv.cust2" */ |
analysis(current); |
} |
} |
break; |
case 0xe: |
/* Instruction: lv.cust3 */ |
{ |
uorreg_t a; |
/* Number of operands: 1 */ |
a = (insn >> 0) & 0x0; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
|
if (do_stats) { |
current->insn_index = 102; /* "lv.cust3" */ |
analysis(current); |
} |
} |
break; |
case 0xf: |
/* Instruction: lv.cust4 */ |
{ |
uorreg_t a; |
/* Number of operands: 1 */ |
a = (insn >> 0) & 0x0; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
|
if (do_stats) { |
current->insn_index = 103; /* "lv.cust4" */ |
analysis(current); |
} |
} |
break; |
} |
break; |
case 0xb: |
case 0xc: |
case 0xd: |
case 0xe: |
case 0xf: |
case 0x10: |
/* Invalid instruction(s) */ |
break; |
case 0x11: |
/* Instruction: l.jr */ |
{ |
uorreg_t a; |
/* Number of operands: 1 */ |
a = (insn >> 11) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
{ /* "l_jr" */ |
cpu_state.pc_delay = PARAM0; |
next_delay_insn = 1; |
if (config.sim.profile) |
fprintf (runtime.sim.fprof, "-%08llX %"PRIxADDR"\n", runtime.sim.cycles, |
cpu_state.pc_delay); |
} |
#undef SET_PARAM |
#undef PARAM0 |
|
if (do_stats) { |
current->insn_index = 104; /* "l.jr" */ |
analysis(current); |
} |
} |
break; |
case 0x12: |
/* Instruction: l.jalr */ |
{ |
uorreg_t a; |
/* Number of operands: 1 */ |
a = (insn >> 11) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
{ /* "l_jalr" */ |
cpu_state.pc_delay = PARAM0; |
setsim_reg(LINK_REGNO, cpu_state.pc + 8); |
next_delay_insn = 1; |
} |
#undef SET_PARAM |
#undef PARAM0 |
|
if (do_stats) { |
current->insn_index = 105; /* "l.jalr" */ |
analysis(current); |
} |
} |
break; |
case 0x13: |
/* Instruction: l.maci */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 0) & 0x7ff; |
b |= ((insn >> 21) & 0x1f) << 11; |
if(b & 0x00008000) b |= 0xffff8000; |
#define PARAM1 b |
{ /* "l_mac" */ |
uorreg_t lo, hi; |
LONGEST l; |
orreg_t x, y; |
|
lo = cpu_state.sprs[SPR_MACLO]; |
hi = cpu_state.sprs[SPR_MACHI]; |
x = PARAM0; |
y = PARAM1; |
PRINTF ("[%"PRIxREG",%"PRIxREG"]\t", x, y); |
l = (ULONGEST)lo | ((LONGEST)hi << 32); |
l += (LONGEST) x * (LONGEST) y; |
|
/* This implementation is very fast - it needs only one cycle for mac. */ |
lo = ((ULONGEST)l) & 0xFFFFFFFF; |
hi = ((LONGEST)l) >> 32; |
cpu_state.sprs[SPR_MACLO] = lo; |
cpu_state.sprs[SPR_MACHI] = hi; |
PRINTF ("(%"PRIxREG",%"PRIxREG"\n", hi, lo); |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 106; /* "l.maci" */ |
analysis(current); |
} |
} |
break; |
case 0x14: |
case 0x15: |
case 0x16: |
case 0x17: |
case 0x18: |
case 0x19: |
case 0x1a: |
case 0x1b: |
/* Invalid instruction(s) */ |
break; |
case 0x1c: |
/* Instruction: l.cust1 */ |
{ |
uorreg_t a; |
/* Number of operands: 1 */ |
a = (insn >> 0) & 0x0; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
{ /* "l_cust1" */ |
/*int destr = current->insn >> 21; |
int src1r = current->insn >> 15; |
int src2r = current->insn >> 9;*/ |
} |
#undef SET_PARAM |
#undef PARAM0 |
|
if (do_stats) { |
current->insn_index = 107; /* "l.cust1" */ |
analysis(current); |
} |
} |
break; |
case 0x1d: |
/* Instruction: l.cust2 */ |
{ |
uorreg_t a; |
/* Number of operands: 1 */ |
a = (insn >> 0) & 0x0; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
{ /* "l_cust2" */ |
} |
#undef SET_PARAM |
#undef PARAM0 |
|
if (do_stats) { |
current->insn_index = 108; /* "l.cust2" */ |
analysis(current); |
} |
} |
break; |
case 0x1e: |
/* Instruction: l.cust3 */ |
{ |
uorreg_t a; |
/* Number of operands: 1 */ |
a = (insn >> 0) & 0x0; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
{ /* "l_cust3" */ |
} |
#undef SET_PARAM |
#undef PARAM0 |
|
if (do_stats) { |
current->insn_index = 109; /* "l.cust3" */ |
analysis(current); |
} |
} |
break; |
case 0x1f: |
/* Instruction: l.cust4 */ |
{ |
uorreg_t a; |
/* Number of operands: 1 */ |
a = (insn >> 0) & 0x0; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
{ /* "l_cust4" */ |
} |
#undef SET_PARAM |
#undef PARAM0 |
|
if (do_stats) { |
current->insn_index = 110; /* "l.cust4" */ |
analysis(current); |
} |
} |
break; |
case 0x20: |
/* Instruction: l.ld */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 0) & 0xffff; |
if(b & 0x00008000) b |= 0xffff8000; |
*(orreg_t *)&b += (orreg_t)cpu_state.reg[(insn >> 16) & 0x1f]; |
#define PARAM1 b |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
cpu_state.insn_ea = b; |
current->insn_index = 111; /* "l.ld" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x21: |
/* Instruction: l.lwz */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 0) & 0xffff; |
if(b & 0x00008000) b |= 0xffff8000; |
*(orreg_t *)&b += (orreg_t)cpu_state.reg[(insn >> 16) & 0x1f]; |
#define PARAM1 b |
{ /* "l_lwz" */ |
uint32_t val; |
if (config.cpu.sbuf_len) sbuf_load (); |
val = eval_mem32(PARAM1, &breakpoint); |
/* If eval operand produced exception don't set anything. JPB changed to |
trigger on breakpoint, as well as except_pending (seemed to be a bug). */ |
if (!(except_pending || breakpoint)) |
SET_PARAM0(val); |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
cpu_state.insn_ea = b; |
current->insn_index = 112; /* "l.lwz" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x22: |
/* Instruction: l.lws */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 0) & 0xffff; |
if(b & 0x00008000) b |= 0xffff8000; |
*(orreg_t *)&b += (orreg_t)cpu_state.reg[(insn >> 16) & 0x1f]; |
#define PARAM1 b |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
cpu_state.insn_ea = b; |
current->insn_index = 113; /* "l.lws" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x23: |
/* Instruction: l.lbz */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 0) & 0xffff; |
if(b & 0x00008000) b |= 0xffff8000; |
*(orreg_t *)&b += (orreg_t)cpu_state.reg[(insn >> 16) & 0x1f]; |
#define PARAM1 b |
{ /* "l_lbz" */ |
uint8_t val; |
if (config.cpu.sbuf_len) sbuf_load (); |
val = eval_mem8(PARAM1, &breakpoint); |
/* If eval operand produced exception don't set anything. JPB changed to |
trigger on breakpoint, as well as except_pending (seemed to be a bug). */ |
if (!(except_pending || breakpoint)) |
SET_PARAM0(val); |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
cpu_state.insn_ea = b; |
current->insn_index = 114; /* "l.lbz" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x24: |
/* Instruction: l.lbs */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 0) & 0xffff; |
if(b & 0x00008000) b |= 0xffff8000; |
*(orreg_t *)&b += (orreg_t)cpu_state.reg[(insn >> 16) & 0x1f]; |
#define PARAM1 b |
{ /* "l_lbs" */ |
int8_t val; |
if (config.cpu.sbuf_len) sbuf_load (); |
val = eval_mem8(PARAM1, &breakpoint); |
/* If eval operand produced exception don't set anything. JPB changed to |
trigger on breakpoint, as well as except_pending (seemed to be a bug). */ |
if (!(except_pending || breakpoint)) |
SET_PARAM0(val); |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
cpu_state.insn_ea = b; |
current->insn_index = 115; /* "l.lbs" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x25: |
/* Instruction: l.lhz */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 0) & 0xffff; |
if(b & 0x00008000) b |= 0xffff8000; |
*(orreg_t *)&b += (orreg_t)cpu_state.reg[(insn >> 16) & 0x1f]; |
#define PARAM1 b |
{ /* "l_lhz" */ |
uint16_t val; |
if (config.cpu.sbuf_len) sbuf_load (); |
val = eval_mem16(PARAM1, &breakpoint); |
/* If eval operand produced exception don't set anything. JPB changed to |
trigger on breakpoint, as well as except_pending (seemed to be a bug). */ |
if (!(except_pending || breakpoint)) |
SET_PARAM0(val); |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
cpu_state.insn_ea = b; |
current->insn_index = 116; /* "l.lhz" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x26: |
/* Instruction: l.lhs */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 0) & 0xffff; |
if(b & 0x00008000) b |= 0xffff8000; |
*(orreg_t *)&b += (orreg_t)cpu_state.reg[(insn >> 16) & 0x1f]; |
#define PARAM1 b |
{ /* "l_lhs" */ |
int16_t val; |
if (config.cpu.sbuf_len) sbuf_load (); |
val = eval_mem16(PARAM1, &breakpoint); |
/* If eval operand produced exception don't set anything. JPB changed to |
trigger on breakpoint, as well as except_pending (seemed to be a bug). */ |
if (!(except_pending || breakpoint)) |
SET_PARAM0(val); |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
cpu_state.insn_ea = b; |
current->insn_index = 117; /* "l.lhs" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x27: |
/* Instruction: l.addi */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 0) & 0xffff; |
if(c & 0x00008000) c |= 0xffff8000; |
#define PARAM2 c |
{ /* "l_add" */ |
orreg_t temp1, temp2, temp3; |
int8_t temp4; |
|
temp2 = (orreg_t)PARAM2; |
temp3 = (orreg_t)PARAM1; |
temp1 = temp2 + temp3; |
SET_PARAM0(temp1); |
SET_OV_FLAG_FN (temp1); |
if (ARITH_SET_FLAG) { |
if(!temp1) |
cpu_state.sprs[SPR_SR] |= SPR_SR_F; |
else |
cpu_state.sprs[SPR_SR] &= ~SPR_SR_F; |
} |
if ((uorreg_t) temp1 < (uorreg_t) temp2) |
cpu_state.sprs[SPR_SR] |= SPR_SR_CY; |
else |
cpu_state.sprs[SPR_SR] &= ~SPR_SR_CY; |
|
temp4 = temp1; |
if (temp4 == temp1) |
or1k_mstats.byteadd++; |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 118; /* "l.addi" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x28: |
/* Instruction: l.addic */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 0) & 0xffff; |
if(c & 0x00008000) c |= 0xffff8000; |
#define PARAM2 c |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 119; /* "l.addic" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x29: |
/* Instruction: l.andi */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 0) & 0xffff; |
#define PARAM2 c |
{ /* "l_and" */ |
uorreg_t temp1; |
temp1 = PARAM1 & PARAM2; |
SET_OV_FLAG_FN (temp1); |
SET_PARAM0(temp1); |
if (ARITH_SET_FLAG) { |
if(!temp1) |
cpu_state.sprs[SPR_SR] |= SPR_SR_F; |
else |
cpu_state.sprs[SPR_SR] &= ~SPR_SR_F; |
} |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 120; /* "l.andi" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x2a: |
/* Instruction: l.ori */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 0) & 0xffff; |
#define PARAM2 c |
{ /* "l_or" */ |
uorreg_t temp1; |
temp1 = PARAM1 | PARAM2; |
SET_OV_FLAG_FN (temp1); |
SET_PARAM0(temp1); |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 121; /* "l.ori" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x2b: |
/* Instruction: l.xori */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 0) & 0xffff; |
if(c & 0x00008000) c |= 0xffff8000; |
#define PARAM2 c |
{ /* "l_xor" */ |
uorreg_t temp1; |
temp1 = PARAM1 ^ PARAM2; |
SET_OV_FLAG_FN (temp1); |
SET_PARAM0(temp1); |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 122; /* "l.xori" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x2c: |
/* Instruction: l.muli */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 0) & 0xffff; |
if(c & 0x00008000) c |= 0xffff8000; |
#define PARAM2 c |
{ /* "l_mul" */ |
orreg_t temp1; |
|
temp1 = (orreg_t)PARAM1 * (orreg_t)PARAM2; |
SET_OV_FLAG_FN (temp1); |
SET_PARAM0(temp1); |
/*if (!(mcount++ & 1023)) { |
PRINTF ("[%i]\n",mcount); |
}*/ |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 123; /* "l.muli" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x2d: |
/* Instruction: l.mfspr */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 0) & 0xffff; |
#define PARAM2 c |
{ /* "l_mfspr" */ |
uint16_t regno = PARAM1 + PARAM2; |
uorreg_t value = mfspr(regno); |
|
if (cpu_state.sprs[SPR_SR] & SPR_SR_SM) |
SET_PARAM0(value); |
else { |
SET_PARAM0(0); |
PRINTF("WARNING: trying to read SPR while SR[SUPV] is cleared.\n"); |
sim_done(); |
} |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 124; /* "l.mfspr" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x2e: |
switch((insn >> 6) & 0x3) { |
case 0x0: |
/* Instruction: l.slli */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 0) & 0x3f; |
#define PARAM2 c |
{ /* "l_sll" */ |
uorreg_t temp1; |
|
temp1 = PARAM1 << PARAM2; |
SET_OV_FLAG_FN (temp1); |
SET_PARAM0(temp1); |
/* runtime.sim.cycles += 2; */ |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 125; /* "l.slli" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x1: |
/* Instruction: l.srli */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 0) & 0x3f; |
#define PARAM2 c |
{ /* "l_srl" */ |
uorreg_t temp1; |
temp1 = PARAM1 >> PARAM2; |
SET_OV_FLAG_FN (temp1); |
SET_PARAM0(temp1); |
/* runtime.sim.cycles += 2; */ |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 126; /* "l.srli" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x2: |
/* Instruction: l.srai */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 0) & 0x3f; |
#define PARAM2 c |
{ /* "l_sra" */ |
orreg_t temp1; |
|
temp1 = (orreg_t)PARAM1 >> PARAM2; |
SET_OV_FLAG_FN (temp1); |
SET_PARAM0(temp1); |
/* runtime.sim.cycles += 2; */ |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 127; /* "l.srai" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x3: |
/* Instruction: l.rori */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 0) & 0x3f; |
#define PARAM2 c |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 128; /* "l.rori" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
} |
break; |
case 0x2f: |
switch((insn >> 21) & 0x1f) { |
case 0x0: |
/* Instruction: l.sfeqi */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 0) & 0xffff; |
if(b & 0x00008000) b |= 0xffff8000; |
#define PARAM1 b |
{ /* "l_sfeq" */ |
if(PARAM0 == PARAM1) |
cpu_state.sprs[SPR_SR] |= SPR_SR_F; |
else |
cpu_state.sprs[SPR_SR] &= ~SPR_SR_F; |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 129; /* "l.sfeqi" */ |
analysis(current); |
} |
} |
break; |
case 0x1: |
/* Instruction: l.sfnei */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 0) & 0xffff; |
if(b & 0x00008000) b |= 0xffff8000; |
#define PARAM1 b |
{ /* "l_sfne" */ |
if(PARAM0 != PARAM1) |
cpu_state.sprs[SPR_SR] |= SPR_SR_F; |
else |
cpu_state.sprs[SPR_SR] &= ~SPR_SR_F; |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 130; /* "l.sfnei" */ |
analysis(current); |
} |
} |
break; |
case 0x2: |
/* Instruction: l.sfgtui */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 0) & 0xffff; |
if(b & 0x00008000) b |= 0xffff8000; |
#define PARAM1 b |
{ /* "l_sfgtu" */ |
if(PARAM0 > PARAM1) |
cpu_state.sprs[SPR_SR] |= SPR_SR_F; |
else |
cpu_state.sprs[SPR_SR] &= ~SPR_SR_F; |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 131; /* "l.sfgtui" */ |
analysis(current); |
} |
} |
break; |
case 0x3: |
/* Instruction: l.sfgeui */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 0) & 0xffff; |
if(b & 0x00008000) b |= 0xffff8000; |
#define PARAM1 b |
{ /* "l_sfgeu" */ |
if(PARAM0 >= PARAM1) |
cpu_state.sprs[SPR_SR] |= SPR_SR_F; |
else |
cpu_state.sprs[SPR_SR] &= ~SPR_SR_F; |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 132; /* "l.sfgeui" */ |
analysis(current); |
} |
} |
break; |
case 0x4: |
/* Instruction: l.sfltui */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 0) & 0xffff; |
if(b & 0x00008000) b |= 0xffff8000; |
#define PARAM1 b |
{ /* "l_sfltu" */ |
if(PARAM0 < PARAM1) |
cpu_state.sprs[SPR_SR] |= SPR_SR_F; |
else |
cpu_state.sprs[SPR_SR] &= ~SPR_SR_F; |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 133; /* "l.sfltui" */ |
analysis(current); |
} |
} |
break; |
case 0x5: |
/* Instruction: l.sfleui */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 0) & 0xffff; |
if(b & 0x00008000) b |= 0xffff8000; |
#define PARAM1 b |
{ /* "l_sfleu" */ |
if(PARAM0 <= PARAM1) |
cpu_state.sprs[SPR_SR] |= SPR_SR_F; |
else |
cpu_state.sprs[SPR_SR] &= ~SPR_SR_F; |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 134; /* "l.sfleui" */ |
analysis(current); |
} |
} |
break; |
case 0x6: |
case 0x7: |
case 0x8: |
case 0x9: |
/* Invalid instruction(s) */ |
break; |
case 0xa: |
/* Instruction: l.sfgtsi */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 0) & 0xffff; |
if(b & 0x00008000) b |= 0xffff8000; |
#define PARAM1 b |
{ /* "l_sfgts" */ |
if((orreg_t)PARAM0 > (orreg_t)PARAM1) |
cpu_state.sprs[SPR_SR] |= SPR_SR_F; |
else |
cpu_state.sprs[SPR_SR] &= ~SPR_SR_F; |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 135; /* "l.sfgtsi" */ |
analysis(current); |
} |
} |
break; |
case 0xb: |
/* Instruction: l.sfgesi */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 0) & 0xffff; |
if(b & 0x00008000) b |= 0xffff8000; |
#define PARAM1 b |
{ /* "l_sfges" */ |
if((orreg_t)PARAM0 >= (orreg_t)PARAM1) |
cpu_state.sprs[SPR_SR] |= SPR_SR_F; |
else |
cpu_state.sprs[SPR_SR] &= ~SPR_SR_F; |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 136; /* "l.sfgesi" */ |
analysis(current); |
} |
} |
break; |
case 0xc: |
/* Instruction: l.sfltsi */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 0) & 0xffff; |
if(b & 0x00008000) b |= 0xffff8000; |
#define PARAM1 b |
{ /* "l_sflts" */ |
if((orreg_t)PARAM0 < (orreg_t)PARAM1) |
cpu_state.sprs[SPR_SR] |= SPR_SR_F; |
else |
cpu_state.sprs[SPR_SR] &= ~SPR_SR_F; |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 137; /* "l.sfltsi" */ |
analysis(current); |
} |
} |
break; |
case 0xd: |
/* Instruction: l.sflesi */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 0) & 0xffff; |
if(b & 0x00008000) b |= 0xffff8000; |
#define PARAM1 b |
{ /* "l_sfles" */ |
if((orreg_t)PARAM0 <= (orreg_t)PARAM1) |
cpu_state.sprs[SPR_SR] |= SPR_SR_F; |
else |
cpu_state.sprs[SPR_SR] &= ~SPR_SR_F; |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 138; /* "l.sflesi" */ |
analysis(current); |
} |
} |
break; |
case 0xe: |
case 0xf: |
case 0x10: |
case 0x11: |
case 0x12: |
case 0x13: |
case 0x14: |
case 0x15: |
case 0x16: |
case 0x17: |
case 0x18: |
case 0x19: |
case 0x1a: |
case 0x1b: |
case 0x1c: |
case 0x1d: |
case 0x1e: |
case 0x1f: |
/* Invalid instruction(s) */ |
break; |
} |
break; |
case 0x30: |
/* Instruction: l.mtspr */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 11) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 0) & 0x7ff; |
c |= ((insn >> 21) & 0x1f) << 11; |
#define PARAM2 c |
{ /* "l_mtspr" */ |
uint16_t regno = PARAM0 + PARAM2; |
uorreg_t value = PARAM1; |
|
if (cpu_state.sprs[SPR_SR] & SPR_SR_SM) |
mtspr(regno, value); |
else { |
PRINTF("WARNING: trying to write SPR while SR[SUPV] is cleared.\n"); |
sim_done(); |
} |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 139; /* "l.mtspr" */ |
analysis(current); |
} |
} |
break; |
case 0x31: |
switch((insn >> 0) & 0xf) { |
case 0x0: |
/* Invalid instruction(s) */ |
break; |
case 0x1: |
/* Instruction: l.mac */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 11) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
{ /* "l_mac" */ |
uorreg_t lo, hi; |
LONGEST l; |
orreg_t x, y; |
|
lo = cpu_state.sprs[SPR_MACLO]; |
hi = cpu_state.sprs[SPR_MACHI]; |
x = PARAM0; |
y = PARAM1; |
PRINTF ("[%"PRIxREG",%"PRIxREG"]\t", x, y); |
l = (ULONGEST)lo | ((LONGEST)hi << 32); |
l += (LONGEST) x * (LONGEST) y; |
|
/* This implementation is very fast - it needs only one cycle for mac. */ |
lo = ((ULONGEST)l) & 0xFFFFFFFF; |
hi = ((LONGEST)l) >> 32; |
cpu_state.sprs[SPR_MACLO] = lo; |
cpu_state.sprs[SPR_MACHI] = hi; |
PRINTF ("(%"PRIxREG",%"PRIxREG"\n", hi, lo); |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 140; /* "l.mac" */ |
analysis(current); |
} |
} |
break; |
case 0x2: |
/* Instruction: l.msb */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 11) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
{ /* "l_msb" */ |
uorreg_t lo, hi; |
LONGEST l; |
orreg_t x, y; |
|
lo = cpu_state.sprs[SPR_MACLO]; |
hi = cpu_state.sprs[SPR_MACHI]; |
x = PARAM0; |
y = PARAM1; |
|
PRINTF ("[%"PRIxREG",%"PRIxREG"]\t", x, y); |
|
l = (ULONGEST)lo | ((LONGEST)hi << 32); |
l -= x * y; |
|
/* This implementation is very fast - it needs only one cycle for msb. */ |
lo = ((ULONGEST)l) & 0xFFFFFFFF; |
hi = ((LONGEST)l) >> 32; |
cpu_state.sprs[SPR_MACLO] = lo; |
cpu_state.sprs[SPR_MACHI] = hi; |
PRINTF ("(%"PRIxREG",%"PRIxREG")\n", hi, lo); |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 141; /* "l.msb" */ |
analysis(current); |
} |
} |
break; |
case 0x3: |
case 0x4: |
case 0x5: |
case 0x6: |
case 0x7: |
case 0x8: |
case 0x9: |
case 0xa: |
case 0xb: |
case 0xc: |
case 0xd: |
case 0xe: |
case 0xf: |
/* Invalid instruction(s) */ |
break; |
} |
break; |
case 0x32: |
switch((insn >> 4) & 0xf) { |
case 0x0: |
switch((insn >> 0) & 0xf) { |
case 0x0: |
/* Instruction: lf.add.s */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
{ /* "lf_add_s" */ |
SET_PARAM0((float)PARAM1 + (float)PARAM2); |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 142; /* "lf.add.s" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x1: |
/* Instruction: lf.sub.s */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
{ /* "lf_sub_s" */ |
SET_PARAM0((float)PARAM1 - (float)PARAM2); |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 143; /* "lf.sub.s" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x2: |
/* Instruction: lf.mul.s */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
{ /* "lf_mul_s" */ |
SET_PARAM0((float)PARAM1 * (float)PARAM2); |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 144; /* "lf.mul.s" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x3: |
/* Instruction: lf.div.s */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
{ /* "lf_div_s" */ |
SET_PARAM0((float)PARAM1 / (float)PARAM2); |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 145; /* "lf.div.s" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x4: |
/* Not unique: real mask fc00f8ff and current mask fc0000ff differ - do final check */ |
if((insn & 0xfc00f8ff) == 0xc8000004) { |
/* Instruction: lf.itof.s */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
{ /* "lf_itof_s" */ |
// freg[get_operand(0)] = eval_operand32(1, &breakpoint); |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 146; /* "lf.itof.s" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
} else { |
/* Invalid insn */ |
{ |
l_invalid (); |
|
if (do_stats) { |
current->insn_index = -1; /* "???" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
} |
break; |
case 0x5: |
/* Not unique: real mask fc00f8ff and current mask fc0000ff differ - do final check */ |
if((insn & 0xfc00f8ff) == 0xc8000005) { |
/* Instruction: lf.ftoi.s */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
{ /* "lf_ftoi_s" */ |
// set_operand32(0, freg[get_operand(1)], &breakpoint); |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 147; /* "lf.ftoi.s" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
} else { |
/* Invalid insn */ |
{ |
l_invalid (); |
|
if (do_stats) { |
current->insn_index = -1; /* "???" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
} |
break; |
case 0x6: |
/* Instruction: lf.rem.s */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
{ /* "lf_rem_s" */ |
float temp = (float)PARAM1 / (float)PARAM2; |
SET_PARAM0(temp - (uint32_t)temp); |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 148; /* "lf.rem.s" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x7: |
/* Instruction: lf.madd.s */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
{ /* "lf_madd_s" */ |
SET_PARAM0((float)PARAM0 + (float)PARAM1 * (float)PARAM2); |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 149; /* "lf.madd.s" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x8: |
/* Instruction: lf.sfeq.s */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 11) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
{ /* "lf_sfeq_s" */ |
if((float)PARAM0 == (float)PARAM1) |
cpu_state.sprs[SPR_SR] |= SPR_SR_F; |
else |
cpu_state.sprs[SPR_SR] &= ~SPR_SR_F; |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 150; /* "lf.sfeq.s" */ |
analysis(current); |
} |
} |
break; |
case 0x9: |
/* Instruction: lf.sfne.s */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 11) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
{ /* "lf_sfne_s" */ |
if((float)PARAM0 != (float)PARAM1) |
cpu_state.sprs[SPR_SR] |= SPR_SR_F; |
else |
cpu_state.sprs[SPR_SR] &= ~SPR_SR_F; |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 151; /* "lf.sfne.s" */ |
analysis(current); |
} |
} |
break; |
case 0xa: |
/* Instruction: lf.sfgt.s */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 11) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
{ /* "lf_sfgt_s" */ |
if((float)PARAM0 > (float)PARAM1) |
cpu_state.sprs[SPR_SR] |= SPR_SR_F; |
else |
cpu_state.sprs[SPR_SR] &= ~SPR_SR_F; |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 152; /* "lf.sfgt.s" */ |
analysis(current); |
} |
} |
break; |
case 0xb: |
/* Instruction: lf.sfge.s */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 11) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
{ /* "lf_sfge_s" */ |
if((float)PARAM0 >= (float)PARAM1) |
cpu_state.sprs[SPR_SR] |= SPR_SR_F; |
else |
cpu_state.sprs[SPR_SR] &= ~SPR_SR_F; |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 153; /* "lf.sfge.s" */ |
analysis(current); |
} |
} |
break; |
case 0xc: |
/* Instruction: lf.sflt.s */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 11) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
{ /* "lf_sflt_s" */ |
if((float)PARAM0 < (float)PARAM1) |
cpu_state.sprs[SPR_SR] |= SPR_SR_F; |
else |
cpu_state.sprs[SPR_SR] &= ~SPR_SR_F; |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 154; /* "lf.sflt.s" */ |
analysis(current); |
} |
} |
break; |
case 0xd: |
/* Instruction: lf.sfle.s */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 11) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
{ /* "lf_sfle_s" */ |
if((float)PARAM0 <= (float)PARAM1) |
cpu_state.sprs[SPR_SR] |= SPR_SR_F; |
else |
cpu_state.sprs[SPR_SR] &= ~SPR_SR_F; |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 155; /* "lf.sfle.s" */ |
analysis(current); |
} |
} |
break; |
case 0xe: |
case 0xf: |
/* Invalid instruction(s) */ |
break; |
} |
break; |
case 0x1: |
switch((insn >> 0) & 0xf) { |
case 0x0: |
/* Instruction: lf.add.d */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 157; /* "lf.add.d" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x1: |
/* Instruction: lf.sub.d */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 158; /* "lf.sub.d" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x2: |
/* Instruction: lf.mul.d */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 159; /* "lf.mul.d" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x3: |
/* Instruction: lf.div.d */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 160; /* "lf.div.d" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x4: |
/* Not unique: real mask fc00f8ff and current mask fc0000ff differ - do final check */ |
if((insn & 0xfc00f8ff) == 0xc8000014) { |
/* Instruction: lf.itof.d */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 161; /* "lf.itof.d" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
} else { |
/* Invalid insn */ |
{ |
l_invalid (); |
|
if (do_stats) { |
current->insn_index = -1; /* "???" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
} |
break; |
case 0x5: |
/* Not unique: real mask fc00f8ff and current mask fc0000ff differ - do final check */ |
if((insn & 0xfc00f8ff) == 0xc8000015) { |
/* Instruction: lf.ftoi.d */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 162; /* "lf.ftoi.d" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
} else { |
/* Invalid insn */ |
{ |
l_invalid (); |
|
if (do_stats) { |
current->insn_index = -1; /* "???" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
} |
break; |
case 0x6: |
/* Instruction: lf.rem.d */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 163; /* "lf.rem.d" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x7: |
/* Instruction: lf.madd.d */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 164; /* "lf.madd.d" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x8: |
/* Instruction: lf.sfeq.d */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 11) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 165; /* "lf.sfeq.d" */ |
analysis(current); |
} |
} |
break; |
case 0x9: |
/* Instruction: lf.sfne.d */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 11) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 166; /* "lf.sfne.d" */ |
analysis(current); |
} |
} |
break; |
case 0xa: |
/* Instruction: lf.sfgt.d */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 11) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 167; /* "lf.sfgt.d" */ |
analysis(current); |
} |
} |
break; |
case 0xb: |
/* Instruction: lf.sfge.d */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 11) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 168; /* "lf.sfge.d" */ |
analysis(current); |
} |
} |
break; |
case 0xc: |
/* Instruction: lf.sflt.d */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 11) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 169; /* "lf.sflt.d" */ |
analysis(current); |
} |
} |
break; |
case 0xd: |
/* Instruction: lf.sfle.d */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 11) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 170; /* "lf.sfle.d" */ |
analysis(current); |
} |
} |
break; |
case 0xe: |
case 0xf: |
/* Invalid instruction(s) */ |
break; |
} |
break; |
case 0x2: |
case 0x3: |
case 0x4: |
case 0x5: |
case 0x6: |
case 0x7: |
case 0x8: |
case 0x9: |
case 0xa: |
case 0xb: |
case 0xc: |
/* Invalid instruction(s) */ |
break; |
case 0xd: |
/* Instruction: lf.cust1.s */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 11) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 156; /* "lf.cust1.s" */ |
analysis(current); |
} |
} |
break; |
case 0xe: |
/* Instruction: lf.cust1.d */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 11) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 171; /* "lf.cust1.d" */ |
analysis(current); |
} |
} |
break; |
case 0xf: |
/* Invalid instruction(s) */ |
break; |
} |
break; |
case 0x33: |
/* Invalid instruction(s) */ |
break; |
case 0x34: |
/* Instruction: l.sd */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 0) & 0x7ff; |
a |= ((insn >> 21) & 0x1f) << 11; |
if(a & 0x00008000) a |= 0xffff8000; |
*(orreg_t *)&a += (orreg_t)cpu_state.reg[(insn >> 16) & 0x1f]; |
#define PARAM0 a |
b = (insn >> 11) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
l_invalid (); |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
cpu_state.insn_ea = a; |
current->insn_index = 172; /* "l.sd" */ |
analysis(current); |
} |
} |
break; |
case 0x35: |
/* Instruction: l.sw */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 0) & 0x7ff; |
a |= ((insn >> 21) & 0x1f) << 11; |
if(a & 0x00008000) a |= 0xffff8000; |
*(orreg_t *)&a += (orreg_t)cpu_state.reg[(insn >> 16) & 0x1f]; |
#define PARAM0 a |
b = (insn >> 11) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
{ /* "l_sw" */ |
int old_cyc = 0; |
if (config.cpu.sbuf_len) old_cyc = runtime.sim.mem_cycles; |
set_mem32(PARAM0, PARAM1, &breakpoint); |
if (config.cpu.sbuf_len) { |
int t = runtime.sim.mem_cycles; |
runtime.sim.mem_cycles = old_cyc; |
sbuf_store (t - old_cyc); |
} |
} |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
cpu_state.insn_ea = a; |
current->insn_index = 173; /* "l.sw" */ |
analysis(current); |
} |
} |
break; |
case 0x36: |
/* Instruction: l.sb */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 0) & 0x7ff; |
a |= ((insn >> 21) & 0x1f) << 11; |
if(a & 0x00008000) a |= 0xffff8000; |
*(orreg_t *)&a += (orreg_t)cpu_state.reg[(insn >> 16) & 0x1f]; |
#define PARAM0 a |
b = (insn >> 11) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
{ /* "l_sb" */ |
int old_cyc = 0; |
if (config.cpu.sbuf_len) old_cyc = runtime.sim.mem_cycles; |
set_mem8(PARAM0, PARAM1, &breakpoint); |
if (config.cpu.sbuf_len) { |
int t = runtime.sim.mem_cycles; |
runtime.sim.mem_cycles = old_cyc; |
sbuf_store (t- old_cyc); |
} |
} |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
cpu_state.insn_ea = a; |
current->insn_index = 174; /* "l.sb" */ |
analysis(current); |
} |
} |
break; |
case 0x37: |
/* Instruction: l.sh */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 0) & 0x7ff; |
a |= ((insn >> 21) & 0x1f) << 11; |
if(a & 0x00008000) a |= 0xffff8000; |
*(orreg_t *)&a += (orreg_t)cpu_state.reg[(insn >> 16) & 0x1f]; |
#define PARAM0 a |
b = (insn >> 11) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
{ /* "l_sh" */ |
int old_cyc = 0; |
if (config.cpu.sbuf_len) old_cyc = runtime.sim.mem_cycles; |
set_mem16(PARAM0, PARAM1, &breakpoint); |
if (config.cpu.sbuf_len) { |
int t = runtime.sim.mem_cycles; |
runtime.sim.mem_cycles = old_cyc; |
sbuf_store (t - old_cyc); |
} |
} |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
cpu_state.insn_ea = a; |
current->insn_index = 175; /* "l.sh" */ |
analysis(current); |
} |
} |
break; |
case 0x38: |
switch((insn >> 0) & 0xf) { |
case 0x0: |
/* Not unique: real mask fc00030f and current mask fc00000f differ - do final check */ |
if((insn & 0xfc00030f) == 0xe0000000) { |
/* Instruction: l.add */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
{ /* "l_add" */ |
orreg_t temp1, temp2, temp3; |
int8_t temp4; |
|
temp2 = (orreg_t)PARAM2; |
temp3 = (orreg_t)PARAM1; |
temp1 = temp2 + temp3; |
SET_PARAM0(temp1); |
SET_OV_FLAG_FN (temp1); |
if (ARITH_SET_FLAG) { |
if(!temp1) |
cpu_state.sprs[SPR_SR] |= SPR_SR_F; |
else |
cpu_state.sprs[SPR_SR] &= ~SPR_SR_F; |
} |
if ((uorreg_t) temp1 < (uorreg_t) temp2) |
cpu_state.sprs[SPR_SR] |= SPR_SR_CY; |
else |
cpu_state.sprs[SPR_SR] &= ~SPR_SR_CY; |
|
temp4 = temp1; |
if (temp4 == temp1) |
or1k_mstats.byteadd++; |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 176; /* "l.add" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
} else { |
/* Invalid insn */ |
{ |
l_invalid (); |
|
if (do_stats) { |
current->insn_index = -1; /* "???" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
} |
break; |
case 0x1: |
/* Not unique: real mask fc00030f and current mask fc00000f differ - do final check */ |
if((insn & 0xfc00030f) == 0xe0000001) { |
/* Instruction: l.addc */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
{ /* "l_addc" */ |
orreg_t temp1, temp2, temp3; |
int8_t temp4; |
|
temp2 = (orreg_t)PARAM2; |
temp3 = (orreg_t)PARAM1; |
temp1 = temp2 + temp3; |
if(cpu_state.sprs[SPR_SR] & SPR_SR_CY) |
temp1++; |
SET_PARAM0(temp1); |
SET_OV_FLAG_FN (temp1); |
if (ARITH_SET_FLAG) { |
if(!temp1) |
cpu_state.sprs[SPR_SR] |= SPR_SR_F; |
else |
cpu_state.sprs[SPR_SR] &= ~SPR_SR_F; |
} |
if ((uorreg_t) temp1 < (uorreg_t) temp2) |
cpu_state.sprs[SPR_SR] |= SPR_SR_CY; |
else |
cpu_state.sprs[SPR_SR] &= ~SPR_SR_CY; |
|
temp4 = temp1; |
if (temp4 == temp1) |
or1k_mstats.byteadd++; |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 177; /* "l.addc" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
} else { |
/* Invalid insn */ |
{ |
l_invalid (); |
|
if (do_stats) { |
current->insn_index = -1; /* "???" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
} |
break; |
case 0x2: |
/* Not unique: real mask fc00030f and current mask fc00000f differ - do final check */ |
if((insn & 0xfc00030f) == 0xe0000002) { |
/* Instruction: l.sub */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
{ /* "l_sub" */ |
orreg_t temp1; |
temp1 = (orreg_t)PARAM1 - (orreg_t)PARAM2; |
SET_OV_FLAG_FN (temp1); |
SET_PARAM0(temp1); |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 178; /* "l.sub" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
} else { |
/* Invalid insn */ |
{ |
l_invalid (); |
|
if (do_stats) { |
current->insn_index = -1; /* "???" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
} |
break; |
case 0x3: |
/* Not unique: real mask fc00030f and current mask fc00000f differ - do final check */ |
if((insn & 0xfc00030f) == 0xe0000003) { |
/* Instruction: l.and */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
{ /* "l_and" */ |
uorreg_t temp1; |
temp1 = PARAM1 & PARAM2; |
SET_OV_FLAG_FN (temp1); |
SET_PARAM0(temp1); |
if (ARITH_SET_FLAG) { |
if(!temp1) |
cpu_state.sprs[SPR_SR] |= SPR_SR_F; |
else |
cpu_state.sprs[SPR_SR] &= ~SPR_SR_F; |
} |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 179; /* "l.and" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
} else { |
/* Invalid insn */ |
{ |
l_invalid (); |
|
if (do_stats) { |
current->insn_index = -1; /* "???" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
} |
break; |
case 0x4: |
/* Not unique: real mask fc00030f and current mask fc00000f differ - do final check */ |
if((insn & 0xfc00030f) == 0xe0000004) { |
/* Instruction: l.or */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
{ /* "l_or" */ |
uorreg_t temp1; |
temp1 = PARAM1 | PARAM2; |
SET_OV_FLAG_FN (temp1); |
SET_PARAM0(temp1); |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 180; /* "l.or" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
} else { |
/* Invalid insn */ |
{ |
l_invalid (); |
|
if (do_stats) { |
current->insn_index = -1; /* "???" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
} |
break; |
case 0x5: |
/* Not unique: real mask fc00030f and current mask fc00000f differ - do final check */ |
if((insn & 0xfc00030f) == 0xe0000005) { |
/* Instruction: l.xor */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
{ /* "l_xor" */ |
uorreg_t temp1; |
temp1 = PARAM1 ^ PARAM2; |
SET_OV_FLAG_FN (temp1); |
SET_PARAM0(temp1); |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 181; /* "l.xor" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
} else { |
/* Invalid insn */ |
{ |
l_invalid (); |
|
if (do_stats) { |
current->insn_index = -1; /* "???" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
} |
break; |
case 0x6: |
/* Not unique: real mask fc00030f and current mask fc00000f differ - do final check */ |
if((insn & 0xfc00030f) == 0xe0000306) { |
/* Instruction: l.mul */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
{ /* "l_mul" */ |
orreg_t temp1; |
|
temp1 = (orreg_t)PARAM1 * (orreg_t)PARAM2; |
SET_OV_FLAG_FN (temp1); |
SET_PARAM0(temp1); |
/*if (!(mcount++ & 1023)) { |
PRINTF ("[%i]\n",mcount); |
}*/ |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 182; /* "l.mul" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
} else { |
/* Invalid insn */ |
{ |
l_invalid (); |
|
if (do_stats) { |
current->insn_index = -1; /* "???" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
} |
break; |
case 0x7: |
/* Invalid instruction(s) */ |
break; |
case 0x8: |
switch((insn >> 6) & 0xf) { |
case 0x0: |
/* Instruction: l.sll */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
{ /* "l_sll" */ |
uorreg_t temp1; |
|
temp1 = PARAM1 << PARAM2; |
SET_OV_FLAG_FN (temp1); |
SET_PARAM0(temp1); |
/* runtime.sim.cycles += 2; */ |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 183; /* "l.sll" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x1: |
/* Instruction: l.srl */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
{ /* "l_srl" */ |
uorreg_t temp1; |
temp1 = PARAM1 >> PARAM2; |
SET_OV_FLAG_FN (temp1); |
SET_PARAM0(temp1); |
/* runtime.sim.cycles += 2; */ |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 184; /* "l.srl" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x2: |
/* Instruction: l.sra */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
{ /* "l_sra" */ |
orreg_t temp1; |
|
temp1 = (orreg_t)PARAM1 >> PARAM2; |
SET_OV_FLAG_FN (temp1); |
SET_PARAM0(temp1); |
/* runtime.sim.cycles += 2; */ |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 185; /* "l.sra" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x3: |
/* Instruction: l.ror */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 186; /* "l.ror" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x4: |
case 0x5: |
case 0x6: |
case 0x7: |
case 0x8: |
case 0x9: |
case 0xa: |
case 0xb: |
case 0xc: |
case 0xd: |
case 0xe: |
case 0xf: |
/* Invalid instruction(s) */ |
break; |
} |
break; |
case 0x9: |
/* Not unique: real mask fc00030f and current mask fc00000f differ - do final check */ |
if((insn & 0xfc00030f) == 0xe0000309) { |
/* Instruction: l.div */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
{ /* "l_div" */ |
orreg_t temp3, temp2, temp1; |
|
temp3 = PARAM2; |
temp2 = PARAM1; |
if (temp3) |
temp1 = temp2 / temp3; |
else { |
except_handle(EXCEPT_ILLEGAL, cpu_state.pc); |
return; |
} |
SET_OV_FLAG_FN (temp1); |
SET_PARAM0(temp1); |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 187; /* "l.div" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
} else { |
/* Invalid insn */ |
{ |
l_invalid (); |
|
if (do_stats) { |
current->insn_index = -1; /* "???" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
} |
break; |
case 0xa: |
/* Not unique: real mask fc00030f and current mask fc00000f differ - do final check */ |
if((insn & 0xfc00030f) == 0xe000030a) { |
/* Instruction: l.divu */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
{ /* "l_divu" */ |
uorreg_t temp3, temp2, temp1; |
|
temp3 = PARAM2; |
temp2 = PARAM1; |
if (temp3) |
temp1 = temp2 / temp3; |
else { |
except_handle(EXCEPT_ILLEGAL, cpu_state.pc); |
return; |
} |
SET_OV_FLAG_FN (temp1); |
SET_PARAM0(temp1); |
/* runtime.sim.cycles += 16; */ |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 188; /* "l.divu" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
} else { |
/* Invalid insn */ |
{ |
l_invalid (); |
|
if (do_stats) { |
current->insn_index = -1; /* "???" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
} |
break; |
case 0xb: |
/* Not unique: real mask fc00030f and current mask fc00000f differ - do final check */ |
if((insn & 0xfc00030f) == 0xe000030b) { |
/* Instruction: l.mulu */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 189; /* "l.mulu" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
} else { |
/* Invalid insn */ |
{ |
l_invalid (); |
|
if (do_stats) { |
current->insn_index = -1; /* "???" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
} |
break; |
case 0xc: |
switch((insn >> 6) & 0xf) { |
case 0x0: |
/* Instruction: l.exths */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
{ /* "l_exths" */ |
int16_t x; |
x = PARAM1; |
SET_PARAM0((orreg_t)x); |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 191; /* "l.exths" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x1: |
/* Instruction: l.extbs */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
{ /* "l_extbs" */ |
int8_t x; |
x = PARAM1; |
SET_PARAM0((orreg_t)x); |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 190; /* "l.extbs" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x2: |
/* Instruction: l.exthz */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
{ /* "l_exthz" */ |
uint16_t x; |
x = PARAM1; |
SET_PARAM0((uorreg_t)x); |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 194; /* "l.exthz" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x3: |
/* Instruction: l.extbz */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
{ /* "l_extbz" */ |
uint8_t x; |
x = PARAM1; |
SET_PARAM0((uorreg_t)x); |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 193; /* "l.extbz" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x4: |
case 0x5: |
case 0x6: |
case 0x7: |
case 0x8: |
case 0x9: |
case 0xa: |
case 0xb: |
case 0xc: |
case 0xd: |
case 0xe: |
case 0xf: |
/* Invalid instruction(s) */ |
break; |
} |
break; |
case 0xd: |
switch((insn >> 6) & 0xf) { |
case 0x0: |
/* Instruction: l.extws */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
{ /* "l_extws" */ |
int32_t x; |
x = PARAM1; |
SET_PARAM0((orreg_t)x); |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 192; /* "l.extws" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x1: |
/* Instruction: l.extwz */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
{ /* "l_extwz" */ |
uint32_t x; |
x = PARAM1; |
SET_PARAM0((uorreg_t)x); |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 195; /* "l.extwz" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x2: |
case 0x3: |
case 0x4: |
case 0x5: |
case 0x6: |
case 0x7: |
case 0x8: |
case 0x9: |
case 0xa: |
case 0xb: |
case 0xc: |
case 0xd: |
case 0xe: |
case 0xf: |
/* Invalid instruction(s) */ |
break; |
} |
break; |
case 0xe: |
/* Not unique: real mask fc00030f and current mask fc00000f differ - do final check */ |
if((insn & 0xfc00030f) == 0xe000000e) { |
/* Instruction: l.cmov */ |
{ |
uorreg_t a, b, c; |
/* Number of operands: 3 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
{ /* "l_cmov" */ |
SET_PARAM0(cpu_state.sprs[SPR_SR] & SPR_SR_F ? PARAM1 : PARAM2); |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
|
if (do_stats) { |
current->insn_index = 196; /* "l.cmov" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
} else { |
/* Invalid insn */ |
{ |
l_invalid (); |
|
if (do_stats) { |
current->insn_index = -1; /* "???" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
} |
break; |
case 0xf: |
switch((insn >> 8) & 0x3) { |
case 0x0: |
/* Instruction: l.ff1 */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
{ /* "l_ff1" */ |
SET_PARAM0(ffs(PARAM1)); |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 197; /* "l.ff1" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x1: |
/* Instruction: l.fl1 */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 198; /* "l.fl1" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x2: |
case 0x3: |
/* Invalid instruction(s) */ |
break; |
} |
break; |
} |
break; |
case 0x39: |
switch((insn >> 21) & 0x1f) { |
case 0x0: |
/* Instruction: l.sfeq */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 11) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
{ /* "l_sfeq" */ |
if(PARAM0 == PARAM1) |
cpu_state.sprs[SPR_SR] |= SPR_SR_F; |
else |
cpu_state.sprs[SPR_SR] &= ~SPR_SR_F; |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 199; /* "l.sfeq" */ |
analysis(current); |
} |
} |
break; |
case 0x1: |
/* Instruction: l.sfne */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 11) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
{ /* "l_sfne" */ |
if(PARAM0 != PARAM1) |
cpu_state.sprs[SPR_SR] |= SPR_SR_F; |
else |
cpu_state.sprs[SPR_SR] &= ~SPR_SR_F; |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 200; /* "l.sfne" */ |
analysis(current); |
} |
} |
break; |
case 0x2: |
/* Instruction: l.sfgtu */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 11) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
{ /* "l_sfgtu" */ |
if(PARAM0 > PARAM1) |
cpu_state.sprs[SPR_SR] |= SPR_SR_F; |
else |
cpu_state.sprs[SPR_SR] &= ~SPR_SR_F; |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 201; /* "l.sfgtu" */ |
analysis(current); |
} |
} |
break; |
case 0x3: |
/* Instruction: l.sfgeu */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 11) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
{ /* "l_sfgeu" */ |
if(PARAM0 >= PARAM1) |
cpu_state.sprs[SPR_SR] |= SPR_SR_F; |
else |
cpu_state.sprs[SPR_SR] &= ~SPR_SR_F; |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 202; /* "l.sfgeu" */ |
analysis(current); |
} |
} |
break; |
case 0x4: |
/* Instruction: l.sfltu */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 11) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
{ /* "l_sfltu" */ |
if(PARAM0 < PARAM1) |
cpu_state.sprs[SPR_SR] |= SPR_SR_F; |
else |
cpu_state.sprs[SPR_SR] &= ~SPR_SR_F; |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 203; /* "l.sfltu" */ |
analysis(current); |
} |
} |
break; |
case 0x5: |
/* Instruction: l.sfleu */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 11) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
{ /* "l_sfleu" */ |
if(PARAM0 <= PARAM1) |
cpu_state.sprs[SPR_SR] |= SPR_SR_F; |
else |
cpu_state.sprs[SPR_SR] &= ~SPR_SR_F; |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 204; /* "l.sfleu" */ |
analysis(current); |
} |
} |
break; |
case 0x6: |
case 0x7: |
case 0x8: |
case 0x9: |
/* Invalid instruction(s) */ |
break; |
case 0xa: |
/* Instruction: l.sfgts */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 11) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
{ /* "l_sfgts" */ |
if((orreg_t)PARAM0 > (orreg_t)PARAM1) |
cpu_state.sprs[SPR_SR] |= SPR_SR_F; |
else |
cpu_state.sprs[SPR_SR] &= ~SPR_SR_F; |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 205; /* "l.sfgts" */ |
analysis(current); |
} |
} |
break; |
case 0xb: |
/* Instruction: l.sfges */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 11) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
{ /* "l_sfges" */ |
if((orreg_t)PARAM0 >= (orreg_t)PARAM1) |
cpu_state.sprs[SPR_SR] |= SPR_SR_F; |
else |
cpu_state.sprs[SPR_SR] &= ~SPR_SR_F; |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 206; /* "l.sfges" */ |
analysis(current); |
} |
} |
break; |
case 0xc: |
/* Instruction: l.sflts */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 11) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
{ /* "l_sflts" */ |
if((orreg_t)PARAM0 < (orreg_t)PARAM1) |
cpu_state.sprs[SPR_SR] |= SPR_SR_F; |
else |
cpu_state.sprs[SPR_SR] &= ~SPR_SR_F; |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 207; /* "l.sflts" */ |
analysis(current); |
} |
} |
break; |
case 0xd: |
/* Instruction: l.sfles */ |
{ |
uorreg_t a, b; |
/* Number of operands: 2 */ |
a = (insn >> 16) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 11) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
{ /* "l_sfles" */ |
if((orreg_t)PARAM0 <= (orreg_t)PARAM1) |
cpu_state.sprs[SPR_SR] |= SPR_SR_F; |
else |
cpu_state.sprs[SPR_SR] &= ~SPR_SR_F; |
} |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
|
if (do_stats) { |
current->insn_index = 208; /* "l.sfles" */ |
analysis(current); |
} |
} |
break; |
case 0xe: |
case 0xf: |
case 0x10: |
case 0x11: |
case 0x12: |
case 0x13: |
case 0x14: |
case 0x15: |
case 0x16: |
case 0x17: |
case 0x18: |
case 0x19: |
case 0x1a: |
case 0x1b: |
case 0x1c: |
case 0x1d: |
case 0x1e: |
case 0x1f: |
/* Invalid instruction(s) */ |
break; |
} |
break; |
case 0x3a: |
case 0x3b: |
/* Invalid instruction(s) */ |
break; |
case 0x3c: |
/* Instruction: l.cust5 */ |
{ |
uorreg_t a, b, c, d, e; |
/* Number of operands: 5 */ |
a = (insn >> 21) & 0x1f; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
b = (insn >> 16) & 0x1f; |
#define PARAM1 cpu_state.reg[b] |
c = (insn >> 11) & 0x1f; |
#define PARAM2 cpu_state.reg[c] |
d = (insn >> 5) & 0x3f; |
#define PARAM3 d |
e = (insn >> 0) & 0x1f; |
#define PARAM4 e |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
#undef PARAM1 |
#undef PARAM2 |
#undef PARAM3 |
#undef PARAM4 |
|
if (do_stats) { |
current->insn_index = 209; /* "l.cust5" */ |
analysis(current); |
} |
cpu_state.reg[0] = 0; /* Repair in case we changed it */ |
} |
break; |
case 0x3d: |
/* Instruction: l.cust6 */ |
{ |
uorreg_t a; |
/* Number of operands: 1 */ |
a = (insn >> 0) & 0x0; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
|
if (do_stats) { |
current->insn_index = 210; /* "l.cust6" */ |
analysis(current); |
} |
} |
break; |
case 0x3e: |
/* Instruction: l.cust7 */ |
{ |
uorreg_t a; |
/* Number of operands: 1 */ |
a = (insn >> 0) & 0x0; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
|
if (do_stats) { |
current->insn_index = 211; /* "l.cust7" */ |
analysis(current); |
} |
} |
break; |
case 0x3f: |
/* Instruction: l.cust8 */ |
{ |
uorreg_t a; |
/* Number of operands: 1 */ |
a = (insn >> 0) & 0x0; |
#define SET_PARAM0(val) cpu_state.reg[a] = val |
#define PARAM0 cpu_state.reg[a] |
l_invalid (); |
#undef SET_PARAM |
#undef PARAM0 |
|
if (do_stats) { |
current->insn_index = 212; /* "l.cust8" */ |
analysis(current); |
} |
} |
break; |
} |
} |
execgen.c
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: .libs/libarch.a
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: .libs/libarch.a
===================================================================
--- .libs/libarch.a (nonexistent)
+++ .libs/libarch.a (revision 21)
.libs/libarch.a
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: .deps/generate-generate.Po
===================================================================
--- .deps/generate-generate.Po (nonexistent)
+++ .deps/generate-generate.Po (revision 21)
@@ -0,0 +1,103 @@
+generate-generate.o: ../../../cpu/or32/generate.c ../../config.h \
+ ../../../port/port.h /usr/include/string.h /usr/include/features.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h \
+ /usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h \
+ /usr/include/xlocale.h /usr/include/bits/string.h \
+ /usr/include/bits/string2.h /usr/include/endian.h \
+ /usr/include/bits/endian.h /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h /usr/include/stdlib.h \
+ /usr/include/ctype.h /usr/include/inttypes.h /usr/include/stdint.h \
+ /usr/include/bits/wchar.h /usr/include/bits/waitflags.h \
+ /usr/include/bits/waitstatus.h /usr/include/sys/types.h \
+ /usr/include/time.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/bits/sigset.h \
+ /usr/include/bits/time.h /usr/include/sys/sysmacros.h \
+ /usr/include/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \
+ /usr/include/wchar.h \
+ /usr/lib/gcc/i386-redhat-linux/4.3.0/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h ../../../cpu/or1k/opcode/or32.h
+
+../../config.h:
+
+../../../port/port.h:
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-32.h:
+
+/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/bits/string.h:
+
+/usr/include/bits/string2.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/ctype.h:
+
+/usr/include/inttypes.h:
+
+/usr/include/stdint.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+../../../cpu/or1k/opcode/or32.h:
Index: .deps/gen-ops-rel.Plo
===================================================================
--- .deps/gen-ops-rel.Plo (nonexistent)
+++ .deps/gen-ops-rel.Plo (revision 21)
@@ -0,0 +1 @@
+# dummy
Index: .deps/gen-ops.Plo
===================================================================
--- .deps/gen-ops.Plo (nonexistent)
+++ .deps/gen-ops.Plo (revision 21)
@@ -0,0 +1 @@
+# dummy
Index: .deps/op-support.Plo
===================================================================
--- .deps/op-support.Plo (nonexistent)
+++ .deps/op-support.Plo (revision 21)
@@ -0,0 +1 @@
+# dummy
Index: .deps/dyngen-dyngen.Po
===================================================================
--- .deps/dyngen-dyngen.Po (nonexistent)
+++ .deps/dyngen-dyngen.Po (revision 21)
@@ -0,0 +1 @@
+# dummy
Index: .deps/libop_la-op.Plo
===================================================================
--- .deps/libop_la-op.Plo (nonexistent)
+++ .deps/libop_la-op.Plo (revision 21)
@@ -0,0 +1 @@
+# dummy
Index: .deps/dyngen-dyngen-elf.Po
===================================================================
--- .deps/dyngen-dyngen-elf.Po (nonexistent)
+++ .deps/dyngen-dyngen-elf.Po (revision 21)
@@ -0,0 +1 @@
+# dummy
Index: .deps/op.Plo
===================================================================
--- .deps/op.Plo (nonexistent)
+++ .deps/op.Plo (revision 21)
@@ -0,0 +1 @@
+# dummy
Index: .deps/gen-ops-gen.Plo
===================================================================
--- .deps/gen-ops-gen.Plo (nonexistent)
+++ .deps/gen-ops-gen.Plo (revision 21)
@@ -0,0 +1 @@
+# dummy
Index: .deps/dyn-rec.Plo
===================================================================
--- .deps/dyn-rec.Plo (nonexistent)
+++ .deps/dyn-rec.Plo (revision 21)
@@ -0,0 +1 @@
+# dummy
Index: .deps/dyngen-dyngen-i386.Po
===================================================================
--- .deps/dyngen-dyngen-i386.Po (nonexistent)
+++ .deps/dyngen-dyngen-i386.Po (revision 21)
@@ -0,0 +1 @@
+# dummy
Index: .deps/generate-or32.Po
===================================================================
--- .deps/generate-or32.Po (nonexistent)
+++ .deps/generate-or32.Po (revision 21)
@@ -0,0 +1,103 @@
+generate-or32.o: ../../../cpu/or32/or32.c ../../config.h \
+ ../../../port/port.h /usr/include/string.h /usr/include/features.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h \
+ /usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h \
+ /usr/include/xlocale.h /usr/include/bits/string.h \
+ /usr/include/bits/string2.h /usr/include/endian.h \
+ /usr/include/bits/endian.h /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h /usr/include/stdlib.h \
+ /usr/include/ctype.h /usr/include/inttypes.h /usr/include/stdint.h \
+ /usr/include/bits/wchar.h /usr/include/bits/waitflags.h \
+ /usr/include/bits/waitstatus.h /usr/include/sys/types.h \
+ /usr/include/time.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/bits/sigset.h \
+ /usr/include/bits/time.h /usr/include/sys/sysmacros.h \
+ /usr/include/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \
+ /usr/include/wchar.h \
+ /usr/lib/gcc/i386-redhat-linux/4.3.0/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h ../../../cpu/or1k/opcode/or32.h
+
+../../config.h:
+
+../../../port/port.h:
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-32.h:
+
+/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/bits/string.h:
+
+/usr/include/bits/string2.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/ctype.h:
+
+/usr/include/inttypes.h:
+
+/usr/include/stdint.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+../../../cpu/or1k/opcode/or32.h:
Index: .deps/execute.Plo
===================================================================
--- .deps/execute.Plo (nonexistent)
+++ .deps/execute.Plo (revision 21)
@@ -0,0 +1,154 @@
+execute.lo: ../../../cpu/or32/execute.c ../../config.h \
+ ../../../port/port.h /usr/include/string.h /usr/include/features.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h \
+ /usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h \
+ /usr/include/xlocale.h /usr/include/bits/string.h \
+ /usr/include/bits/string2.h /usr/include/endian.h \
+ /usr/include/bits/endian.h /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h /usr/include/stdlib.h \
+ /usr/include/ctype.h /usr/include/inttypes.h /usr/include/stdint.h \
+ /usr/include/bits/wchar.h /usr/include/bits/waitflags.h \
+ /usr/include/bits/waitstatus.h /usr/include/sys/types.h \
+ /usr/include/time.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/bits/sigset.h \
+ /usr/include/bits/time.h /usr/include/sys/sysmacros.h \
+ /usr/include/bits/pthreadtypes.h /usr/include/alloca.h \
+ ../../../cpu/common/execute.h ../../../cpu/or1k/spr-defs.h \
+ ../../../cpu/or1k/opcode/or32.h ../../../cpu/common/abstract.h \
+ /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \
+ /usr/include/wchar.h \
+ /usr/lib/gcc/i386-redhat-linux/4.3.0/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h ../../../cpu/or1k/arch.h \
+ ../../../toplevel-support.h ../../../cpu/or1k/except.h \
+ ../../../cpu/or1k/arch.h ../../../cpu/common/labels.h \
+ ../../../debug/gdbcomm.h ../../../support/sched.h \
+ ../../../cpu/common/stats.h ../../../mmu/dmmu.h ../../../sim-config.h \
+ ../../../mmu/immu.h ../../../sim-cmd.h ../../../vapi/vapi.h \
+ ../../../debug/debug-unit.h ../../../bpb/branch-predict.h \
+ ../../../support/simprintf.h ../../../cpu/or1k/sprs.h execgen.c
+
+../../config.h:
+
+../../../port/port.h:
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-32.h:
+
+/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/bits/string.h:
+
+/usr/include/bits/string2.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/ctype.h:
+
+/usr/include/inttypes.h:
+
+/usr/include/stdint.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+../../../cpu/common/execute.h:
+
+../../../cpu/or1k/spr-defs.h:
+
+../../../cpu/or1k/opcode/or32.h:
+
+../../../cpu/common/abstract.h:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+../../../cpu/or1k/arch.h:
+
+../../../toplevel-support.h:
+
+../../../cpu/or1k/except.h:
+
+../../../cpu/or1k/arch.h:
+
+../../../cpu/common/labels.h:
+
+../../../debug/gdbcomm.h:
+
+../../../support/sched.h:
+
+../../../cpu/common/stats.h:
+
+../../../mmu/dmmu.h:
+
+../../../sim-config.h:
+
+../../../mmu/immu.h:
+
+../../../sim-cmd.h:
+
+../../../vapi/vapi.h:
+
+../../../debug/debug-unit.h:
+
+../../../bpb/branch-predict.h:
+
+../../../support/simprintf.h:
+
+../../../cpu/or1k/sprs.h:
+
+execgen.c:
Index: .deps/insnset.Plo
===================================================================
--- .deps/insnset.Plo (nonexistent)
+++ .deps/insnset.Plo (revision 21)
@@ -0,0 +1 @@
+# dummy
Index: .deps/or32.Plo
===================================================================
--- .deps/or32.Plo (nonexistent)
+++ .deps/or32.Plo (revision 21)
@@ -0,0 +1,103 @@
+or32.lo: ../../../cpu/or32/or32.c ../../config.h ../../../port/port.h \
+ /usr/include/string.h /usr/include/features.h /usr/include/sys/cdefs.h \
+ /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
+ /usr/include/gnu/stubs-32.h \
+ /usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h \
+ /usr/include/xlocale.h /usr/include/bits/string.h \
+ /usr/include/bits/string2.h /usr/include/endian.h \
+ /usr/include/bits/endian.h /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h /usr/include/stdlib.h \
+ /usr/include/ctype.h /usr/include/inttypes.h /usr/include/stdint.h \
+ /usr/include/bits/wchar.h /usr/include/bits/waitflags.h \
+ /usr/include/bits/waitstatus.h /usr/include/sys/types.h \
+ /usr/include/time.h /usr/include/sys/select.h \
+ /usr/include/bits/select.h /usr/include/bits/sigset.h \
+ /usr/include/bits/time.h /usr/include/sys/sysmacros.h \
+ /usr/include/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \
+ /usr/include/wchar.h \
+ /usr/lib/gcc/i386-redhat-linux/4.3.0/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h ../../../cpu/or1k/opcode/or32.h
+
+../../config.h:
+
+../../../port/port.h:
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-32.h:
+
+/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/bits/string.h:
+
+/usr/include/bits/string2.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/ctype.h:
+
+/usr/include/inttypes.h:
+
+/usr/include/stdint.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+../../../cpu/or1k/opcode/or32.h:
Index: generate
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: generate
===================================================================
--- generate (nonexistent)
+++ generate (revision 21)
generate
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: Makefile
===================================================================
--- Makefile (nonexistent)
+++ Makefile (revision 21)
@@ -0,0 +1,799 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# cpu/or32/Makefile. Generated from Makefile.in by configure.
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+# Makefile -- Makefile for OR32 dependent simulation
+#
+# Copyright (C) 1999 Damjan Lampret, lampret@opencores.org
+# Copyright (C) 2008 Embecosm Limited
+#
+# Contributor Jeremy Bennett
+#
+# This file is part of OpenRISC 1000 Architectural Simulator.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the Free
+# Software Foundation; either version 3 of the License, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+# more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program. If not, see .
+
+
+VPATH = ../../../cpu/or32
+pkgdatadir = $(datadir)/or1ksim
+pkglibdir = $(libdir)/or1ksim
+pkgincludedir = $(includedir)/or1ksim
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = i686-pc-linux-gnu
+host_triplet = i686-pc-linux-gnu
+target_triplet = or32-unknown-uclinux
+noinst_PROGRAMS = generate$(EXEEXT)
+#noinst_PROGRAMS = dyngen$(EXEEXT)
+subdir = cpu/or32
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+libarch_la_LIBADD =
+am__libarch_la_SOURCES_DIST = execute.c insnset.c or32.c common-i386.h \
+ dyn32-defs.h dyngen.h dyn-rec.h i386-regs.h op-arith-op.h \
+ op-comp-op.h op-extend-op.h op-ff1-op.h op-i386.h op-lwhb-op.h \
+ op-mac-op.h op-mftspr-op.h op-support.h op-swhb-op.h \
+ op-t-reg-mov-op.h rec-i386.h sched-i386.h simpl32-defs.h op.c \
+ dyn-rec.c op-support.c
+#am_libarch_la_OBJECTS = \
+# execute.lo \
+# insnset.lo \
+# or32.lo
+am_libarch_la_OBJECTS = \
+ execute.lo \
+ or32.lo
+#am_libarch_la_OBJECTS = execute.lo or32.lo \
+# op.lo dyn-rec.lo op-support.lo
+#nodist_libarch_la_OBJECTS = gen-ops.lo \
+# gen-ops-gen.lo gen-ops-rel.lo
+libarch_la_OBJECTS = $(am_libarch_la_OBJECTS) \
+ $(nodist_libarch_la_OBJECTS)
+am_libarch_la_rpath =
+#am_libarch_la_rpath =
+libop_la_LIBADD =
+am__libop_la_SOURCES_DIST = op.c op-t-reg-mov-op.h op-i386.h \
+ op-arith-op.h op-comp-op.h op-extend-op.h op-mac-op.h \
+ op-mftspr-op.h op-lwhb-op.h op-swhb-op.h
+#am_libop_la_OBJECTS = libop_la-op.lo
+libop_la_OBJECTS = $(am_libop_la_OBJECTS)
+libop_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(libop_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+#am_libop_la_rpath =
+PROGRAMS = $(noinst_PROGRAMS)
+am__dyngen_SOURCES_DIST = dyngen.c dyngen-i386.c dyngen-elf.c \
+ common-i386.h dyn32-defs.h dyngen.h dyn-rec.h i386-regs.h \
+ op-arith-op.h op-comp-op.h op-extend-op.h op-ff1-op.h \
+ op-i386.h op-lwhb-op.h op-mac-op.h op-mftspr-op.h op-support.h \
+ op-swhb-op.h op-t-reg-mov-op.h rec-i386.h sched-i386.h \
+ simpl32-defs.h
+#am_dyngen_OBJECTS = dyngen-dyngen.$(OBJEXT) \
+# dyngen-dyngen-i386.$(OBJEXT) \
+# dyngen-dyngen-elf.$(OBJEXT)
+dyngen_OBJECTS = $(am_dyngen_OBJECTS)
+dyngen_LDADD = $(LDADD)
+dyngen_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(dyngen_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+am__generate_SOURCES_DIST = or32.c generate.c common-i386.h \
+ dyn32-defs.h dyngen.h dyn-rec.h i386-regs.h op-arith-op.h \
+ op-comp-op.h op-extend-op.h op-ff1-op.h op-i386.h op-lwhb-op.h \
+ op-mac-op.h op-mftspr-op.h op-support.h op-swhb-op.h \
+ op-t-reg-mov-op.h rec-i386.h sched-i386.h simpl32-defs.h
+am_generate_OBJECTS = generate-or32.$(OBJEXT) \
+ generate-generate.$(OBJEXT)
+generate_OBJECTS = $(am_generate_OBJECTS)
+generate_LDADD = $(LDADD)
+generate_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(generate_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(libarch_la_SOURCES) $(nodist_libarch_la_SOURCES) \
+ $(libop_la_SOURCES) $(dyngen_SOURCES) $(generate_SOURCES)
+DIST_SOURCES = $(am__libarch_la_SOURCES_DIST) \
+ $(am__libop_la_SOURCES_DIST) $(am__dyngen_SOURCES_DIST) \
+ $(am__generate_SOURCES_DIST)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = ${SHELL} /home/jeremy/partners/OpenCores/cvstrees/or1k/or1ksim/missing --run aclocal-1.10
+AMTAR = ${SHELL} /home/jeremy/partners/OpenCores/cvstrees/or1k/or1ksim/missing --run tar
+AR = ar
+ARFLAGS = cr
+AUTOCONF = ${SHELL} /home/jeremy/partners/OpenCores/cvstrees/or1k/or1ksim/missing --run autoconf
+AUTOHEADER = ${SHELL} /home/jeremy/partners/OpenCores/cvstrees/or1k/or1ksim/missing --run autoheader
+AUTOMAKE = ${SHELL} /home/jeremy/partners/OpenCores/cvstrees/or1k/or1ksim/missing --run automake-1.10
+AWK = gawk
+BUILD_DIR = /home/jeremy/partners/OpenCores/cvstrees/or1k/or1ksim/build
+CC = gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS = -g -O2
+CPP = gcc -E
+CPPFLAGS =
+CPU_ARCH = or32
+CXX = g++
+CXXCPP = g++ -E
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -g -O2
+CYGPATH_W = echo
+DEBUGFLAGS = -DNDEBUG
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+ECHO = echo
+ECHO_C =
+ECHO_N = -n
+ECHO_T =
+EGREP = /bin/grep -E
+EXEEXT =
+F77 = gfortran
+FFLAGS = -g -O2
+GREP = /bin/grep
+INCLUDES = -I${top_builddir}/cpu/or32 -I${top_srcdir} -I${top_srcdir}/cpu/common -I${top_srcdir}/cpu/or1k -I${top_srcdir}/cache -I${top_srcdir}/mmu -I${top_srcdir}/bpb -I${top_srcdir}/peripheral -I${top_srcdir}/tick -I${top_srcdir}/peripheral/channels -I${top_srcdir}/pm -I${top_srcdir}/pic -I${top_srcdir}/debug -I${top_srcdir}/vapi -I${top_srcdir}/support -I${top_srcdir}/cuc -I${top_srcdir}/port -I${top_srcdir}/argtable2
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+LDFLAGS =
+LIBOBJS =
+LIBS = -lreadline
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LN_S = ln -s
+LOCAL_CFLAGS =
+LOCAL_DEFS =
+LOCAL_LDFLAGS =
+LTLIBOBJS =
+MAKEINFO = ${SHELL} /home/jeremy/partners/OpenCores/cvstrees/or1k/or1ksim/missing --run makeinfo
+MAKE_SHELL = /bin/sh
+MKDIR_P = /bin/mkdir -p
+OBJEXT = o
+PACKAGE = or1ksim
+PACKAGE_BUGREPORT = openrisc@opencores.org
+PACKAGE_NAME = or1ksim
+PACKAGE_STRING = or1ksim 0.3.0rc1
+PACKAGE_TARNAME = or1ksim
+PACKAGE_VERSION = 0.3.0rc1
+PATH_SEPARATOR = :
+POW_LIB =
+RANLIB = ranlib
+SED = /bin/sed
+SET_MAKE =
+SHELL = /bin/sh
+STRIP = strip
+SUMVERSION =
+TERMCAP_LIB =
+VERSION = 0.3.0rc1
+abs_builddir = /home/jeremy/partners/OpenCores/cvstrees/or1k/or1ksim/build/cpu/or32
+abs_srcdir = /home/jeremy/partners/OpenCores/cvstrees/or1k/or1ksim/build/../cpu/or32
+abs_top_builddir = /home/jeremy/partners/OpenCores/cvstrees/or1k/or1ksim/build
+abs_top_srcdir = /home/jeremy/partners/OpenCores/cvstrees/or1k/or1ksim/build/..
+ac_ct_CC = gcc
+ac_ct_CXX = g++
+ac_ct_F77 = gfortran
+am__include = include
+am__leading_dot = .
+am__quote =
+am__tar = ${AMTAR} chof - "$$tardir"
+am__untar = ${AMTAR} xf -
+bindir = ${exec_prefix}/bin
+build = i686-pc-linux-gnu
+build_alias =
+build_cpu = i686
+build_os = linux-gnu
+build_vendor = pc
+builddir = .
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+host = i686-pc-linux-gnu
+host_alias =
+host_cpu = i686
+host_os = linux-gnu
+host_vendor = pc
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = $(SHELL) /home/jeremy/partners/OpenCores/cvstrees/or1k/or1ksim/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = /bin/mkdir -p
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+prefix = /opt/or1ksim
+program_transform_name = s&^&or32-uclinux-&
+psdir = ${docdir}
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = ../../../cpu/or32
+sysconfdir = ${prefix}/etc
+target = or32-unknown-uclinux
+target_alias = or32-uclinux
+target_cpu = or32
+target_os = uclinux
+target_vendor = unknown
+top_builddir = ../..
+top_srcdir = ../../..
+noinst_LTLIBRARIES = libarch.la
+#noinst_LTLIBRARIES = libarch.la libop.la
+#dyngen_SOURCES = dyngen.c \
+# dyngen-i386.c \
+# dyngen-elf.c \
+# common-i386.h \
+# dyn32-defs.h \
+# dyngen.h \
+# dyn-rec.h \
+# i386-regs.h \
+# op-arith-op.h \
+# op-comp-op.h \
+# op-extend-op.h \
+# op-ff1-op.h \
+# op-i386.h \
+# op-lwhb-op.h \
+# op-mac-op.h \
+# op-mftspr-op.h \
+# op-support.h \
+# op-swhb-op.h \
+# op-t-reg-mov-op.h \
+# rec-i386.h \
+# sched-i386.h \
+# simpl32-defs.h
+
+#dyngen_CFLAGS = $(AM_CFLAGS)
+#libarch_la_SOURCES = execute.c \
+# insnset.c \
+# or32.c \
+# common-i386.h \
+# dyn32-defs.h \
+# dyngen.h \
+# dyn-rec.h \
+# i386-regs.h \
+# op-arith-op.h \
+# op-comp-op.h \
+# op-extend-op.h \
+# op-ff1-op.h \
+# op-i386.h \
+# op-lwhb-op.h \
+# op-mac-op.h \
+# op-mftspr-op.h \
+# op-support.h \
+# op-swhb-op.h \
+# op-t-reg-mov-op.h \
+# rec-i386.h \
+# sched-i386.h \
+# simpl32-defs.h
+
+libarch_la_SOURCES = execute.c \
+ or32.c \
+ common-i386.h \
+ dyn32-defs.h \
+ dyngen.h \
+ dyn-rec.h \
+ i386-regs.h \
+ op-arith-op.h \
+ op-comp-op.h \
+ op-extend-op.h \
+ op-ff1-op.h \
+ op-i386.h \
+ op-lwhb-op.h \
+ op-mac-op.h \
+ op-mftspr-op.h \
+ op-support.h \
+ op-swhb-op.h \
+ op-t-reg-mov-op.h \
+ rec-i386.h \
+ sched-i386.h \
+ simpl32-defs.h
+
+#libarch_la_SOURCES = execute.c \
+# or32.c \
+# op.c \
+# dyn-rec.c \
+# op-support.c \
+# common-i386.h \
+# dyn32-defs.h \
+# dyngen.h \
+# dyn-rec.h \
+# i386-regs.h \
+# op-arith-op.h \
+# op-comp-op.h \
+# op-extend-op.h \
+# op-ff1-op.h \
+# op-i386.h \
+# op-lwhb-op.h \
+# op-mac-op.h \
+# op-mftspr-op.h \
+# op-support.h \
+# op-swhb-op.h \
+# op-t-reg-mov-op.h \
+# rec-i386.h \
+# sched-i386.h \
+# simpl32-defs.h
+
+#nodist_libarch_la_SOURCES = gen-ops.h \
+# gen-ops.c \
+# gen-ops-gen.c \
+# gen-ops-rel.c
+
+BUILT_SOURCES = execgen.c
+#BUILT_SOURCES = gen-ops.h \
+# gen-ops.c \
+# gen-ops-gen.c \
+# gen-ops-rel.c
+
+#libop_la_SOURCES = op.c \
+# op-t-reg-mov-op.h \
+# op-i386.h op-arith-op.h \
+# op-comp-op.h \
+# op-extend-op.h \
+# op-mac-op.h \
+# op-mftspr-op.h \
+# op-lwhb-op.h \
+# op-swhb-op.h
+
+#libop_la_CFLAGS = -Wall -fomit-frame-pointer -fno-reorder-blocks -O2
+EXTRA_DIST = insnset.c
+generate_SOURCES = or32.c \
+ generate.c \
+ common-i386.h \
+ dyn32-defs.h \
+ dyngen.h \
+ dyn-rec.h \
+ i386-regs.h \
+ op-arith-op.h \
+ op-comp-op.h \
+ op-extend-op.h \
+ op-ff1-op.h \
+ op-i386.h \
+ op-lwhb-op.h \
+ op-mac-op.h \
+ op-mftspr-op.h \
+ op-support.h \
+ op-swhb-op.h \
+ op-t-reg-mov-op.h \
+ rec-i386.h \
+ sched-i386.h \
+ simpl32-defs.h
+
+generate_CFLAGS = $(AM_CFLAGS)
+
+# If the simulator was first built without --enable-simple and then with it,
+# then also remove these two files
+CLEANFILES = execgen.c \
+ generate \
+ gen-ops.c \
+ gen-ops.h \
+ gen-ops-rel.c \
+ gen-ops-gen.c
+
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu cpu/or32/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu cpu/or32/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+clean-noinstLTLIBRARIES:
+ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+ @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+libarch.la: $(libarch_la_OBJECTS) $(libarch_la_DEPENDENCIES)
+ $(LINK) $(am_libarch_la_rpath) $(libarch_la_OBJECTS) $(libarch_la_LIBADD) $(LIBS)
+libop.la: $(libop_la_OBJECTS) $(libop_la_DEPENDENCIES)
+ $(libop_la_LINK) $(am_libop_la_rpath) $(libop_la_OBJECTS) $(libop_la_LIBADD) $(LIBS)
+
+clean-noinstPROGRAMS:
+ @list='$(noinst_PROGRAMS)'; for p in $$list; do \
+ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f $$p $$f"; \
+ rm -f $$p $$f ; \
+ done
+dyngen$(EXEEXT): $(dyngen_OBJECTS) $(dyngen_DEPENDENCIES)
+ @rm -f dyngen$(EXEEXT)
+ $(dyngen_LINK) $(dyngen_OBJECTS) $(dyngen_LDADD) $(LIBS)
+generate$(EXEEXT): $(generate_OBJECTS) $(generate_DEPENDENCIES)
+ @rm -f generate$(EXEEXT)
+ $(generate_LINK) $(generate_OBJECTS) $(generate_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+include ./$(DEPDIR)/dyn-rec.Plo
+include ./$(DEPDIR)/dyngen-dyngen-elf.Po
+include ./$(DEPDIR)/dyngen-dyngen-i386.Po
+include ./$(DEPDIR)/dyngen-dyngen.Po
+include ./$(DEPDIR)/execute.Plo
+include ./$(DEPDIR)/gen-ops-gen.Plo
+include ./$(DEPDIR)/gen-ops-rel.Plo
+include ./$(DEPDIR)/gen-ops.Plo
+include ./$(DEPDIR)/generate-generate.Po
+include ./$(DEPDIR)/generate-or32.Po
+include ./$(DEPDIR)/insnset.Plo
+include ./$(DEPDIR)/libop_la-op.Plo
+include ./$(DEPDIR)/op-support.Plo
+include ./$(DEPDIR)/op.Plo
+include ./$(DEPDIR)/or32.Plo
+
+.c.o:
+ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+# source='$<' object='$@' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(COMPILE) -c $<
+
+.c.obj:
+ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+# source='$<' object='$@' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+# source='$<' object='$@' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(LTCOMPILE) -c -o $@ $<
+
+libop_la-op.lo: op.c
+ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libop_la_CFLAGS) $(CFLAGS) -MT libop_la-op.lo -MD -MP -MF $(DEPDIR)/libop_la-op.Tpo -c -o libop_la-op.lo `test -f 'op.c' || echo '$(srcdir)/'`op.c
+ mv -f $(DEPDIR)/libop_la-op.Tpo $(DEPDIR)/libop_la-op.Plo
+# source='op.c' object='libop_la-op.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libop_la_CFLAGS) $(CFLAGS) -c -o libop_la-op.lo `test -f 'op.c' || echo '$(srcdir)/'`op.c
+
+dyngen-dyngen.o: dyngen.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dyngen_CFLAGS) $(CFLAGS) -MT dyngen-dyngen.o -MD -MP -MF $(DEPDIR)/dyngen-dyngen.Tpo -c -o dyngen-dyngen.o `test -f 'dyngen.c' || echo '$(srcdir)/'`dyngen.c
+ mv -f $(DEPDIR)/dyngen-dyngen.Tpo $(DEPDIR)/dyngen-dyngen.Po
+# source='dyngen.c' object='dyngen-dyngen.o' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dyngen_CFLAGS) $(CFLAGS) -c -o dyngen-dyngen.o `test -f 'dyngen.c' || echo '$(srcdir)/'`dyngen.c
+
+dyngen-dyngen.obj: dyngen.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dyngen_CFLAGS) $(CFLAGS) -MT dyngen-dyngen.obj -MD -MP -MF $(DEPDIR)/dyngen-dyngen.Tpo -c -o dyngen-dyngen.obj `if test -f 'dyngen.c'; then $(CYGPATH_W) 'dyngen.c'; else $(CYGPATH_W) '$(srcdir)/dyngen.c'; fi`
+ mv -f $(DEPDIR)/dyngen-dyngen.Tpo $(DEPDIR)/dyngen-dyngen.Po
+# source='dyngen.c' object='dyngen-dyngen.obj' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dyngen_CFLAGS) $(CFLAGS) -c -o dyngen-dyngen.obj `if test -f 'dyngen.c'; then $(CYGPATH_W) 'dyngen.c'; else $(CYGPATH_W) '$(srcdir)/dyngen.c'; fi`
+
+dyngen-dyngen-i386.o: dyngen-i386.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dyngen_CFLAGS) $(CFLAGS) -MT dyngen-dyngen-i386.o -MD -MP -MF $(DEPDIR)/dyngen-dyngen-i386.Tpo -c -o dyngen-dyngen-i386.o `test -f 'dyngen-i386.c' || echo '$(srcdir)/'`dyngen-i386.c
+ mv -f $(DEPDIR)/dyngen-dyngen-i386.Tpo $(DEPDIR)/dyngen-dyngen-i386.Po
+# source='dyngen-i386.c' object='dyngen-dyngen-i386.o' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dyngen_CFLAGS) $(CFLAGS) -c -o dyngen-dyngen-i386.o `test -f 'dyngen-i386.c' || echo '$(srcdir)/'`dyngen-i386.c
+
+dyngen-dyngen-i386.obj: dyngen-i386.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dyngen_CFLAGS) $(CFLAGS) -MT dyngen-dyngen-i386.obj -MD -MP -MF $(DEPDIR)/dyngen-dyngen-i386.Tpo -c -o dyngen-dyngen-i386.obj `if test -f 'dyngen-i386.c'; then $(CYGPATH_W) 'dyngen-i386.c'; else $(CYGPATH_W) '$(srcdir)/dyngen-i386.c'; fi`
+ mv -f $(DEPDIR)/dyngen-dyngen-i386.Tpo $(DEPDIR)/dyngen-dyngen-i386.Po
+# source='dyngen-i386.c' object='dyngen-dyngen-i386.obj' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dyngen_CFLAGS) $(CFLAGS) -c -o dyngen-dyngen-i386.obj `if test -f 'dyngen-i386.c'; then $(CYGPATH_W) 'dyngen-i386.c'; else $(CYGPATH_W) '$(srcdir)/dyngen-i386.c'; fi`
+
+dyngen-dyngen-elf.o: dyngen-elf.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dyngen_CFLAGS) $(CFLAGS) -MT dyngen-dyngen-elf.o -MD -MP -MF $(DEPDIR)/dyngen-dyngen-elf.Tpo -c -o dyngen-dyngen-elf.o `test -f 'dyngen-elf.c' || echo '$(srcdir)/'`dyngen-elf.c
+ mv -f $(DEPDIR)/dyngen-dyngen-elf.Tpo $(DEPDIR)/dyngen-dyngen-elf.Po
+# source='dyngen-elf.c' object='dyngen-dyngen-elf.o' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dyngen_CFLAGS) $(CFLAGS) -c -o dyngen-dyngen-elf.o `test -f 'dyngen-elf.c' || echo '$(srcdir)/'`dyngen-elf.c
+
+dyngen-dyngen-elf.obj: dyngen-elf.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dyngen_CFLAGS) $(CFLAGS) -MT dyngen-dyngen-elf.obj -MD -MP -MF $(DEPDIR)/dyngen-dyngen-elf.Tpo -c -o dyngen-dyngen-elf.obj `if test -f 'dyngen-elf.c'; then $(CYGPATH_W) 'dyngen-elf.c'; else $(CYGPATH_W) '$(srcdir)/dyngen-elf.c'; fi`
+ mv -f $(DEPDIR)/dyngen-dyngen-elf.Tpo $(DEPDIR)/dyngen-dyngen-elf.Po
+# source='dyngen-elf.c' object='dyngen-dyngen-elf.obj' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dyngen_CFLAGS) $(CFLAGS) -c -o dyngen-dyngen-elf.obj `if test -f 'dyngen-elf.c'; then $(CYGPATH_W) 'dyngen-elf.c'; else $(CYGPATH_W) '$(srcdir)/dyngen-elf.c'; fi`
+
+generate-or32.o: or32.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(generate_CFLAGS) $(CFLAGS) -MT generate-or32.o -MD -MP -MF $(DEPDIR)/generate-or32.Tpo -c -o generate-or32.o `test -f 'or32.c' || echo '$(srcdir)/'`or32.c
+ mv -f $(DEPDIR)/generate-or32.Tpo $(DEPDIR)/generate-or32.Po
+# source='or32.c' object='generate-or32.o' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(generate_CFLAGS) $(CFLAGS) -c -o generate-or32.o `test -f 'or32.c' || echo '$(srcdir)/'`or32.c
+
+generate-or32.obj: or32.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(generate_CFLAGS) $(CFLAGS) -MT generate-or32.obj -MD -MP -MF $(DEPDIR)/generate-or32.Tpo -c -o generate-or32.obj `if test -f 'or32.c'; then $(CYGPATH_W) 'or32.c'; else $(CYGPATH_W) '$(srcdir)/or32.c'; fi`
+ mv -f $(DEPDIR)/generate-or32.Tpo $(DEPDIR)/generate-or32.Po
+# source='or32.c' object='generate-or32.obj' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(generate_CFLAGS) $(CFLAGS) -c -o generate-or32.obj `if test -f 'or32.c'; then $(CYGPATH_W) 'or32.c'; else $(CYGPATH_W) '$(srcdir)/or32.c'; fi`
+
+generate-generate.o: generate.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(generate_CFLAGS) $(CFLAGS) -MT generate-generate.o -MD -MP -MF $(DEPDIR)/generate-generate.Tpo -c -o generate-generate.o `test -f 'generate.c' || echo '$(srcdir)/'`generate.c
+ mv -f $(DEPDIR)/generate-generate.Tpo $(DEPDIR)/generate-generate.Po
+# source='generate.c' object='generate-generate.o' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(generate_CFLAGS) $(CFLAGS) -c -o generate-generate.o `test -f 'generate.c' || echo '$(srcdir)/'`generate.c
+
+generate-generate.obj: generate.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(generate_CFLAGS) $(CFLAGS) -MT generate-generate.obj -MD -MP -MF $(DEPDIR)/generate-generate.Tpo -c -o generate-generate.obj `if test -f 'generate.c'; then $(CYGPATH_W) 'generate.c'; else $(CYGPATH_W) '$(srcdir)/generate.c'; fi`
+ mv -f $(DEPDIR)/generate-generate.Tpo $(DEPDIR)/generate-generate.Po
+# source='generate.c' object='generate-generate.obj' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(generate_CFLAGS) $(CFLAGS) -c -o generate-generate.obj `if test -f 'generate.c'; then $(CYGPATH_W) 'generate.c'; else $(CYGPATH_W) '$(srcdir)/generate.c'; fi`
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LTLIBRARIES) $(PROGRAMS)
+installdirs:
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+ clean-noinstPROGRAMS mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-noinstLTLIBRARIES clean-noinstPROGRAMS \
+ ctags distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags uninstall uninstall-am
+
+
+#gen-ops.h gen-ops.c gen-ops-gen.c gen-ops-rel.c: dyngen$(EXEEXT) op.lo
+# ./dyngen$(EXEEXT) op.lo gen-ops.c gen-ops-gen.c gen-ops-rel.c gen-ops.h
+
+execgen.c: generate$(EXEEXT) insnset.c
+ ./generate$(EXEEXT) $(srcdir)/insnset.c execgen.c
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
Makefile
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property