1 /* i386 assembly routines for inner
loop fraction routines
in Metafont
2 and MetaPost.
Public domain. Included
in texmfmp.c.
3 By Wayne Sullivan
<wgs
@maths.ucd.ie
>.
*/
7 #ifdef ASM_NEEDS_UNDERSCORE
8 ".globl _ztakefraction\n"
11 ".globl ztakefraction\n"
17 " movl 8(%ebp),%eax\n"
18 " cmpl $0x80000000,%eax\n"
28 " addl $0x08000000,%eax\n"
30 " cmpl $0x07ffffff,%edx\n"
32 " shrd $28, %edx,%eax\n"
40 "LL3: movl $0x7fffffff,%eax\n"
41 #ifdef ASM_NEEDS_UNDERSCORE
42 " movb $1,_aritherror\n"
44 " movb $1,aritherror\n"
48 #ifdef ASM_NEEDS_UNDERSCORE
49 ".globl _ztakescaled\n"
52 ".globl ztakescaled\n"
57 " movl 8(%ebp),%eax\n"
59 " cmpl $0x80000000,%eax\n"
69 " addl $0x00008000,%eax\n"
71 " cmpl $0x00007fff,%edx\n"
73 " shrd $16, %edx,%eax\n"
78 #ifdef ASM_NEEDS_UNDERSCORE
79 ".globl _zmakescaled\n"
80 ".globl _zmakefraction\n"
83 ".globl zmakescaled\n"
84 ".globl zmakefraction\n"
90 #ifdef ASM_NEEDS_UNDERSCORE
101 " movl 8(%ebp),%edx\n"
108 " movl 12(%ebp),%ebx\n"
118 " shrd %cl,%edx,%eax\n"
128 " cmpl $0x7fffffff,%eax\n"
138 "LL34: movl $0x7fffffff,%eax\n"
139 #ifdef ASM_NEEDS_UNDERSCORE
140 " movb $1,_aritherror\n"
142 " movb $1,aritherror\n"