diff options
author | George Kyriazis <[email protected]> | 2018-04-23 16:34:44 -0500 |
---|---|---|
committer | George Kyriazis <[email protected]> | 2018-04-27 14:36:41 -0500 |
commit | edc41f73b88b046598630eafceba6496d974f6c2 (patch) | |
tree | 5418e80770cf06f35c080ec5f752b25c9bc46453 | |
parent | 5d403178e6925545de18fc072935708ffd95079b (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]>
-rw-r--r-- | src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp | 15 |
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 |