From edc41f73b88b046598630eafceba6496d974f6c2 Mon Sep 17 00:00:00 2001 From: George Kyriazis Date: Mon, 23 Apr 2018 16:34:44 -0500 Subject: [PATCH] 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 --- .../drivers/swr/rasterizer/jitter/builder_misc.cpp | 15 +++++++++++++-- 1 file 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 f893693..619a67b 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 -- 2.7.4