On 2025-07-14 12:10, Jeremy Drake via Cygwin-patches wrote:
On Mon, 14 Jul 2025, Jeremy Drake wrote:
On Thu, 10 Jul 2025, Radek Barton via Cygwin-patches wrote:
This patch implements `import_address` function by decoding `adr` AArch64 
instructions to get
target address.

Out of curiosity, can you elaborate on when `adr` is used rather than
`adrp`/`add` pair?  I know adr has much less range, but it seems like the
compiler can't know how far away many symbols will be (perhaps it can for
things like local labels).  When I was looking at ntdll in the fastcwd
stuff (and ucrt in ruby) adrp/add (or adrp/ldr) were used, never saw adr.

adr has a +/- 1MB range from PC, while adrp/add has a +/- 4GB range.

Details:

https://devblogs.microsoft.com/oldnewthing/20220809-00/?p=106955

--
Take care. Thanks, Brian Inglis              Calgary, Alberta, Canada

La perfection est atteinte                   Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter  not when there is no more to add
mais lorsqu'il n'y a plus rien à retrancher  but when there is no more to cut
                                -- Antoine de Saint-Exupéry

Reply via email to