Skip to content

Commit a1de0bb

Browse files
ZERICO2005mateoconlechuga
authored andcommitted
Optimized _MultiplyHLDE
1 parent ae5d6fe commit a1de0bb

File tree

1 file changed

+56
-60
lines changed

1 file changed

+56
-60
lines changed

src/graphx/graphx.asm

+56-60
Original file line numberDiff line numberDiff line change
@@ -1344,8 +1344,8 @@ _Ellipse:
13441344
ld (ix - el_comp_a),hl
13451345
inc hl
13461346
sbc hl,bc
1347-
ld bc,(ix - el_a2)
1348-
call _MultiplyHLBC
1347+
ld de,(ix - el_a2)
1348+
call _MultiplyHLDE
13491349
ld bc,(ix - el_b2)
13501350
add hl,bc
13511351
add hl,bc
@@ -1358,13 +1358,13 @@ _Ellipse:
13581358
sbc hl,hl
13591359
inc hl
13601360
sbc hl,de
1361-
ld bc,(ix - el_fb2)
1362-
call _MultiplyHLBC
1361+
ld de,(ix - el_fb2)
1362+
call _MultiplyHLDE
13631363
ld (ix - el_sigma_2),hl ; int sigma_add_2 = fb2 * (1 - a);
13641364

13651365
ld hl,(ix - el_a2)
1366-
ld bc,(ix - el_y)
1367-
call _MultiplyHLBC
1366+
ld de,(ix - el_y)
1367+
call _MultiplyHLDE
13681368
ld (ix - el_comp_b),hl
13691369
13701370
wait_quick
@@ -1437,16 +1437,16 @@ _ellipse_loop_draw_2 := $-3
14371437
mlt de
14381438
inc hl
14391439
sbc hl,de
1440-
ld bc,(ix - el_b2)
1441-
call _MultiplyHLBC
1440+
ld de,(ix - el_b2)
1441+
call _MultiplyHLDE
14421442
ld de,(ix - el_a2)
14431443
add hl,de
14441444
add hl,de
14451445
ld (ix - el_sigma), hl
14461446

14471447
ld hl,(ix - el_b2)
1448-
ld bc,(ix - el_temp1)
1449-
call _MultiplyHLBC
1448+
ld de,(ix - el_temp1)
1449+
call _MultiplyHLDE
14501450
ld (ix - el_comp_b),hl
14511451

14521452
.main_loop2:
@@ -4324,15 +4324,15 @@ _FillTriangle:
43244324
ld hl,(ix-12)
43254325
or a,a
43264326
sbc hl,bc
4327-
ld bc,(ix-30)
4328-
call _MultiplyHLBC ; sa = dx12 * (y - y1);
4327+
ld de,(ix-30)
4328+
call _MultiplyHLDE ; sa = dx12 * (y - y1);
43294329
ld (ix-15),hl
43304330
ld bc,(ix+9)
43314331
ld hl,(ix-12)
43324332
or a,a
43334333
sbc hl,bc
4334-
ld bc,(ix-21)
4335-
call _MultiplyHLBC ; sb = dx02 * (y - y0);
4334+
ld de,(ix-21)
4335+
call _MultiplyHLDE ; sb = dx02 * (y - y0);
43364336
ld (ix-18),hl
43374337
jp .secondloopstart ; for(; y <= y2; y++)
43384338
.secondloop:
@@ -6448,66 +6448,62 @@ _DivideHLBC:
64486448
ret
64496449

64506450
;-------------------------------------------------------------------------------
6451-
_MultiplyHLDE:
6451+
if 0
6452+
_MultiplyHLBC:
64526453
; Performs (un)signed integer multiplication
64536454
; Inputs:
64546455
; HL : Operand 1
6455-
; DE : Operand 2
6456+
; BC : Operand 2
64566457
; Outputs:
6457-
; HL = HL*DE
6458-
push de
6459-
pop bc
6458+
; HL = HL*BC
6459+
push bc
6460+
pop de
6461+
end if
64606462

64616463
;-------------------------------------------------------------------------------
6462-
_MultiplyHLBC:
6464+
; identical to __imulu_fast, but BC and DE are swapped
6465+
_MultiplyHLDE:
64636466
; Performs (un)signed integer multiplication
64646467
; Inputs:
64656468
; HL : Operand 1
6466-
; BC : Operand 2
6469+
; DE : Operand 2
64676470
; Outputs:
6468-
; HL = HL*BC
6469-
push iy
6470-
push hl
6471-
push bc
6471+
; HL = HL*DE
6472+
ld b, d
6473+
ld c, h
6474+
mlt bc
6475+
ld a, c
6476+
dec sp
64726477
push hl
6473-
ld iy,0
6474-
ld d,l
6475-
ld e,b
6476-
mlt de
6477-
add iy,de
6478-
ld d,c
6479-
ld e,h
6480-
mlt de
6481-
add iy,de
6482-
ld d,c
6483-
ld e,l
6478+
push de
6479+
inc sp
6480+
pop bc
6481+
ld c, l
6482+
mlt bc
6483+
add a, c
6484+
pop bc
6485+
ld c, e
6486+
mlt bc
6487+
add a, c
6488+
ld b, e
6489+
ld c, l
6490+
ld l, b
6491+
ld e, c
64846492
mlt de
6485-
ld c,h
64866493
mlt bc
6487-
ld a,c
6488-
inc sp
6489-
inc sp
6490-
pop hl
64916494
mlt hl
6492-
add a,l
6493-
pop hl
6494-
inc sp
6495-
mlt hl
6496-
add a,l
6497-
ld b,a
6498-
ld c,0
6499-
lea hl,iy+0
6500-
add hl,bc
6501-
add hl,hl
6502-
add hl,hl
6503-
add hl,hl
6504-
add hl,hl
6505-
add hl,hl
6506-
add hl,hl
6507-
add hl,hl
6508-
add hl,hl
6509-
add hl,de
6510-
pop iy
6495+
add hl, de
6496+
add a, h
6497+
ld h, a
6498+
add hl, hl
6499+
add hl, hl
6500+
add hl, hl
6501+
add hl, hl
6502+
add hl, hl
6503+
add hl, hl
6504+
add hl, hl
6505+
add hl, hl
6506+
add hl, bc
65116507
ret
65126508

65136509
;-------------------------------------------------------------------------------

0 commit comments

Comments
 (0)