arch/tile: Fix bug in support for atomic64_xx() ops.

This wasn't properly tested until the perf-event subsystem started
to get brought up under the tile architecture.

The bug caused bogus atomic64_cmpxchg() values to be returned,
among other things.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Chris Metcalf 2010-06-25 17:02:40 -04:00
parent 863fbac671
commit 2db0982781

View File

@ -89,11 +89,11 @@ STD_ENTRY_SECTION(__atomic\name, .text.atomic)
lh r22, r0
.else
lw r22, r0
addi r23, r0, 4
addi r28, r0, 4
.endif
}
.ifc \bitwidth,64
lw r23, r23
lw r23, r28
.endif
\body /* set r24, and r25 if 64-bit */
{
@ -109,11 +109,10 @@ STD_ENTRY_SECTION(__atomic\name, .text.atomic)
sh r0, r24
.else
sw r0, r24
addi r23, r0, 4
.endif
}
.ifc \bitwidth,64
sw r23, r25
sw r28, r25
.endif
mf
3: {