* Updates to make non-inline assembly behave properly on AIX.
This commit was SVN r4364.
Этот коммит содержится в:
родитель
123e15857f
Коммит
e51bb59b54
@ -27,6 +27,6 @@ IA32 default-.text-.globl-:--.L-@-1-0-1-0 ia32-linux
|
||||
POWERPC32 default-.text-.globl-:-_-L--0-1-1-0 powerpc32-osx
|
||||
POWERPC32 default-.text-.globl-:-_-L--0-1-1-1 powerpc32-64-osx
|
||||
POWERPC32 default-.text-.globl-:--.L-@-1-1-0-0 powerpc32-linux
|
||||
POWERPC32 aix-.csect .text[PR]-.globl-:-.-L--0-0-0-0 powerpc32-aix
|
||||
POWERPC32 aix-.csect .text[PR]-.globl-:-.-L--0-1-0-0 powerpc32-aix
|
||||
POWERPC64 default-.text-.globl-:-_-L--0-1-1-1 powerpc64-osx
|
||||
POWERPC64 aix-.csect .text[PR]-.globl-:-.-L--0-1-0-1 powerpc64-aix
|
||||
|
@ -1,3 +1,4 @@
|
||||
START_FILE
|
||||
TEXT
|
||||
|
||||
START_FUNC(ompi_atomic_mb)
|
||||
|
@ -1,3 +1,4 @@
|
||||
START_FILE
|
||||
TEXT
|
||||
|
||||
START_FUNC(ompi_atomic_mb)
|
||||
|
@ -1,3 +1,4 @@
|
||||
START_FILE
|
||||
TEXT
|
||||
|
||||
ALIGN(4)
|
||||
@ -20,13 +21,13 @@ END_FUNC(ompi_atomic_wmb)
|
||||
|
||||
|
||||
START_FUNC(ompi_atomic_cmpset_32)
|
||||
1: lwarx r0, 0, r3
|
||||
LSYM(1) lwarx r0, 0, r3
|
||||
cmpw 0, r0, r4
|
||||
bne- 2f
|
||||
bne- REFLSYM(2)
|
||||
stwcx. r5, 0, r3
|
||||
bne- 1b
|
||||
bne- REFLSYM(1)
|
||||
sync
|
||||
2:
|
||||
LSYM(2)
|
||||
xor r3,r0,r4
|
||||
subfic r2,r3,0
|
||||
adde r3,r2,r3
|
||||
@ -35,13 +36,13 @@ END_FUNC(ompi_atomic_cmpset_32)
|
||||
|
||||
|
||||
START_FUNC(ompi_atomic_cmpset_acq_32)
|
||||
1: lwarx r0, 0, r3
|
||||
LSYM(3) lwarx r0, 0, r3
|
||||
cmpw 0, r0, r4
|
||||
bne- 2f
|
||||
bne- REFLSYM(4)
|
||||
stwcx. r5, 0, r3
|
||||
bne- 1b
|
||||
bne- REFLSYM(3)
|
||||
sync
|
||||
2:
|
||||
LSYM(4)
|
||||
xor r3,r0,r4
|
||||
subfic r2,r3,0
|
||||
adde r3,r2,r3
|
||||
@ -52,13 +53,13 @@ END_FUNC(ompi_atomic_cmpset_acq_32)
|
||||
|
||||
START_FUNC(ompi_atomic_cmpset_rel_32)
|
||||
eieio
|
||||
1: lwarx r0, 0, r3
|
||||
LSYM(5) lwarx r0, 0, r3
|
||||
cmpw 0, r0, r4
|
||||
bne- 2f
|
||||
bne- REFLSYM(6)
|
||||
stwcx. r5, 0, r3
|
||||
bne- 1b
|
||||
bne- REFLSYM(5)
|
||||
sync
|
||||
2:
|
||||
LSYM(6)
|
||||
xor r3,r0,r4
|
||||
subfic r2,r3,0
|
||||
adde r3,r2,r3
|
||||
@ -73,12 +74,12 @@ START_FUNC(ompi_atomic_cmpset_64)
|
||||
stw r7,-20(r1)
|
||||
ld r5,-32(r1)
|
||||
ld r7,-24(r1)
|
||||
1: ldarx r9, 0, r3
|
||||
LSYM(7) ldarx r9, 0, r3
|
||||
cmpd 0, r9, r5
|
||||
bne- 2f
|
||||
bne- REFLSYM(8)
|
||||
stdcx. r7, 0, r3
|
||||
bne- 1b
|
||||
2:
|
||||
bne- REFLSYM(7)
|
||||
LSYM(8)
|
||||
xor r3,r5,r9
|
||||
subfic r2,r3,0
|
||||
adde r3,r2,r3
|
||||
@ -94,12 +95,12 @@ START_FUNC(ompi_atomic_cmpset_acq_64)
|
||||
ld r5,-32(r1)
|
||||
ld r7,-24(r1)
|
||||
|
||||
1: ldarx r9, 0, r3
|
||||
LSYM(9) ldarx r9, 0, r3
|
||||
cmpd 0, r9, r5
|
||||
bne- 2f
|
||||
bne- REFLSYM(10)
|
||||
stdcx. r7, 0, r3
|
||||
bne- 1b
|
||||
2:
|
||||
bne- REFLSYM(9)
|
||||
LSYM(10)
|
||||
xor r3,r5,r9
|
||||
subfic r2,r3,0
|
||||
adde r3,r2,r3
|
||||
@ -118,12 +119,12 @@ START_FUNC(ompi_atomic_cmpset_rel_64)
|
||||
ld r7,-24(r1)
|
||||
|
||||
eieio
|
||||
1: ldarx r9, 0, r3
|
||||
LSYM(11) ldarx r9, 0, r3
|
||||
cmpd 0, r9, r5
|
||||
bne- 2f
|
||||
bne- REFLSYM(12)
|
||||
stdcx. r7, 0, r3
|
||||
bne- 1b
|
||||
2:
|
||||
bne- REFLSYM(11)
|
||||
LSYM(12)
|
||||
xor r3,r5,r9
|
||||
subfic r2,r3,0
|
||||
adde r3,r2,r3
|
||||
@ -135,10 +136,10 @@ END_FUNC(ompi_atomic_cmpset_rel_64)
|
||||
|
||||
|
||||
START_FUNC(ompi_atomic_add_32)
|
||||
1: lwarx r0, 0, r3
|
||||
LSYM(13) lwarx r0, 0, r3
|
||||
add r0, r4, r0
|
||||
stwcx. r0, 0, r3
|
||||
bne- 1b
|
||||
bne- REFLSYM(13)
|
||||
|
||||
lwz r3,0(r3)
|
||||
blr
|
||||
@ -146,10 +147,10 @@ END_FUNC(ompi_atomic_add_32)
|
||||
|
||||
|
||||
START_FUNC(ompi_atomic_sub_32)
|
||||
1: lwarx r0,0,r3
|
||||
LSYM(14) lwarx r0,0,r3
|
||||
subf r0,r4,r0
|
||||
stwcx. r0,0,r3
|
||||
bne- 1b
|
||||
bne- REFLSYM(14)
|
||||
|
||||
lwz r3,0(r3)
|
||||
blr
|
||||
|
@ -1,5 +1,4 @@
|
||||
START_FILE
|
||||
|
||||
TEXT
|
||||
|
||||
ALIGN(4)
|
||||
|
@ -3,6 +3,8 @@ sub start_file()
|
||||
my $ret = "";
|
||||
if ($IS64BIT == 1) {
|
||||
$ret .= "\t.machine \"ppc64\"\n";
|
||||
} else {
|
||||
$ret .= "\t.machine \"ppc\"\n";
|
||||
}
|
||||
$ret .= "\t.toc\n";
|
||||
return $ret;
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user