diff options
author | jonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2008-01-24 21:30:55 +0000 |
---|---|---|
committer | jonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2008-01-24 21:30:55 +0000 |
commit | 843397bf53ecde10c25b2e1aac14f87b24bbb43f (patch) | |
tree | 816cbce81bf73945d7b44fa4b2f527b93bb83157 /rtl/powerpc | |
parent | 995473173452068ad075327e33dd9900647fdbdf (diff) | |
download | fpc-843397bf53ecde10c25b2e1aac14f87b24bbb43f.tar.gz |
* changed byte/word/longbool to be Delphi-compatible (+ similar changes
for qwordbool) + test:
o assigning true to such a variable now sets them to $ff/$ffff/$ffffffff
o these types are now all signed
o converting an integer type to a byte/word/long/qwordbool using an
explicit type cast keeps the integer's original value stored in the
bool, instead of forcing it to ord(true)/ord(false)
(mantis #10233 and #10613, implemented for all architectures, testsuite
tested for ppc32, sparc and x86)
* fixed some places where the rtl depended on longbool(true) having the
value 1
* extended several boolean tests (and adapted some to no longer assume
that byte/word/long/qwordbool(true)=1)
+ support for converting to qwordbool in second_int_to_bool for x86, ppc
and sparc
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@9898 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'rtl/powerpc')
-rw-r--r-- | rtl/powerpc/int64p.inc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/rtl/powerpc/int64p.inc b/rtl/powerpc/int64p.inc index 551860ca53..02f809bdb4 100644 --- a/rtl/powerpc/int64p.inc +++ b/rtl/powerpc/int64p.inc @@ -152,7 +152,7 @@ or. r10,r3,r5 // are both msw's 0? mulhwu r8,r4,r6 // msw of product of lsw's - subi r0,r7,1 // if no overflowcheck, r0 := $ffffffff, else r0 := 0; + not r0,r7 // if no overflowcheck, r0 := $ffffffff, else r0 := 0; beq .LDone // if both msw's are zero, skip cross products mullw r9,r4,r5 // lsw of first cross-product cntlzw r11,r3 // count leading zeroes of msw1 |