| ... | ... | @@ -271,17 +271,17 @@ inline fn getDynamicSymbol() [*]const elf.Dyn { |
| 271 | 271 | : [ret] "=r" (-> [*]const elf.Dyn), |
| 272 | 272 | : |
| 273 | 273 | : .{ .r0 = true }), |
| 274 | | // The compiler does not necessarily have any obligation to load the `l7` register (pointing |
| 275 | | // to the GOT), so do it ourselves just in case. |
| 276 | 274 | .sparc, .sparc64 => asm volatile ( |
| 277 | | \\ sethi %%hi(_GLOBAL_OFFSET_TABLE_ - 4), %%l7 |
| 275 | \\ .weak _DYNAMIC |
| 276 | \\ .hidden _DYNAMIC |
| 277 | \\ sethi %%pc22(_DYNAMIC - 4), %[ret] |
| 278 | 278 | \\ call 1f |
| 279 | | \\ add %%l7, %%lo(_GLOBAL_OFFSET_TABLE_ + 4), %%l7 |
| 279 | \\ add %[ret], %%pc10(_DYNAMIC + 4), %[ret] |
| 280 | 280 | \\1: |
| 281 | | \\ add %%l7, %%o7, %[ret] |
| 281 | \\ add %[ret], %%o7, %[ret] |
| 282 | 282 | : [ret] "=r" (-> [*]const elf.Dyn), |
| 283 | 283 | : |
| 284 | | : .{ .l7 = true }), |
| 284 | : .{ .o7 = true }), |
| 285 | 285 | .xtensa, .xtensaeb => asm volatile ( |
| 286 | 286 | \\ .weak _DYNAMIC |
| 287 | 287 | \\ .hidden _DYNAMIC |