Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| From | Kai Harrekilde-Petersen <khp@harrekilde.dk> |
|---|---|
| Newsgroups | comp.arch |
| Subject | Re: Q: bit shifting |
| References | <j6mnv4$8rt$1@news.albasani.net> <j6mn43$2ma$1@gosset.csi.cam.ac.uk> <4ui3m8-aa91.ln1@ntp6.tmsw.no> <ujcu875u229visrassliqa7ro2os537t5a@4ax.com> |
| Date | 2011-10-07 19:27 +0200 |
| Message-ID | <848vowr9tr.fsf@harrekilde.dk> (permalink) |
| Organization | SunSITE.dk - Supporting Open source |
Robert Wessel <robertwessel2@yahoo.com> writes: > On Fri, 07 Oct 2011 17:35:42 +0200, Terje Mathisen <"terje.mathisen at > tmsw.no"> wrote: > >>nmm1@cam.ac.uk wrote: >>> In article<j6mnv4$8rt$1@news.albasani.net>, >>> Mok-Kong Shen<mok-kong.shen@t-online.de> wrote: >>>> >>>> This is an ignorant's question: I remember having long ago read in >>>> a manual of a certain now non-existant hardware that a command to >>>> do bit shifts by an amount n (the hardware had word size of n bits) >>>> was undefined, i.e. the amount being shifted must be less than n. >>>> Could such ever be the case for the modern hardware? >>> >>> In general, it is defined - but insanely! The reason that shifts >>> of above the word size are treated like that is because it saved >>> a few gates, which was important on discrete-logic computers. >>> Despite that, the ICL 1900 range (mid-1960s) got it right. >>> >>> Even more ridiculously, it is undefined in almost all programming >>> languages for that reason, despite the fact that it has been trivial >>> to fix up since the advent of modern compiler technology (mid-1970s). >> >>Nick is absolutely correct here, bit shifts have been badly treated >>since day one. >> >>Most people would probably agree that a left shift (or logical right >>shift) of an N-wide register by N or more bits, should result in a zero. >> >>Likewise, arithmetic right shifts of the same size should give the sign >>bit replicated across the entire register. >> >>If you absolutely have to limit N, then make the limit no less than >>twice the register width. Masking the shift count is a really bad idea... > > > Next you guys are going to want negative shift counts to be meaningful > too! *sheesh* Of course - you can't a priori know the sign of a computed value, so negative shift amounts must be a shift in the opposite direction. We do this on our DSP. Oh, and shifting with >=wordsize returns 0/-1 too :-) Kai -- Kai Harrekilde-Petersen <khp(at)harrekilde(dot)dk>
Back to comp.arch | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Q: bit shifting Mok-Kong Shen <mok-kong.shen@t-online.de> - 2011-10-07 13:31 +0200
Re: Q: bit shifting nmm1@cam.ac.uk - 2011-10-07 12:17 +0100
Re: Q: bit shifting Terje Mathisen <"terje.mathisen at tmsw.no"> - 2011-10-07 17:35 +0200
Re: Q: bit shifting Stephen Fuld <SFuld@alumni.cmu.edu.invalid> - 2011-10-07 09:31 -0700
Re: Q: bit shifting nmm1@cam.ac.uk - 2011-10-07 17:16 +0100
Re: Q: bit shifting Stephen Fuld <SFuld@alumni.cmu.edu.invalid> - 2011-10-07 23:13 -0700
Re: Q: bit shifting nmm1@cam.ac.uk - 2011-10-08 09:56 +0100
Re: Q: bit shifting Andrew Reilly <areilly---@bigpond.net.au> - 2011-10-08 21:28 +0000
Re: Q: bit shifting timcaffrey@aol.com (Tim McCaffrey) - 2011-10-11 15:05 +0000
Re: Q: bit shifting Sean Case <seancase@tpg.com.au> - 2011-10-16 23:15 +1000
Re: Q: bit shifting timcaffrey@aol.com (Tim McCaffrey) - 2011-10-19 20:12 +0000
Re: Q: bit shifting Robert Wessel <robertwessel2@yahoo.com> - 2011-10-07 12:24 -0500
Re: Q: bit shifting Kai Harrekilde-Petersen <khp@harrekilde.dk> - 2011-10-07 19:27 +0200
Re: Q: bit shifting Terje Mathisen <"terje.mathisen at tmsw.no"> - 2011-10-08 10:41 +0200
Re: Q: bit shifting Kai Harrekilde-Petersen <khp@harrekilde.dk> - 2011-10-08 11:28 +0200
Re: Q: bit shifting Andrew Reilly <areilly---@bigpond.net.au> - 2011-10-08 21:38 +0000
Re: Q: bit shifting Robert Wessel <robertwessel2@yahoo.com> - 2011-10-08 22:57 -0500
Re: Q: bit shifting Terje Mathisen <"terje.mathisen at tmsw.no"> - 2011-10-09 08:18 +0200
Re: Q: bit shifting Mok-Kong Shen <mok-kong.shen@t-online.de> - 2011-10-19 15:08 +0200
Re: Q: bit shifting Michael S <already5chosen@yahoo.com> - 2011-10-11 16:41 -0700
Re: Q: bit shifting Terje Mathisen <"terje.mathisen at tmsw.no"> - 2011-10-12 07:55 +0200
Re: Q: bit shifting MitchAlsup <MitchAlsup@aol.com> - 2011-10-12 10:21 -0700
Re: Q: bit shifting Terje Mathisen <"terje.mathisen at tmsw.no"> - 2011-10-12 21:22 +0200
Re: Q: bit shifting kenney@cix.compulink.co.uk - 2011-10-13 11:00 -0500
Re: Q: bit shifting Terje Mathisen <"terje.mathisen at tmsw.no"> - 2011-10-13 20:32 +0200
Re: Q: bit shifting Mike Hore <mike_horeREM@OVE.invalid.aapt.net.au> - 2011-10-11 17:08 +1100
Re: Q: bit shifting MitchAlsup <MitchAlsup@aol.com> - 2011-10-07 12:49 -0700
Re: Q: bit shifting nmm1@cam.ac.uk - 2011-10-07 21:20 +0100
The word is devolving into 3 architectures (NOT?) "Andy \"Krazy\" Glew" <andy@SPAM.comp-arch.net> - 2011-10-07 19:48 -0700
Re: The word is devolving into 3 architectures (NOT?) Mark Thorson <nospam@sonic.net> - 2011-10-07 19:56 -0800
Re: The word is devolving into 3 architectures (NOT?) "Skybuck Flying" <Windows7IsOK@DreamPC2006.com> - 2011-10-08 04:53 +0200
Re: The word is devolving into 3 architectures (NOT?) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-10-08 17:26 +0000
Re: Q: bit shifting Terje Mathisen <"terje.mathisen at tmsw.no"> - 2011-10-08 10:47 +0200
Re: Q: bit shifting MitchAlsup <MitchAlsup@aol.com> - 2011-10-08 12:27 -0700
Re: Q: bit shifting Terje Mathisen <"terje.mathisen at tmsw.no"> - 2011-10-09 08:07 +0200
Re: Q: bit shifting MitchAlsup <MitchAlsup@aol.com> - 2011-10-09 12:36 -0700
Re: Q: bit shifting Terje Mathisen <"terje.mathisen at tmsw.no"> - 2011-10-10 09:06 +0200
Re: Q: bit shifting timcaffrey@aol.com (Tim McCaffrey) - 2011-10-10 15:31 +0000
Re: Q: bit shifting Terje Mathisen <"terje.mathisen at tmsw.no"> - 2011-10-10 18:13 +0200
Re: Q: bit shifting timcaffrey@aol.com (Tim McCaffrey) - 2011-10-10 20:27 +0000
Re: Q: bit shifting Terje Mathisen <"terje.mathisen at tmsw.no"> - 2011-10-10 23:45 +0200
Re: Q: bit shifting Robert Wessel <robertwessel2@yahoo.com> - 2011-10-10 17:32 -0500
Re: Q: bit shifting timcaffrey@aol.com (Tim McCaffrey) - 2011-10-11 14:58 +0000
Re: Q: bit shifting Robert Wessel <robertwessel2@yahoo.com> - 2011-10-11 11:30 -0500
Re: Q: bit shifting "Andy \"Krazy\" Glew" <andy@SPAM.comp-arch.net> - 2011-10-11 10:05 -0700
Re: Q: bit shifting timcaffrey@aol.com (Tim McCaffrey) - 2011-10-11 17:59 +0000
Re: Q: bit shifting timcaffrey@aol.com (Tim McCaffrey) - 2011-10-11 18:00 +0000
Re: Q: bit shifting Al Grant <algrant@myrealbox.com> - 2011-10-11 13:49 -0700
Re: Q: bit shifting Al Grant <algrant@myrealbox.com> - 2011-10-11 14:18 -0700
Re: Q: bit shifting Robert Wessel <robertwessel2@yahoo.com> - 2011-10-11 16:03 -0500
Re: Q: bit shifting MitchAlsup <MitchAlsup@aol.com> - 2011-10-10 09:52 -0700
Re: Q: bit shifting anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-10-09 12:24 +0000
Re: Q: bit shifting nmm1@cam.ac.uk - 2011-10-09 13:13 +0100
Re: Q: bit shifting Quadibloc <jsavard@ecn.ab.ca> - 2011-10-09 10:11 -0700
csiph-web