comparison lwasm/instab.c @ 347:1649bc7bda5a

Some data oriented pseudo ops added
author lost@starbug
date Sat, 27 Mar 2010 20:16:24 -0600
parents a82c55070624
children 11a95c6414b4
comparison
equal deleted inserted replaced
346:a82c55070624 347:1649bc7bda5a
36 36
37 // ENDM pseudo op 37 // ENDM pseudo op
38 extern PARSEFUNC(pseudo_parse_endm); 38 extern PARSEFUNC(pseudo_parse_endm);
39 #define pseudo_resolve_endm NULL 39 #define pseudo_resolve_endm NULL
40 40
41 extern PARSEFUNC(pseudo_parse_noop);
42 extern RESOLVEFUNC(pseudo_resolve_noop);
43
44 extern PARSEFUNC(pseudo_parse_end);
45 extern RESOLVEFUNC(pseudo_resolve_end);
41 46
42 extern PARSEFUNC(insn_parse_gen8); 47 extern PARSEFUNC(insn_parse_gen8);
43 extern RESOLVEFUNC(insn_resolve_gen8); 48 extern RESOLVEFUNC(insn_resolve_gen8);
44 extern PARSEFUNC(insn_parse_gen16); 49 extern PARSEFUNC(insn_parse_gen16);
45 extern RESOLVEFUNC(insn_resolve_gen16); 50 extern RESOLVEFUNC(insn_resolve_gen16);
84 extern RESOLVEFUNC(pseudo_resolve_zmd); 89 extern RESOLVEFUNC(pseudo_resolve_zmd);
85 extern PARSEFUNC(pseudo_parse_zmq); 90 extern PARSEFUNC(pseudo_parse_zmq);
86 extern RESOLVEFUNC(pseudo_resolve_zmq); 91 extern RESOLVEFUNC(pseudo_resolve_zmq);
87 extern PARSEFUNC(pseudo_parse_include); 92 extern PARSEFUNC(pseudo_parse_include);
88 extern RESOLVEFUNC(pseudo_resolve_include); 93 extern RESOLVEFUNC(pseudo_resolve_include);
89 extern PARSEFUNC(pseudo_parse_end);
90 extern RESOLVEFUNC(pseudo_resolve_end);
91 extern PARSEFUNC(pseudo_parse_align); 94 extern PARSEFUNC(pseudo_parse_align);
92 extern RESOLVEFUNC(pseudo_resolve_align); 95 extern RESOLVEFUNC(pseudo_resolve_align);
93 extern PARSEFUNC(pseudo_parse_error); 96 extern PARSEFUNC(pseudo_parse_error);
94 extern RESOLVEFUNC(pseudo_resolve_error); 97 extern RESOLVEFUNC(pseudo_resolve_error);
95 extern PARSEFUNC(pseudo_parse_fcc); 98 extern PARSEFUNC(pseudo_parse_fcc);
142 extern RESOLVEFUNC(pseudo_resolve_export); 145 extern RESOLVEFUNC(pseudo_resolve_export);
143 extern PARSEFUNC(pseudo_parse_ifdef); 146 extern PARSEFUNC(pseudo_parse_ifdef);
144 extern RESOLVEFUNC(pseudo_resolve_ifdef); 147 extern RESOLVEFUNC(pseudo_resolve_ifdef);
145 extern PARSEFUNC(pseudo_parse_ifndef); 148 extern PARSEFUNC(pseudo_parse_ifndef);
146 extern RESOLVEFUNC(pseudo_resolve_ifndef); 149 extern RESOLVEFUNC(pseudo_resolve_ifndef);
147 extern PARSEFUNC(pseudo_parse_noop);
148 extern RESOLVEFUNC(pseudo_resolve_noop);
149 extern PARSEFUNC(pseudo_parse_includebin); 150 extern PARSEFUNC(pseudo_parse_includebin);
150 extern RESOLVEFUNC(pseudo_resolve_includebin); 151 extern RESOLVEFUNC(pseudo_resolve_includebin);
151 152
152 extern PARSEFUNC(pseudo_parse_os9); 153 extern PARSEFUNC(pseudo_parse_os9);
153 extern RESOLVEFUNC(pseudo_resolve_os9); 154 extern RESOLVEFUNC(pseudo_resolve_os9);
435 { "zmq", { -1, -1, -1, -1 }, pseudo_parse_zmq, pseudo_resolve_zmq, lwasm_insn_normal}, 436 { "zmq", { -1, -1, -1, -1 }, pseudo_parse_zmq, pseudo_resolve_zmq, lwasm_insn_normal},
436 437
437 { "fcc", { -1, -1, -1, -1 }, pseudo_parse_fcc, pseudo_resolve_fcc, lwasm_insn_normal}, 438 { "fcc", { -1, -1, -1, -1 }, pseudo_parse_fcc, pseudo_resolve_fcc, lwasm_insn_normal},
438 { "fcn", { -1, -1, -1, -1 }, pseudo_parse_fcn, pseudo_resolve_fcn, lwasm_insn_normal}, 439 { "fcn", { -1, -1, -1, -1 }, pseudo_parse_fcn, pseudo_resolve_fcn, lwasm_insn_normal},
439 { "fcs", { -1, -1, -1, -1 }, pseudo_parse_fcs, pseudo_resolve_fcs, lwasm_insn_normal}, 440 { "fcs", { -1, -1, -1, -1 }, pseudo_parse_fcs, pseudo_resolve_fcs, lwasm_insn_normal},
440 441 */
441 { "fcb", { -1, -1, -1, -1 }, pseudo_parse_fcb, pseudo_resolve_fcb, lwasm_insn_normal}, 442 { "fcb", { -1, -1, -1, -1 }, pseudo_parse_fcb, pseudo_resolve_fcb, lwasm_insn_normal},
442 { "fdb", { -1, -1, -1, -1 }, pseudo_parse_fdb, pseudo_resolve_fdb, lwasm_insn_normal}, 443 { "fdb", { -1, -1, -1, -1 }, pseudo_parse_fdb, pseudo_resolve_fdb, lwasm_insn_normal},
443 { "fqb", { -1, -1, -1, -1 }, pseudo_parse_fqb, pseudo_resolve_fqb, lwasm_insn_normal}, 444 { "fqb", { -1, -1, -1, -1 }, pseudo_parse_fqb, pseudo_resolve_fqb, lwasm_insn_normal},
444
445 { "end", { -1, -1, -1, -1 }, pseudo_parse_end, pseudo_resolve_end, lwasm_insn_normal}, 445 { "end", { -1, -1, -1, -1 }, pseudo_parse_end, pseudo_resolve_end, lwasm_insn_normal},
446 446 /*
447 { "includebin", { -1, -1, -1, -1}, pseudo_parse_includebin,pseudo_resolve_includebin, lwasm_insn_normal}, 447 { "includebin", { -1, -1, -1, -1}, pseudo_parse_includebin,pseudo_resolve_includebin, lwasm_insn_normal},
448 { "include", { -1, -1, -1, -1 }, pseudo_parse_include, pseudo_resolve_include, lwasm_insn_normal}, 448 { "include", { -1, -1, -1, -1 }, pseudo_parse_include, pseudo_resolve_include, lwasm_insn_normal},
449 { "use", { -1, -1, -1, -1 }, pseudo_parse_include, pseudo_resolve_include, lwasm_insn_normal}, 449 { "use", { -1, -1, -1, -1 }, pseudo_parse_include, pseudo_resolve_include, lwasm_insn_normal},
450 450
451 { "align", { -1, -1, -1, -1 }, pseudo_parse_align, pseudo_resolve_align, lwasm_insn_normal}, 451 { "align", { -1, -1, -1, -1 }, pseudo_parse_align, pseudo_resolve_align, lwasm_insn_normal},
491 491
492 // for compatibility with gcc6809 output... 492 // for compatibility with gcc6809 output...
493 493
494 { ".area", { -1, -1, -1, -1}, pseudo_parse_section, pseudo_resolve_section, lwasm_insn_normal}, 494 { ".area", { -1, -1, -1, -1}, pseudo_parse_section, pseudo_resolve_section, lwasm_insn_normal},
495 { ".globl", { -1, -1, -1, -1}, pseudo_parse_export, pseudo_resolve_export, lwasm_insn_normal}, 495 { ".globl", { -1, -1, -1, -1}, pseudo_parse_export, pseudo_resolve_export, lwasm_insn_normal},
496 */
496 { ".module", { -1, -1, -1, -1}, pseudo_parse_noop, pseudo_resolve_noop, lwasm_insn_normal}, 497 { ".module", { -1, -1, -1, -1}, pseudo_parse_noop, pseudo_resolve_noop, lwasm_insn_normal},
497 498
498 { ".4byte", { -1, -1, -1, -1}, pseudo_parse_fqb, pseudo_resolve_fqb, lwasm_insn_normal}, 499 { ".4byte", { -1, -1, -1, -1}, pseudo_parse_fqb, pseudo_resolve_fqb, lwasm_insn_normal},
499 { ".quad", { -1, -1, -1, -1}, pseudo_parse_fqb, pseudo_resolve_fqb, lwasm_insn_normal}, 500 { ".quad", { -1, -1, -1, -1}, pseudo_parse_fqb, pseudo_resolve_fqb, lwasm_insn_normal},
500 501
501 { ".word", { -1, -1, -1, -1}, pseudo_parse_fdb, pseudo_resolve_fdb, lwasm_insn_normal}, 502 { ".word", { -1, -1, -1, -1}, pseudo_parse_fdb, pseudo_resolve_fdb, lwasm_insn_normal},
502 { ".dw", { -1, -1, -1, -1}, pseudo_parse_fdb, pseudo_resolve_fdb, lwasm_insn_normal}, 503 { ".dw", { -1, -1, -1, -1}, pseudo_parse_fdb, pseudo_resolve_fdb, lwasm_insn_normal},
503 504
504 { ".byte", { -1, -1, -1, -1}, pseudo_parse_fcb, pseudo_resolve_fcb, lwasm_insn_normal}, 505 { ".byte", { -1, -1, -1, -1}, pseudo_parse_fcb, pseudo_resolve_fcb, lwasm_insn_normal},
505 { ".db", { -1, -1, -1, -1}, pseudo_parse_fcb, pseudo_resolve_fcb, lwasm_insn_normal}, 506 { ".db", { -1, -1, -1, -1}, pseudo_parse_fcb, pseudo_resolve_fcb, lwasm_insn_normal},
506 507 /*
507 { ".ascii", { -1, -1, -1, -1}, pseudo_parse_fcc, pseudo_resolve_fcc, lwasm_insn_normal}, 508 { ".ascii", { -1, -1, -1, -1}, pseudo_parse_fcc, pseudo_resolve_fcc, lwasm_insn_normal},
508 { ".str", { -1, -1, -1, -1}, pseudo_parse_fcc, pseudo_resolve_fcc, lwasm_insn_normal}, 509 { ".str", { -1, -1, -1, -1}, pseudo_parse_fcc, pseudo_resolve_fcc, lwasm_insn_normal},
509 510
510 { ".ascis", { -1, -1, -1, -1}, pseudo_parse_fcs, pseudo_resolve_fcs, lwasm_insn_normal}, 511 { ".ascis", { -1, -1, -1, -1}, pseudo_parse_fcs, pseudo_resolve_fcs, lwasm_insn_normal},
511 { ".strs", { -1, -1, -1, -1}, pseudo_parse_fcs, pseudo_resolve_fcs, lwasm_insn_normal}, 512 { ".strs", { -1, -1, -1, -1}, pseudo_parse_fcs, pseudo_resolve_fcs, lwasm_insn_normal},
517 { ".ds", { -1, -1, -1, -1}, pseudo_parse_rmb, pseudo_resolve_rmb, lwasm_insn_normal}, 518 { ".ds", { -1, -1, -1, -1}, pseudo_parse_rmb, pseudo_resolve_rmb, lwasm_insn_normal},
518 { ".rs", { -1, -1, -1, -1}, pseudo_parse_rmb, pseudo_resolve_rmb, lwasm_insn_normal}, 519 { ".rs", { -1, -1, -1, -1}, pseudo_parse_rmb, pseudo_resolve_rmb, lwasm_insn_normal},
519 520
520 // needs to handle C escapes maybe? 521 // needs to handle C escapes maybe?
521 // { ".ascii", { -1, -1, -1, -1}, pseudo_parse_ascii, pseudo_resolve_ascii, lwasm_insn_normal}, 522 // { ".ascii", { -1, -1, -1, -1}, pseudo_parse_ascii, pseudo_resolve_ascii, lwasm_insn_normal},
523 */
522 524
523 // for compatibility 525 // for compatibility
524 { ".end", { -1, -1, -1, -1 }, pseudo_parse_end, pseudo_resolve_end, lwasm_insn_normal}, 526 { ".end", { -1, -1, -1, -1 }, pseudo_parse_end, pseudo_resolve_end, lwasm_insn_normal},
525 527
526 // extra ops that are ignored because they are generally only for 528 // extra ops that are ignored because they are generally only for
527 // pretty printing the listing 529 // pretty printing the listing
528 { "nam", { -1, -1, -1, -1 }, pseudo_parse_noop, pseudo_resolve_noop, lwasm_insn_normal}, 530 { "nam", { -1, -1, -1, -1 }, pseudo_parse_noop, pseudo_resolve_noop, lwasm_insn_normal},
529 { "pag", { -1, -1, -1, -1 }, pseudo_parse_noop, pseudo_resolve_noop, lwasm_insn_normal}, 531 { "pag", { -1, -1, -1, -1 }, pseudo_parse_noop, pseudo_resolve_noop, lwasm_insn_normal},
530 { "ttl", { -1, -1, -1, -1 }, pseudo_parse_noop, pseudo_resolve_noop, lwasm_insn_normal}, 532 { "ttl", { -1, -1, -1, -1 }, pseudo_parse_noop, pseudo_resolve_noop, lwasm_insn_normal},
531 533
532 // flag end of table 534 // flag end of table
533 */
534 { NULL, { -1, -1, -1, -1 }, NULL, NULL, lwasm_insn_normal} 535 { NULL, { -1, -1, -1, -1 }, NULL, NULL, lwasm_insn_normal}
535 }; 536 };