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