This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc 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 2/4] aarch64: Re-implement setcontext without sigreturn syscall


Hi Will,

On 13 March 2014 10:45, Will Newton <will.newton@linaro.org> wrote:

The use of x9 is clearly a none issue now.  Which also means that the
syscall code in sysdeps.h can be relaxed somewhat...  That aside I
have another comment on the parsing of extension blocks in the signal
context:

> +       cfi_offset( d8, oV0 + 8 * SZVREG)
> +       cfi_offset( d9, oV0 + 9 * SZVREG)
> +       cfi_offset(d10, oV0 + 10 * SZVREG)
> +       cfi_offset(d11, oV0 + 11 * SZVREG)
> +       cfi_offset(d12, oV0 + 12 * SZVREG)
> +       cfi_offset(d13, oV0 + 13 * SZVREG)
> +       cfi_offset(d14, oV0 + 14 * SZVREG)
> +       cfi_offset(d15, oV0 + 15 * SZVREG)


> +       ldp     x18, x19, [x0, oX0 + 18 * SZREG]
> +       ldp     x20, x21, [x0, oX0 + 20 * SZREG]
> +       ldp     x22, x23, [x0, oX0 + 22 * SZREG]
> +       ldp     x24, x25, [x0, oX0 + 24 * SZREG]
> +       ldp     x26, x27, [x0, oX0 + 26 * SZREG]
> +       ldp     x28, x29, [x0, oX0 + 28 * SZREG]
> +       ldr     x30,      [x0, oX0 + 30 * SZREG]
> +       ldr     x2, [x0, oSP]
> +       mov     sp, x2
> +
> +       /* Check for FP SIMD context.  */
> +       add     x2, x0, #oEXTENSION
> +
> +       mov     w3, #(FPSIMD_MAGIC & 0xffff)
> +       movk    w3, #(FPSIMD_MAGIC >> 16), lsl #16
> +       ldr     w1, [x2, #oHEAD + oMAGIC]
> +       cmp     w1, w3
> +       b.ne    2f

The code should not assume the next block will be the fp/simd block.
The code should iterate over all of the remaining blocks using the
size field looking for the magic marker of the fp/simd block or the
null marker.

This also implies the cfi_offset code above using oVo is incorrect.
Note the existing use of oVo is used to construct context, it is valid
for us to choose such a layout where the fpsimd block follows
immediately after the initial context, but we should not assume the
kernel will use such a layout.

Cheers
/Marcus


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