diff options
-rw-r--r-- | test/monniaux/predicated/predicated.s | 13 | ||||
-rw-r--r-- | test/monniaux/predicated/predicated_run.c | 16 |
2 files changed, 29 insertions, 0 deletions
diff --git a/test/monniaux/predicated/predicated.s b/test/monniaux/predicated/predicated.s new file mode 100644 index 00000000..f11606c2 --- /dev/null +++ b/test/monniaux/predicated/predicated.s @@ -0,0 +1,13 @@ + .text + + .globl predicated_write +predicated_write: + sd.wnez $r0? 8[$r1] = $r2 + ret + ;; + + .globl predicated_read +predicated_read: + ld.wnez $r1? $r0 = 8[$r2] + ret + ;; diff --git a/test/monniaux/predicated/predicated_run.c b/test/monniaux/predicated/predicated_run.c new file mode 100644 index 00000000..2a15318b --- /dev/null +++ b/test/monniaux/predicated/predicated_run.c @@ -0,0 +1,16 @@ +#include <stdio.h> + +extern void predicated_write(int flag, long *buf, long data); +extern long predicated_read(long defval, int flag, long *buf); + +int main() { + long buf[2] = {42, 69}; + printf("%ld\n", buf[1]); + predicated_write(0, buf, 33); + printf("%ld\n", buf[1]); + predicated_write(1, buf, 45); + printf("%ld\n", buf[1]); + printf("%ld\n", predicated_read(1515, 0, buf)); + printf("%ld\n", predicated_read(1789, 1, buf)); + return 0; +} |