Ejemplo n.º 1
0
Pnode Confinement::item(Pnode ts)
{
    Token tok = ts->tok();

    Pnode cnst(new Cnst(tok, ts, Cnst::eTsnum));
    Pnode term(new Term(tok, cnst, Term::eCnst));

    Expr * r_expr = new Expr(tok);
    r_expr->typ = Expr::eTerm;
    r_expr->addChild(term);
    Pnode expr(r_expr);

    Item * r_item = new Item(tok);
    r_item->typ = Item::eExpr;
    r_item->addChild(expr);
    Pnode itm(r_item);

    return itm;
}
Ejemplo n.º 2
0
void
main(
int argc,
char *argv[],
char *envp[])
{
    int32_t i, j;

	for(i = 0; i < NUMOPCODES - 1; i++){
	    printf("\t%s\t", m88k_opcodes[i].name);
	    if(m88k_opcodes[i].op[0].type == NIL)
		printf("\n");
	    for(j = 0; j < 3 && m88k_opcodes[i].op[j].type != NIL; j++){
		switch(m88k_opcodes[i].op[j].type){
		case CNST:
#ifdef SIGNED_IMMEDIATES
		case SCNST:
#endif
		    printf("0x%04x", cnst() );
		    break;
		case REG:
		    printf("r%d", reg() );
		    break;
		case BF:
		    printf("%d<%d>", reg(), reg() );
		    break;
		case REGSC:
		    printf("[r%d]", reg() );
		    break;
		case CRREG:
		    printf("cr%d", creg() );
		    break;
		case FCRREG:
		    printf("fcr%d", creg() );
		    break;
		case PCREL:
		    printf("undef");
		    break;
		case CONDMASK:
		    print_cond();
		    break;
		case CMPRSLT:
		    print_cmp();
		    break;
		case ROT:
		    printf("<%d>", reg() );
		    break;
		case E4ROT:
		    printf("<%d>", creg() & ~0x3);
		    break;
		case EREG:
		    printf("r%d", reg() & ~0x1);
		    break;
		case XREG:
		    printf("x%d", reg());
		    break;
		}
		if(j == 2 || m88k_opcodes[i].op[j+1].type == NIL)
		    printf("\n");
		else if(m88k_opcodes[i].op[j+1].type != REGSC)
		    printf(",");
	    }
	}
}