From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
To: peter maydell <peter.maydell@linaro.org>
Cc: Will Deacon <will.deacon@arm.com>,
libc-alpha <libc-alpha@sourceware.org>,
linux-kernel <linux-kernel@vger.kernel.org>,
carlos <carlos@redhat.com>,
richard earnshaw <richard.earnshaw@arm.com>
Subject: Re: rseq/arm32: choosing rseq code signature
Date: Mon, 15 Apr 2019 09:37:21 -0400 (EDT) [thread overview]
Message-ID: <71495082.295.1555335441325.JavaMail.zimbra@efficios.com> (raw)
In-Reply-To: <CAFEAcA8YP5vvZpa_5dvv00koupsry9_3x2EB0cjvE6vtoi8sog@mail.gmail.com>
----- On Apr 15, 2019, at 9:30 AM, peter maydell peter.maydell@linaro.org wrote:
> On Mon, 15 Apr 2019 at 14:11, Mathieu Desnoyers
> <mathieu.desnoyers@efficios.com> wrote:
>>
>> ----- On Apr 11, 2019, at 3:55 PM, peter maydell peter.maydell@linaro.org wrote:
>>
>> > On Thu, 11 Apr 2019 at 18:51, Mathieu Desnoyers
>> > <mathieu.desnoyers@efficios.com> wrote:
>> >> * This translates to the following instruction pattern in the T16 instruction
>> >> * set:
>> >> *
>> >> * little endian:
>> >> * def3 udf #243 ; 0xf3
>> >> * e7f5 b.n <7f5>
>> >> *
>> >> * big endian:
>> >> * e7f5 b.n <7f5>
>> >> * def3 udf #243 ; 0xf3
>> >
>> > Do we really care about big-endian instruction-ordering for Thumb?
>> > It requires (AIUI) either an ARMv7R CPU which implements and sets
>> > SCTLR.IE to 1, or a v6-or-earlier CPU using BE32, and it's going to
>> > be even rarer than normal BE8 big-endian...
>>
>> I don't think we care enough about it to look for a trick to
>> turn the branch into something else (which would not branch away from the
>> udf instruction), but considering this signature will be ABI, it's good to
>> be thorough documentation-wise and cover all existing cases.
>
> I think if you want to document it it would be helpful to
> readers to make it clear that this is the ultra-rare
> big-endian-instruction-order "big endian Thumb", not the only
> moderately-rare little-endian-instructions-big-endian-data
> "big endian Thumb".
I'm actually very much concerned about environments with big endian
data and little endian code. Which gcc compiler flags do I need to
use to test it ?
I'm concerned about a signature mismatch between what is passed to
the rseq system call ("data-endian signature") and what is generated
in the code ("instruction-endian signature").
Thanks,
Mathieu
--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
next prev parent reply other threads:[~2019-04-15 13:37 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-09 19:32 rseq/arm32: choosing rseq code signature Mathieu Desnoyers
2019-04-10 20:29 ` Mathieu Desnoyers
2019-04-11 16:42 ` Will Deacon
2019-04-11 17:51 ` Mathieu Desnoyers
2019-04-11 19:55 ` Peter Maydell
2019-04-15 13:11 ` Mathieu Desnoyers
2019-04-15 13:30 ` Peter Maydell
2019-04-15 13:37 ` Mathieu Desnoyers [this message]
2019-04-16 13:39 ` Mathieu Desnoyers
2019-04-17 10:37 ` Richard Earnshaw (lists)
2019-04-17 14:43 ` Mathieu Desnoyers
2019-04-17 15:30 ` Mathieu Desnoyers
2019-04-18 16:18 ` Richard Earnshaw (lists)
2019-04-11 12:24 ` Florian Weimer
2019-04-15 13:22 ` Mathieu Desnoyers
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=71495082.295.1555335441325.JavaMail.zimbra@efficios.com \
--to=mathieu.desnoyers@efficios.com \
--cc=carlos@redhat.com \
--cc=libc-alpha@sourceware.org \
--cc=linux-kernel@vger.kernel.org \
--cc=peter.maydell@linaro.org \
--cc=richard.earnshaw@arm.com \
--cc=will.deacon@arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.