Port-vax archive

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

Re: Another illegal instruction awk problem



>>> (gdb) x/i 0x80196183
>>> 0x80196183 <emodd+120>: movd r9,r0
>> emodd - I think that's one of the often-emulated inestructions,
>> meaning ragge is almost certainly right.
> So then... how should I go about figuring out why the emulated
> instruction didn't get emulated?

Oh, it's not that it didn't get emulated.  It was in the process of
being emulated when the fault occurred; that's what the PC inside the
kernel's emodd code indicates.

However, I have trouble seeing how "movd r9,r0" could fault showing
SIGILL.  While I don't have the -5 source at ready hand, the 4.0.1
source in question has only one "movd r9,r0" instruction, and its
context is

        bsbw getval_byte        # get multiplier extension operand
        movzbl %r0, -(%sp)
        movd %r9, %r0
        pushl %r3

none of which look the least bit SIGILLy to me.

There is clearly something I don't understand going on here.  Possibly
this is a 5.x-vs-4.x difference, or possibly it's something worse.
0x80196183 is nowhere near a page boundary, so it's not some weirdoid
page fault mishandling glitch; besides, the page in question must be
wired and mapped into all processes.  I think I've quite possibly
contributed about all the value I can to this discussion, so I think I
should bow out at this point.

/~\ The ASCII                             Mouse
\ / Ribbon Campaign
 X  Against HTML                mouse%rodents-montreal.org@localhost
/ \ Email!           7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B


Home | Main Index | Thread Index | Old Index