fixed: used wrong index in em_flag
This commit is contained in:
parent
c41f63a4c8
commit
2e932ba803
|
@ -18,6 +18,9 @@ C_alloc()
|
||||||
return &b;
|
return &b;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
arith C_holsize, C_bsssize;
|
||||||
|
int C_holinit, C_bssinit;
|
||||||
|
|
||||||
C_out(p)
|
C_out(p)
|
||||||
register struct e_instr *p;
|
register struct e_instr *p;
|
||||||
{
|
{
|
||||||
|
@ -27,11 +30,12 @@ C_out(p)
|
||||||
switch(p->em_type) {
|
switch(p->em_type) {
|
||||||
case EM_MNEM:
|
case EM_MNEM:
|
||||||
OP(p->em_opcode);
|
OP(p->em_opcode);
|
||||||
if (em_flag[p->em_opcode] == PAR_B) {
|
if (em_flag[p->em_opcode - sp_fmnem] == PAR_B &&
|
||||||
p->em_argtype = ilb_ptyp;
|
p->em_argtype == cst_ptyp) {
|
||||||
p->em_ilb = p->em_cst;
|
p->em_ilb = p->em_cst;
|
||||||
|
p->em_argtype = ilb_ptyp;
|
||||||
}
|
}
|
||||||
if (em_flag[p->em_opcode] != PAR_NO) arg(p, 0);
|
if (em_flag[p->em_opcode - sp_fmnem] != PAR_NO) arg(p, 0);
|
||||||
NL();
|
NL();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -82,11 +86,19 @@ arg(p, comma)
|
||||||
|
|
||||||
switch(p->em_argtype) {
|
switch(p->em_argtype) {
|
||||||
case 0:
|
case 0:
|
||||||
|
if (p->em_type == EM_MNEM && em_flag[p->em_opcode - sp_fmnem] != PAR_W) {
|
||||||
|
abort();
|
||||||
|
}
|
||||||
CCEND();
|
CCEND();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ilb_ptyp:
|
case ilb_ptyp:
|
||||||
ILB(p->em_ilb);
|
if (p->em_type == EM_MNEM) {
|
||||||
|
CILB(p->em_ilb);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ILB(p->em_ilb);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case nof_ptyp:
|
case nof_ptyp:
|
||||||
|
@ -121,6 +133,8 @@ arg(p, comma)
|
||||||
WCON(sp_fcon, p->em_string, p->em_size);
|
WCON(sp_fcon, p->em_string, p->em_size);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
abort();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -145,11 +159,17 @@ pseudo(p)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ps_bss:
|
case ps_bss:
|
||||||
case ps_hol:
|
CST(C_bsssize);
|
||||||
CST(EM_holsize);
|
|
||||||
arg(p, 1);
|
arg(p, 1);
|
||||||
COMMA();
|
COMMA();
|
||||||
CST((arith) EM_holinit);
|
CST((arith) C_bssinit);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ps_hol:
|
||||||
|
CST(C_holsize);
|
||||||
|
arg(p, 1);
|
||||||
|
COMMA();
|
||||||
|
CST((arith) C_holinit);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ps_pro:
|
case ps_pro:
|
||||||
|
|
Loading…
Reference in a new issue