return &b;
}
+arith C_holsize, C_bsssize;
+int C_holinit, C_bssinit;
+
C_out(p)
register struct e_instr *p;
{
switch(p->em_type) {
case EM_MNEM:
OP(p->em_opcode);
- if (em_flag[p->em_opcode] == PAR_B) {
- p->em_argtype = ilb_ptyp;
+ if (em_flag[p->em_opcode - sp_fmnem] == PAR_B &&
+ p->em_argtype == cst_ptyp) {
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();
break;
switch(p->em_argtype) {
case 0:
+ if (p->em_type == EM_MNEM && em_flag[p->em_opcode - sp_fmnem] != PAR_W) {
+ abort();
+ }
CCEND();
break;
case ilb_ptyp:
- ILB(p->em_ilb);
+ if (p->em_type == EM_MNEM) {
+ CILB(p->em_ilb);
+ }
+ else {
+ ILB(p->em_ilb);
+ }
break;
case nof_ptyp:
WCON(sp_fcon, p->em_string, p->em_size);
break;
+ default:
+ abort();
}
}
break;
case ps_bss:
+ CST(C_bsssize);
+ arg(p, 1);
+ COMMA();
+ CST((arith) C_bssinit);
+ break;
+
case ps_hol:
- CST(EM_holsize);
+ CST(C_holsize);
arg(p, 1);
COMMA();
- CST((arith) EM_holinit);
+ CST((arith) C_holinit);
break;
case ps_pro: