History log of /src/lib/libc/arch/arm/sys/sbrk.S |
Revision | | Date | Author | Comments |
1.14 |
| 06-May-2025 |
uwe | arm/asm.h: revert PCREL_GET &c in previous (ok riastradh)
This change needs to be redone and re-verified. I have detailed some issues in the PR, and it also turns out that some of the changes were in the !_REENTRANT branch of #ifdef and thus not checked at all. riastradh asked to back out the changes for now.
PR lib/59391: unnecessary __PIC__ conditionals clutter .S files
|
1.13 |
| 03-May-2025 |
riastradh | arm: Nix most __PIC__ conditionals in .S files.
New macros PCREL_GET(rN,label,pclabel) and PCREL_SYM(label,pclabel) to enable this by the pattern:
ldr rN, label #ifdef __PIC__ pclabel: add rN, rN, pc #endif ... label: #ifdef __PIC__ .word (label - (pclabel + 2*sizeof(instruction))) #else .word label #endif
(sizeof(instruction) = 2 for thumb, 4 for non-thumb.)
No binary change in libc with MKPIE=no (i.e., testing both for changes to the PIC build and changes to the non-PIC build).
In principle, assembly routines could improve instruction scheduling by splitting up the ldr and add instructions. But in practice, the maintenance and auditing burden likely makes this worthwhile by improving legibility vs a tangle of in-line #ifdefs.
brk.S does things a little differently making it harder to unify. Could redo it but I don't want to make changes without testing them first.
PR lib/59391: unnecessary __PIC__ conditionals clutter .S files
|
1.12 |
| 12-Sep-2013 |
joerg | branches: 1.12.38; Pass PICFLAGS down to cc-as-as and use __PIC__ to decide if it is small vs big PIC mode. Retire -DPIC and -DBIGPIC.
|
1.11 |
| 03-Sep-2013 |
matt | Use less got, add END(), make thumb tolerant.
|
1.10 |
| 01-Aug-2013 |
matt | Make __minbrk, __curbrk, and CERROR hidden and avoid using the GOT to access them.
|
1.9 |
| 13-May-2011 |
nonaka | branches: 1.9.4; 1.9.10; Use "_end" instead of "end" for consistency with other architectures.
|
1.8 |
| 21-Aug-2004 |
rearnsha | branches: 1.8.16; Use RET and RETc for returning.
|
1.7 |
| 07-Aug-2003 |
agc | Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22280, verified by myself.
|
1.6 |
| 05-Apr-2003 |
bjh21 | NetBSD/acorn26 has been using APCS-32 for years, so unifdef -U__APCS_26__.
|
1.5 |
| 17-Aug-2002 |
thorpej | Local label fixup.
|
1.4 |
| 16-Jul-2001 |
matt | Changes needed for ARM ELF shared library support.
|
1.3 |
| 05-May-2001 |
kleink | Shameless hack to reference end when using a.out and _end when using ELF.
|
1.2 |
| 09-Jan-2001 |
bjh21 | branches: 1.2.2; Use SYSTRAP() everywhere rather than coding SWI instructions directly.
|
1.1 |
| 29-Dec-2000 |
bjh21 | Create shared ARM source for libc, and move arm26 port over to using it. The code is (almost) a direct copy of the current arm26 sources. It's identical to the current arm32 sources, with the following exceptions: - _C_LABEL is used on references to C labels from assembler. - Function returns in assembler have APCS-26 versions in #ifdef __APCS_26__. - It uses SoftFloat 2a rather than SoftFloat 1a.
The first two of these should be inconsequential. I believe that SoftFloat 2a should work on arm32 and be backward-compatible with existing code, but this is not obviously true. For now, arm32 remains using its own bits of libc.
|
1.2.2.2 |
| 27-Aug-2002 |
nathanw | Catch up to -current.
|
1.2.2.1 |
| 08-Oct-2001 |
nathanw | Catch up to -current.
|
1.8.16.1 |
| 28-Aug-2007 |
matt | More thumb support
|
1.9.10.1 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.9.4.1 |
| 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.12.38.1 |
| 02-Aug-2025 |
perseant | Sync with HEAD
|