From: MatthiasR <MatthiasR@invalid.invalid>
Subject: Re: Forcing GNAT to use 32-bit load/store instructions on ARM?
Date: Sat, 26 Jul 2014 13:05:08 +0200
Date: 2014-07-26T13:05:08+02:00 [thread overview]
Message-ID: <lr02dr$ql9$1@dont-email.me> (raw)
In-Reply-To: lqgodn$ur3$1@dont-email.me
Simon Clubley wrote:
> On 2014-07-20, MatthiasR <MatthiasR@invalid.invalid> wrote:
>>
>> So, if a C compiler is AAPCS-compliant, volatile bitfields should have
>> the desired behaviour. Whether a compiler is *really* AAPCS-compliant, is
>> another question. A well-known open source C compiler had bugs in this
>> area in several releases. Last year, attempts were made to repair it. I
>> don't know the current status.
>>
>
> That open source C compiler wouldn't be called gcc by any chance
> would it ? :-)
How did you guess that? ;-)
> I did some experiments with using bitfields instead of bitmasks in
> some bare metal ARM target C code a couple of years ago and ran into
> the exact same problems as the OP's Ada code, with gcc's generated
> code using ldrb instead of ldr.
'strict volatile bitfields' are good keywords to find some informations
about the bugs in this area - and the recent attempts to fix them.
> I haven't tried building a ARM cross compiler using the very latest
> versions of gcc however.
>
> Simon.
It looks like there are indeed some changes in the latest versions: In
http://www.lpcware.com/content/forum/volatile-preventing-ldrb-byte-access
someone complains that the compiler does *not* use ldrb on a volatile
struct...
Matthias
next prev parent reply other threads:[~2014-07-26 11:05 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-30 22:11 Forcing GNAT to use 32-bit load/store instructions on ARM? daniel.dmk
2014-06-30 23:41 ` Jeffrey Carter
2014-07-01 12:06 ` Simon Clubley
2014-07-01 15:44 ` Niklas Holsti
2014-07-01 17:26 ` Simon Clubley
2014-07-01 17:18 ` Simon Wright
2014-07-01 19:43 ` Simon Wright
2014-07-01 17:28 ` Jeffrey Carter
2014-07-01 0:55 ` anon
2014-07-01 4:30 ` Niklas Holsti
2014-07-01 8:11 ` Dmitry A. Kazakov
2014-07-01 12:09 ` Simon Clubley
2014-07-01 12:20 ` Dmitry A. Kazakov
2014-07-01 17:00 ` Simon Clubley
2014-07-01 19:36 ` Dmitry A. Kazakov
2014-07-01 20:08 ` Simon Clubley
2014-07-02 22:24 ` Randy Brukardt
2014-07-06 20:40 ` MatthiasR
2014-07-07 0:25 ` Simon Clubley
2014-07-07 22:38 ` Randy Brukardt
2014-07-08 6:51 ` Simon Wright
2014-07-10 11:47 ` Simon Wright
2014-07-10 13:06 ` Simon Clubley
2014-07-11 18:05 ` Simon Wright
2014-07-11 20:22 ` Simon Clubley
2014-07-08 8:50 ` Brian Drummond
2014-07-08 12:12 ` Simon Clubley
2014-07-08 13:26 ` G.B.
2014-07-08 17:13 ` Simon Clubley
2014-07-08 15:36 ` Adam Beneschan
2014-07-08 15:40 ` Adam Beneschan
2014-07-08 20:34 ` Randy Brukardt
2014-07-09 7:31 ` Dmitry A. Kazakov
2014-07-10 0:11 ` Simon Clubley
2014-07-20 11:35 ` MatthiasR
2014-07-20 15:49 ` Simon Clubley
2014-07-26 11:05 ` MatthiasR [this message]
2014-08-10 11:20 ` MatthiasR
2014-07-01 12:03 ` Simon Clubley
2014-07-01 19:52 ` daniel.dmk
2014-07-01 20:40 ` Simon Clubley
2014-07-01 20:55 ` Simon Clubley
2014-07-01 21:01 ` Niklas Holsti
2014-07-01 21:20 ` Simon Clubley
2014-07-01 22:38 ` Niklas Holsti
2014-07-02 16:49 ` Simon Clubley
2014-07-01 21:55 ` daniel.dmk
2014-07-02 7:30 ` Simon Wright
2014-07-02 18:52 ` daniel.dmk
2014-07-04 23:51 ` Niklas Holsti
2014-07-05 0:18 ` Niklas Holsti
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox