This is the mail archive of the libc-ports@sources.redhat.com mailing list for the libc-ports project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] [AARCH64]: Pointer mangling support for Aarch64


Hi Richard,

On 27 December 2013 01:03, Richard Henderson <rth@twiddle.net> wrote:
> On 12/26/2013 04:25 AM, Venkataramanan Kumar wrote:
>> +#ifdef PTR_DEMANGLE
>>       ldp     x29, x30, [x0, #JB_X29<<3]
>> -
>> +     PTR_DEMANGLE (x4, x30, x3, x2)
>> +     mov     x30, x4
>> +#else
>
> Why not load into x4 and then demangle into x30 directly?  I.e.
>
>         ldp     x29, x4, [x0, #JB_X29<<3]
>         PTR_DEMANGLE (x30, x4, x3, x2)
>
>
> r~

Yes this can be done. Also I changed the mangling code to use store
pair instruction.
Attached is the revised patch. I will do a cross test on V8 foundation
model again.

ChangeLog.aarch64:
-----------------------------
2013-12-26  Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>

* sysdeps/aarch64/__longjmp.S (__longjmp): Demangle sp
        and lr when restoring register values.
* sysdeps/aarch64/setjmp.S (__sigsetjmp): Mangle sp and lr
before storing register values.
* sysdeps/arm/jmpbuf-unwind.h (_jmpbuf_sp): Remove.
* sysdeps/aarch64/jmpbuf-offsets.h (_jmpbuf_sp): Add.
(JB_FRAME_ADDRESS): call  _jmpbuf_sp.
* sysdeps/aarch64/sysdep.h (LDST_PCREL) : New macros.
(LDST_GLOBAL): Likewise.
* sysdeps/unix/sysv/linux/aarch64/sysdep.h (PTR_MANGLE): New macro.
(PTR_DEMANGLE): Likewise.
(PTR_MANGLE2): Likewise.
(PTR_DEMANGLE2): Likewise.

regards
Venkat.

Attachment: aarch64.glibc.pointer.mangle.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]