jer@peora.UUCP (J. Eric Roskos) (03/02/85)
Following is my assembly-language SIEVE benchmark. See net.micro.mac for a commentary/description. ;Byte Sieve Benchmark - page 284, Jan '83 Issue ;Hand-compiled from the Pascal version (Listing 1) by J. Eric Roskos PEA '10 Iterations.' _DrawString move #9,d4 ; initialize D4 = iter-1 move #0,dumpno(a5) itloop: move #0,d3 ; count := 0 move.l flags(a5),a0 ; for i := 0 to size do move #SIZE,d0 clrloop: move.b #1,(a0)+ ; flags[i] := true dbf d0,clrloop ; (next i) move #0,d0 ; for i := 0 to size do move.l flags(a5),a0 ; get base address for flags array into a0 mloop: tst.b 0(a0,d0) ; if flags[i] then begin beq noflg move d0,d1 ; prime := i + i + 3; add d0,d1 add #3,d1 move d0,d2 ; k := i + prime add d1,d2 zloop: cmpi #SIZE,d2 ; while k <= size do begin bgt zlend move.b #0,0(a0,d2) ; flags[k] := false add d1,d2 ; k := k + prime bra zloop zlend: add #1,d3 ; count := count + 1 noflg: add #1,d0 ; (next i) cmp #SIZE,d0 ble mloop dbf d4,itloop ; (next iter) bsr prd3 ; print count in d3 pea ' primes.' _drawstring EXIT: RTS --------- (This file must be converted with BinHex 4.0) :"A0TCACP!%&38%a+49)!N!N(!+0L!*!%!3#3!`8!N!-%!*!%2J#3maJ!N!-S!!! #h!#3!`J!N!-J!!!r2!!"UI!!!!+`!*!$!8MRrrj"qJ!Q))iK6`!%)!eCJ#m!U'k T%Q%!!"T"qJ!1,&!ZD!!%60prrdje!*!)U4*#Td+R5(S"kNKk!Hj3jcmm!!![22q 3"&$R3UHT%bYIrB![,If!U(0#TkMB+erp5+K32c`!"6mm!"QSNcmm!!'SKcmm!!L SL5!m!!!IrU%H+dMp0%T!C`!!#NKk!DZSK%je5(S"a+L%2c`!"6mm!#fSNdKk!I+ SK$Jm!!NlI!!!r6Jf2!!!)'hp0$!m(ri3r!!"8FMrqM!m!!!JEIdd5M!!!'F!!#! b!0*!9N%d!04"$%)IrQi!!!`4[!!!)!$83@$Z8N053!a!(rj[dP(-rl4K!!$%5(S "++L%6R8-33!)CJ!!'$mm!!!r2!"!U)e%E`!!2c`!!+L86R8-33!0CJ!!#%kk!$C 1G3a"!!TQ!!!)6VS!&%je2`'SJdjeB3!!('%!!!41G8Kk!-Jr2!!!2ccrm5mYr8L Sldje2c`!"6mm!2USNdje-$%b-c3e0MFi18d4&4P0#%LS!!1KC!S%!N!-24rV ri")c%!"K!2pZ%LS!!!+"!*!$$dIkrmS5-a!!B3$r@$)m!#"K!2p38NT4b[r'6R8 b!q"Ck&N#J3#3!`p(q[qL%M-3!'%!rc!b!q"C!S%!N!-24rVrM")c%!"K!2mD-J2 S@3+"!*!$$dIkrhB5-a!!B3$r"$)$!S%!N!-24rVrBK)c%!"K!2l`6R8!+J!&!6B "q`96D@9fC3JJF(*TE@9c,L"1Eb"bEfpY)'pZ)'KPBA!JCQpb)'CXB@Gc)'&bFQ& j,Me"Fh0PE@*XH5eXB@jRG@&RC5"#@94&)&0TCACP,#"LH5"&FQPM)&*[FfY[Fb! SDQ9b3("PEh*K,P993e!T$M%`)%PdCA*KG'P[ER-Z!#!m!!!##Q%!$r"+3'B!!#K $qJ%1-hcrp`!B)dJ!($0m!!N!'M0m!JJ!)#"*5N"Q!*!$!3#3!`8!N!-%!*!%2J# 3mJ%!N!-&!*!$"!#3"$i!N!NF!$i!!%024%8!!3!+!!$rrb!!N!J"rrmJ!!!F!*! %rrKK!!$H#)!!$c0!!!4K!!%1)S"-h`F(6R9)jq$J3Hd!4L*)B3!"1M)m!!mJ'@% !!24BL&(*rrB`+3!%B3!!L&5))"&K!!$H60m("dje51G!J#)))!J)J!!!)%"K!!" 5#!%!!'B!!!6JL%cI!3)#3!$r6R9Kf&+)6R9)jq!!*!Jb!!*"!2pK!!"Q5%!)!J! !CJ!!$1&*!N!!rf!!!!B#32m!J%&)3'%!!(a-h`!(6R9K!#G`CJ!!#'%!!$4)3%K !3N")3%je,`%b!'%!!#*)3$!")Kp)3'!!!%c"5@(5`8P1G@(-9)K1G@(`9)P1G@% !*c*R!!!851H!J&4)B3!R*'B!!""-h`%"B3!!-'%!*U41G6i!60m"!8K!-!G1G@( 1@)K1G@%!!@4)3'%!*`T)3&5)B3!R!P@)6R9)jhri,`KK!2f@%$`!9f%!rHSJ(f% !rIKK!2ibB3$q,NcI(rj1G8MRrhjK!2eb%$`!8Q%!rFCK!2i8)%"-hhlr6R9)jhr i,`N[#'%!r9)32!"@B3$pTL!IB3$pY#!IB3$pVMYm%!!!MQ%!rH)lI!$)!)j-har q6R8[!"!m!&"K!2ek)"p1G5m!1$X: