1//Original:/proj/frio/dv/testcases/seq/se_loop_kill/se_loop_kill.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) 15 16///////////////////////////////////////////////////////////////////////////// 17///////////////////////// Defines ///////////////////////////// 18///////////////////////////////////////////////////////////////////////////// 19 20#ifndef USER_CODE_SPACE 21#define USER_CODE_SPACE 0x00000500 22#endif 23#ifndef STACKSIZE 24#define STACKSIZE 0x00000010 25#endif 26#ifndef ITABLE 27#define ITABLE 0xF0000000 28#endif 29#ifndef EVT 30#define EVT 0xFFE02000 31#endif 32#ifndef EVT_OVERRIDE 33#define EVT_OVERRIDE 0xFFE02100 34#endif 35#ifndef IMASK 36#define IMASK 0xFFE02104 37#endif 38#ifndef DMEM_CONTROL 39#define DMEM_CONTROL 0xFFE00004 40#endif 41#ifndef DCPLB_ADDR0 42#define DCPLB_ADDR0 0xFFE00100 43#endif 44#ifndef DCPLB_DATA0 45#define DCPLB_DATA0 0xFFE00200 46#endif 47 48///////////////////////////////////////////////////////////////////////////// 49///////////////////////// RESET ISR ///////////////////////////// 50///////////////////////////////////////////////////////////////////////////// 51 52 RST_ISR : 53 54 // Initialize Dregs 55INIT_R_REGS(0); 56 57 // Initialize Pregs 58INIT_P_REGS(0); 59 60 // Initialize ILBM Registers 61INIT_I_REGS(0); 62INIT_M_REGS(0); 63INIT_L_REGS(0); 64INIT_B_REGS(0); 65 66 // Initialize the Address of the Checkreg data segment 67 // **** THIS IS NEEDED WHENEVER CHECKREG IS USED **** 68CHECK_INIT(p5, 0x00BFFFFC); 69 70 // Setup User Stack 71LD32_LABEL(sp, USTACK); 72USP = SP; 73 74 // Setup Kernel Stack 75LD32_LABEL(sp, KSTACK); 76 77 // Setup Frame Pointer 78FP = SP; 79 80 // Setup Event Vector Table 81LD32(p0, EVT); 82 83LD32_LABEL(r0, EMU_ISR); // Emulation Handler (Int0) 84 [ P0 ++ ] = R0; 85LD32_LABEL(r0, RST_ISR); // Reset Handler (Int1) 86 [ P0 ++ ] = R0; 87LD32_LABEL(r0, NMI_ISR); // NMI Handler (Int2) 88 [ P0 ++ ] = R0; 89LD32_LABEL(r0, EXC_ISR); // Exception Handler (Int3) 90 [ P0 ++ ] = R0; 91 [ P0 ++ ] = R0; // IVT4 not used 92LD32_LABEL(r0, HWE_ISR); // HW Error Handler (Int5) 93 [ P0 ++ ] = R0; 94LD32_LABEL(r0, TMR_ISR); // Timer Handler (Int6) 95 [ P0 ++ ] = R0; 96LD32_LABEL(r0, IGV7_ISR); // IVG7 Handler 97 [ P0 ++ ] = R0; 98LD32_LABEL(r0, IGV8_ISR); // IVG8 Handler 99 [ P0 ++ ] = R0; 100LD32_LABEL(r0, IGV9_ISR); // IVG9 Handler 101 [ P0 ++ ] = R0; 102LD32_LABEL(r0, IGV10_ISR); // IVG10 Handler 103 [ P0 ++ ] = R0; 104LD32_LABEL(r0, IGV11_ISR); // IVG11 Handler 105 [ P0 ++ ] = R0; 106LD32_LABEL(r0, IGV12_ISR); // IVG12 Handler 107 [ P0 ++ ] = R0; 108LD32_LABEL(r0, IGV13_ISR); // IVG13 Handler 109 [ P0 ++ ] = R0; 110LD32_LABEL(r0, IGV14_ISR); // IVG14 Handler 111 [ P0 ++ ] = R0; 112LD32_LABEL(r0, IGV15_ISR); // IVG15 Handler 113 [ P0 ++ ] = R0; 114 115 // Setup the EVT_OVERRIDE MMR 116 R0 = 0; 117LD32(p0, EVT_OVERRIDE); 118 [ P0 ] = R0; 119 120 // Setup Interrupt Mask 121 R0 = -1; 122LD32(p0, IMASK); 123 [ P0 ] = R0; 124 125 // Return to Supervisor Code 126RAISE 15; 127NOP; 128 129LD32_LABEL(r0, USER_CODE); 130RETI = R0; 131RTI; 132 133.dw 0xFFFF 134.dw 0xFFFF 135.dw 0xFFFF 136.dw 0xFFFF 137.dw 0xFFFF 138.dw 0xFFFF 139.dw 0xFFFF 140 141///////////////////////////////////////////////////////////////////////////// 142 143 144///////////////////////////////////////////////////////////////////////////// 145///////////////////////// EMU ISR ///////////////////////////// 146///////////////////////////////////////////////////////////////////////////// 147 148 EMU_ISR : 149 150RTE; 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///////////////////////// NMI ISR ///////////////////////////// 162///////////////////////////////////////////////////////////////////////////// 163 164 NMI_ISR : 165 166RTN; 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///////////////////////// EXC ISR ///////////////////////////// 178///////////////////////////////////////////////////////////////////////////// 179 180 EXC_ISR : 181 182RTX; 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///////////////////////// HWE ISR ///////////////////////////// 194///////////////////////////////////////////////////////////////////////////// 195 196 HWE_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///////////////////////// TMR ISR ///////////////////////////// 210///////////////////////////////////////////////////////////////////////////// 211 212 TMR_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///////////////////////// IGV7 ISR ///////////////////////////// 226///////////////////////////////////////////////////////////////////////////// 227 228 IGV7_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///////////////////////// IGV8 ISR ///////////////////////////// 242///////////////////////////////////////////////////////////////////////////// 243 244 IGV8_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///////////////////////// IGV9 ISR ///////////////////////////// 258///////////////////////////////////////////////////////////////////////////// 259 260 IGV9_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///////////////////////// IGV10 ISR ///////////////////////////// 274///////////////////////////////////////////////////////////////////////////// 275 276 IGV10_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///////////////////////// IGV11 ISR ///////////////////////////// 290///////////////////////////////////////////////////////////////////////////// 291 292 IGV11_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///////////////////////// IGV12 ISR ///////////////////////////// 306///////////////////////////////////////////////////////////////////////////// 307 308 IGV12_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///////////////////////// IGV13 ISR ///////////////////////////// 322///////////////////////////////////////////////////////////////////////////// 323 324 IGV13_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///////////////////////// IGV14 ISR ///////////////////////////// 338///////////////////////////////////////////////////////////////////////////// 339 340 IGV14_ISR : 341 342RTI; 343 344.dw 0xFFFF 345.dw 0xFFFF 346.dw 0xFFFF 347.dw 0xFFFF 348.dw 0xFFFF 349.dw 0xFFFF 350.dw 0xFFFF 351 352///////////////////////////////////////////////////////////////////////////// 353///////////////////////// IGV15 ISR ///////////////////////////// 354///////////////////////////////////////////////////////////////////////////// 355 356 IGV15_ISR : 357 358 P0 = 0x5 (Z); 359 P1 = 0x3 (Z); 360 P2 = 0x0200 (Z); 361 P2.H = 0x00F0; 362 [ -- SP ] = P0; 363 [ -- SP ] = P0; 364SSYNC; 365 366LD32_LABEL(r0, l0t); 367LD32_LABEL(r1, l0b); 368LT0 = r0; 369LB0 = r1; 370EXCPT 0x5; // Will kill mv2lc in EX3 371NOP; 372LC0 = P0; 373l0t:R3 += 3; 374 R1 += 1; 375 R4 += 4; 376 R5 += 5; 377 R6 += 6; 378l0b:R2 += 2; 379 380LD32_LABEL(r0, l2t); 381LD32_LABEL(r1, l2b); 382LT0 = r0; 383LB0 = r1; 384EXCPT 0x5; // Will kill mv2lc in EX3 when stalled 385LC0 = [ SP ++ ]; 386l2t:R3 += 3; 387 R1 += 1; 388 R4 += 4; 389 R5 += 5; 390 R6 += 6; 391l2b:R2 += 2; 392 393LD32_LABEL(r0, l1t); 394LD32_LABEL(r1, l1b); 395LT1 = r0; 396LB1 = r1; 397EXCPT 0x5; // Will kill mv2lc in EX3 when stalled 398LC1 = [ SP ++ ]; 399l1t:R3 += 3; 400 R1 += 1; 401 R4 += 4; 402 R5 += 5; 403 R6 += 6; 404l1b:R2 += 2; 405 406LD32_LABEL(r0, l3t); 407LD32_LABEL(r1, l3b); 408LT1 = r0; 409LB1 = r1; 410EXCPT 0x5; // Will kill mv2lc in EX3 411NOP; 412LC1 = P0; 413l3t:R3 += 3; 414 R1 += 1; 415 R4 += 4; 416 R5 += 5; 417 R6 += 6; 418l3b:R2 += 2; 419 420EXCPT 0x6; // Will kill Lsetup in EX2 421NOP; 422NOP; 423LSETUP ( l1e , l1e ) LC0 = P1; 424l1e:R7 += 1; 425 426EXCPT 0x6; // Will kill Lsetup in EX2 427NOP; 428NOP; 429LSETUP ( m1e , m1e ) LC1 = P1; 430m1e:R7 += 1; 431 432EXCPT 0x6; // Will kill Lsetup in EX1 433NOP; 434NOP; 435NOP; 436LSETUP ( l2e , l2e ) LC0 = P1; 437l2e:R7 += 1; 438 439EXCPT 0x6; // Will kill Lsetup in EX1 440NOP; 441NOP; 442NOP; 443LSETUP ( m2e , m2e ) LC1 = P1; 444m2e:R7 += 1; 445 446NOP; 447NOP; 448NOP; 449 450EXCPT 0x6; // Will kill Lsetup in EX2 when stalled 451 R0 = [ P2 ++ ]; 452LSETUP ( l3e , l3e ) LC0 = P1; 453l3e:R7 += 1; 454 455EXCPT 0x6; // Will kill Lsetup in EX2 when stalled 456 R0 = [ P2 ++ ]; 457LSETUP ( m3e , m3e ) LC1 = P1; 458m3e:R7 += 1; 459 460EXCPT 0x6; // Will kill Lsetup in EX1 when stalled 461 R0 = [ P2 ++ ]; 462NOP; 463LSETUP ( l4e , l4e ) LC0 = P1; 464l4e:R7 += 1; 465 466EXCPT 0x6; // Will kill Lsetup in EX1 when stalled 467 R0 = [ P2 ++ ]; 468NOP; 469LSETUP ( m4e , m4e ) LC1 = P1; 470m4e:R7 += 1; 471 472NOP; 473NOP; 474RTI; 475 476.dw 0xFFFF 477.dw 0xFFFF 478.dw 0xFFFF 479.dw 0xFFFF 480.dw 0xFFFF 481.dw 0xFFFF 482.dw 0xFFFF 483 484///////////////////////////////////////////////////////////////////////////// 485///////////////////////// USER CODE ///////////////////////////// 486///////////////////////////////////////////////////////////////////////////// 487 488 489 USER_CODE : 490 491NOP; 492NOP; 493NOP; 494NOP; 495dbg_pass; // Call Endtest Macro 496 497///////////////////////////////////////////////////////////////////////////// 498///////////////////////// DATA MEMRORY ///////////////////////////// 499///////////////////////////////////////////////////////////////////////////// 500 501.section MEM_0x00F00100,"aw" 502.dd 0xdeadbeef; 503.section MEM_0x00F00200,"aw" 504.dd 0x01010101; 505.dd 0x02020202; 506.dd 0x03030303; 507.dd 0x04040404; 508 509// Define Kernal Stack 510.section MEM_0x00F00210,"aw" 511 .space (STACKSIZE); 512 KSTACK : 513 514 .space (STACKSIZE); 515 USTACK : 516 517///////////////////////////////////////////////////////////////////////////// 518///////////////////////// END OF TEST ///////////////////////////// 519///////////////////////////////////////////////////////////////////////////// 520