Просмотр исходного кода

ainc and adec in assembly.

Signed-off-by: Ronald G. Minnich <rminnich@gmail.com>
Ronald G. Minnich 8 лет назад
Родитель
Сommit
6a499aed18
2 измененных файлов с 15 добавлено и 2 удалено
  1. 12 0
      sys/src/libc/riscv/atomic.S
  2. 3 2
      sys/src/libc/riscv/build.json

+ 12 - 0
sys/src/libc/riscv/atomic.S

@@ -0,0 +1,12 @@
+.text
+
+.globl ainc				/* int32_t ainc(int32_t *); */
+ainc:
+	li		a1, 1
+	amoadd.w.aq	a0, a1, 0(a0)
+	ret
+.globl adec				/* int32_t adec(int32_t *); */
+adec:
+	li		a1, -1
+	amoadd.w.aq	a0, a1, 0(a0)
+	ret

+ 3 - 2
sys/src/libc/riscv/build.json

@@ -1,9 +1,10 @@
 {
     "archfiles": {
 	"SourceFiles": [
+	    "$ARCH/notejmp.c",
 	    "$ARCH/argv0.c",
-	    "$ARCH/main9.S",
-	    "$ARCH/notejmp.c"
+	    "$ARCH/atomic.S",
+	    "$ARCH/main9.S"
 	]
     }
 }