You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Feb 29, 2024. It is now read-only.
standard 3bit rd`
without immediate, has a range of subsequent addi/lw with +-2KiB range, adding small imm multiplies it
use cases:
callback heavy code
need to find such codebases (usually proprietary)
Results could be biased by current compilers not caring about callback code placement (no reason to), loading addresses from .rodata or as lui + addi
addressing .rodata
sometimes .rodata is in close range of current pc (e.g. small embedded with like <=32K of FLASH)
not very useful if tp ends up as .rodata pointer instead of second gp
EDIT:
PIC code: GOT table acceses are also auipc based
The text was updated successfully, but these errors were encountered:
assuming that all sections land close to each other
with larger constant it can also reach rest of .data and .bss
embedded: I don't expect sram placed so close to flash
wrt memory models:
medlow + no offset: compete with c.lui - no gain
medany + no offset: is the compiler allowed to emit lui instead of auipc anyway? if yes - no gain
about the constant: reserved encoding next to compressed loads/stores allows for upto 7 bits of imm. +- 260K addresable space
standard 3bit rd`
without immediate, has a range of subsequent addi/lw with +-2KiB range, adding small imm multiplies it
use cases:
need to find such codebases (usually proprietary)
Results could be biased by current compilers not caring about callback code placement (no reason to), loading addresses from
.rodata
or aslui
+addi
.rodata
sometimes
.rodata
is in close range of currentpc
(e.g. small embedded with like <=32K of FLASH)not very useful if
tp
ends up as.rodata
pointer instead of secondgp
EDIT:
The text was updated successfully, but these errors were encountered: