+Fri Apr 5 17:20:59 1996 Jeffrey A Law (law@cygnus.com)
+
+ * compile.c (decode): Use "bit" to hold L_3 immediates instead
+ of holding them in "abs". Handle ABS8MEM memory references aka
+ 8-bit area. Replace ABSMOV references with ABS8MEM.
+
+Wed Mar 13 17:43:56 1996 Jeffrey A Law (law@cygnus.com)
+
+ * compile.c (fetch): Handle accesses to the exception/function
+ vectors.
+
Mon Mar 11 09:53:25 1996 Doug Evans <dje@charmed.cygnus.com>
* compile.c: #include "wait.h".
int rdisp = 0;
int abs = 0;
int plen = 0;
+ int bit = 0;
struct h8_opcode *q = h8_opcodes;
int size = 0;
{
abs = SEXTCHAR (data[len >> 1]);
}
- else
+ else if (looking_for & ABS8MEM)
+ {
+ plen = 8;
+ abs = h8300hmode ? ~0xff0000ff : ~0xffff00ff;
+ abs |= data[len >> 1] & 0xff ;
+ }
+ else
{
abs = data[len >> 1] & 0xff;
}
{
plen = 3;
- abs = thisnib;
+ bit = thisnib;
}
else if (looking_for == E)
{
p = &(dst->src);
}
- if (x & (IMM | KBIT | DBIT))
+ if (x & (L_3))
+ {
+ p->type = X (OP_IMM, size);
+ p->literal = bit;
+ }
+ else if (x & (IMM | KBIT | DBIT))
{
p->type = X (OP_IMM, size);
p->literal = abs;
p->reg = rn & 0x7;
p->literal = 0;
}
- else if (x & (ABS | ABSJMP | ABSMOV))
+ else if (x & (ABS | ABSJMP | ABS8MEM))
{
p->type = X (OP_DISP, size);
p->literal = abs;
t &= cpu.mask;
return t;
+ case X (OP_MEM, SW):
+ t = GET_MEMORY_W (abs);
+ t &= cpu.mask;
+ return t;
+
default:
abort ();