[Gc] Re: Re: [Patch 2/2] Aarch64 libatomic_ops and Gc basic port
yvan.roux at linaro.org
Mon Jan 28 05:05:51 PST 2013
> gcc-boehmgc at bdwgc git repository is a "read-only" branch I used to
> identify code that worth merging to master.
> To be fixed:
> * AO_load_acquire - it is defined twice (in aarch64.h and in ordered_load.h)
> - are they the same at asm level?
In fact the other definition of AO_load_acquire (in read_ordered.h) is
implemented as a AO_load followed by an AO_compiler_barrier (actually
this macro is an empty one for the AArch64, but probably have to be a
dmb instruction), whereas the call to the atomic builtin with the
acquire memory model, used the explicit load-acquire (ldar) of the
AArch64 ISA :
sub sp, sp, #16
str x0, [sp]
ldr x0, [sp]
ldar w0, [x0]
add sp, sp, 16
> Also, it would be good if you provide us with the assembly output for each
> primitive in aarch64.h - just to check verify gcc output.
Yes sure, I'll sent all the generated assembly code.
> The TODO items I've placed to aarch64.h are not strictly necessary to be
> done to have the file merged to master.
Ok, many thanks for your help.
> 24 01 2013, 12:55 +01:00 Yvan Roux <yvan.roux at linaro.org>:
> Hi Ivan and Marcus,
> Thanks for the comments and committing.
> I've a question for you two, on the proper way to have this merged
> into GCC. Should it be first merged into Ivan's gcc-boehmgc github
> branch or directly into the FSF repo ? Regarding the FSF, Marcus this
> has to go into the AArch64 branch I guess ?
> On 23 January 2013 20:51, Ivan Maidanski <ivmai at mail.ru> wrote:
>> Hi Marcus and Yvan,
>> I've committed the proposed GC patch (with the 2 corrections mentioned
>> below) to master branch:
>> Wed, 23 Jan 2013, 18:15 UTC Marcus Shawcroft <marcus.shawcroft at arm.com>:
>> On 23/01/13 17:53, Yvan Roux wrote:
>>> @@ -557,6 +568,7 @@
>>> /* running Amdahl UTS4 */
>>> /* S390 ==> 390-like machine */
>>> /* running LINUX */
>>> + /* AARCH64 ==> ARM 64-bit */
>> The define AARCH64 represents the ARM AArch64 execution state therefore
>> I think this comment should read:
>> AARCH64 -> ARM AArch64
>>> +# define DATASTART ((ptr_t)__data_start)
>>> + /* __stack_base__ is set in newlib/libc/sys/arm/crt0.S */
>> That comment doesn't make sense in this context.
>> Gc mailing list
>> Gc at linux.hpl.hp.com
> Gc mailing list
> Gc at linux.hpl.hp.com
More information about the Gc