mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-07 09:43:56 -06:00
tests/tcg: split cris tests into bare and libc directories
Bare tests are standalone assembly tests that don't require linking to any libc and hence can be built with kernel only compilers. The libc tests need a compiler capable of building properly linked userspace binaries. As we don't have such a cross compiler at the moment we won't be building those tests. Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
This commit is contained in:
parent
6b970dd62c
commit
d4f6e58fcb
102 changed files with 0 additions and 0 deletions
44
tests/tcg/cris/libc/check_addoq.c
Normal file
44
tests/tcg/cris/libc/check_addoq.c
Normal file
|
@ -0,0 +1,44 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdint.h>
|
||||
#include "sys.h"
|
||||
#include "crisutils.h"
|
||||
|
||||
/* this would be better to do in asm, it's an orgy in GCC inline asm now. */
|
||||
|
||||
/* ACR will be clobbered. */
|
||||
#define cris_addoq(o, v) \
|
||||
asm volatile ("addoq\t%1, %0, $acr\n" : : "r" (v), "i" (o) : "acr");
|
||||
|
||||
|
||||
int main(void)
|
||||
{
|
||||
int x[3] = {0x55aa77ff, 0xccff2244, 0x88ccee19};
|
||||
int *p, *t = x + 1;
|
||||
|
||||
cris_tst_cc_init();
|
||||
asm volatile ("setf\tzvnc\n");
|
||||
cris_addoq(0, t);
|
||||
cris_tst_cc(1, 1, 1, 1);
|
||||
asm volatile ("move.d\t$acr, %0\n" : "=r" (p));
|
||||
if (*p != 0xccff2244)
|
||||
err();
|
||||
|
||||
cris_tst_cc_init();
|
||||
asm volatile ("setf\tzvnc\n");
|
||||
cris_addoq(4, t);
|
||||
cris_tst_cc(0, 0, 0, 0);
|
||||
asm volatile ("move.d\t$acr, %0\n" : "=r" (p));
|
||||
if (*p != 0x88ccee19)
|
||||
err();
|
||||
|
||||
cris_tst_cc_init();
|
||||
asm volatile ("clearf\tzvnc\n");
|
||||
cris_addoq(-8, t + 1);
|
||||
cris_tst_cc(0, 0, 0, 0);
|
||||
asm volatile ("move.d\t$acr, %0\n" : "=r" (p));
|
||||
if (*p != 0x55aa77ff)
|
||||
err();
|
||||
pass();
|
||||
return 0;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue