From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mark Junker Subject: Re: Compilers Date: Sat, 29 May 2004 14:32:51 +0200 Sender: linux-8086-owner@vger.kernel.org Message-ID: <40B882F3.5030403@gmx.de> References: <200405281142.38116.dg@cowlark.com> <20040528144700.GH21172@duckman.distro.conectiva> <40B87734.6050109@gmx.de> <40B87AC8.1010307@cowlark.com> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <40B87AC8.1010307@cowlark.com> List-Id: Content-Type: text/plain; charset="us-ascii"; format="flowed" To: linux-8086@vger.kernel.org David Given schrieb: > I really don't know why people use a frame pointer anyway. Given that > the i86 can do arbitrary relative stack addressing there's no real need > for it. It makes debugging marginally easier, but then the debug > information should provide all the necessary data to find the stack > frame from any point in the code... The main problem is that the value of the stack pointer changes during the execution of a function and sometimes it's not easy to realize that mov.l @(r15,12),r1 . . . mov.l @(r15,8),r2 may refer to the same argument ... > (I work for a company that produces embedded operating systems, with our > own cross-platform compiler architecture. The PowerPC has 32 > general-purpose registers. Guess how many the 386 has? *Five*. That > leads to interesting scalability issues in our register allocation code...) I work on embedded systems using the Renesas SH4 (it has 16 (+ 8) int and 16 fp GP registers) so I think I know what you mean. Regards, Mark Junker