Skip to content

Commit 40263ee

Browse files
Optimize acos, calloc
1 parent 507bdd2 commit 40263ee

File tree

4 files changed

+65
-35
lines changed

4 files changed

+65
-35
lines changed

CEdev/lib/src/buildall.bat

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@ set RTL_ASM_SRC=atoi.asm atol.asm atos.asm abs.asm calloc.asm isalnum.asm isalph
2626
set HLP_C_SRC=
2727
set HLP_ASM_SRC=bdivs.asm bdivu.asm bldix.asm bldiy.asm bmuls.asm brems.asm bremu.asm bshl.asm bshrs.asm bshru.asm bstix.asm bstiy.asm case.asm iand.asm idivs.asm idivu.asm ildix.asm ildiy.asm imulu.asm indcall.asm ineg.asm inot.asm ior.asm irems.asm iremu.asm ishl.asm ishrs.asm ishru.asm istix.asm istiy.asm itol.asm ixor.asm ladd.asm land.asm lcmpu.asm lcmps.asm ldivs.asm ldivu.asm lldix.asm lldiy.asm lmulu.asm lmuls.asm lneg.asm lnot.asm lor.asm lrems.asm lremu.asm lshl.asm lshrs.asm lshru.asm lstix.asm lstiy.asm lsub.asm lxor.asm sand.asm sdivs.asm sdivu.asm sldix.asm sldiy.asm smulu.asm sneg.asm snot.asm sor.asm srems.asm sremu.asm sshl.asm sshrs.asm sshru.asm sstix.asm sstiy.asm stoi.asm stoiu.asm sxor.asm frbmuls.asm frbtof.asm frftob.asm frftoi.asm frftos.asm frftoub.asm frftoui.asm frftous.asm frimuls.asm frimulu.asm fritof.asm frsmuls.asm frsmulu.asm frstof.asm frubtof.asm fruitof.asm frustof.asm frameset0.asm frameset.asm setflag.asm scmpzero.asm icmpzero.asm lcmpzero.asm seqcase.asm seqcaseD.asm case24.asm case24D.asm case16.asm case16D.asm case8.asm case8D.asm
2828

29-
set FP_C_SRC=acos.c asin.c atan.c atan2.c exp.c floor.c fmod.c fpdata.c frexp.c ldexp.c log.c log10.c modf.c pow.c sin.c sinh.c sqrt.c tan.c tanh.c gamma.c udtoe.c
29+
set FP_C_SRC=asin.c atan.c atan2.c exp.c floor.c fmod.c fpdata.c frexp.c ldexp.c log.c log10.c modf.c pow.c sin.c sinh.c sqrt.c tan.c tanh.c gamma.c udtoe.c
3030
set FP_ST_C_SRC=udtof.c udtog.c
31-
set FP_ASM_SRC=atof.asm ceil.asm cos.asm fabs.asm finite.asm fpadd.asm fpcmp.asm fpdiv.asm fpftol.asm fpltof.asm fpmul.asm fpneg.asm fppack.asm fpsub.asm fpultof.asm fpupop1.asm fpupop2.asm sqrtf.asm isnan.asm isinf.asm
31+
set FP_ASM_SRC=acos.asm atof.asm ceil.asm cos.asm fabs.asm finite.asm fpadd.asm fpcmp.asm fpdiv.asm fpftol.asm fpltof.asm fpmul.asm fpneg.asm fppack.asm fpsub.asm fpultof.asm fpupop1.asm fpupop2.asm sqrtf.asm isnan.asm isinf.asm
3232

3333
set DEBUG_C_SRC=
3434
set DEBUG_ASM_SRC=debugger.asm removeallbreakpoints.asm removeallwatchpoints.asm removebreakpoint.asm removewatchpoint.asm setbreakpoint.asm setreadwatchpoint.asm setwritewatchpoint.asm setreadwritewatchpoint.asm setwatchpoint.asm

CEdev/lib/src/std/acos.asm

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
.ref __frameset0
2+
.ref __fcmp
3+
.ref __fsub
4+
.ref _asin
5+
.ref _errno
6+
.def _acos
7+
.assume adl=1
8+
9+
; #define pio2 1.57079632679490
10+
;
11+
; double acos(double arg) {
12+
; if((arg > 1.) || (arg < -1.)) {
13+
; errno = EDOM;
14+
; return(0.);
15+
; }
16+
; return(pio2 - asin(arg));
17+
; }
18+
19+
_acos:
20+
call __frameset0
21+
ld hl,8388608
22+
ld e,63
23+
ld bc,(ix+6)
24+
ld a,(ix+9)
25+
push bc
26+
push hl
27+
call __fcmp
28+
pop bc
29+
pop hl
30+
jp m,l_1
31+
ld e,(ix+9)
32+
ld a,191
33+
call __fcmp
34+
jp p,l_2
35+
36+
l_1: ld bc,4
37+
ld (_errno),bc
38+
xor a,a
39+
sbc hl,hl
40+
jr l_3
41+
42+
l_2: ld c,(ix+9)
43+
ld b,0
44+
push bc
45+
ld bc,(ix+6)
46+
push bc
47+
call _asin
48+
ld sp,ix
49+
ld bc,13176795
50+
ld a,63
51+
call __fsub
52+
ld hl,bc
53+
54+
l_3: ld e,a
55+
pop ix
56+
ret

CEdev/lib/src/std/acos.c

Lines changed: 0 additions & 21 deletions
This file was deleted.

CEdev/lib/src/std/calloc.asm

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,25 +8,20 @@ _calloc:
88
pop de
99
pop bc
1010
pop hl
11-
push bc
1211
push hl
12+
push bc
1313
push de
1414
call __imulu
1515
push hl
1616
call _malloc
17-
add hl,de
18-
or a,a
17+
add hl,de
18+
xor a,a
1919
sbc hl,de
20-
pop bc
21-
ret z
22-
push bc
23-
ex de,hl
24-
or a,a
25-
sbc hl,hl
26-
push hl
20+
ld e,a
2721
push de
28-
call _memset
22+
push hl
23+
call nz,_memset
2924
pop hl
30-
pop bc
25+
pop de
3126
pop bc
3227
ret

0 commit comments

Comments
 (0)