summaryrefslogtreecommitdiff
path: root/rtl/powerpc
diff options
context:
space:
mode:
authorjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2008-01-24 21:30:55 +0000
committerjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2008-01-24 21:30:55 +0000
commit843397bf53ecde10c25b2e1aac14f87b24bbb43f (patch)
tree816cbce81bf73945d7b44fa4b2f527b93bb83157 /rtl/powerpc
parent995473173452068ad075327e33dd9900647fdbdf (diff)
downloadfpc-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.inc2
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