https://bugzilla.novell.com/show_bug.cgi?id=400487 User matz@novell.com added comment https://bugzilla.novell.com/show_bug.cgi?id=400487#c16 Michael Matz <matz@novell.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |NEEDINFO Info Provider| |schwab@novell.com --- Comment #16 from Michael Matz <matz@novell.com> 2009-01-22 10:21:56 MST --- The only relevant difference that I can detect in the asm (comparing the output of gcc42-4.2.1_20070724-17.1 and gcc43-4.3.3_20081022-1.2) is in vesa_store_edid(), where the constant 0x4f15 is stored in a register which is reused in the second use after an int 0x10 call that could possibly clobber that register. The asm certainly misses a clobber. So, can you try adding one to this asm in vesa_store_edid: /* Note: The VBE DDC spec is different from the main VESA spec; we genuinely have to assume all registers are destroyed here. */ asm("pushw %%es; movw %2,%%es; "INT10"; popw %%es" : "+a" (ax), "+b" (bx) : "c" (cx), "D" (di) : "esi"); In particular add "edx" to the clobber list (that's the register used in my case), but the above also misses "ecx", "edi", which have to be added as in/out constraints (i.e. "+c") probably, not as clobbers. Note especially how the comment explicitely warns about assuming that all regs are destroyed, but how the asm makes no try to cater for that. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.