📄 irq.lst
字号:
383 384 $L46: 385 $LBE11: 386 $LBB12: 387 .loc 1 372 0 388 01f8 500052AC sw $18,80($2) 389 .loc 1 380 0 390 01fc 4C0052AC sw $18,76($2) 391 0200 400052AC sw $18,64($2) 392 .loc 1 390 0 393 0204 63000008 j $L51 394 0208 80B1023C li $2,-1317011456 # 0xffffffffb1800000 395 396 $L45: 397 $LBE12: 398 $LBB13: 399 .loc 1 338 0 400 020c 40B0023C li $2,-1337982976 # 0xffffffffb0400000 401 0210 540052AC sw $18,84($2) 402 0214 480052AC sw $18,72($2) 403 0218 440052AC sw $18,68($2) 404 .loc 1 344 0 405 021c 3B000008 j $L35 406 0220 40B0023C li $2,-1337982976 # 0xffffffffb0400000 407 408 $L49: 409 $LBE13: 410 $LBB14: 411 .loc 1 384 0 412 0224 540052AC sw $18,84($2) 413 0228 480052AC sw $18,72($2) 414 022c 440052AC sw $18,68($2) 415 .loc 1 390 0 416 0230 63000008 j $L51 417 0234 80B1023C li $2,-1317011456 # 0xffffffffb1800000 418 419 $L43: 420 $LBE14: 421 $LBB15: 422 .loc 1 330 0 423 0238 500052AC sw $18,80($2) 424 .loc 1 338 0 425 023c 480052AC sw $18,72($2) 426 0240 440052AC sw $18,68($2) 427 0244 3B000008 j $L35 428 0248 40B0023C li $2,-1337982976 # 0xffffffffb0400000 429 430 $L47: 431 $LBE15: 432 $LBB16: 433 .loc 1 376 0 434 024c 500052AC sw $18,80($2) 435 .loc 1 384 0 436 0250 480052AC sw $18,72($2) 437 0254 440052AC sw $18,68($2) 438 0258 63000008 j $L51 439 025c 80B1023C li $2,-1317011456 # 0xffffffffb1800000GAS LISTING /tmp/ccsUu95n.s page 16 440 441 $L44: 442 $LBE16: 443 $LBB17: 444 .loc 1 334 0 445 0260 540052AC sw $18,84($2) 446 0264 4C0052AC sw $18,76($2) 447 0268 400052AC sw $18,64($2) 448 026c 3B000008 j $L35 449 0270 40B0023C li $2,-1337982976 # 0xffffffffb0400000 450 451 $L48: 452 $LBE17: 453 $LBB18: 454 .loc 1 380 0 455 0274 540052AC sw $18,84($2) 456 0278 4C0052AC sw $18,76($2) 457 027c 400052AC sw $18,64($2) 458 0280 63000008 j $L51 459 0284 80B1023C li $2,-1317011456 # 0xffffffffb1800000 460 461 $LBE18: 462 .set macro 463 .set reorder 464 $LFE2: 465 .end cpuIrqEnable 466 .align 2 467 .globl cpuIrqDisable 468 .ent cpuIrqDisable 469 .type cpuIrqDisable, @function 470 cpuIrqDisable: 471 $LFB3: 408:/mnt/hgfs/boot/booter/source/irq.c **** 409:/mnt/hgfs/boot/booter/source/irq.c **** /********************************************************************/ 410:/mnt/hgfs/boot/booter/source/irq.c **** void 411:/mnt/hgfs/boot/booter/source/irq.c **** cpuIrqDisable (int irq) 412:/mnt/hgfs/boot/booter/source/irq.c **** { 472 .loc 1 412 0 473 .frame $sp,24,$31 # vars= 0, regs= 2/0, args= 16, gp= 0 474 .mask 0x80010000,-4 475 .fmask 0x00000000,0 476 .set noreorder 477 .set nomacro 478 479 0288 E8FFBD27 addiu $sp,$sp,-24 480 $LCFI6: 413:/mnt/hgfs/boot/booter/source/irq.c **** int bit; 414:/mnt/hgfs/boot/booter/source/irq.c **** uint32 Status; 415:/mnt/hgfs/boot/booter/source/irq.c **** 416:/mnt/hgfs/boot/booter/source/irq.c **** if ((irq < 0) || (irq >= NUM_IRQS)) 481 .loc 1 416 0 482 028c 4800822C sltu $2,$4,72 483 .loc 1 412 0 484 0290 1000B0AF sw $16,16($sp) 485 $LCFI7: 486 0294 1400BFAF sw $31,20($sp) 487 $LCFI8:GAS LISTING /tmp/ccsUu95n.s page 17 488 .loc 1 412 0 489 .loc 1 416 0 490 0298 1B004010 beq $2,$0,$L56 491 029c 21808000 move $16,$4 492 417:/mnt/hgfs/boot/booter/source/irq.c **** return; 418:/mnt/hgfs/boot/booter/source/irq.c **** 419:/mnt/hgfs/boot/booter/source/irq.c **** /* 420:/mnt/hgfs/boot/booter/source/irq.c **** * Status[IM]/Cause[IP] 421:/mnt/hgfs/boot/booter/source/irq.c **** */ 422:/mnt/hgfs/boot/booter/source/irq.c **** if (irq == IRQ_SWI0) 493 .loc 1 422 0 494 02a0 1D008010 beq $4,$0,$L70 495 02a4 00000000 nop 496 423:/mnt/hgfs/boot/booter/source/irq.c **** { 424:/mnt/hgfs/boot/booter/source/irq.c **** Status = cp0RdStatus(); 425:/mnt/hgfs/boot/booter/source/irq.c **** Status &= ~STATUS_SWI0; 426:/mnt/hgfs/boot/booter/source/irq.c **** cp0WrStatus(Status); 427:/mnt/hgfs/boot/booter/source/irq.c **** } 428:/mnt/hgfs/boot/booter/source/irq.c **** else 429:/mnt/hgfs/boot/booter/source/irq.c **** 430:/mnt/hgfs/boot/booter/source/irq.c **** if (irq == IRQ_SWI1) 497 .loc 1 430 0 498 02a8 01000424 li $4,1 # 0x1 499 02ac 2E000412 beq $16,$4,$L71 500 02b0 00000000 nop 501 431:/mnt/hgfs/boot/booter/source/irq.c **** { 432:/mnt/hgfs/boot/booter/source/irq.c **** Status = cp0RdStatus(); 433:/mnt/hgfs/boot/booter/source/irq.c **** Status &= ~STATUS_SWI1; 434:/mnt/hgfs/boot/booter/source/irq.c **** cp0WrStatus(Status); 435:/mnt/hgfs/boot/booter/source/irq.c **** } 436:/mnt/hgfs/boot/booter/source/irq.c **** else 437:/mnt/hgfs/boot/booter/source/irq.c **** 438:/mnt/hgfs/boot/booter/source/irq.c **** if (irq == IRQ_PERFCNT) 502 .loc 1 438 0 503 02b4 06000224 li $2,6 # 0x6 504 02b8 32000212 beq $16,$2,$L72 505 02bc 00000000 nop 506 439:/mnt/hgfs/boot/booter/source/irq.c **** { 440:/mnt/hgfs/boot/booter/source/irq.c **** Status = cp0RdStatus(); 441:/mnt/hgfs/boot/booter/source/irq.c **** Status &= ~STATUS_PERFCNT; 442:/mnt/hgfs/boot/booter/source/irq.c **** cp0WrStatus(Status); 443:/mnt/hgfs/boot/booter/source/irq.c **** } 444:/mnt/hgfs/boot/booter/source/irq.c **** else 445:/mnt/hgfs/boot/booter/source/irq.c **** 446:/mnt/hgfs/boot/booter/source/irq.c **** if (irq == IRQ_COUNTER) 507 .loc 1 446 0 508 02c0 07000224 li $2,7 # 0x7 447:/mnt/hgfs/boot/booter/source/irq.c **** { 448:/mnt/hgfs/boot/booter/source/irq.c **** Status = cp0RdStatus(); 449:/mnt/hgfs/boot/booter/source/irq.c **** Status &= ~STATUS_COUNTER; 450:/mnt/hgfs/boot/booter/source/irq.c **** cp0WrStatus(Status); 451:/mnt/hgfs/boot/booter/source/irq.c **** } 452:/mnt/hgfs/boot/booter/source/irq.c **** elseGAS LISTING /tmp/ccsUu95n.s page 18 453:/mnt/hgfs/boot/booter/source/irq.c **** 454:/mnt/hgfs/boot/booter/source/irq.c **** /* 455:/mnt/hgfs/boot/booter/source/irq.c **** * IC0 456:/mnt/hgfs/boot/booter/source/irq.c **** */ 457:/mnt/hgfs/boot/booter/source/irq.c **** if ((irq >= IRQ_IC0_START) && (irq <= IRQ_IC0_END)) 509 .loc 1 457 0 510 .loc 1 446 0 511 02c4 36000212 beq $16,$2,$L73 512 02c8 F8FF0326 addiu $3,$16,-8 513 514 .loc 1 457 0 515 02cc 2000622C sltu $2,$3,32 458:/mnt/hgfs/boot/booter/source/irq.c **** { 459:/mnt/hgfs/boot/booter/source/irq.c **** bit = (1 << (irq - IRQ_IC0_START)); 460:/mnt/hgfs/boot/booter/source/irq.c **** 461:/mnt/hgfs/boot/booter/source/irq.c **** /* Disable */ 462:/mnt/hgfs/boot/booter/source/irq.c **** ic0->cfg2clr = bit; 463:/mnt/hgfs/boot/booter/source/irq.c **** ic0->cfg1clr = bit; 464:/mnt/hgfs/boot/booter/source/irq.c **** ic0->cfg0clr = bit; 465:/mnt/hgfs/boot/booter/source/irq.c **** 466:/mnt/hgfs/boot/booter/source/irq.c **** /* mask: mask irq */ 467:/mnt/hgfs/boot/booter/source/irq.c **** ic0->maskclr = bit; 468:/mnt/hgfs/boot/booter/source/irq.c **** 469:/mnt/hgfs/boot/booter/source/irq.c **** /* wakeup: do not allow irq to wakeup */ 470:/mnt/hgfs/boot/booter/source/irq.c **** ic0->wakeclr = bit; 471:/mnt/hgfs/boot/booter/source/irq.c **** } 472:/mnt/hgfs/boot/booter/source/irq.c **** else 473:/mnt/hgfs/boot/booter/source/irq.c **** 474:/mnt/hgfs/boot/booter/source/irq.c **** /* 475:/mnt/hgfs/boot/booter/source/irq.c **** * IC1 476:/mnt/hgfs/boot/booter/source/irq.c **** */ 477:/mnt/hgfs/boot/booter/source/irq.c **** { 478:/mnt/hgfs/boot/booter/source/irq.c **** uint32 gpio = (irq - IRQ_IC1_START); 479:/mnt/hgfs/boot/booter/source/irq.c **** 480:/mnt/hgfs/boot/booter/source/irq.c **** bit = (1 << gpio); 481:/mnt/hgfs/boot/booter/source/irq.c **** 482:/mnt/hgfs/boot/booter/source/irq.c **** /* Disable */ 483:/mnt/hgfs/boot/booter/source/irq.c **** ic1->cfg2clr = bit; 516 .loc 1 483 0 517 .loc 1 457 0 518 02d0 1C004010 beq $2,$0,$L66 519 02d4 80B1023C li $2,-1317011456 # 0xffffffffb1800000 520 521 .loc 1 459 0 522 02d8 04186400 sll $3,$4,$3 523 .loc 1 462 0 524 02dc 40B0023C li $2,-1337982976 # 0xffffffffb0400000 525 $LBB19: 526 .loc 1 483 0 527 02e0 540043AC sw $3,84($2) 484:/mnt/hgfs/boot/booter/source/irq.c **** ic1->cfg1clr = bit; 528 .loc 1 484 0 529 02e4 4C0043AC sw $3,76($2) 485:/mnt/hgfs/boot/booter/source/irq.c **** ic1->cfg0clr = bit; 530 .loc 1 485 0 531 02e8 440043AC sw $3,68($2) 486:/mnt/hgfs/boot/booter/source/irq.c **** GAS LISTING /tmp/ccsUu95n.s page 19 487:/mnt/hgfs/boot/booter/source/irq.c **** /* mask: mask irq */ 488:/mnt/hgfs/boot/booter/source/irq.c **** ic1->maskclr = bit; 532 .loc 1 488 0 533 02ec 740043AC sw $3,116($2) 489:/mnt/hgfs/boot/booter/source/irq.c **** 490:/mnt/hgfs/boot/booter/source/irq.c **** /* wakeup: do not allow irq to wakeup */ 491:/mnt/hgfs/boot/booter/source/irq.c **** ic1->wakeclr = bit; 534 .loc 1 491 0 535 02f0 6C0043AC sw $3,108($2) 536 $LBE19: 492:/mnt/hgfs/boot/booter/source/irq.c **** } 493:/mnt/hgfs/boot/booter/source/irq.c **** 494:/mnt/hgfs/boot/booter/source/irq.c **** irqDispatch[irq] = NULL; 537 .loc 1 494 0 538 02f4 0000023C lui $2,%hi(irqDispatch) 539 $L75: 540 02f8 80181000 sll $3,$16,2 541 02fc 00004224 addiu $2,$2,%lo(irqDispatch) 542 0300 21186200 addu $3,$3,$2 543 0304 000060AC sw $0,0($3) 544 $L56: 495:/mnt/hgfs/boot/booter/source/irq.c **** } 545 .loc 1 495 0 546 0308 1400BF8F lw $31,20($sp) 547 030c 1000B08F lw $16,16($sp) 548 0310 0800E003 j $31 549 0314 1800BD27 addiu $sp,$sp,24 550 551 $L70: 552 $LBB20: 553 .loc 1 424 0 554 0318 0000000C jal cp0RdStatus 555 031c 00000000 nop 556 557 .loc 1 426 0 558 0320 FFFE0424 li $4,-257 # 0xfffffffffffffeff 559 $LBE20: 560 $LBB21: 561 .loc 1 450 0 562 0324 0000000C jal cp0WrStatus 563 0328 24204400 and $4,$2,$4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -