home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Exec 5 / CD_Magazyn_EXEC_nr_5.iso / Programy / Programowanie / PPC / wosdb_src.lzx / asmdebugger.s next >
Encoding:
Text File  |  2001-02-13  |  1.5 KB  |  97 lines

  1. ## $VER: asmdebugger.s V0.1 (01.05.99)
  2. ##
  3. ## This file is part of the WarpOS debugger 'wosdb'
  4. ## Copyright (c) 1999-2001  Frank Wille
  5. ##
  6. ##
  7. ## v0.1  (01.05.99) phx
  8. ##       First usable version.
  9. ## v0.0  (24.04.99) phx
  10. ##       File created.
  11. ##
  12.  
  13.     .include "warpos_lvo.i"
  14.  
  15.  
  16.     .text
  17.  
  18.     .extern _PowerPCBase
  19.  
  20.  
  21. .if    0    # temporary breakpoints are currently
  22.         # not realized by using IABR
  23.     .align    3
  24.     .globl    _wosdb_tempbreakpoint
  25. _wosdb_tempbreakpoint:
  26. # sets a temporary breakpoint by writing to the IABR register
  27. # r2 = TOC
  28. # r3 = breakpoint-addr
  29.     mflr    r0
  30.     stw    r0,8(r1)
  31.     stwu    r1,-32(r1)
  32.     stw    r30,24(r1)
  33.     stw    r31,28(r1)
  34.     ori    r30,r3,2    # set breakpoint enable flag
  35.     lwz    r31,_PowerPCBase(r2)
  36.     CALLWOS    Super,r31
  37.     mfmsr    r4
  38.     andi.    r4,r4,0x20    # check IR (instruction translation)
  39.     beq    .tbp1
  40.     ori    r30,r30,1    # set translation enable for breakpoint
  41. .tbp1:
  42.     mtspr    1010,r30    # enable IABR
  43.     mr    r4,r3
  44.     CALLWOS    User,r31
  45.     lwz    r30,24(r1)
  46.     lwz    r31,28(r1)
  47.     addi    r1,r1,32
  48.     lwz    r0,8(r1)
  49.     mtlr    r0
  50.     blr
  51. .endif
  52.  
  53.  
  54.     .align    3
  55.     .globl    _clearIABR
  56. _clearIABR:
  57. # disables IABR register
  58. # r2 = TOC
  59.     mflr    r0
  60.     stw    r0,8(r1)
  61.     stwu    r1,-32(r1)
  62.     stw    r31,28(r1)
  63.     lwz    r31,_PowerPCBase(r2)
  64.     CALLWOS    Super,r31
  65.     li    r0,0
  66.     mtspr    1010,r0
  67.     mr    r4,r3
  68.     CALLWOS    User,r31
  69.     lwz    r31,28(r1)
  70.     addi    r1,r1,32
  71.     lwz    r0,8(r1)
  72.     mtlr    r0
  73.     blr
  74.  
  75.  
  76.     .align    3
  77.     .globl    _readIABR
  78. _readIABR:
  79. # returns IABR register
  80. # r2 = TOC
  81.     mflr    r0
  82.     stw    r0,8(r1)
  83.     stwu    r1,-32(r1)
  84.     stw    r31,28(r1)
  85.     lwz    r31,_PowerPCBase(r2)
  86.     CALLWOS    Super,r31
  87.     mr    r4,r3
  88.     mr    r3,r31
  89.     mfspr    r31,1010
  90.     CALLWOS    User,r3
  91.     mr    r3,r31
  92.     lwz    r31,28(r1)
  93.     addi    r1,r1,32
  94.     lwz    r0,8(r1)
  95.     mtlr    r0
  96.     blr
  97.