Zhaoxin Yang bd84d66700
[lld][LoongArch] Convert TLS IE to LE in the normal or medium code model (#123680)
Original code sequence:
* pcalau12i $a0, %ie_pc_hi20(sym)
* ld.d           $a0, $a0, %ie_pc_lo12(sym)

The code sequence converted is as follows:
* lu12i.w   $a0, %le_hi20(sym)         # le_hi20 != 0, otherwise NOP
* ori          $a0, src, %le_lo12(sym)  # le_hi20 != 0, src = $a0,
                                                         # otherwise,    src = $zero

TODO: When relaxation is enabled, redundant NOP can be removed. This
will be implemented in a future patch.
    
Note: In the normal or medium code model, original code sequence with
relocations allow interleaving, because converted code sequence
calculates the absolute offset. However, in extreme code model, to
identify the current code model, the first four instructions with
relocations must appear consecutively.
2025-04-07 19:58:48 +08:00
..
2024-10-05 09:37:27 -07:00
2024-10-06 00:31:51 -07:00
2024-11-14 22:17:10 -08:00
2024-10-10 22:22:25 -07:00
2024-09-29 14:45:00 -07:00
2025-01-03 09:38:04 -08:00
2024-09-29 15:39:52 -07:00
2024-09-29 15:32:16 -07:00
2024-10-11 23:34:43 -07:00

See docs/NewLLD.rst