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