CVSROOT: /cvs Module name: src Changes by: marty...@cvs.openbsd.org 2012/12/10 11:06:12
Modified files: gnu/gcc/gcc/config/alpha: alpha.md Log message: Fix unaligned memory loads on Alpha. GCC used to generate them in the following manner: ([reg:A & -8] << (64 - (((reg:FP+reg:B) & 0x7) << 3))) >> 56 This fails when we're doing loads with the offset from the frame pointer %8. Since it's aligned, optimizer makes it a zero. The correct expression is: ([reg:A & -8] << (56 - (((reg:FP+reg:B-1) & 0x7) << 3))) >> 56 This is actually a 13-year-old bug. Checked by Miod; a few files in the kernel were affected. Spotted with SSP for Alpha. OK miod@. Tested by naddy@.