On Sun, 11 Aug 2002, Ralf Baechle wrote: > > Call me crazy - I have seen crash like this. As you can see, the register is > > loaded with one value and on next instruction it shows another value. What > > the hell is it possibly going on? > > > > This is with today's OSS tree 2.4 branch. > > Really odd because the register only lost the upper 16 bits; the lower 16 > bits still have their expected value. It is a typical symptom of a register being corrupted between a "lui" and an "addiu" -- an exception must have done it in the immediately preceding code. You might be able to track a reason down by carefully studying possible exception paths at the place of the problem. Unfortunately you don't have much of the state preserved at this stage -- you only know which register was corrupted. Another possible approach is to add some code that compares the values of the register upon an exception entry and exit and wait for it to trigger -- for a single register it shouldn't be too tough and you have still much of the state available before an "rfe" or "eret". -- + Maciej W. Rozycki, Technical University of Gdansk, Poland + +--------------------------------------------------------------+ + e-mail: macro@ds2.pg.gda.pl, PGP key available +