projects
/
oota-llvm.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
f6bcd1b
)
Bug fix: sign-extension was not happening for C = -MININT since C == -C!
author
Vikram S. Adve
<vadve@cs.uiuc.edu>
Sun, 25 May 2003 21:58:11 +0000
(21:58 +0000)
committer
Vikram S. Adve
<vadve@cs.uiuc.edu>
Sun, 25 May 2003 21:58:11 +0000
(21:58 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6332
91177308
-0d34-0410-b5e6-
96231b3b80d8
lib/Target/SparcV9/SparcV9InstrInfo.cpp
patch
|
blob
|
history
diff --git
a/lib/Target/SparcV9/SparcV9InstrInfo.cpp
b/lib/Target/SparcV9/SparcV9InstrInfo.cpp
index 977360bf006dd226616407dec33fdc1935454ebc..aa48278fbff6441fde3140d91eb81d06c873be67 100644
(file)
--- a/
lib/Target/SparcV9/SparcV9InstrInfo.cpp
+++ b/
lib/Target/SparcV9/SparcV9InstrInfo.cpp
@@
-142,8
+142,9
@@
CreateSETSWConst(const TargetMachine& target, int32_t C,
// Set the low 32 bits of dest
CreateSETUWConst(target, (uint32_t) C, dest, mvec, /*isSigned*/true);
- // Sign-extend to the high 32 bits if needed
- if (C < 0 && (-C) > (int32_t) MAXSIMM)
+ // Sign-extend to the high 32 bits if needed.
+ // NOTE: The value C = 0x80000000 is bad: -C == C and so -C is < MAXSIMM
+ if (C < 0 && (C == -C || -C > (int32_t) MAXSIMM))
mvec.push_back(BuildMI(V9::SRA, 3).addReg(dest).addZImm(0).addRegDef(dest));
}