Commit 1b893ef3269532c5b438237da599d338b33b75d0
1 parent
5d4a534d
Add testcase for CRIS ftag/fidx cache flushing insns.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3991 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
2 changed files
with
34 additions
and
0 deletions
tests/cris/Makefile
@@ -55,6 +55,7 @@ TESTCASES += check_cmpxm.tst | @@ -55,6 +55,7 @@ TESTCASES += check_cmpxm.tst | ||
55 | TESTCASES += check_cmp-2.tst | 55 | TESTCASES += check_cmp-2.tst |
56 | TESTCASES += check_clrjmp1.tst | 56 | TESTCASES += check_clrjmp1.tst |
57 | TESTCASES += check_dstep.tst | 57 | TESTCASES += check_dstep.tst |
58 | +TESTCASES += check_ftag.tst | ||
58 | TESTCASES += check_int64.tst | 59 | TESTCASES += check_int64.tst |
59 | # check_jsr is broken. | 60 | # check_jsr is broken. |
60 | #TESTCASES += check_jsr.tst | 61 | #TESTCASES += check_jsr.tst |
tests/cris/check_ftag.c
0 → 100644
1 | +#include <stdio.h> | ||
2 | +#include <stdlib.h> | ||
3 | +#include <stdint.h> | ||
4 | +#include "sys.h" | ||
5 | +#include "crisutils.h" | ||
6 | + | ||
7 | +extern inline void cris_ftag_i(unsigned int x) { | ||
8 | + register unsigned int v asm("$r10") = x; | ||
9 | + asm ("ftagi\t[%0]\n" : : "r" (v) ); | ||
10 | +} | ||
11 | +extern inline void cris_ftag_d(unsigned int x) { | ||
12 | + register unsigned int v asm("$r10") = x; | ||
13 | + asm ("ftagd\t[%0]\n" : : "r" (v) ); | ||
14 | +} | ||
15 | +extern inline void cris_fidx_i(unsigned int x) { | ||
16 | + register unsigned int v asm("$r10") = x; | ||
17 | + asm ("fidxi\t[%0]\n" : : "r" (v) ); | ||
18 | +} | ||
19 | +extern inline void cris_fidx_d(unsigned int x) { | ||
20 | + register unsigned int v asm("$r10") = x; | ||
21 | + asm ("fidxd\t[%0]\n" : : "r" (v) ); | ||
22 | +} | ||
23 | + | ||
24 | + | ||
25 | +int main(void) | ||
26 | +{ | ||
27 | + cris_ftag_i(0); | ||
28 | + cris_ftag_d(0); | ||
29 | + cris_fidx_i(0); | ||
30 | + cris_fidx_d(0); | ||
31 | + pass(); | ||
32 | + return 0; | ||
33 | +} |