1 #include <Quicksort1.d>
2 #include <__oo2c.h>
3 #include <setjmp.h>
4
Quicksort1__Sort(OOC_INT32 a[],OOC_LEN a_0d,OOC_INT32 m,OOC_INT32 n)5 void Quicksort1__Sort(OOC_INT32 a[], OOC_LEN a_0d, OOC_INT32 m, OOC_INT32 n) {
6 register OOC_INT32 i0,i1,i2,i3,i4,i5,i6,i7,i8;
7
8 i0 = n;
9 i1 = m;
10 i2 = i0>i1;
11 if (!i2) goto l18;
12 i2 = (OOC_INT32)a+i0*4;
13 i3 = *(OOC_INT32*)i2;
14 i4 = (OOC_INT32)a+(i1-1)*4;
15 i5=i4;i4=i2;
16 l3_loop:
17
18 l4_loop:
19 i5 = i5+4;
20 i6 = *(OOC_INT32*)i5;
21 i7 = i6>=i3;
22 if (!i7) goto l4_loop;
23 l9_loop:
24 i4 = i4-4;
25 i7 = *(OOC_INT32*)i4;
26 i8 = i7<=i3;
27 if (!i8) goto l9_loop;
28 l13:
29 i8 = (OOC_UINT32)i5>=(OOC_UINT32)i4;
30 if (i8) goto l17;
31 *(OOC_INT32*)i5 = i7;
32 *(OOC_INT32*)i4 = i6;
33
34 goto l3_loop;
35 l17:
36 i3 = *(OOC_INT32*)i2;
37 *(OOC_INT32*)i5 = i3;
38 *(OOC_INT32*)i2 = i6;
39 Quicksort1__Sort((void*)(OOC_INT32)a, a_0d, i1, ((i4-(OOC_INT32)a)>>2));
40 Quicksort1__Sort((void*)(OOC_INT32)a, a_0d, (((i5-(OOC_INT32)a)>>2)+1), i0);
41 l18:
42 return;
43 ;
44 }
45
Quicksort1__Test(void)46 void Quicksort1__Test(void) {
47 register OOC_INT32 i0,i1,i2;
48 OOC_INT32 a[64];
49
50 i0 = (OOC_INT32)a+252;
51 i1=(OOC_INT32)a;
52 l1_loop:
53 i2 = RandomNumbers__RND(64);
54 *(OOC_INT32*)i1 = i2;
55 i1 = i1+4;
56 i2 = (OOC_UINT32)i1<=(OOC_UINT32)i0;
57 if (i2) goto l1_loop;
58 l5:
59 Quicksort1__Sort((void*)(OOC_INT32)a, 64, 0, 63);
60 i1=(OOC_INT32)a;
61 l6_loop:
62 i2 = *(OOC_INT32*)i1;
63 Out0__Int(i2, 4);
64 i1 = i1+4;
65 i2 = (OOC_UINT32)i1<=(OOC_UINT32)i0;
66 if (i2) goto l6_loop;
67 l10:
68 Out0__Ln();
69 return;
70 ;
71 }
72
OOC_Quicksort1_init(void)73 void OOC_Quicksort1_init(void) {
74
75 return;
76 ;
77 }
78
OOC_Quicksort1_destroy(void)79 void OOC_Quicksort1_destroy(void) {
80 }
81
82 /* --- */
83