about summary refs log tree commit diff stats
path: root/Makefile
blob: 9d83b1563cbfd81eb5395145b2f7755a0309471b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
generated by cgit-pink 1.4.1-2-gfad0 (git 2.36.2.497.gbbea4dcf42) at 2024-05-24 09:47:14 +0000
 


/span>which builds the repeated DUP DROP sequence. )
: MAKE-DUPDROP	( n -- )
	BEGIN ?DUP WHILE ' DUP , ' DROP , 1- REPEAT
;

( Now the actual test routine. )
: TEST		( -- startlsb startmsb endlsb endmsb )
	RDTSC			( Start time )
	[ 1000 MAKE-DUPDROP ]	( 1000 * DUP DROP )
	RDTSC			( End time )
;

: RUN ['] TEST PERFORM-TEST ;
RUN

( ---------------------------------------------------------------------- )
( Try the inlined alternative. )

( Inline the assembler primitive (cfa) n times. )
: *(INLINE) ( cfa n -- )
	BEGIN ?DUP WHILE OVER (INLINE) 1- REPEAT DROP
;

: DUPDROP INLINE DUP INLINE DROP ;CODE

: TEST
	INLINE RDTSC
	[ S" DUPDROP" FIND >CFA 1000 *(INLINE) ]
	INLINE RDTSC
;CODE

: RUN ['] TEST PERFORM-TEST ;
RUN