summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/swr/rasterizer
diff options
context:
space:
mode:
authorGeorge Kyriazis <[email protected]>2018-04-23 16:34:44 -0500
committerGeorge Kyriazis <[email protected]>2018-04-27 14:36:41 -0500
commitedc41f73b88b046598630eafceba6496d974f6c2 (patch)
tree5418e80770cf06f35c080ec5f752b25c9bc46453 /src/gallium/drivers/swr/rasterizer
parent5d403178e6925545de18fc072935708ffd95079b (diff)
swr/rast: jit PRINT improvements.
Sign-extend integer types to 32bit when specifying "%d" and add new %u which zero-extends to 32bit. Improves printing of sub 32bit integer types (i1 specifically). Reviewed-by: Bruce Cherniak <[email protected]>
Diffstat (limited to 'src/gallium/drivers/swr/rasterizer')
-rw-r--r--src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp b/src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp
index f8936930b7e..619a67beba8 100644
--- a/src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp
+++ b/src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp
@@ -416,9 +416,20 @@ namespace SwrJit
{
tempStr.insert(pos, std::string("%d "));
pos += 3;
- printCallArgs.push_back(VEXTRACT(pArg, C(i)));
+ printCallArgs.push_back(S_EXT(VEXTRACT(pArg, C(i)), Type::getInt32Ty(JM()->mContext)));
+ }
+ printCallArgs.push_back(S_EXT(VEXTRACT(pArg, C(i)), Type::getInt32Ty(JM()->mContext)));
+ }
+ else if ((tempStr[pos + 1] == 'u') && (pContainedType->isIntegerTy()))
+ {
+ uint32_t i = 0;
+ for (; i < (pArg->getType()->getVectorNumElements()) - 1; i++)
+ {
+ tempStr.insert(pos, std::string("%d "));
+ pos += 3;
+ printCallArgs.push_back(Z_EXT(VEXTRACT(pArg, C(i)), Type::getInt32Ty(JM()->mContext)));
}
- printCallArgs.push_back(VEXTRACT(pArg, C(i)));
+ printCallArgs.push_back(Z_EXT(VEXTRACT(pArg, C(i)), Type::getInt32Ty(JM()->mContext)));
}
}
else