aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Basic/Module.cpp
diff options
context:
space:
mode:
authorWeining Lu <luweining@loongson.cn>2022-03-07 16:38:30 +0800
committerWeining Lu <luweining@loongson.cn>2022-03-07 16:47:26 +0800
commitc063f9da5519d7fb83873c04234ef12e33ba28c3 (patch)
tree5112fe65f1599001967006d5b328ff1c940c004d /clang/lib/Basic/Module.cpp
parentd1e880acaa6f096618fa09d18daf17b9300558fc (diff)
downloadllvm-c063f9da5519d7fb83873c04234ef12e33ba28c3.zip
llvm-c063f9da5519d7fb83873c04234ef12e33ba28c3.tar.gz
llvm-c063f9da5519d7fb83873c04234ef12e33ba28c3.tar.bz2
[LoongArch] Add EncoderMethods for transformed immediate operands
This is a split patch of D120476 and thanks to myhsu. 'Transformed' means the encoding of an immediate is not the same as its binary representation. For example, the `bl` instruction requires a signed 28-bits integer as its operand and the low 2 bits must be 0. So only the upper 26 bits are needed to get encoded into the instruction. Based on the above reason this kind of immediate needs a customed `EncoderMethod` to get the real value getting encoded into the instruction. Currently these immediate includes: ``` uimm2_plus1 simm14_lsl2 simm16_lsl2 simm21_lsl2 simm26_lsl2 ``` This patch adds those `EncoderMethod`s and revises related .mir test in previous patch. Reviewed By: xen0n, MaskRay Differential Revision: https://reviews.llvm.org/D120545
Diffstat (limited to 'clang/lib/Basic/Module.cpp')
0 files changed, 0 insertions, 0 deletions