comparison lwasm/pseudo.c @ 350:f5666775d76f

Even more pseudo ops
author lost@starbug
date Sat, 27 Mar 2010 22:59:15 -0600
parents dcd2978a7d18
children 4dba8c7e242c
comparison
equal deleted inserted replaced
349:dcd2978a7d18 350:f5666775d76f
504 } 504 }
505 505
506 for (i = 0; i < l -> len; i++) 506 for (i = 0; i < l -> len; i++)
507 lwasm_emit(l, 0); 507 lwasm_emit(l, 0);
508 } 508 }
509
510 PARSEFUNC(pseudo_parse_org)
511 {
512 lw_expr_t e;
513
514 e = lwasm_parse_expr(as, p);
515 if (!e)
516 {
517 lwasm_register_error(as, l, "Bad operand");
518 return;
519 }
520
521 lw_expr_destroy(l -> addr);
522 l -> addr = e;
523 l -> len = 0;
524 }
525
526 PARSEFUNC(pseudo_parse_equ)
527 {
528 lw_expr_t e;
529
530 if (!(l -> sym))
531 {
532 lwasm_register_error(as, l, "Missing symbol");
533 return;
534 }
535
536 e = lwasm_parse_expr(as, p);
537 if (!e)
538 {
539 lwasm_register_error(as, l, "Bad operand");
540 return;
541 }
542
543 register_symbol(as, l, l -> sym, e, symbol_flag_none);
544 l -> symset = 1;
545 }