Mercurial > hg-old > index.cgi
comparison lwasm/pseudo.c @ 387:a741d2e4869f
Various bugfixes; fixed lwobjdump to display symbols with unprintable characters more sensibly; start of a (nonfunctional for now) testing framework
author | lost@l-w.ca |
---|---|
date | Wed, 14 Jul 2010 20:15:23 -0600 |
parents | af5f2c51db76 |
children | fbb7bfed8076 |
comparison
equal
deleted
inserted
replaced
386:af5f2c51db76 | 387:a741d2e4869f |
---|---|
655 as -> skipcount++; | 655 as -> skipcount++; |
656 skip_operand(p); | 656 skip_operand(p); |
657 return; | 657 return; |
658 } | 658 } |
659 | 659 |
660 e = lwasm_parse_expr(as, p); | 660 e = lwasm_parse_cond(as, p); |
661 if (!e) | 661 if (e && lw_expr_intval(e) != 0) |
662 { | |
663 lwasm_register_error(as, l, "Bad expression"); | |
664 return; | |
665 } | |
666 if (!lw_expr_istype(e, lw_expr_type_int)) | |
667 { | |
668 lwasm_register_error(as, l, "Conditions must be constant on pass 1"); | |
669 return; | |
670 } | |
671 if (lw_expr_intval(e) != 0) | |
672 { | 662 { |
673 as -> skipcond = 1; | 663 as -> skipcond = 1; |
674 as -> skipcount = 1; | 664 as -> skipcount = 1; |
675 } | 665 } |
676 } | 666 } |
686 as -> skipcount++; | 676 as -> skipcount++; |
687 skip_operand(p); | 677 skip_operand(p); |
688 return; | 678 return; |
689 } | 679 } |
690 | 680 |
691 e = lwasm_parse_expr(as, p); | 681 e = lwasm_parse_cond(as, p); |
692 if (!e) | 682 if (e && lw_expr_intval(e) == 0) |
693 { | |
694 lwasm_register_error(as, l, "Bad expression"); | |
695 return; | |
696 } | |
697 if (!lw_expr_istype(e, lw_expr_type_int)) | |
698 { | |
699 lwasm_register_error(as, l, "Conditions must be constant on pass 1"); | |
700 return; | |
701 } | |
702 if (lw_expr_intval(e) == 0) | |
703 { | 683 { |
704 as -> skipcond = 1; | 684 as -> skipcond = 1; |
705 as -> skipcount = 1; | 685 as -> skipcount = 1; |
706 } | 686 } |
707 } | 687 } |
718 as -> skipcount++; | 698 as -> skipcount++; |
719 skip_operand(p); | 699 skip_operand(p); |
720 return; | 700 return; |
721 } | 701 } |
722 | 702 |
723 e = lwasm_parse_expr(as, p); | 703 e = lwasm_parse_cond(as, p); |
724 if (!e) | 704 if (e && lw_expr_intval(e) <= 0) |
725 { | |
726 lwasm_register_error(as, l, "Bad expression"); | |
727 return; | |
728 } | |
729 if (!lw_expr_istype(e, lw_expr_type_int)) | |
730 { | |
731 lwasm_register_error(as, l, "Conditions must be constant on pass 1"); | |
732 return; | |
733 } | |
734 if (lw_expr_intval(e) <= 0) | |
735 { | 705 { |
736 as -> skipcond = 1; | 706 as -> skipcond = 1; |
737 as -> skipcount = 1; | 707 as -> skipcount = 1; |
738 } | 708 } |
739 } | 709 } |
749 as -> skipcount++; | 719 as -> skipcount++; |
750 skip_operand(p); | 720 skip_operand(p); |
751 return; | 721 return; |
752 } | 722 } |
753 | 723 |
754 e = lwasm_parse_expr(as, p); | 724 e = lwasm_parse_cond(as, p); |
755 if (!e) | 725 if (e && lw_expr_intval(e) < 0) |
756 { | |
757 lwasm_register_error(as, l, "Bad expression"); | |
758 return; | |
759 } | |
760 if (!lw_expr_istype(e, lw_expr_type_int)) | |
761 { | |
762 lwasm_register_error(as, l, "Conditions must be constant on pass 1"); | |
763 return; | |
764 } | |
765 if (lw_expr_intval(e) < 0) | |
766 { | 726 { |
767 as -> skipcond = 1; | 727 as -> skipcond = 1; |
768 as -> skipcount = 1; | 728 as -> skipcount = 1; |
769 } | 729 } |
770 } | 730 } |
780 as -> skipcount++; | 740 as -> skipcount++; |
781 skip_operand(p); | 741 skip_operand(p); |
782 return; | 742 return; |
783 } | 743 } |
784 | 744 |
785 e = lwasm_parse_expr(as, p); | 745 e = lwasm_parse_cond(as, p); |
786 if (!e) | 746 if (e && lw_expr_intval(e) >= 0) |
787 { | |
788 lwasm_register_error(as, l, "Bad expression"); | |
789 return; | |
790 } | |
791 if (!lw_expr_istype(e, lw_expr_type_int)) | |
792 { | |
793 lwasm_register_error(as, l, "Conditions must be constant on pass 1"); | |
794 return; | |
795 } | |
796 if (lw_expr_intval(e) >= 0) | |
797 { | 747 { |
798 as -> skipcond = 1; | 748 as -> skipcond = 1; |
799 as -> skipcount = 1; | 749 as -> skipcount = 1; |
800 } | 750 } |
801 } | 751 } |
811 as -> skipcount++; | 761 as -> skipcount++; |
812 skip_operand(p); | 762 skip_operand(p); |
813 return; | 763 return; |
814 } | 764 } |
815 | 765 |
816 e = lwasm_parse_expr(as, p); | 766 e = lwasm_parse_cond(as, p); |
817 if (!e) | 767 if (e && lw_expr_intval(e) > 0) |
818 { | |
819 lwasm_register_error(as, l, "Bad expression"); | |
820 return; | |
821 } | |
822 if (!lw_expr_istype(e, lw_expr_type_int)) | |
823 { | |
824 lwasm_register_error(as, l, "Conditions must be constant on pass 1"); | |
825 return; | |
826 } | |
827 if (lw_expr_intval(e) > 0) | |
828 { | 768 { |
829 as -> skipcond = 1; | 769 as -> skipcond = 1; |
830 as -> skipcount = 1; | 770 as -> skipcount = 1; |
831 } | 771 } |
832 } | 772 } |