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
