diff options
| -rw-r--r-- | include/asm-mips/atomic.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/include/asm-mips/atomic.h b/include/asm-mips/atomic.h index 654b97d3e13a..2c8b853376c9 100644 --- a/include/asm-mips/atomic.h +++ b/include/asm-mips/atomic.h | |||
| @@ -250,7 +250,10 @@ static __inline__ int atomic_sub_if_positive(int i, atomic_t * v) | |||
| 250 | " subu %0, %1, %3 \n" | 250 | " subu %0, %1, %3 \n" |
| 251 | " bltz %0, 1f \n" | 251 | " bltz %0, 1f \n" |
| 252 | " sc %0, %2 \n" | 252 | " sc %0, %2 \n" |
| 253 | " .set noreorder \n" | ||
| 253 | " beqzl %0, 1b \n" | 254 | " beqzl %0, 1b \n" |
| 255 | " subu %0, %1, %3 \n" | ||
| 256 | " .set reorder \n" | ||
| 254 | " sync \n" | 257 | " sync \n" |
| 255 | "1: \n" | 258 | "1: \n" |
| 256 | " .set mips0 \n" | 259 | " .set mips0 \n" |
| @@ -266,7 +269,10 @@ static __inline__ int atomic_sub_if_positive(int i, atomic_t * v) | |||
| 266 | " subu %0, %1, %3 \n" | 269 | " subu %0, %1, %3 \n" |
| 267 | " bltz %0, 1f \n" | 270 | " bltz %0, 1f \n" |
| 268 | " sc %0, %2 \n" | 271 | " sc %0, %2 \n" |
| 272 | " .set noreorder \n" | ||
| 269 | " beqz %0, 1b \n" | 273 | " beqz %0, 1b \n" |
| 274 | " subu %0, %1, %3 \n" | ||
| 275 | " .set reorder \n" | ||
| 270 | " sync \n" | 276 | " sync \n" |
| 271 | "1: \n" | 277 | "1: \n" |
| 272 | " .set mips0 \n" | 278 | " .set mips0 \n" |
| @@ -598,7 +604,10 @@ static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v) | |||
| 598 | " dsubu %0, %1, %3 \n" | 604 | " dsubu %0, %1, %3 \n" |
| 599 | " bltz %0, 1f \n" | 605 | " bltz %0, 1f \n" |
| 600 | " scd %0, %2 \n" | 606 | " scd %0, %2 \n" |
| 607 | " .set noreorder \n" | ||
| 601 | " beqzl %0, 1b \n" | 608 | " beqzl %0, 1b \n" |
| 609 | " dsubu %0, %1, %3 \n" | ||
| 610 | " .set reorder \n" | ||
| 602 | " sync \n" | 611 | " sync \n" |
| 603 | "1: \n" | 612 | "1: \n" |
| 604 | " .set mips0 \n" | 613 | " .set mips0 \n" |
| @@ -614,7 +623,10 @@ static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v) | |||
| 614 | " dsubu %0, %1, %3 \n" | 623 | " dsubu %0, %1, %3 \n" |
| 615 | " bltz %0, 1f \n" | 624 | " bltz %0, 1f \n" |
| 616 | " scd %0, %2 \n" | 625 | " scd %0, %2 \n" |
| 626 | " .set noreorder \n" | ||
| 617 | " beqz %0, 1b \n" | 627 | " beqz %0, 1b \n" |
| 628 | " dsubu %0, %1, %3 \n" | ||
| 629 | " .set reorder \n" | ||
| 618 | " sync \n" | 630 | " sync \n" |
| 619 | "1: \n" | 631 | "1: \n" |
| 620 | " .set mips0 \n" | 632 | " .set mips0 \n" |
