File: //usr/local/ssl/lib/bcc/rules.i
# Rules for optimizing BCC assembler output
# Rules for inlining C library functions
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
call ___get_ds
=
mov ax,ds
call ___get_es
=
mov ax,es
call ___get_cs
=
mov ax,cs
push word %[#|*]0%1
call ___set_es
inc sp
inc sp
=
mov ax,%0%1
mov es,ax
mov ax,%[#|*]0%1
push ax
call ___set_es
inc sp
inc sp
=
mov ax,%0%1
mov es,ax
push %0[%1]
call ___set_es
inc sp
inc sp
=
mov ax,%0[%1]
mov es,ax
push %[ax|bx|cx|dx]1
call ___set_es
inc sp
inc sp
=
mov es,%1
push word %[#|*]0%1
call ___deek_es
inc sp
inc sp
=
seg es
mov ax,[%1]
mov ax,%[#|*]0%1
push ax
call ___deek_es
inc sp
inc sp
=
seg es
mov ax,[%1]
push %0[%1]
call ___deek_es
inc sp
inc sp
=
mov bx,%0[%1]
seg es
mov ax,[bx]
push bx
call ___deek_es
inc sp
inc sp
=
seg es
mov ax,[bx]
push %[ax|cx|dx]1
call ___deek_es
inc sp
inc sp
=
mov bx,%1
seg es
mov ax,[bx]
push word %[#|*]0%1
call ___peek_es
inc sp
inc sp
=
seg es
mov al,[%1]
xor ah,ah
mov ax,%[#|*]0%1
push ax
call ___peek_es
inc sp
inc sp
=
seg es
mov al,[%1]
xor ah,ah
push %0[%1]
call ___peek_es
inc sp
inc sp
=
mov bx,%0[%1]
seg es
mov al,[bx]
xor ah,ah
push bx
call ___peek_es
inc sp
inc sp
=
seg es
mov al,[bx]
xor ah,ah
push %[ax|cx|dx]1
call ___peek_es
inc sp
inc sp
=
mov bx,%1
seg es
mov al,[bx]
xor ah,ah
push word %[#|*]0%1
call ___poke_es
add sp,*4
=
pop ax
seg es
mov [%1],al
mov ax,%[#|*]0%1
push ax
call ___poke_es
add sp,*4
=
pop ax
seg es
mov [%1],al
pmov ax,%[#|*]0%1
push ax
call ___poke_es
add sp,*4
=
seg es
mov [%1],al
push %0[%1]
call ___poke_es
add sp,*4
=
mov bx,%0[%1]
pop ax
seg es
mov [bx],al
push bx
call ___poke_es
add sp,*4
=
pop ax
seg es
mov [bx],al
push %[ax|cx|dx]1
call ___poke_es
add sp,*4
=
mov bx,%1
pop ax
seg es
mov [bx],al
push word %[#|*]0%1
call ___doke_es
add sp,*4
=
pop ax
seg es
mov [%1],ax
mov ax,%[#|*]0%1
push ax
call ___doke_es
add sp,*4
=
pop ax
seg es
mov [%1],ax
pmov ax,%[#|*]0%1
push ax
call ___doke_es
add sp,*4
=
seg es
mov [%1],ax
push %0[%1]
call ___doke_es
add sp,*4
=
mov bx,%0[%1]
pop ax
seg es
mov [bx],ax
push bx
call ___doke_es
add sp,*4
=
pop ax
seg es
mov [bx],ax
push %[ax|cx|dx]1
call ___doke_es
add sp,*4
=
mov bx,%1
pop ax
seg es
mov [bx],ax
push ax
mov bx,%1
pop ax
=
mov bx,%1
push %1
pop ax
=
mov ax,%1
mov ax,ax
=
!mov ax,ax