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


Groups > comp.programming > #2325

Re: 64 bit code

From BGB <cr88192@hotmail.com>
Newsgroups comp.programming
Subject Re: 64 bit code
Date 2012-10-11 11:17 -0500
Organization albasani.net
Message-ID <k56rl2$98d$1@news.albasani.net> (permalink)
References (3 earlier) <k54kd4$g1o$1@speranza.aioe.org> <k54n8b$i3u$1@dont-email.me> <adm8sjFja8tU1@mid.individual.net> <k55cjk$joa$1@news.albasani.net> <k56d2i$2vq$1@dont-email.me>

Show all headers | View raw


On 10/11/2012 7:11 AM, BartC wrote:
>
>
> "BGB" <cr88192@hotmail.com> wrote in message
> news:k55cjk$joa$1@news.albasani.net...
>> On 10/10/2012 4:50 PM, Ian Collins wrote:
>>> On 10/11/12 09:52, BartC wrote:
>>>>
>>>> With the x86-64, it seems to be all or nothing: either run
>>>> everything as
>>>> 64-bits, or run in compatible 32-bit mode, where you don't have access
>>>> to
>>>> the extra, wider registers, nor to 64-bit arithmetic.
>>>
>>> Which equates to a net loss of nothing and net gain of the 64 bit mode!
>>>
>>> Now you have the ability to build and test 32 and 64 bit versions of
>>> your code to see which performs best.
>>>
>>
>> it is worth noting that there is also the x32 ABI, which is basically a
>> 32-bit sub-mode of x86-64 (mostly off in Linux land, it is based on the
>> SysV/AMD64 ABI).
>>
>> in this sub-mode, basically the extended registers and arithmetic are
>> still available, but there is an ABI-level convention to only use 32-bit
>> pointers and stay within the low 4GB of memory.
>
> Is this mode supported by the hardware, or does it depend on software
> zero-extending pointers as needed to the 64-bits that are expected?
>
> I suspect the latter, from what I have been able to find out.
>


it is implemented in software, but it does make use of a little quirk 
that exists in x86-64, namely that whenever a 32-bit operation is 
performed, the register is automatically zero-extended. this allows the 
code to essentially largely ignore the upper 32-bits, which are then 
basically automatically cleared by any arithmetic ops.

there are a few cases where things may need to be handled specially, as, 
since the CPU doesn't actually "know" that the space is supposed to 
wraparound after 4GB, it is possible for code to "accidentally" go 
outside the 4GB window in certain cases.

this can generally be handled by using an extra step using a register 
(we load the target address in a register and then use this to access 
memory, rather than doing it directly).


or such...

Back to comp.programming | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

