Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!unmvax!polyslo!cquenel From: cquenel@polyslo.CalPoly.EDU (46 more school days) Newsgroups: comp.arch Subject: Re: RISC vs unaligned data Message-ID: <9931@polyslo.CalPoly.EDU> Date: 3 Apr 89 22:26:58 GMT References: <355@bnr-fos.UUCP> <13@microsoft.UUCP> <16058@cup.portal.com> <370@bnr-fos.UUCP> <11222@tekecs.GWD.TEK.COM> <16407@winchester.mips.COM> Reply-To: cquenel@polyslo.CalPoly.EDU (46 more school days) Organization: Blue Blaze Irregulars Lines: 27 In article <16407@winchester.mips.COM> mash@mips.COM (John Mashey) writes: >Of course, if N == 100 (if you were doing it with exceptions, perhaps), >you now get + 5-15, i.e., 6-16X slower, which is clearly ungood, and >only survivable for debugging. Wait a sec, aren't you comparing the proverbial mis-matched fruits here ? The hit you take from compiler generated "safe" code is paid whether the specific reference is actually aligned or not. As you mention, in FORTRAN, things in a common block can have arbitrary alignment in THEORY, but in practice the words are often aligned. If you are "doing it with exceptions" then the exception is only taken when the word is, in fact, mis-aligned. Using exceptions to handle mis-aligned data isn't quite as bad as your (admittedly back-of-the-envelope) figure of 6-16X would suggest. --chris -- @---@ ------------------------------------------------------------------ @---@ \. ./ | Chris Quenelle (The First Lab Rat) cquenel@polyslo.calpoly.edu | \. ./ \ / | + good; ++ good; -- Annie Lennox | \ / ==o== ------------------------------------------------------------------ ==o==