[Libre-soc-dev] TOC immediate loading aka. basically x86 CISC register-memory operations
Jacob Lifshay
programmerjake at gmail.com
Sat Jul 23 00:34:08 BST 2022
https://git.libre-soc.org/?p=libreriscv.git;a=blob;f=openpower/sv/toc_data_pointer.mdwn;h=74b1c9d1f2162463593ce7e0b458474039ccc361;hb=HEAD
if you have:
cmpi r3, {TOC + 8}
imho that's basically the same as x86_64's CISC-style register-memory
instruction:
cmp rax, [rip+0x1234]
imho a better approach is to instead just use the pc-relative loads added
as part of v3.1 -- pld with R=1:
pld r4, 0x1234(0), 1 # r4 = load_64(pc + 0x1234)
cmp r3, r4
no TOC needed.
Jacob
More information about the Libre-soc-dev
mailing list