summaryrefslogtreecommitdiffstats
path: root/clang/lib/Index/CommentToXML.cpp
diff options
context:
space:
mode:
authorDiana Picus <diana.picus@linaro.org>2017-03-01 15:35:14 +0000
committerDiana Picus <diana.picus@linaro.org>2017-03-01 15:35:14 +0000
commit9c52309b372137479b872b88daff5ffd135f4bf7 (patch)
tree0b0c3fa539d741cabc8d626bac6a2067788e4df0 /clang/lib/Index/CommentToXML.cpp
parent88a1b8b4660481114428c6aed377f7c546195207 (diff)
downloadbcm5719-llvm-9c52309b372137479b872b88daff5ffd135f4bf7.tar.gz
bcm5719-llvm-9c52309b372137479b872b88daff5ffd135f4bf7.zip
[ARM] GlobalISel: Lower call params that need extensions
Lower i1, i8 and i16 call parameters by extending them before storing them on the stack. Also make sure we encode the correct, extended size in the corresponding memory operand, and that we compute the correct stack size in the end. The latter is a bit more complicated because we used to compute the stack size in the getStackAddress method, based on the Size and Offset of the parameters. However, if the last parameter is sign extended, we'd be using the wrong, non-extended size, and we'd end up with a smaller stack than we need to hold the extended value. Instead of hacking this up based on the value of Size in getStackAddress, we move our stack size handling logic to assignArg, where we have access to the CCState which knows everything we could possibly want to know about the stack. This way we don't need to duplicate any knowledge or resort to any ugly hacks. On this same occasion, update the IRTranslator test to check the sizes of the stores everywhere, not just for sign extended paramteres. llvm-svn: 296631
Diffstat (limited to 'clang/lib/Index/CommentToXML.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud