~vcs-imports/qemu/git

« back to all changes in this revision

Viewing changes to tests/cris/check_bound.c

  • Committer: pbrook
  • Date: 2007-03-04 00:52:16 UTC
  • Revision ID: git-v1:7a2d6d9650ed16b2cdb0b4876fe9efce7ef8ea6d
64bit->win32 cross build fix.


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2467 c046a42c-6fe2-441c-8c8c-71466251a162

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#include <stdio.h>
2
 
#include <stdlib.h>
3
 
#include <stdint.h>
4
 
#include "sys.h"
5
 
#include "crisutils.h"
6
 
 
7
 
extern inline int cris_bound_b(int v, int b) {
8
 
        int r = v;
9
 
        asm ("bound.b\t%1, %0\n" : "+r" (r) : "ri" (b));
10
 
        return r;
11
 
}
12
 
 
13
 
extern inline int cris_bound_w(int v, int b) {
14
 
        int r = v;
15
 
        asm ("bound.w\t%1, %0\n" : "+r" (r) : "ri" (b));
16
 
        return r;
17
 
}
18
 
 
19
 
extern inline int cris_bound_d(int v, int b) {
20
 
        int r = v;
21
 
        asm ("bound.d\t%1, %0\n" : "+r" (r) : "ri" (b));
22
 
        return r;
23
 
}
24
 
 
25
 
int main(void)
26
 
{
27
 
        int r;
28
 
 
29
 
        cris_tst_cc_init();
30
 
        r = cris_bound_d(-1, 2);
31
 
        cris_tst_cc(0, 0, 0, 0);
32
 
        if (r != 2)
33
 
                err();
34
 
 
35
 
        cris_tst_cc_init();
36
 
        r = cris_bound_d(2, 0xffffffff);
37
 
        cris_tst_cc(0, 0, 0, 0);
38
 
        if (r != 2)
39
 
                err();
40
 
 
41
 
        cris_tst_cc_init();
42
 
        r = cris_bound_d(0xffff, 0xffff);
43
 
        cris_tst_cc(0, 0, 0, 0);
44
 
        if (r != 0xffff)
45
 
                err();
46
 
 
47
 
        cris_tst_cc_init();
48
 
        r = cris_bound_d(-1, 0xffffffff);
49
 
        cris_tst_cc(1, 0, 0, 0);
50
 
        if (r != 0xffffffff)
51
 
                err();
52
 
 
53
 
        cris_tst_cc_init();
54
 
        r = cris_bound_d(0x78134452, 0x5432f789);
55
 
        cris_tst_cc(0, 0, 0, 0);
56
 
        if (r != 0x5432f789)
57
 
                err();
58
 
 
59
 
        cris_tst_cc_init();
60
 
        r = cris_bound_w(-1, 2);
61
 
        cris_tst_cc(0, 0, 0, 0);
62
 
        if (r != 2)
63
 
                err();
64
 
 
65
 
        cris_tst_cc_init();
66
 
        r = cris_bound_w(-1, 0xffff);
67
 
        cris_tst_cc(0, 0, 0, 0);
68
 
        if (r != 0xffff)
69
 
                err();
70
 
 
71
 
        cris_tst_cc_init();
72
 
        r = cris_bound_w(2, 0xffff);
73
 
        cris_tst_cc(0, 0, 0, 0);
74
 
        if (r != 2)
75
 
                err();
76
 
 
77
 
        cris_tst_cc_init();
78
 
        r = cris_bound_w(0xfedaffff, 0xffff);
79
 
        cris_tst_cc(0, 0, 0, 0);
80
 
        if (r != 0xffff)
81
 
                err();
82
 
 
83
 
        cris_tst_cc_init();
84
 
        r = cris_bound_w(0x78134452, 0xf789);
85
 
        cris_tst_cc(0, 0, 0, 0);
86
 
        if (r != 0xf789)
87
 
                err();
88
 
 
89
 
        cris_tst_cc_init();
90
 
        r = cris_bound_b(-1, 2);
91
 
        cris_tst_cc(0, 0, 0, 0);
92
 
        if (r != 2)
93
 
                err();
94
 
 
95
 
        cris_tst_cc_init();
96
 
        r = cris_bound_b(2, 0xff);
97
 
        cris_tst_cc(0, 0, 0, 0);
98
 
        if (r != 2)
99
 
                err();
100
 
 
101
 
        cris_tst_cc_init();
102
 
        r = cris_bound_b(-1, 0xff);
103
 
        cris_tst_cc(0, 0, 0, 0);
104
 
        if (r != 0xff)
105
 
                err();
106
 
 
107
 
        cris_tst_cc_init();
108
 
        r = cris_bound_b(0xff, 0xff);
109
 
        cris_tst_cc(0, 0, 0, 0);
110
 
        if (r != 0xff)
111
 
                err();
112
 
 
113
 
        cris_tst_cc_init();
114
 
        r = cris_bound_b(0xfeda49ff, 0xff);
115
 
        cris_tst_cc(0, 0, 0, 0);
116
 
        if (r != 0xff)
117
 
                err();
118
 
 
119
 
        cris_tst_cc_init();
120
 
        r = cris_bound_b(0x78134452, 0x89);
121
 
        cris_tst_cc(0, 0, 0, 0);
122
 
        if (r != 0x89)
123
 
                err();
124
 
 
125
 
        cris_tst_cc_init();
126
 
        r = cris_bound_w(0x78134452, 0);
127
 
        cris_tst_cc(0, 1, 0, 0);
128
 
        if (r != 0)
129
 
                err();
130
 
 
131
 
        cris_tst_cc_init();
132
 
        r = cris_bound_b(0xffff, -1);
133
 
        cris_tst_cc(0, 0, 0, 0);
134
 
        if (r != 0xff)
135
 
                err();
136
 
 
137
 
        pass();
138
 
        return 0;
139
 
}