diff options
author | Weining Lu <luweining@loongson.cn> | 2022-03-07 16:38:30 +0800 |
---|---|---|
committer | Weining Lu <luweining@loongson.cn> | 2022-03-07 16:47:26 +0800 |
commit | c063f9da5519d7fb83873c04234ef12e33ba28c3 (patch) | |
tree | 5112fe65f1599001967006d5b328ff1c940c004d /clang/lib/Basic/Module.cpp | |
parent | d1e880acaa6f096618fa09d18daf17b9300558fc (diff) | |
download | llvm-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