On Mon, Sep 8, 2008 at 9:57 AM, Stefan Reinauer stepan@coresystems.de wrote:
ron minnich wrote:
and your entire call chain and all automatics on the stack are gone. And you can't return from disable_car.
So are you saying it is incredible hard to produce that call chain from scratch, or copy it over? I really don't think so.
any pointers on stack are wrong. You can't tell data from pointers. And so on. I think it's an idea that could really get you in trouble.
I don't feel that moving the stack, and all it contains, to another location is a good idea.
Moving the stack in the general case won't work. Better to call another function -- i.e. disable_car never returns -- that's we do do in v2 today.
Works fine for me.
me too.
If we assume there is no return from disable_car, life is very much simpler.
Ok, why don't we do that?
See the January discussion. I even prototyped it. I still feel it is clean in an architecture-independent sense, and in a *implementation* - independent sense.
Still, I want to make sure: do the rules for core 2 duo make it impossible to return from disable_car with the same stack?
Here is how we return from stack on on k8.
disable_car(){ copy CAR area to RAM disable car copy RAM to CAR return ]
Would this not work on core 2? ron