64 bit code bob <bob@coolfone.comze.com> - 2012-10-10 08:22 -0700
  Re: 64 bit code Jongware <jongware@no-spam.plz> - 2012-10-10 17:35 +0200
    Re: 64 bit code "BartC" <bc@freeuk.com> - 2012-10-10 17:37 +0100
      Re: 64 bit code Robert Wessel <robertwessel2@yahoo.com> - 2012-10-10 12:54 -0500
      Re: 64 bit code Fritz Wuehler <fritz@spamexpire-201210.rodent.frell.theremailer.net> - 2012-10-10 21:37 +0200
        Re: 64 bit code BGB <cr88192@hotmail.com> - 2012-10-10 21:46 -0500
      Re: 64 bit code Rui Maciel <rui.maciel@gmail.com> - 2012-10-10 20:43 +0100
        Re: 64 bit code "Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org> - 2012-10-12 08:40 +0100
          Re: 64 bit code BGB <cr88192@hotmail.com> - 2012-10-12 12:36 -0500
          Re: 64 bit code Rui Maciel <rui.maciel@gmail.com> - 2012-10-12 20:57 +0100
            Re: 64 bit code "BartC" <bc@freeuk.com> - 2012-10-12 21:30 +0100
              Re: 64 bit code BGB <cr88192@hotmail.com> - 2012-10-12 16:33 -0500
                Re: 64 bit code "BartC" <bc@freeuk.com> - 2012-10-13 00:44 +0100
                Re: 64 bit code Ben Pfaff <blp@cs.stanford.edu> - 2012-10-12 20:07 -0700
              Re: 64 bit code Rui Maciel <rui.maciel@gmail.com> - 2012-10-13 11:11 +0100
                Re: 64 bit code "BartC" <bc@freeuk.com> - 2012-10-13 13:11 +0100
                Re: 64 bit code Willem <willem@turtle.stack.nl> - 2012-10-13 12:34 +0000
                Re: 64 bit code BGB <cr88192@hotmail.com> - 2012-10-13 09:50 -0500
                Re: 64 bit code "BartC" <bc@freeuk.com> - 2012-10-13 17:25 +0100
                Re: 64 bit code Rui Maciel <rui.maciel@gmail.com> - 2012-10-13 17:53 +0100
                Re: 64 bit code Rui Maciel <rui.maciel@gmail.com> - 2012-10-13 17:05 +0100
          Re: 64 bit code "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2012-10-13 10:37 +0200
            Re: 64 bit code "Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org> - 2012-10-27 12:18 +0100
              Re: 64 bit code "Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org> - 2012-10-27 12:54 +0100
              Re: 64 bit code "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2012-10-27 15:13 +0200
                Re: 64 bit code Robert Miles <milesrf@Usenet-News.net> - 2012-10-28 04:12 -0500
                Re: 64 bit code "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2012-10-28 13:10 +0100
                Re: 64 bit code "LudovicoVan" <julio@diegidio.name> - 2012-10-29 04:38 +0000
                Re: 64 bit code "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2012-10-29 09:30 +0100
                Re: 64 bit code "LudovicoVan" <julio@diegidio.name> - 2012-10-30 22:09 +0000
                Re: 64 bit code "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2012-10-31 09:47 +0100
                Re: 64 bit code "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2012-10-31 09:55 +0100
                Re: 64 bit code "LudovicoVan" <julio@diegidio.name> - 2012-10-31 14:32 +0000
            Re: 64 bit code Patricia Shanahan <pats@acm.org> - 2012-10-27 08:51 -0700
              Re: 64 bit code "LudovicoVan" <julio@diegidio.name> - 2012-10-27 17:23 +0100
              Re: 64 bit code "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2012-10-27 20:43 +0200
                Re: 64 bit code "LudovicoVan" <julio@diegidio.name> - 2012-10-30 22:16 +0000
                Re: 64 bit code "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2012-10-31 09:53 +0100
                Re: 64 bit code "LudovicoVan" <julio@diegidio.name> - 2012-10-31 14:33 +0000
                Re: 64 bit code Fritz Wuehler <fritz@spamexpire-201211.rodent.frell.theremailer.net> - 2012-11-01 00:25 +0100
      Re: 64 bit code Rui Maciel <rui.maciel@gmail.com> - 2012-10-10 21:04 +0100
        Re: 64 bit code "BartC" <bc@freeuk.com> - 2012-10-10 21:52 +0100
          Re: 64 bit code Ian Collins <ian-news@hotmail.com> - 2012-10-11 10:50 +1300
            Re: 64 bit code BGB <cr88192@hotmail.com> - 2012-10-10 21:54 -0500
              Re: 64 bit code "BartC" <bc@freeuk.com> - 2012-10-11 13:11 +0100
                Re: 64 bit code BGB <cr88192@hotmail.com> - 2012-10-11 11:17 -0500
      Re: 64 bit code Ben Pfaff <blp@cs.stanford.edu> - 2012-10-10 13:17 -0700
        Re: 64 bit code Fritz Wuehler <fritz@spamexpire-201210.rodent.frell.theremailer.net> - 2012-10-11 19:36 +0200
          Re: 64 bit code Ben Pfaff <blp@cs.stanford.edu> - 2012-10-12 08:13 -0700
    Re: 64 bit code Rui Maciel <rui.maciel@gmail.com> - 2012-10-10 20:38 +0100
    Re: 64 bit code Robin Vowels <robin.vowels@gmail.com> - 2012-10-10 15:22 -0700
  Re: 64 bit code Robert Miles <milesrf@Usenet-News.net> - 2012-10-12 02:13 -0500

csiph-web