[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Rep:Re: [f-cpu] Stack handling



Hi!

Guys, you're on the wrong track. You're still thinking Intel-style.

On Tue, Jul 23, 2002 at 01:39:53PM +0200, Christophe Avoinne wrote:
> If you want to invent a new OS which doesn't need a stack, well okay. But my
> oppinion is that you would need to be friendly with software programmers and
> don't complicate their jobs because you only think about the hardware part
> without any regard about the habits of programmers.
> 
> I really understand the whys you prefer to avoid a pre-increment/decrement,
> but the fact is there are situations we need it.

Then do it manually:

	subi 8, <sp>, <sp>	// <sp> is the register used as a stack pointer
	storei -8, <sp>, ...
	...
	store <sp>, ...		// last push doesn't use postdecrement

Alternatively, allocate a larger piece of stack memory at once and fill it
later. In either case, calling a signal handler is not a problem at all,
as long as user and kernel mode agree on the stack pointer register (which
will be defined in the user<->kernel API and/or the calling conventions).

In general, doing stack-like operations on a register machine is not a
good idea. On Intel CPUs, you're forced to do it because you have only
eight registers, but the F-CPU has 63 of them (r0 not counted). There
should rarely be a need for stack operations, except on function
entry/exit (where you can use storem/loadm).

-- 
 Michael "Tired" Riepe <Michael.Riepe@stud.uni-hannover.de>
 "All I wanna do is have a little fun before I die"
*************************************************************
To unsubscribe, send an e-mail to majordomo@seul.org with
unsubscribe f-cpu       in the body. http://f-cpu.seul.org/