Home | History | Annotate | Line # | Download | only in bfin
      1  1.1  christos //Original:/proj/frio/dv/testcases/seq/se_mv2lp/se_mv2lp.dsp
      2  1.1  christos # mach: bfin
      3  1.1  christos # sim: --environment operating
      4  1.1  christos 
      5  1.1  christos #include "test.h"
      6  1.1  christos .include "testutils.inc"
      7  1.1  christos start
      8  1.1  christos 
      9  1.1  christos /////////////////////////////////////////////////////////////////////////////
     10  1.1  christos ///////////////////////// Include Files         /////////////////////////////
     11  1.1  christos /////////////////////////////////////////////////////////////////////////////
     12  1.1  christos 
     13  1.1  christos include(std.inc)
     14  1.1  christos include(selfcheck.inc)
     15  1.1  christos include(symtable.inc)
     16  1.1  christos include(mmrs.inc)
     17  1.1  christos 
     18  1.1  christos /////////////////////////////////////////////////////////////////////////////
     19  1.1  christos ///////////////////////// Defines               /////////////////////////////
     20  1.1  christos /////////////////////////////////////////////////////////////////////////////
     21  1.1  christos 
     22  1.1  christos #ifndef USER_CODE_SPACE
     23  1.1  christos #define USER_CODE_SPACE  CODE_ADDR_1   //
     24  1.1  christos #endif
     25  1.1  christos #ifndef STACKSIZE
     26  1.1  christos #define STACKSIZE        0x00000010
     27  1.1  christos #endif
     28  1.1  christos #ifndef ITABLE
     29  1.1  christos #define ITABLE           CODE_ADDR_1   //
     30  1.1  christos #endif
     31  1.1  christos 
     32  1.1  christos /////////////////////////////////////////////////////////////////////////////
     33  1.1  christos ///////////////////////// RESET ISR             /////////////////////////////
     34  1.1  christos /////////////////////////////////////////////////////////////////////////////
     35  1.1  christos 
     36  1.1  christos  RST_ISR :
     37  1.1  christos 
     38  1.1  christos     // Initialize Dregs
     39  1.1  christos INIT_R_REGS(0);
     40  1.1  christos 
     41  1.1  christos     // Initialize Pregs
     42  1.1  christos INIT_P_REGS(0);
     43  1.1  christos 
     44  1.1  christos     // Initialize ILBM Registers
     45  1.1  christos INIT_I_REGS(0);
     46  1.1  christos INIT_M_REGS(0);
     47  1.1  christos INIT_L_REGS(0);
     48  1.1  christos INIT_B_REGS(0);
     49  1.1  christos 
     50  1.1  christos     // Initialize the Address of the Checkreg data segment
     51  1.1  christos     // **** THIS IS NEEDED WHENEVER CHECKREG IS USED ****
     52  1.1  christos CHECK_INIT_DEF(p5); //CHECK_INIT(p5,   0x00BFFFFC);
     53  1.1  christos 
     54  1.1  christos     // Setup User Stack
     55  1.1  christos LD32_LABEL(sp, USTACK);
     56  1.1  christos USP = SP;
     57  1.1  christos 
     58  1.1  christos     // Setup Kernel Stack
     59  1.1  christos LD32_LABEL(sp, KSTACK);
     60  1.1  christos 
     61  1.1  christos     // Setup Frame Pointer
     62  1.1  christos FP = SP;
     63  1.1  christos 
     64  1.1  christos     // Setup Event Vector Table
     65  1.1  christos LD32(p0, EVT0);
     66  1.1  christos 
     67  1.1  christos LD32_LABEL(r0, EMU_ISR);    // Emulation Handler (Int0)
     68  1.1  christos     [ P0 ++ ] = R0;
     69  1.1  christos LD32_LABEL(r0, RST_ISR);    // Reset Handler (Int1)
     70  1.1  christos     [ P0 ++ ] = R0;
     71  1.1  christos LD32_LABEL(r0, NMI_ISR);    // NMI Handler (Int2)
     72  1.1  christos     [ P0 ++ ] = R0;
     73  1.1  christos LD32_LABEL(r0, EXC_ISR);    // Exception Handler (Int3)
     74  1.1  christos     [ P0 ++ ] = R0;
     75  1.1  christos     [ P0 ++ ] = R0;                // IVT4 not used
     76  1.1  christos LD32_LABEL(r0, HWE_ISR);    // HW Error Handler (Int5)
     77  1.1  christos     [ P0 ++ ] = R0;
     78  1.1  christos LD32_LABEL(r0, TMR_ISR);    // Timer Handler (Int6)
     79  1.1  christos     [ P0 ++ ] = R0;
     80  1.1  christos LD32_LABEL(r0, IGV7_ISR);   // IVG7 Handler
     81  1.1  christos     [ P0 ++ ] = R0;
     82  1.1  christos LD32_LABEL(r0, IGV8_ISR);   // IVG8 Handler
     83  1.1  christos     [ P0 ++ ] = R0;
     84  1.1  christos LD32_LABEL(r0, IGV9_ISR);   // IVG9 Handler
     85  1.1  christos     [ P0 ++ ] = R0;
     86  1.1  christos LD32_LABEL(r0, IGV10_ISR);  // IVG10 Handler
     87  1.1  christos     [ P0 ++ ] = R0;
     88  1.1  christos LD32_LABEL(r0, IGV11_ISR);  // IVG11 Handler
     89  1.1  christos     [ P0 ++ ] = R0;
     90  1.1  christos LD32_LABEL(r0, IGV12_ISR);  // IVG12 Handler
     91  1.1  christos     [ P0 ++ ] = R0;
     92  1.1  christos LD32_LABEL(r0, IGV13_ISR);  // IVG13 Handler
     93  1.1  christos     [ P0 ++ ] = R0;
     94  1.1  christos LD32_LABEL(r0, IGV14_ISR);  // IVG14 Handler
     95  1.1  christos     [ P0 ++ ] = R0;
     96  1.1  christos LD32_LABEL(r0, IGV15_ISR);  // IVG15 Handler
     97  1.1  christos     [ P0 ++ ] = R0;
     98  1.1  christos 
     99  1.1  christos     // Setup the EVT_OVERRIDE MMR
    100  1.1  christos     R0 = 0;
    101  1.1  christos LD32(p0, EVT_OVERRIDE);
    102  1.1  christos     [ P0 ] = R0;
    103  1.1  christos 
    104  1.1  christos     // Setup Interrupt Mask
    105  1.1  christos     R0 = -1;
    106  1.1  christos LD32(p0, IMASK);
    107  1.1  christos     [ P0 ] = R0;
    108  1.1  christos 
    109  1.1  christos     // Return to Supervisor Code
    110  1.1  christos RAISE 15;
    111  1.1  christos NOP;
    112  1.1  christos 
    113  1.1  christos LD32_LABEL(r0, USER_CODE);
    114  1.1  christos RETI = R0;
    115  1.1  christos RTI;
    116  1.1  christos 
    117  1.1  christos .dw 0xFFFF
    118  1.1  christos .dw 0xFFFF
    119  1.1  christos .dw 0xFFFF
    120  1.1  christos .dw 0xFFFF
    121  1.1  christos .dw 0xFFFF
    122  1.1  christos .dw 0xFFFF
    123  1.1  christos .dw 0xFFFF
    124  1.1  christos 
    125  1.1  christos /////////////////////////////////////////////////////////////////////////////
    126  1.1  christos 
    127  1.1  christos 
    128  1.1  christos /////////////////////////////////////////////////////////////////////////////
    129  1.1  christos ///////////////////////// EMU ISR               /////////////////////////////
    130  1.1  christos /////////////////////////////////////////////////////////////////////////////
    131  1.1  christos 
    132  1.1  christos  EMU_ISR :
    133  1.1  christos 
    134  1.1  christos RTE;
    135  1.1  christos 
    136  1.1  christos .dw 0xFFFF
    137  1.1  christos .dw 0xFFFF
    138  1.1  christos .dw 0xFFFF
    139  1.1  christos .dw 0xFFFF
    140  1.1  christos .dw 0xFFFF
    141  1.1  christos .dw 0xFFFF
    142  1.1  christos .dw 0xFFFF
    143  1.1  christos 
    144  1.1  christos /////////////////////////////////////////////////////////////////////////////
    145  1.1  christos ///////////////////////// NMI ISR               /////////////////////////////
    146  1.1  christos /////////////////////////////////////////////////////////////////////////////
    147  1.1  christos 
    148  1.1  christos  NMI_ISR :
    149  1.1  christos 
    150  1.1  christos RTN;
    151  1.1  christos 
    152  1.1  christos .dw 0xFFFF
    153  1.1  christos .dw 0xFFFF
    154  1.1  christos .dw 0xFFFF
    155  1.1  christos .dw 0xFFFF
    156  1.1  christos .dw 0xFFFF
    157  1.1  christos .dw 0xFFFF
    158  1.1  christos .dw 0xFFFF
    159  1.1  christos 
    160  1.1  christos /////////////////////////////////////////////////////////////////////////////
    161  1.1  christos ///////////////////////// EXC ISR               /////////////////////////////
    162  1.1  christos /////////////////////////////////////////////////////////////////////////////
    163  1.1  christos 
    164  1.1  christos  EXC_ISR :
    165  1.1  christos 
    166  1.1  christos RTX;
    167  1.1  christos 
    168  1.1  christos .dw 0xFFFF
    169  1.1  christos .dw 0xFFFF
    170  1.1  christos .dw 0xFFFF
    171  1.1  christos .dw 0xFFFF
    172  1.1  christos .dw 0xFFFF
    173  1.1  christos .dw 0xFFFF
    174  1.1  christos .dw 0xFFFF
    175  1.1  christos 
    176  1.1  christos /////////////////////////////////////////////////////////////////////////////
    177  1.1  christos ///////////////////////// HWE ISR               /////////////////////////////
    178  1.1  christos /////////////////////////////////////////////////////////////////////////////
    179  1.1  christos 
    180  1.1  christos  HWE_ISR :
    181  1.1  christos 
    182  1.1  christos RTI;
    183  1.1  christos 
    184  1.1  christos .dw 0xFFFF
    185  1.1  christos .dw 0xFFFF
    186  1.1  christos .dw 0xFFFF
    187  1.1  christos .dw 0xFFFF
    188  1.1  christos .dw 0xFFFF
    189  1.1  christos .dw 0xFFFF
    190  1.1  christos .dw 0xFFFF
    191  1.1  christos 
    192  1.1  christos /////////////////////////////////////////////////////////////////////////////
    193  1.1  christos ///////////////////////// TMR ISR               /////////////////////////////
    194  1.1  christos /////////////////////////////////////////////////////////////////////////////
    195  1.1  christos 
    196  1.1  christos  TMR_ISR :
    197  1.1  christos 
    198  1.1  christos RTI;
    199  1.1  christos 
    200  1.1  christos .dw 0xFFFF
    201  1.1  christos .dw 0xFFFF
    202  1.1  christos .dw 0xFFFF
    203  1.1  christos .dw 0xFFFF
    204  1.1  christos .dw 0xFFFF
    205  1.1  christos .dw 0xFFFF
    206  1.1  christos .dw 0xFFFF
    207  1.1  christos 
    208  1.1  christos /////////////////////////////////////////////////////////////////////////////
    209  1.1  christos ///////////////////////// IGV7 ISR              /////////////////////////////
    210  1.1  christos /////////////////////////////////////////////////////////////////////////////
    211  1.1  christos 
    212  1.1  christos  IGV7_ISR :
    213  1.1  christos 
    214  1.1  christos RTI;
    215  1.1  christos 
    216  1.1  christos .dw 0xFFFF
    217  1.1  christos .dw 0xFFFF
    218  1.1  christos .dw 0xFFFF
    219  1.1  christos .dw 0xFFFF
    220  1.1  christos .dw 0xFFFF
    221  1.1  christos .dw 0xFFFF
    222  1.1  christos .dw 0xFFFF
    223  1.1  christos 
    224  1.1  christos /////////////////////////////////////////////////////////////////////////////
    225  1.1  christos ///////////////////////// IGV8 ISR              /////////////////////////////
    226  1.1  christos /////////////////////////////////////////////////////////////////////////////
    227  1.1  christos 
    228  1.1  christos  IGV8_ISR :
    229  1.1  christos 
    230  1.1  christos RTI;
    231  1.1  christos 
    232  1.1  christos .dw 0xFFFF
    233  1.1  christos .dw 0xFFFF
    234  1.1  christos .dw 0xFFFF
    235  1.1  christos .dw 0xFFFF
    236  1.1  christos .dw 0xFFFF
    237  1.1  christos .dw 0xFFFF
    238  1.1  christos .dw 0xFFFF
    239  1.1  christos 
    240  1.1  christos /////////////////////////////////////////////////////////////////////////////
    241  1.1  christos ///////////////////////// IGV9 ISR              /////////////////////////////
    242  1.1  christos /////////////////////////////////////////////////////////////////////////////
    243  1.1  christos 
    244  1.1  christos  IGV9_ISR :
    245  1.1  christos 
    246  1.1  christos RTI;
    247  1.1  christos 
    248  1.1  christos .dw 0xFFFF
    249  1.1  christos .dw 0xFFFF
    250  1.1  christos .dw 0xFFFF
    251  1.1  christos .dw 0xFFFF
    252  1.1  christos .dw 0xFFFF
    253  1.1  christos .dw 0xFFFF
    254  1.1  christos .dw 0xFFFF
    255  1.1  christos 
    256  1.1  christos /////////////////////////////////////////////////////////////////////////////
    257  1.1  christos ///////////////////////// IGV10 ISR             /////////////////////////////
    258  1.1  christos /////////////////////////////////////////////////////////////////////////////
    259  1.1  christos 
    260  1.1  christos  IGV10_ISR :
    261  1.1  christos 
    262  1.1  christos RTI;
    263  1.1  christos 
    264  1.1  christos .dw 0xFFFF
    265  1.1  christos .dw 0xFFFF
    266  1.1  christos .dw 0xFFFF
    267  1.1  christos .dw 0xFFFF
    268  1.1  christos .dw 0xFFFF
    269  1.1  christos .dw 0xFFFF
    270  1.1  christos .dw 0xFFFF
    271  1.1  christos 
    272  1.1  christos /////////////////////////////////////////////////////////////////////////////
    273  1.1  christos ///////////////////////// IGV11 ISR             /////////////////////////////
    274  1.1  christos /////////////////////////////////////////////////////////////////////////////
    275  1.1  christos 
    276  1.1  christos  IGV11_ISR :
    277  1.1  christos 
    278  1.1  christos RTI;
    279  1.1  christos 
    280  1.1  christos .dw 0xFFFF
    281  1.1  christos .dw 0xFFFF
    282  1.1  christos .dw 0xFFFF
    283  1.1  christos .dw 0xFFFF
    284  1.1  christos .dw 0xFFFF
    285  1.1  christos .dw 0xFFFF
    286  1.1  christos .dw 0xFFFF
    287  1.1  christos 
    288  1.1  christos /////////////////////////////////////////////////////////////////////////////
    289  1.1  christos ///////////////////////// IGV12 ISR             /////////////////////////////
    290  1.1  christos /////////////////////////////////////////////////////////////////////////////
    291  1.1  christos 
    292  1.1  christos  IGV12_ISR :
    293  1.1  christos 
    294  1.1  christos RTI;
    295  1.1  christos 
    296  1.1  christos .dw 0xFFFF
    297  1.1  christos .dw 0xFFFF
    298  1.1  christos .dw 0xFFFF
    299  1.1  christos .dw 0xFFFF
    300  1.1  christos .dw 0xFFFF
    301  1.1  christos .dw 0xFFFF
    302  1.1  christos .dw 0xFFFF
    303  1.1  christos 
    304  1.1  christos /////////////////////////////////////////////////////////////////////////////
    305  1.1  christos ///////////////////////// IGV13 ISR             /////////////////////////////
    306  1.1  christos /////////////////////////////////////////////////////////////////////////////
    307  1.1  christos 
    308  1.1  christos  IGV13_ISR :
    309  1.1  christos 
    310  1.1  christos RTI;
    311  1.1  christos 
    312  1.1  christos .dw 0xFFFF
    313  1.1  christos .dw 0xFFFF
    314  1.1  christos .dw 0xFFFF
    315  1.1  christos .dw 0xFFFF
    316  1.1  christos .dw 0xFFFF
    317  1.1  christos .dw 0xFFFF
    318  1.1  christos .dw 0xFFFF
    319  1.1  christos 
    320  1.1  christos /////////////////////////////////////////////////////////////////////////////
    321  1.1  christos ///////////////////////// IGV14 ISR             /////////////////////////////
    322  1.1  christos /////////////////////////////////////////////////////////////////////////////
    323  1.1  christos 
    324  1.1  christos  IGV14_ISR :
    325  1.1  christos 
    326  1.1  christos RTI;
    327  1.1  christos 
    328  1.1  christos .dw 0xFFFF
    329  1.1  christos .dw 0xFFFF
    330  1.1  christos .dw 0xFFFF
    331  1.1  christos .dw 0xFFFF
    332  1.1  christos .dw 0xFFFF
    333  1.1  christos .dw 0xFFFF
    334  1.1  christos .dw 0xFFFF
    335  1.1  christos 
    336  1.1  christos /////////////////////////////////////////////////////////////////////////////
    337  1.1  christos ///////////////////////// IGV15 ISR             /////////////////////////////
    338  1.1  christos /////////////////////////////////////////////////////////////////////////////
    339  1.1  christos 
    340  1.1  christos  IGV15_ISR :
    341  1.1  christos 
    342  1.1  christos RTI;
    343  1.1  christos 
    344  1.1  christos .dw 0xFFFF
    345  1.1  christos .dw 0xFFFF
    346  1.1  christos .dw 0xFFFF
    347  1.1  christos .dw 0xFFFF
    348  1.1  christos .dw 0xFFFF
    349  1.1  christos .dw 0xFFFF
    350  1.1  christos .dw 0xFFFF
    351  1.1  christos 
    352  1.1  christos /////////////////////////////////////////////////////////////////////////////
    353  1.1  christos ///////////////////////// USER CODE             /////////////////////////////
    354  1.1  christos /////////////////////////////////////////////////////////////////////////////
    355  1.1  christos 
    356  1.1  christos 
    357  1.1  christos  USER_CODE :
    358  1.1  christos 
    359  1.1  christos     P0 = 0x5 (Z);
    360  1.1  christos     P1 = 0xa (Z);
    361  1.1  christos 
    362  1.1  christos     P2 = 0x0100 (Z);
    363  1.1  christos     P2.H = 0x00f0;
    364  1.1  christos 
    365  1.1  christos LD32_LABEL(r0, L0T);
    366  1.1  christos LD32_LABEL(r1, L0B);
    367  1.1  christos LSETUP ( L0T , L0B ) LC0 = P0;
    368  1.1  christos L0T:R2 += 1;
    369  1.1  christos     R3 += 2;
    370  1.1  christos     R4 += 3;
    371  1.1  christos     R5 += 4;
    372  1.1  christos     R6 += 5;
    373  1.1  christos     R7 += 6;
    374  1.1  christos     R0 += 2;
    375  1.1  christos     R1 += 2;
    376  1.1  christos LT0 = R0;
    377  1.1  christos LB0 = R1;
    378  1.1  christos L0B:R7 += 6;
    379  1.1  christos     R2 += 1;
    380  1.1  christos     R3 += 2;
    381  1.1  christos     R4 += 3;
    382  1.1  christos     R5 += 4;
    383  1.1  christos     R6 += 5;
    384  1.1  christos 
    385  1.1  christos LD32_LABEL(r0, L1T);
    386  1.1  christos LD32_LABEL(r1, L1B);
    387  1.1  christos LSETUP ( L1T , L1B ) LC1 = P0;
    388  1.1  christos L1T:R2 += 1;
    389  1.1  christos     R3 += 2;
    390  1.1  christos     R4 += 3;
    391  1.1  christos     R5 += 4;
    392  1.1  christos     R6 += 5;
    393  1.1  christos     R7 += 6;
    394  1.1  christos     R0 += 2;
    395  1.1  christos     R1 += 2;
    396  1.1  christos LT1 = R0;
    397  1.1  christos LB1 = R1;
    398  1.1  christos L1B:R7 += 6;
    399  1.1  christos     R2 += 1;
    400  1.1  christos     R3 += 2;
    401  1.1  christos     R4 += 3;
    402  1.1  christos     R5 += 4;
    403  1.1  christos     R6 += 5;
    404  1.1  christos 
    405  1.1  christos LD32_LABEL(r0, L2T);
    406  1.1  christos LD32_LABEL(r1, L2B);
    407  1.1  christos LSETUP ( L2T , L2B ) LC0 = P0;
    408  1.1  christos L2T:R2 += 1;
    409  1.1  christos     R3 += 2;
    410  1.1  christos     R4 += 3;
    411  1.1  christos     R5 += 4;
    412  1.1  christos     R6 += 5;
    413  1.1  christos     R7 += 6;
    414  1.1  christos     R0 += 2;
    415  1.1  christos     R1 += -2;
    416  1.1  christos LT0 = R0;
    417  1.1  christos LB0 = R1;
    418  1.1  christos     R7 += 6;
    419  1.1  christos     R2 += 1;
    420  1.1  christos     R3 += 2;
    421  1.1  christos     R4 += 3;
    422  1.1  christos     R5 += 4;
    423  1.1  christos L2B:R6 += 5;
    424  1.1  christos 
    425  1.1  christos LD32_LABEL(r0, L3T);
    426  1.1  christos LD32_LABEL(r1, L3B);
    427  1.1  christos LSETUP ( L3T , L3B ) LC1 = P0;
    428  1.1  christos L3T:R2 += 1;
    429  1.1  christos     R3 += 2;
    430  1.1  christos     R4 += 3;
    431  1.1  christos     R5 += 4;
    432  1.1  christos     R6 += 5;
    433  1.1  christos     R7 += 6;
    434  1.1  christos     R0 += 2;
    435  1.1  christos     R1 += -2;
    436  1.1  christos LT1 = R0;
    437  1.1  christos LB1 = R1;
    438  1.1  christos     R7 += 6;
    439  1.1  christos     R2 += 1;
    440  1.1  christos     R3 += 2;
    441  1.1  christos     R4 += 3;
    442  1.1  christos     R5 += 4;
    443  1.1  christos L3B:R6 += 5;
    444  1.1  christos 
    445  1.1  christos NOP;
    446  1.1  christos NOP;
    447  1.1  christos NOP;
    448  1.1  christos dbg_pass;        // Call Endtest Macro
    449  1.1  christos 
    450  1.1  christos /////////////////////////////////////////////////////////////////////////////
    451  1.1  christos ///////////////////////// DATA MEMRORY          /////////////////////////////
    452  1.1  christos /////////////////////////////////////////////////////////////////////////////
    453  1.1  christos 
    454  1.1  christos .section MEM_DATA_ADDR_1 //.data 0x00F00100,"aw"
    455  1.1  christos .dd 0x01010101;
    456  1.1  christos .dd 0x02020202;
    457  1.1  christos .dd 0x03030303;
    458  1.1  christos .dd 0x04040404;
    459  1.1  christos .dd 0x05050505;
    460  1.1  christos .dd 0x06060606;
    461  1.1  christos .dd 0x07070707;
    462  1.1  christos .dd 0x08080808;
    463  1.1  christos .dd 0x09090909;
    464  1.1  christos .dd 0x0a0a0a0a;
    465  1.1  christos .dd 0x0b0b0b0b;
    466  1.1  christos .dd 0x0c0c0c0c;
    467  1.1  christos .dd 0x0d0d0d0d;
    468  1.1  christos .dd 0x0e0e0e0e;
    469  1.1  christos .dd 0x0f0f0f0f;
    470  1.1  christos 
    471  1.1  christos // Define Kernal Stack
    472  1.1  christos .data
    473  1.1  christos     .space (STACKSIZE); //<< WARNING: LINE MAY NEED MANUAL TRANSLATION >>
    474  1.1  christos      KSTACK :
    475  1.1  christos 
    476  1.1  christos     .space (STACKSIZE);
    477  1.1  christos      USTACK :
    478  1.1  christos 
    479  1.1  christos /////////////////////////////////////////////////////////////////////////////
    480  1.1  christos ///////////////////////// END OF TEST           /////////////////////////////
    481  1.1  christos /////////////////////////////////////////////////////////////////////////////
    482