Mercurial > pub > dyncall > dyncall
comparison doc/disas_examples/mips64.n64.disas @ 477:75c19f11b86a
- mips64 doc and more disas examples (fbsd big endian w/ -mhard-float flag)
author | Tassilo Philipp |
---|---|
date | Sun, 27 Feb 2022 13:53:18 +0100 |
parents | c0390dc85a07 |
children | cb19b2fe2422 |
comparison
equal
deleted
inserted
replaced
476:c73c59c8b553 | 477:75c19f11b86a |
---|---|
17 ; return 0; | 17 ; return 0; |
18 ; } | 18 ; } |
19 | 19 |
20 | 20 |
21 | 21 |
22 ; output from freebsd-12.0_r333647-malta_mips64elhf w/ gcc 4.2.1 | 22 ; output from freebsd-12.0_r333647-malta_mips64elhf w/ gcc 4.2.1 (*not* using hard-float) |
23 | 23 |
24 0000000000000000 <leaf_call>: | 24 0000000000000000 <leaf_call>: |
25 0: 67bdffd0 daddiu sp,sp,-48 | 25 0: 67bdffd0 daddiu sp,sp,-48 |
26 4: ffbe0028 sd s8,40(sp) | 26 4: ffbe0028 sd s8,40(sp) |
27 8: ffbc0020 sd gp,32(sp) | 27 8: ffbc0020 sd gp,32(sp) |
310 ; return 0; | 310 ; return 0; |
311 ; } | 311 ; } |
312 | 312 |
313 | 313 |
314 | 314 |
315 ; output from freebsd-12.0_r333647-malta_mips64elhf w/ gcc 4.2.1 | 315 ; output from freebsd-12.0_r333647-malta_mips64elhf w/ gcc 4.2.1 (*not* using hard-float) |
316 | 316 |
317 0000000000000000 <leaf_call>: | 317 0000000000000000 <leaf_call>: |
318 0: 67bdffd0 daddiu sp,sp,-48 | 318 0: 67bdffd0 daddiu sp,sp,-48 |
319 4: ffbe0028 sd s8,40(sp) | 319 4: ffbe0028 sd s8,40(sp) |
320 8: ffbc0020 sd gp,32(sp) | 320 8: ffbc0020 sd gp,32(sp) |
684 2a0: 03e00008 jr ra ; | | 684 2a0: 03e00008 jr ra ; | |
685 2a4: 00200825 move at,at ; | branch delay slot (effectively nop) | 685 2a4: 00200825 move at,at ; | branch delay slot (effectively nop) |
686 2a8: 00200825 move at,at ; | ? @@@ | 686 2a8: 00200825 move at,at ; | ? @@@ |
687 2ac: 00200825 move at,at ; | ? @@@ | 687 2ac: 00200825 move at,at ; | ? @@@ |
688 | 688 |
689 | |
690 | |
691 ; ---------- simple float arg (uses fp regs on hard-float) ----------> | |
692 ; | |
693 ; float f(float f) { return f; } | |
694 ; | |
695 ; int main() | |
696 ; { | |
697 ; return !!f(1324.5f); | |
698 ; } | |
699 | |
700 | |
701 | |
702 ; output from debian-sid_20150616-malta_mips64el_n64 w/ gcc 4.9.2 | |
703 | |
704 0000000000000000 <f>: | |
705 0: 67bdffe0 daddiu sp,sp,-32 | |
706 4: ffbe0018 sd s8,24(sp) | |
707 8: 03a0f02d move s8,sp | |
708 c: e7cc0000 swc1 $f12,0(s8) | |
709 10: c7c00000 lwc1 $f0,0(s8) | |
710 14: 03c0e82d move sp,s8 | |
711 18: dfbe0018 ld s8,24(sp) | |
712 1c: 67bd0020 daddiu sp,sp,32 | |
713 20: 03e00008 jr ra | |
714 24: 00200825 move at,at | |
715 | |
716 0000000000000028 <main>: | |
717 28: 67bdffe0 daddiu sp,sp,-32 | |
718 2c: ffbf0018 sd ra,24(sp) | |
719 30: ffbe0010 sd s8,16(sp) | |
720 34: ffbc0008 sd gp,8(sp) | |
721 38: 03a0f02d move s8,sp | |
722 3c: 3c1c0000 lui gp,0x0 | |
723 40: 0399e02d daddu gp,gp,t9 | |
724 44: 679c0000 daddiu gp,gp,0 | |
725 48: df820000 ld v0,0(gp) | |
726 4c: c4400000 lwc1 $f0,0(v0) | |
727 50: 46000306 mov.s $f12,$f0 | |
728 54: df820000 ld v0,0(gp) | |
729 58: 0040c82d move t9,v0 | |
730 5c: 0320f809 jalr t9 | |
731 60: 00200825 move at,at | |
732 64: 46000046 mov.s $f1,$f0 | |
733 68: 24020001 li v0,1 | |
734 6c: 44800000 mtc1 zero,$f0 | |
735 70: 46000832 c.eq.s $f1,$f0 | |
736 74: 45000002 bc1f 80 <main+0x58> | |
737 78: 00200825 move at,at | |
738 7c: 0000102d move v0,zero | |
739 80: 304200ff andi v0,v0,0xff | |
740 84: 03c0e82d move sp,s8 | |
741 88: dfbf0018 ld ra,24(sp) | |
742 8c: dfbe0010 ld s8,16(sp) | |
743 90: dfbc0008 ld gp,8(sp) | |
744 94: 67bd0020 daddiu sp,sp,32 | |
745 98: 03e00008 jr ra | |
746 9c: 00200825 move at,at | |
747 | |
748 | |
749 | |
750 ; output from freebsd-12.0_r333647-malta_mips64elhf w/ gcc 4.2.1 (*not* using hard-float) | |
751 | |
752 0000000000000000 <f>: | |
753 0: 67bdffe0 daddiu sp,sp,-32 | |
754 4: ffbe0018 sd s8,24(sp) | |
755 8: ffbc0010 sd gp,16(sp) | |
756 c: 03a0f02d move s8,sp | |
757 10: 3c1c0000 lui gp,0x0 | |
758 14: 0399e02d daddu gp,gp,t9 | |
759 18: 679c0000 daddiu gp,gp,0 | |
760 1c: afc40000 sw a0,0(s8) | |
761 20: 8fc20000 lw v0,0(s8) | |
762 24: 03c0e82d move sp,s8 | |
763 28: dfbe0018 ld s8,24(sp) | |
764 2c: dfbc0010 ld gp,16(sp) | |
765 30: 03e00008 jr ra | |
766 34: 67bd0020 daddiu sp,sp,32 | |
767 | |
768 0000000000000038 <main>: | |
769 38: 67bdffd0 daddiu sp,sp,-48 | |
770 3c: ffbf0020 sd ra,32(sp) | |
771 40: ffbe0018 sd s8,24(sp) | |
772 44: ffbc0010 sd gp,16(sp) | |
773 48: 03a0f02d move s8,sp | |
774 4c: 3c1c0000 lui gp,0x0 | |
775 50: 0399e02d daddu gp,gp,t9 | |
776 54: 679c0000 daddiu gp,gp,0 | |
777 58: df820000 ld v0,0(gp) | |
778 5c: 8c420000 lw v0,0(v0) | |
779 60: 0040202d move a0,v0 | |
780 64: df990000 ld t9,0(gp) | |
781 68: 0320f809 jalr t9 | |
782 6c: 00000000 nop | |
783 70: ffc00000 sd zero,0(s8) | |
784 74: 0040202d move a0,v0 | |
785 78: 0000282d move a1,zero | |
786 7c: df990000 ld t9,0(gp) | |
787 80: 0320f809 jalr t9 | |
788 84: 00000000 nop | |
789 88: 14400003 bnez v0,98 <main+0x60> | |
790 8c: 00000000 nop | |
791 90: 10000003 b a0 <main+0x68> | |
792 94: 00000000 nop | |
793 98: 24020001 li v0,1 | |
794 9c: ffc20000 sd v0,0(s8) | |
795 a0: dfc20000 ld v0,0(s8) | |
796 a4: 03c0e82d move sp,s8 | |
797 a8: dfbf0020 ld ra,32(sp) | |
798 ac: dfbe0018 ld s8,24(sp) | |
799 b0: dfbc0010 ld gp,16(sp) | |
800 b4: 03e00008 jr ra | |
801 b8: 67bd0030 daddiu sp,sp,48 | |
802 bc: 00000000 nop | |
803 | |
804 | |
805 | |
806 ; output from freebsd-12.0_r333647-malta_mips64ebhf w/ gcc 4.2.1 (*not* using hard-float) | |
807 | |
808 0000000000000000 <f>: | |
809 0: 67bdffe0 daddiu sp,sp,-32 | |
810 4: ffbe0018 sd s8,24(sp) | |
811 8: ffbc0010 sd gp,16(sp) | |
812 c: 03a0f02d move s8,sp | |
813 10: 3c1c0000 lui gp,0x0 | |
814 14: 0399e02d daddu gp,gp,t9 | |
815 18: 679c0000 daddiu gp,gp,0 | |
816 1c: afc40000 sw a0,0(s8) | |
817 20: 8fc20000 lw v0,0(s8) | |
818 24: 03c0e82d move sp,s8 | |
819 28: dfbe0018 ld s8,24(sp) | |
820 2c: dfbc0010 ld gp,16(sp) | |
821 30: 03e00008 jr ra | |
822 34: 67bd0020 daddiu sp,sp,32 | |
823 | |
824 0000000000000038 <main>: | |
825 38: 67bdffd0 daddiu sp,sp,-48 | |
826 3c: ffbf0020 sd ra,32(sp) | |
827 40: ffbe0018 sd s8,24(sp) | |
828 44: ffbc0010 sd gp,16(sp) | |
829 48: 03a0f02d move s8,sp | |
830 4c: 3c1c0000 lui gp,0x0 | |
831 50: 0399e02d daddu gp,gp,t9 | |
832 54: 679c0000 daddiu gp,gp,0 | |
833 58: df820000 ld v0,0(gp) | |
834 5c: 8c420000 lw v0,0(v0) | |
835 60: 0040202d move a0,v0 | |
836 64: df990000 ld t9,0(gp) | |
837 68: 0320f809 jalr t9 | |
838 6c: 00000000 nop | |
839 70: ffc00000 sd zero,0(s8) | |
840 74: 0040202d move a0,v0 | |
841 78: 0000282d move a1,zero | |
842 7c: df990000 ld t9,0(gp) | |
843 80: 0320f809 jalr t9 | |
844 84: 00000000 nop | |
845 88: 14400003 bnez v0,98 <main+0x60> | |
846 8c: 00000000 nop | |
847 90: 10000003 b a0 <main+0x68> | |
848 94: 00000000 nop | |
849 98: 24020001 li v0,1 | |
850 9c: ffc20000 sd v0,0(s8) | |
851 a0: dfc20000 ld v0,0(s8) | |
852 a4: 03c0e82d move sp,s8 | |
853 a8: dfbf0020 ld ra,32(sp) | |
854 ac: dfbe0018 ld s8,24(sp) | |
855 b0: dfbc0010 ld gp,16(sp) | |
856 b4: 03e00008 jr ra | |
857 b8: 67bd0030 daddiu sp,sp,48 | |
858 bc: 00000000 nop | |
859 | |
860 | |
861 | |
862 ; output from freebsd-12.0_r333647-malta_mips64ebhf w/ gcc 4.2.1 *and* -mhard-float | |
863 | |
864 0000000000000000 <f>: | |
865 0: 67bdffe0 daddiu sp,sp,-32 | |
866 4: ffbe0018 sd s8,24(sp) | |
867 8: ffbc0010 sd gp,16(sp) | |
868 c: 03a0f02d move s8,sp | |
869 10: 3c1c0000 lui gp,0x0 | |
870 14: 0399e02d daddu gp,gp,t9 | |
871 18: 679c0000 daddiu gp,gp,0 | |
872 1c: e7cc0000 swc1 $f12,0(s8) | |
873 20: c7c00000 lwc1 $f0,0(s8) | |
874 24: 03c0e82d move sp,s8 | |
875 28: dfbe0018 ld s8,24(sp) | |
876 2c: dfbc0010 ld gp,16(sp) | |
877 30: 03e00008 jr ra | |
878 34: 67bd0020 daddiu sp,sp,32 | |
879 | |
880 0000000000000038 <main>: | |
881 38: 67bdffd0 daddiu sp,sp,-48 | |
882 3c: ffbf0020 sd ra,32(sp) | |
883 40: ffbe0018 sd s8,24(sp) | |
884 44: ffbc0010 sd gp,16(sp) | |
885 48: 03a0f02d move s8,sp | |
886 4c: 3c1c0000 lui gp,0x0 | |
887 50: 0399e02d daddu gp,gp,t9 | |
888 54: 679c0000 daddiu gp,gp,0 | |
889 58: df810000 ld at,0(gp) | |
890 5c: c4200000 lwc1 $f0,0(at) | |
891 60: 46000306 mov.s $f12,$f0 | |
892 64: df990000 ld t9,0(gp) | |
893 68: 0320f809 jalr t9 | |
894 6c: 00000000 nop | |
895 70: 46000046 mov.s $f1,$f0 | |
896 74: 24020001 li v0,1 | |
897 78: ffc20000 sd v0,0(s8) | |
898 7c: 44800000 mtc1 zero,$f0 | |
899 80: 00000000 nop | |
900 84: 46000832 c.eq.s $f1,$f0 | |
901 88: 00000000 nop | |
902 8c: 45000002 bc1f 98 <main+0x60> | |
903 90: 00000000 nop | |
904 94: ffc00000 sd zero,0(s8) | |
905 98: dfc20000 ld v0,0(s8) | |
906 9c: 03c0e82d move sp,s8 | |
907 a0: dfbf0020 ld ra,32(sp) | |
908 a4: dfbe0018 ld s8,24(sp) | |
909 a8: dfbc0010 ld gp,16(sp) | |
910 ac: 03e00008 jr ra | |
911 b0: 67bd0030 daddiu sp,sp,48 | |
912 | |
913 | |
914 | |
915 ; ---------- structs by value ----------> | |
916 ; | |
917 ; struct A { int i, j; long long l; }; | |
918 ; | |
919 ; void leaf_call(int b, int c, int d, int e, struct A f, int g, int h) | |
920 ; { | |
921 ; } | |
922 ; | |
923 ; void nonleaf_call(int a, int b, int c, int d, int e, struct A f, int g, int h) | |
924 ; { | |
925 ; /* use some local data */ | |
926 ; char l[100] ={ 'L'}; | |
927 ; leaf_call(b, c, d, e, f, g, h); | |
928 ; } | |
929 ; | |
930 ; int main() | |
931 ; { | |
932 ; nonleaf_call(0, 1, 2, 3, 4, (struct A){5, 6, 7ll}, 8, 9); | |
933 ; return 0; | |
934 ; } | |
935 | |
936 | |
937 | |
938 ; output from debian-sid_20150616-malta_mips64el_n64 w/ gcc 4.9.2 | |
939 | |
940 0000000000000000 <leaf_call>: | |
941 0: 67bdffc0 daddiu sp,sp,-64 | |
942 4: ffbe0038 sd s8,56(sp) | |
943 8: 03a0f02d move s8,sp | |
944 c: 0080682d move t1,a0 | |
945 10: 00a0602d move t0,a1 | |
946 14: 00c0282d move a1,a2 | |
947 18: 00e0202d move a0,a3 | |
948 1c: ffc80010 sd a4,16(s8) | |
949 20: ffc90018 sd a5,24(s8) | |
950 24: 0140182d move v1,a6 | |
951 28: 0160102d move v0,a7 | |
952 2c: 000d3000 sll a2,t1,0x0 | |
953 30: afc60000 sw a2,0(s8) | |
954 34: 000c3000 sll a2,t0,0x0 | |
955 38: afc60004 sw a2,4(s8) | |
956 3c: 00052800 sll a1,a1,0x0 | |
957 40: afc50008 sw a1,8(s8) | |
958 44: 00042000 sll a0,a0,0x0 | |
959 48: afc4000c sw a0,12(s8) | |
960 4c: 00031800 sll v1,v1,0x0 | |
961 50: afc30020 sw v1,32(s8) | |
962 54: 00021000 sll v0,v0,0x0 | |
963 58: afc20024 sw v0,36(s8) | |
964 5c: 03c0e82d move sp,s8 | |
965 60: dfbe0038 ld s8,56(sp) | |
966 64: 67bd0040 daddiu sp,sp,64 | |
967 68: 03e00008 jr ra | |
968 6c: 00200825 move at,at | |
969 | |
970 0000000000000070 <nonleaf_call>: | |
971 70: 67bdff40 daddiu sp,sp,-192 | |
972 74: ffbf00b8 sd ra,184(sp) | |
973 78: ffbe00b0 sd s8,176(sp) | |
974 7c: ffbc00a8 sd gp,168(sp) | |
975 80: 03a0f02d move s8,sp | |
976 84: 3c1c0000 lui gp,0x0 | |
977 88: 0399e02d daddu gp,gp,t9 | |
978 8c: 679c0000 daddiu gp,gp,0 | |
979 90: 0080682d move t1,a0 | |
980 94: 00a0602d move t0,a1 | |
981 98: 00c0282d move a1,a2 | |
982 9c: 00e0202d move a0,a3 | |
983 a0: 0100182d move v1,a4 | |
984 a4: ffc90088 sd a5,136(s8) | |
985 a8: ffca0090 sd a6,144(s8) | |
986 ac: 0160102d move v0,a7 | |
987 b0: 000d3000 sll a2,t1,0x0 | |
988 b4: afc60070 sw a2,112(s8) | |
989 b8: 000c3000 sll a2,t0,0x0 | |
990 bc: afc60074 sw a2,116(s8) | |
991 c0: 00052800 sll a1,a1,0x0 | |
992 c4: afc50078 sw a1,120(s8) | |
993 c8: 00042000 sll a0,a0,0x0 | |
994 cc: afc4007c sw a0,124(s8) | |
995 d0: 00031800 sll v1,v1,0x0 | |
996 d4: afc30080 sw v1,128(s8) | |
997 d8: 00021000 sll v0,v0,0x0 | |
998 dc: afc20084 sw v0,132(s8) | |
999 e0: ffc00000 sd zero,0(s8) | |
1000 e4: ffc00008 sd zero,8(s8) | |
1001 e8: ffc00010 sd zero,16(s8) | |
1002 ec: ffc00018 sd zero,24(s8) | |
1003 f0: ffc00020 sd zero,32(s8) | |
1004 f4: ffc00028 sd zero,40(s8) | |
1005 f8: ffc00030 sd zero,48(s8) | |
1006 fc: ffc00038 sd zero,56(s8) | |
1007 100: ffc00040 sd zero,64(s8) | |
1008 104: ffc00048 sd zero,72(s8) | |
1009 108: ffc00050 sd zero,80(s8) | |
1010 10c: ffc00058 sd zero,88(s8) | |
1011 110: afc00060 sw zero,96(s8) | |
1012 114: 2402004c li v0,76 | |
1013 118: a3c20000 sb v0,0(s8) | |
1014 11c: 8fc40074 lw a0,116(s8) | |
1015 120: 8fc50078 lw a1,120(s8) | |
1016 124: 8fc6007c lw a2,124(s8) | |
1017 128: 8fc70080 lw a3,128(s8) | |
1018 12c: 8fc30084 lw v1,132(s8) | |
1019 130: 8fc200c0 lw v0,192(s8) | |
1020 134: dfc80088 ld a4,136(s8) | |
1021 138: dfc90090 ld a5,144(s8) | |
1022 13c: 0060502d move a6,v1 | |
1023 140: 0040582d move a7,v0 | |
1024 144: df820000 ld v0,0(gp) | |
1025 148: 0040c82d move t9,v0 | |
1026 14c: 0320f809 jalr t9 | |
1027 150: 00200825 move at,at | |
1028 154: 03c0e82d move sp,s8 | |
1029 158: dfbf00b8 ld ra,184(sp) | |
1030 15c: dfbe00b0 ld s8,176(sp) | |
1031 160: dfbc00a8 ld gp,168(sp) | |
1032 164: 67bd00c0 daddiu sp,sp,192 | |
1033 168: 03e00008 jr ra | |
1034 16c: 00200825 move at,at | |
1035 | |
1036 0000000000000170 <main>: | |
1037 170: 67bdffc0 daddiu sp,sp,-64 | |
1038 174: ffbf0038 sd ra,56(sp) | |
1039 178: ffbe0030 sd s8,48(sp) | |
1040 17c: ffbc0028 sd gp,40(sp) | |
1041 180: 03a0f02d move s8,sp | |
1042 184: 3c1c0000 lui gp,0x0 | |
1043 188: 0399e02d daddu gp,gp,t9 | |
1044 18c: 679c0000 daddiu gp,gp,0 | |
1045 190: 24020005 li v0,5 | |
1046 194: afc20010 sw v0,16(s8) | |
1047 198: 24020006 li v0,6 | |
1048 19c: afc20014 sw v0,20(s8) | |
1049 1a0: 24020007 li v0,7 | |
1050 1a4: ffc20018 sd v0,24(s8) | |
1051 1a8: 24020009 li v0,9 | |
1052 1ac: ffa20000 sd v0,0(sp) | |
1053 1b0: 0000202d move a0,zero | |
1054 1b4: 24050001 li a1,1 | |
1055 1b8: 24060002 li a2,2 | |
1056 1bc: 24070003 li a3,3 | |
1057 1c0: 24080004 li a4,4 | |
1058 1c4: dfc90010 ld a5,16(s8) | |
1059 1c8: dfca0018 ld a6,24(s8) | |
1060 1cc: 240b0008 li a7,8 | |
1061 1d0: df820000 ld v0,0(gp) | |
1062 1d4: 0040c82d move t9,v0 | |
1063 1d8: 0320f809 jalr t9 | |
1064 1dc: 00200825 move at,at | |
1065 1e0: 0000102d move v0,zero | |
1066 1e4: 03c0e82d move sp,s8 | |
1067 1e8: dfbf0038 ld ra,56(sp) | |
1068 1ec: dfbe0030 ld s8,48(sp) | |
1069 1f0: dfbc0028 ld gp,40(sp) | |
1070 1f4: 67bd0040 daddiu sp,sp,64 | |
1071 1f8: 03e00008 jr ra | |
1072 1fc: 00200825 move at,at | |
1073 | |
1074 | |
1075 | |
1076 ; output from freebsd-12.0_r333647-malta_mips64elhf w/ gcc 4.2.1 (*not* using hard-float) | |
1077 | |
1078 0000000000000000 <leaf_call>: | |
1079 0: 67bdffc0 daddiu sp,sp,-64 | |
1080 4: ffbe0038 sd s8,56(sp) | |
1081 8: ffbc0030 sd gp,48(sp) | |
1082 c: 03a0f02d move s8,sp | |
1083 10: 3c1c0000 lui gp,0x0 | |
1084 14: 0399e02d daddu gp,gp,t9 | |
1085 18: 679c0000 daddiu gp,gp,0 | |
1086 1c: 0080102d move v0,a0 | |
1087 20: 00a0182d move v1,a1 | |
1088 24: 00c0202d move a0,a2 | |
1089 28: 00e0302d move a2,a3 | |
1090 2c: ffc80010 sd a4,16(s8) | |
1091 30: ffc90018 sd a5,24(s8) | |
1092 34: 0140282d move a1,a6 | |
1093 38: 0160382d move a3,a7 | |
1094 3c: 00021000 sll v0,v0,0x0 | |
1095 40: afc20000 sw v0,0(s8) | |
1096 44: 00031000 sll v0,v1,0x0 | |
1097 48: afc20004 sw v0,4(s8) | |
1098 4c: 00041000 sll v0,a0,0x0 | |
1099 50: afc20008 sw v0,8(s8) | |
1100 54: 00061000 sll v0,a2,0x0 | |
1101 58: afc2000c sw v0,12(s8) | |
1102 5c: 00051000 sll v0,a1,0x0 | |
1103 60: afc20020 sw v0,32(s8) | |
1104 64: 00071000 sll v0,a3,0x0 | |
1105 68: afc20024 sw v0,36(s8) | |
1106 6c: 03c0e82d move sp,s8 | |
1107 70: dfbe0038 ld s8,56(sp) | |
1108 74: dfbc0030 ld gp,48(sp) | |
1109 78: 03e00008 jr ra | |
1110 7c: 67bd0040 daddiu sp,sp,64 | |
1111 | |
1112 0000000000000080 <nonleaf_call>: | |
1113 80: 67bdff40 daddiu sp,sp,-192 | |
1114 84: ffbf00b0 sd ra,176(sp) | |
1115 88: ffbe00a8 sd s8,168(sp) | |
1116 8c: ffbc00a0 sd gp,160(sp) | |
1117 90: 03a0f02d move s8,sp | |
1118 94: 3c1c0000 lui gp,0x0 | |
1119 98: 0399e02d daddu gp,gp,t9 | |
1120 9c: 679c0000 daddiu gp,gp,0 | |
1121 a0: 0080102d move v0,a0 | |
1122 a4: 00a0182d move v1,a1 | |
1123 a8: 00c0202d move a0,a2 | |
1124 ac: 00e0282d move a1,a3 | |
1125 b0: 0100302d move a2,a4 | |
1126 b4: ffc90088 sd a5,136(s8) | |
1127 b8: ffca0090 sd a6,144(s8) | |
1128 bc: 0160382d move a3,a7 | |
1129 c0: 00021000 sll v0,v0,0x0 | |
1130 c4: afc20070 sw v0,112(s8) | |
1131 c8: 00031000 sll v0,v1,0x0 | |
1132 cc: afc20074 sw v0,116(s8) | |
1133 d0: 00041000 sll v0,a0,0x0 | |
1134 d4: afc20078 sw v0,120(s8) | |
1135 d8: 00051000 sll v0,a1,0x0 | |
1136 dc: afc2007c sw v0,124(s8) | |
1137 e0: 00061000 sll v0,a2,0x0 | |
1138 e4: afc20080 sw v0,128(s8) | |
1139 e8: 00071000 sll v0,a3,0x0 | |
1140 ec: afc20098 sw v0,152(s8) | |
1141 f0: ffc00000 sd zero,0(s8) | |
1142 f4: ffc00008 sd zero,8(s8) | |
1143 f8: ffc00010 sd zero,16(s8) | |
1144 fc: ffc00018 sd zero,24(s8) | |
1145 100: ffc00020 sd zero,32(s8) | |
1146 104: ffc00028 sd zero,40(s8) | |
1147 108: ffc00030 sd zero,48(s8) | |
1148 10c: ffc00038 sd zero,56(s8) | |
1149 110: ffc00040 sd zero,64(s8) | |
1150 114: ffc00048 sd zero,72(s8) | |
1151 118: ffc00050 sd zero,80(s8) | |
1152 11c: ffc00058 sd zero,88(s8) | |
1153 120: afc00060 sw zero,96(s8) | |
1154 124: 2402004c li v0,76 | |
1155 128: a3c20000 sb v0,0(s8) | |
1156 12c: 8fc20074 lw v0,116(s8) | |
1157 130: 8fc30078 lw v1,120(s8) | |
1158 134: 8fc6007c lw a2,124(s8) | |
1159 138: 8fc70080 lw a3,128(s8) | |
1160 13c: 8fca0098 lw a6,152(s8) | |
1161 140: 8fcb00c0 lw a7,192(s8) | |
1162 144: 0040202d move a0,v0 | |
1163 148: 0060282d move a1,v1 | |
1164 14c: dfc80088 ld a4,136(s8) | |
1165 150: dfc90090 ld a5,144(s8) | |
1166 154: df990000 ld t9,0(gp) | |
1167 158: 0320f809 jalr t9 | |
1168 15c: 00000000 nop | |
1169 160: 03c0e82d move sp,s8 | |
1170 164: dfbf00b0 ld ra,176(sp) | |
1171 168: dfbe00a8 ld s8,168(sp) | |
1172 16c: dfbc00a0 ld gp,160(sp) | |
1173 170: 03e00008 jr ra | |
1174 174: 67bd00c0 daddiu sp,sp,192 | |
1175 | |
1176 0000000000000178 <main>: | |
1177 178: 67bdffc0 daddiu sp,sp,-64 | |
1178 17c: ffbf0030 sd ra,48(sp) | |
1179 180: ffbe0028 sd s8,40(sp) | |
1180 184: ffbc0020 sd gp,32(sp) | |
1181 188: 03a0f02d move s8,sp | |
1182 18c: 3c1c0000 lui gp,0x0 | |
1183 190: 0399e02d daddu gp,gp,t9 | |
1184 194: 679c0000 daddiu gp,gp,0 | |
1185 198: df820000 ld v0,0(gp) | |
1186 19c: dc420000 ld v0,0(v0) | |
1187 1a0: df830000 ld v1,0(gp) | |
1188 1a4: dc630000 ld v1,0(v1) | |
1189 1a8: ffc20010 sd v0,16(s8) | |
1190 1ac: ffc30018 sd v1,24(s8) | |
1191 1b0: 24020009 li v0,9 | |
1192 1b4: ffa20000 sd v0,0(sp) | |
1193 1b8: 0000202d move a0,zero | |
1194 1bc: 24050001 li a1,1 | |
1195 1c0: 24060002 li a2,2 | |
1196 1c4: 24070003 li a3,3 | |
1197 1c8: 24080004 li a4,4 | |
1198 1cc: dfc90010 ld a5,16(s8) | |
1199 1d0: dfca0018 ld a6,24(s8) | |
1200 1d4: 240b0008 li a7,8 | |
1201 1d8: df990000 ld t9,0(gp) | |
1202 1dc: 0320f809 jalr t9 | |
1203 1e0: 00000000 nop | |
1204 1e4: 0000102d move v0,zero | |
1205 1e8: 03c0e82d move sp,s8 | |
1206 1ec: dfbf0030 ld ra,48(sp) | |
1207 1f0: dfbe0028 ld s8,40(sp) | |
1208 1f4: dfbc0020 ld gp,32(sp) | |
1209 1f8: 03e00008 jr ra | |
1210 1fc: 67bd0040 daddiu sp,sp,64 | |
1211 | |
1212 | |
1213 | |
1214 ; ---------- structs by value, complex example (multiple structs) ----------> | |
1215 ; | |
1216 ; struct A { int i, j; float f; }; | |
1217 ; struct B { double d; long long l; }; | |
1218 ; | |
1219 ; void leaf_call(int b, struct A c, struct B d, int e, int f, struct A g, struct B h, int i, int j) | |
1220 ; { | |
1221 ; } | |
1222 ; | |
1223 ; void nonleaf_call(int a, int b, struct A c, struct B d, int e, int f, struct A g, struct B h, int i, int j) | |
1224 ; { | |
1225 ; /* use some local data */ | |
1226 ; char l[100] ={ 'L'}; | |
1227 ; leaf_call(b, c, d, e, f, g, h, i, j); | |
1228 ; } | |
1229 ; | |
1230 ; int main() | |
1231 ; { | |
1232 ; nonleaf_call(0, 1, (struct A){2, 3, 4.f}, (struct B){5., 6ll}, 7, 8, (struct A){9, 10, 11.f}, (struct B){12., 13ll}, 14, 15); | |
1233 ; return 0; | |
1234 ; } | |
1235 | |
1236 | |
1237 | |
1238 ; output from debian-sid_20150616-malta_mips64el_n64 w/ gcc 4.9.2 | |
1239 | |
1240 0000000000000000 <leaf_call>: | |
1241 0: 67bdffb0 daddiu sp,sp,-80 | |
1242 4: ffbe0038 sd s8,56(sp) | |
1243 8: 03a0f02d move s8,sp | |
1244 c: 0080382d move a3,a0 | |
1245 10: ffc50008 sd a1,8(s8) | |
1246 14: ffc60010 sd a2,16(s8) | |
1247 18: 46207806 mov.d $f0,$f15 | |
1248 1c: 0100202d move a0,a4 | |
1249 20: 0120182d move v1,a5 | |
1250 24: 0140102d move v0,a6 | |
1251 28: ffcb0048 sd a7,72(s8) | |
1252 2c: 00072800 sll a1,a3,0x0 | |
1253 30: afc50000 sw a1,0(s8) | |
1254 34: f7c00018 sdc1 $f0,24(s8) | |
1255 38: ffc40020 sd a0,32(s8) | |
1256 3c: 00031800 sll v1,v1,0x0 | |
1257 40: afc30004 sw v1,4(s8) | |
1258 44: 00021000 sll v0,v0,0x0 | |
1259 48: afc20028 sw v0,40(s8) | |
1260 4c: 03c0e82d move sp,s8 | |
1261 50: dfbe0038 ld s8,56(sp) | |
1262 54: 67bd0050 daddiu sp,sp,80 | |
1263 58: 03e00008 jr ra | |
1264 5c: 00200825 move at,at | |
1265 | |
1266 0000000000000060 <nonleaf_call>: | |
1267 60: 67bdff10 daddiu sp,sp,-240 | |
1268 64: ffbf00e8 sd ra,232(sp) | |
1269 68: ffbe00e0 sd s8,224(sp) | |
1270 6c: ffbc00d8 sd gp,216(sp) | |
1271 70: 03a0f02d move s8,sp | |
1272 74: 3c1c0000 lui gp,0x0 | |
1273 78: 0399e02d daddu gp,gp,t9 | |
1274 7c: 679c0000 daddiu gp,gp,0 | |
1275 80: 0080402d move a4,a0 | |
1276 84: ffc600a8 sd a2,168(s8) | |
1277 88: ffc700b0 sd a3,176(s8) | |
1278 8c: 46208006 mov.d $f0,$f16 | |
1279 90: 0120202d move a0,a5 | |
1280 94: 0140182d move v1,a6 | |
1281 98: 0160102d move v0,a7 | |
1282 9c: 00083000 sll a2,a4,0x0 | |
1283 a0: afc600a0 sw a2,160(s8) | |
1284 a4: 00052800 sll a1,a1,0x0 | |
1285 a8: afc500a4 sw a1,164(s8) | |
1286 ac: f7c000b8 sdc1 $f0,184(s8) | |
1287 b0: ffc400c0 sd a0,192(s8) | |
1288 b4: 00031800 sll v1,v1,0x0 | |
1289 b8: afc300c8 sw v1,200(s8) | |
1290 bc: 00021000 sll v0,v0,0x0 | |
1291 c0: afc200cc sw v0,204(s8) | |
1292 c4: ffc00030 sd zero,48(s8) | |
1293 c8: ffc00038 sd zero,56(s8) | |
1294 cc: ffc00040 sd zero,64(s8) | |
1295 d0: ffc00048 sd zero,72(s8) | |
1296 d4: ffc00050 sd zero,80(s8) | |
1297 d8: ffc00058 sd zero,88(s8) | |
1298 dc: ffc00060 sd zero,96(s8) | |
1299 e0: ffc00068 sd zero,104(s8) | |
1300 e4: ffc00070 sd zero,112(s8) | |
1301 e8: ffc00078 sd zero,120(s8) | |
1302 ec: ffc00080 sd zero,128(s8) | |
1303 f0: ffc00088 sd zero,136(s8) | |
1304 f4: afc00090 sw zero,144(s8) | |
1305 f8: 2402004c li v0,76 | |
1306 fc: a3c20030 sb v0,48(s8) | |
1307 100: 8fc400a4 lw a0,164(s8) | |
1308 104: d7c000b8 ldc1 $f0,184(s8) | |
1309 108: dfc800c0 ld a4,192(s8) | |
1310 10c: 8fc900c8 lw a5,200(s8) | |
1311 110: 8fc700cc lw a3,204(s8) | |
1312 114: dfc30100 ld v1,256(s8) | |
1313 118: dfc20108 ld v0,264(s8) | |
1314 11c: ffa30008 sd v1,8(sp) | |
1315 120: ffa20010 sd v0,16(sp) | |
1316 124: 8fc20110 lw v0,272(s8) | |
1317 128: ffa20018 sd v0,24(sp) | |
1318 12c: 8fc20118 lw v0,280(s8) | |
1319 130: ffa20020 sd v0,32(sp) | |
1320 134: 8fc200f8 lw v0,248(s8) | |
1321 138: afa20000 sw v0,0(sp) | |
1322 13c: dfcb00f0 ld a7,240(s8) | |
1323 140: dfc500a8 ld a1,168(s8) | |
1324 144: dfc600b0 ld a2,176(s8) | |
1325 148: 462003c6 mov.d $f15,$f0 | |
1326 14c: 00e0502d move a6,a3 | |
1327 150: df820000 ld v0,0(gp) | |
1328 154: 0040c82d move t9,v0 | |
1329 158: 0320f809 jalr t9 | |
1330 15c: 00200825 move at,at | |
1331 160: 03c0e82d move sp,s8 | |
1332 164: dfbf00e8 ld ra,232(sp) | |
1333 168: dfbe00e0 ld s8,224(sp) | |
1334 16c: dfbc00d8 ld gp,216(sp) | |
1335 170: 67bd00f0 daddiu sp,sp,240 | |
1336 174: 03e00008 jr ra | |
1337 178: 00200825 move at,at | |
1338 | |
1339 000000000000017c <main>: | |
1340 17c: 67bdff70 daddiu sp,sp,-144 | |
1341 180: ffbf0088 sd ra,136(sp) | |
1342 184: ffbe0080 sd s8,128(sp) | |
1343 188: ffbc0078 sd gp,120(sp) | |
1344 18c: 03a0f02d move s8,sp | |
1345 190: 3c1c0000 lui gp,0x0 | |
1346 194: 0399e02d daddu gp,gp,t9 | |
1347 198: 679c0000 daddiu gp,gp,0 | |
1348 19c: df820000 ld v0,0(gp) | |
1349 1a0: 64430000 daddiu v1,v0,0 | |
1350 1a4: 68630007 ldl v1,7(v1) | |
1351 1a8: 6c430000 ldr v1,0(v0) | |
1352 1ac: ffc30060 sd v1,96(s8) | |
1353 1b0: 64420000 daddiu v0,v0,0 | |
1354 1b4: 8c420008 lw v0,8(v0) | |
1355 1b8: afc20068 sw v0,104(s8) | |
1356 1bc: df820000 ld v0,0(gp) | |
1357 1c0: dc420000 ld v0,0(v0) | |
1358 1c4: ffc20050 sd v0,80(s8) | |
1359 1c8: 24020006 li v0,6 | |
1360 1cc: ffc20058 sd v0,88(s8) | |
1361 1d0: df820000 ld v0,0(gp) | |
1362 1d4: 64430000 daddiu v1,v0,0 | |
1363 1d8: 68630007 ldl v1,7(v1) | |
1364 1dc: 6c430000 ldr v1,0(v0) | |
1365 1e0: ffc30040 sd v1,64(s8) | |
1366 1e4: 64420000 daddiu v0,v0,0 | |
1367 1e8: 8c420008 lw v0,8(v0) | |
1368 1ec: afc20048 sw v0,72(s8) | |
1369 1f0: df820000 ld v0,0(gp) | |
1370 1f4: dc420000 ld v0,0(v0) | |
1371 1f8: ffc20030 sd v0,48(s8) | |
1372 1fc: 2402000d li v0,13 | |
1373 200: ffc20038 sd v0,56(s8) | |
1374 204: d7c00050 ldc1 $f0,80(s8) | |
1375 208: dfc80058 ld a4,88(s8) | |
1376 20c: dfc20040 ld v0,64(s8) | |
1377 210: ffa20000 sd v0,0(sp) | |
1378 214: 8fc20048 lw v0,72(s8) | |
1379 218: afa20008 sw v0,8(sp) | |
1380 21c: dfc30030 ld v1,48(s8) | |
1381 220: dfc20038 ld v0,56(s8) | |
1382 224: ffa30010 sd v1,16(sp) | |
1383 228: ffa20018 sd v0,24(sp) | |
1384 22c: 2402000e li v0,14 | |
1385 230: ffa20020 sd v0,32(sp) | |
1386 234: 2402000f li v0,15 | |
1387 238: ffa20028 sd v0,40(sp) | |
1388 23c: 0000202d move a0,zero | |
1389 240: 24050001 li a1,1 | |
1390 244: dfc60060 ld a2,96(s8) | |
1391 248: dfc70068 ld a3,104(s8) | |
1392 24c: 46200406 mov.d $f16,$f0 | |
1393 250: 0100482d move a5,a4 | |
1394 254: 240a0007 li a6,7 | |
1395 258: 240b0008 li a7,8 | |
1396 25c: df820000 ld v0,0(gp) | |
1397 260: 0040c82d move t9,v0 | |
1398 264: 0320f809 jalr t9 | |
1399 268: 00200825 move at,at | |
1400 26c: 0000102d move v0,zero | |
1401 270: 03c0e82d move sp,s8 | |
1402 274: dfbf0088 ld ra,136(sp) | |
1403 278: dfbe0080 ld s8,128(sp) | |
1404 27c: dfbc0078 ld gp,120(sp) | |
1405 280: 67bd0090 daddiu sp,sp,144 | |
1406 284: 03e00008 jr ra | |
1407 288: 00200825 move at,at | |
1408 28c: 00200825 move at,at | |
1409 | |
1410 | |
1411 | |
1412 ; output from freebsd-12.0_r333647-malta_mips64elhf w/ gcc 4.2.1 (*not* using hard-float) | |
1413 | |
1414 0000000000000000 <leaf_call>: | |
1415 0: 67bdffb0 daddiu sp,sp,-80 | |
1416 4: ffbe0038 sd s8,56(sp) | |
1417 8: ffbc0030 sd gp,48(sp) | |
1418 c: 03a0f02d move s8,sp | |
1419 10: 3c1c0000 lui gp,0x0 | |
1420 14: 0399e02d daddu gp,gp,t9 | |
1421 18: 679c0000 daddiu gp,gp,0 | |
1422 1c: 0080102d move v0,a0 | |
1423 20: ffc50008 sd a1,8(s8) | |
1424 24: ffc60010 sd a2,16(s8) | |
1425 28: 00e0182d move v1,a3 | |
1426 2c: 0100202d move a0,a4 | |
1427 30: 0120282d move a1,a5 | |
1428 34: 0140302d move a2,a6 | |
1429 38: ffcb0048 sd a7,72(s8) | |
1430 3c: 00021000 sll v0,v0,0x0 | |
1431 40: afc20000 sw v0,0(s8) | |
1432 44: ffc30018 sd v1,24(s8) | |
1433 48: ffc40020 sd a0,32(s8) | |
1434 4c: 00051000 sll v0,a1,0x0 | |
1435 50: afc20028 sw v0,40(s8) | |
1436 54: 00061000 sll v0,a2,0x0 | |
1437 58: afc2002c sw v0,44(s8) | |
1438 5c: 03c0e82d move sp,s8 | |
1439 60: dfbe0038 ld s8,56(sp) | |
1440 64: dfbc0030 ld gp,48(sp) | |
1441 68: 03e00008 jr ra | |
1442 6c: 67bd0050 daddiu sp,sp,80 | |
1443 | |
1444 0000000000000070 <nonleaf_call>: | |
1445 70: 67bdff00 daddiu sp,sp,-256 | |
1446 74: ffbf00f0 sd ra,240(sp) | |
1447 78: ffbe00e8 sd s8,232(sp) | |
1448 7c: ffbc00e0 sd gp,224(sp) | |
1449 80: 03a0f02d move s8,sp | |
1450 84: 3c1c0000 lui gp,0x0 | |
1451 88: 0399e02d daddu gp,gp,t9 | |
1452 8c: 679c0000 daddiu gp,gp,0 | |
1453 90: 0080102d move v0,a0 | |
1454 94: 00a0182d move v1,a1 | |
1455 98: ffc600a8 sd a2,168(s8) | |
1456 9c: ffc700b0 sd a3,176(s8) | |
1457 a0: 0100202d move a0,a4 | |
1458 a4: 0120282d move a1,a5 | |
1459 a8: 0140302d move a2,a6 | |
1460 ac: 0160382d move a3,a7 | |
1461 b0: 00021000 sll v0,v0,0x0 | |
1462 b4: afc200a0 sw v0,160(s8) | |
1463 b8: 00031000 sll v0,v1,0x0 | |
1464 bc: afc200a4 sw v0,164(s8) | |
1465 c0: ffc400b8 sd a0,184(s8) | |
1466 c4: ffc500c0 sd a1,192(s8) | |
1467 c8: 00061000 sll v0,a2,0x0 | |
1468 cc: afc200c8 sw v0,200(s8) | |
1469 d0: 00071000 sll v0,a3,0x0 | |
1470 d4: afc200cc sw v0,204(s8) | |
1471 d8: ffc00030 sd zero,48(s8) | |
1472 dc: ffc00038 sd zero,56(s8) | |
1473 e0: ffc00040 sd zero,64(s8) | |
1474 e4: ffc00048 sd zero,72(s8) | |
1475 e8: ffc00050 sd zero,80(s8) | |
1476 ec: ffc00058 sd zero,88(s8) | |
1477 f0: ffc00060 sd zero,96(s8) | |
1478 f4: ffc00068 sd zero,104(s8) | |
1479 f8: ffc00070 sd zero,112(s8) | |
1480 fc: ffc00078 sd zero,120(s8) | |
1481 100: ffc00080 sd zero,128(s8) | |
1482 104: ffc00088 sd zero,136(s8) | |
1483 108: afc00090 sw zero,144(s8) | |
1484 10c: 2402004c li v0,76 | |
1485 110: a3c20030 sb v0,48(s8) | |
1486 114: 8fc400a4 lw a0,164(s8) | |
1487 118: dfc700b8 ld a3,184(s8) | |
1488 11c: dfc800c0 ld a4,192(s8) | |
1489 120: 8fc900c8 lw a5,200(s8) | |
1490 124: 8fca00cc lw a6,204(s8) | |
1491 128: dfc20110 ld v0,272(s8) | |
1492 12c: dfc30118 ld v1,280(s8) | |
1493 130: ffa20008 sd v0,8(sp) | |
1494 134: ffa30010 sd v1,16(sp) | |
1495 138: 8fc20120 lw v0,288(s8) | |
1496 13c: ffa20018 sd v0,24(sp) | |
1497 140: 8fc20128 lw v0,296(s8) | |
1498 144: ffa20020 sd v0,32(sp) | |
1499 148: dfc500a8 ld a1,168(s8) | |
1500 14c: 9fc300b0 lwu v1,176(s8) | |
1501 150: ffc000d0 sd zero,208(s8) | |
1502 154: 24020001 li v0,1 | |
1503 158: 0002103c dsll32 v0,v0,0x0 | |
1504 15c: 6442ffff daddiu v0,v0,-1 | |
1505 160: 00621824 and v1,v1,v0 | |
1506 164: 2402ffff li v0,-1 | |
1507 168: 0002103c dsll32 v0,v0,0x0 | |
1508 16c: dfc600d0 ld a2,208(s8) | |
1509 170: 00c21024 and v0,a2,v0 | |
1510 174: 00431025 or v0,v0,v1 | |
1511 178: ffc200d0 sd v0,208(s8) | |
1512 17c: dfc30100 ld v1,256(s8) | |
1513 180: 8fc20108 lw v0,264(s8) | |
1514 184: afa20000 sw v0,0(sp) | |
1515 188: dfc600d0 ld a2,208(s8) | |
1516 18c: 0060582d move a7,v1 | |
1517 190: df990000 ld t9,0(gp) | |
1518 194: 0320f809 jalr t9 | |
1519 198: 00000000 nop | |
1520 19c: 03c0e82d move sp,s8 | |
1521 1a0: dfbf00f0 ld ra,240(sp) | |
1522 1a4: dfbe00e8 ld s8,232(sp) | |
1523 1a8: dfbc00e0 ld gp,224(sp) | |
1524 1ac: 03e00008 jr ra | |
1525 1b0: 67bd0100 daddiu sp,sp,256 | |
1526 1b4: 00000000 nop | |
1527 | |
1528 00000000000001b8 <main>: | |
1529 1b8: 67bdff60 daddiu sp,sp,-160 | |
1530 1bc: ffbf0090 sd ra,144(sp) | |
1531 1c0: ffbe0088 sd s8,136(sp) | |
1532 1c4: ffbc0080 sd gp,128(sp) | |
1533 1c8: 03a0f02d move s8,sp | |
1534 1cc: 3c1c0000 lui gp,0x0 | |
1535 1d0: 0399e02d daddu gp,gp,t9 | |
1536 1d4: 679c0000 daddiu gp,gp,0 | |
1537 1d8: df820000 ld v0,0(gp) | |
1538 1dc: dc420000 ld v0,0(v0) | |
1539 1e0: ffc20060 sd v0,96(s8) | |
1540 1e4: df820000 ld v0,0(gp) | |
1541 1e8: 8c420000 lw v0,0(v0) | |
1542 1ec: afc20068 sw v0,104(s8) | |
1543 1f0: df820000 ld v0,0(gp) | |
1544 1f4: dc420000 ld v0,0(v0) | |
1545 1f8: df830000 ld v1,0(gp) | |
1546 1fc: dc630000 ld v1,0(v1) | |
1547 200: ffc20050 sd v0,80(s8) | |
1548 204: ffc30058 sd v1,88(s8) | |
1549 208: df820000 ld v0,0(gp) | |
1550 20c: dc420000 ld v0,0(v0) | |
1551 210: ffc20040 sd v0,64(s8) | |
1552 214: df820000 ld v0,0(gp) | |
1553 218: 8c420000 lw v0,0(v0) | |
1554 21c: afc20048 sw v0,72(s8) | |
1555 220: df820000 ld v0,0(gp) | |
1556 224: dc420000 ld v0,0(v0) | |
1557 228: df830000 ld v1,0(gp) | |
1558 22c: dc630000 ld v1,0(v1) | |
1559 230: ffc20030 sd v0,48(s8) | |
1560 234: ffc30038 sd v1,56(s8) | |
1561 238: dfc80050 ld a4,80(s8) | |
1562 23c: dfc90058 ld a5,88(s8) | |
1563 240: dfc20040 ld v0,64(s8) | |
1564 244: ffa20000 sd v0,0(sp) | |
1565 248: 8fc20048 lw v0,72(s8) | |
1566 24c: afa20008 sw v0,8(sp) | |
1567 250: dfc20030 ld v0,48(s8) | |
1568 254: dfc30038 ld v1,56(s8) | |
1569 258: ffa20010 sd v0,16(sp) | |
1570 25c: ffa30018 sd v1,24(sp) | |
1571 260: 2402000e li v0,14 | |
1572 264: ffa20020 sd v0,32(sp) | |
1573 268: 2402000f li v0,15 | |
1574 26c: ffa20028 sd v0,40(sp) | |
1575 270: dfc60060 ld a2,96(s8) | |
1576 274: 9fc30068 lwu v1,104(s8) | |
1577 278: ffc00070 sd zero,112(s8) | |
1578 27c: 24020001 li v0,1 | |
1579 280: 0002103c dsll32 v0,v0,0x0 | |
1580 284: 6442ffff daddiu v0,v0,-1 | |
1581 288: 00621824 and v1,v1,v0 | |
1582 28c: 2402ffff li v0,-1 | |
1583 290: 0002103c dsll32 v0,v0,0x0 | |
1584 294: dfc40070 ld a0,112(s8) | |
1585 298: 00821024 and v0,a0,v0 | |
1586 29c: 00431025 or v0,v0,v1 | |
1587 2a0: ffc20070 sd v0,112(s8) | |
1588 2a4: 0000202d move a0,zero | |
1589 2a8: 24050001 li a1,1 | |
1590 2ac: dfc70070 ld a3,112(s8) | |
1591 2b0: 240a0007 li a6,7 | |
1592 2b4: 240b0008 li a7,8 | |
1593 2b8: df990000 ld t9,0(gp) | |
1594 2bc: 0320f809 jalr t9 | |
1595 2c0: 00000000 nop | |
1596 2c4: 0000102d move v0,zero | |
1597 2c8: 03c0e82d move sp,s8 | |
1598 2cc: dfbf0090 ld ra,144(sp) | |
1599 2d0: dfbe0088 ld s8,136(sp) | |
1600 2d4: dfbc0080 ld gp,128(sp) | |
1601 2d8: 03e00008 jr ra | |
1602 2dc: 67bd00a0 daddiu sp,sp,160 | |
1603 | |
1604 | |
1605 | |
1606 ; ---------- passing structs with only fp parts ----------> | |
1607 ; | |
1608 ; struct A { float a; }; | |
1609 ; struct B { float a, b; }; | |
1610 ; struct C { float a, b, c; }; | |
1611 ; struct D { double a; }; | |
1612 ; struct E { double a, b; }; | |
1613 ; struct F { double a, b, c; }; | |
1614 ; | |
1615 ; void leaf_call(struct A a, struct B b, struct C c, struct D d, struct E e, struct F f) | |
1616 ; { | |
1617 ; } | |
1618 ; | |
1619 ; int main() | |
1620 ; { | |
1621 ; leaf_call((struct A){1.f}, (struct B){2.f,3.f}, (struct C){4.f,5.f,6.f}, (struct D){1.}, (struct E){2.,3.}, (struct F){4.,5.,6.}); | |
1622 ; return 0; | |
1623 ; } | |
1624 | |
1625 | |
1626 | |
1627 ; output from debian-sid_20150616-malta_mips64el_n64 w/ gcc 4.9.2 | |
1628 | |
1629 0000000000000000 <leaf_call>: | |
1630 0: 67bdff90 daddiu sp,sp,-112 | |
1631 4: ffbe0058 sd s8,88(sp) | |
1632 8: 03a0f02d move s8,sp | |
1633 c: afc40000 sw a0,0(s8) | |
1634 10: ffc50008 sd a1,8(s8) | |
1635 14: ffc60010 sd a2,16(s8) | |
1636 18: ffc70018 sd a3,24(s8) | |
1637 1c: f7d00040 sdc1 $f16,64(s8) | |
1638 20: dfc20040 ld v0,64(s8) | |
1639 24: ffc20038 sd v0,56(s8) | |
1640 28: d7c00038 ldc1 $f0,56(s8) | |
1641 2c: f7c00020 sdc1 $f0,32(s8) | |
1642 30: 46208846 mov.d $f1,$f17 | |
1643 34: 46209006 mov.d $f0,$f18 | |
1644 38: 46209886 mov.d $f2,$f19 | |
1645 3c: f7c20068 sdc1 $f2,104(s8) | |
1646 40: f7c10028 sdc1 $f1,40(s8) | |
1647 44: f7c00030 sdc1 $f0,48(s8) | |
1648 48: 03c0e82d move sp,s8 | |
1649 4c: dfbe0058 ld s8,88(sp) | |
1650 50: 67bd0070 daddiu sp,sp,112 | |
1651 54: 03e00008 jr ra | |
1652 58: 00200825 move at,at | |
1653 | |
1654 000000000000005c <main>: | |
1655 5c: 67bdff80 daddiu sp,sp,-128 | |
1656 60: ffbf0078 sd ra,120(sp) | |
1657 64: ffbe0070 sd s8,112(sp) | |
1658 68: ffbc0068 sd gp,104(sp) | |
1659 6c: 03a0f02d move s8,sp | |
1660 70: 3c1c0000 lui gp,0x0 | |
1661 74: 0399e02d daddu gp,gp,t9 | |
1662 78: 679c0000 daddiu gp,gp,0 | |
1663 7c: df820000 ld v0,0(gp) | |
1664 80: 8c420000 lw v0,0(v0) | |
1665 84: afc20058 sw v0,88(s8) | |
1666 88: df820000 ld v0,0(gp) | |
1667 8c: 64430000 daddiu v1,v0,0 | |
1668 90: 68630007 ldl v1,7(v1) | |
1669 94: 0060202d move a0,v1 | |
1670 98: 6c440000 ldr a0,0(v0) | |
1671 9c: 0080102d move v0,a0 | |
1672 a0: ffc20050 sd v0,80(s8) | |
1673 a4: df820000 ld v0,0(gp) | |
1674 a8: 64430000 daddiu v1,v0,0 | |
1675 ac: 68630007 ldl v1,7(v1) | |
1676 b0: 6c430000 ldr v1,0(v0) | |
1677 b4: ffc30040 sd v1,64(s8) | |
1678 b8: 64420000 daddiu v0,v0,0 | |
1679 bc: 8c420008 lw v0,8(v0) | |
1680 c0: afc20048 sw v0,72(s8) | |
1681 c4: df820000 ld v0,0(gp) | |
1682 c8: dc420000 ld v0,0(v0) | |
1683 cc: ffc20038 sd v0,56(s8) | |
1684 d0: df820000 ld v0,0(gp) | |
1685 d4: dc420000 ld v0,0(v0) | |
1686 d8: ffc20028 sd v0,40(s8) | |
1687 dc: df820000 ld v0,0(gp) | |
1688 e0: dc420000 ld v0,0(v0) | |
1689 e4: ffc20030 sd v0,48(s8) | |
1690 e8: df820000 ld v0,0(gp) | |
1691 ec: dc420000 ld v0,0(v0) | |
1692 f0: ffc20010 sd v0,16(s8) | |
1693 f4: df820000 ld v0,0(gp) | |
1694 f8: dc420000 ld v0,0(v0) | |
1695 fc: ffc20018 sd v0,24(s8) | |
1696 100: df820000 ld v0,0(gp) | |
1697 104: dc420000 ld v0,0(v0) | |
1698 108: ffc20020 sd v0,32(s8) | |
1699 10c: d7c30038 ldc1 $f3,56(s8) | |
1700 110: d7c20028 ldc1 $f2,40(s8) | |
1701 114: d7c10030 ldc1 $f1,48(s8) | |
1702 118: dfc30018 ld v1,24(s8) | |
1703 11c: dfc20020 ld v0,32(s8) | |
1704 120: ffa30000 sd v1,0(sp) | |
1705 124: ffa20008 sd v0,8(sp) | |
1706 128: d7c00010 ldc1 $f0,16(s8) | |
1707 12c: 462004c6 mov.d $f19,$f0 | |
1708 130: d7c00010 ldc1 $f0,16(s8) | |
1709 134: 8fc40058 lw a0,88(s8) | |
1710 138: dfc50050 ld a1,80(s8) | |
1711 13c: dfc60040 ld a2,64(s8) | |
1712 140: dfc70048 ld a3,72(s8) | |
1713 144: 46201c06 mov.d $f16,$f3 | |
1714 148: 46201446 mov.d $f17,$f2 | |
1715 14c: 46200c86 mov.d $f18,$f1 | |
1716 150: 462004c6 mov.d $f19,$f0 | |
1717 154: df820000 ld v0,0(gp) | |
1718 158: 0040c82d move t9,v0 | |
1719 15c: 0320f809 jalr t9 | |
1720 160: 00200825 move at,at | |
1721 164: 0000102d move v0,zero | |
1722 168: 03c0e82d move sp,s8 | |
1723 16c: dfbf0078 ld ra,120(sp) | |
1724 170: dfbe0070 ld s8,112(sp) | |
1725 174: dfbc0068 ld gp,104(sp) | |
1726 178: 67bd0080 daddiu sp,sp,128 | |
1727 17c: 03e00008 jr ra | |
1728 180: 00200825 move at,at | |
1729 184: 00200825 move at,at | |
1730 188: 00200825 move at,at | |
1731 18c: 00200825 move at,at | |
1732 | |
1733 | |
1734 | |
1735 ; output from freebsd-12.0_r333647-malta_mips64elhf w/ gcc 4.2.1 (*not* using hard-float) | |
1736 | |
1737 0000000000000000 <leaf_call>: | |
1738 0: 67bdffa0 daddiu sp,sp,-96 | |
1739 4: ffbe0048 sd s8,72(sp) | |
1740 8: ffbc0040 sd gp,64(sp) | |
1741 c: 03a0f02d move s8,sp | |
1742 10: 3c1c0000 lui gp,0x0 | |
1743 14: 0399e02d daddu gp,gp,t9 | |
1744 18: 679c0000 daddiu gp,gp,0 | |
1745 1c: afc40000 sw a0,0(s8) | |
1746 20: ffc50008 sd a1,8(s8) | |
1747 24: ffc60010 sd a2,16(s8) | |
1748 28: ffc70018 sd a3,24(s8) | |
1749 2c: 0100182d move v1,a4 | |
1750 30: 0120202d move a0,a5 | |
1751 34: 0140282d move a1,a6 | |
1752 38: 0160102d move v0,a7 | |
1753 3c: ffc20058 sd v0,88(s8) | |
1754 40: ffc30020 sd v1,32(s8) | |
1755 44: ffc40028 sd a0,40(s8) | |
1756 48: ffc50030 sd a1,48(s8) | |
1757 4c: 03c0e82d move sp,s8 | |
1758 50: dfbe0048 ld s8,72(sp) | |
1759 54: dfbc0040 ld gp,64(sp) | |
1760 58: 03e00008 jr ra | |
1761 5c: 67bd0060 daddiu sp,sp,96 | |
1762 | |
1763 0000000000000060 <main>: | |
1764 60: 67bdff70 daddiu sp,sp,-144 | |
1765 64: ffbf0080 sd ra,128(sp) | |
1766 68: ffbe0078 sd s8,120(sp) | |
1767 6c: ffbc0070 sd gp,112(sp) | |
1768 70: 03a0f02d move s8,sp | |
1769 74: 3c1c0000 lui gp,0x0 | |
1770 78: 0399e02d daddu gp,gp,t9 | |
1771 7c: 679c0000 daddiu gp,gp,0 | |
1772 80: df820000 ld v0,0(gp) | |
1773 84: 8c420000 lw v0,0(v0) | |
1774 88: afc20054 sw v0,84(s8) | |
1775 8c: df820000 ld v0,0(gp) | |
1776 90: dc420000 ld v0,0(v0) | |
1777 94: b3c20053 sdl v0,83(s8) | |
1778 98: b7c2004c sdr v0,76(s8) | |
1779 9c: df820000 ld v0,0(gp) | |
1780 a0: dc420000 ld v0,0(v0) | |
1781 a4: ffc20040 sd v0,64(s8) | |
1782 a8: df820000 ld v0,0(gp) | |
1783 ac: 8c420000 lw v0,0(v0) | |
1784 b0: afc20048 sw v0,72(s8) | |
1785 b4: df820000 ld v0,0(gp) | |
1786 b8: dc420000 ld v0,0(v0) | |
1787 bc: ffc20038 sd v0,56(s8) | |
1788 c0: df820000 ld v0,0(gp) | |
1789 c4: dc420000 ld v0,0(v0) | |
1790 c8: df830000 ld v1,0(gp) | |
1791 cc: dc630000 ld v1,0(v1) | |
1792 d0: ffc20028 sd v0,40(s8) | |
1793 d4: ffc30030 sd v1,48(s8) | |
1794 d8: df820000 ld v0,0(gp) | |
1795 dc: dc420000 ld v0,0(v0) | |
1796 e0: df830000 ld v1,0(gp) | |
1797 e4: dc630000 ld v1,0(v1) | |
1798 e8: df840000 ld a0,0(gp) | |
1799 ec: dc840000 ld a0,0(a0) | |
1800 f0: ffc20010 sd v0,16(s8) | |
1801 f4: ffc30018 sd v1,24(s8) | |
1802 f8: ffc40020 sd a0,32(s8) | |
1803 fc: dfc80038 ld a4,56(s8) | |
1804 100: dfc90028 ld a5,40(s8) | |
1805 104: dfca0030 ld a6,48(s8) | |
1806 108: 6bc20053 ldl v0,83(s8) | |
1807 10c: 6fc2004c ldr v0,76(s8) | |
1808 110: 0040282d move a1,v0 | |
1809 114: dfc60040 ld a2,64(s8) | |
1810 118: 9fc30048 lwu v1,72(s8) | |
1811 11c: ffc00060 sd zero,96(s8) | |
1812 120: 24020001 li v0,1 | |
1813 124: 0002103c dsll32 v0,v0,0x0 | |
1814 128: 6442ffff daddiu v0,v0,-1 | |
1815 12c: 00621824 and v1,v1,v0 | |
1816 130: 2402ffff li v0,-1 | |
1817 134: 0002103c dsll32 v0,v0,0x0 | |
1818 138: dfc40060 ld a0,96(s8) | |
1819 13c: 00821024 and v0,a0,v0 | |
1820 140: 00431025 or v0,v0,v1 | |
1821 144: ffc20060 sd v0,96(s8) | |
1822 148: dfc20018 ld v0,24(s8) | |
1823 14c: dfc30020 ld v1,32(s8) | |
1824 150: ffa20000 sd v0,0(sp) | |
1825 154: ffa30008 sd v1,8(sp) | |
1826 158: dfc20010 ld v0,16(s8) | |
1827 15c: 8fc40054 lw a0,84(s8) | |
1828 160: dfc70060 ld a3,96(s8) | |
1829 164: 0040582d move a7,v0 | |
1830 168: df990000 ld t9,0(gp) | |
1831 16c: 0320f809 jalr t9 | |
1832 170: 00000000 nop | |
1833 174: 0000102d move v0,zero | |
1834 178: 03c0e82d move sp,s8 | |
1835 17c: dfbf0080 ld ra,128(sp) | |
1836 180: dfbe0078 ld s8,120(sp) | |
1837 184: dfbc0070 ld gp,112(sp) | |
1838 188: 03e00008 jr ra | |
1839 18c: 67bd0090 daddiu sp,sp,144 | |
1840 | |
1841 | |
1842 | |
1843 ; output from freebsd-12.0_r333647-malta_mips64ebhf w/ gcc 4.2.1 *and* -mhard-float | |
1844 | |
1845 0000000000000000 <leaf_call>: | |
1846 0: 67bdffa0 daddiu sp,sp,-96 | |
1847 4: ffbe0048 sd s8,72(sp) | |
1848 8: ffbc0040 sd gp,64(sp) | |
1849 c: 03a0f02d move s8,sp | |
1850 10: 3c1c0000 lui gp,0x0 | |
1851 14: 0399e02d daddu gp,gp,t9 | |
1852 18: 679c0000 daddiu gp,gp,0 | |
1853 1c: ffc40000 sd a0,0(s8) | |
1854 20: ffc50008 sd a1,8(s8) | |
1855 24: ffc60010 sd a2,16(s8) | |
1856 28: ffc70018 sd a3,24(s8) | |
1857 2c: 46208046 mov.d $f1,$f16 | |
1858 30: 46208886 mov.d $f2,$f17 | |
1859 34: 462090c6 mov.d $f3,$f18 | |
1860 38: 46209806 mov.d $f0,$f19 | |
1861 3c: f7c00058 sdc1 $f0,88(s8) | |
1862 40: f7c10020 sdc1 $f1,32(s8) | |
1863 44: f7c20028 sdc1 $f2,40(s8) | |
1864 48: f7c30030 sdc1 $f3,48(s8) | |
1865 4c: 03c0e82d move sp,s8 | |
1866 50: dfbe0048 ld s8,72(sp) | |
1867 54: dfbc0040 ld gp,64(sp) | |
1868 58: 03e00008 jr ra | |
1869 5c: 67bd0060 daddiu sp,sp,96 | |
1870 | |
1871 0000000000000060 <main>: | |
1872 60: 67bdff70 daddiu sp,sp,-144 | |
1873 64: ffbf0080 sd ra,128(sp) | |
1874 68: ffbe0078 sd s8,120(sp) | |
1875 6c: ffbc0070 sd gp,112(sp) | |
1876 70: 03a0f02d move s8,sp | |
1877 74: 3c1c0000 lui gp,0x0 | |
1878 78: 0399e02d daddu gp,gp,t9 | |
1879 7c: 679c0000 daddiu gp,gp,0 | |
1880 80: df810000 ld at,0(gp) | |
1881 84: c4200000 lwc1 $f0,0(at) | |
1882 88: e7c00054 swc1 $f0,84(s8) | |
1883 8c: df820000 ld v0,0(gp) | |
1884 90: dc420000 ld v0,0(v0) | |
1885 94: b3c2004c sdl v0,76(s8) | |
1886 98: b7c20053 sdr v0,83(s8) | |
1887 9c: df820000 ld v0,0(gp) | |
1888 a0: dc420000 ld v0,0(v0) | |
1889 a4: ffc20040 sd v0,64(s8) | |
1890 a8: df820000 ld v0,0(gp) | |
1891 ac: 8c420000 lw v0,0(v0) | |
1892 b0: afc20048 sw v0,72(s8) | |
1893 b4: df810000 ld at,0(gp) | |
1894 b8: d4200000 ldc1 $f0,0(at) | |
1895 bc: f7c00038 sdc1 $f0,56(s8) | |
1896 c0: df820000 ld v0,0(gp) | |
1897 c4: dc420000 ld v0,0(v0) | |
1898 c8: df830000 ld v1,0(gp) | |
1899 cc: dc630000 ld v1,0(v1) | |
1900 d0: ffc20028 sd v0,40(s8) | |
1901 d4: ffc30030 sd v1,48(s8) | |
1902 d8: df820000 ld v0,0(gp) | |
1903 dc: dc420000 ld v0,0(v0) | |
1904 e0: df830000 ld v1,0(gp) | |
1905 e4: dc630000 ld v1,0(v1) | |
1906 e8: df840000 ld a0,0(gp) | |
1907 ec: dc840000 ld a0,0(a0) | |
1908 f0: ffc20010 sd v0,16(s8) | |
1909 f4: ffc30018 sd v1,24(s8) | |
1910 f8: ffc40020 sd a0,32(s8) | |
1911 fc: d7c10038 ldc1 $f1,56(s8) | |
1912 100: d7c20028 ldc1 $f2,40(s8) | |
1913 104: d7c30030 ldc1 $f3,48(s8) | |
1914 108: 6bc2004c ldl v0,76(s8) | |
1915 10c: 6fc20053 ldr v0,83(s8) | |
1916 110: 0040282d move a1,v0 | |
1917 114: dfc60040 ld a2,64(s8) | |
1918 118: dfc20048 ld v0,72(s8) | |
1919 11c: 0002103e dsrl32 v0,v0,0x0 | |
1920 120: ffc00060 sd zero,96(s8) | |
1921 124: 0002183c dsll32 v1,v0,0x0 | |
1922 128: 24020001 li v0,1 | |
1923 12c: 0002103c dsll32 v0,v0,0x0 | |
1924 130: 6442ffff daddiu v0,v0,-1 | |
1925 134: dfc40060 ld a0,96(s8) | |
1926 138: 00821024 and v0,a0,v0 | |
1927 13c: 00431025 or v0,v0,v1 | |
1928 140: ffc20060 sd v0,96(s8) | |
1929 144: dfc20018 ld v0,24(s8) | |
1930 148: dfc30020 ld v1,32(s8) | |
1931 14c: ffa20000 sd v0,0(sp) | |
1932 150: ffa30008 sd v1,8(sp) | |
1933 154: d7c00010 ldc1 $f0,16(s8) | |
1934 158: 8fc40054 lw a0,84(s8) | |
1935 15c: 0004203c dsll32 a0,a0,0x0 | |
1936 160: dfc70060 ld a3,96(s8) | |
1937 164: 46200c06 mov.d $f16,$f1 | |
1938 168: 46201446 mov.d $f17,$f2 | |
1939 16c: 46201c86 mov.d $f18,$f3 | |
1940 170: 462004c6 mov.d $f19,$f0 | |
1941 174: df990000 ld t9,0(gp) | |
1942 178: 0320f809 jalr t9 | |
1943 17c: 00000000 nop | |
1944 180: 0000102d move v0,zero | |
1945 184: 03c0e82d move sp,s8 | |
1946 188: dfbf0080 ld ra,128(sp) | |
1947 18c: dfbe0078 ld s8,120(sp) | |
1948 190: dfbc0070 ld gp,112(sp) | |
1949 194: 03e00008 jr ra | |
1950 198: 67bd0090 daddiu sp,sp,144 | |
1951 19c: 00000000 nop | |
1952 | |
1953 | |
1954 | |
1955 ; ---------- returning structs by value ----------> | |
1956 ; | |
1957 ; struct Small { char x; }; | |
1958 ; struct Big { long long i,j,k,l; long m; }; /* bigger than 16b */ | |
1959 ; | |
1960 ; struct Small f0() | |
1961 ; { | |
1962 ; struct Small s = { 132 }; | |
1963 ; return s; | |
1964 ; } | |
1965 ; | |
1966 ; struct Big f1() | |
1967 ; { | |
1968 ; struct Big b = { 7171LL, 99LL, -99LL, -3102LL, 32 }; | |
1969 ; return b; | |
1970 ; } | |
1971 ; | |
1972 ; int main() | |
1973 ; { | |
1974 ; struct Small s = f0(); | |
1975 ; struct Big b = f1(); | |
1976 ; return b.j + b.k + b.m + s.x; | |
1977 ; } | |
1978 | |
1979 | |
1980 | |
1981 ; output from debian-sid_20150616-malta_mips64el_n64 w/ gcc 4.9.2 | |
1982 | |
1983 0000000000000000 <f0>: | |
1984 0: 67bdffe0 daddiu sp,sp,-32 | |
1985 4: ffbe0018 sd s8,24(sp) | |
1986 8: 03a0f02d move s8,sp | |
1987 c: 2402ff84 li v0,-124 | |
1988 10: a3c20000 sb v0,0(s8) | |
1989 14: 93c20000 lbu v0,0(s8) | |
1990 18: 03c0e82d move sp,s8 | |
1991 1c: dfbe0018 ld s8,24(sp) | |
1992 20: 67bd0020 daddiu sp,sp,32 | |
1993 24: 03e00008 jr ra | |
1994 28: 00200825 move at,at | |
1995 | |
1996 000000000000002c <f1>: | |
1997 2c: 67bdffb0 daddiu sp,sp,-80 | |
1998 30: ffbe0048 sd s8,72(sp) | |
1999 34: 03a0f02d move s8,sp | |
2000 38: ffc40030 sd a0,48(s8) | |
2001 3c: 24021c03 li v0,7171 | |
2002 40: ffc20000 sd v0,0(s8) | |
2003 44: 24020063 li v0,99 | |
2004 48: ffc20008 sd v0,8(s8) | |
2005 4c: 2402ff9d li v0,-99 | |
2006 50: ffc20010 sd v0,16(s8) | |
2007 54: 2402f3e2 li v0,-3102 | |
2008 58: ffc20018 sd v0,24(s8) | |
2009 5c: 24020020 li v0,32 | |
2010 60: ffc20020 sd v0,32(s8) | |
2011 64: dfc20030 ld v0,48(s8) | |
2012 68: dfc70000 ld a3,0(s8) | |
2013 6c: dfc60008 ld a2,8(s8) | |
2014 70: dfc50010 ld a1,16(s8) | |
2015 74: dfc40018 ld a0,24(s8) | |
2016 78: dfc30020 ld v1,32(s8) | |
2017 7c: fc470000 sd a3,0(v0) | |
2018 80: fc460008 sd a2,8(v0) | |
2019 84: fc450010 sd a1,16(v0) | |
2020 88: fc440018 sd a0,24(v0) | |
2021 8c: fc430020 sd v1,32(v0) | |
2022 90: dfc20030 ld v0,48(s8) | |
2023 94: 03c0e82d move sp,s8 | |
2024 98: dfbe0048 ld s8,72(sp) | |
2025 9c: 67bd0050 daddiu sp,sp,80 | |
2026 a0: 03e00008 jr ra | |
2027 a4: 00200825 move at,at | |
2028 | |
2029 00000000000000a8 <main>: | |
2030 a8: 67bdffb0 daddiu sp,sp,-80 | |
2031 ac: ffbf0048 sd ra,72(sp) | |
2032 b0: ffbe0040 sd s8,64(sp) | |
2033 b4: ffbc0038 sd gp,56(sp) | |
2034 b8: 03a0f02d move s8,sp | |
2035 bc: 3c1c0000 lui gp,0x0 | |
2036 c0: 0399e02d daddu gp,gp,t9 | |
2037 c4: 679c0000 daddiu gp,gp,0 | |
2038 c8: df820000 ld v0,0(gp) | |
2039 cc: 0040c82d move t9,v0 | |
2040 d0: 0320f809 jalr t9 | |
2041 d4: 00200825 move at,at | |
2042 d8: a3c20000 sb v0,0(s8) | |
2043 dc: 67c20008 daddiu v0,s8,8 | |
2044 e0: 0040202d move a0,v0 | |
2045 e4: df820000 ld v0,0(gp) | |
2046 e8: 0040c82d move t9,v0 | |
2047 ec: 0320f809 jalr t9 | |
2048 f0: 00200825 move at,at | |
2049 f4: dfc30010 ld v1,16(s8) | |
2050 f8: dfc20018 ld v0,24(s8) | |
2051 fc: 0062182d daddu v1,v1,v0 | |
2052 100: dfc20028 ld v0,40(s8) | |
2053 104: 0062102d daddu v0,v1,v0 | |
2054 108: 00021000 sll v0,v0,0x0 | |
2055 10c: 0040182d move v1,v0 | |
2056 110: 83c20000 lb v0,0(s8) | |
2057 114: 00621021 addu v0,v1,v0 | |
2058 118: 03c0e82d move sp,s8 | |
2059 11c: dfbf0048 ld ra,72(sp) | |
2060 120: dfbe0040 ld s8,64(sp) | |
2061 124: dfbc0038 ld gp,56(sp) | |
2062 128: 67bd0050 daddiu sp,sp,80 | |
2063 12c: 03e00008 jr ra | |
2064 130: 00200825 move at,at | |
2065 134: 00200825 move at,at | |
2066 138: 00200825 move at,at | |
2067 13c: 00200825 move at,at | |
2068 | |
2069 | |
2070 | |
2071 ; output from freebsd-12.0_r333647-malta_mips64elhf w/ gcc 4.2.1 (*not* using hard-float) | |
2072 | |
2073 0000000000000000 <f0>: | |
2074 0: 67bdffe0 daddiu sp,sp,-32 | |
2075 4: ffbe0018 sd s8,24(sp) | |
2076 8: ffbc0010 sd gp,16(sp) | |
2077 c: 03a0f02d move s8,sp | |
2078 10: 3c1c0000 lui gp,0x0 | |
2079 14: 0399e02d daddu gp,gp,t9 | |
2080 18: 679c0000 daddiu gp,gp,0 | |
2081 1c: 2402ff84 li v0,-124 | |
2082 20: a3c20000 sb v0,0(s8) | |
2083 24: 93c20000 lbu v0,0(s8) | |
2084 28: 03c0e82d move sp,s8 | |
2085 2c: dfbe0018 ld s8,24(sp) | |
2086 30: dfbc0010 ld gp,16(sp) | |
2087 34: 03e00008 jr ra | |
2088 38: 67bd0020 daddiu sp,sp,32 | |
2089 3c: 00000000 nop | |
2090 | |
2091 0000000000000040 <f1>: | |
2092 40: 67bdffc0 daddiu sp,sp,-64 | |
2093 44: ffbe0038 sd s8,56(sp) | |
2094 48: ffbc0030 sd gp,48(sp) | |
2095 4c: 03a0f02d move s8,sp | |
2096 50: 3c1c0000 lui gp,0x0 | |
2097 54: 0399e02d daddu gp,gp,t9 | |
2098 58: 679c0000 daddiu gp,gp,0 | |
2099 5c: 0080102d move v0,a0 | |
2100 60: df830000 ld v1,0(gp) | |
2101 64: dc630000 ld v1,0(v1) | |
2102 68: df840000 ld a0,0(gp) | |
2103 6c: dc840000 ld a0,0(a0) | |
2104 70: df850000 ld a1,0(gp) | |
2105 74: dca50000 ld a1,0(a1) | |
2106 78: df860000 ld a2,0(gp) | |
2107 7c: dcc60000 ld a2,0(a2) | |
2108 80: df870000 ld a3,0(gp) | |
2109 84: dce70000 ld a3,0(a3) | |
2110 88: ffc30000 sd v1,0(s8) | |
2111 8c: ffc40008 sd a0,8(s8) | |
2112 90: ffc50010 sd a1,16(s8) | |
2113 94: ffc60018 sd a2,24(s8) | |
2114 98: ffc70020 sd a3,32(s8) | |
2115 9c: dfc30000 ld v1,0(s8) | |
2116 a0: dfc40008 ld a0,8(s8) | |
2117 a4: dfc50010 ld a1,16(s8) | |
2118 a8: dfc60018 ld a2,24(s8) | |
2119 ac: dfc70020 ld a3,32(s8) | |
2120 b0: fc430000 sd v1,0(v0) | |
2121 b4: fc440008 sd a0,8(v0) | |
2122 b8: fc450010 sd a1,16(v0) | |
2123 bc: fc460018 sd a2,24(v0) | |
2124 c0: fc470020 sd a3,32(v0) | |
2125 c4: 03c0e82d move sp,s8 | |
2126 c8: dfbe0038 ld s8,56(sp) | |
2127 cc: dfbc0030 ld gp,48(sp) | |
2128 d0: 03e00008 jr ra | |
2129 d4: 67bd0040 daddiu sp,sp,64 | |
2130 | |
2131 00000000000000d8 <main>: | |
2132 d8: 67bdffb0 daddiu sp,sp,-80 | |
2133 dc: ffbf0040 sd ra,64(sp) | |
2134 e0: ffbe0038 sd s8,56(sp) | |
2135 e4: ffbc0030 sd gp,48(sp) | |
2136 e8: 03a0f02d move s8,sp | |
2137 ec: 3c1c0000 lui gp,0x0 | |
2138 f0: 0399e02d daddu gp,gp,t9 | |
2139 f4: 679c0000 daddiu gp,gp,0 | |
2140 f8: df990000 ld t9,0(gp) | |
2141 fc: 0320f809 jalr t9 | |
2142 100: 00000000 nop | |
2143 104: a3c20000 sb v0,0(s8) | |
2144 108: 67c20008 daddiu v0,s8,8 | |
2145 10c: 0040202d move a0,v0 | |
2146 110: df990000 ld t9,0(gp) | |
2147 114: 0320f809 jalr t9 | |
2148 118: 00000000 nop | |
2149 11c: dfc30010 ld v1,16(s8) | |
2150 120: dfc20018 ld v0,24(s8) | |
2151 124: 0062182d daddu v1,v1,v0 | |
2152 128: dfc20028 ld v0,40(s8) | |
2153 12c: 0062102d daddu v0,v1,v0 | |
2154 130: 00021000 sll v0,v0,0x0 | |
2155 134: 0040182d move v1,v0 | |
2156 138: 83c20000 lb v0,0(s8) | |
2157 13c: 00621021 addu v0,v1,v0 | |
2158 140: 03c0e82d move sp,s8 | |
2159 144: dfbf0040 ld ra,64(sp) | |
2160 148: dfbe0038 ld s8,56(sp) | |
2161 14c: dfbc0030 ld gp,48(sp) | |
2162 150: 03e00008 jr ra | |
2163 154: 67bd0050 daddiu sp,sp,80 | |
2164 ... | |
2165 | |
2166 | |
2167 | |
2168 ; ---------- single-field structs by values (and small array fields) ----------> | |
2169 ; | |
2170 ; struct C { char c; }; | |
2171 ; struct S { short s; }; | |
2172 ; struct I { int i; }; | |
2173 ; struct F { float f; }; | |
2174 ; struct D { double d; }; | |
2175 ; | |
2176 ; struct C2 { char c[2]; }; // <= 2 bytes, special alignment | |
2177 ; struct C3 { char c[3]; }; // > 2 bytes, normal alignment | |
2178 ; | |
2179 ; void leaf_call(struct C2 a, struct C b, struct S c, struct I d, struct F e, struct D f, struct C3 g) | |
2180 ; { | |
2181 ; } | |
2182 ; | |
2183 ; int main() | |
2184 ; { | |
2185 ; leaf_call((struct C2){{0,1}}, (struct C){2}, (struct S){3}, (struct I){4}, (struct F){5.f}, (struct D){6.}, (struct C3){{7,8,9}}); | |
2186 ; return 0; | |
2187 ; } | |
2188 | |
2189 | |
2190 | |
2191 ; output from debian-sid_20150616-malta_mips64el_n64 w/ gcc 4.9.2 | |
2192 | |
2193 0000000000000000 <leaf_call>: | |
2194 0: 67bdffa0 daddiu sp,sp,-96 | |
2195 4: ffbe0058 sd s8,88(sp) | |
2196 8: 03a0f02d move s8,sp | |
2197 c: 0080102d move v0,a0 | |
2198 10: 00021000 sll v0,v0,0x0 | |
2199 14: a7c20000 sh v0,0(s8) | |
2200 18: a3c50008 sb a1,8(s8) | |
2201 1c: a7c60010 sh a2,16(s8) | |
2202 20: afc70018 sw a3,24(s8) | |
2203 24: afc80020 sw a4,32(s8) | |
2204 28: f7d10040 sdc1 $f17,64(s8) | |
2205 2c: dfc20040 ld v0,64(s8) | |
2206 30: ffc20038 sd v0,56(s8) | |
2207 34: d7c00038 ldc1 $f0,56(s8) | |
2208 38: f7c00028 sdc1 $f0,40(s8) | |
2209 3c: ffca0030 sd a6,48(s8) | |
2210 40: 03c0e82d move sp,s8 | |
2211 44: dfbe0058 ld s8,88(sp) | |
2212 48: 67bd0060 daddiu sp,sp,96 | |
2213 4c: 03e00008 jr ra | |
2214 50: 00200825 move at,at | |
2215 | |
2216 0000000000000054 <main>: | |
2217 54: 67bdffa0 daddiu sp,sp,-96 | |
2218 58: ffbf0058 sd ra,88(sp) | |
2219 5c: ffbe0050 sd s8,80(sp) | |
2220 60: ffbc0048 sd gp,72(sp) | |
2221 64: 03a0f02d move s8,sp | |
2222 68: 3c1c0000 lui gp,0x0 | |
2223 6c: 0399e02d daddu gp,gp,t9 | |
2224 70: 679c0000 daddiu gp,gp,0 | |
2225 74: a3c00030 sb zero,48(s8) | |
2226 78: 24020001 li v0,1 | |
2227 7c: a3c20031 sb v0,49(s8) | |
2228 80: 24020002 li v0,2 | |
2229 84: a3c20028 sb v0,40(s8) | |
2230 88: 24020003 li v0,3 | |
2231 8c: a7c20020 sh v0,32(s8) | |
2232 90: 24020004 li v0,4 | |
2233 94: afc20018 sw v0,24(s8) | |
2234 98: df820000 ld v0,0(gp) | |
2235 9c: 8c420000 lw v0,0(v0) | |
2236 a0: afc20010 sw v0,16(s8) | |
2237 a4: df820000 ld v0,0(gp) | |
2238 a8: dc420000 ld v0,0(v0) | |
2239 ac: ffc20008 sd v0,8(s8) | |
2240 b0: 24020007 li v0,7 | |
2241 b4: a3c20000 sb v0,0(s8) | |
2242 b8: 24020008 li v0,8 | |
2243 bc: a3c20001 sb v0,1(s8) | |
2244 c0: 24020009 li v0,9 | |
2245 c4: a3c20002 sb v0,2(s8) | |
2246 c8: d7c00008 ldc1 $f0,8(s8) | |
2247 cc: dfc40030 ld a0,48(s8) | |
2248 d0: 93c50028 lbu a1,40(s8) | |
2249 d4: 97c60020 lhu a2,32(s8) | |
2250 d8: 8fc70018 lw a3,24(s8) | |
2251 dc: 8fc80010 lw a4,16(s8) | |
2252 e0: 46200446 mov.d $f17,$f0 | |
2253 e4: dfca0000 ld a6,0(s8) | |
2254 e8: df820000 ld v0,0(gp) | |
2255 ec: 0040c82d move t9,v0 | |
2256 f0: 0320f809 jalr t9 | |
2257 f4: 00200825 move at,at | |
2258 f8: 0000102d move v0,zero | |
2259 fc: 03c0e82d move sp,s8 | |
2260 100: dfbf0058 ld ra,88(sp) | |
2261 104: dfbe0050 ld s8,80(sp) | |
2262 108: dfbc0048 ld gp,72(sp) | |
2263 10c: 67bd0060 daddiu sp,sp,96 | |
2264 110: 03e00008 jr ra | |
2265 114: 00200825 move at,at | |
2266 118: 00200825 move at,at | |
2267 11c: 00200825 move at,at | |
2268 | |
2269 | |
2270 | |
2271 ; output from freebsd-12.0_r333647-malta_mips64elhf w/ gcc 4.2.1 (*not* using hard-float) | |
2272 | |
2273 0000000000000000 <leaf_call>: | |
2274 0: 67bdffc0 daddiu sp,sp,-64 | |
2275 4: ffbe0038 sd s8,56(sp) | |
2276 8: ffbc0030 sd gp,48(sp) | |
2277 c: 03a0f02d move s8,sp | |
2278 10: 3c1c0000 lui gp,0x0 | |
2279 14: 0399e02d daddu gp,gp,t9 | |
2280 18: 679c0000 daddiu gp,gp,0 | |
2281 1c: a7c40000 sh a0,0(s8) | |
2282 20: a3c50008 sb a1,8(s8) | |
2283 24: a7c6000a sh a2,10(s8) | |
2284 28: afc7000c sw a3,12(s8) | |
2285 2c: afc80010 sw a4,16(s8) | |
2286 30: 0120102d move v0,a5 | |
2287 34: ffca0020 sd a6,32(s8) | |
2288 38: ffc20018 sd v0,24(s8) | |
2289 3c: 03c0e82d move sp,s8 | |
2290 40: dfbe0038 ld s8,56(sp) | |
2291 44: dfbc0030 ld gp,48(sp) | |
2292 48: 03e00008 jr ra | |
2293 4c: 67bd0040 daddiu sp,sp,64 | |
2294 | |
2295 0000000000000050 <main>: | |
2296 50: 67bdffb0 daddiu sp,sp,-80 | |
2297 54: ffbf0040 sd ra,64(sp) | |
2298 58: ffbe0038 sd s8,56(sp) | |
2299 5c: ffbc0030 sd gp,48(sp) | |
2300 60: 03a0f02d move s8,sp | |
2301 64: 3c1c0000 lui gp,0x0 | |
2302 68: 0399e02d daddu gp,gp,t9 | |
2303 6c: 679c0000 daddiu gp,gp,0 | |
2304 70: df820000 ld v0,0(gp) | |
2305 74: 90420000 lbu v0,0(v0) | |
2306 78: a3c2001b sb v0,27(s8) | |
2307 7c: df820000 ld v0,0(gp) | |
2308 80: 90420000 lbu v0,0(v0) | |
2309 84: a3c2001c sb v0,28(s8) | |
2310 88: 24020002 li v0,2 | |
2311 8c: a3c2001a sb v0,26(s8) | |
2312 90: 24020003 li v0,3 | |
2313 94: a7c20018 sh v0,24(s8) | |
2314 98: 24020004 li v0,4 | |
2315 9c: afc20014 sw v0,20(s8) | |
2316 a0: df820000 ld v0,0(gp) | |
2317 a4: 8c420000 lw v0,0(v0) | |
2318 a8: afc20010 sw v0,16(s8) | |
2319 ac: df820000 ld v0,0(gp) | |
2320 b0: dc420000 ld v0,0(v0) | |
2321 b4: ffc20008 sd v0,8(s8) | |
2322 b8: df820000 ld v0,0(gp) | |
2323 bc: 94420000 lhu v0,0(v0) | |
2324 c0: a7c20000 sh v0,0(s8) | |
2325 c4: df820000 ld v0,0(gp) | |
2326 c8: 90420000 lbu v0,0(v0) | |
2327 cc: a3c20002 sb v0,2(s8) | |
2328 d0: dfc90008 ld a5,8(s8) | |
2329 d4: 93c3001b lbu v1,27(s8) | |
2330 d8: 93c2001c lbu v0,28(s8) | |
2331 dc: 00021238 dsll v0,v0,0x8 | |
2332 e0: 00431025 or v0,v0,v1 | |
2333 e4: ffc00020 sd zero,32(s8) | |
2334 e8: 3043ffff andi v1,v0,0xffff | |
2335 ec: 3c02ffff lui v0,0xffff | |
2336 f0: dfc40020 ld a0,32(s8) | |
2337 f4: 00821024 and v0,a0,v0 | |
2338 f8: 00431025 or v0,v0,v1 | |
2339 fc: ffc20020 sd v0,32(s8) | |
2340 100: dfc30000 ld v1,0(s8) | |
2341 104: 3c0200ff lui v0,0xff | |
2342 108: 3442ffff ori v0,v0,0xffff | |
2343 10c: 00621824 and v1,v1,v0 | |
2344 110: ffc00028 sd zero,40(s8) | |
2345 114: 3c0200ff lui v0,0xff | |
2346 118: 3442ffff ori v0,v0,0xffff | |
2347 11c: 00621824 and v1,v1,v0 | |
2348 120: 3c02ff00 lui v0,0xff00 | |
2349 124: dfc40028 ld a0,40(s8) | |
2350 128: 00821024 and v0,a0,v0 | |
2351 12c: 00431025 or v0,v0,v1 | |
2352 130: ffc20028 sd v0,40(s8) | |
2353 134: dfc40020 ld a0,32(s8) | |
2354 138: 93c5001a lbu a1,26(s8) | |
2355 13c: 97c60018 lhu a2,24(s8) | |
2356 140: 8fc70014 lw a3,20(s8) | |
2357 144: 8fc80010 lw a4,16(s8) | |
2358 148: dfca0028 ld a6,40(s8) | |
2359 14c: df990000 ld t9,0(gp) | |
2360 150: 0320f809 jalr t9 | |
2361 154: 00000000 nop | |
2362 158: 0000102d move v0,zero | |
2363 15c: 03c0e82d move sp,s8 | |
2364 160: dfbf0040 ld ra,64(sp) | |
2365 164: dfbe0038 ld s8,56(sp) | |
2366 168: dfbc0030 ld gp,48(sp) | |
2367 16c: 03e00008 jr ra | |
2368 170: 67bd0050 daddiu sp,sp,80 | |
2369 ... | |
2370 | |
2371 | |
2372 | |
2373 ; ---------- returning structs by value, focusing on mips64 specifics ----------> | |
2374 ; | |
2375 ; /* first to fp fields returned in fregs, *iff* only fp fields and hard-float platform */ | |
2376 ; struct F { float a; }; | |
2377 ; struct D { double a; }; | |
2378 ; struct FC { float a; char b; }; | |
2379 ; struct LF { long long a; float b; }; | |
2380 ; struct FF { float a, b; }; | |
2381 ; struct DF { double a; float b; }; | |
2382 ; union DFu { double a; float b; }; | |
2383 ; union Du { double a; }; | |
2384 ; | |
2385 ; struct F f_F() { return (struct F){132.f}; } | |
2386 ; struct D f_D() { return (struct D){132.}; } | |
2387 ; struct FC f_FC() { return (struct FC){132.f,2}; } | |
2388 ; struct LF f_LF() { return (struct LF){-12349,132.f}; } | |
2389 ; struct FF f_FF() { return (struct FF){-349.f,132.f}; } | |
2390 ; struct DF f_DF() { return (struct DF){-349.,132.f}; } | |
2391 ; union Du f_Du() { return (union Du){-349.}; } /* not returned in fregs, b/c union*/ | |
2392 ; union DFu f_DFu() { return (union DFu){-349.}; } /* not returned in fregs, b/c union*/ | |
2393 ; | |
2394 ; int main() | |
2395 ; { | |
2396 ; struct F a = f_F(); | |
2397 ; struct D b = f_D(); | |
2398 ; struct FC c = f_FC(); | |
2399 ; struct LF d = f_LF(); | |
2400 ; struct FF e = f_FF(); | |
2401 ; struct DF f = f_DF(); | |
2402 ; union Du g = f_Du(); | |
2403 ; union DFu h = f_DFu(); | |
2404 ; return 0; | |
2405 ; } | |
2406 | |
2407 | |
2408 | |
2409 ; output from debian-sid_20150616-malta_mips64el_n64 w/ gcc 4.9.2 | |
2410 | |
2411 0000000000000000 <f_F>: | |
2412 0: 67bdfff0 daddiu sp,sp,-16 | |
2413 4: ffbe0008 sd s8,8(sp) | |
2414 8: 03a0f02d move s8,sp | |
2415 c: 3c030000 lui v1,0x0 | |
2416 10: 0079182d daddu v1,v1,t9 | |
2417 14: 64630000 daddiu v1,v1,0 | |
2418 18: dc620000 ld v0,0(v1) | |
2419 1c: c4400000 lwc1 $f0,0(v0) | |
2420 20: 03c0e82d move sp,s8 | |
2421 24: dfbe0008 ld s8,8(sp) | |
2422 28: 67bd0010 daddiu sp,sp,16 | |
2423 2c: 03e00008 jr ra | |
2424 30: 00200825 move at,at | |
2425 | |
2426 0000000000000034 <f_D>: | |
2427 34: 67bdfff0 daddiu sp,sp,-16 | |
2428 38: ffbe0008 sd s8,8(sp) | |
2429 3c: 03a0f02d move s8,sp | |
2430 40: 3c030000 lui v1,0x0 | |
2431 44: 0079182d daddu v1,v1,t9 | |
2432 48: 64630000 daddiu v1,v1,0 | |
2433 4c: dc620000 ld v0,0(v1) | |
2434 50: d4400000 ldc1 $f0,0(v0) | |
2435 54: 03c0e82d move sp,s8 | |
2436 58: dfbe0008 ld s8,8(sp) | |
2437 5c: 67bd0010 daddiu sp,sp,16 | |
2438 60: 03e00008 jr ra | |
2439 64: 00200825 move at,at | |
2440 | |
2441 0000000000000068 <f_FC>: | |
2442 68: 67bdffe0 daddiu sp,sp,-32 | |
2443 6c: ffbe0018 sd s8,24(sp) | |
2444 70: 03a0f02d move s8,sp | |
2445 74: 3c050000 lui a1,0x0 | |
2446 78: 00b9282d daddu a1,a1,t9 | |
2447 7c: 64a50000 daddiu a1,a1,0 | |
2448 80: dca20000 ld v0,0(a1) | |
2449 84: 64430000 daddiu v1,v0,0 | |
2450 88: 68630007 ldl v1,7(v1) | |
2451 8c: 0060202d move a0,v1 | |
2452 90: 6c440000 ldr a0,0(v0) | |
2453 94: 0080102d move v0,a0 | |
2454 98: ffc20000 sd v0,0(s8) | |
2455 9c: 0000102d move v0,zero | |
2456 a0: 9fc30000 lwu v1,0(s8) | |
2457 a4: 0003183c dsll32 v1,v1,0x0 | |
2458 a8: 0003183e dsrl32 v1,v1,0x0 | |
2459 ac: 2404ffff li a0,-1 | |
2460 b0: 0004203c dsll32 a0,a0,0x0 | |
2461 b4: 00441024 and v0,v0,a0 | |
2462 b8: 00431025 or v0,v0,v1 | |
2463 bc: 9fc30004 lwu v1,4(s8) | |
2464 c0: 0003183c dsll32 v1,v1,0x0 | |
2465 c4: 0002103c dsll32 v0,v0,0x0 | |
2466 c8: 0002103e dsrl32 v0,v0,0x0 | |
2467 cc: 00431025 or v0,v0,v1 | |
2468 d0: 03c0e82d move sp,s8 | |
2469 d4: dfbe0018 ld s8,24(sp) | |
2470 d8: 67bd0020 daddiu sp,sp,32 | |
2471 dc: 03e00008 jr ra | |
2472 e0: 00200825 move at,at | |
2473 | |
2474 00000000000000e4 <f_LF>: | |
2475 e4: 67bdffe0 daddiu sp,sp,-32 | |
2476 e8: ffbe0018 sd s8,24(sp) | |
2477 ec: 03a0f02d move s8,sp | |
2478 f0: 3c060000 lui a2,0x0 | |
2479 f4: 00d9302d daddu a2,a2,t9 | |
2480 f8: 64c60000 daddiu a2,a2,0 | |
2481 fc: 2402cfc3 li v0,-12349 | |
2482 100: ffc20000 sd v0,0(s8) | |
2483 104: dcc20000 ld v0,0(a2) | |
2484 108: 8c420000 lw v0,0(v0) | |
2485 10c: afc20008 sw v0,8(s8) | |
2486 110: 0000182d move v1,zero | |
2487 114: dfc30000 ld v1,0(s8) | |
2488 118: 0000102d move v0,zero | |
2489 11c: dfc20008 ld v0,8(s8) | |
2490 120: 0060202d move a0,v1 | |
2491 124: 0040282d move a1,v0 | |
2492 128: 0080102d move v0,a0 | |
2493 12c: 00a0182d move v1,a1 | |
2494 130: 03c0e82d move sp,s8 | |
2495 134: dfbe0018 ld s8,24(sp) | |
2496 138: 67bd0020 daddiu sp,sp,32 | |
2497 13c: 03e00008 jr ra | |
2498 140: 00200825 move at,at | |
2499 | |
2500 0000000000000144 <f_FF>: | |
2501 144: 67bdffd0 daddiu sp,sp,-48 | |
2502 148: ffbe0028 sd s8,40(sp) | |
2503 14c: 03a0f02d move s8,sp | |
2504 150: 3c050000 lui a1,0x0 | |
2505 154: 00b9282d daddu a1,a1,t9 | |
2506 158: 64a50000 daddiu a1,a1,0 | |
2507 15c: dca20000 ld v0,0(a1) | |
2508 160: 64430000 daddiu v1,v0,0 | |
2509 164: 68630007 ldl v1,7(v1) | |
2510 168: 0060202d move a0,v1 | |
2511 16c: 6c440000 ldr a0,0(v0) | |
2512 170: 0080102d move v0,a0 | |
2513 174: ffc20000 sd v0,0(s8) | |
2514 178: c7c10000 lwc1 $f1,0(s8) | |
2515 17c: c7c00004 lwc1 $f0,4(s8) | |
2516 180: 46000886 mov.s $f2,$f1 | |
2517 184: 46000046 mov.s $f1,$f0 | |
2518 188: 46001006 mov.s $f0,$f2 | |
2519 18c: 46000886 mov.s $f2,$f1 | |
2520 190: 03c0e82d move sp,s8 | |
2521 194: dfbe0028 ld s8,40(sp) | |
2522 198: 67bd0030 daddiu sp,sp,48 | |
2523 19c: 03e00008 jr ra | |
2524 1a0: 00200825 move at,at | |
2525 | |
2526 00000000000001a4 <f_DF>: | |
2527 1a4: 67bdffd0 daddiu sp,sp,-48 | |
2528 1a8: ffbe0028 sd s8,40(sp) | |
2529 1ac: 03a0f02d move s8,sp | |
2530 1b0: 3c030000 lui v1,0x0 | |
2531 1b4: 0079182d daddu v1,v1,t9 | |
2532 1b8: 64630000 daddiu v1,v1,0 | |
2533 1bc: dc620000 ld v0,0(v1) | |
2534 1c0: dc420000 ld v0,0(v0) | |
2535 1c4: ffc20000 sd v0,0(s8) | |
2536 1c8: dc620000 ld v0,0(v1) | |
2537 1cc: 8c420000 lw v0,0(v0) | |
2538 1d0: afc20008 sw v0,8(s8) | |
2539 1d4: d7c10000 ldc1 $f1,0(s8) | |
2540 1d8: c7c00008 lwc1 $f0,8(s8) | |
2541 1dc: 46200886 mov.d $f2,$f1 | |
2542 1e0: 46000046 mov.s $f1,$f0 | |
2543 1e4: 46201006 mov.d $f0,$f2 | |
2544 1e8: 46000886 mov.s $f2,$f1 | |
2545 1ec: 03c0e82d move sp,s8 | |
2546 1f0: dfbe0028 ld s8,40(sp) | |
2547 1f4: 67bd0030 daddiu sp,sp,48 | |
2548 1f8: 03e00008 jr ra | |
2549 1fc: 00200825 move at,at | |
2550 | |
2551 0000000000000200 <f_Du>: | |
2552 200: 67bdfff0 daddiu sp,sp,-16 | |
2553 204: ffbe0008 sd s8,8(sp) | |
2554 208: 03a0f02d move s8,sp | |
2555 20c: 3c02fffc lui v0,0xfffc | |
2556 210: 3442075d ori v0,v0,0x75d | |
2557 214: 0002133c dsll32 v0,v0,0xc | |
2558 218: 03c0e82d move sp,s8 | |
2559 21c: dfbe0008 ld s8,8(sp) | |
2560 220: 67bd0010 daddiu sp,sp,16 | |
2561 224: 03e00008 jr ra | |
2562 228: 00200825 move at,at | |
2563 | |
2564 000000000000022c <f_DFu>: | |
2565 22c: 67bdfff0 daddiu sp,sp,-16 | |
2566 230: ffbe0008 sd s8,8(sp) | |
2567 234: 03a0f02d move s8,sp | |
2568 238: 3c02fffc lui v0,0xfffc | |
2569 23c: 3442075d ori v0,v0,0x75d | |
2570 240: 0002133c dsll32 v0,v0,0xc | |
2571 244: 03c0e82d move sp,s8 | |
2572 248: dfbe0008 ld s8,8(sp) | |
2573 24c: 67bd0010 daddiu sp,sp,16 | |
2574 250: 03e00008 jr ra | |
2575 254: 00200825 move at,at | |
2576 | |
2577 0000000000000258 <main>: | |
2578 258: 67bdff90 daddiu sp,sp,-112 | |
2579 25c: ffbf0068 sd ra,104(sp) | |
2580 260: ffbe0060 sd s8,96(sp) | |
2581 264: ffbc0058 sd gp,88(sp) | |
2582 268: 03a0f02d move s8,sp | |
2583 26c: 3c1c0000 lui gp,0x0 | |
2584 270: 0399e02d daddu gp,gp,t9 | |
2585 274: 679c0000 daddiu gp,gp,0 | |
2586 278: df820000 ld v0,0(gp) | |
2587 27c: 0040c82d move t9,v0 | |
2588 280: 0320f809 jalr t9 | |
2589 284: 00200825 move at,at | |
2590 288: e7c00000 swc1 $f0,0(s8) | |
2591 28c: df820000 ld v0,0(gp) | |
2592 290: 0040c82d move t9,v0 | |
2593 294: 0320f809 jalr t9 | |
2594 298: 00200825 move at,at | |
2595 29c: f7c00008 sdc1 $f0,8(s8) | |
2596 2a0: df820000 ld v0,0(gp) | |
2597 2a4: 0040c82d move t9,v0 | |
2598 2a8: 0320f809 jalr t9 | |
2599 2ac: 00200825 move at,at | |
2600 2b0: ffc20010 sd v0,16(s8) | |
2601 2b4: df820000 ld v0,0(gp) | |
2602 2b8: 0040c82d move t9,v0 | |
2603 2bc: 0320f809 jalr t9 | |
2604 2c0: 00200825 move at,at | |
2605 2c4: ffc20018 sd v0,24(s8) | |
2606 2c8: ffc30020 sd v1,32(s8) | |
2607 2cc: df820000 ld v0,0(gp) | |
2608 2d0: 0040c82d move t9,v0 | |
2609 2d4: 0320f809 jalr t9 | |
2610 2d8: 00200825 move at,at | |
2611 2dc: 46000046 mov.s $f1,$f0 | |
2612 2e0: 46001006 mov.s $f0,$f2 | |
2613 2e4: e7c10028 swc1 $f1,40(s8) | |
2614 2e8: e7c0002c swc1 $f0,44(s8) | |
2615 2ec: df820000 ld v0,0(gp) | |
2616 2f0: 0040c82d move t9,v0 | |
2617 2f4: 0320f809 jalr t9 | |
2618 2f8: 00200825 move at,at | |
2619 2fc: 46200046 mov.d $f1,$f0 | |
2620 300: 46001006 mov.s $f0,$f2 | |
2621 304: f7c10030 sdc1 $f1,48(s8) | |
2622 308: e7c00038 swc1 $f0,56(s8) | |
2623 30c: df820000 ld v0,0(gp) | |
2624 310: 0040c82d move t9,v0 | |
2625 314: 0320f809 jalr t9 | |
2626 318: 00200825 move at,at | |
2627 31c: ffc20040 sd v0,64(s8) | |
2628 320: df820000 ld v0,0(gp) | |
2629 324: 0040c82d move t9,v0 | |
2630 328: 0320f809 jalr t9 | |
2631 32c: 00200825 move at,at | |
2632 330: ffc20048 sd v0,72(s8) | |
2633 334: 0000102d move v0,zero | |
2634 338: 03c0e82d move sp,s8 | |
2635 33c: dfbf0068 ld ra,104(sp) | |
2636 340: dfbe0060 ld s8,96(sp) | |
2637 344: dfbc0058 ld gp,88(sp) | |
2638 348: 67bd0070 daddiu sp,sp,112 | |
2639 34c: 03e00008 jr ra | |
2640 350: 00200825 move at,at | |
2641 354: 00200825 move at,at | |
2642 358: 00200825 move at,at | |
2643 35c: 00200825 move at,at | |
2644 | |
2645 | |
2646 | |
2647 ; output from freebsd-12.0_r333647-malta_mips64elhf w/ gcc 4.2.1 (*not* using hard-float) | |
2648 | |
2649 0000000000000000 <f_F>: | |
2650 0: 67bdffe0 daddiu sp,sp,-32 | |
2651 4: ffbe0018 sd s8,24(sp) | |
2652 8: ffbc0010 sd gp,16(sp) | |
2653 c: 03a0f02d move s8,sp | |
2654 10: 3c1c0000 lui gp,0x0 | |
2655 14: 0399e02d daddu gp,gp,t9 | |
2656 18: 679c0000 daddiu gp,gp,0 | |
2657 1c: df820000 ld v0,0(gp) | |
2658 20: 8c420000 lw v0,0(v0) | |
2659 24: afc20000 sw v0,0(s8) | |
2660 28: 8fc20000 lw v0,0(s8) | |
2661 2c: 03c0e82d move sp,s8 | |
2662 30: dfbe0018 ld s8,24(sp) | |
2663 34: dfbc0010 ld gp,16(sp) | |
2664 38: 03e00008 jr ra | |
2665 3c: 67bd0020 daddiu sp,sp,32 | |
2666 | |
2667 0000000000000040 <f_D>: | |
2668 40: 67bdffe0 daddiu sp,sp,-32 | |
2669 44: ffbe0018 sd s8,24(sp) | |
2670 48: ffbc0010 sd gp,16(sp) | |
2671 4c: 03a0f02d move s8,sp | |
2672 50: 3c1c0000 lui gp,0x0 | |
2673 54: 0399e02d daddu gp,gp,t9 | |
2674 58: 679c0000 daddiu gp,gp,0 | |
2675 5c: df820000 ld v0,0(gp) | |
2676 60: dc420000 ld v0,0(v0) | |
2677 64: ffc20000 sd v0,0(s8) | |
2678 68: dfc20000 ld v0,0(s8) | |
2679 6c: 03c0e82d move sp,s8 | |
2680 70: dfbe0018 ld s8,24(sp) | |
2681 74: dfbc0010 ld gp,16(sp) | |
2682 78: 03e00008 jr ra | |
2683 7c: 67bd0020 daddiu sp,sp,32 | |
2684 | |
2685 0000000000000080 <f_FC>: | |
2686 80: 67bdffd0 daddiu sp,sp,-48 | |
2687 84: ffbe0028 sd s8,40(sp) | |
2688 88: ffbc0020 sd gp,32(sp) | |
2689 8c: 03a0f02d move s8,sp | |
2690 90: 3c1c0000 lui gp,0x0 | |
2691 94: 0399e02d daddu gp,gp,t9 | |
2692 98: 679c0000 daddiu gp,gp,0 | |
2693 9c: df820000 ld v0,0(gp) | |
2694 a0: dc420000 ld v0,0(v0) | |
2695 a4: ffc20000 sd v0,0(s8) | |
2696 a8: dfc20000 ld v0,0(s8) | |
2697 ac: ffc20008 sd v0,8(s8) | |
2698 b0: ffc00010 sd zero,16(s8) | |
2699 b4: 9fc30008 lwu v1,8(s8) | |
2700 b8: 24020001 li v0,1 | |
2701 bc: 0002103c dsll32 v0,v0,0x0 | |
2702 c0: 6442ffff daddiu v0,v0,-1 | |
2703 c4: 00621824 and v1,v1,v0 | |
2704 c8: 2402ffff li v0,-1 | |
2705 cc: 0002103c dsll32 v0,v0,0x0 | |
2706 d0: dfc40010 ld a0,16(s8) | |
2707 d4: 00821024 and v0,a0,v0 | |
2708 d8: 00431025 or v0,v0,v1 | |
2709 dc: ffc20010 sd v0,16(s8) | |
2710 e0: 9fc2000c lwu v0,12(s8) | |
2711 e4: 0002183c dsll32 v1,v0,0x0 | |
2712 e8: 24020001 li v0,1 | |
2713 ec: 0002103c dsll32 v0,v0,0x0 | |
2714 f0: 6442ffff daddiu v0,v0,-1 | |
2715 f4: dfc40010 ld a0,16(s8) | |
2716 f8: 00821024 and v0,a0,v0 | |
2717 fc: 00431025 or v0,v0,v1 | |
2718 100: ffc20010 sd v0,16(s8) | |
2719 104: dfc20010 ld v0,16(s8) | |
2720 108: 03c0e82d move sp,s8 | |
2721 10c: dfbe0028 ld s8,40(sp) | |
2722 110: dfbc0020 ld gp,32(sp) | |
2723 114: 03e00008 jr ra | |
2724 118: 67bd0030 daddiu sp,sp,48 | |
2725 11c: 00000000 nop | |
2726 | |
2727 0000000000000120 <f_LF>: | |
2728 120: 67bdffc0 daddiu sp,sp,-64 | |
2729 124: ffbe0038 sd s8,56(sp) | |
2730 128: ffbc0030 sd gp,48(sp) | |
2731 12c: 03a0f02d move s8,sp | |
2732 130: 3c1c0000 lui gp,0x0 | |
2733 134: 0399e02d daddu gp,gp,t9 | |
2734 138: 679c0000 daddiu gp,gp,0 | |
2735 13c: df820000 ld v0,0(gp) | |
2736 140: dc420000 ld v0,0(v0) | |
2737 144: df830000 ld v1,0(gp) | |
2738 148: dc630000 ld v1,0(v1) | |
2739 14c: ffc20000 sd v0,0(s8) | |
2740 150: ffc30008 sd v1,8(s8) | |
2741 154: dfc20000 ld v0,0(s8) | |
2742 158: dfc30008 ld v1,8(s8) | |
2743 15c: ffc20010 sd v0,16(s8) | |
2744 160: ffc30018 sd v1,24(s8) | |
2745 164: dfc20010 ld v0,16(s8) | |
2746 168: dfc30018 ld v1,24(s8) | |
2747 16c: ffc20020 sd v0,32(s8) | |
2748 170: ffc30028 sd v1,40(s8) | |
2749 174: dfc20020 ld v0,32(s8) | |
2750 178: 0040202d move a0,v0 | |
2751 17c: dfc20028 ld v0,40(s8) | |
2752 180: 0040282d move a1,v0 | |
2753 184: 0080102d move v0,a0 | |
2754 188: 00a0182d move v1,a1 | |
2755 18c: 03c0e82d move sp,s8 | |
2756 190: dfbe0038 ld s8,56(sp) | |
2757 194: dfbc0030 ld gp,48(sp) | |
2758 198: 03e00008 jr ra | |
2759 19c: 67bd0040 daddiu sp,sp,64 | |
2760 | |
2761 00000000000001a0 <f_FF>: | |
2762 1a0: 67bdffd0 daddiu sp,sp,-48 | |
2763 1a4: ffbe0028 sd s8,40(sp) | |
2764 1a8: ffbc0020 sd gp,32(sp) | |
2765 1ac: 03a0f02d move s8,sp | |
2766 1b0: 3c1c0000 lui gp,0x0 | |
2767 1b4: 0399e02d daddu gp,gp,t9 | |
2768 1b8: 679c0000 daddiu gp,gp,0 | |
2769 1bc: df820000 ld v0,0(gp) | |
2770 1c0: dc420000 ld v0,0(v0) | |
2771 1c4: ffc20000 sd v0,0(s8) | |
2772 1c8: dfc20000 ld v0,0(s8) | |
2773 1cc: ffc20008 sd v0,8(s8) | |
2774 1d0: 8fc20008 lw v0,8(s8) | |
2775 1d4: 8fc3000c lw v1,12(s8) | |
2776 1d8: 0060202d move a0,v1 | |
2777 1dc: 03c0e82d move sp,s8 | |
2778 1e0: dfbe0028 ld s8,40(sp) | |
2779 1e4: dfbc0020 ld gp,32(sp) | |
2780 1e8: 03e00008 jr ra | |
2781 1ec: 67bd0030 daddiu sp,sp,48 | |
2782 | |
2783 00000000000001f0 <f_DF>: | |
2784 1f0: 67bdffc0 daddiu sp,sp,-64 | |
2785 1f4: ffbe0038 sd s8,56(sp) | |
2786 1f8: ffbc0030 sd gp,48(sp) | |
2787 1fc: 03a0f02d move s8,sp | |
2788 200: 3c1c0000 lui gp,0x0 | |
2789 204: 0399e02d daddu gp,gp,t9 | |
2790 208: 679c0000 daddiu gp,gp,0 | |
2791 20c: df820000 ld v0,0(gp) | |
2792 210: dc420000 ld v0,0(v0) | |
2793 214: df830000 ld v1,0(gp) | |
2794 218: dc630000 ld v1,0(v1) | |
2795 21c: ffc20000 sd v0,0(s8) | |
2796 220: ffc30008 sd v1,8(s8) | |
2797 224: dfc20000 ld v0,0(s8) | |
2798 228: dfc30008 ld v1,8(s8) | |
2799 22c: ffc20010 sd v0,16(s8) | |
2800 230: ffc30018 sd v1,24(s8) | |
2801 234: dfc20010 ld v0,16(s8) | |
2802 238: 8fc30018 lw v1,24(s8) | |
2803 23c: 0060202d move a0,v1 | |
2804 240: 03c0e82d move sp,s8 | |
2805 244: dfbe0038 ld s8,56(sp) | |
2806 248: dfbc0030 ld gp,48(sp) | |
2807 24c: 03e00008 jr ra | |
2808 250: 67bd0040 daddiu sp,sp,64 | |
2809 254: 00000000 nop | |
2810 | |
2811 0000000000000258 <f_Du>: | |
2812 258: 67bdffe0 daddiu sp,sp,-32 | |
2813 25c: ffbe0018 sd s8,24(sp) | |
2814 260: ffbc0010 sd gp,16(sp) | |
2815 264: 03a0f02d move s8,sp | |
2816 268: 3c1c0000 lui gp,0x0 | |
2817 26c: 0399e02d daddu gp,gp,t9 | |
2818 270: 679c0000 daddiu gp,gp,0 | |
2819 274: ffc00000 sd zero,0(s8) | |
2820 278: df820000 ld v0,0(gp) | |
2821 27c: dc420000 ld v0,0(v0) | |
2822 280: ffc20000 sd v0,0(s8) | |
2823 284: dfc20000 ld v0,0(s8) | |
2824 288: 03c0e82d move sp,s8 | |
2825 28c: dfbe0018 ld s8,24(sp) | |
2826 290: dfbc0010 ld gp,16(sp) | |
2827 294: 03e00008 jr ra | |
2828 298: 67bd0020 daddiu sp,sp,32 | |
2829 29c: 00000000 nop | |
2830 | |
2831 00000000000002a0 <f_DFu>: | |
2832 2a0: 67bdffe0 daddiu sp,sp,-32 | |
2833 2a4: ffbe0018 sd s8,24(sp) | |
2834 2a8: ffbc0010 sd gp,16(sp) | |
2835 2ac: 03a0f02d move s8,sp | |
2836 2b0: 3c1c0000 lui gp,0x0 | |
2837 2b4: 0399e02d daddu gp,gp,t9 | |
2838 2b8: 679c0000 daddiu gp,gp,0 | |
2839 2bc: ffc00000 sd zero,0(s8) | |
2840 2c0: df820000 ld v0,0(gp) | |
2841 2c4: dc420000 ld v0,0(v0) | |
2842 2c8: ffc20000 sd v0,0(s8) | |
2843 2cc: dfc20000 ld v0,0(s8) | |
2844 2d0: 03c0e82d move sp,s8 | |
2845 2d4: dfbe0018 ld s8,24(sp) | |
2846 2d8: dfbc0010 ld gp,16(sp) | |
2847 2dc: 03e00008 jr ra | |
2848 2e0: 67bd0020 daddiu sp,sp,32 | |
2849 2e4: 00000000 nop | |
2850 | |
2851 00000000000002e8 <main>: | |
2852 2e8: 67bdff70 daddiu sp,sp,-144 | |
2853 2ec: ffbf0080 sd ra,128(sp) | |
2854 2f0: ffbe0078 sd s8,120(sp) | |
2855 2f4: ffbc0070 sd gp,112(sp) | |
2856 2f8: 03a0f02d move s8,sp | |
2857 2fc: 3c1c0000 lui gp,0x0 | |
2858 300: 0399e02d daddu gp,gp,t9 | |
2859 304: 679c0000 daddiu gp,gp,0 | |
2860 308: df990000 ld t9,0(gp) | |
2861 30c: 0320f809 jalr t9 | |
2862 310: 00000000 nop | |
2863 314: afc20000 sw v0,0(s8) | |
2864 318: df990000 ld t9,0(gp) | |
2865 31c: 0320f809 jalr t9 | |
2866 320: 00000000 nop | |
2867 324: ffc20008 sd v0,8(s8) | |
2868 328: df990000 ld t9,0(gp) | |
2869 32c: 0320f809 jalr t9 | |
2870 330: 00000000 nop | |
2871 334: 0002203c dsll32 a0,v0,0x0 | |
2872 338: 0004203e dsrl32 a0,a0,0x0 | |
2873 33c: 24030001 li v1,1 | |
2874 340: 0003183c dsll32 v1,v1,0x0 | |
2875 344: 6463ffff daddiu v1,v1,-1 | |
2876 348: 00832824 and a1,a0,v1 | |
2877 34c: dfc40050 ld a0,80(s8) | |
2878 350: 2403ffff li v1,-1 | |
2879 354: 0003183c dsll32 v1,v1,0x0 | |
2880 358: 00831824 and v1,a0,v1 | |
2881 35c: 00651825 or v1,v1,a1 | |
2882 360: ffc30050 sd v1,80(s8) | |
2883 364: 0002103e dsrl32 v0,v0,0x0 | |
2884 368: 0002203c dsll32 a0,v0,0x0 | |
2885 36c: dfc30050 ld v1,80(s8) | |
2886 370: 24020001 li v0,1 | |
2887 374: 0002103c dsll32 v0,v0,0x0 | |
2888 378: 6442ffff daddiu v0,v0,-1 | |
2889 37c: 00621024 and v0,v1,v0 | |
2890 380: 00441025 or v0,v0,a0 | |
2891 384: ffc20050 sd v0,80(s8) | |
2892 388: dfc20050 ld v0,80(s8) | |
2893 38c: ffc20010 sd v0,16(s8) | |
2894 390: df990000 ld t9,0(gp) | |
2895 394: 0320f809 jalr t9 | |
2896 398: 00000000 nop | |
2897 39c: ffc20058 sd v0,88(s8) | |
2898 3a0: ffc30060 sd v1,96(s8) | |
2899 3a4: dfc20058 ld v0,88(s8) | |
2900 3a8: dfc30060 ld v1,96(s8) | |
2901 3ac: ffc20018 sd v0,24(s8) | |
2902 3b0: ffc30020 sd v1,32(s8) | |
2903 3b4: df990000 ld t9,0(gp) | |
2904 3b8: 0320f809 jalr t9 | |
2905 3bc: 00000000 nop | |
2906 3c0: 0080182d move v1,a0 | |
2907 3c4: afc20050 sw v0,80(s8) | |
2908 3c8: afc30054 sw v1,84(s8) | |
2909 3cc: dfc20050 ld v0,80(s8) | |
2910 3d0: ffc20028 sd v0,40(s8) | |
2911 3d4: df990000 ld t9,0(gp) | |
2912 3d8: 0320f809 jalr t9 | |
2913 3dc: 00000000 nop | |
2914 3e0: 0080182d move v1,a0 | |
2915 3e4: ffc20050 sd v0,80(s8) | |
2916 3e8: afc30058 sw v1,88(s8) | |
2917 3ec: dfc20050 ld v0,80(s8) | |
2918 3f0: dfc30058 ld v1,88(s8) | |
2919 3f4: ffc20030 sd v0,48(s8) | |
2920 3f8: ffc30038 sd v1,56(s8) | |
2921 3fc: df990000 ld t9,0(gp) | |
2922 400: 0320f809 jalr t9 | |
2923 404: 00000000 nop | |
2924 408: ffc20040 sd v0,64(s8) | |
2925 40c: df990000 ld t9,0(gp) | |
2926 410: 0320f809 jalr t9 | |
2927 414: 00000000 nop | |
2928 418: ffc20048 sd v0,72(s8) | |
2929 41c: 0000102d move v0,zero | |
2930 420: 03c0e82d move sp,s8 | |
2931 424: dfbf0080 ld ra,128(sp) | |
2932 428: dfbe0078 ld s8,120(sp) | |
2933 42c: dfbc0070 ld gp,112(sp) | |
2934 430: 03e00008 jr ra | |
2935 434: 67bd0090 daddiu sp,sp,144 | |
2936 | |
2937 | |
2938 | |
2939 ; output from freebsd-12.0_r333647-malta_mips64ebhf w/ gcc 4.2.1 *and* -mhard-float | |
2940 | |
2941 0000000000000000 <f_F>: | |
2942 0: 67bdffe0 daddiu sp,sp,-32 | |
2943 4: ffbe0018 sd s8,24(sp) | |
2944 8: ffbc0010 sd gp,16(sp) | |
2945 c: 03a0f02d move s8,sp | |
2946 10: 3c1c0000 lui gp,0x0 | |
2947 14: 0399e02d daddu gp,gp,t9 | |
2948 18: 679c0000 daddiu gp,gp,0 | |
2949 1c: df810000 ld at,0(gp) | |
2950 20: c4200000 lwc1 $f0,0(at) | |
2951 24: e7c00000 swc1 $f0,0(s8) | |
2952 28: c7c00000 lwc1 $f0,0(s8) | |
2953 2c: 03c0e82d move sp,s8 | |
2954 30: dfbe0018 ld s8,24(sp) | |
2955 34: dfbc0010 ld gp,16(sp) | |
2956 38: 03e00008 jr ra | |
2957 3c: 67bd0020 daddiu sp,sp,32 | |
2958 | |
2959 0000000000000040 <f_D>: | |
2960 40: 67bdffe0 daddiu sp,sp,-32 | |
2961 44: ffbe0018 sd s8,24(sp) | |
2962 48: ffbc0010 sd gp,16(sp) | |
2963 4c: 03a0f02d move s8,sp | |
2964 50: 3c1c0000 lui gp,0x0 | |
2965 54: 0399e02d daddu gp,gp,t9 | |
2966 58: 679c0000 daddiu gp,gp,0 | |
2967 5c: df810000 ld at,0(gp) | |
2968 60: d4200000 ldc1 $f0,0(at) | |
2969 64: f7c00000 sdc1 $f0,0(s8) | |
2970 68: d7c00000 ldc1 $f0,0(s8) | |
2971 6c: 03c0e82d move sp,s8 | |
2972 70: dfbe0018 ld s8,24(sp) | |
2973 74: dfbc0010 ld gp,16(sp) | |
2974 78: 03e00008 jr ra | |
2975 7c: 67bd0020 daddiu sp,sp,32 | |
2976 | |
2977 0000000000000080 <f_FC>: | |
2978 80: 67bdffd0 daddiu sp,sp,-48 | |
2979 84: ffbe0028 sd s8,40(sp) | |
2980 88: ffbc0020 sd gp,32(sp) | |
2981 8c: 03a0f02d move s8,sp | |
2982 90: 3c1c0000 lui gp,0x0 | |
2983 94: 0399e02d daddu gp,gp,t9 | |
2984 98: 679c0000 daddiu gp,gp,0 | |
2985 9c: df820000 ld v0,0(gp) | |
2986 a0: dc420000 ld v0,0(v0) | |
2987 a4: ffc20000 sd v0,0(s8) | |
2988 a8: dfc20000 ld v0,0(s8) | |
2989 ac: ffc20008 sd v0,8(s8) | |
2990 b0: ffc00010 sd zero,16(s8) | |
2991 b4: dfc20008 ld v0,8(s8) | |
2992 b8: 0002103e dsrl32 v0,v0,0x0 | |
2993 bc: 0002183c dsll32 v1,v0,0x0 | |
2994 c0: 24020001 li v0,1 | |
2995 c4: 0002103c dsll32 v0,v0,0x0 | |
2996 c8: 6442ffff daddiu v0,v0,-1 | |
2997 cc: dfc40010 ld a0,16(s8) | |
2998 d0: 00821024 and v0,a0,v0 | |
2999 d4: 00431025 or v0,v0,v1 | |
3000 d8: ffc20010 sd v0,16(s8) | |
3001 dc: dfc30008 ld v1,8(s8) | |
3002 e0: 24020001 li v0,1 | |
3003 e4: 0002103c dsll32 v0,v0,0x0 | |
3004 e8: 6442ffff daddiu v0,v0,-1 | |
3005 ec: 00621824 and v1,v1,v0 | |
3006 f0: 24020001 li v0,1 | |
3007 f4: 0002103c dsll32 v0,v0,0x0 | |
3008 f8: 6442ffff daddiu v0,v0,-1 | |
3009 fc: 00621824 and v1,v1,v0 | |
3010 100: 2402ffff li v0,-1 | |
3011 104: 0002103c dsll32 v0,v0,0x0 | |
3012 108: dfc40010 ld a0,16(s8) | |
3013 10c: 00821024 and v0,a0,v0 | |
3014 110: 00431025 or v0,v0,v1 | |
3015 114: ffc20010 sd v0,16(s8) | |
3016 118: dfc20010 ld v0,16(s8) | |
3017 11c: 03c0e82d move sp,s8 | |
3018 120: dfbe0028 ld s8,40(sp) | |
3019 124: dfbc0020 ld gp,32(sp) | |
3020 128: 03e00008 jr ra | |
3021 12c: 67bd0030 daddiu sp,sp,48 | |
3022 | |
3023 0000000000000130 <f_LF>: | |
3024 130: 67bdffc0 daddiu sp,sp,-64 | |
3025 134: ffbe0038 sd s8,56(sp) | |
3026 138: ffbc0030 sd gp,48(sp) | |
3027 13c: 03a0f02d move s8,sp | |
3028 140: 3c1c0000 lui gp,0x0 | |
3029 144: 0399e02d daddu gp,gp,t9 | |
3030 148: 679c0000 daddiu gp,gp,0 | |
3031 14c: df820000 ld v0,0(gp) | |
3032 150: dc420000 ld v0,0(v0) | |
3033 154: df830000 ld v1,0(gp) | |
3034 158: dc630000 ld v1,0(v1) | |
3035 15c: ffc20000 sd v0,0(s8) | |
3036 160: ffc30008 sd v1,8(s8) | |
3037 164: dfc20000 ld v0,0(s8) | |
3038 168: dfc30008 ld v1,8(s8) | |
3039 16c: ffc20010 sd v0,16(s8) | |
3040 170: ffc30018 sd v1,24(s8) | |
3041 174: dfc20010 ld v0,16(s8) | |
3042 178: dfc30018 ld v1,24(s8) | |
3043 17c: ffc20020 sd v0,32(s8) | |
3044 180: ffc30028 sd v1,40(s8) | |
3045 184: dfc20020 ld v0,32(s8) | |
3046 188: 0040202d move a0,v0 | |
3047 18c: dfc20028 ld v0,40(s8) | |
3048 190: 0040282d move a1,v0 | |
3049 194: 0080102d move v0,a0 | |
3050 198: 00a0182d move v1,a1 | |
3051 19c: 03c0e82d move sp,s8 | |
3052 1a0: dfbe0038 ld s8,56(sp) | |
3053 1a4: dfbc0030 ld gp,48(sp) | |
3054 1a8: 03e00008 jr ra | |
3055 1ac: 67bd0040 daddiu sp,sp,64 | |
3056 | |
3057 00000000000001b0 <f_FF>: | |
3058 1b0: 67bdffd0 daddiu sp,sp,-48 | |
3059 1b4: ffbe0028 sd s8,40(sp) | |
3060 1b8: ffbc0020 sd gp,32(sp) | |
3061 1bc: 03a0f02d move s8,sp | |
3062 1c0: 3c1c0000 lui gp,0x0 | |
3063 1c4: 0399e02d daddu gp,gp,t9 | |
3064 1c8: 679c0000 daddiu gp,gp,0 | |
3065 1cc: df820000 ld v0,0(gp) | |
3066 1d0: dc420000 ld v0,0(v0) | |
3067 1d4: ffc20000 sd v0,0(s8) | |
3068 1d8: dfc20000 ld v0,0(s8) | |
3069 1dc: ffc20008 sd v0,8(s8) | |
3070 1e0: c7c00008 lwc1 $f0,8(s8) | |
3071 1e4: c7c1000c lwc1 $f1,12(s8) | |
3072 1e8: 46000886 mov.s $f2,$f1 | |
3073 1ec: 03c0e82d move sp,s8 | |
3074 1f0: dfbe0028 ld s8,40(sp) | |
3075 1f4: dfbc0020 ld gp,32(sp) | |
3076 1f8: 03e00008 jr ra | |
3077 1fc: 67bd0030 daddiu sp,sp,48 | |
3078 | |
3079 0000000000000200 <f_DF>: | |
3080 200: 67bdffc0 daddiu sp,sp,-64 | |
3081 204: ffbe0038 sd s8,56(sp) | |
3082 208: ffbc0030 sd gp,48(sp) | |
3083 20c: 03a0f02d move s8,sp | |
3084 210: 3c1c0000 lui gp,0x0 | |
3085 214: 0399e02d daddu gp,gp,t9 | |
3086 218: 679c0000 daddiu gp,gp,0 | |
3087 21c: df820000 ld v0,0(gp) | |
3088 220: dc420000 ld v0,0(v0) | |
3089 224: df830000 ld v1,0(gp) | |
3090 228: dc630000 ld v1,0(v1) | |
3091 22c: ffc20000 sd v0,0(s8) | |
3092 230: ffc30008 sd v1,8(s8) | |
3093 234: dfc20000 ld v0,0(s8) | |
3094 238: dfc30008 ld v1,8(s8) | |
3095 23c: ffc20010 sd v0,16(s8) | |
3096 240: ffc30018 sd v1,24(s8) | |
3097 244: d7c00010 ldc1 $f0,16(s8) | |
3098 248: c7c10018 lwc1 $f1,24(s8) | |
3099 24c: 46000886 mov.s $f2,$f1 | |
3100 250: 03c0e82d move sp,s8 | |
3101 254: dfbe0038 ld s8,56(sp) | |
3102 258: dfbc0030 ld gp,48(sp) | |
3103 25c: 03e00008 jr ra | |
3104 260: 67bd0040 daddiu sp,sp,64 | |
3105 264: 00000000 nop | |
3106 | |
3107 0000000000000268 <f_Du>: | |
3108 268: 67bdffe0 daddiu sp,sp,-32 | |
3109 26c: ffbe0018 sd s8,24(sp) | |
3110 270: ffbc0010 sd gp,16(sp) | |
3111 274: 03a0f02d move s8,sp | |
3112 278: 3c1c0000 lui gp,0x0 | |
3113 27c: 0399e02d daddu gp,gp,t9 | |
3114 280: 679c0000 daddiu gp,gp,0 | |
3115 284: ffc00000 sd zero,0(s8) | |
3116 288: df810000 ld at,0(gp) | |
3117 28c: d4200000 ldc1 $f0,0(at) | |
3118 290: f7c00000 sdc1 $f0,0(s8) | |
3119 294: dfc20000 ld v0,0(s8) | |
3120 298: 03c0e82d move sp,s8 | |
3121 29c: dfbe0018 ld s8,24(sp) | |
3122 2a0: dfbc0010 ld gp,16(sp) | |
3123 2a4: 03e00008 jr ra | |
3124 2a8: 67bd0020 daddiu sp,sp,32 | |
3125 2ac: 00000000 nop | |
3126 | |
3127 00000000000002b0 <f_DFu>: | |
3128 2b0: 67bdffe0 daddiu sp,sp,-32 | |
3129 2b4: ffbe0018 sd s8,24(sp) | |
3130 2b8: ffbc0010 sd gp,16(sp) | |
3131 2bc: 03a0f02d move s8,sp | |
3132 2c0: 3c1c0000 lui gp,0x0 | |
3133 2c4: 0399e02d daddu gp,gp,t9 | |
3134 2c8: 679c0000 daddiu gp,gp,0 | |
3135 2cc: ffc00000 sd zero,0(s8) | |
3136 2d0: df810000 ld at,0(gp) | |
3137 2d4: d4200000 ldc1 $f0,0(at) | |
3138 2d8: f7c00000 sdc1 $f0,0(s8) | |
3139 2dc: dfc20000 ld v0,0(s8) | |
3140 2e0: 03c0e82d move sp,s8 | |
3141 2e4: dfbe0018 ld s8,24(sp) | |
3142 2e8: dfbc0010 ld gp,16(sp) | |
3143 2ec: 03e00008 jr ra | |
3144 2f0: 67bd0020 daddiu sp,sp,32 | |
3145 2f4: 00000000 nop | |
3146 | |
3147 00000000000002f8 <main>: | |
3148 2f8: 67bdff70 daddiu sp,sp,-144 | |
3149 2fc: ffbf0080 sd ra,128(sp) | |
3150 300: ffbe0078 sd s8,120(sp) | |
3151 304: ffbc0070 sd gp,112(sp) | |
3152 308: 03a0f02d move s8,sp | |
3153 30c: 3c1c0000 lui gp,0x0 | |
3154 310: 0399e02d daddu gp,gp,t9 | |
3155 314: 679c0000 daddiu gp,gp,0 | |
3156 318: df990000 ld t9,0(gp) | |
3157 31c: 0320f809 jalr t9 | |
3158 320: 00000000 nop | |
3159 324: e7c00000 swc1 $f0,0(s8) | |
3160 328: df990000 ld t9,0(gp) | |
3161 32c: 0320f809 jalr t9 | |
3162 330: 00000000 nop | |
3163 334: f7c00008 sdc1 $f0,8(s8) | |
3164 338: df990000 ld t9,0(gp) | |
3165 33c: 0320f809 jalr t9 | |
3166 340: 00000000 nop | |
3167 344: 0002183e dsrl32 v1,v0,0x0 | |
3168 348: 0003283c dsll32 a1,v1,0x0 | |
3169 34c: dfc40050 ld a0,80(s8) | |
3170 350: 24030001 li v1,1 | |
3171 354: 0003183c dsll32 v1,v1,0x0 | |
3172 358: 6463ffff daddiu v1,v1,-1 | |
3173 35c: 00831824 and v1,a0,v1 | |
3174 360: 00651825 or v1,v1,a1 | |
3175 364: ffc30050 sd v1,80(s8) | |
3176 368: 0002183c dsll32 v1,v0,0x0 | |
3177 36c: 0003183e dsrl32 v1,v1,0x0 | |
3178 370: 24020001 li v0,1 | |
3179 374: 0002103c dsll32 v0,v0,0x0 | |
3180 378: 6442ffff daddiu v0,v0,-1 | |
3181 37c: 00622024 and a0,v1,v0 | |
3182 380: dfc30050 ld v1,80(s8) | |
3183 384: 2402ffff li v0,-1 | |
3184 388: 0002103c dsll32 v0,v0,0x0 | |
3185 38c: 00621024 and v0,v1,v0 | |
3186 390: 00441025 or v0,v0,a0 | |
3187 394: ffc20050 sd v0,80(s8) | |
3188 398: dfc20050 ld v0,80(s8) | |
3189 39c: ffc20010 sd v0,16(s8) | |
3190 3a0: df990000 ld t9,0(gp) | |
3191 3a4: 0320f809 jalr t9 | |
3192 3a8: 00000000 nop | |
3193 3ac: ffc20058 sd v0,88(s8) | |
3194 3b0: ffc30060 sd v1,96(s8) | |
3195 3b4: dfc20058 ld v0,88(s8) | |
3196 3b8: dfc30060 ld v1,96(s8) | |
3197 3bc: ffc20018 sd v0,24(s8) | |
3198 3c0: ffc30020 sd v1,32(s8) | |
3199 3c4: df990000 ld t9,0(gp) | |
3200 3c8: 0320f809 jalr t9 | |
3201 3cc: 00000000 nop | |
3202 3d0: 46001046 mov.s $f1,$f2 | |
3203 3d4: e7c00050 swc1 $f0,80(s8) | |
3204 3d8: e7c10054 swc1 $f1,84(s8) | |
3205 3dc: dfc20050 ld v0,80(s8) | |
3206 3e0: ffc20028 sd v0,40(s8) | |
3207 3e4: df990000 ld t9,0(gp) | |
3208 3e8: 0320f809 jalr t9 | |
3209 3ec: 00000000 nop | |
3210 3f0: 46001046 mov.s $f1,$f2 | |
3211 3f4: f7c00050 sdc1 $f0,80(s8) | |
3212 3f8: e7c10058 swc1 $f1,88(s8) | |
3213 3fc: dfc20050 ld v0,80(s8) | |
3214 400: dfc30058 ld v1,88(s8) | |
3215 404: ffc20030 sd v0,48(s8) | |
3216 408: ffc30038 sd v1,56(s8) | |
3217 40c: df990000 ld t9,0(gp) | |
3218 410: 0320f809 jalr t9 | |
3219 414: 00000000 nop | |
3220 418: ffc20040 sd v0,64(s8) | |
3221 41c: df990000 ld t9,0(gp) | |
3222 420: 0320f809 jalr t9 | |
3223 424: 00000000 nop | |
3224 428: ffc20048 sd v0,72(s8) | |
3225 42c: 0000102d move v0,zero | |
3226 430: 03c0e82d move sp,s8 | |
3227 434: dfbf0080 ld ra,128(sp) | |
3228 438: dfbe0078 ld s8,120(sp) | |
3229 43c: dfbc0070 ld gp,112(sp) | |
3230 440: 03e00008 jr ra | |
3231 444: 67bd0090 daddiu sp,sp,144 | |
3232 ... | |
3233 | |
3234 | |
3235 | |
689 ; vim: ft=asm | 3236 ; vim: ft=asm |
690 | 3237 |