(i386-linux x sh-elf) More weak stack addressing
Toshiyasu Morita
tm@netcom.com
Wed Jun 28 22:33:00 GMT 2000
version: CVS
host: i386-linux
target: sh-elf
options: -O2 -m4-single-only -ml -S -g
More weak stack addressing samples from stress-1.14.tar.gz at:
ftp://shell14.ba.best.com/pub.t/tm2/stress-1.14.tar.gz
GCC creates multiple pointers to the same stack slot and unnecessarily
eats up hard registers:
...
6363:./vtkTriangleStrip.ii **** {
6364:./vtkTriangleStrip.ii **** this->Triangle.PointIds.SetId(0,this->PointIds.GetId(i));
6365:./vtkTriangleStrip.ii **** this->Triangle.PointIds.SetId(1,this->PointIds.GetId(i+1));
6366:./vtkTriangleStrip.ii **** this->Triangle.PointIds.SetId(2,this->PointIds.GetId(i+2));
6367:./vtkTriangleStrip.ii **** }
6368:./vtkTriangleStrip.ii ****
6369:./vtkTriangleStrip.ii **** triScalars->SetScalar(0,cellScalars->GetScalar(i));
6370:./vtkTriangleStrip.ii **** triScalars->SetScalar(1,cellScalars->GetScalar(i+1));
6371:./vtkTriangleStrip.ii **** triScalars->SetScalar(2,cellScalars->GetScalar(i+2));
6372:./vtkTriangleStrip.ii ****
6373:./vtkTriangleStrip.ii **** this->Triangle.Contour(value, triScalars, locator, verts,
6374:./vtkTriangleStrip.ii **** lines, polys, inPd, outPd, inCd, cellId, outCd);
2839 0eb8 7CE6 mov #124,r6 <- here
2840 0eba E07F add #-32,r15
2841 0ebc 7CE7 mov #124,r7 <- here
2842 0ebe EC36 add r14,r6 <- here
2843 0ec0 7CE0 mov #124,r0
2844 0ec2 6956 mov.l @(36,r6),r6
2845 0ec4 EC37 add r14,r7 <- here
2846 0ec6 7CE1 mov #124,r1 <- here
2847 0ec8 EC30 add r14,r0
2848 0eca 622F mov.l r6,@r15
2849 0ecc EC31 add r14,r1 <- here
2850 0ece 7A57 mov.l @(40,r7),r7
2851 0ed0 7CE3 mov #124,r3 <- here
2852 0ed2 7CE6 mov #124,r6 <- here
2853 0ed4 EC33 add r14,r3 <- here
2854 0ed6 711F mov.l r7,@(4,r15)
2855 0ed8 EC36 add r14,r6 <- here
2856 0eda 0B50 mov.l @(44,r0),r0
2857 0edc 06A0 bra .L318
2858 0ede 7CE7 mov #124,r7
...
4626 .L495:
4627 1724 4CE7 mov #76,r7
4628 1726 40E0 mov #64,r0 <- here
4629 1728 EC37 add r14,r7
4630 172a 27D1 mov.l .L545,r1
4631 172c EC30 add r14,r0 <- here
4632 172e 7267 mov.l @r7,r7
4633 1730 01E3 mov #1,r3
4634 1732 0AE5 mov #10,r5
4635 1734 3C63 extu.b r3,r3
4636 1736 E227 mov.l r14,@r7
4637 1738 01E6 mov #1,r6
4638 173a EA52 mov.l @(40,r14),r2
4639 173c E367 mov r14,r7
4640 173e 0254 mov.l @(8,r0),r4
4641 1740 1C77 add #28,r7
4642 1742 3910 mov.l r3,@(36,r0)
4643 1744 1072 add #16,r2
4644 1746 7B10 mov.l r7,@(44,r0)
4645 1748 2810 mov.l r2,@(32,r0)
4646 174a E362 mov r14,r2
4647 174c 1472 add #20,r2
4648 174e 0B41 jsr @r1
4649 1750 2A10 mov.l r2,@(40,r0)
4654 1752 4CE3 mov #76,r3
4655 1754 EC33 add r14,r3
4656 1756 3263 mov.l @r3,r3
4657 1758 3261 mov.l @r3,r1
4658 175a 1261 mov.l @r1,r1
4659 175c 1223 mov.l r1,@r3
4662 175e 03E5 mov #3,r5
4665 1760 40E0 mov #64,r0 <- here
4666 1762 2992 mov.w .L546,r2
4667 1764 EC30 add r14,r0 <- here
4668 1766 40E3 mov #64,r3
4669 1768 0250 mov.l @(8,r0),r0
4670 176a 00E7 mov #0,r7
4671 176c EC33 add r14,r3
4672 176e 0654 mov.l @(24,r0),r4
4673 1770 7913 mov.l r7,@(36,r3)
4674 1772 4351 mov.l @(12,r4),r1
4675 1774 2C31 add r2,r1
4676 1776 1162 mov.w @r1,r2
4677 1778 1151 mov.l @(4,r1),r1
4678 177a 0B41 jsr @r1
4679 177c 2C34 add r2,r4
...
4800 183e 40E3 mov #64,r3 <- here
4801 1840 CC97 mov.w .L550,r7
4802 1842 EC33 add r14,r3 <- here
4803 1844 40E0 mov #64,r0 <- here
4804 1846 3853 mov.l @(32,r3),r3
4805 1848 EC30 add r14,r0 <- here
4806 184a 0055 mov.l @(0,r0),r5
4807 184c 3654 mov.l @(24,r3),r4
4808 184e 4351 mov.l @(12,r4),r1
4809 1850 7C31 add r7,r1
4810 1852 1162 mov.w @r1,r2
4811 1854 1151 mov.l @(4,r1),r1
4812 1856 0B41 jsr @r1
4813 1858 2C34 add r2,r4
4821 185a 40E1 mov #64,r1 <- here
4822 185c BF92 mov.w .L551,r2
4823 185e EC31 add r14,r1 <- here
4824 1860 01E5 mov #1,r5
4825 1862 1451 mov.l @(16,r1),r1
4826 1864 0366 mov r0,r6
4827 1866 1654 mov.l @(24,r1),r4
4828 1868 4351 mov.l @(12,r4),r1
4829 186a 2C31 add r2,r1
4830 186c 1162 mov.w @r1,r2
4831 186e 1151 mov.l @(4,r1),r1
4832 1870 0B41 jsr @r1
4833 1872 2C34 add r2,r4
4843 1874 40E3 mov #64,r3 <- here
4844 1876 B197 mov.w .L550,r7
4845 1878 EC33 add r14,r3 <- here
4846 187a 40E0 mov #64,r0 <- here
4847 187c 3853 mov.l @(32,r3),r3
4848 187e EC30 add r14,r0 <- here
4849 1880 0155 mov.l @(4,r0),r5
4850 1882 3654 mov.l @(24,r3),r4
4851 1884 4351 mov.l @(12,r4),r1
4852 1886 7C31 add r7,r1
4853 1888 1162 mov.w @r1,r2
4854 188a 1151 mov.l @(4,r1),r1
4855 188c 0B41 jsr @r1
4856 188e 2C34 add r2,r4
...
4864 1890 40E1 mov #64,r1 <- here
4865 1892 A492 mov.w .L551,r2
4866 1894 EC31 add r14,r1 <- here
4867 1896 02E5 mov #2,r5
4868 1898 1451 mov.l @(16,r1),r1
4869 189a 0366 mov r0,r6
4870 189c 1654 mov.l @(24,r1),r4
4871 189e 4351 mov.l @(12,r4),r1
4872 18a0 2C31 add r2,r1
4873 18a2 1162 mov.w @r1,r2
4874 18a4 1151 mov.l @(4,r1),r1
4875 18a6 0B41 jsr @r1
4876 18a8 2C34 add r2,r4
4886 18aa EA57 mov.l @(40,r14),r7
4889 18ac EF50 mov.l @(60,r14),r0
4892 18ae 4C77 add #76,r7
4895 18b0 9693 mov.w .L552,r3
4898 18b2 0840 shll2 r0
4899 18b4 7451 mov.l @(16,r7),r1
4900 18b6 B477 add #-76,r7
4901 18b8 7A1E mov.l r7,@(40,r14)
4902 18ba 1A57 mov.l @(40,r1),r7
4903 18bc 7E02 mov.l @(r0,r7),r2
4906 18be EA50 mov.l @(40,r14),r0
4907 18c0 3E01 mov.l @(r0,r3),r1
4910 18c2 1A53 mov.l @(40,r1),r3
4913 18c4 40E1 mov #64,r1 <- here
4916 18c6 2223 mov.l r2,@r3
4919 18c8 EC31 add r14,r1 <- here
4920 18ca 40E2 mov #64,r2 <- here
4921 18cc 1050 mov.l @(0,r1),r0
4922 18ce EC32 add r14,r2 <- here
4923 18d0 0840 shll2 r0
4924 18d2 7E01 mov.l @(r0,r7),r1
4925 18d4 2150 mov.l @(4,r2),r0
4928 18d6 1113 mov.l r1,@(4,r3)
4931 18d8 0840 shll2 r0
4932 18da 7E01 mov.l @(r0,r7),r1
4935 18dc 1213 mov.l r1,@(8,r3)
4938 18de 40E0 mov #64,r0 <- here
4939 18e0 EC53 mov.l @(48,r14),r3
4940 18e2 EC30 add r14,r0 <- here
4941 18e4 7D97 mov.w .L553,r7
4942 18e6 3654 mov.l @(24,r3),r4
4943 18e8 4351 mov.l @(12,r4),r1
4944 18ea 4073 add #64,r3
4945 18ec 3510 mov.l r3,@(20,r0)
4946 18ee 7C31 add r7,r1
4947 18f0 3256 mov.l @(8,r3),r6
4948 18f2 1162 mov.w @r1,r2
4949 18f4 EF55 mov.l @(60,r14),r5
4950 18f6 1151 mov.l @(4,r1),r1
4951 18f8 0B41 jsr @r1
4952 18fa 2C34 add r2,r4
...
4960 18fc 40E1 mov #64,r1 <- here
4961 18fe 7192 mov.w .L554,r2
4962 1900 EC31 add r14,r1 <- here
4963 1902 40E3 mov #64,r3 <- here
4964 1904 1251 mov.l @(8,r1),r1
4965 1906 EC33 add r14,r3 <- here
4966 1908 00E5 mov #0,r5
4967 190a 3257 mov.l @(8,r3),r7
4968 190c 1654 mov.l @(24,r1),r4
4969 190e 4077 add #64,r7
4970 1910 0CF4 fmov fr0,fr4
4971 1912 4351 mov.l @(12,r4),r1
4972 1914 7613 mov.l r7,@(24,r3)
4973 1916 2C31 add r2,r1
4974 1918 7256 mov.l @(8,r7),r6
4975 191a 1162 mov.w @r1,r2
4976 191c 1151 mov.l @(4,r1),r1
4977 191e 0B41 jsr @r1
4978 1920 2C34 add r2,r4
...
5060 1984 40E0 mov #64,r0 <- here
5061 1986 2D92 mov.w .L554,r2
5062 1988 EC30 add r14,r0 <- here
5063 198a 40E3 mov #64,r3 <- here
5064 198c 0250 mov.l @(8,r0),r0
5065 198e EC33 add r14,r3 <- here
5066 1990 02E5 mov #2,r5
5067 1992 3653 mov.l @(24,r3),r3
5068 1994 0654 mov.l @(24,r0),r4
5069 1996 3256 mov.l @(8,r3),r6
5070 1998 4351 mov.l @(12,r4),r1
5071 199a 0CF4 fmov fr0,fr4
5072 199c 2C31 add r2,r1
5073 199e 1162 mov.w @r1,r2
5074 19a0 1151 mov.l @(4,r1),r1
5075 19a2 0B41 jsr @r1
5076 19a4 2C34 add r2,r4
5077 .LBE339:
5078 .LBE336:
6512:./vtkTriangleStrip.ii **** }
6513:./vtkTriangleStrip.ii ****
6514:./vtkTriangleStrip.ii **** this->Triangle.Points.SetPoint(0,this->Points.GetPoint(id1));
6515:./vtkTriangleStrip.ii **** this->Triangle.Points.SetPoint(1,this->Points.GetPoint(id2));
6516:./vtkTriangleStrip.ii **** this->Triangle.Points.SetPoint(2,this->Points.GetPoint(id3));
6517:./vtkTriangleStrip.ii ****
6518:./vtkTriangleStrip.ii **** this->Triangle.PointIds.SetId(0,this->PointIds.GetId(id1));
6519:./vtkTriangleStrip.ii **** this->Triangle.PointIds.SetId(1,this->PointIds.GetId(id2));
6520:./vtkTriangleStrip.ii **** this->Triangle.PointIds.SetId(2,this->PointIds.GetId(id3));
6521:./vtkTriangleStrip.ii ****
6522:./vtkTriangleStrip.ii **** triScalars->SetScalar(0,cellScalars->GetScalar(id1));
6523:./vtkTriangleStrip.ii **** triScalars->SetScalar(1,cellScalars->GetScalar(id2));
6524:./vtkTriangleStrip.ii **** triScalars->SetScalar(2,cellScalars->GetScalar(id3));
6525:./vtkTriangleStrip.ii ****
6526:./vtkTriangleStrip.ii **** this->Triangle.Clip(value, triScalars, locator, tris, inPd, outPd,
6527:./vtkTriangleStrip.ii **** inCd, cellId, outCd, insideOut);
5080 .LM559:
5081 19a6 7CE7 mov #124,r7 <- here
5082 19a8 E47F add #-28,r15
5083 19aa 7CE0 mov #124,r0
5084 19ac EC37 add r14,r7 <- here
5085 19ae 7CE1 mov #124,r1 <- here
5086 19b0 7957 mov.l @(36,r7),r7
5087 19b2 EC30 add r14,r0
5088 19b4 7CE3 mov #124,r3 <- here
5089 19b6 EC31 add r14,r1 <- here
5090 19b8 722F mov.l r7,@r15
5091 19ba EC33 add r14,r3 <- here
5092 19bc 0A50 mov.l @(40,r0),r0
5093 19be 7CE7 mov #124,r7 <- here
5094 19c0 1192 mov.w .L555,r2
5095 19c2 EC37 add r14,r7 <- here
5096 19c4 011F mov.l r0,@(4,r15)
5097 19c6 1B51 mov.l @(44,r1),r1
5098 19c8 7CE0 mov #124,r0 <- here
5099 19ca EA54 mov.l @(40,r14),r4
5100 19cc EC30 add r14,r0 <- here
5101 19ce 121F mov.l r1,@(8,r15)
5102 19d0 3C53 mov.l @(48,r3),r3
5103 19d2 2C34 add r2,r4
5104 19d4 04D1 mov.l .L556,r1
5105 19d6 09A0 bra .L548
5106 19d8 40E2 mov #64,r2
...
6530:./vtkTriangleStrip.ii **** triScalars->Delete();
5172 .LM563:
5173 1a34 40E2 mov #64,r2 <- here
5174 1a36 E367 mov r14,r7
5175 1a38 EC32 add r14,r2 <- here
5176 1a3a 40E3 mov #64,r3
5177 1a3c 2252 mov.l @(8,r2),r2
5178 1a3e EC33 add r14,r3
5179 1a40 E360 mov r14,r0
5180 1a42 1C77 add #28,r7
5181 1a44 2351 mov.l @(12,r2),r1
5182 1a46 1470 add #20,r0
5183 1a48 7B13 mov.l r7,@(44,r3)
5184 1a4a FC7F add #-4,r15
5185 1a4c 3254 mov.l @(8,r3),r4
5186 1a4e 0871 add #8,r1
5187 1a50 00E7 mov #0,r7
5188 1a52 1162 mov.w @r1,r2
5189 1a54 0A13 mov.l r0,@(40,r3)
5190 1a56 1151 mov.l @(4,r1),r1
5191 1a58 2C34 add r2,r4
5192 1a5a 0B41 jsr @r1
5193 1a5c 7913 mov.l r7,@(36,r3)
5194 .LBE286:
5195 1a5e 047F add #4,r15
...
6531:./vtkTriangleStrip.ii **** }
5197 .LM564:
5198 1a60 707E add #112,r14
5199 1a62 E36F mov r14,r15
5200 1a64 264F lds.l @r15+,pr
5201 1a66 F9FF fmov.s @r15+,fr15
5202 1a68 F9FE fmov.s @r15+,fr14
5203 1a6a F9FD fmov.s @r15+,fr13
...
5222 .L566:
5223 1aa2 14D3 mov.l .L560,r3
5224 1aa4 EC30 add r14,r0
5225 1aa6 40E2 mov #64,r2 <- here
5226 1aa8 0260 mov.l @r0,r0
5227 1aaa EC32 add r14,r2 <- here
5228 1aac 0261 mov.l @r0,r1
5229 1aae 151E mov.l r1,@(20,r14)
5230 1ab0 00E1 mov #0,r1
5231 1ab2 161E mov.l r1,@(24,r14)
5232 1ab4 6CE1 mov #108,r1
5233 1ab6 EC31 add r14,r1
5234 1ab8 1261 mov.l @r1,r1
5235 1aba E221 mov.l r14,@r1
5236 1abc 3111 mov.l r3,@(4,r1)
5237 1abe F211 mov.l r15,@(8,r1)
5238 1ac0 40E1 mov #64,r1 <- here
5239 1ac2 EC31 add r14,r1 <- here
5240 1ac4 1A51 mov.l @(40,r1),r1
5241 1ac6 1220 mov.l r1,@r0
5242 1ac8 2952 mov.l @(36,r2),r2
5243 1aca 2822 tst r2,r2
5244 1acc 048D bt.s .L502
5245 1ace 40E3 mov #64,r3 <- here
5246 1ad0 09D1 mov.l .L561,r1
5247 1ad2 EC33 add r14,r3 <- here
5248 1ad4 0B41 jsr @r1
5249 1ad6 3254 mov.l @(8,r3),r4
5250 .L502:
5251 1ad8 5CE7 mov #92,r7
5252 1ada EC37 add r14,r7
5253 1adc 7267 mov.l @r7,r7
5254 1ade 7261 mov.l @r7,r1
5255 1ae0 1261 mov.l @r1,r1
5256 1ae2 1227 mov.l r1,@r7
5257 1ae4 05D1 mov.l .L562,r1
5258 1ae6 0B41 jsr @r1
5259 1ae8 0900 nop
Toshi
More information about the Gcc-bugs
mailing list