Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
How to optimize C code for NGPC?
#8
Example of optimization:
result from compilation of the code above (more or less)

Code:
_myHBL2:
    push    XBC
    push    WA
    ld    A,(0x8009)
    incb    0x1,(_myHBCounter)
    cp    A,0x8
    j    ne,L9
    cpb    (_showHUD),0x0
    j    eq,L12
    lda    XBC,_plane1
    ld    A,(XBC+0x1)
    ld    (0x8033),A
    ld    A,(XBC)
    ld    (0x8032),A
    ldb    (0x8021),0x0
    cpb    (_currentLevel),0x0
    j    eq,L12
    ld    A,(_plane2 + 0x1)
    ld    (0x8035),A
    j    L12
L9:  ;1
    cp    A,0x3c                        ;    '<' 60
    j    ne,L13
    cpb    (_screenSplit),0x0
    j    eq,L12
    ld    A,(_split1)
    ld    (0x8034),A
    j    L12
L13:  ;1
    cp    A,0x64                        ;    'd' 100
    j    ne,L12
    cpb    (_screenSplit),0x0
    j    eq,L12
    ld    A,(_split2)
    ld    (0x8034),A
L12:  ;8
    pop    WA
    pop    XBC
    reti


push xbc and pop xbc is done for all branches but xbc is only used in one of them, so it can be relocated in it:


Code:
_myHBL2:
    push    WA
    ld    A,(0x8009)
    incb    0x1,(_myHBCounter)
    cp    A,0x8
    j    ne,L9
    cpb    (_showHUD),0x0
    j    eq,L12
    push    XBC
    lda    XBC,_plane1
    ld    A,(XBC+0x1)
    ld    (0x8033),A
    ld    A,(XBC)
    pop    XBC
    ld    (0x8032),A
    ldb    (0x8021),0x0
    cpb    (_currentLevel),0x0
    j    eq,L12
    ld    A,(_plane2 + 0x1)
    ld    (0x8035),A
    j    L12
L9:  ;1
    cp    A,0x3c                        ;    '<' 60
    j    ne,L13
    cpb    (_screenSplit),0x0
    j    eq,L12
    ld    A,(_split1)
    ld    (0x8034),A
    j    L12
L13:  ;1
    cp    A,0x64                        ;    'd' 100
    j    ne,L12
    cpb    (_screenSplit),0x0
    j    eq,L12
    ld    A,(_split2)
    ld    (0x8034),A
L12:  ;8
    pop    WA
    reti
Reply


Messages In This Thread
RE: How to optimize C code for NGPC? - by sodthor - 02-11-2022, 07:43 PM
RE: How to optimize C code for NGPC? - by sodthor - 02-11-2022, 08:49 PM
RE: How to optimize C code for NGPC? - by sodthor - 02-14-2022, 05:33 AM
RE: How to optimize C code for NGPC? - by sodthor - 02-14-2022, 06:29 PM
RE: How to optimize C code for NGPC? - by sodthor - 02-14-2022, 09:16 PM
RE: How to optimize C code for NGPC? - by sodthor - 02-15-2022, 03:38 AM
RE: How to optimize C code for NGPC? - by sodthor - 02-15-2022, 04:17 AM
RE: How to optimize C code for NGPC? - by sodthor - 02-16-2022, 07:25 PM

Forum Jump:


Users browsing this thread: 1 Guest(s)