On 2015-10-08, at 08:48, Peter Relson wrote:
> ...
> Consider 
> -- Module A is using 64-bit GRs (whether AMODE 64 or not) and expects 
> anything it calls to comply with the linkage conventions
> -- Module A calls Module B
> -- Module B is AMODE 31, knows nothing about 64-bit GRs so saves/restores 
> low halves only
> -- Module B uses some macro that clobbers the high half of something other 
> than reg 0,1,15
> -- Module B restores low halves, returns to Module A
> -- Module A is now broken 
>  
Isn't module B's offense to modify a high half without restoring it, regardless
of AMODE?

Conversely, if B restores 64-bit registers 2-14, is B a good citizen even if
B modifies high halves.

And B must remember that the operation of LA (others?) depends on AMODE.

-- gil

Reply via email to