1//Original:/proj/frio/dv/testcases/seq/se_loop_kill_01/se_loop_kill_01.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); 368 [ -- SP ] = R0; 369 [ -- SP ] = R1; 370SSYNC; 371LB0 = [sp++]; 372EXCPT 0x5; // Will kill mv2lc in EX3 373LC0 = P0; 374LT0 = [sp++]; 375l0t:R3 += 3; 376 R1 += 1; 377 R4 += 4; 378 R5 += 5; 379 R6 += 6; 380l0b:R2 += 2; 381 382LD32_LABEL(r0, l2t); 383LD32_LABEL(r1, l2b); 384LT0 = r0; 385LB0 = r1; 386EXCPT 0x5; // Will kill mv2lc in EX3 when stalled 387LC0 = [ SP ++ ]; 388l2t:R3 += 3; 389 R1 += 1; 390 R4 += 4; 391 R5 += 5; 392 R6 += 6; 393l2b:R2 += 2; 394 395LD32_LABEL(r0, l1t); 396LD32_LABEL(r1, l1b); 397LT1 = r0; 398LB1 = r1; 399EXCPT 0x5; // Will kill mv2lc in EX3 when stalled 400LC1 = [ SP ++ ]; 401l1t:R3 += 3; 402 R1 += 1; 403 R4 += 4; 404 R5 += 5; 405 R6 += 6; 406l1b:R2 += 2; 407 408LD32_LABEL(r0, l3t); 409LD32_LABEL(r1, l3b); 410LT1 = r0; 411LB1 = r1; 412EXCPT 0x5; // Will kill mv2lc in EX3 413NOP; 414LC1 = P0; 415l3t:R3 += 3; 416 R1 += 1; 417 R4 += 4; 418 R5 += 5; 419 R6 += 6; 420l3b:R2 += 2; 421 422EXCPT 0x6; // Will kill Lsetup in EX2 423NOP; 424NOP; 425LSETUP ( l1e , l1e ) LC0 = P1; 426l1e:R7 += 1; 427 428EXCPT 0x6; // Will kill Lsetup in EX2 429NOP; 430NOP; 431LSETUP ( m1e , m1e ) LC1 = P1; 432m1e:R7 += 1; 433 434EXCPT 0x6; // Will kill Lsetup in EX1 435NOP; 436NOP; 437NOP; 438LSETUP ( l2e , l2e ) LC0 = P1; 439l2e:R7 += 1; 440 441EXCPT 0x6; // Will kill Lsetup in EX1 442NOP; 443NOP; 444NOP; 445LSETUP ( m2e , m2e ) LC1 = P1; 446m2e:R7 += 1; 447 448NOP; 449NOP; 450NOP; 451 452EXCPT 0x6; // Will kill Lsetup in EX2 when stalled 453 R0 = [ P2 ++ ]; 454LSETUP ( l3e , l3e ) LC0 = P1; 455l3e:R7 += 1; 456 457EXCPT 0x6; // Will kill Lsetup in EX2 when stalled 458 R0 = [ P2 ++ ]; 459LSETUP ( m3e , m3e ) LC1 = P1; 460m3e:R7 += 1; 461 462EXCPT 0x6; // Will kill Lsetup in EX1 when stalled 463 R0 = [ P2 ++ ]; 464NOP; 465LSETUP ( l4e , l4e ) LC0 = P1; 466l4e:R7 += 1; 467 468EXCPT 0x6; // Will kill Lsetup in EX1 when stalled 469 R0 = [ P2 ++ ]; 470NOP; 471LSETUP ( m4e , m4e ) LC1 = P1; 472m4e:R7 += 1; 473 474NOP; 475NOP; 476RTI; 477 478.dw 0xFFFF 479.dw 0xFFFF 480.dw 0xFFFF 481.dw 0xFFFF 482.dw 0xFFFF 483.dw 0xFFFF 484.dw 0xFFFF 485 486///////////////////////////////////////////////////////////////////////////// 487///////////////////////// USER CODE ///////////////////////////// 488///////////////////////////////////////////////////////////////////////////// 489 490 491 USER_CODE : 492 493NOP; 494NOP; 495NOP; 496NOP; 497dbg_pass; // Call Endtest Macro 498 499///////////////////////////////////////////////////////////////////////////// 500///////////////////////// DATA MEMRORY ///////////////////////////// 501///////////////////////////////////////////////////////////////////////////// 502 503.section MEM_0x00F00100,"aw" 504.dd 0xdeadbeef; 505.section MEM_0x00F00200,"aw" 506.dd 0x01010101; 507.dd 0x02020202; 508.dd 0x03030303; 509.dd 0x04040404; 510 511// Define Kernal Stack 512.section MEM_0x00F00210,"aw" 513 .space (STACKSIZE); 514 KSTACK : 515 516 .space (STACKSIZE); 517 USTACK : 518 519///////////////////////////////////////////////////////////////////////////// 520///////////////////////// END OF TEST ///////////////////////////// 521///////////////////////////////////////////////////////////////////////////// 522