summaryrefslogtreecommitdiff
path: root/copt/rules.net
blob: 356f90dc193174d72e2dbfbc974c1edcfc49f0a1 (plain)
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
# Rules for optimizing BCC assembler output

# Rules for converting short number from host to network order

push	word %[#|*]0%1
call	__htons
inc	sp
inc	sp
=
mov	ax,#((%1 & $00FF) << 8) + ((%1 & $FF00) >> 8)

mov	ax,%[#|*]0%1
push	ax
call	__htons
inc	sp
inc	sp
=
mov	ax,#((%1 & $00FF) << 8) + ((%1 & $FF00) >> 8)

push	%0[%1]
call	__htons
inc	sp
inc	sp
=
mov	ax,%0[%1]
xchg	al,ah

push	ax
call	__htons
inc	sp
inc	sp
=
xchg	al,ah

push	%[bx|cx|dx]1
call	__htons
inc	sp
inc	sp
=
mov	ax,%1
xchg	al,ah