Re: SixPacks mods for GCIC users
"kerravon86" <kerravon86-/[email protected]> Sat, 06 Nov 2010 15:00:12 -0000
| Newsgroups | gmane.comp.emulators.hercules390.vm |
|---|---|
| Message-ID | <[email protected]> |
--- In [email protected], Ivan Warren <ivan@...> wrote: > > The reason for this to happen is because we might - at some point - cast > an arbitrary storage location to a unsigned 32 bit value - and then the > optimizer will infer that it *IS* aligned. The issue is that it's > sometime a bit tricky to track because the cast can be quite far from > where the issue occurs. In this case, with 3.07 it's as bold as brass ... /*-------------------------------------------------------------------*/ /* 98 LM - Load Multiple [RS] */ /*-------------------------------------------------------------------*/ DEF_INST(load_multiple) { int r1, r3; /* Register numbers */ int b2; /* effective address base */ VADR effective_addr2; /* effective address */ int i, m, n; /* Integer work areas */ U32 *p1, *p2; /* Mainstor pointers */ BYTE *bp1; /* Unaligned maintstor ptr */ RS(inst, regs, r1, r3, b2, effective_addr2); /* Calculate number of bytes to load */ n = (((r3 - r1) & 0xF) + 1) << 2; /* Calculate number of bytes to next boundary */ m = 0x800 - ((VADR_L)effective_addr2 & 0x7ff); /* Address of operand beginning */ bp1 = (BYTE*)MADDR(effective_addr2, b2, regs, ACCTYPE_READ, regs->p p1=(U32*)bp1; BFN. Paul.