OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc4/] [gcc/] [testsuite/] [g++.old-deja/] [g++.eh/] [ia64-1.C] - Blame information for rev 519

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 305 jeremybenn
// { dg-do run  }
2
// { dg-options "-O2" }
3
 
4
#include 
5
 
6
using namespace std;
7
 
8
extern "C" void abort();
9
 
10
int i_0, i_1, i_2, i_3, i_4, i_5, i_6, i_7, i_8, i_9;
11
int j_0, j_1, j_2, j_3, j_4, j_5, j_6, j_7, j_8, j_9;
12
int k_0, k_1, k_2, k_3, k_4, k_5, k_6, k_7, k_8, k_9;
13
int l_0, l_1, l_2, l_3, l_4, l_5, l_6, l_7, l_8, l_9;
14
#define A(x,y,n) register int *x##n = &y##_##n;
15
#define B(x,y) \
16
  A(x,y,0) A(x,y,1) A(x,y,2) A(x,y,3) A(x,y,4) \
17
  A(x,y,5) A(x,y,6) A(x,y,7) A(x,y,8) A(x,y,9)
18
#define C(x,n) asm volatile ("" : "=r" (x##n) : "0" (x##n));
19
#define D(x) \
20
  C(x,0) C(x,1) C(x,2) C(x,3) C(x,4) \
21
  C(x,5) C(x,6) C(x,7) C(x,8) C(x,9)
22
#define E(x,y,n) if (x##n != &y##_##n) abort ();
23
#define F(x,y) \
24
  E(x,y,0) E(x,y,1) E(x,y,2) E(x,y,3) E(x,y,4) \
25
  E(x,y,5) E(x,y,6) E(x,y,7) E(x,y,8) E(x,y,9)
26
 
27
void bar(long a0, long a1, long a2, long a3, long a4)
28
{
29
}
30
 
31
void foo(long a0, long a1, long a2, long a3, long a4)
32
{
33
  A(p,l,0) A(p,l,1) A(p,l,2)
34
  C(p,0) C(p,1) C(p,2)
35
  bar (0, 1, 2, 3, 4);
36
  if (a0 == 0)
37
    throw exception();
38
  C(p,0) C(p,1) C(p,2)
39
  E(p,l,0) E(p,l,1) E(p,l,2)
40
}
41
 
42
void test(void)
43
{
44
  A(p,l,0) A(p,l,1) A(p,l,2) A(p,l,3) A(p,l,4) A(p,l,5) A(p,l,6)
45
  C(p,0) C(p,1) C(p,2) C(p,3) C(p,4) C(p,5) C(p,6)
46
  try {
47
    foo(0, 1, 2, 3, 4);
48
  } catch (exception) {}
49
  C(p,0) C(p,1) C(p,2) C(p,3) C(p,4) C(p,5) C(p,6)
50
  E(p,l,0) E(p,l,1) E(p,l,2) E(p,l,3) E(p,l,4) E(p,l,5) E(p,l,6)
51
}
52
 
53
int main()
54
{
55
  B(x,i)
56
  B(y,j)
57
  B(z,k)
58
  A(p,l,0) A(p,l,1) A(p,l,2) A(p,l,3)
59
  D(x)
60
  D(y)
61
  D(z)
62
  C(p,0) C(p,1) C(p,2) C(p,3)
63
  test();
64
  D(x)
65
  D(y)
66
  D(z)
67
  C(p,0) C(p,1) C(p,2) C(p,3)
68
  F(x,i)
69
  F(y,j)
70
  F(z,k)
71
  E(p,l,0) E(p,l,1) E(p,l,2) E(p,l,3)
72
  return 0;
73
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.