Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.arch > #4061

Re: Q: bit shifting

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

Show all headers | View raw


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


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