This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC 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: [RFC] Port libitm to powerpc


On 12/03/2011 09:20 AM, Iain Sandoe wrote:
> version 2 is a modification of your original:
> 
> a)  -FRAME+BASE(r1) cannot be guaranteed to be vec-aligned in general (it isn't on m32 darwin)
> 
> ... so I've taken the liberty of rounding the gtm_buffer object and then pointing r4 at  original_sp-rounded_size, which is what we want for the call to GTM_begin_transaction anyway.

I've kept this in the version below, but I cannot see how that can be,
since your version of BASE is 8*WS = 64, a multiple of 16.

> b) I've added the CR etc. wrapped in  __MACH__ ifdefs.

Taken out of the ifdefs to be done everywhere.

> c) ";" is a comment introducer for Darwin's asm .. so I unwrapped those lines ...

Sure.

> d) I put in the logic for handling __USER_LABEL_PREFIX__ .

Merged into the FUNC / END / HIDDEN macros.

> e) The real problem is finding a non-horrible way of dealing with the %r <=> r issue - and I've not done that so far...

Dropped the %r entirely and using bare numbers, which is what the compiler
emits by default.  I kept the %[rfv] in the cfi directives though;
I assume that darwin simply doesn't have those and so it won't be an issue.
Worse come to worse, we can map those to raw dwarf columns, but I thought
this was more readable in case we can keep them.

Give this a go.  The full tree is

  git://repo.or.cz/gcc/rth.git rth/tm-next

which is what I actually tested on ppc64-linux, but I've extracted the middle
three patches from that tree, which ought to apply to mainline.


r~

Attachment: z
Description: Text document


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