* Blue Swirl <[EMAIL PROTECTED]> [070719 20:46]: > On 7/19/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > > Unhandled Exception 0x00000007 > > PC = 0xffd0a55c NPC = 0xffd09374 > > Stopping execution > > > > So this is my report, I hope it can be of some use. I'll try to boot sparc > > version of OpenSolaris soon and I'l let you know how it went. > > Thanks for the report. Exception 7 is unaligned access, support for > detection of unaligned accesses in QEMU was improved recently. > > The exception happens inside OpenBIOS: > 0xffd0a55c is in lstore (kernel/forth.c:649). > 644 > 645 static void lstore(void) > 646 { > 647 const u32 *aaddr = (u32 *)cell2pointer(POP()); > 648 const u32 longval = POP(); > 649 write_long(aaddr, longval); > 650 } > > Maybe write_long should handle unaligned addresses?
Possibly. But something is wrong. Unaligned accesses should be done with unaligned-l@ ( addr -- quad ) instead of [EMAIL PROTECTED] So either the pointer was calculated wrong or Solaris does not care about alignment in l@ If you change it, please make the change specific to sparc. Stefan -- coresystems GmbH • Brahmsstr. 16 • D-79104 Freiburg i. Br. Tel.: +49 761 7668825 • Fax: +49 761 7664613 Email: [EMAIL PROTECTED] • http://www.coresystems.de/