[llvm-dev] How is a large immediate divided in the arm backend

Ben Shi via llvm-dev llvm-dev at lists.llvm.org
Tue Jun 30 20:50:43 PDT 2020


Hello,


I often see "add %i32 %0, 0x1fe" was mapped to


add R0, R0, 0xff
add R0, R0, 0xff


The 0x1fe is divided to two 0xff, since 0xff is small enough to be encoded in the instruction code, while 0x1ff has to be put in the constant pool.


Where does this break implemented?


Ben 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200701/83c1efd0/attachment.html>


More information about the llvm-dev mailing list