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
master
edgar_igl 2008-02-25 10:00:07 +00:00
parent 5d4a534dec
commit 1b893ef326
2 changed files with 34 additions and 0 deletions

View File

@ -55,6 +55,7 @@ TESTCASES += check_cmpxm.tst
TESTCASES += check_cmp-2.tst
TESTCASES += check_clrjmp1.tst
TESTCASES += check_dstep.tst
TESTCASES += check_ftag.tst
TESTCASES += check_int64.tst
# check_jsr is broken.
#TESTCASES += check_jsr.tst

33
tests/cris/check_ftag.c Normal file
View File

@ -0,0 +1,33 @@
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include "sys.h"
#include "crisutils.h"
extern inline void cris_ftag_i(unsigned int x) {
register unsigned int v asm("$r10") = x;
asm ("ftagi\t[%0]\n" : : "r" (v) );
}
extern inline void cris_ftag_d(unsigned int x) {
register unsigned int v asm("$r10") = x;
asm ("ftagd\t[%0]\n" : : "r" (v) );
}
extern inline void cris_fidx_i(unsigned int x) {
register unsigned int v asm("$r10") = x;
asm ("fidxi\t[%0]\n" : : "r" (v) );
}
extern inline void cris_fidx_d(unsigned int x) {
register unsigned int v asm("$r10") = x;
asm ("fidxd\t[%0]\n" : : "r" (v) );
}
int main(void)
{
cris_ftag_i(0);
cris_ftag_d(0);
cris_fidx_i(0);
cris_fidx_d(0);
pass();
return 0;
}