diff options
author | David S. Miller <davem@davemloft.net> | 2012-02-21 15:45:17 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-02-20 17:52:01 -0800 |
commit | 0722d7c2ac52b343e895b0726fd08ec8e9677c04 (patch) | |
tree | bb83f4de76d3ab6b9e04b2742353824870dca3a1 | |
parent | 3d2b3019e0efa9735370498122ac80298deff8c7 (diff) | |
download | glibc-0722d7c2ac52b343e895b0726fd08ec8e9677c04.tar.gz glibc-0722d7c2ac52b343e895b0726fd08ec8e9677c04.tar.xz glibc-0722d7c2ac52b343e895b0726fd08ec8e9677c04.zip |
Explain why we don't make use of RDPC in the sparc PIC register setup.
* sysdeps/unix/sparc/sysdep.h: Document why we don't use "rd %pc" in the PIC register setup sequences.
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | sysdeps/unix/sparc/sysdep.h | 3 |
2 files changed, 6 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog index 5f966e8072..c12571959a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2012-02-20 David S. Miller <davem@davemloft.net> + * sysdeps/unix/sparc/sysdep.h: Document why we don't use + "rd %pc" in the PIC register setup sequences. + * sysdeps/sparc/crti.S: Try to use GOTDATA relocs. * sysdeps/sparc/sparc32/dl-machine.h (RTLD_START): Likewise. * sysdeps/sparc/sparc32/elf/start.S: Likewise. diff --git a/sysdeps/unix/sparc/sysdep.h b/sysdeps/unix/sparc/sysdep.h index 10d561e789..1a095cc6c2 100644 --- a/sysdeps/unix/sparc/sysdep.h +++ b/sysdeps/unix/sparc/sysdep.h @@ -39,6 +39,9 @@ __sparc_get_pc_thunk.reg: \ .previous; \ .endif; +/* Even when v9 we use a call sequence instead of using "rd %pc" because + RDPC is extremely expensive and incurs a full pipeline flush. */ + #define SETUP_PIC_REG(reg) \ SPARC_PIC_THUNK(reg) \ sethi %hi(_GLOBAL_OFFSET_TABLE_-4), %##reg; \ |