Mesa (master): radeon/llvm: Fix encoding of FP immediates on SI
Tom Stellard
tstellar at kemper.freedesktop.org
Wed Aug 29 20:43:45 UTC 2012
Module: Mesa
Branch: master
Commit: 2809ae3d445bc10a79f119946439431ba73bb069
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2809ae3d445bc10a79f119946439431ba73bb069
Author: Tom Stellard <thomas.stellard at amd.com>
Date: Wed Aug 29 11:39:38 2012 -0400
radeon/llvm: Fix encoding of FP immediates on SI
---
.../radeon/MCTargetDesc/SIMCCodeEmitter.cpp | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/src/gallium/drivers/radeon/MCTargetDesc/SIMCCodeEmitter.cpp b/src/gallium/drivers/radeon/MCTargetDesc/SIMCCodeEmitter.cpp
index bc0b968..5569cf6 100644
--- a/src/gallium/drivers/radeon/MCTargetDesc/SIMCCodeEmitter.cpp
+++ b/src/gallium/drivers/radeon/MCTargetDesc/SIMCCodeEmitter.cpp
@@ -239,9 +239,14 @@ uint64_t SIMCCodeEmitter::VOPPostEncode(const MCInst &MI, uint64_t Value) const{
Value |= (VGPR_BIT(opIdx)) << vgprBitOffset;
}
} else if (MO.isFPImm()) {
+ union {
+ float f;
+ uint32_t i;
+ } Imm;
// XXX: Not all instructions can use inline literals
// XXX: We should make sure this is a 32-bit constant
- Value |= ((uint64_t)MO.getFPImm()) << 32;
+ Imm.f = MO.getFPImm();
+ Value |= ((uint64_t)Imm.i) << 32;
}
}
return Value;
More information about the mesa-commit
mailing list