History log of /src/lib/libc/arch/arm/gen/_setjmp.S |
Revision | | Date | Author | Comments |
1.20 |
| 08-May-2025 |
uwe | arm: setjmp - fix thumb
"mov" should be spelled "movs" for thumb in unified syntax
|
1.19 |
| 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.18 |
| 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.17 |
| 05-Dec-2020 |
skrll | branches: 1.17.8; spaces to tab
|
1.16 |
| 30-Nov-2013 |
joerg | Use PLT_SYM.
|
1.15 |
| 21-Oct-2013 |
skrll | Fix bug introduced in revision 1.13 which meant longjmp would never work on EABI where VFP didn't exist.
Hi gimpy!
|
1.14 |
| 12-Sep-2013 |
joerg | 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.13 |
| 03-Sep-2013 |
matt | Use less got, add END(), make thumb tolerant.
|
1.12 |
| 19-Apr-2013 |
matt | A small optimization
|
1.11 |
| 19-Apr-2013 |
skrll | Actually fail if the magic number is found to be wrong in __longjmp.
Avoid overwriting the {,_}longjmp return value in __ARM_EABI__
ok matt@
|
1.10 |
| 29-Jan-2013 |
matt | AAPCS (EABI) requires that VFP D8-D15 are always saved, regardless whether the soft float or hard float ABI is being used. However, if there isn't a FPU that can't be done. So only save/restore them if a FPU is present. When libc initializes, it does a sysctl to determine if there is a FPU and stores the result which _setjmp/setjmp uses. If there was a FPU, the magic in the jmp_buf is changed to reflect that the VFP registers were saved. longjmp uses the magic to determine if it needs to restore the VFP registers.
|
1.9 |
| 25-Jan-2013 |
matt | Use __ARM_PCS_VFP to determine whether the VFP is being used.
|
1.8 |
| 11-Jan-2013 |
matt | Remove all FPA code. Support VFP for hard float Allow MKSOFTFLOAT=no
|
1.7 |
| 01-Aug-2012 |
matt | branches: 1.7.2; Add #error cases in case someone tries to compile hardfloat VFP libraries.
|
1.6 |
| 21-Aug-2004 |
rearnsha | branches: 1.6.16; 1.6.50; Use RET and RETc macros for returning.
|
1.5 |
| 05-Apr-2003 |
bjh21 | NetBSD/acorn26 has been using APCS-32 for years, so unifdef -U__APCS_26__.
|
1.4 |
| 17-Aug-2002 |
thorpej | Local label fixup.
|
1.3 |
| 13-Nov-2001 |
chris | Update asm files to use sp instead of r13. Also tweak a couple of bits in the longjmp code to save an instruction.
|
1.2 |
| 16-Jul-2001 |
matt | Changes needed for ARM ELF shared library support.
|
1.1 |
| 29-Dec-2000 |
bjh21 | branches: 1.1.2; 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.1.2.3 |
| 27-Aug-2002 |
nathanw | Catch up to -current.
|
1.1.2.2 |
| 14-Nov-2001 |
nathanw | Catch up to -current.
|
1.1.2.1 |
| 08-Oct-2001 |
nathanw | Catch up to -current.
|
1.6.50.3 |
| 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.6.50.2 |
| 23-Jan-2013 |
yamt | sync with head
|
1.6.50.1 |
| 30-Oct-2012 |
yamt | sync with head
|
1.6.16.1 |
| 28-Aug-2007 |
matt | More thumb support
|
1.7.2.3 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.7.2.2 |
| 23-Jun-2013 |
tls | resync from head
|
1.7.2.1 |
| 25-Feb-2013 |
tls | resync with head
|
1.17.8.1 |
| 02-Aug-2025 |
perseant | Sync with HEAD
|