www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2000/04/08/22:00:09

From: "Alexei A. Frounze" <alex DOT fru AT mtu-net DOT ru>
Newsgroups: comp.os.msdos.djgpp
Subject: GCC BUG & 64-BIT INTEGERS PROBLEMS
Date: Sun, 09 Apr 2000 02:38:23 +0400
Organization: MTU-Intel ISP
Lines: 80
Message-ID: <38EFB4DF.7AD2BF3C@mtu-net.ru>
NNTP-Posting-Host: ppp96-214.dialup.mtu-net.ru
Mime-Version: 1.0
X-Trace: gavrilo.mtu.ru 955234691 98132 212.188.96.214 (8 Apr 2000 22:58:11 GMT)
X-Complaints-To: usenet-abuse AT mtu DOT ru
NNTP-Posting-Date: 8 Apr 2000 22:58:11 GMT
X-Mailer: Mozilla 4.61 [en] (Win95; I)
X-Accept-Language: en,ru
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

This is a multi-part message in MIME format.
--------------4AA3A63C5F80C9D3D20AA115
Content-Type: text/plain; charset=koi8-r
Content-Transfer-Encoding: 7bit

Hi guys!

I think I've found a real bug in GCC.

I define two 64-bit integer values as folows:
--------8<--------
long long A, B;
--------8<--------

then I assign something to them (actually I call a routine that stores
there 64-bit results of the RDTSC CPU instruction).

Then I try to shift these A and B values right:
--------8<--------
A>>=32;
B>>=33;
--------8<--------

But GCC generates the following faulty code (see attached screenshot from
builtin
RHIDE debugger/disassembler).

This means GCC doesn't handle shifts right properly. 

Shifts left seems to be okay. Addition and subtraction also work fine.

I've not tested multiplication and division, but there is a non-zero
probabilty that this can be faulty as well as shifts right.

Btw, is it possible to printf() 64-bit integers as well as 32-bit? How to make
RHIDE supporting 64-bit values too?

Ah.... Completely forgot... I use "gcc version 2.95.2 19991024
(release)" and "This is RHIDE Version 1.4.7.5. Modified by A.Pavenis
(Feb 8 2000 12:00:51)".

Any ideas???

Thanks.
Alexei A. Frounze
-----------------------------------------
Homepage: http://alexfru.chat.ru
Mirror:   http://members.xoom.com/alexfru
--------------4AA3A63C5F80C9D3D20AA115
Content-Type: text/plain; charset=koi8-r;
 name="SCR_0000.TXT"
Content-Transfer-Encoding: 8bit
Content-Disposition: inline;
 filename="SCR_0000.TXT"

êî[À]îîîîîîîîîîîîîîîîîîîîîîîî Disassembler window îîîîîîîîîîîîîîîîîîîîîîî4î[]î»
º 00005918:  mov    0xffffffcc(%ebp),%eax                      eax    00000011º
º 0000591b:  mov    0xffffffd0(%ebp),%edx                      Àecx    00000035º
º 0000591e:  mov    %eax,%ecx                                  ±edx    00005464º
º 00005920:  mov    %edx,%ebx                                  ±ebx    00008311º
º 00005922:  mov    %ebx,%ecx                                  ±esp    000cff98º
º 00005924:  sar    $0x1f,%ebx                                 ±ebp    000cffe0º
º 00005927:  mov    %ecx,0xffffffcc(%ebp)                      ±esi    00000054º
º 0000592a:  mov    %ebx,0xffffffd0(%ebp)                      ±edi    0001f41cº
º 0000592d:  mov    0xffffffc4(%ebp),%eax                      ±eip    00005918º
º 00005930:  mov    0xffffffc8(%ebp),%edx                      ±eflags 00000202º
º 00005933:  mov    %eax,%ecx                                  ±cs         0117º
º 00005935:  mov    %edx,%ebx                                  ±ss         011fº
º 00005937:  mov    %ebx,%ecx                                  ±ds         011fº
º 00005939:  sar    $0x1f,%ebx                                 ±es         011fº
º 0000593c:  sar    $0x1,%ecx                                  ±fs         010fº
º 0000593f:  mov    %ecx,0xffffffc4(%ebp)                      ±gs         012fº
º 00005942:  mov    %ebx,0xffffffc8(%ebp)                      ±               º
º²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²               º
éîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîäý

--------------4AA3A63C5F80C9D3D20AA115--



- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019