Home | History | Annotate | Line # | Download | only in bfin
      1  1.1  christos # mach: bfin
      2  1.1  christos 
      3  1.1  christos .include "testutils.inc"
      4  1.1  christos 	start
      5  1.1  christos 
      6  1.1  christos 
      7  1.1  christos 	r0.l = 0x1111;
      8  1.1  christos 	r0.h = 0x0011;
      9  1.1  christos 	r1.l = 0x2222;
     10  1.1  christos 	r1.h = 0x0022;
     11  1.1  christos 	r2.l = 0x3333;
     12  1.1  christos 	r2.h = 0x0033;
     13  1.1  christos 	r3.l = 0x4444;
     14  1.1  christos 	r3.h = 0x0044;
     15  1.1  christos 	r4.l = 0x5555;
     16  1.1  christos 	r4.h = 0x0055;
     17  1.1  christos 	r5.l = 0x6666;
     18  1.1  christos 	r5.h = 0x0066;
     19  1.1  christos 	r6.l = 0x7777;
     20  1.1  christos 	r6.h = 0x0077;
     21  1.1  christos 	r7.l = 0x8888;
     22  1.1  christos 	r7.h = 0x0088;
     23  1.1  christos 	p1.l = 0x5a5a;
     24  1.1  christos 	p1.h = 0x005a;
     25  1.1  christos 	p2.l = 0x6363;
     26  1.1  christos 	p2.h = 0x0063;
     27  1.1  christos 	p3.l = 0x7777;
     28  1.1  christos 	p3.h = 0x0077;
     29  1.1  christos 	p4.l = 0x7878;
     30  1.1  christos 	p4.h = 0x0078;
     31  1.1  christos 	p5.l = 0x3e3e;
     32  1.1  christos 	p5.h = 0x003e;
     33  1.1  christos 	sp = 0x4000(x);
     34  1.1  christos 
     35  1.1  christos 	jump.s prog_start;
     36  1.1  christos 
     37  1.1  christos 	nop;
     38  1.1  christos 	nop;	// ADD reg update to roll back
     39  1.1  christos 	nop;
     40  1.1  christos 
     41  1.1  christos prog_start:
     42  1.1  christos 	nop;
     43  1.1  christos 	[--sp] = r0;
     44  1.1  christos 	[--sp] = r1;
     45  1.1  christos 	[--sp] = r2;
     46  1.1  christos 	[--sp] = r3;
     47  1.1  christos 	[--sp] = r4;
     48  1.1  christos 	[--sp] = r5;
     49  1.1  christos 	[--sp] = r6;
     50  1.1  christos 	[--sp] = r7;
     51  1.1  christos 	[--sp] = p0;
     52  1.1  christos 	[--sp] = p1;
     53  1.1  christos 	[--sp] = p2;
     54  1.1  christos 	[--sp] = p3;
     55  1.1  christos 	[--sp] = p4;
     56  1.1  christos 	[--sp] = p5;
     57  1.1  christos 
     58  1.1  christos 	nop;
     59  1.1  christos 	nop;
     60  1.1  christos 	nop;
     61  1.1  christos 	nop;
     62  1.1  christos 	r0.l = 0xdead;
     63  1.1  christos 	r0.h = 0xdead;
     64  1.1  christos 	r1.l = 0xdead;
     65  1.1  christos 	r1.h = 0xdead;
     66  1.1  christos 	r2.l = 0xdead;
     67  1.1  christos 	r2.h = 0xdead;
     68  1.1  christos 	r3.l = 0xdead;
     69  1.1  christos 	r3.h = 0xdead;
     70  1.1  christos 	r4.l = 0xdead;
     71  1.1  christos 	r4.h = 0xdead;
     72  1.1  christos 	r5.l = 0xdead;
     73  1.1  christos 	r5.h = 0xdead;
     74  1.1  christos 	r6.l = 0xdead;
     75  1.1  christos 	r6.h = 0xdead;
     76  1.1  christos 	r7.l = 0xdead;
     77  1.1  christos 	r7.h = 0xdead;
     78  1.1  christos 	p1.l = 0xdead;
     79  1.1  christos 	p1.h = 0xdead;
     80  1.1  christos 	p2.l = 0xdead;
     81  1.1  christos 	p2.h = 0xdead;
     82  1.1  christos 	p3.l = 0xdead;
     83  1.1  christos 	p3.h = 0xdead;
     84  1.1  christos 	p4.l = 0xdead;
     85  1.1  christos 	p4.h = 0xdead;
     86  1.1  christos 	p5.l = 0xdead;
     87  1.1  christos 	p5.h = 0xdead;
     88  1.1  christos 	nop;
     89  1.1  christos 	nop;
     90  1.1  christos 	nop;
     91  1.1  christos 	r0 = [sp++];
     92  1.1  christos 	r1 = [sp++];
     93  1.1  christos 	r2 = [sp++];
     94  1.1  christos 	r3 = [sp++];
     95  1.1  christos 	r4 = [sp++];
     96  1.1  christos 	r5 = [sp++];
     97  1.1  christos 	r6 = [sp++];
     98  1.1  christos 	r7 = [sp++];
     99  1.1  christos 	p0 = [sp++];
    100  1.1  christos 	p1 = [sp++];
    101  1.1  christos 	p2 = [sp++];
    102  1.1  christos 	p3 = [sp++];
    103  1.1  christos 	p4 = [sp++];
    104  1.1  christos 	p5 = [sp++];
    105  1.1  christos 
    106  1.1  christos 	nop;
    107  1.1  christos 	nop;
    108  1.1  christos 	nop;
    109  1.1  christos 	nop;
    110  1.1  christos 	nop;
    111  1.1  christos 	nop;
    112  1.1  christos 	nop;
    113  1.1  christos _tp1:
    114  1.1  christos 	nop;
    115  1.1  christos 	nop;
    116  1.1  christos 	nop;
    117  1.1  christos 	nop;
    118  1.1  christos 	nop;
    119  1.1  christos 	nop;
    120  1.1  christos 	nop;
    121  1.1  christos 	[--sp] = r0;
    122  1.1  christos 	[--sp] = r1;
    123  1.1  christos 	[--sp] = r2;
    124  1.1  christos 	[--sp] = r3;
    125  1.1  christos 	[--sp] = r4;
    126  1.1  christos 	[--sp] = r5;
    127  1.1  christos 	[--sp] = r6;
    128  1.1  christos 	[--sp] = r7;
    129  1.1  christos 	[--sp] = p0;
    130  1.1  christos 	[--sp] = p1;
    131  1.1  christos 	[--sp] = p2;
    132  1.1  christos 	[--sp] = p3;
    133  1.1  christos 	[--sp] = p4;
    134  1.1  christos 	[--sp] = p5;
    135  1.1  christos 
    136  1.1  christos 	nop;
    137  1.1  christos 	nop;
    138  1.1  christos 	nop;
    139  1.1  christos 	nop;
    140  1.1  christos 	r0.l = 0xdead;
    141  1.1  christos 	r0.h = 0xdead;
    142  1.1  christos 	r1.l = 0xdead;
    143  1.1  christos 	r1.h = 0xdead;
    144  1.1  christos 	r2.l = 0xdead;
    145  1.1  christos 	r2.h = 0xdead;
    146  1.1  christos 	r3.l = 0xdead;
    147  1.1  christos 	r3.h = 0xdead;
    148  1.1  christos 	r4.l = 0xdead;
    149  1.1  christos 	r4.h = 0xdead;
    150  1.1  christos 	r5.l = 0xdead;
    151  1.1  christos 	r5.h = 0xdead;
    152  1.1  christos 	r6.l = 0xdead;
    153  1.1  christos 	r6.h = 0xdead;
    154  1.1  christos 	r7.l = 0xdead;
    155  1.1  christos 	r7.h = 0xdead;
    156  1.1  christos 	p1.l = 0xdead;
    157  1.1  christos 	p1.h = 0xdead;
    158  1.1  christos 	p2.l = 0xdead;
    159  1.1  christos 	p2.h = 0xdead;
    160  1.1  christos 	p3.l = 0xdead;
    161  1.1  christos 	p3.h = 0xdead;
    162  1.1  christos 	p4.l = 0xdead;
    163  1.1  christos 	p4.h = 0xdead;
    164  1.1  christos 	p5.l = 0xdead;
    165  1.1  christos 	p5.h = 0xdead;
    166  1.1  christos 	nop;
    167  1.1  christos 	nop;
    168  1.1  christos 	nop;
    169  1.1  christos 	r0 = [sp++];
    170  1.1  christos 	r1 = [sp++];
    171  1.1  christos 	r2 = [sp++];
    172  1.1  christos 	r3 = [sp++];
    173  1.1  christos 	r4 = [sp++];
    174  1.1  christos 	r5 = [sp++];
    175  1.1  christos 	r6 = [sp++];
    176  1.1  christos 	r7 = [sp++];
    177  1.1  christos 	p0 = [sp++];
    178  1.1  christos 	p1 = [sp++];
    179  1.1  christos 	a0.x = [sp++];
    180  1.1  christos 
    181  1.1  christos 	a1.w = r0;	//preserve r0
    182  1.1  christos 
    183  1.1  christos 	r0 = a0.x;
    184  1.1  christos 	DBGA(r0.l,0x0063);
    185  1.1  christos 
    186  1.1  christos 	a0.w = [sp++];
    187  1.1  christos 	r0 = a0.w;
    188  1.1  christos 	DBGA(r0.l,0x7777);
    189  1.1  christos 	DBGA(r0.h,0x0077);
    190  1.1  christos 
    191  1.1  christos 	a0 = a1;	//perserver r0, still
    192  1.1  christos 
    193  1.1  christos 	a1.x = [sp++];
    194  1.1  christos 	r0 = a1.x;
    195  1.1  christos 	DBGA(r0.l,0x0078);
    196  1.1  christos 
    197  1.1  christos 	a1.w = [sp++];
    198  1.1  christos 	r0 = a1.w;
    199  1.1  christos 	DBGA(r0.l,0x3e3e);
    200  1.1  christos 	DBGA(r0.h,0x003e);
    201  1.1  christos 
    202  1.1  christos 	r0 = a0.w;	//restore r0
    203  1.1  christos 
    204  1.1  christos 	nop;
    205  1.1  christos 	nop;
    206  1.1  christos 	nop;
    207  1.1  christos 	nop;
    208  1.1  christos 	nop;
    209  1.1  christos 	nop;
    210  1.1  christos 	nop;
    211  1.1  christos _tp2:
    212  1.1  christos 	nop;
    213  1.1  christos 	nop;
    214  1.1  christos 	nop;
    215  1.1  christos 	[--sp] = r0;
    216  1.1  christos 	[--sp] = r1;
    217  1.1  christos 	[--sp] = r2;
    218  1.1  christos 	[--sp] = r3;
    219  1.1  christos 	[--sp] = a0.x;
    220  1.1  christos 	[--sp] = a0.w;
    221  1.1  christos 	[--sp] = a1.x;
    222  1.1  christos 	[--sp] = a1.w;
    223  1.1  christos 	[--sp] = p0;
    224  1.1  christos 	[--sp] = p1;
    225  1.1  christos 	[--sp] = p2;
    226  1.1  christos 	[--sp] = p3;
    227  1.1  christos 	[--sp] = p4;
    228  1.1  christos 	[--sp] = p5;
    229  1.1  christos 
    230  1.1  christos 	nop;
    231  1.1  christos 	nop;
    232  1.1  christos 	nop;
    233  1.1  christos 	nop;
    234  1.1  christos 	r0.l = 0xdead;
    235  1.1  christos 	r0.h = 0xdead;
    236  1.1  christos 	r1.l = 0xdead;
    237  1.1  christos 	r1.h = 0xdead;
    238  1.1  christos 	r2.l = 0xdead;
    239  1.1  christos 	r2.h = 0xdead;
    240  1.1  christos 	r3.l = 0xdead;
    241  1.1  christos 	r3.h = 0xdead;
    242  1.1  christos 	r4.l = 0xdead;
    243  1.1  christos 	r4.h = 0xdead;
    244  1.1  christos 	r5.l = 0xdead;
    245  1.1  christos 	r5.h = 0xdead;
    246  1.1  christos 	r6.l = 0xdead;
    247  1.1  christos 	r6.h = 0xdead;
    248  1.1  christos 	r7.l = 0xdead;
    249  1.1  christos 	r7.h = 0xdead;
    250  1.1  christos 	p1.l = 0xdead;
    251  1.1  christos 	p1.h = 0xdead;
    252  1.1  christos 	p2.l = 0xdead;
    253  1.1  christos 	p2.h = 0xdead;
    254  1.1  christos 	p3.l = 0xdead;
    255  1.1  christos 	p3.h = 0xdead;
    256  1.1  christos 	p4.l = 0xdead;
    257  1.1  christos 	p4.h = 0xdead;
    258  1.1  christos 	p5.l = 0xdead;
    259  1.1  christos 	p5.h = 0xdead;
    260  1.1  christos 	nop;
    261  1.1  christos 	nop;
    262  1.1  christos 	nop;
    263  1.1  christos 	r0 = [sp++];
    264  1.1  christos 	r1 = [sp++];
    265  1.1  christos 	r2 = [sp++];
    266  1.1  christos 	r3 = [sp++];
    267  1.1  christos 	r4 = [sp++];
    268  1.1  christos 	r5 = [sp++];
    269  1.1  christos 	r6 = [sp++];
    270  1.1  christos 	r7 = [sp++];
    271  1.1  christos 	p0 = [sp++];
    272  1.1  christos 	p1 = [sp++];
    273  1.1  christos 	p2 = [sp++];
    274  1.1  christos 	p3 = [sp++];
    275  1.1  christos 	p4 = [sp++];
    276  1.1  christos 	p5 = [sp++];
    277  1.1  christos 
    278  1.1  christos 	nop;
    279  1.1  christos 	nop;
    280  1.1  christos 	nop;
    281  1.1  christos 	nop;
    282  1.1  christos 	nop;
    283  1.1  christos 	nop;
    284  1.1  christos 	nop;
    285  1.1  christos _tp3:
    286  1.1  christos 	nop;
    287  1.1  christos 	nop;
    288  1.1  christos 	nop;
    289  1.1  christos 	nop;
    290  1.1  christos 	nop;
    291  1.1  christos _halt:
    292  1.1  christos 	pass;
    293