Re: darwin pgsql patches

Поиск
Список
Период
Сортировка
От Peter Eisentraut
Тема Re: darwin pgsql patches
Дата
Msg-id Pine.LNX.4.30.0011300001510.3280-100000@peter.localdomain
обсуждение исходный текст
Ответ на Re: darwin pgsql patches  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-patches
Tom Lane writes:

> > I think it has more to do with Apple's forked gcc than anything
> > else. I don't have a LinuxPPC machine to check if adding the rX syntax
> > there would continue to work.
>
> I do (have a LinuxPPC machine), so if you'd identify exactly what I
> should try, I'll be glad to check this point.  Seems like it'd be smart
> to minimize the number of PPC variants of this routine.

Minimize the differences between

+#if defined(darwin) && defined(__ppc__)
+static void
+tas_dummy()
+{
+       __asm__("               \n\
+               .globl  tas     \n\
+               .globl  _tas    \n\
+_tas:                          \n\
+tas:                           \n\
+               lwarx   r5,0,r3 \n\
+               cmpwi   r5,0    \n\
+               bne     fail    \n\
+               addi    r5,r5,1 \n\
+               stwcx.  r5,0,r3 \n\
+               beq     success \n\
+fail:          li      r3,1    \n\
+               blr             \n\
+success:                       \n\
+               li r3,0         \n\
+               blr             \n\
+       ");
+}
+
+#endif  /* __ppc__ && darwin */

and

[src/backend/storage/buffer/s_lock.c]
#if defined(__powerpc__)
/* Note: need a nice gcc constrained asm version so it can be inlined */
static void
tas_dummy()
{
        __asm__("               \n\
.global         tas             \n\
tas:                            \n\
                lwarx   5,0,3   \n\
                cmpwi   5,0     \n\
                bne     fail    \n\
                addi    5,5,1   \n\
                stwcx.  5,0,3   \n\
                beq     success \n\
fail:           li      3,1     \n\
                blr             \n\
success:                        \n\
                li 3,0          \n\
                blr             \n\
        ");
}

#endif   /* __powerpc__ */

under the constraint that the first version is probably not negotiable.
I'd like to wish that the GNU assembler is a little more forgiving.

--
Peter Eisentraut      peter_e@gmx.net       http://yi.org/peter-e/


В списке pgsql-patches по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: darwin pgsql patches
Следующее
От: Thomas Lockhart
Дата:
Сообщение: Re: darwin pgsql patches