From 1c7864f6d4380797b07c7149111066b61f69f689 Mon Sep 17 00:00:00 2001 From: tma Date: Tue, 4 Oct 2005 15:18:22 +0000 Subject: * Moved lcc and q3asm into code/tools git-svn-id: svn://svn.icculus.org/quake3/trunk@134 edf5b092-35ff-0310-97b2-ce42778d08ea --- code/tools/lcc/COPYRIGHT | 61 + code/tools/lcc/LOG | 91 + code/tools/lcc/README | 21 + code/tools/lcc/README.id | 3 + code/tools/lcc/alpha/osf/tst/8q.1bk | 92 + code/tools/lcc/alpha/osf/tst/8q.2bk | 2 + code/tools/lcc/alpha/osf/tst/8q.sbk | 193 + code/tools/lcc/alpha/osf/tst/array.1bk | 4 + code/tools/lcc/alpha/osf/tst/array.2bk | 2 + code/tools/lcc/alpha/osf/tst/array.sbk | 260 + code/tools/lcc/alpha/osf/tst/cf.1bk | 51 + code/tools/lcc/alpha/osf/tst/cf.2bk | 0 code/tools/lcc/alpha/osf/tst/cf.sbk | 170 + code/tools/lcc/alpha/osf/tst/cq.1bk | 45 + code/tools/lcc/alpha/osf/tst/cq.2bk | 4 + code/tools/lcc/alpha/osf/tst/cq.sbk | 16904 +++++++++++++++++++ code/tools/lcc/alpha/osf/tst/cvt.1bk | 11 + code/tools/lcc/alpha/osf/tst/cvt.2bk | 2 + code/tools/lcc/alpha/osf/tst/cvt.sbk | 744 + code/tools/lcc/alpha/osf/tst/fields.1bk | 5 + code/tools/lcc/alpha/osf/tst/fields.2bk | 4 + code/tools/lcc/alpha/osf/tst/fields.sbk | 325 + code/tools/lcc/alpha/osf/tst/front.2bk | 29 + code/tools/lcc/alpha/osf/tst/front.sbk | 380 + code/tools/lcc/alpha/osf/tst/incr.1bk | 0 code/tools/lcc/alpha/osf/tst/incr.2bk | 9 + code/tools/lcc/alpha/osf/tst/incr.sbk | 151 + code/tools/lcc/alpha/osf/tst/init.1bk | 16 + code/tools/lcc/alpha/osf/tst/init.2bk | 3 + code/tools/lcc/alpha/osf/tst/init.sbk | 333 + code/tools/lcc/alpha/osf/tst/limits.1bk | 14 + code/tools/lcc/alpha/osf/tst/limits.2bk | 0 code/tools/lcc/alpha/osf/tst/limits.sbk | 405 + code/tools/lcc/alpha/osf/tst/paranoia.1bk | 195 + code/tools/lcc/alpha/osf/tst/paranoia.2bk | 16 + code/tools/lcc/alpha/osf/tst/paranoia.sbk | 19291 ++++++++++++++++++++++ code/tools/lcc/alpha/osf/tst/sort.1bk | 20 + code/tools/lcc/alpha/osf/tst/sort.2bk | 5 + code/tools/lcc/alpha/osf/tst/sort.sbk | 323 + code/tools/lcc/alpha/osf/tst/spill.1bk | 0 code/tools/lcc/alpha/osf/tst/spill.2bk | 6 + code/tools/lcc/alpha/osf/tst/spill.sbk | 272 + code/tools/lcc/alpha/osf/tst/stdarg.1bk | 6 + code/tools/lcc/alpha/osf/tst/stdarg.2bk | 1 + code/tools/lcc/alpha/osf/tst/stdarg.sbk | 430 + code/tools/lcc/alpha/osf/tst/struct.1bk | 5 + code/tools/lcc/alpha/osf/tst/struct.2bk | 2 + code/tools/lcc/alpha/osf/tst/struct.sbk | 443 + code/tools/lcc/alpha/osf/tst/switch.1bk | 76 + code/tools/lcc/alpha/osf/tst/switch.2bk | 7 + code/tools/lcc/alpha/osf/tst/switch.sbk | 903 + code/tools/lcc/alpha/osf/tst/wf1.1bk | 74 + code/tools/lcc/alpha/osf/tst/wf1.2bk | 2 + code/tools/lcc/alpha/osf/tst/wf1.sbk | 400 + code/tools/lcc/alpha/osf/tst/yacc.1bk | 10 + code/tools/lcc/alpha/osf/tst/yacc.2bk | 3 + code/tools/lcc/alpha/osf/tst/yacc.sbk | 2402 +++ code/tools/lcc/bin/lcc.exe | Bin 0 -> 135223 bytes code/tools/lcc/bin/q3cpp.exe | Bin 0 -> 159801 bytes code/tools/lcc/bin/q3rcc.exe | Bin 0 -> 847929 bytes code/tools/lcc/buildnt.bat | 3 + code/tools/lcc/buildnt.sh | 4 + code/tools/lcc/cpp/cpp.c | 322 + code/tools/lcc/cpp/cpp.h | 163 + code/tools/lcc/cpp/eval.c | 520 + code/tools/lcc/cpp/getopt.c | 53 + code/tools/lcc/cpp/hideset.c | 112 + code/tools/lcc/cpp/include.c | 122 + code/tools/lcc/cpp/lex.c | 580 + code/tools/lcc/cpp/macro.c | 515 + code/tools/lcc/cpp/nlist.c | 104 + code/tools/lcc/cpp/tokens.c | 370 + code/tools/lcc/cpp/unix.c | 116 + code/tools/lcc/doc/4.html | 754 + code/tools/lcc/doc/bprint.1 | 83 + code/tools/lcc/doc/bprint.pdf | Bin 0 -> 4963 bytes code/tools/lcc/doc/install.html | 796 + code/tools/lcc/doc/lcc.1 | 605 + code/tools/lcc/doc/lcc.pdf | Bin 0 -> 16421 bytes code/tools/lcc/etc/bprint.c | 475 + code/tools/lcc/etc/gcc-solaris.c | 50 + code/tools/lcc/etc/irix.c | 64 + code/tools/lcc/etc/lcc.c | 799 + code/tools/lcc/etc/linux.c | 72 + code/tools/lcc/etc/ops.c | 190 + code/tools/lcc/etc/osf.c | 53 + code/tools/lcc/etc/solaris.c | 50 + code/tools/lcc/etc/win32.c | 43 + code/tools/lcc/include/alpha/osf/assert.h | 14 + code/tools/lcc/include/alpha/osf/ctype.h | 25 + code/tools/lcc/include/alpha/osf/errno.h | 8 + code/tools/lcc/include/alpha/osf/float.h | 37 + code/tools/lcc/include/alpha/osf/limits.h | 24 + code/tools/lcc/include/alpha/osf/locale.h | 36 + code/tools/lcc/include/alpha/osf/math.h | 29 + code/tools/lcc/include/alpha/osf/setjmp.h | 10 + code/tools/lcc/include/alpha/osf/signal.h | 20 + code/tools/lcc/include/alpha/osf/stdarg.h | 28 + code/tools/lcc/include/alpha/osf/stddef.h | 22 + code/tools/lcc/include/alpha/osf/stdio.h | 113 + code/tools/lcc/include/alpha/osf/stdlib.h | 54 + code/tools/lcc/include/alpha/osf/string.h | 35 + code/tools/lcc/include/alpha/osf/time.h | 50 + code/tools/lcc/include/mips/irix/assert.h | 14 + code/tools/lcc/include/mips/irix/ctype.h | 40 + code/tools/lcc/include/mips/irix/errno.h | 8 + code/tools/lcc/include/mips/irix/float.h | 37 + code/tools/lcc/include/mips/irix/limits.h | 24 + code/tools/lcc/include/mips/irix/locale.h | 36 + code/tools/lcc/include/mips/irix/math.h | 29 + code/tools/lcc/include/mips/irix/setjmp.h | 10 + code/tools/lcc/include/mips/irix/signal.h | 20 + code/tools/lcc/include/mips/irix/stdarg.h | 22 + code/tools/lcc/include/mips/irix/stddef.h | 22 + code/tools/lcc/include/mips/irix/stdio.h | 103 + code/tools/lcc/include/mips/irix/stdlib.h | 54 + code/tools/lcc/include/mips/irix/string.h | 35 + code/tools/lcc/include/mips/irix/time.h | 48 + code/tools/lcc/include/sparc/solaris/assert.h | 14 + code/tools/lcc/include/sparc/solaris/ctype.h | 46 + code/tools/lcc/include/sparc/solaris/errno.h | 8 + code/tools/lcc/include/sparc/solaris/float.h | 37 + code/tools/lcc/include/sparc/solaris/limits.h | 24 + code/tools/lcc/include/sparc/solaris/locale.h | 36 + code/tools/lcc/include/sparc/solaris/math.h | 30 + code/tools/lcc/include/sparc/solaris/setjmp.h | 10 + code/tools/lcc/include/sparc/solaris/signal.h | 20 + code/tools/lcc/include/sparc/solaris/stdarg.h | 22 + code/tools/lcc/include/sparc/solaris/stddef.h | 22 + code/tools/lcc/include/sparc/solaris/stdio.h | 104 + code/tools/lcc/include/sparc/solaris/stdlib.h | 54 + code/tools/lcc/include/sparc/solaris/string.h | 35 + code/tools/lcc/include/sparc/solaris/time.h | 48 + code/tools/lcc/include/x86/linux/assert.h | 14 + code/tools/lcc/include/x86/linux/float.h | 37 + code/tools/lcc/include/x86/linux/stdarg.h | 21 + code/tools/lcc/lburg/gram.c | 682 + code/tools/lcc/lburg/gram.y | 202 + code/tools/lcc/lburg/lburg.1 | 179 + code/tools/lcc/lburg/lburg.c | 671 + code/tools/lcc/lburg/lburg.h | 65 + code/tools/lcc/lib/assert.c | 15 + code/tools/lcc/lib/bbexit.c | 123 + code/tools/lcc/lib/yynull.c | 12 + code/tools/lcc/makefile | 307 + code/tools/lcc/makefile.nt | 383 + code/tools/lcc/mips/irix/tst/8q.1bk | 92 + code/tools/lcc/mips/irix/tst/8q.2bk | 2 + code/tools/lcc/mips/irix/tst/8q.sbk | 169 + code/tools/lcc/mips/irix/tst/array.1bk | 4 + code/tools/lcc/mips/irix/tst/array.2bk | 2 + code/tools/lcc/mips/irix/tst/array.sbk | 235 + code/tools/lcc/mips/irix/tst/cf.1bk | 51 + code/tools/lcc/mips/irix/tst/cf.2bk | 0 code/tools/lcc/mips/irix/tst/cf.sbk | 153 + code/tools/lcc/mips/irix/tst/cq.1bk | 48 + code/tools/lcc/mips/irix/tst/cq.2bk | 25 + code/tools/lcc/mips/irix/tst/cq.sbk | 13620 +++++++++++++++ code/tools/lcc/mips/irix/tst/cvt.1bk | 11 + code/tools/lcc/mips/irix/tst/cvt.2bk | 2 + code/tools/lcc/mips/irix/tst/cvt.sbk | 557 + code/tools/lcc/mips/irix/tst/fields.1bk | 5 + code/tools/lcc/mips/irix/tst/fields.2bk | 4 + code/tools/lcc/mips/irix/tst/fields.sbk | 304 + code/tools/lcc/mips/irix/tst/front.2bk | 29 + code/tools/lcc/mips/irix/tst/front.sbk | 416 + code/tools/lcc/mips/irix/tst/incr.2bk | 9 + code/tools/lcc/mips/irix/tst/incr.sbk | 149 + code/tools/lcc/mips/irix/tst/init.1bk | 16 + code/tools/lcc/mips/irix/tst/init.2bk | 3 + code/tools/lcc/mips/irix/tst/init.sbk | 325 + code/tools/lcc/mips/irix/tst/limits.1bk | 14 + code/tools/lcc/mips/irix/tst/limits.2bk | 0 code/tools/lcc/mips/irix/tst/limits.sbk | 396 + code/tools/lcc/mips/irix/tst/paranoia.1bk | 178 + code/tools/lcc/mips/irix/tst/paranoia.2bk | 16 + code/tools/lcc/mips/irix/tst/paranoia.sbk | 18657 +++++++++++++++++++++ code/tools/lcc/mips/irix/tst/sort.1bk | 20 + code/tools/lcc/mips/irix/tst/sort.2bk | 5 + code/tools/lcc/mips/irix/tst/sort.sbk | 308 + code/tools/lcc/mips/irix/tst/spill.2bk | 6 + code/tools/lcc/mips/irix/tst/spill.sbk | 271 + code/tools/lcc/mips/irix/tst/stdarg.1bk | 6 + code/tools/lcc/mips/irix/tst/stdarg.2bk | 1 + code/tools/lcc/mips/irix/tst/stdarg.sbk | 395 + code/tools/lcc/mips/irix/tst/struct.1bk | 5 + code/tools/lcc/mips/irix/tst/struct.2bk | 2 + code/tools/lcc/mips/irix/tst/struct.sbk | 485 + code/tools/lcc/mips/irix/tst/switch.1bk | 76 + code/tools/lcc/mips/irix/tst/switch.2bk | 5 + code/tools/lcc/mips/irix/tst/switch.sbk | 836 + code/tools/lcc/mips/irix/tst/wf1.1bk | 74 + code/tools/lcc/mips/irix/tst/wf1.2bk | 2 + code/tools/lcc/mips/irix/tst/wf1.sbk | 378 + code/tools/lcc/mips/irix/tst/yacc.1bk | 10 + code/tools/lcc/mips/irix/tst/yacc.2bk | 3 + code/tools/lcc/mips/irix/tst/yacc.sbk | 2236 +++ code/tools/lcc/msdev/rcc.dsp | 240 + code/tools/lcc/msdev/rcc.dsw | 29 + code/tools/lcc/packing.lst | 432 + code/tools/lcc/sparc/solaris/tst/8q.1bk | 92 + code/tools/lcc/sparc/solaris/tst/8q.2bk | 2 + code/tools/lcc/sparc/solaris/tst/8q.sbk | 144 + code/tools/lcc/sparc/solaris/tst/array.1bk | 4 + code/tools/lcc/sparc/solaris/tst/array.2bk | 2 + code/tools/lcc/sparc/solaris/tst/array.sbk | 172 + code/tools/lcc/sparc/solaris/tst/cf.1bk | 51 + code/tools/lcc/sparc/solaris/tst/cf.2bk | 0 code/tools/lcc/sparc/solaris/tst/cf.sbk | 143 + code/tools/lcc/sparc/solaris/tst/cq.1bk | 48 + code/tools/lcc/sparc/solaris/tst/cq.2bk | 25 + code/tools/lcc/sparc/solaris/tst/cq.sbk | 13322 +++++++++++++++ code/tools/lcc/sparc/solaris/tst/cvt.1bk | 11 + code/tools/lcc/sparc/solaris/tst/cvt.2bk | 2 + code/tools/lcc/sparc/solaris/tst/cvt.sbk | 715 + code/tools/lcc/sparc/solaris/tst/fields.1bk | 5 + code/tools/lcc/sparc/solaris/tst/fields.2bk | 4 + code/tools/lcc/sparc/solaris/tst/fields.sbk | 309 + code/tools/lcc/sparc/solaris/tst/front.2bk | 29 + code/tools/lcc/sparc/solaris/tst/front.sbk | 260 + code/tools/lcc/sparc/solaris/tst/incr.1bk | 0 code/tools/lcc/sparc/solaris/tst/incr.2bk | 9 + code/tools/lcc/sparc/solaris/tst/incr.sbk | 107 + code/tools/lcc/sparc/solaris/tst/init.1bk | 16 + code/tools/lcc/sparc/solaris/tst/init.2bk | 3 + code/tools/lcc/sparc/solaris/tst/init.sbk | 277 + code/tools/lcc/sparc/solaris/tst/limits.1bk | 14 + code/tools/lcc/sparc/solaris/tst/limits.2bk | 0 code/tools/lcc/sparc/solaris/tst/limits.sbk | 384 + code/tools/lcc/sparc/solaris/tst/paranoia.1bk | 178 + code/tools/lcc/sparc/solaris/tst/paranoia.2bk | 16 + code/tools/lcc/sparc/solaris/tst/paranoia.sbk | 21068 ++++++++++++++++++++++++ code/tools/lcc/sparc/solaris/tst/sort.1bk | 20 + code/tools/lcc/sparc/solaris/tst/sort.2bk | 5 + code/tools/lcc/sparc/solaris/tst/sort.sbk | 202 + code/tools/lcc/sparc/solaris/tst/spill.1bk | 0 code/tools/lcc/sparc/solaris/tst/spill.2bk | 6 + code/tools/lcc/sparc/solaris/tst/spill.sbk | 207 + code/tools/lcc/sparc/solaris/tst/stdarg.1bk | 6 + code/tools/lcc/sparc/solaris/tst/stdarg.2bk | 1 + code/tools/lcc/sparc/solaris/tst/stdarg.sbk | 376 + code/tools/lcc/sparc/solaris/tst/struct.1bk | 5 + code/tools/lcc/sparc/solaris/tst/struct.2bk | 2 + code/tools/lcc/sparc/solaris/tst/struct.sbk | 377 + code/tools/lcc/sparc/solaris/tst/switch.1bk | 76 + code/tools/lcc/sparc/solaris/tst/switch.2bk | 5 + code/tools/lcc/sparc/solaris/tst/switch.sbk | 713 + code/tools/lcc/sparc/solaris/tst/wf1.1bk | 74 + code/tools/lcc/sparc/solaris/tst/wf1.2bk | 2 + code/tools/lcc/sparc/solaris/tst/wf1.sbk | 311 + code/tools/lcc/sparc/solaris/tst/yacc.1bk | 10 + code/tools/lcc/sparc/solaris/tst/yacc.2bk | 3 + code/tools/lcc/sparc/solaris/tst/yacc.sbk | 2247 +++ code/tools/lcc/src/2html.c | 555 + code/tools/lcc/src/alloc.c | 94 + code/tools/lcc/src/alpha.md | 1192 ++ code/tools/lcc/src/asdl.c | 399 + code/tools/lcc/src/bind.c | 23 + code/tools/lcc/src/bytecode.c | 365 + code/tools/lcc/src/c.h | 723 + code/tools/lcc/src/config.h | 102 + code/tools/lcc/src/dag.c | 736 + code/tools/lcc/src/dagcheck.md | 210 + code/tools/lcc/src/decl.c | 1162 ++ code/tools/lcc/src/enode.c | 545 + code/tools/lcc/src/error.c | 137 + code/tools/lcc/src/event.c | 28 + code/tools/lcc/src/expr.c | 711 + code/tools/lcc/src/gen.c | 830 + code/tools/lcc/src/init.c | 318 + code/tools/lcc/src/inits.c | 7 + code/tools/lcc/src/input.c | 135 + code/tools/lcc/src/lex.c | 923 ++ code/tools/lcc/src/list.c | 56 + code/tools/lcc/src/main.c | 225 + code/tools/lcc/src/mips.md | 1120 ++ code/tools/lcc/src/null.c | 74 + code/tools/lcc/src/output.c | 135 + code/tools/lcc/src/pass2.c | 665 + code/tools/lcc/src/prof.c | 228 + code/tools/lcc/src/profio.c | 276 + code/tools/lcc/src/rcc.asdl | 70 + code/tools/lcc/src/run.sh | 51 + code/tools/lcc/src/simp.c | 587 + code/tools/lcc/src/sparc.md | 1163 ++ code/tools/lcc/src/stab.c | 326 + code/tools/lcc/src/stab.h | 113 + code/tools/lcc/src/stmt.c | 696 + code/tools/lcc/src/string.c | 122 + code/tools/lcc/src/sym.c | 314 + code/tools/lcc/src/symbolic.c | 494 + code/tools/lcc/src/token.h | 133 + code/tools/lcc/src/trace.c | 181 + code/tools/lcc/src/tree.c | 223 + code/tools/lcc/src/types.c | 748 + code/tools/lcc/src/x86.md | 998 ++ code/tools/lcc/src/x86linux.md | 1081 ++ code/tools/lcc/tst/8q.0 | 0 code/tools/lcc/tst/8q.c | 39 + code/tools/lcc/tst/array.0 | 0 code/tools/lcc/tst/array.c | 48 + code/tools/lcc/tst/cf.0 | 32 + code/tools/lcc/tst/cf.c | 32 + code/tools/lcc/tst/cq.0 | 0 code/tools/lcc/tst/cq.c | 5316 ++++++ code/tools/lcc/tst/cvt.0 | 0 code/tools/lcc/tst/cvt.c | 35 + code/tools/lcc/tst/fields.0 | 0 code/tools/lcc/tst/fields.c | 34 + code/tools/lcc/tst/front.0 | 0 code/tools/lcc/tst/front.c | 120 + code/tools/lcc/tst/incr.0 | 0 code/tools/lcc/tst/incr.c | 39 + code/tools/lcc/tst/init.0 | 0 code/tools/lcc/tst/init.c | 59 + code/tools/lcc/tst/limits.0 | 0 code/tools/lcc/tst/limits.c | 19 + code/tools/lcc/tst/paranoia.0 | 0 code/tools/lcc/tst/paranoia.c | 2203 +++ code/tools/lcc/tst/sort.0 | 0 code/tools/lcc/tst/sort.c | 65 + code/tools/lcc/tst/spill.0 | 0 code/tools/lcc/tst/spill.c | 17 + code/tools/lcc/tst/stdarg.0 | 0 code/tools/lcc/tst/stdarg.c | 51 + code/tools/lcc/tst/struct.0 | 0 code/tools/lcc/tst/struct.c | 69 + code/tools/lcc/tst/switch.0 | 0 code/tools/lcc/tst/switch.c | 137 + code/tools/lcc/tst/wf1.0 | 115 + code/tools/lcc/tst/wf1.c | 101 + code/tools/lcc/tst/yacc.0 | 1 + code/tools/lcc/tst/yacc.c | 591 + code/tools/lcc/x86/linux/tst/8q.1bk | 92 + code/tools/lcc/x86/linux/tst/8q.2bk | 2 + code/tools/lcc/x86/linux/tst/8q.sbk | 180 + code/tools/lcc/x86/linux/tst/array.1bk | 4 + code/tools/lcc/x86/linux/tst/array.2bk | 2 + code/tools/lcc/x86/linux/tst/array.sbk | 235 + code/tools/lcc/x86/linux/tst/cf.1bk | 51 + code/tools/lcc/x86/linux/tst/cf.2bk | 0 code/tools/lcc/x86/linux/tst/cf.sbk | 161 + code/tools/lcc/x86/linux/tst/cq.1bk | 48 + code/tools/lcc/x86/linux/tst/cq.2bk | 25 + code/tools/lcc/x86/linux/tst/cq.sbk | 15756 ++++++++++++++++++ code/tools/lcc/x86/linux/tst/cvt.1bk | 11 + code/tools/lcc/x86/linux/tst/cvt.2bk | 2 + code/tools/lcc/x86/linux/tst/cvt.sbk | 792 + code/tools/lcc/x86/linux/tst/fields.1bk | 5 + code/tools/lcc/x86/linux/tst/fields.2bk | 4 + code/tools/lcc/x86/linux/tst/fields.sbk | 321 + code/tools/lcc/x86/linux/tst/front.2bk | 29 + code/tools/lcc/x86/linux/tst/front.sbk | 530 + code/tools/lcc/x86/linux/tst/incr.1bk | 0 code/tools/lcc/x86/linux/tst/incr.2bk | 9 + code/tools/lcc/x86/linux/tst/incr.sbk | 181 + code/tools/lcc/x86/linux/tst/init.1bk | 16 + code/tools/lcc/x86/linux/tst/init.2bk | 3 + code/tools/lcc/x86/linux/tst/init.sbk | 336 + code/tools/lcc/x86/linux/tst/limits.1bk | 14 + code/tools/lcc/x86/linux/tst/limits.2bk | 0 code/tools/lcc/x86/linux/tst/limits.sbk | 396 + code/tools/lcc/x86/linux/tst/paranoia.1bk | 183 + code/tools/lcc/x86/linux/tst/paranoia.2bk | 16 + code/tools/lcc/x86/linux/tst/paranoia.sbk | 20248 +++++++++++++++++++++++ code/tools/lcc/x86/linux/tst/sort.1bk | 20 + code/tools/lcc/x86/linux/tst/sort.2bk | 5 + code/tools/lcc/x86/linux/tst/sort.sbk | 330 + code/tools/lcc/x86/linux/tst/spill.1bk | 0 code/tools/lcc/x86/linux/tst/spill.2bk | 6 + code/tools/lcc/x86/linux/tst/spill.sbk | 282 + code/tools/lcc/x86/linux/tst/stdarg.1bk | 6 + code/tools/lcc/x86/linux/tst/stdarg.2bk | 1 + code/tools/lcc/x86/linux/tst/stdarg.sbk | 395 + code/tools/lcc/x86/linux/tst/struct.1bk | 5 + code/tools/lcc/x86/linux/tst/struct.2bk | 2 + code/tools/lcc/x86/linux/tst/struct.sbk | 477 + code/tools/lcc/x86/linux/tst/switch.1bk | 76 + code/tools/lcc/x86/linux/tst/switch.2bk | 5 + code/tools/lcc/x86/linux/tst/switch.sbk | 899 + code/tools/lcc/x86/linux/tst/wf1.1bk | 74 + code/tools/lcc/x86/linux/tst/wf1.2bk | 2 + code/tools/lcc/x86/linux/tst/wf1.sbk | 437 + code/tools/lcc/x86/linux/tst/yacc.1bk | 10 + code/tools/lcc/x86/linux/tst/yacc.2bk | 3 + code/tools/lcc/x86/linux/tst/yacc.sbk | 2526 +++ code/tools/lcc/x86/win32/tst/8q.1bk | 92 + code/tools/lcc/x86/win32/tst/8q.2bk | 2 + code/tools/lcc/x86/win32/tst/8q.sbk | 176 + code/tools/lcc/x86/win32/tst/array.1bk | 4 + code/tools/lcc/x86/win32/tst/array.2bk | 2 + code/tools/lcc/x86/win32/tst/array.sbk | 240 + code/tools/lcc/x86/win32/tst/cf.1bk | 51 + code/tools/lcc/x86/win32/tst/cf.2bk | 0 code/tools/lcc/x86/win32/tst/cf.sbk | 185 + code/tools/lcc/x86/win32/tst/cq.1bk | 48 + code/tools/lcc/x86/win32/tst/cq.2bk | 25 + code/tools/lcc/x86/win32/tst/cq.sbk | 16642 +++++++++++++++++++ code/tools/lcc/x86/win32/tst/cvt.1bk | 11 + code/tools/lcc/x86/win32/tst/cvt.2bk | 2 + code/tools/lcc/x86/win32/tst/cvt.sbk | 742 + code/tools/lcc/x86/win32/tst/fields.1bk | 5 + code/tools/lcc/x86/win32/tst/fields.2bk | 4 + code/tools/lcc/x86/win32/tst/fields.sbk | 323 + code/tools/lcc/x86/win32/tst/front.2bk | 29 + code/tools/lcc/x86/win32/tst/front.sbk | 436 + code/tools/lcc/x86/win32/tst/incr.1bk | 0 code/tools/lcc/x86/win32/tst/incr.2bk | 9 + code/tools/lcc/x86/win32/tst/incr.sbk | 166 + code/tools/lcc/x86/win32/tst/init.1bk | 16 + code/tools/lcc/x86/win32/tst/init.2bk | 3 + code/tools/lcc/x86/win32/tst/init.sbk | 336 + code/tools/lcc/x86/win32/tst/limits.1bk | 14 + code/tools/lcc/x86/win32/tst/limits.2bk | 0 code/tools/lcc/x86/win32/tst/limits.sbk | 414 + code/tools/lcc/x86/win32/tst/paranoia.1bk | 179 + code/tools/lcc/x86/win32/tst/paranoia.2bk | 16 + code/tools/lcc/x86/win32/tst/paranoia.sbk | 20480 +++++++++++++++++++++++ code/tools/lcc/x86/win32/tst/sort.1bk | 20 + code/tools/lcc/x86/win32/tst/sort.2bk | 5 + code/tools/lcc/x86/win32/tst/sort.sbk | 324 + code/tools/lcc/x86/win32/tst/spill.1bk | 0 code/tools/lcc/x86/win32/tst/spill.2bk | 6 + code/tools/lcc/x86/win32/tst/spill.sbk | 259 + code/tools/lcc/x86/win32/tst/stdarg.1bk | 6 + code/tools/lcc/x86/win32/tst/stdarg.2bk | 1 + code/tools/lcc/x86/win32/tst/stdarg.sbk | 415 + code/tools/lcc/x86/win32/tst/struct.1bk | 5 + code/tools/lcc/x86/win32/tst/struct.2bk | 2 + code/tools/lcc/x86/win32/tst/struct.sbk | 453 + code/tools/lcc/x86/win32/tst/switch.1bk | 76 + code/tools/lcc/x86/win32/tst/switch.2bk | 5 + code/tools/lcc/x86/win32/tst/switch.sbk | 960 ++ code/tools/lcc/x86/win32/tst/wf1.1bk | 74 + code/tools/lcc/x86/win32/tst/wf1.2bk | 2 + code/tools/lcc/x86/win32/tst/wf1.sbk | 451 + code/tools/lcc/x86/win32/tst/yacc.1bk | 10 + code/tools/lcc/x86/win32/tst/yacc.2bk | 3 + code/tools/lcc/x86/win32/tst/yacc.sbk | 2489 +++ code/tools/q3asm/Makefile | 13 + code/tools/q3asm/README.Id | 10 + code/tools/q3asm/cmdlib.c | 1223 ++ code/tools/q3asm/cmdlib.h | 160 + code/tools/q3asm/lib.txt | 31 + code/tools/q3asm/mathlib.h | 94 + code/tools/q3asm/notes.txt | 16 + code/tools/q3asm/ops.txt | 132 + code/tools/q3asm/opstrings.h | 175 + code/tools/q3asm/q3asm.c | 1047 ++ code/tools/q3asm/q3asm.sln | 28 + code/tools/q3asm/q3asm.vcproj | 195 + code/tools/q3asm/qfiles.h | 485 + 452 files changed, 263286 insertions(+) create mode 100644 code/tools/lcc/COPYRIGHT create mode 100644 code/tools/lcc/LOG create mode 100644 code/tools/lcc/README create mode 100644 code/tools/lcc/README.id create mode 100644 code/tools/lcc/alpha/osf/tst/8q.1bk create mode 100644 code/tools/lcc/alpha/osf/tst/8q.2bk create mode 100644 code/tools/lcc/alpha/osf/tst/8q.sbk create mode 100644 code/tools/lcc/alpha/osf/tst/array.1bk create mode 100644 code/tools/lcc/alpha/osf/tst/array.2bk create mode 100644 code/tools/lcc/alpha/osf/tst/array.sbk create mode 100644 code/tools/lcc/alpha/osf/tst/cf.1bk create mode 100644 code/tools/lcc/alpha/osf/tst/cf.2bk create mode 100644 code/tools/lcc/alpha/osf/tst/cf.sbk create mode 100644 code/tools/lcc/alpha/osf/tst/cq.1bk create mode 100644 code/tools/lcc/alpha/osf/tst/cq.2bk create mode 100644 code/tools/lcc/alpha/osf/tst/cq.sbk create mode 100644 code/tools/lcc/alpha/osf/tst/cvt.1bk create mode 100644 code/tools/lcc/alpha/osf/tst/cvt.2bk create mode 100644 code/tools/lcc/alpha/osf/tst/cvt.sbk create mode 100644 code/tools/lcc/alpha/osf/tst/fields.1bk create mode 100644 code/tools/lcc/alpha/osf/tst/fields.2bk create mode 100644 code/tools/lcc/alpha/osf/tst/fields.sbk create mode 100644 code/tools/lcc/alpha/osf/tst/front.2bk create mode 100644 code/tools/lcc/alpha/osf/tst/front.sbk create mode 100644 code/tools/lcc/alpha/osf/tst/incr.1bk create mode 100644 code/tools/lcc/alpha/osf/tst/incr.2bk create mode 100644 code/tools/lcc/alpha/osf/tst/incr.sbk create mode 100644 code/tools/lcc/alpha/osf/tst/init.1bk create mode 100644 code/tools/lcc/alpha/osf/tst/init.2bk create mode 100644 code/tools/lcc/alpha/osf/tst/init.sbk create mode 100644 code/tools/lcc/alpha/osf/tst/limits.1bk create mode 100644 code/tools/lcc/alpha/osf/tst/limits.2bk create mode 100644 code/tools/lcc/alpha/osf/tst/limits.sbk create mode 100644 code/tools/lcc/alpha/osf/tst/paranoia.1bk create mode 100644 code/tools/lcc/alpha/osf/tst/paranoia.2bk create mode 100644 code/tools/lcc/alpha/osf/tst/paranoia.sbk create mode 100644 code/tools/lcc/alpha/osf/tst/sort.1bk create mode 100644 code/tools/lcc/alpha/osf/tst/sort.2bk create mode 100644 code/tools/lcc/alpha/osf/tst/sort.sbk create mode 100644 code/tools/lcc/alpha/osf/tst/spill.1bk create mode 100644 code/tools/lcc/alpha/osf/tst/spill.2bk create mode 100644 code/tools/lcc/alpha/osf/tst/spill.sbk create mode 100644 code/tools/lcc/alpha/osf/tst/stdarg.1bk create mode 100644 code/tools/lcc/alpha/osf/tst/stdarg.2bk create mode 100644 code/tools/lcc/alpha/osf/tst/stdarg.sbk create mode 100644 code/tools/lcc/alpha/osf/tst/struct.1bk create mode 100644 code/tools/lcc/alpha/osf/tst/struct.2bk create mode 100644 code/tools/lcc/alpha/osf/tst/struct.sbk create mode 100644 code/tools/lcc/alpha/osf/tst/switch.1bk create mode 100644 code/tools/lcc/alpha/osf/tst/switch.2bk create mode 100644 code/tools/lcc/alpha/osf/tst/switch.sbk create mode 100644 code/tools/lcc/alpha/osf/tst/wf1.1bk create mode 100644 code/tools/lcc/alpha/osf/tst/wf1.2bk create mode 100644 code/tools/lcc/alpha/osf/tst/wf1.sbk create mode 100644 code/tools/lcc/alpha/osf/tst/yacc.1bk create mode 100644 code/tools/lcc/alpha/osf/tst/yacc.2bk create mode 100644 code/tools/lcc/alpha/osf/tst/yacc.sbk create mode 100644 code/tools/lcc/bin/lcc.exe create mode 100644 code/tools/lcc/bin/q3cpp.exe create mode 100644 code/tools/lcc/bin/q3rcc.exe create mode 100644 code/tools/lcc/buildnt.bat create mode 100644 code/tools/lcc/buildnt.sh create mode 100644 code/tools/lcc/cpp/cpp.c create mode 100644 code/tools/lcc/cpp/cpp.h create mode 100644 code/tools/lcc/cpp/eval.c create mode 100644 code/tools/lcc/cpp/getopt.c create mode 100644 code/tools/lcc/cpp/hideset.c create mode 100644 code/tools/lcc/cpp/include.c create mode 100644 code/tools/lcc/cpp/lex.c create mode 100644 code/tools/lcc/cpp/macro.c create mode 100644 code/tools/lcc/cpp/nlist.c create mode 100644 code/tools/lcc/cpp/tokens.c create mode 100644 code/tools/lcc/cpp/unix.c create mode 100644 code/tools/lcc/doc/4.html create mode 100644 code/tools/lcc/doc/bprint.1 create mode 100644 code/tools/lcc/doc/bprint.pdf create mode 100644 code/tools/lcc/doc/install.html create mode 100644 code/tools/lcc/doc/lcc.1 create mode 100644 code/tools/lcc/doc/lcc.pdf create mode 100644 code/tools/lcc/etc/bprint.c create mode 100644 code/tools/lcc/etc/gcc-solaris.c create mode 100644 code/tools/lcc/etc/irix.c create mode 100644 code/tools/lcc/etc/lcc.c create mode 100644 code/tools/lcc/etc/linux.c create mode 100644 code/tools/lcc/etc/ops.c create mode 100644 code/tools/lcc/etc/osf.c create mode 100644 code/tools/lcc/etc/solaris.c create mode 100644 code/tools/lcc/etc/win32.c create mode 100644 code/tools/lcc/include/alpha/osf/assert.h create mode 100644 code/tools/lcc/include/alpha/osf/ctype.h create mode 100644 code/tools/lcc/include/alpha/osf/errno.h create mode 100644 code/tools/lcc/include/alpha/osf/float.h create mode 100644 code/tools/lcc/include/alpha/osf/limits.h create mode 100644 code/tools/lcc/include/alpha/osf/locale.h create mode 100644 code/tools/lcc/include/alpha/osf/math.h create mode 100644 code/tools/lcc/include/alpha/osf/setjmp.h create mode 100644 code/tools/lcc/include/alpha/osf/signal.h create mode 100644 code/tools/lcc/include/alpha/osf/stdarg.h create mode 100644 code/tools/lcc/include/alpha/osf/stddef.h create mode 100644 code/tools/lcc/include/alpha/osf/stdio.h create mode 100644 code/tools/lcc/include/alpha/osf/stdlib.h create mode 100644 code/tools/lcc/include/alpha/osf/string.h create mode 100644 code/tools/lcc/include/alpha/osf/time.h create mode 100644 code/tools/lcc/include/mips/irix/assert.h create mode 100644 code/tools/lcc/include/mips/irix/ctype.h create mode 100644 code/tools/lcc/include/mips/irix/errno.h create mode 100644 code/tools/lcc/include/mips/irix/float.h create mode 100644 code/tools/lcc/include/mips/irix/limits.h create mode 100644 code/tools/lcc/include/mips/irix/locale.h create mode 100644 code/tools/lcc/include/mips/irix/math.h create mode 100644 code/tools/lcc/include/mips/irix/setjmp.h create mode 100644 code/tools/lcc/include/mips/irix/signal.h create mode 100644 code/tools/lcc/include/mips/irix/stdarg.h create mode 100644 code/tools/lcc/include/mips/irix/stddef.h create mode 100644 code/tools/lcc/include/mips/irix/stdio.h create mode 100644 code/tools/lcc/include/mips/irix/stdlib.h create mode 100644 code/tools/lcc/include/mips/irix/string.h create mode 100644 code/tools/lcc/include/mips/irix/time.h create mode 100644 code/tools/lcc/include/sparc/solaris/assert.h create mode 100644 code/tools/lcc/include/sparc/solaris/ctype.h create mode 100644 code/tools/lcc/include/sparc/solaris/errno.h create mode 100644 code/tools/lcc/include/sparc/solaris/float.h create mode 100644 code/tools/lcc/include/sparc/solaris/limits.h create mode 100644 code/tools/lcc/include/sparc/solaris/locale.h create mode 100644 code/tools/lcc/include/sparc/solaris/math.h create mode 100644 code/tools/lcc/include/sparc/solaris/setjmp.h create mode 100644 code/tools/lcc/include/sparc/solaris/signal.h create mode 100644 code/tools/lcc/include/sparc/solaris/stdarg.h create mode 100644 code/tools/lcc/include/sparc/solaris/stddef.h create mode 100644 code/tools/lcc/include/sparc/solaris/stdio.h create mode 100644 code/tools/lcc/include/sparc/solaris/stdlib.h create mode 100644 code/tools/lcc/include/sparc/solaris/string.h create mode 100644 code/tools/lcc/include/sparc/solaris/time.h create mode 100644 code/tools/lcc/include/x86/linux/assert.h create mode 100644 code/tools/lcc/include/x86/linux/float.h create mode 100644 code/tools/lcc/include/x86/linux/stdarg.h create mode 100644 code/tools/lcc/lburg/gram.c create mode 100644 code/tools/lcc/lburg/gram.y create mode 100644 code/tools/lcc/lburg/lburg.1 create mode 100644 code/tools/lcc/lburg/lburg.c create mode 100644 code/tools/lcc/lburg/lburg.h create mode 100644 code/tools/lcc/lib/assert.c create mode 100644 code/tools/lcc/lib/bbexit.c create mode 100644 code/tools/lcc/lib/yynull.c create mode 100644 code/tools/lcc/makefile create mode 100644 code/tools/lcc/makefile.nt create mode 100644 code/tools/lcc/mips/irix/tst/8q.1bk create mode 100644 code/tools/lcc/mips/irix/tst/8q.2bk create mode 100644 code/tools/lcc/mips/irix/tst/8q.sbk create mode 100644 code/tools/lcc/mips/irix/tst/array.1bk create mode 100644 code/tools/lcc/mips/irix/tst/array.2bk create mode 100644 code/tools/lcc/mips/irix/tst/array.sbk create mode 100644 code/tools/lcc/mips/irix/tst/cf.1bk create mode 100644 code/tools/lcc/mips/irix/tst/cf.2bk create mode 100644 code/tools/lcc/mips/irix/tst/cf.sbk create mode 100644 code/tools/lcc/mips/irix/tst/cq.1bk create mode 100644 code/tools/lcc/mips/irix/tst/cq.2bk create mode 100644 code/tools/lcc/mips/irix/tst/cq.sbk create mode 100644 code/tools/lcc/mips/irix/tst/cvt.1bk create mode 100644 code/tools/lcc/mips/irix/tst/cvt.2bk create mode 100644 code/tools/lcc/mips/irix/tst/cvt.sbk create mode 100644 code/tools/lcc/mips/irix/tst/fields.1bk create mode 100644 code/tools/lcc/mips/irix/tst/fields.2bk create mode 100644 code/tools/lcc/mips/irix/tst/fields.sbk create mode 100644 code/tools/lcc/mips/irix/tst/front.2bk create mode 100644 code/tools/lcc/mips/irix/tst/front.sbk create mode 100644 code/tools/lcc/mips/irix/tst/incr.2bk create mode 100644 code/tools/lcc/mips/irix/tst/incr.sbk create mode 100644 code/tools/lcc/mips/irix/tst/init.1bk create mode 100644 code/tools/lcc/mips/irix/tst/init.2bk create mode 100644 code/tools/lcc/mips/irix/tst/init.sbk create mode 100644 code/tools/lcc/mips/irix/tst/limits.1bk create mode 100644 code/tools/lcc/mips/irix/tst/limits.2bk create mode 100644 code/tools/lcc/mips/irix/tst/limits.sbk create mode 100644 code/tools/lcc/mips/irix/tst/paranoia.1bk create mode 100644 code/tools/lcc/mips/irix/tst/paranoia.2bk create mode 100644 code/tools/lcc/mips/irix/tst/paranoia.sbk create mode 100644 code/tools/lcc/mips/irix/tst/sort.1bk create mode 100644 code/tools/lcc/mips/irix/tst/sort.2bk create mode 100644 code/tools/lcc/mips/irix/tst/sort.sbk create mode 100644 code/tools/lcc/mips/irix/tst/spill.2bk create mode 100644 code/tools/lcc/mips/irix/tst/spill.sbk create mode 100644 code/tools/lcc/mips/irix/tst/stdarg.1bk create mode 100644 code/tools/lcc/mips/irix/tst/stdarg.2bk create mode 100644 code/tools/lcc/mips/irix/tst/stdarg.sbk create mode 100644 code/tools/lcc/mips/irix/tst/struct.1bk create mode 100644 code/tools/lcc/mips/irix/tst/struct.2bk create mode 100644 code/tools/lcc/mips/irix/tst/struct.sbk create mode 100644 code/tools/lcc/mips/irix/tst/switch.1bk create mode 100644 code/tools/lcc/mips/irix/tst/switch.2bk create mode 100644 code/tools/lcc/mips/irix/tst/switch.sbk create mode 100644 code/tools/lcc/mips/irix/tst/wf1.1bk create mode 100644 code/tools/lcc/mips/irix/tst/wf1.2bk create mode 100644 code/tools/lcc/mips/irix/tst/wf1.sbk create mode 100644 code/tools/lcc/mips/irix/tst/yacc.1bk create mode 100644 code/tools/lcc/mips/irix/tst/yacc.2bk create mode 100644 code/tools/lcc/mips/irix/tst/yacc.sbk create mode 100644 code/tools/lcc/msdev/rcc.dsp create mode 100644 code/tools/lcc/msdev/rcc.dsw create mode 100644 code/tools/lcc/packing.lst create mode 100644 code/tools/lcc/sparc/solaris/tst/8q.1bk create mode 100644 code/tools/lcc/sparc/solaris/tst/8q.2bk create mode 100644 code/tools/lcc/sparc/solaris/tst/8q.sbk create mode 100644 code/tools/lcc/sparc/solaris/tst/array.1bk create mode 100644 code/tools/lcc/sparc/solaris/tst/array.2bk create mode 100644 code/tools/lcc/sparc/solaris/tst/array.sbk create mode 100644 code/tools/lcc/sparc/solaris/tst/cf.1bk create mode 100644 code/tools/lcc/sparc/solaris/tst/cf.2bk create mode 100644 code/tools/lcc/sparc/solaris/tst/cf.sbk create mode 100644 code/tools/lcc/sparc/solaris/tst/cq.1bk create mode 100644 code/tools/lcc/sparc/solaris/tst/cq.2bk create mode 100644 code/tools/lcc/sparc/solaris/tst/cq.sbk create mode 100644 code/tools/lcc/sparc/solaris/tst/cvt.1bk create mode 100644 code/tools/lcc/sparc/solaris/tst/cvt.2bk create mode 100644 code/tools/lcc/sparc/solaris/tst/cvt.sbk create mode 100644 code/tools/lcc/sparc/solaris/tst/fields.1bk create mode 100644 code/tools/lcc/sparc/solaris/tst/fields.2bk create mode 100644 code/tools/lcc/sparc/solaris/tst/fields.sbk create mode 100644 code/tools/lcc/sparc/solaris/tst/front.2bk create mode 100644 code/tools/lcc/sparc/solaris/tst/front.sbk create mode 100644 code/tools/lcc/sparc/solaris/tst/incr.1bk create mode 100644 code/tools/lcc/sparc/solaris/tst/incr.2bk create mode 100644 code/tools/lcc/sparc/solaris/tst/incr.sbk create mode 100644 code/tools/lcc/sparc/solaris/tst/init.1bk create mode 100644 code/tools/lcc/sparc/solaris/tst/init.2bk create mode 100644 code/tools/lcc/sparc/solaris/tst/init.sbk create mode 100644 code/tools/lcc/sparc/solaris/tst/limits.1bk create mode 100644 code/tools/lcc/sparc/solaris/tst/limits.2bk create mode 100644 code/tools/lcc/sparc/solaris/tst/limits.sbk create mode 100644 code/tools/lcc/sparc/solaris/tst/paranoia.1bk create mode 100644 code/tools/lcc/sparc/solaris/tst/paranoia.2bk create mode 100644 code/tools/lcc/sparc/solaris/tst/paranoia.sbk create mode 100644 code/tools/lcc/sparc/solaris/tst/sort.1bk create mode 100644 code/tools/lcc/sparc/solaris/tst/sort.2bk create mode 100644 code/tools/lcc/sparc/solaris/tst/sort.sbk create mode 100644 code/tools/lcc/sparc/solaris/tst/spill.1bk create mode 100644 code/tools/lcc/sparc/solaris/tst/spill.2bk create mode 100644 code/tools/lcc/sparc/solaris/tst/spill.sbk create mode 100644 code/tools/lcc/sparc/solaris/tst/stdarg.1bk create mode 100644 code/tools/lcc/sparc/solaris/tst/stdarg.2bk create mode 100644 code/tools/lcc/sparc/solaris/tst/stdarg.sbk create mode 100644 code/tools/lcc/sparc/solaris/tst/struct.1bk create mode 100644 code/tools/lcc/sparc/solaris/tst/struct.2bk create mode 100644 code/tools/lcc/sparc/solaris/tst/struct.sbk create mode 100644 code/tools/lcc/sparc/solaris/tst/switch.1bk create mode 100644 code/tools/lcc/sparc/solaris/tst/switch.2bk create mode 100644 code/tools/lcc/sparc/solaris/tst/switch.sbk create mode 100644 code/tools/lcc/sparc/solaris/tst/wf1.1bk create mode 100644 code/tools/lcc/sparc/solaris/tst/wf1.2bk create mode 100644 code/tools/lcc/sparc/solaris/tst/wf1.sbk create mode 100644 code/tools/lcc/sparc/solaris/tst/yacc.1bk create mode 100644 code/tools/lcc/sparc/solaris/tst/yacc.2bk create mode 100644 code/tools/lcc/sparc/solaris/tst/yacc.sbk create mode 100644 code/tools/lcc/src/2html.c create mode 100644 code/tools/lcc/src/alloc.c create mode 100644 code/tools/lcc/src/alpha.md create mode 100644 code/tools/lcc/src/asdl.c create mode 100644 code/tools/lcc/src/bind.c create mode 100644 code/tools/lcc/src/bytecode.c create mode 100644 code/tools/lcc/src/c.h create mode 100644 code/tools/lcc/src/config.h create mode 100644 code/tools/lcc/src/dag.c create mode 100644 code/tools/lcc/src/dagcheck.md create mode 100644 code/tools/lcc/src/decl.c create mode 100644 code/tools/lcc/src/enode.c create mode 100644 code/tools/lcc/src/error.c create mode 100644 code/tools/lcc/src/event.c create mode 100644 code/tools/lcc/src/expr.c create mode 100644 code/tools/lcc/src/gen.c create mode 100644 code/tools/lcc/src/init.c create mode 100644 code/tools/lcc/src/inits.c create mode 100644 code/tools/lcc/src/input.c create mode 100644 code/tools/lcc/src/lex.c create mode 100644 code/tools/lcc/src/list.c create mode 100644 code/tools/lcc/src/main.c create mode 100644 code/tools/lcc/src/mips.md create mode 100644 code/tools/lcc/src/null.c create mode 100644 code/tools/lcc/src/output.c create mode 100644 code/tools/lcc/src/pass2.c create mode 100644 code/tools/lcc/src/prof.c create mode 100644 code/tools/lcc/src/profio.c create mode 100644 code/tools/lcc/src/rcc.asdl create mode 100644 code/tools/lcc/src/run.sh create mode 100644 code/tools/lcc/src/simp.c create mode 100644 code/tools/lcc/src/sparc.md create mode 100644 code/tools/lcc/src/stab.c create mode 100644 code/tools/lcc/src/stab.h create mode 100644 code/tools/lcc/src/stmt.c create mode 100644 code/tools/lcc/src/string.c create mode 100644 code/tools/lcc/src/sym.c create mode 100644 code/tools/lcc/src/symbolic.c create mode 100644 code/tools/lcc/src/token.h create mode 100644 code/tools/lcc/src/trace.c create mode 100644 code/tools/lcc/src/tree.c create mode 100644 code/tools/lcc/src/types.c create mode 100644 code/tools/lcc/src/x86.md create mode 100644 code/tools/lcc/src/x86linux.md create mode 100644 code/tools/lcc/tst/8q.0 create mode 100644 code/tools/lcc/tst/8q.c create mode 100644 code/tools/lcc/tst/array.0 create mode 100644 code/tools/lcc/tst/array.c create mode 100644 code/tools/lcc/tst/cf.0 create mode 100644 code/tools/lcc/tst/cf.c create mode 100644 code/tools/lcc/tst/cq.0 create mode 100644 code/tools/lcc/tst/cq.c create mode 100644 code/tools/lcc/tst/cvt.0 create mode 100644 code/tools/lcc/tst/cvt.c create mode 100644 code/tools/lcc/tst/fields.0 create mode 100644 code/tools/lcc/tst/fields.c create mode 100644 code/tools/lcc/tst/front.0 create mode 100644 code/tools/lcc/tst/front.c create mode 100644 code/tools/lcc/tst/incr.0 create mode 100644 code/tools/lcc/tst/incr.c create mode 100644 code/tools/lcc/tst/init.0 create mode 100644 code/tools/lcc/tst/init.c create mode 100644 code/tools/lcc/tst/limits.0 create mode 100644 code/tools/lcc/tst/limits.c create mode 100644 code/tools/lcc/tst/paranoia.0 create mode 100644 code/tools/lcc/tst/paranoia.c create mode 100644 code/tools/lcc/tst/sort.0 create mode 100644 code/tools/lcc/tst/sort.c create mode 100644 code/tools/lcc/tst/spill.0 create mode 100644 code/tools/lcc/tst/spill.c create mode 100644 code/tools/lcc/tst/stdarg.0 create mode 100644 code/tools/lcc/tst/stdarg.c create mode 100644 code/tools/lcc/tst/struct.0 create mode 100644 code/tools/lcc/tst/struct.c create mode 100644 code/tools/lcc/tst/switch.0 create mode 100644 code/tools/lcc/tst/switch.c create mode 100644 code/tools/lcc/tst/wf1.0 create mode 100644 code/tools/lcc/tst/wf1.c create mode 100644 code/tools/lcc/tst/yacc.0 create mode 100644 code/tools/lcc/tst/yacc.c create mode 100644 code/tools/lcc/x86/linux/tst/8q.1bk create mode 100644 code/tools/lcc/x86/linux/tst/8q.2bk create mode 100644 code/tools/lcc/x86/linux/tst/8q.sbk create mode 100644 code/tools/lcc/x86/linux/tst/array.1bk create mode 100644 code/tools/lcc/x86/linux/tst/array.2bk create mode 100644 code/tools/lcc/x86/linux/tst/array.sbk create mode 100644 code/tools/lcc/x86/linux/tst/cf.1bk create mode 100644 code/tools/lcc/x86/linux/tst/cf.2bk create mode 100644 code/tools/lcc/x86/linux/tst/cf.sbk create mode 100644 code/tools/lcc/x86/linux/tst/cq.1bk create mode 100644 code/tools/lcc/x86/linux/tst/cq.2bk create mode 100644 code/tools/lcc/x86/linux/tst/cq.sbk create mode 100644 code/tools/lcc/x86/linux/tst/cvt.1bk create mode 100644 code/tools/lcc/x86/linux/tst/cvt.2bk create mode 100644 code/tools/lcc/x86/linux/tst/cvt.sbk create mode 100644 code/tools/lcc/x86/linux/tst/fields.1bk create mode 100644 code/tools/lcc/x86/linux/tst/fields.2bk create mode 100644 code/tools/lcc/x86/linux/tst/fields.sbk create mode 100644 code/tools/lcc/x86/linux/tst/front.2bk create mode 100644 code/tools/lcc/x86/linux/tst/front.sbk create mode 100644 code/tools/lcc/x86/linux/tst/incr.1bk create mode 100644 code/tools/lcc/x86/linux/tst/incr.2bk create mode 100644 code/tools/lcc/x86/linux/tst/incr.sbk create mode 100644 code/tools/lcc/x86/linux/tst/init.1bk create mode 100644 code/tools/lcc/x86/linux/tst/init.2bk create mode 100644 code/tools/lcc/x86/linux/tst/init.sbk create mode 100644 code/tools/lcc/x86/linux/tst/limits.1bk create mode 100644 code/tools/lcc/x86/linux/tst/limits.2bk create mode 100644 code/tools/lcc/x86/linux/tst/limits.sbk create mode 100644 code/tools/lcc/x86/linux/tst/paranoia.1bk create mode 100644 code/tools/lcc/x86/linux/tst/paranoia.2bk create mode 100644 code/tools/lcc/x86/linux/tst/paranoia.sbk create mode 100644 code/tools/lcc/x86/linux/tst/sort.1bk create mode 100644 code/tools/lcc/x86/linux/tst/sort.2bk create mode 100644 code/tools/lcc/x86/linux/tst/sort.sbk create mode 100644 code/tools/lcc/x86/linux/tst/spill.1bk create mode 100644 code/tools/lcc/x86/linux/tst/spill.2bk create mode 100644 code/tools/lcc/x86/linux/tst/spill.sbk create mode 100644 code/tools/lcc/x86/linux/tst/stdarg.1bk create mode 100644 code/tools/lcc/x86/linux/tst/stdarg.2bk create mode 100644 code/tools/lcc/x86/linux/tst/stdarg.sbk create mode 100644 code/tools/lcc/x86/linux/tst/struct.1bk create mode 100644 code/tools/lcc/x86/linux/tst/struct.2bk create mode 100644 code/tools/lcc/x86/linux/tst/struct.sbk create mode 100644 code/tools/lcc/x86/linux/tst/switch.1bk create mode 100644 code/tools/lcc/x86/linux/tst/switch.2bk create mode 100644 code/tools/lcc/x86/linux/tst/switch.sbk create mode 100644 code/tools/lcc/x86/linux/tst/wf1.1bk create mode 100644 code/tools/lcc/x86/linux/tst/wf1.2bk create mode 100644 code/tools/lcc/x86/linux/tst/wf1.sbk create mode 100644 code/tools/lcc/x86/linux/tst/yacc.1bk create mode 100644 code/tools/lcc/x86/linux/tst/yacc.2bk create mode 100644 code/tools/lcc/x86/linux/tst/yacc.sbk create mode 100644 code/tools/lcc/x86/win32/tst/8q.1bk create mode 100644 code/tools/lcc/x86/win32/tst/8q.2bk create mode 100644 code/tools/lcc/x86/win32/tst/8q.sbk create mode 100644 code/tools/lcc/x86/win32/tst/array.1bk create mode 100644 code/tools/lcc/x86/win32/tst/array.2bk create mode 100644 code/tools/lcc/x86/win32/tst/array.sbk create mode 100644 code/tools/lcc/x86/win32/tst/cf.1bk create mode 100644 code/tools/lcc/x86/win32/tst/cf.2bk create mode 100644 code/tools/lcc/x86/win32/tst/cf.sbk create mode 100644 code/tools/lcc/x86/win32/tst/cq.1bk create mode 100644 code/tools/lcc/x86/win32/tst/cq.2bk create mode 100644 code/tools/lcc/x86/win32/tst/cq.sbk create mode 100644 code/tools/lcc/x86/win32/tst/cvt.1bk create mode 100644 code/tools/lcc/x86/win32/tst/cvt.2bk create mode 100644 code/tools/lcc/x86/win32/tst/cvt.sbk create mode 100644 code/tools/lcc/x86/win32/tst/fields.1bk create mode 100644 code/tools/lcc/x86/win32/tst/fields.2bk create mode 100644 code/tools/lcc/x86/win32/tst/fields.sbk create mode 100644 code/tools/lcc/x86/win32/tst/front.2bk create mode 100644 code/tools/lcc/x86/win32/tst/front.sbk create mode 100644 code/tools/lcc/x86/win32/tst/incr.1bk create mode 100644 code/tools/lcc/x86/win32/tst/incr.2bk create mode 100644 code/tools/lcc/x86/win32/tst/incr.sbk create mode 100644 code/tools/lcc/x86/win32/tst/init.1bk create mode 100644 code/tools/lcc/x86/win32/tst/init.2bk create mode 100644 code/tools/lcc/x86/win32/tst/init.sbk create mode 100644 code/tools/lcc/x86/win32/tst/limits.1bk create mode 100644 code/tools/lcc/x86/win32/tst/limits.2bk create mode 100644 code/tools/lcc/x86/win32/tst/limits.sbk create mode 100644 code/tools/lcc/x86/win32/tst/paranoia.1bk create mode 100644 code/tools/lcc/x86/win32/tst/paranoia.2bk create mode 100644 code/tools/lcc/x86/win32/tst/paranoia.sbk create mode 100644 code/tools/lcc/x86/win32/tst/sort.1bk create mode 100644 code/tools/lcc/x86/win32/tst/sort.2bk create mode 100644 code/tools/lcc/x86/win32/tst/sort.sbk create mode 100644 code/tools/lcc/x86/win32/tst/spill.1bk create mode 100644 code/tools/lcc/x86/win32/tst/spill.2bk create mode 100644 code/tools/lcc/x86/win32/tst/spill.sbk create mode 100644 code/tools/lcc/x86/win32/tst/stdarg.1bk create mode 100644 code/tools/lcc/x86/win32/tst/stdarg.2bk create mode 100644 code/tools/lcc/x86/win32/tst/stdarg.sbk create mode 100644 code/tools/lcc/x86/win32/tst/struct.1bk create mode 100644 code/tools/lcc/x86/win32/tst/struct.2bk create mode 100644 code/tools/lcc/x86/win32/tst/struct.sbk create mode 100644 code/tools/lcc/x86/win32/tst/switch.1bk create mode 100644 code/tools/lcc/x86/win32/tst/switch.2bk create mode 100644 code/tools/lcc/x86/win32/tst/switch.sbk create mode 100644 code/tools/lcc/x86/win32/tst/wf1.1bk create mode 100644 code/tools/lcc/x86/win32/tst/wf1.2bk create mode 100644 code/tools/lcc/x86/win32/tst/wf1.sbk create mode 100644 code/tools/lcc/x86/win32/tst/yacc.1bk create mode 100644 code/tools/lcc/x86/win32/tst/yacc.2bk create mode 100644 code/tools/lcc/x86/win32/tst/yacc.sbk create mode 100644 code/tools/q3asm/Makefile create mode 100644 code/tools/q3asm/README.Id create mode 100644 code/tools/q3asm/cmdlib.c create mode 100644 code/tools/q3asm/cmdlib.h create mode 100644 code/tools/q3asm/lib.txt create mode 100644 code/tools/q3asm/mathlib.h create mode 100644 code/tools/q3asm/notes.txt create mode 100644 code/tools/q3asm/ops.txt create mode 100644 code/tools/q3asm/opstrings.h create mode 100644 code/tools/q3asm/q3asm.c create mode 100644 code/tools/q3asm/q3asm.sln create mode 100644 code/tools/q3asm/q3asm.vcproj create mode 100644 code/tools/q3asm/qfiles.h (limited to 'code') diff --git a/code/tools/lcc/COPYRIGHT b/code/tools/lcc/COPYRIGHT new file mode 100644 index 0000000..961a48f --- /dev/null +++ b/code/tools/lcc/COPYRIGHT @@ -0,0 +1,61 @@ +The authors of this software are Christopher W. Fraser and +David R. Hanson. + +Copyright (c) 1991,1992,1993,1994,1995,1996,1997,1998 by AT&T, +Christopher W. Fraser, and David R. Hanson. All Rights Reserved. + +Permission to use, copy, modify, and distribute this software for any +purpose, subject to the provisions described below, without fee is +hereby granted, provided that this entire notice is included in all +copies of any software that is or includes a copy or modification of +this software and in all copies of the supporting documentation for +such software. + +THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED +WARRANTY. IN PARTICULAR, NEITHER THE AUTHORS NOR AT&T MAKE ANY +REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY +OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. + + +lcc is not public-domain software, shareware, and it is not protected +by a `copyleft' agreement, like the code from the Free Software +Foundation. + +lcc is available free for your personal research and instructional use +under the `fair use' provisions of the copyright law. You may, however, +redistribute lcc in whole or in part provided you acknowledge its +source and include this CPYRIGHT file. You may, for example, include +the distribution in a CDROM of free software, provided you charge only +for the media, or mirror the distribution files at your site. + +You may not sell lcc or any product derived from it in which it is a +significant part of the value of the product. Using the lcc front end +to build a C syntax checker is an example of this kind of product. + +You may use parts of lcc in products as long as you charge for only +those components that are entirely your own and you acknowledge the use +of lcc clearly in all product documentation and distribution media. You +must state clearly that your product uses or is based on parts of lcc +and that lcc is available free of charge. You must also request that +bug reports on your product be reported to you. Using the lcc front +end to build a C compiler for the Motorola 88000 chip and charging for +and distributing only the 88000 code generator is an example of this +kind of product. + +Using parts of lcc in other products is more problematic. For example, +using parts of lcc in a C++ compiler could save substantial time and +effort and therefore contribute significantly to the profitability of +the product. This kind of use, or any use where others stand to make a +profit from what is primarily our work, requires a license agreement +with Addison-Wesley. Per-copy and unlimited use licenses are +available; for more information, contact + + J. Carter Shanklin + Addison Wesley Longman, Inc. + 2725 Sand Hill Rd. + Menlo Park, CA 94025 + 650/854-0300 x2478 FAX: 650/614-2930 jcs@awl.com +----- +Chris Fraser / cwfraser@microsoft.com +David Hanson / drh@microsoft.com +$Revision: 145 $ $Date: 2001-10-17 16:53:10 -0500 (Wed, 17 Oct 2001) $ diff --git a/code/tools/lcc/LOG b/code/tools/lcc/LOG new file mode 100644 index 0000000..dd23f62 --- /dev/null +++ b/code/tools/lcc/LOG @@ -0,0 +1,91 @@ +From lcc 4.0 to 4.1: + +Changes: + +See doc/4.html for changes in the code-generation interface. + +Warns about constants that are too large, eg, short x = 70000; + +Warns about expressions that have no effect. + +Unsigned shorts are now used for wide-character constants, and +wchar_t is a typedef for unsigned short. + +More assertions in gen.c to confirm that the register allocator is +configured correctly; ie, that the various masks, wildcards, +clobbers, and targets are internally consistent. Full checking +appears impractical, but there's still more than than there was +before. + +On the SPARC, lcc now emits .type and .size directives +unconditionally. + +On the x86, constants are now emitted into the text segment. + +If the environment variable "LCCDIR" is defined, it gives the directory +that contains the preprocessor, the compiler proper, and the +lcc-specific libraries. + +Under Windows, lcc searches the directories named in the environment +variable "include" for header files. + +Errors fixed: + +Erroneously complained about unknown sizes for some const fields, eg, +typedef struct foo ref; struct foo { const ref *q; int a; }; +f(ref *p, int i) { return p->q[i].a; } + +-A -A erroneously complained about static main's that didn't conform +to the ANSI-mandated "int main(void)" or "int main(int, char **)". + +Silently generated incorrect code for a structure copy with a +post-incremented target, eg, +struct { int x; } data = {1}, copy[2], *q = copy; +main() { *q++ = data; } + +Generated incorrect values in some expressions with constant pointers. + +Silently truncated string literals longer than 4095 characters. + +Failed to emit debugging information for uninitialized globals. + +Failed to diagnose missing sizes in some multi-dimensioned array +declarators, eg, extern int x[][10]; int x[5][]; + +Silently emitted incorrect sizes and initalizations for some +incomplete multi-dimensioned arrays involving pointers and whose size +is determined by the number of initializers. + +Set only the x.name field for some back-end symbols (eg, wildcards), +and the uninitialized name field crashed some debugging output. + +uses() failed to check the register *set* as well as the register +mask. There's no known bug demo, but a wildcard set might be +contrived that would need the test. + +Crashed with -b on some conditional expressions involving calls, eg, +int p; void g(void) { p ? f() : 1; } + +On the MIPS, sometimes generated an incorrect frame size and thus a +crash when floating-point registers were saved. + +On the SPARC, erroneously reused a register variable as a temporary +when the variable is compiler-generated. + +On the SPARC with -b, emitted incorrect code for returning structs. + +On the x86, conversion from float to int rounded instead of truncated +with the default floating-point mode. + +On the x86, eliminate rtargets for kids after the first (see p. 419). + +On the x86, substitute reg for freg, in order to use the common reg +rules. Needed only for debugging output, since we're not using any +float regs as regs at this time. + +On the x86, "double f(); main(){f();}" wasn't popping the FP register stack. + +On the x86, ECX was saved by the callee, when it should have been +saved by the caller. + +$Id: LOG 145 2001-10-17 21:53:10Z timo $ diff --git a/code/tools/lcc/README b/code/tools/lcc/README new file mode 100644 index 0000000..4ba4d3f --- /dev/null +++ b/code/tools/lcc/README @@ -0,0 +1,21 @@ +This hierarchy is the distribution for lcc version 4.1. + +lcc version 3.x is described in the book "A Retargetable C Compiler: +Design and Implementation" (Addison-Wesley, 1995, ISBN 0-8053-1670-1). +There are significant differences between 3.x and 4.x, most notably in +the intermediate code. doc/4.html summarizes the differences. + +VERSION 4.1 IS INCOMPATIBLE WITH EARLIER VERSIONS OF LCC. DO NOT +UNLOAD THIS DISTRIBUTION ON TOP OF A 3.X DISTRIBUTION. + +LOG describes the changes since the last release. + +CPYRIGHT describes the conditions under you can use, copy, modify, and +distribute lcc or works derived from lcc. + +doc/install.html is an HTML file that gives a complete description of +the distribution and installation instructions. + +Chris Fraser / cwfraser@microsoft.com +David Hanson / drh@microsoft.com +$Revision: 145 $ $Date: 2001-10-17 16:53:10 -0500 (Wed, 17 Oct 2001) $ diff --git a/code/tools/lcc/README.id b/code/tools/lcc/README.id new file mode 100644 index 0000000..6611a37 --- /dev/null +++ b/code/tools/lcc/README.id @@ -0,0 +1,3 @@ +2001-10-31 Timothee Besset +updated from the $/source/lcc code +modified for portability and use with >= 1.31 mod source release diff --git a/code/tools/lcc/alpha/osf/tst/8q.1bk b/code/tools/lcc/alpha/osf/tst/8q.1bk new file mode 100644 index 0000000..7ed6437 --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/8q.1bk @@ -0,0 +1,92 @@ +1 5 8 6 3 7 2 4 +1 6 8 3 7 4 2 5 +1 7 4 6 8 2 5 3 +1 7 5 8 2 4 6 3 +2 4 6 8 3 1 7 5 +2 5 7 1 3 8 6 4 +2 5 7 4 1 8 6 3 +2 6 1 7 4 8 3 5 +2 6 8 3 1 4 7 5 +2 7 3 6 8 5 1 4 +2 7 5 8 1 4 6 3 +2 8 6 1 3 5 7 4 +3 1 7 5 8 2 4 6 +3 5 2 8 1 7 4 6 +3 5 2 8 6 4 7 1 +3 5 7 1 4 2 8 6 +3 5 8 4 1 7 2 6 +3 6 2 5 8 1 7 4 +3 6 2 7 1 4 8 5 +3 6 2 7 5 1 8 4 +3 6 4 1 8 5 7 2 +3 6 4 2 8 5 7 1 +3 6 8 1 4 7 5 2 +3 6 8 1 5 7 2 4 +3 6 8 2 4 1 7 5 +3 7 2 8 5 1 4 6 +3 7 2 8 6 4 1 5 +3 8 4 7 1 6 2 5 +4 1 5 8 2 7 3 6 +4 1 5 8 6 3 7 2 +4 2 5 8 6 1 3 7 +4 2 7 3 6 8 1 5 +4 2 7 3 6 8 5 1 +4 2 7 5 1 8 6 3 +4 2 8 5 7 1 3 6 +4 2 8 6 1 3 5 7 +4 6 1 5 2 8 3 7 +4 6 8 2 7 1 3 5 +4 6 8 3 1 7 5 2 +4 7 1 8 5 2 6 3 +4 7 3 8 2 5 1 6 +4 7 5 2 6 1 3 8 +4 7 5 3 1 6 8 2 +4 8 1 3 6 2 7 5 +4 8 1 5 7 2 6 3 +4 8 5 3 1 7 2 6 +5 1 4 6 8 2 7 3 +5 1 8 4 2 7 3 6 +5 1 8 6 3 7 2 4 +5 2 4 6 8 3 1 7 +5 2 4 7 3 8 6 1 +5 2 6 1 7 4 8 3 +5 2 8 1 4 7 3 6 +5 3 1 6 8 2 4 7 +5 3 1 7 2 8 6 4 +5 3 8 4 7 1 6 2 +5 7 1 3 8 6 4 2 +5 7 1 4 2 8 6 3 +5 7 2 4 8 1 3 6 +5 7 2 6 3 1 4 8 +5 7 2 6 3 1 8 4 +5 7 4 1 3 8 6 2 +5 8 4 1 3 6 2 7 +5 8 4 1 7 2 6 3 +6 1 5 2 8 3 7 4 +6 2 7 1 3 5 8 4 +6 2 7 1 4 8 5 3 +6 3 1 7 5 8 2 4 +6 3 1 8 4 2 7 5 +6 3 1 8 5 2 4 7 +6 3 5 7 1 4 2 8 +6 3 5 8 1 4 2 7 +6 3 7 2 4 8 1 5 +6 3 7 2 8 5 1 4 +6 3 7 4 1 8 2 5 +6 4 1 5 8 2 7 3 +6 4 2 8 5 7 1 3 +6 4 7 1 3 5 2 8 +6 4 7 1 8 2 5 3 +6 8 2 4 1 7 5 3 +7 1 3 8 6 4 2 5 +7 2 4 1 8 5 3 6 +7 2 6 3 1 4 8 5 +7 3 1 6 8 5 2 4 +7 3 8 2 5 1 6 4 +7 4 2 5 8 1 3 6 +7 4 2 8 6 1 3 5 +7 5 3 1 6 8 2 4 +8 2 4 1 7 5 3 6 +8 2 5 3 1 7 4 6 +8 3 1 6 2 5 7 4 +8 4 1 3 6 2 7 5 diff --git a/code/tools/lcc/alpha/osf/tst/8q.2bk b/code/tools/lcc/alpha/osf/tst/8q.2bk new file mode 100644 index 0000000..d4dc0ed --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/8q.2bk @@ -0,0 +1,2 @@ +tst/8q.c:30: warning: missing return value +tst/8q.c:39: warning: missing return value diff --git a/code/tools/lcc/alpha/osf/tst/8q.sbk b/code/tools/lcc/alpha/osf/tst/8q.sbk new file mode 100644 index 0000000..a1cd7d7 --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/8q.sbk @@ -0,0 +1,193 @@ +.globl main +.text +.text +.ent main +main: +ldgp $gp,0($27) +lda $sp,-80($sp) +.mask 0x4004000,-72 +.frame $sp,80,$26,48 +stq $14,0($sp) +stq $26,8($sp) +.prologue 1 +mov $31,$14 +L.2: +sll $14,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,2,$27 +lda $25,1 +stl $25,down($27) +stl $25,up($27) +L.3: +lda $14,1($14) +cmplt $14,15,$23 +bne $23,L.2 +mov $31,$14 +L.6: +sll $14,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,2,$27 +lda $25,1 +stl $25,rows($27) +L.7: +lda $14,1($14) +cmplt $14,8,$23 +bne $23,L.6 +mov $31,$16 +jsr $26,queens +ldgp $gp,0($26) +mov $31,$0 +L.1: +ldq $14,0($sp) +ldq $26,8($sp) +lda $sp,80($sp) +ret +.end main +.globl queens +.text +.ent queens +queens: +ldgp $gp,0($27) +lda $sp,-80($sp) +.mask 0x4006000,-64 +.frame $sp,80,$26,48 +stq $13,0($sp) +stq $14,8($sp) +stq $26,16($sp) +mov $16,$14 +.prologue 1 +mov $31,$13 +L.11: +sll $13,8*(8-4),$25 +sra $25,8*(8-4),$25 +sll $25,2,$25 +ldl $25,rows($25) +cmpeq $25,$31,$23 +bne $23,L.15 +subl $13,$14,$25 +lda $25,7($25) +sll $25,8*(8-4),$25 +sra $25,8*(8-4),$25 +sll $25,2,$25 +ldl $25,up($25) +cmpeq $25,$31,$23 +bne $23,L.15 +addl $13,$14,$25 +sll $25,8*(8-4),$25 +sra $25,8*(8-4),$25 +sll $25,2,$25 +ldl $25,down($25) +cmpeq $25,$31,$23 +bne $23,L.15 +addl $13,$14,$25 +sll $25,8*(8-4),$25 +sra $25,8*(8-4),$25 +sll $25,2,$25 +stl $31,down($25) +subl $13,$14,$25 +lda $25,7($25) +sll $25,8*(8-4),$25 +sra $25,8*(8-4),$25 +sll $25,2,$25 +stl $31,up($25) +sll $13,8*(8-4),$25 +sra $25,8*(8-4),$25 +sll $25,2,$25 +stl $31,rows($25) +sll $14,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,2,$27 +stl $13,x($27) +cmpeq $14,7,$23 +beq $23,L.17 +jsr $26,print +ldgp $gp,0($26) +br L.18 +L.17: +lda $16,1($14) +jsr $26,queens +ldgp $gp,0($26) +L.18: +lda $27,1 +addl $13,$14,$25 +sll $25,8*(8-4),$25 +sra $25,8*(8-4),$25 +sll $25,2,$25 +stl $27,down($25) +subl $13,$14,$25 +lda $25,7($25) +sll $25,8*(8-4),$25 +sra $25,8*(8-4),$25 +sll $25,2,$25 +stl $27,up($25) +sll $13,8*(8-4),$25 +sra $25,8*(8-4),$25 +sll $25,2,$25 +stl $27,rows($25) +L.15: +L.12: +lda $13,1($13) +cmplt $13,8,$23 +bne $23,L.11 +mov $31,$0 +L.10: +ldq $13,0($sp) +ldq $14,8($sp) +ldq $26,16($sp) +lda $sp,80($sp) +ret +.end queens +.globl print +.text +.ent print +print: +ldgp $gp,0($27) +lda $sp,-80($sp) +.mask 0x4004000,-72 +.frame $sp,80,$26,48 +stq $14,0($sp) +stq $26,8($sp) +.prologue 1 +mov $31,$14 +L.20: +lda $16,L.24 +sll $14,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,2,$27 +ldl $27,x($27) +lda $17,49($27) +jsr $26,printf +ldgp $gp,0($26) +L.21: +lda $14,1($14) +cmplt $14,8,$23 +bne $23,L.20 +lda $16,L.25 +jsr $26,printf +ldgp $gp,0($26) +mov $31,$0 +L.19: +ldq $14,0($sp) +ldq $26,8($sp) +lda $sp,80($sp) +ret +.end print +.globl x +.comm x,32 +.globl rows +.comm rows,32 +.globl down +.comm down,60 +.globl up +.comm up,60 +.rdata +.align 0 +L.25: +.byte 10 +.byte 0 +.align 0 +L.24: +.byte 37 +.byte 99 +.byte 32 +.byte 0 diff --git a/code/tools/lcc/alpha/osf/tst/array.1bk b/code/tools/lcc/alpha/osf/tst/array.1bk new file mode 100644 index 0000000..4d3817c --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/array.1bk @@ -0,0 +1,4 @@ + 0 1 2 3 1000 1001 1002 1003 2000 2001 2002 2003 + 0 1 2 3 1000 1001 1002 1003 2000 2001 2002 2003 + 0 1 2 3 1000 1001 1002 1003 2000 2001 2002 2003 + 0 1 2 3 1000 1001 1002 1003 2000 2001 2002 2003 diff --git a/code/tools/lcc/alpha/osf/tst/array.2bk b/code/tools/lcc/alpha/osf/tst/array.2bk new file mode 100644 index 0000000..c8cf31e --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/array.2bk @@ -0,0 +1,2 @@ +tst/array.c:33: warning: missing return value +tst/array.c:48: warning: missing return value diff --git a/code/tools/lcc/alpha/osf/tst/array.sbk b/code/tools/lcc/alpha/osf/tst/array.sbk new file mode 100644 index 0000000..9bf7176 --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/array.sbk @@ -0,0 +1,260 @@ +.globl main +.text +.text +.ent main +main: +ldgp $gp,0($27) +lda $sp,-144($sp) +.mask 0x4007000,-120 +.frame $sp,144,$26,48 +stq $12,0($sp) +stq $13,8($sp) +stq $14,16($sp) +stq $26,24($sp) +.prologue 1 +mov $31,$13 +L.2: +mov $31,$14 +L.6: +sll $14,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,2,$27 +sll $13,8*(8-4),$25 +sra $25,8*(8-4),$25 +sll $25,4,$25 +lda $25,x($25) +addq $27,$25,$27 +lda $25,1000 +mull $25,$13,$25 +addl $25,$14,$25 +stl $25,($27) +L.7: +lda $14,1($14) +cmplt $14,4,$23 +bne $23,L.6 +sll $13,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,3,$25 +sll $27,4,$27 +lda $27,x($27) +stq $27,y($25) +L.3: +lda $13,1($13) +cmplt $13,3,$23 +bne $23,L.2 +jsr $26,f +ldgp $gp,0($26) +mov $31,$13 +L.10: +sll $13,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,4,$25 +lda $22,-104+144($sp) +addq $25,$22,$25 +mov $25,$12 +sll $27,3,$27 +stq $25,y($27) +mov $31,$14 +L.14: +sll $14,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,2,$27 +addq $27,$12,$25 +sll $13,8*(8-4),$22 +sra $22,8*(8-4),$22 +sll $22,4,$22 +lda $22,x($22) +addq $27,$22,$27 +ldl $27,($27) +stl $27,($25) +L.15: +lda $14,1($14) +cmplt $14,4,$23 +bne $23,L.14 +L.11: +lda $13,1($13) +cmplt $13,3,$23 +bne $23,L.10 +lda $16,-104+144($sp) +lda $17,y +jsr $26,g +ldgp $gp,0($26) +mov $31,$0 +L.1: +ldq $12,0($sp) +ldq $13,8($sp) +ldq $14,16($sp) +ldq $26,24($sp) +lda $sp,144($sp) +ret +.end main +.globl f +.text +.ent f +f: +ldgp $gp,0($27) +lda $sp,-80($sp) +.mask 0x4006000,-64 +.frame $sp,80,$26,48 +stq $13,0($sp) +stq $14,8($sp) +stq $26,16($sp) +.prologue 1 +mov $31,$13 +L.19: +mov $31,$14 +L.23: +lda $16,L.27 +sll $14,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,2,$27 +sll $13,8*(8-4),$25 +sra $25,8*(8-4),$25 +sll $25,4,$25 +lda $25,x($25) +addq $27,$25,$27 +ldl $17,($27) +jsr $26,printf +ldgp $gp,0($26) +L.24: +lda $14,1($14) +cmplt $14,4,$23 +bne $23,L.23 +L.20: +lda $13,1($13) +cmplt $13,3,$23 +bne $23,L.19 +lda $16,L.28 +jsr $26,printf +ldgp $gp,0($26) +mov $31,$13 +L.29: +mov $31,$14 +L.33: +lda $16,L.27 +sll $14,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,2,$27 +sll $13,8*(8-4),$25 +sra $25,8*(8-4),$25 +sll $25,3,$25 +ldq $25,y($25) +addq $27,$25,$27 +ldl $17,($27) +jsr $26,printf +ldgp $gp,0($26) +L.34: +lda $14,1($14) +cmplt $14,4,$23 +bne $23,L.33 +L.30: +lda $13,1($13) +cmplt $13,3,$23 +bne $23,L.29 +lda $16,L.28 +jsr $26,printf +ldgp $gp,0($26) +mov $31,$0 +L.18: +ldq $13,0($sp) +ldq $14,8($sp) +ldq $26,16($sp) +lda $sp,80($sp) +ret +.end f +.globl g +.text +.ent g +g: +ldgp $gp,0($27) +lda $sp,-96($sp) +.mask 0x4007800,-64 +.frame $sp,96,$26,48 +stq $11,0($sp) +stq $12,8($sp) +stq $13,16($sp) +stq $14,24($sp) +stq $26,32($sp) +mov $16,$14 +mov $17,$13 +.prologue 1 +mov $31,$11 +L.38: +mov $31,$12 +L.42: +lda $16,L.27 +sll $12,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,2,$27 +sll $11,8*(8-4),$25 +sra $25,8*(8-4),$25 +sll $25,4,$25 +addq $25,$14,$25 +addq $27,$25,$27 +ldl $17,($27) +jsr $26,printf +ldgp $gp,0($26) +L.43: +lda $12,1($12) +cmplt $12,4,$23 +bne $23,L.42 +L.39: +lda $11,1($11) +cmplt $11,3,$23 +bne $23,L.38 +lda $16,L.28 +jsr $26,printf +ldgp $gp,0($26) +mov $31,$11 +L.46: +mov $31,$12 +L.50: +lda $16,L.27 +sll $12,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,2,$27 +sll $11,8*(8-4),$25 +sra $25,8*(8-4),$25 +sll $25,3,$25 +addq $25,$13,$25 +ldq $25,($25) +addq $27,$25,$27 +ldl $17,($27) +jsr $26,printf +ldgp $gp,0($26) +L.51: +lda $12,1($12) +cmplt $12,4,$23 +bne $23,L.50 +L.47: +lda $11,1($11) +cmplt $11,3,$23 +bne $23,L.46 +lda $16,L.28 +jsr $26,printf +ldgp $gp,0($26) +mov $31,$0 +L.37: +ldq $11,0($sp) +ldq $12,8($sp) +ldq $13,16($sp) +ldq $14,24($sp) +ldq $26,32($sp) +lda $sp,96($sp) +ret +.end g +.globl y +.comm y,24 +.globl x +.comm x,48 +.rdata +.align 0 +L.28: +.byte 10 +.byte 0 +.align 0 +L.27: +.byte 32 +.byte 37 +.byte 100 +.byte 0 diff --git a/code/tools/lcc/alpha/osf/tst/cf.1bk b/code/tools/lcc/alpha/osf/tst/cf.1bk new file mode 100644 index 0000000..9e331c5 --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/cf.1bk @@ -0,0 +1,51 @@ +char freq +011 8.1 +012 6.1 +040 11.9 +! 0.2 +" 1.5 +% 0.6 +& 0.4 +' 0.4 +( 2.9 +) 2.9 +* 0.8 ++ 1.3 +, 1.3 +- 0.4 +. 0.6 +/ 1.0 +0 2.5 +1 1.9 +2 0.6 +3 0.2 +7 0.4 +8 0.2 +; 3.8 +< 0.8 += 2.7 +> 0.2 +[ 1.5 +\ 0.8 +] 1.5 +a 3.1 +c 4.4 +e 2.3 +f 6.0 +g 1.3 +h 1.0 +i 5.0 +l 1.0 +m 0.2 +n 3.3 +o 2.1 +p 1.0 +q 0.4 +r 4.2 +s 0.6 +t 3.8 +u 1.2 +v 0.6 +w 0.2 +{ 0.6 +} 0.6 diff --git a/code/tools/lcc/alpha/osf/tst/cf.2bk b/code/tools/lcc/alpha/osf/tst/cf.2bk new file mode 100644 index 0000000..e69de29 diff --git a/code/tools/lcc/alpha/osf/tst/cf.sbk b/code/tools/lcc/alpha/osf/tst/cf.sbk new file mode 100644 index 0000000..6690b5c --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/cf.sbk @@ -0,0 +1,170 @@ +.globl main +.text +.text +.ent main +main: +ldgp $gp,0($27) +lda $sp,-96($sp) +.fmask 0x200,-96 +.mask 0x4007000,-64 +.frame $sp,96,$26,48 +stt $f9,0($sp) +stq $12,8($sp) +stq $13,16($sp) +stq $14,24($sp) +stq $26,32($sp) +stq $16,48($sp) +stq $17,56($sp) +.prologue 1 +ldl $27,-48+96($sp) +cmple $27,1,$23 +beq $23,L.2 +lds $f9,L.4 +br L.3 +L.2: +ldq $27,-40+96($sp) +ldq $16,8($27) +jsr $26,atof +ldgp $gp,0($26) +lds $f29,L.5 +divs $f0,$f29,$f9 +L.3: +mov $31,$14 +L.6: +mov $14,$27 +lda $14,1($27) +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,2,$27 +lds $f30,L.4 +sts $f30,f($27) +L.7: +lda $27,127 +cmple $14,$27,$23 +bne $23,L.6 +mov $31,$13 +br L.11 +L.10: +sll $12,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,2,$27 +lda $27,f($27) +lds $f30,($27) +lds $f29,L.13 +adds $f30,$f29,$f30 +sts $f30,($27) +lda $13,1($13) +L.11: +jsr $26,getchar +ldgp $gp,0($26) +mov $0,$12 +lda $25,-1 +cmpeq $0,$25,$23 +beq $23,L.10 +lda $16,L.14 +jsr $26,printf +ldgp $gp,0($26) +mov $31,$14 +L.15: +sll $14,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,2,$27 +lds $f30,f($27) +lds $f29,L.4 +cmpteq $f30,$f29,$f1 +fbne $f1,L.19 +stq $13,-56+96($sp) +ldt $f29,-56+96($sp) +cvtqs $f29,$f29 +divs $f30,$f29,$f30 +cmptlt $f30,$f9,$f1 +fbne $f1,L.19 +cmple $14,32,$23 +beq $23,L.21 +lda $16,L.23 +mov $14,$17 +jsr $26,printf +ldgp $gp,0($26) +br L.22 +L.21: +lda $16,L.24 +mov $14,$17 +jsr $26,printf +ldgp $gp,0($26) +L.22: +lda $16,L.25 +lds $f30,L.5 +sll $14,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,2,$27 +lds $f29,f($27) +muls $f30,$f29,$f30 +stq $13,-56+96($sp) +ldt $f29,-56+96($sp) +cvtqs $f29,$f29 +divs $f30,$f29,$f30 +cvtst $f30,$f17 +jsr $26,printf +ldgp $gp,0($26) +L.19: +L.16: +lda $14,1($14) +lda $27,127 +cmple $14,$27,$23 +bne $23,L.15 +mov $31,$0 +L.1: +ldt $f9,0($sp) +ldq $12,8($sp) +ldq $13,16($sp) +ldq $14,24($sp) +ldq $26,32($sp) +lda $sp,96($sp) +ret +.end main +.globl f +.comm f,512 +.rdata +.align 0 +L.25: +.byte 9 +.byte 37 +.byte 46 +.byte 49 +.byte 102 +.byte 10 +.byte 0 +.align 0 +L.24: +.byte 37 +.byte 99 +.byte 0 +.align 0 +L.23: +.byte 37 +.byte 48 +.byte 51 +.byte 111 +.byte 0 +.align 0 +L.14: +.byte 99 +.byte 104 +.byte 97 +.byte 114 +.byte 9 +.byte 102 +.byte 114 +.byte 101 +.byte 113 +.byte 10 +.byte 0 +.align 2 +L.13: +.long 0x3f800000 +.align 2 +L.5: +.long 0x42c80000 +.align 2 +L.4: +.long 0x0 diff --git a/code/tools/lcc/alpha/osf/tst/cq.1bk b/code/tools/lcc/alpha/osf/tst/cq.1bk new file mode 100644 index 0000000..c5c903d --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/cq.1bk @@ -0,0 +1,45 @@ +Section s22 returned 0. +s241,er4 +Section s241 returned 4. +Section s243 returned 0. +Section s244 returned 0. +Section s25 returned 0. + 8 bits in chars. + 32 bits in ints. + 16 bits in shorts. + 64 bits in longs. + 32 bits in unsigneds. + 32 bits in floats. + 64 bits in doubles. +1.192093e-07 is the least number that can be added to 1. (float). +2.220446e-16 is the least number that can be added to 1. (double). +Section s26 returned 0. +Section s4 returned 0. +Section s61 returned 0. +Section s626 returned 0. +Section s71 returned 0. +Section s72 returned 0. +Section s757 returned 0. +Section s7813 returned 0. +Section s714 returned 0. +Section s715 returned 0. +Register count for char is unreliable. +Register count for pointer is unreliable. +Register count for int is unreliable. +Section s81 returned 0. +Section s84 returned 0. +char alignment: 1 +short alignment: 2 +int alignment: 4 +long alignment: 8 +unsigned alignment: 4 +float alignment: 4 +double alignment: 8 +Sign extension in fields +Be especially careful with 1-bit fields! +Section s85 returned 0. +Section s86 returned 0. +Section s88 returned 0. +Section s9 returned 0. + +Failed. diff --git a/code/tools/lcc/alpha/osf/tst/cq.2bk b/code/tools/lcc/alpha/osf/tst/cq.2bk new file mode 100644 index 0000000..a612b54 --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/cq.2bk @@ -0,0 +1,4 @@ +tst/cq.c:533: warning: missing return value +tst/cq.c:1169: warning: missing return value +tst/cq.c:5294: warning: unreachable code +tst/cq.c:5303: warning: missing return value diff --git a/code/tools/lcc/alpha/osf/tst/cq.sbk b/code/tools/lcc/alpha/osf/tst/cq.sbk new file mode 100644 index 0000000..40e9f11 --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/cq.sbk @@ -0,0 +1,16904 @@ +.sdata +.align 3 +L.2: +.quad s22 +.quad s241 +.quad s243 +.quad s244 +.quad s25 +.quad s26 +.quad s4 +.quad s61 +.quad s626 +.quad s71 +.quad s72 +.quad s757 +.quad s7813 +.quad s714 +.quad s715 +.quad s81 +.quad s84 +.quad s85 +.quad s86 +.quad s88 +.quad s9 +.lcomm L.3,68 +.lcomm L.4,8 +.globl main +.text +.text +.ent main +main: +ldgp $gp,0($27) +lda $sp,-80($sp) +.mask 0x4004000,-72 +.frame $sp,80,$26,48 +stq $14,0($sp) +stq $26,8($sp) +stq $16,32($sp) +stq $17,40($sp) +.prologue 1 +lda $27,1 +stl $27,L.3+36 +lda $27,1 +stl $27,L.3+40 +lda $27,1 +stl $27,L.3+44 +lda $27,1 +stl $27,L.3+48 +lda $27,L.3 +stq $27,L.4 +mov $31,$14 +br L.12 +L.9: +ldq $16,L.4 +sll $14,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,3,$27 +ldq $27,L.2($27) +jsr $26,($27) +ldgp $gp,0($26) +stl $0,L.3+52 +ldl $27,L.3+56 +ldl $25,L.3+52 +addl $27,$25,$27 +stl $27,L.3+56 +ldl $27,L.3+36 +cmpeq $27,$31,$23 +bne $23,L.17 +lda $16,L.20 +lda $17,L.3+60 +ldl $18,L.3+52 +jsr $26,printf +ldgp $gp,0($26) +L.17: +L.10: +lda $14,1($14) +L.12: +mov $14,$27 +lda $25,21 +cmpult $27,$25,$23 +bne $23,L.9 +ldl $27,L.3+56 +cmpeq $27,$31,$23 +beq $23,L.23 +lda $16,L.26 +jsr $26,printf +ldgp $gp,0($26) +br L.24 +L.23: +lda $16,L.27 +jsr $26,printf +ldgp $gp,0($26) +L.24: +mov $31,$0 +L.1: +ldq $14,0($sp) +ldq $26,8($sp) +lda $sp,80($sp) +ret +.end main +.sdata +.align 0 +L.29: +.byte 115 +.byte 50 +.byte 50 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.30: +.byte 115 +.byte 50 +.byte 50 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s22 +.text +.text +.ent s22 +s22: +ldgp $gp,0($27) +lda $sp,-128($sp) +.mask 0x5007800,-88 +.frame $sp,128,$26,48 +stq $11,0($sp) +stq $12,8($sp) +stq $13,16($sp) +stq $14,24($sp) +stq $24,32($sp) +stq $26,40($sp) +stq $16,80($sp) +.prologue 1 +mov $31,$12 +lda $14,L.30 +ldq $27,-48+128($sp) +lda $13,60($27) +L.31: +L.32: +mov $13,$27 +lda $13,1($27) +mov $14,$25 +lda $14,1($25) +ldb $25,($25) +stb $25,($27) +sll $25,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,$31,$23 +beq $23,L.31 +lda $11,1 +lda $27,2 +stl $27,-64+128($sp) +lda $27,3 +stl $27,-68+128($sp) +lda $27,4 +stl $27,-60+128($sp) +ldl $27,-64+128($sp) +addl $11,$27,$27 +ldl $25,-68+128($sp) +addl $27,$25,$27 +ldl $25,-60+128($sp) +addl $27,$25,$27 +cmpeq $27,10,$23 +bne $23,L.34 +lda $12,1($12) +ldq $27,-48+128($sp) +ldl $27,44($27) +cmpeq $27,$31,$23 +bne $23,L.36 +lda $16,L.29 +lda $17,1 +jsr $26,printf +ldgp $gp,0($26) +L.36: +L.34: +lda $27,2 +stl $27,-72+128($sp) +ldl $27,-72+128($sp) +cmpeq $27,$11,$23 +beq $23,L.38 +lda $12,4($12) +ldq $27,-48+128($sp) +ldl $27,44($27) +cmpeq $27,$31,$23 +bne $23,L.40 +lda $16,L.29 +lda $17,4 +jsr $26,printf +ldgp $gp,0($26) +L.40: +L.38: +mov $12,$0 +L.28: +ldq $11,0($sp) +ldq $12,8($sp) +ldq $13,16($sp) +ldq $14,24($sp) +ldq $24,32($sp) +ldq $26,40($sp) +lda $sp,128($sp) +ret +.end s22 +.sdata +.align 0 +L.43: +.byte 115 +.byte 50 +.byte 52 +.byte 49 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.44: +.byte 115 +.byte 50 +.byte 52 +.byte 49 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.align 3 +L.45: +.quad 0x0 +.quad 0x0 +.quad 0x0 +.quad 0x0 +.quad 0x0 +.quad 0x0 +.quad 0x0 +.quad 0x0 +.quad 0x0 +.quad 0x0 +.quad 0x0 +.quad 0x0 +.quad 0x0 +.quad 0x0 +.quad 0x0 +.quad 0x0 +.quad 0x0 +.quad 0x0 +.quad 0x6 +.quad 0x0 +.quad 0x8 +.quad 0x0 +.quad 0xc +.quad 0x0 +.quad 0x10 +.quad 0x0 +.quad 0x12 +.quad 0x0 +.quad 0x14 +.quad 0x0 +.quad 0x18 +.quad 0x0 +.quad 0x1c +.quad 0x0 +.quad 0x1e +.quad 0x0 +.quad 0x20 +.quad 0x0 +.quad 0x24 +.globl s241 +.text +.text +.ent s241 +s241: +ldgp $gp,0($27) +lda $sp,-1072($sp) +.mask 0x5007c00,-1024 +.frame $sp,1072,$26,48 +stq $10,0($sp) +stq $11,8($sp) +stq $12,16($sp) +stq $13,24($sp) +stq $14,32($sp) +stq $24,40($sp) +stq $26,48($sp) +mov $16,$14 +.prologue 1 +mov $31,$10 +stl $31,-996+1072($sp) +lda $12,L.44 +lda $11,60($14) +L.46: +L.47: +mov $11,$27 +lda $11,1($27) +mov $12,$25 +lda $12,1($25) +ldb $25,($25) +stb $25,($27) +sll $25,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,$31,$23 +beq $23,L.46 +br L.49 +lda $10,1($10) +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.51 +lda $16,L.43 +lda $17,1 +jsr $26,printf +ldgp $gp,0($26) +L.51: +L.49: +br L.53 +lda $10,2($10) +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.55 +lda $16,L.43 +lda $17,2 +jsr $26,printf +ldgp $gp,0($26) +L.55: +L.53: +lda $10,4($10) +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.59 +lda $16,L.43 +lda $17,4 +jsr $26,printf +ldgp $gp,0($26) +L.59: +L.57: +br L.61 +lda $10,8($10) +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.63 +lda $16,L.43 +lda $17,8 +jsr $26,printf +ldgp $gp,0($26) +L.63: +L.61: +mov $31,$13 +L.65: +sll $13,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,3,$25 +stq $27,L.45($25) +L.66: +lda $13,1($13) +cmplt $13,17,$23 +bne $23,L.65 +lda $13,18 +L.69: +sll $13,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,3,$27 +lda $27,L.45($27) +stq $27,-1008+1072($sp) +ldq $16,($27) +jsr $26,pow2 +ldgp $gp,0($26) +ldq $25,-1008+1072($sp) +stq $0,($25) +subl $13,1,$27 +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,3,$27 +sll $13,8*(8-4),$25 +sra $25,8*(8-4),$25 +sll $25,3,$25 +ldq $25,L.45($25) +subq $25,1,$25 +stq $25,L.45($27) +lda $13,2($13) +L.70: +cmplt $13,39,$23 +bne $23,L.69 +stq $31,-368+1072($sp) +stq $31,-680+1072($sp) +stq $31,-992+1072($sp) +lda $27,1 +stq $27,-360+1072($sp) +lda $27,1 +stq $27,-672+1072($sp) +lda $27,1 +stq $27,-984+1072($sp) +lda $27,2 +stq $27,-352+1072($sp) +lda $27,2 +stq $27,-664+1072($sp) +lda $27,2 +stq $27,-976+1072($sp) +lda $27,3 +stq $27,-344+1072($sp) +lda $27,3 +stq $27,-656+1072($sp) +lda $27,3 +stq $27,-968+1072($sp) +lda $27,4 +stq $27,-336+1072($sp) +lda $27,4 +stq $27,-648+1072($sp) +lda $27,4 +stq $27,-960+1072($sp) +lda $27,5 +stq $27,-328+1072($sp) +lda $27,5 +stq $27,-640+1072($sp) +lda $27,5 +stq $27,-952+1072($sp) +lda $27,6 +stq $27,-320+1072($sp) +lda $27,6 +stq $27,-632+1072($sp) +lda $27,6 +stq $27,-944+1072($sp) +lda $27,7 +stq $27,-312+1072($sp) +lda $27,7 +stq $27,-624+1072($sp) +lda $27,7 +stq $27,-936+1072($sp) +lda $27,8 +stq $27,-304+1072($sp) +lda $27,8 +stq $27,-616+1072($sp) +lda $27,8 +stq $27,-928+1072($sp) +lda $27,9 +stq $27,-296+1072($sp) +lda $27,9 +stq $27,-608+1072($sp) +lda $27,9 +stq $27,-920+1072($sp) +lda $27,10 +stq $27,-288+1072($sp) +lda $27,10 +stq $27,-600+1072($sp) +lda $27,10 +stq $27,-912+1072($sp) +lda $27,11 +stq $27,-280+1072($sp) +lda $27,11 +stq $27,-592+1072($sp) +lda $27,11 +stq $27,-904+1072($sp) +lda $27,12 +stq $27,-272+1072($sp) +lda $27,12 +stq $27,-584+1072($sp) +lda $27,12 +stq $27,-896+1072($sp) +lda $27,13 +stq $27,-264+1072($sp) +lda $27,13 +stq $27,-576+1072($sp) +lda $27,13 +stq $27,-888+1072($sp) +lda $27,14 +stq $27,-256+1072($sp) +lda $27,14 +stq $27,-568+1072($sp) +lda $27,14 +stq $27,-880+1072($sp) +lda $27,15 +stq $27,-248+1072($sp) +lda $27,15 +stq $27,-560+1072($sp) +lda $27,15 +stq $27,-872+1072($sp) +lda $27,16 +stq $27,-240+1072($sp) +lda $27,16 +stq $27,-552+1072($sp) +lda $27,16 +stq $27,-864+1072($sp) +lda $27,63 +stq $27,-232+1072($sp) +lda $27,63 +stq $27,-544+1072($sp) +lda $27,63 +stq $27,-856+1072($sp) +lda $27,64 +stq $27,-224+1072($sp) +lda $27,64 +stq $27,-536+1072($sp) +lda $27,64 +stq $27,-848+1072($sp) +lda $27,255 +stq $27,-216+1072($sp) +lda $27,255 +stq $27,-528+1072($sp) +lda $27,255 +stq $27,-840+1072($sp) +lda $27,256 +stq $27,-208+1072($sp) +lda $27,256 +stq $27,-520+1072($sp) +lda $27,256 +stq $27,-832+1072($sp) +lda $27,4095 +stq $27,-200+1072($sp) +lda $27,4095 +stq $27,-512+1072($sp) +lda $27,4095 +stq $27,-824+1072($sp) +lda $27,4096 +stq $27,-192+1072($sp) +lda $27,4096 +stq $27,-504+1072($sp) +lda $27,4096 +stq $27,-816+1072($sp) +lda $27,65535 +stq $27,-184+1072($sp) +lda $27,65535 +stq $27,-496+1072($sp) +lda $27,65535 +stq $27,-808+1072($sp) +lda $27,65536 +stq $27,-176+1072($sp) +lda $27,65536 +stq $27,-488+1072($sp) +lda $27,65536 +stq $27,-800+1072($sp) +lda $27,262143 +stq $27,-168+1072($sp) +lda $27,262143 +stq $27,-480+1072($sp) +lda $27,262143 +stq $27,-792+1072($sp) +lda $27,262144 +stq $27,-160+1072($sp) +lda $27,262144 +stq $27,-472+1072($sp) +lda $27,262144 +stq $27,-784+1072($sp) +lda $27,1048575 +stq $27,-152+1072($sp) +lda $27,1048575 +stq $27,-464+1072($sp) +lda $27,1048575 +stq $27,-776+1072($sp) +lda $27,1048576 +stq $27,-144+1072($sp) +lda $27,1048576 +stq $27,-456+1072($sp) +lda $27,1048576 +stq $27,-768+1072($sp) +lda $27,16777215 +stq $27,-136+1072($sp) +lda $27,16777215 +stq $27,-448+1072($sp) +lda $27,16777215 +stq $27,-760+1072($sp) +lda $27,16777216 +stq $27,-128+1072($sp) +lda $27,16777216 +stq $27,-440+1072($sp) +lda $27,16777216 +stq $27,-752+1072($sp) +lda $27,268435455 +stq $27,-120+1072($sp) +lda $27,268435455 +stq $27,-432+1072($sp) +lda $27,268435455 +stq $27,-744+1072($sp) +lda $27,268435456 +stq $27,-112+1072($sp) +lda $27,268435456 +stq $27,-424+1072($sp) +lda $27,268435456 +stq $27,-736+1072($sp) +lda $27,1073741823 +stq $27,-104+1072($sp) +lda $27,1073741823 +stq $27,-416+1072($sp) +lda $27,1073741823 +stq $27,-728+1072($sp) +lda $27,1073741824 +stq $27,-96+1072($sp) +lda $27,1073741824 +stq $27,-408+1072($sp) +lda $27,1073741824 +stq $27,-720+1072($sp) +lda $27,4294967295 +stq $27,-88+1072($sp) +lda $27,4294967295 +stq $27,-400+1072($sp) +lda $27,4294967295 +stq $27,-712+1072($sp) +lda $27,4294967296 +stq $27,-80+1072($sp) +lda $27,4294967296 +stq $27,-392+1072($sp) +lda $27,4294967296 +stq $27,-704+1072($sp) +lda $27,68719476735 +stq $27,-72+1072($sp) +lda $27,68719476735 +stq $27,-384+1072($sp) +lda $27,68719476735 +stq $27,-696+1072($sp) +lda $27,68719476736 +stq $27,-64+1072($sp) +lda $27,68719476736 +stq $27,-376+1072($sp) +lda $27,68719476736 +stq $27,-688+1072($sp) +mov $31,$13 +L.187: +sll $13,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,3,$27 +lda $25,-368+1072($sp) +addq $27,$25,$25 +ldq $25,($25) +ldq $22,L.45($27) +cmpeq $22,$25,$23 +beq $23,L.194 +lda $22,-680+1072($sp) +addq $27,$22,$22 +ldq $22,($22) +cmpeq $25,$22,$23 +beq $23,L.194 +lda $25,-992+1072($sp) +addq $27,$25,$27 +ldq $27,($27) +cmpeq $22,$27,$23 +bne $23,L.191 +L.194: +ldl $27,40($14) +cmpeq $27,$31,$23 +bne $23,L.195 +lda $16,L.197 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.198 +jsr $26,printf +ldgp $gp,0($26) +L.195: +L.191: +L.188: +lda $13,1($13) +cmplt $13,39,$23 +bne $23,L.187 +ldl $27,-996+1072($sp) +cmpeq $27,$31,$23 +bne $23,L.199 +lda $10,16 +L.199: +mov $10,$0 +L.42: +ldq $10,0($sp) +ldq $11,8($sp) +ldq $12,16($sp) +ldq $13,24($sp) +ldq $14,32($sp) +ldq $24,40($sp) +ldq $26,48($sp) +lda $sp,1072($sp) +ret +.end s241 +.globl pow2 +.text +.ent pow2 +pow2: +ldgp $gp,0($27) +lda $sp,-80($sp) +.mask 0x4004000,-72 +.frame $sp,80,$26,48 +stq $14,0($sp) +stq $26,8($sp) +.prologue 1 +lda $14,1 +br L.203 +L.202: +sll $14,1,$14 +L.203: +mov $16,$27 +subq $27,1,$16 +cmpeq $27,$31,$23 +beq $23,L.202 +mov $14,$0 +L.201: +ldq $14,0($sp) +ldq $26,8($sp) +lda $sp,80($sp) +ret +.end pow2 +.sdata +.align 0 +L.206: +.byte 115 +.byte 50 +.byte 52 +.byte 51 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.207: +.byte 115 +.byte 50 +.byte 52 +.byte 51 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s243 +.text +.text +.ent s243 +s243: +ldgp $gp,0($27) +lda $sp,-352($sp) +.mask 0x5007000,-320 +.frame $sp,352,$26,48 +stq $12,0($sp) +stq $13,8($sp) +stq $14,16($sp) +stq $24,24($sp) +stq $26,32($sp) +stq $16,304($sp) +.prologue 1 +mov $31,$12 +lda $14,L.207 +ldq $27,-48+352($sp) +lda $13,60($27) +L.208: +L.209: +mov $13,$27 +lda $13,1($27) +mov $14,$25 +lda $14,1($25) +ldb $25,($25) +stb $25,($27) +sll $25,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,$31,$23 +beq $23,L.208 +lda $16,-312+352($sp) +jsr $26,zerofill +ldgp $gp,0($26) +lda $27,1 +stb $27,-215+352($sp) +lda $27,1 +stb $27,-247+352($sp) +lda $27,1 +stb $27,-186+352($sp) +lda $27,1 +stb $27,-264+352($sp) +lda $27,1 +stb $27,-214+352($sp) +lda $27,1 +stb $27,-246+352($sp) +lda $27,1 +stb $27,-279+352($sp) +lda $27,1 +stb $27,-263+352($sp) +lda $27,1 +stb $27,-213+352($sp) +lda $27,1 +stb $27,-245+352($sp) +lda $27,1 +stb $27,-278+352($sp) +lda $27,1 +stb $27,-262+352($sp) +lda $27,1 +stb $27,-212+352($sp) +lda $27,1 +stb $27,-244+352($sp) +lda $27,1 +stb $27,-277+352($sp) +lda $27,1 +stb $27,-261+352($sp) +lda $27,1 +stb $27,-211+352($sp) +lda $27,1 +stb $27,-243+352($sp) +lda $27,1 +stb $27,-275+352($sp) +lda $27,1 +stb $27,-260+352($sp) +lda $27,1 +stb $27,-210+352($sp) +lda $27,1 +stb $27,-242+352($sp) +lda $27,1 +stb $27,-274+352($sp) +lda $27,1 +stb $27,-259+352($sp) +lda $27,1 +stb $27,-209+352($sp) +lda $27,1 +stb $27,-241+352($sp) +lda $27,1 +stb $27,-272+352($sp) +lda $27,1 +stb $27,-258+352($sp) +lda $27,1 +stb $27,-208+352($sp) +lda $27,1 +stb $27,-240+352($sp) +lda $27,1 +stb $27,-271+352($sp) +lda $27,1 +stb $27,-257+352($sp) +lda $27,1 +stb $27,-207+352($sp) +lda $27,1 +stb $27,-239+352($sp) +lda $27,1 +stb $27,-217+352($sp) +lda $27,1 +stb $27,-256+352($sp) +lda $27,1 +stb $27,-206+352($sp) +lda $27,1 +stb $27,-238+352($sp) +lda $27,1 +stb $27,-251+352($sp) +lda $27,1 +stb $27,-255+352($sp) +lda $27,1 +stb $27,-205+352($sp) +lda $27,1 +stb $27,-237+352($sp) +lda $27,1 +stb $27,-267+352($sp) +lda $27,1 +stb $27,-204+352($sp) +lda $27,1 +stb $27,-236+352($sp) +lda $27,1 +stb $27,-218+352($sp) +lda $27,1 +stb $27,-203+352($sp) +lda $27,1 +stb $27,-235+352($sp) +lda $27,1 +stb $27,-188+352($sp) +lda $27,1 +stb $27,-302+352($sp) +lda $27,1 +stb $27,-202+352($sp) +lda $27,1 +stb $27,-234+352($sp) +lda $27,1 +stb $27,-303+352($sp) +lda $27,1 +stb $27,-201+352($sp) +lda $27,1 +stb $27,-233+352($sp) +lda $27,1 +stb $27,-189+352($sp) +lda $27,1 +stb $27,-304+352($sp) +lda $27,1 +stb $27,-200+352($sp) +lda $27,1 +stb $27,-232+352($sp) +lda $27,1 +stb $27,-187+352($sp) +lda $27,1 +stb $27,-299+352($sp) +lda $27,1 +stb $27,-199+352($sp) +lda $27,1 +stb $27,-231+352($sp) +lda $27,1 +stb $27,-221+352($sp) +lda $27,1 +stb $27,-300+352($sp) +lda $27,1 +stb $27,-198+352($sp) +lda $27,1 +stb $27,-230+352($sp) +lda $27,1 +stb $27,-219+352($sp) +lda $27,1 +stb $27,-197+352($sp) +lda $27,1 +stb $27,-229+352($sp) +lda $27,1 +stb $27,-269+352($sp) +lda $27,1 +stb $27,-220+352($sp) +lda $27,1 +stb $27,-196+352($sp) +lda $27,1 +stb $27,-228+352($sp) +lda $27,1 +stb $27,-253+352($sp) +lda $27,1 +stb $27,-273+352($sp) +lda $27,1 +stb $27,-195+352($sp) +lda $27,1 +stb $27,-227+352($sp) +lda $27,1 +stb $27,-270+352($sp) +lda $27,1 +stb $27,-194+352($sp) +lda $27,1 +stb $27,-226+352($sp) +lda $27,1 +stb $27,-254+352($sp) +lda $27,1 +stb $27,-312+352($sp) +stb $27,-193+352($sp) +lda $27,1 +stb $27,-225+352($sp) +lda $27,1 +stb $27,-252+352($sp) +lda $27,1 +stb $27,-280+352($sp) +lda $27,1 +stb $27,-192+352($sp) +lda $27,1 +stb $27,-224+352($sp) +lda $27,1 +stb $27,-250+352($sp) +lda $27,1 +stb $27,-191+352($sp) +lda $27,1 +stb $27,-223+352($sp) +lda $27,1 +stb $27,-268+352($sp) +lda $27,1 +stb $27,-190+352($sp) +lda $27,1 +stb $27,-222+352($sp) +lda $27,1 +stb $27,-266+352($sp) +lda $27,1 +stb $27,-249+352($sp) +lda $27,1 +stb $27,-265+352($sp) +lda $16,-312+352($sp) +jsr $26,sumof +ldgp $gp,0($26) +lda $25,98 +cmpeq $0,$25,$23 +bne $23,L.308 +lda $12,1($12) +ldq $27,-48+352($sp) +ldl $27,44($27) +cmpeq $27,$31,$23 +bne $23,L.310 +lda $16,L.206 +lda $17,1 +jsr $26,printf +ldgp $gp,0($26) +L.310: +L.308: +br L.312 +lda $12,8($12) +ldq $27,-48+352($sp) +ldl $27,44($27) +cmpeq $27,$31,$23 +bne $23,L.314 +lda $16,L.206 +lda $17,8 +jsr $26,printf +ldgp $gp,0($26) +L.314: +L.312: +mov $12,$0 +L.205: +ldq $12,0($sp) +ldq $13,8($sp) +ldq $14,16($sp) +ldq $24,24($sp) +ldq $26,32($sp) +lda $sp,352($sp) +ret +.end s243 +.globl zerofill +.text +.ent zerofill +zerofill: +ldgp $gp,0($27) +lda $sp,-80($sp) +.mask 0x5004000,-64 +.frame $sp,80,$26,48 +stq $14,0($sp) +stq $24,8($sp) +stq $26,16($sp) +.prologue 1 +mov $31,$14 +L.317: +mov $16,$27 +lda $16,1($27) +stb $31,($27) +L.318: +lda $14,1($14) +lda $27,256 +cmplt $14,$27,$23 +bne $23,L.317 +mov $31,$0 +L.316: +ldq $14,0($sp) +ldq $24,8($sp) +ldq $26,16($sp) +lda $sp,80($sp) +ret +.end zerofill +.globl sumof +.text +.ent sumof +sumof: +ldgp $gp,0($27) +lda $sp,-96($sp) +.mask 0x4007000,-72 +.frame $sp,96,$26,48 +stq $12,0($sp) +stq $13,8($sp) +stq $14,16($sp) +stq $26,24($sp) +.prologue 1 +mov $16,$12 +mov $31,$14 +mov $31,$13 +L.322: +mov $12,$27 +lda $12,1($27) +ldb $27,($27) +addl $14,$27,$14 +L.323: +lda $13,1($13) +lda $27,256 +cmplt $13,$27,$23 +bne $23,L.322 +mov $14,$0 +L.321: +ldq $12,0($sp) +ldq $13,8($sp) +ldq $14,16($sp) +ldq $26,24($sp) +lda $sp,96($sp) +ret +.end sumof +.sdata +.align 0 +L.327: +.byte 115 +.byte 50 +.byte 52 +.byte 52 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.328: +.byte 115 +.byte 50 +.byte 52 +.byte 52 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s244 +.text +.text +.ent s244 +s244: +ldgp $gp,0($27) +lda $sp,-176($sp) +.mask 0x5007c00,-128 +.frame $sp,176,$26,48 +stq $10,0($sp) +stq $11,8($sp) +stq $12,16($sp) +stq $13,24($sp) +stq $14,32($sp) +stq $24,40($sp) +stq $26,48($sp) +stq $16,128($sp) +.prologue 1 +lda $13,L.328 +ldq $27,-48+176($sp) +lda $12,60($27) +L.329: +L.330: +mov $12,$27 +lda $12,1($27) +mov $13,$25 +lda $13,1($25) +ldb $25,($25) +stb $25,($27) +sll $25,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,$31,$23 +beq $23,L.329 +mov $31,$10 +mov $31,$11 +ldt $f30,L.332 +stt $f30,-120+176($sp) +stt $f30,-112+176($sp) +ldt $f30,L.332 +stt $f30,-104+176($sp) +ldt $f30,L.332 +stt $f30,-96+176($sp) +ldt $f30,L.332 +stt $f30,-88+176($sp) +ldt $f30,L.332 +stt $f30,-80+176($sp) +ldt $f30,L.332 +stt $f30,-72+176($sp) +ldt $f30,L.332 +stt $f30,-64+176($sp) +mov $31,$11 +mov $31,$14 +L.340: +sll $14,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,3,$27 +lda $25,-120+176($sp) +addq $27,$25,$27 +ldt $f30,($27) +lda $27,1($14) +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,3,$27 +lda $25,-120+176($sp) +addq $27,$25,$27 +ldt $f29,($27) +cmpteq $f30,$f29,$f1 +fbne $f1,L.344 +lda $11,1 +L.344: +L.341: +lda $14,1($14) +cmplt $14,7,$23 +bne $23,L.340 +cmpeq $11,$31,$23 +bne $23,L.346 +ldq $27,-48+176($sp) +ldl $27,44($27) +cmpeq $27,$31,$23 +bne $23,L.348 +lda $16,L.327 +lda $17,1 +jsr $26,printf +ldgp $gp,0($26) +L.348: +lda $10,1($10) +L.346: +br L.350 +ldq $27,-48+176($sp) +ldl $27,44($27) +cmpeq $27,$31,$23 +bne $23,L.352 +lda $16,L.327 +lda $17,2 +jsr $26,printf +ldgp $gp,0($26) +L.352: +lda $10,2($10) +L.350: +mov $10,$0 +L.326: +ldq $10,0($sp) +ldq $11,8($sp) +ldq $12,16($sp) +ldq $13,24($sp) +ldq $14,32($sp) +ldq $24,40($sp) +ldq $26,48($sp) +lda $sp,176($sp) +ret +.end s244 +.sdata +.align 0 +L.355: +.byte 115 +.byte 50 +.byte 53 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.356: +.byte 115 +.byte 50 +.byte 53 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s25 +.text +.text +.ent s25 +s25: +ldgp $gp,0($27) +lda $sp,-128($sp) +.mask 0x5007e00,-72 +.frame $sp,128,$26,48 +stq $9,0($sp) +stq $10,8($sp) +stq $11,16($sp) +stq $12,24($sp) +stq $13,32($sp) +stq $14,40($sp) +stq $24,48($sp) +stq $26,56($sp) +mov $16,$14 +.prologue 1 +lda $10,L.356 +lda $9,60($14) +L.357: +L.358: +mov $9,$27 +lda $9,1($27) +mov $10,$25 +lda $10,1($25) +ldb $25,($25) +stb $25,($27) +sll $25,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,$31,$23 +beq $23,L.357 +stl $31,-60+128($sp) +lda $12,L.360 +lda $27,1($12) +ldb $27,($27) +ldb $25,($12) +cmpeq $25,$27,$23 +beq $23,L.364 +lda $25,2($12) +ldb $25,($25) +cmpeq $27,$25,$23 +beq $23,L.364 +cmpeq $25,46,$23 +bne $23,L.361 +L.364: +ldl $27,-60+128($sp) +lda $27,1($27) +stl $27,-60+128($sp) +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.365 +lda $16,L.355 +lda $17,1 +jsr $26,printf +ldgp $gp,0($26) +L.365: +L.361: +lda $27,3($12) +ldb $27,($27) +cmpeq $27,$31,$23 +bne $23,L.367 +ldl $27,-60+128($sp) +lda $27,4($27) +stl $27,-60+128($sp) +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.369 +lda $16,L.355 +lda $17,4 +jsr $26,printf +ldgp $gp,0($26) +L.369: +L.367: +lda $27,L.373+1 +ldb $27,($27) +cmpeq $27,34,$23 +bne $23,L.371 +ldl $27,-60+128($sp) +lda $27,8($27) +stl $27,-60+128($sp) +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.375 +lda $16,L.355 +lda $17,8 +jsr $26,printf +ldgp $gp,0($26) +L.375: +L.371: +lda $12,L.377 +ldb $27,($12) +cmpeq $27,10,$23 +beq $23,L.385 +lda $27,1($12) +ldb $27,($27) +cmpeq $27,9,$23 +beq $23,L.385 +lda $27,2($12) +ldb $27,($27) +cmpeq $27,8,$23 +beq $23,L.385 +lda $27,3($12) +ldb $27,($27) +cmpeq $27,13,$23 +beq $23,L.385 +lda $27,4($12) +ldb $27,($27) +cmpeq $27,12,$23 +beq $23,L.385 +lda $27,5($12) +ldb $27,($27) +lda $25,92 +cmpeq $27,$25,$23 +beq $23,L.385 +lda $27,6($12) +ldb $27,($27) +cmpeq $27,39,$23 +bne $23,L.378 +L.385: +ldl $27,-60+128($sp) +lda $27,16($27) +stl $27,-60+128($sp) +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.386 +lda $16,L.355 +lda $17,16 +jsr $26,printf +ldgp $gp,0($26) +L.386: +L.378: +lda $27,L.388 +mov $27,$11 +mov $27,$12 +stl $31,-64+128($sp) +mov $31,$13 +br L.392 +L.389: +addq $13,$12,$27 +ldb $27,($27) +addq $13,$11,$25 +ldb $25,($25) +cmpeq $27,$25,$23 +bne $23,L.393 +lda $27,1 +stl $27,-64+128($sp) +L.393: +L.390: +lda $13,1($13) +L.392: +mov $13,$27 +lda $25,7 +cmpult $27,$25,$23 +bne $23,L.389 +ldl $27,-64+128($sp) +cmpeq $27,$31,$23 +bne $23,L.395 +ldl $27,-60+128($sp) +lda $27,32($27) +stl $27,-60+128($sp) +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.397 +lda $16,L.355 +lda $17,32 +jsr $26,printf +ldgp $gp,0($26) +L.397: +L.395: +ldl $0,-60+128($sp) +L.354: +ldq $9,0($sp) +ldq $10,8($sp) +ldq $11,16($sp) +ldq $12,24($sp) +ldq $13,32($sp) +ldq $14,40($sp) +ldq $24,48($sp) +ldq $26,56($sp) +lda $sp,128($sp) +ret +.end s25 +.sdata +.align 0 +L.400: +.byte 115 +.byte 50 +.byte 54 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.align 0 +L.401: +.byte 37 +.byte 51 +.byte 100 +.byte 32 +.byte 98 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 105 +.byte 110 +.byte 32 +.byte 37 +.byte 115 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.402: +.byte 37 +.byte 101 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 108 +.byte 101 +.byte 97 +.byte 115 +.byte 116 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 99 +.byte 97 +.byte 110 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 97 +.byte 100 +.byte 100 +.byte 101 +.byte 100 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 49 +.byte 46 +.byte 32 +.byte 40 +.byte 37 +.byte 115 +.byte 41 +.byte 46 +.byte 10 +.byte 0 +.globl s26 +.text +.text +.ent s26 +s26: +ldgp $gp,0($27) +lda $sp,-160($sp) +.fmask 0x3e0,-128 +.mask 0x5007c00,-72 +.frame $sp,160,$26,48 +stt $f5,0($sp) +stt $f6,8($sp) +stt $f7,16($sp) +stt $f8,24($sp) +stt $f9,32($sp) +stq $10,40($sp) +stq $11,48($sp) +stq $12,56($sp) +stq $13,64($sp) +stq $14,72($sp) +stq $24,80($sp) +stq $26,88($sp) +mov $16,$14 +.prologue 1 +lda $12,L.400 +lda $11,60($14) +L.403: +L.404: +mov $11,$27 +lda $11,1($27) +mov $12,$25 +lda $12,1($25) +ldb $25,($25) +stb $25,($27) +sll $25,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,$31,$23 +beq $23,L.403 +stl $31,($14) +mov $31,$10 +lda $13,1 +br L.407 +L.406: +sll $13,8*(8-1),$27 +sra $27,8*(8-1),$27 +sll $27,1,$27 +addl $27,0,$27 +mov $27,$13 +ldl $27,($14) +lda $27,1($27) +stl $27,($14) +L.407: +sll $10,8*(8-1),$27 +sra $27,8*(8-1),$27 +sll $13,8*(8-1),$25 +sra $25,8*(8-1),$25 +cmpeq $27,$25,$23 +beq $23,L.406 +ldl $27,($14) +sll $27,2,$27 +stl $27,4($14) +ldl $27,($14) +sll $27,1,$27 +stl $27,8($14) +ldl $27,($14) +sll $27,3,$27 +stl $27,12($14) +ldl $27,($14) +sll $27,2,$27 +stl $27,16($14) +ldl $27,($14) +sll $27,2,$27 +stl $27,20($14) +ldl $27,($14) +sll $27,3,$27 +stl $27,24($14) +lds $f30,L.409 +fmov $f30,$f7 +fmov $f30,$f9 +lds $f8,L.410 +br L.412 +L.411: +adds $f7,$f9,$f8 +cvtst $f9,$f30 +ldt $f29,L.414 +divt $f30,$f29,$f30 +cvtts $f30,$f9 +L.412: +cmpteq $f8,$f7,$f1 +fbeq $f1,L.411 +ldt $f30,L.415 +cvtst $f9,$f29 +mult $f30,$f29,$f30 +cvtts $f30,$f30 +sts $f30,28($14) +ldt $f5,L.416 +lds $f9,L.409 +ldt $f6,L.417 +br L.419 +L.418: +cvtst $f9,$f30 +addt $f5,$f30,$f6 +ldt $f29,L.414 +divt $f30,$f29,$f30 +cvtts $f30,$f9 +L.419: +cmpteq $f6,$f5,$f1 +fbeq $f1,L.418 +ldt $f30,L.415 +cvtst $f9,$f29 +mult $f30,$f29,$f30 +cvtts $f30,$f30 +sts $f30,32($14) +ldl $27,40($14) +cmpeq $27,$31,$23 +bne $23,L.421 +lda $16,L.401 +ldl $17,($14) +lda $18,L.423 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.401 +ldl $17,4($14) +lda $18,L.424 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.401 +ldl $17,8($14) +lda $18,L.425 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.401 +ldl $17,12($14) +lda $18,L.426 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.401 +ldl $17,16($14) +lda $18,L.427 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.401 +ldl $17,20($14) +lda $18,L.428 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.401 +ldl $17,24($14) +lda $18,L.429 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.402 +lds $f30,28($14) +cvtst $f30,$f17 +lda $18,L.428 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.402 +lds $f30,32($14) +cvtst $f30,$f17 +lda $18,L.429 +jsr $26,printf +ldgp $gp,0($26) +L.421: +mov $31,$0 +L.399: +ldt $f5,0($sp) +ldt $f6,8($sp) +ldt $f7,16($sp) +ldt $f8,24($sp) +ldt $f9,32($sp) +ldq $10,40($sp) +ldq $11,48($sp) +ldq $12,56($sp) +ldq $13,64($sp) +ldq $14,72($sp) +ldq $24,80($sp) +ldq $26,88($sp) +lda $sp,160($sp) +ret +.end s26 +.sdata +.align 0 +L.431: +.byte 115 +.byte 52 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.432: +.byte 115 +.byte 52 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s4 +.text +.text +.ent s4 +s4: +ldgp $gp,0($27) +lda $sp,-160($sp) +.mask 0x5007e00,-104 +.frame $sp,160,$26,48 +stq $9,0($sp) +stq $10,8($sp) +stq $11,16($sp) +stq $12,24($sp) +stq $13,32($sp) +stq $14,40($sp) +stq $24,48($sp) +stq $26,56($sp) +mov $16,$14 +.prologue 1 +stl $31,-60+160($sp) +lda $10,L.432 +lda $9,60($14) +L.433: +L.434: +mov $9,$27 +lda $9,1($27) +mov $10,$25 +lda $10,1($25) +ldb $25,($25) +stb $25,($27) +sll $25,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,$31,$23 +beq $23,L.433 +mov $31,$13 +L.436: +mov $13,$16 +jsr $26,svtest +ldgp $gp,0($26) +mov $0,$27 +stl $27,-84+160($sp) +jsr $26,zero +ldgp $gp,0($26) +ldl $25,-84+160($sp) +cmpeq $25,$0,$23 +bne $23,L.440 +lda $27,1 +stl $27,-60+160($sp) +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.442 +lda $16,L.431 +lda $17,1 +jsr $26,printf +ldgp $gp,0($26) +L.442: +L.440: +L.437: +lda $13,1($13) +cmplt $13,3,$23 +bne $23,L.436 +jsr $26,setev +ldgp $gp,0($26) +jsr $26,testev +ldgp $gp,0($26) +cmpeq $0,$31,$23 +bne $23,L.444 +ldl $27,-60+160($sp) +lda $27,2($27) +stl $27,-60+160($sp) +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.446 +lda $16,L.431 +lda $17,2 +jsr $26,printf +ldgp $gp,0($26) +L.446: +L.444: +br L.448 +ldl $27,-60+160($sp) +lda $27,4($27) +stl $27,-60+160($sp) +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.450 +lda $16,L.431 +lda $17,4 +jsr $26,printf +ldgp $gp,0($26) +L.450: +L.448: +lda $12,0xffffffff +lda $11,1 +mov $31,$13 +br L.455 +L.452: +and $11,$12,$11 +srl $12,1,$12 +L.453: +lda $13,1($13) +L.455: +mov $13,$27 +ldl $25,($14) +sll $25,2,$25 +cmpult $27,$25,$23 +bne $23,L.452 +lda $27,1 +cmpeq $11,$27,$23 +beq $23,L.458 +cmpeq $12,$31,$23 +bne $23,L.456 +L.458: +ldl $27,-60+160($sp) +lda $27,8($27) +stl $27,-60+160($sp) +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.459 +lda $16,L.431 +lda $17,8 +jsr $26,printf +ldgp $gp,0($26) +L.459: +L.456: +ldl $0,-60+160($sp) +L.430: +ldq $9,0($sp) +ldq $10,8($sp) +ldq $11,16($sp) +ldq $12,24($sp) +ldq $13,32($sp) +ldq $14,40($sp) +ldq $24,48($sp) +ldq $26,56($sp) +lda $sp,160($sp) +ret +.end s4 +.lcomm L.462,4 +.globl svtest +.text +.text +.ent svtest +svtest: +ldgp $gp,0($27) +lda $sp,-64($sp) +.frame $sp,64,$26,48 +.prologue 1 +cmpeq $16,$31,$23 +bne $23,L.465 +cmpeq $16,1,$23 +bne $23,L.466 +cmpeq $16,2,$23 +bne $23,L.469 +br L.463 +L.465: +lda $27,1978 +stl $27,L.462 +stl $31,-60+64($sp) +br L.464 +L.466: +ldl $27,L.462 +lda $25,1978 +cmpeq $27,$25,$23 +bne $23,L.467 +lda $27,1 +stl $27,-60+64($sp) +br L.464 +L.467: +lda $27,1929 +stl $27,L.462 +stl $31,-60+64($sp) +br L.464 +L.469: +ldl $27,L.462 +lda $25,1929 +cmpeq $27,$25,$23 +bne $23,L.470 +lda $27,1 +stl $27,-60+64($sp) +br L.464 +L.470: +stl $31,-60+64($sp) +L.463: +L.464: +ldl $0,-60+64($sp) +L.461: +lda $sp,64($sp) +ret +.end svtest +.lcomm L.473,4 +.globl zero +.text +.text +.ent zero +zero: +ldgp $gp,0($27) +lda $sp,-64($sp) +.frame $sp,64,$26,48 +.prologue 1 +lda $27,2 +stl $27,L.473 +stl $31,-60+64($sp) +ldl $0,-60+64($sp) +L.472: +lda $sp,64($sp) +ret +.end zero +.globl testev +.text +.ent testev +testev: +ldgp $gp,0($27) +lda $sp,-64($sp) +.frame $sp,64,$26,48 +.prologue 1 +ldl $27,extvar +lda $25,1066 +cmpeq $27,$25,$23 +bne $23,L.475 +lda $0,1 +br L.474 +L.475: +mov $31,$0 +L.474: +lda $sp,64($sp) +ret +.end testev +.sdata +.align 0 +L.478: +.byte 115 +.byte 54 +.byte 49 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.479: +.byte 115 +.byte 54 +.byte 49 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.align 0 +L.480: +.byte 65 +.byte 66 +.byte 67 +.byte 68 +.byte 69 +.byte 70 +.byte 71 +.byte 72 +.byte 73 +.byte 74 +.byte 75 +.byte 76 +.byte 77 +.byte 78 +.byte 79 +.byte 80 +.byte 81 +.byte 82 +.byte 83 +.byte 84 +.byte 85 +.byte 86 +.byte 87 +.byte 88 +.byte 89 +.byte 90 +.byte 0 +.align 0 +L.481: +.byte 97 +.byte 98 +.byte 99 +.byte 100 +.byte 101 +.byte 102 +.byte 103 +.byte 104 +.byte 105 +.byte 106 +.byte 107 +.byte 108 +.byte 109 +.byte 110 +.byte 111 +.byte 112 +.byte 113 +.byte 114 +.byte 115 +.byte 116 +.byte 117 +.byte 118 +.byte 119 +.byte 120 +.byte 121 +.byte 122 +.byte 0 +.align 0 +L.482: +.byte 48 +.byte 49 +.byte 50 +.byte 51 +.byte 52 +.byte 53 +.byte 54 +.byte 55 +.byte 56 +.byte 57 +.byte 0 +.align 0 +L.483: +.byte 126 +.byte 33 +.byte 34 +.byte 35 +.byte 37 +.byte 38 +.byte 40 +.byte 41 +.byte 95 +.byte 61 +.byte 45 +.byte 94 +.byte 124 +.byte 123 +.byte 125 +.byte 91 +.byte 93 +.byte 43 +.byte 59 +.byte 42 +.byte 58 +.byte 60 +.byte 62 +.byte 44 +.byte 46 +.byte 63 +.byte 47 +.byte 0 +.align 0 +L.484: +.byte 10 +.byte 9 +.byte 8 +.byte 13 +.byte 12 +.byte 92 +.byte 39 +.byte 0 +.align 0 +L.485: +.byte 32 +.byte 0 +.byte 0 +.globl s61 +.text +.text +.ent s61 +s61: +ldgp $gp,0($27) +lda $sp,-192($sp) +.mask 0x5007e00,-136 +.frame $sp,192,$26,48 +stq $9,0($sp) +stq $10,8($sp) +stq $11,16($sp) +stq $12,24($sp) +stq $13,32($sp) +stq $14,40($sp) +stq $24,48($sp) +stq $26,56($sp) +stq $16,144($sp) +.prologue 1 +lda $12,L.479 +ldq $27,-48+192($sp) +lda $11,60($27) +mov $31,$9 +L.486: +L.487: +mov $11,$27 +lda $11,1($27) +mov $12,$25 +lda $12,1($25) +ldb $25,($25) +stb $25,($27) +sll $25,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,$31,$23 +beq $23,L.486 +lda $27,-19 +stw $27,-110+192($sp) +lda $27,-110+192($sp) +ldw $27,($27) +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +stq $27,-120+192($sp) +ldq $27,-120+192($sp) +lda $25,-19 +cmpeq $27,$25,$23 +bne $23,L.489 +lda $9,1($9) +ldq $27,-48+192($sp) +ldl $27,44($27) +cmpeq $27,$31,$23 +bne $23,L.491 +lda $16,L.478 +lda $17,1 +jsr $26,printf +ldgp $gp,0($26) +L.491: +L.489: +lda $27,L.480 +stq $27,-104+192($sp) +lda $27,L.481 +stq $27,-96+192($sp) +lda $27,L.482 +stq $27,-88+192($sp) +lda $27,L.483 +stq $27,-80+192($sp) +lda $27,L.484 +stq $27,-72+192($sp) +lda $27,L.485 +stq $27,-64+192($sp) +mov $31,$13 +mov $31,$14 +br L.503 +L.502: +sll $14,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,3,$27 +lda $25,-104+192($sp) +addq $27,$25,$27 +ldq $25,($27) +lda $22,1($25) +stq $22,($27) +ldb $27,($25) +cmplt $27,$31,$23 +beq $23,L.505 +lda $13,1 +L.505: +L.503: +sll $14,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,3,$27 +lda $25,-104+192($sp) +addq $27,$25,$27 +ldq $27,($27) +ldb $27,($27) +cmpeq $27,$31,$23 +beq $23,L.502 +L.499: +lda $14,1($14) +cmplt $14,6,$23 +bne $23,L.503 +cmpeq $13,$31,$23 +bne $23,L.507 +lda $9,2($9) +ldq $27,-48+192($sp) +ldl $27,44($27) +cmpeq $27,$31,$23 +bne $23,L.509 +lda $16,L.478 +lda $17,2 +jsr $26,printf +ldgp $gp,0($26) +L.509: +L.507: +lda $10,1048579 +mov $10,$27 +stw $27,-106+192($sp) +mov $10,$27 +stb $27,-107+192($sp) +lda $27,-106+192($sp) +ldw $27,($27) +sll $27,8*(8-4),$25 +sra $25,8*(8-4),$25 +cmpeq $25,$10,$23 +bne $23,L.514 +cmpeq $27,3,$23 +beq $23,L.513 +L.514: +lda $27,-107+192($sp) +ldb $27,($27) +sll $27,8*(8-4),$25 +sra $25,8*(8-4),$25 +cmpeq $25,$10,$23 +bne $23,L.511 +cmpeq $27,3,$23 +bne $23,L.511 +L.513: +lda $9,8($9) +ldq $27,-48+192($sp) +ldl $27,44($27) +cmpeq $27,$31,$23 +bne $23,L.515 +lda $16,L.478 +lda $17,8 +jsr $26,printf +ldgp $gp,0($26) +L.515: +L.511: +mov $9,$0 +L.477: +ldq $9,0($sp) +ldq $10,8($sp) +ldq $11,16($sp) +ldq $12,24($sp) +ldq $13,32($sp) +ldq $14,40($sp) +ldq $24,48($sp) +ldq $26,56($sp) +lda $sp,192($sp) +ret +.end s61 +.sdata +.align 0 +L.518: +.byte 115 +.byte 54 +.byte 50 +.byte 54 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.519: +.byte 115 +.byte 54 +.byte 50 +.byte 54 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s626 +.text +.text +.ent s626 +s626: +ldgp $gp,0($27) +lda $sp,-240($sp) +.fmask 0x3c0,-216 +.mask 0x5007e00,-152 +.frame $sp,240,$26,48 +stt $f6,0($sp) +stt $f7,8($sp) +stt $f8,16($sp) +stt $f9,24($sp) +stq $9,32($sp) +stq $10,40($sp) +stq $11,48($sp) +stq $12,56($sp) +stq $13,64($sp) +stq $14,72($sp) +stq $24,80($sp) +stq $26,88($sp) +mov $16,$14 +.prologue 1 +lda $10,L.519 +lda $9,60($14) +stl $31,-128+240($sp) +L.520: +L.521: +mov $9,$27 +lda $9,1($27) +mov $10,$25 +lda $10,1($25) +ldb $25,($25) +stb $25,($27) +sll $25,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,$31,$23 +beq $23,L.520 +lds $f9,L.409 +lda $27,1 +stq $27,-96+240($sp) +mov $27,$12 +mov $31,$13 +br L.526 +L.523: +lds $f30,L.527 +muls $f30,$f9,$f9 +sll $12,1,$27 +ldq $25,-96+240($sp) +or $27,$25,$12 +L.524: +lda $13,1($13) +L.526: +ldl $27,12($14) +subl $27,2,$27 +cmplt $13,$27,$23 +bne $23,L.523 +stq $12,-56+240($sp) +ldt $f30,-56+240($sp) +cvtqs $f30,$f30 +sts $f30,-140+240($sp) +lds $f30,-140+240($sp) +subs $f9,$f30,$f30 +divs $f30,$f9,$f9 +cvtst $f9,$f30 +ldt $f29,L.414 +lds $f28,28($14) +cvtst $f28,$f28 +mult $f29,$f28,$f29 +cmptle $f30,$f29,$f1 +fbne $f1,L.528 +ldl $27,-128+240($sp) +lda $27,2($27) +stl $27,-128+240($sp) +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.530 +lda $16,L.518 +lda $17,2 +jsr $26,printf +ldgp $gp,0($26) +L.530: +L.528: +lda $27,125 +stb $27,-105+240($sp) +lda $27,125 +stw $27,-108+240($sp) +lda $27,125 +stl $27,-112+240($sp) +lda $27,15625 +stl $27,-120+240($sp) +lda $27,125 +stl $27,-116+240($sp) +lda $27,15625 +stl $27,-124+240($sp) +lda $27,125 +stq $27,-104+240($sp) +lda $27,15625 +stq $27,-136+240($sp) +lds $f7,L.532 +ldt $f6,L.533 +ldt $f8,L.534 +mov $31,$13 +L.535: +lda $27,-84+240($sp) +addq $13,$27,$27 +stb $31,($27) +L.536: +lda $13,1($13) +cmplt $13,28,$23 +bne $23,L.535 +lda $27,-105+240($sp) +ldb $27,($27) +mull $27,$27,$27 +ldl $25,-120+240($sp) +cmpeq $27,$25,$23 +bne $23,L.539 +lda $27,1 +stb $27,-84+240($sp) +L.539: +lda $27,-108+240($sp) +ldw $27,($27) +lda $25,-105+240($sp) +ldb $25,($25) +mull $27,$25,$27 +ldl $25,-120+240($sp) +cmpeq $27,$25,$23 +bne $23,L.541 +lda $27,1 +stb $27,-83+240($sp) +L.541: +lda $27,-108+240($sp) +ldw $27,($27) +mull $27,$27,$27 +ldl $25,-120+240($sp) +cmpeq $27,$25,$23 +bne $23,L.544 +lda $27,1 +stb $27,-82+240($sp) +L.544: +ldl $27,-112+240($sp) +lda $25,-105+240($sp) +ldb $25,($25) +mull $27,$25,$27 +ldl $25,-120+240($sp) +cmpeq $27,$25,$23 +bne $23,L.547 +lda $27,1 +stb $27,-81+240($sp) +L.547: +ldl $27,-112+240($sp) +lda $25,-108+240($sp) +ldw $25,($25) +mull $27,$25,$27 +ldl $25,-120+240($sp) +cmpeq $27,$25,$23 +bne $23,L.550 +lda $27,1 +stb $27,-80+240($sp) +L.550: +ldl $27,-112+240($sp) +mull $27,$27,$27 +ldl $25,-120+240($sp) +cmpeq $27,$25,$23 +bne $23,L.553 +lda $27,1 +stb $27,-79+240($sp) +L.553: +ldl $27,-116+240($sp) +zap $27,240,$27 +lda $25,-105+240($sp) +ldb $25,($25) +mull $27,$25,$27 +zap $27,240,$27 +ldl $25,-124+240($sp) +zap $25,240,$25 +cmpeq $27,$25,$23 +bne $23,L.556 +lda $27,1 +stb $27,-78+240($sp) +L.556: +ldl $27,-116+240($sp) +zap $27,240,$27 +lda $25,-108+240($sp) +ldw $25,($25) +mull $27,$25,$27 +zap $27,240,$27 +ldl $25,-124+240($sp) +zap $25,240,$25 +cmpeq $27,$25,$23 +bne $23,L.559 +lda $27,1 +stb $27,-77+240($sp) +L.559: +ldl $27,-116+240($sp) +zap $27,240,$27 +ldl $25,-112+240($sp) +mull $27,$25,$27 +zap $27,240,$27 +ldl $25,-124+240($sp) +zap $25,240,$25 +cmpeq $27,$25,$23 +bne $23,L.562 +lda $27,1 +stb $27,-76+240($sp) +L.562: +ldl $27,-116+240($sp) +zap $27,240,$27 +mull $27,$27,$27 +zap $27,240,$27 +ldl $25,-124+240($sp) +zap $25,240,$25 +cmpeq $27,$25,$23 +bne $23,L.565 +lda $27,1 +stb $27,-75+240($sp) +L.565: +ldq $27,-104+240($sp) +lda $25,-105+240($sp) +ldb $25,($25) +sll $25,8*(8-4),$25 +sra $25,8*(8-4),$25 +mulq $27,$25,$27 +ldq $25,-136+240($sp) +cmpeq $27,$25,$23 +bne $23,L.568 +lda $27,1 +stb $27,-74+240($sp) +L.568: +ldq $27,-104+240($sp) +lda $25,-108+240($sp) +ldw $25,($25) +sll $25,8*(8-4),$25 +sra $25,8*(8-4),$25 +mulq $27,$25,$27 +ldq $25,-136+240($sp) +cmpeq $27,$25,$23 +bne $23,L.571 +lda $27,1 +stb $27,-73+240($sp) +L.571: +ldq $27,-104+240($sp) +ldl $25,-112+240($sp) +mulq $27,$25,$27 +ldq $25,-136+240($sp) +cmpeq $27,$25,$23 +bne $23,L.574 +lda $27,1 +stb $27,-72+240($sp) +L.574: +ldq $27,-104+240($sp) +ldl $25,-116+240($sp) +zap $25,240,$25 +mulq $27,$25,$27 +ldl $25,-124+240($sp) +zap $25,240,$25 +cmpeq $27,$25,$23 +bne $23,L.577 +lda $27,1 +stb $27,-71+240($sp) +L.577: +ldq $27,-104+240($sp) +mulq $27,$27,$27 +ldq $25,-136+240($sp) +cmpeq $27,$25,$23 +bne $23,L.580 +lda $27,1 +stb $27,-70+240($sp) +L.580: +lda $27,-105+240($sp) +ldb $27,($27) +stq $27,-56+240($sp) +ldt $f30,-56+240($sp) +cvtqs $f30,$f30 +muls $f7,$f30,$f30 +cvtst $f30,$f30 +cmpteq $f30,$f8,$f1 +fbne $f1,L.583 +lda $27,1 +stb $27,-69+240($sp) +L.583: +lda $27,-108+240($sp) +ldw $27,($27) +stq $27,-56+240($sp) +ldt $f30,-56+240($sp) +cvtqs $f30,$f30 +muls $f7,$f30,$f30 +cvtst $f30,$f30 +cmpteq $f30,$f8,$f1 +fbne $f1,L.586 +lda $27,1 +stb $27,-68+240($sp) +L.586: +lds $f30,-112+240($sp) +cvtlq $f30,$f30 +cvtqs $f30,$f30 +muls $f7,$f30,$f30 +cvtst $f30,$f30 +cmpteq $f30,$f8,$f1 +fbne $f1,L.589 +lda $27,1 +stb $27,-67+240($sp) +L.589: +ldl $27,-116+240($sp) +zap $27,240,$27 +ldt $f30,L.594 +srl $27,1,$25 +stq $25,-56+240($sp) +ldt $f29,-56+240($sp) +cvtqt $f29,$f29 +mult $f30,$f29,$f30 +and $27,1,$27 +stq $27,-56+240($sp) +ldt $f29,-56+240($sp) +cvtqt $f29,$f29 +addt $f30,$f29,$f30 +cvtts $f30,$f30 +muls $f7,$f30,$f30 +cvtst $f30,$f30 +cmpteq $f30,$f8,$f1 +fbne $f1,L.592 +lda $27,1 +stb $27,-66+240($sp) +L.592: +ldt $f30,-104+240($sp) +cvtqs $f30,$f30 +muls $f7,$f30,$f30 +cvtst $f30,$f30 +cmpteq $f30,$f8,$f1 +fbne $f1,L.596 +lda $27,1 +stb $27,-65+240($sp) +L.596: +muls $f7,$f7,$f30 +cvtst $f30,$f30 +cmpteq $f30,$f8,$f1 +fbne $f1,L.599 +lda $27,1 +stb $27,-64+240($sp) +L.599: +lda $27,-105+240($sp) +ldb $27,($27) +stq $27,-56+240($sp) +ldt $f30,-56+240($sp) +cvtqt $f30,$f30 +mult $f6,$f30,$f30 +cmpteq $f30,$f8,$f1 +fbne $f1,L.602 +lda $27,1 +stb $27,-63+240($sp) +L.602: +lda $27,-108+240($sp) +ldw $27,($27) +stq $27,-56+240($sp) +ldt $f30,-56+240($sp) +cvtqt $f30,$f30 +mult $f6,$f30,$f30 +cmpteq $f30,$f8,$f1 +fbne $f1,L.605 +lda $27,1 +stb $27,-62+240($sp) +L.605: +lds $f30,-112+240($sp) +cvtlq $f30,$f30 +cvtqt $f30,$f30 +mult $f6,$f30,$f30 +cmpteq $f30,$f8,$f1 +fbne $f1,L.608 +lda $27,1 +stb $27,-61+240($sp) +L.608: +ldl $27,-116+240($sp) +zap $27,240,$27 +ldt $f30,L.594 +srl $27,1,$25 +stq $25,-56+240($sp) +ldt $f29,-56+240($sp) +cvtqt $f29,$f29 +mult $f30,$f29,$f30 +and $27,1,$27 +stq $27,-56+240($sp) +ldt $f29,-56+240($sp) +cvtqt $f29,$f29 +addt $f30,$f29,$f30 +mult $f6,$f30,$f30 +cmpteq $f30,$f8,$f1 +fbne $f1,L.611 +lda $27,1 +stb $27,-60+240($sp) +L.611: +ldt $f30,-104+240($sp) +cvtqt $f30,$f30 +mult $f6,$f30,$f30 +cmpteq $f30,$f8,$f1 +fbne $f1,L.614 +lda $27,1 +stb $27,-59+240($sp) +L.614: +cvtst $f7,$f30 +mult $f6,$f30,$f30 +cmpteq $f30,$f8,$f1 +fbne $f1,L.617 +lda $27,1 +stb $27,-58+240($sp) +L.617: +mult $f6,$f6,$f30 +cmpteq $f30,$f8,$f1 +fbne $f1,L.620 +lda $27,1 +stb $27,-57+240($sp) +L.620: +mov $31,$11 +mov $31,$13 +L.623: +sll $11,8*(8-1),$27 +sra $27,8*(8-1),$27 +lda $25,-84+240($sp) +addq $13,$25,$25 +ldb $25,($25) +addl $27,$25,$27 +mov $27,$11 +L.624: +lda $13,1($13) +cmplt $13,28,$23 +bne $23,L.623 +sll $11,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,$31,$23 +bne $23,L.627 +ldl $27,-128+240($sp) +lda $27,4($27) +stl $27,-128+240($sp) +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.629 +lda $16,L.518 +lda $17,4 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.631 +jsr $26,printf +ldgp $gp,0($26) +mov $31,$13 +L.632: +lda $16,L.636 +lda $27,-84+240($sp) +addq $13,$27,$27 +ldb $17,($27) +jsr $26,printf +ldgp $gp,0($26) +L.633: +lda $13,1($13) +cmplt $13,28,$23 +bne $23,L.632 +lda $16,L.637 +jsr $26,printf +ldgp $gp,0($26) +L.629: +L.627: +lda $27,32768 +stq $27,-104+240($sp) +ldq $25,-104+240($sp) +cmple $25,$27,$23 +bne $23,L.638 +ldl $27,-128+240($sp) +lda $27,8($27) +stl $27,-128+240($sp) +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.640 +lda $16,L.518 +lda $17,8 +jsr $26,printf +ldgp $gp,0($26) +L.640: +L.638: +ldl $0,-128+240($sp) +L.517: +ldt $f6,0($sp) +ldt $f7,8($sp) +ldt $f8,16($sp) +ldt $f9,24($sp) +ldq $9,32($sp) +ldq $10,40($sp) +ldq $11,48($sp) +ldq $12,56($sp) +ldq $13,64($sp) +ldq $14,72($sp) +ldq $24,80($sp) +ldq $26,88($sp) +lda $sp,240($sp) +ret +.end s626 +.sdata +.align 0 +L.643: +.byte 115 +.byte 55 +.byte 49 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.644: +.byte 115 +.byte 55 +.byte 49 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.align 0 +L.645: +.byte 0x71 +.globl s71 +.text +.text +.ent s71 +s71: +ldgp $gp,0($27) +lda $sp,-176($sp) +.mask 0x5007c00,-128 +.frame $sp,176,$26,48 +stq $10,0($sp) +stq $11,8($sp) +stq $12,16($sp) +stq $13,24($sp) +stq $14,32($sp) +stq $24,40($sp) +stq $26,48($sp) +mov $16,$14 +.prologue 1 +lda $13,L.644 +lda $12,60($14) +mov $31,$11 +L.646: +L.647: +mov $12,$27 +lda $12,1($27) +mov $13,$25 +lda $13,1($25) +ldb $25,($25) +stb $25,($27) +sll $25,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,$31,$23 +beq $23,L.646 +lda $27,L.651 +ldb $27,($27) +lda $25,L.645 +ldb $25,($25) +cmpeq $27,$25,$23 +bne $23,L.649 +lda $11,1($11) +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.652 +lda $16,L.643 +lda $17,1 +jsr $26,printf +ldgp $gp,0($26) +L.652: +L.649: +br L.654 +lda $11,2($11) +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.656 +lda $16,L.643 +lda $17,2 +jsr $26,printf +ldgp $gp,0($26) +L.656: +L.654: +lda $27,1942 +stl $27,-76+176($sp) +ldl $27,-76+176($sp) +lda $25,1942 +cmpeq $27,$25,$23 +beq $23,L.664 +ldl $27,-76+176($sp) +ldl $25,-76+176($sp) +cmpeq $27,$25,$23 +bne $23,L.659 +L.664: +lda $11,4($11) +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.665 +lda $16,L.643 +lda $17,4 +jsr $26,printf +ldgp $gp,0($26) +L.665: +L.659: +lda $16,-5 +jsr $26,McCarthy +ldgp $gp,0($26) +lda $25,91 +cmpeq $0,$25,$23 +bne $23,L.667 +lda $11,8($11) +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.669 +lda $16,L.643 +lda $17,8 +jsr $26,printf +ldgp $gp,0($26) +L.669: +L.667: +lda $10,2 +lda $27,3 +stl $27,-100+176($sp) +lda $27,-100+176($sp) +stq $27,-112+176($sp) +mov $10,$16 +ldq $17,-112+176($sp) +jsr $26,clobber +ldgp $gp,0($26) +cmpeq $10,2,$23 +beq $23,L.673 +ldl $27,-100+176($sp) +cmpeq $27,2,$23 +bne $23,L.671 +L.673: +lda $11,16($11) +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.674 +lda $16,L.643 +lda $17,16 +jsr $26,printf +ldgp $gp,0($26) +L.674: +L.671: +lds $f30,32($14) +cmpteq $f30,$f30,$f1 +fbne $f1,L.676 +lda $11,32($11) +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.678 +lda $16,L.643 +lda $17,32 +jsr $26,printf +ldgp $gp,0($26) +L.678: +L.676: +mov $11,$0 +L.642: +ldq $10,0($sp) +ldq $11,8($sp) +ldq $12,16($sp) +ldq $13,24($sp) +ldq $14,32($sp) +ldq $24,40($sp) +ldq $26,48($sp) +lda $sp,176($sp) +ret +.end s71 +.globl McCarthy +.text +.ent McCarthy +McCarthy: +ldgp $gp,0($27) +lda $sp,-64($sp) +.mask 0x4000000,-64 +.frame $sp,64,$26,48 +stq $26,0($sp) +stq $16,16($sp) +.prologue 1 +ldl $27,-48+64($sp) +lda $25,100 +cmple $27,$25,$23 +bne $23,L.681 +ldl $27,-48+64($sp) +subl $27,10,$0 +br L.680 +L.681: +ldl $27,-48+64($sp) +lda $16,11($27) +jsr $26,McCarthy +ldgp $gp,0($26) +mov $0,$27 +mov $27,$16 +jsr $26,McCarthy +ldgp $gp,0($26) +mov $0,$27 +L.680: +ldq $26,0($sp) +lda $sp,64($sp) +ret +.end McCarthy +.globl clobber +.text +.ent clobber +clobber: +ldgp $gp,0($27) +lda $sp,-64($sp) +.frame $sp,64,$26,48 +.prologue 1 +lda $16,3 +lda $27,2 +stl $27,($17) +mov $31,$0 +L.683: +lda $sp,64($sp) +ret +.end clobber +.sdata +.align 0 +L.685: +.byte 76 +.byte 111 +.byte 99 +.byte 97 +.byte 108 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 32 +.byte 37 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.686: +.byte 115 +.byte 55 +.byte 49 +.byte 52 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.687: +.byte 115 +.byte 55 +.byte 49 +.byte 52 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s714 +.text +.text +.ent s714 +s714: +ldgp $gp,0($27) +lda $sp,-256($sp) +.fmask 0x3c0,-232 +.mask 0x5007e00,-168 +.frame $sp,256,$26,48 +stt $f6,0($sp) +stt $f7,8($sp) +stt $f8,16($sp) +stt $f9,24($sp) +stq $9,32($sp) +stq $10,40($sp) +stq $11,48($sp) +stq $12,56($sp) +stq $13,64($sp) +stq $14,72($sp) +stq $24,80($sp) +stq $26,88($sp) +stq $16,208($sp) +.prologue 1 +lda $27,L.687 +stq $27,-96+256($sp) +ldq $27,-48+256($sp) +lda $25,60($27) +stq $25,-104+256($sp) +stl $31,-108+256($sp) +mov $31,$13 +ldl $14,48($27) +L.688: +L.689: +ldq $27,-104+256($sp) +lda $25,1($27) +stq $25,-104+256($sp) +ldq $25,-96+256($sp) +lda $22,1($25) +stq $22,-96+256($sp) +ldb $25,($25) +stb $25,($27) +sll $25,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,$31,$23 +beq $23,L.688 +lda $12,5 +lda $27,2 +stb $27,-61+256($sp) +lda $27,-61+256($sp) +ldb $12,($27) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,2,$23 +bne $23,L.691 +lda $13,1 +cmpeq $14,$31,$23 +bne $23,L.693 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.693: +L.691: +lda $12,5 +lda $27,2 +stw $27,-64+256($sp) +lda $27,-64+256($sp) +ldw $27,($27) +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,2,$23 +bne $23,L.695 +lda $13,2 +cmpeq $14,$31,$23 +bne $23,L.697 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.697: +L.695: +lda $12,5 +lda $27,2 +stl $27,-68+256($sp) +ldl $27,-68+256($sp) +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,2,$23 +bne $23,L.699 +lda $13,3 +cmpeq $14,$31,$23 +bne $23,L.701 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.701: +L.699: +lda $12,5 +lda $27,2 +stq $27,-80+256($sp) +ldq $27,-80+256($sp) +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,2,$23 +bne $23,L.703 +lda $13,4 +cmpeq $14,$31,$23 +bne $23,L.705 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.705: +L.703: +lda $12,5 +lda $27,2 +stl $27,-84+256($sp) +ldl $27,-84+256($sp) +zap $27,240,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,2,$23 +bne $23,L.707 +lda $13,5 +cmpeq $14,$31,$23 +bne $23,L.709 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.709: +L.707: +lda $12,5 +lds $f7,L.527 +cvttqc $f7,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,2,$23 +bne $23,L.711 +lda $13,6 +cmpeq $14,$31,$23 +bne $23,L.713 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.713: +L.711: +lda $12,5 +ldt $f6,L.414 +cvttqc $f6,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,2,$23 +bne $23,L.715 +lda $13,7 +cmpeq $14,$31,$23 +bne $23,L.717 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.717: +L.715: +lda $11,5 +lda $27,2 +stb $27,-61+256($sp) +lda $27,-61+256($sp) +ldb $27,($27) +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,2,$23 +bne $23,L.719 +lda $13,8 +cmpeq $14,$31,$23 +bne $23,L.721 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.721: +L.719: +lda $11,5 +lda $27,2 +stw $27,-64+256($sp) +lda $27,-64+256($sp) +ldw $11,($27) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,2,$23 +bne $23,L.723 +lda $13,9 +cmpeq $14,$31,$23 +bne $23,L.725 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.725: +L.723: +lda $11,5 +lda $27,2 +stl $27,-68+256($sp) +ldl $27,-68+256($sp) +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,2,$23 +bne $23,L.727 +lda $13,10 +cmpeq $14,$31,$23 +bne $23,L.729 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.729: +L.727: +lda $11,5 +lda $27,2 +stq $27,-80+256($sp) +ldq $27,-80+256($sp) +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,2,$23 +bne $23,L.731 +lda $13,11 +cmpeq $14,$31,$23 +bne $23,L.733 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.733: +L.731: +lda $11,5 +lda $27,2 +stl $27,-84+256($sp) +ldl $27,-84+256($sp) +zap $27,240,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,2,$23 +bne $23,L.735 +lda $13,12 +cmpeq $14,$31,$23 +bne $23,L.737 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.737: +L.735: +lda $11,5 +lds $f7,L.527 +cvttqc $f7,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,2,$23 +bne $23,L.739 +lda $13,13 +cmpeq $14,$31,$23 +bne $23,L.741 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.741: +L.739: +lda $11,5 +ldt $f6,L.414 +cvttqc $f6,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,2,$23 +bne $23,L.743 +lda $13,14 +cmpeq $14,$31,$23 +bne $23,L.745 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.745: +L.743: +lda $10,5 +lda $27,2 +stb $27,-61+256($sp) +lda $27,-61+256($sp) +ldb $10,($27) +cmpeq $10,2,$23 +bne $23,L.747 +lda $13,15 +cmpeq $14,$31,$23 +bne $23,L.749 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.749: +L.747: +lda $10,5 +lda $27,2 +stw $27,-64+256($sp) +lda $27,-64+256($sp) +ldw $10,($27) +cmpeq $10,2,$23 +bne $23,L.751 +lda $13,16 +cmpeq $14,$31,$23 +bne $23,L.753 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.753: +L.751: +lda $10,5 +lda $27,2 +stl $27,-68+256($sp) +ldl $10,-68+256($sp) +cmpeq $10,2,$23 +bne $23,L.755 +lda $13,17 +cmpeq $14,$31,$23 +bne $23,L.757 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.757: +L.755: +lda $10,5 +lda $27,2 +stq $27,-80+256($sp) +ldq $27,-80+256($sp) +mov $27,$10 +cmpeq $10,2,$23 +bne $23,L.759 +lda $13,18 +cmpeq $14,$31,$23 +bne $23,L.761 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.761: +L.759: +lda $10,5 +lda $27,2 +stl $27,-84+256($sp) +ldl $27,-84+256($sp) +zap $27,240,$27 +mov $27,$10 +cmpeq $10,2,$23 +bne $23,L.763 +lda $13,19 +cmpeq $14,$31,$23 +bne $23,L.765 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.765: +L.763: +lda $10,5 +lds $f7,L.527 +cvttqc $f7,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $10,-56+256($sp) +cmpeq $10,2,$23 +bne $23,L.767 +lda $13,20 +cmpeq $14,$31,$23 +bne $23,L.769 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.769: +L.767: +lda $10,5 +ldt $f6,L.414 +cvttqc $f6,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $10,-56+256($sp) +cmpeq $10,2,$23 +bne $23,L.771 +lda $13,21 +cmpeq $14,$31,$23 +bne $23,L.773 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.773: +L.771: +lda $9,5 +lda $27,2 +stb $27,-61+256($sp) +lda $27,-61+256($sp) +ldb $27,($27) +sll $27,8*(8-4),$9 +sra $9,8*(8-4),$9 +cmpeq $9,2,$23 +bne $23,L.775 +lda $13,22 +cmpeq $14,$31,$23 +bne $23,L.777 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.777: +L.775: +lda $9,5 +lda $27,2 +stw $27,-64+256($sp) +lda $27,-64+256($sp) +ldw $27,($27) +sll $27,8*(8-4),$9 +sra $9,8*(8-4),$9 +cmpeq $9,2,$23 +bne $23,L.779 +lda $13,23 +cmpeq $14,$31,$23 +bne $23,L.781 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.781: +L.779: +lda $9,5 +lda $27,2 +stl $27,-68+256($sp) +ldl $9,-68+256($sp) +cmpeq $9,2,$23 +bne $23,L.783 +lda $13,24 +cmpeq $14,$31,$23 +bne $23,L.785 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.785: +L.783: +lda $9,5 +lda $27,2 +stq $27,-80+256($sp) +ldq $9,-80+256($sp) +cmpeq $9,2,$23 +bne $23,L.787 +lda $13,25 +cmpeq $14,$31,$23 +bne $23,L.789 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.789: +L.787: +lda $9,5 +lda $27,2 +stl $27,-84+256($sp) +ldl $9,-84+256($sp) +zap $9,240,$9 +cmpeq $9,2,$23 +bne $23,L.791 +lda $13,26 +cmpeq $14,$31,$23 +bne $23,L.793 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.793: +L.791: +lda $9,5 +lds $f7,L.527 +cvttqc $f7,$f1 +stt $f1,-56+256($sp) +ldq $9,-56+256($sp) +cmpeq $9,2,$23 +bne $23,L.795 +lda $13,27 +cmpeq $14,$31,$23 +bne $23,L.797 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.797: +L.795: +lda $9,5 +ldt $f6,L.414 +cvttqc $f6,$f1 +stt $f1,-56+256($sp) +ldq $9,-56+256($sp) +cmpeq $9,2,$23 +bne $23,L.799 +lda $13,28 +cmpeq $14,$31,$23 +bne $23,L.801 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.801: +L.799: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stb $27,-61+256($sp) +lda $27,-61+256($sp) +ldb $27,($27) +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,2 +cmpeq $27,$25,$23 +bne $23,L.803 +lda $13,29 +cmpeq $14,$31,$23 +bne $23,L.805 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.805: +L.803: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stw $27,-64+256($sp) +lda $27,-64+256($sp) +ldw $27,($27) +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,2 +cmpeq $27,$25,$23 +bne $23,L.807 +lda $13,30 +cmpeq $14,$31,$23 +bne $23,L.809 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.809: +L.807: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stl $27,-68+256($sp) +ldl $27,-68+256($sp) +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,2 +cmpeq $27,$25,$23 +bne $23,L.811 +lda $13,31 +cmpeq $14,$31,$23 +bne $23,L.813 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.813: +L.811: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stq $27,-80+256($sp) +ldq $27,-80+256($sp) +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,2 +cmpeq $27,$25,$23 +bne $23,L.815 +lda $13,32 +cmpeq $14,$31,$23 +bne $23,L.817 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.817: +L.815: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stl $27,-84+256($sp) +ldl $25,-84+256($sp) +zap $25,240,$25 +stl $25,-60+256($sp) +ldl $25,-60+256($sp) +zap $25,240,$25 +cmpeq $25,$27,$23 +bne $23,L.819 +lda $13,33 +cmpeq $14,$31,$23 +bne $23,L.821 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.821: +L.819: +lda $27,5 +stl $27,-60+256($sp) +lds $f7,L.527 +lds $f30,L.826 +cmptlt $f7,$f30,$f1 +fbne $f1,L.824 +subs $f7,$f30,$f30 +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +addl $27,0x80000000,$27 +zap $27,240,$27 +stl $27,-112+256($sp) +br L.825 +L.824: +cvttqc $f7,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +stl $27,-112+256($sp) +L.825: +ldl $27,-112+256($sp) +zap $27,240,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,2 +cmpeq $27,$25,$23 +bne $23,L.827 +lda $13,34 +cmpeq $14,$31,$23 +bne $23,L.829 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.829: +L.827: +lda $27,5 +stl $27,-60+256($sp) +ldt $f6,L.414 +ldt $f30,L.834 +cmptlt $f6,$f30,$f1 +fbne $f1,L.832 +subt $f6,$f30,$f30 +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +addl $27,0x80000000,$27 +zap $27,240,$27 +stl $27,-116+256($sp) +br L.833 +L.832: +cvttqc $f6,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +stl $27,-116+256($sp) +L.833: +ldl $27,-116+256($sp) +zap $27,240,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,2 +cmpeq $27,$25,$23 +bne $23,L.835 +lda $13,35 +cmpeq $14,$31,$23 +bne $23,L.837 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.837: +L.835: +lds $f9,L.839 +lda $27,2 +stb $27,-61+256($sp) +lda $27,-61+256($sp) +ldb $27,($27) +stq $27,-56+256($sp) +ldt $f9,-56+256($sp) +cvtqs $f9,$f9 +lds $f30,L.527 +cmpteq $f9,$f30,$f1 +fbne $f1,L.840 +lda $13,36 +cmpeq $14,$31,$23 +bne $23,L.842 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.842: +L.840: +lds $f9,L.839 +lda $27,2 +stw $27,-64+256($sp) +lda $27,-64+256($sp) +ldw $27,($27) +stq $27,-56+256($sp) +ldt $f9,-56+256($sp) +cvtqs $f9,$f9 +lds $f30,L.527 +cmpteq $f9,$f30,$f1 +fbne $f1,L.844 +lda $13,37 +cmpeq $14,$31,$23 +bne $23,L.846 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.846: +L.844: +lds $f9,L.839 +lda $27,2 +stl $27,-68+256($sp) +lds $f9,-68+256($sp) +cvtlq $f9,$f9 +cvtqs $f9,$f9 +lds $f30,L.527 +cmpteq $f9,$f30,$f1 +fbne $f1,L.848 +lda $13,38 +cmpeq $14,$31,$23 +bne $23,L.850 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.850: +L.848: +lds $f9,L.839 +lda $27,2 +stq $27,-80+256($sp) +ldt $f9,-80+256($sp) +cvtqs $f9,$f9 +lds $f30,L.527 +cmpteq $f9,$f30,$f1 +fbne $f1,L.852 +lda $13,39 +cmpeq $14,$31,$23 +bne $23,L.854 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.854: +L.852: +lds $f9,L.839 +lda $27,2 +stl $27,-84+256($sp) +ldl $27,-84+256($sp) +zap $27,240,$27 +ldt $f30,L.594 +srl $27,1,$25 +stq $25,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +mult $f30,$f29,$f30 +and $27,1,$27 +stq $27,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +addt $f30,$f29,$f30 +cvtts $f30,$f9 +lds $f30,L.527 +cmpteq $f9,$f30,$f1 +fbne $f1,L.856 +lda $13,40 +cmpeq $14,$31,$23 +bne $23,L.858 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.858: +L.856: +lds $f9,L.839 +lds $f30,L.527 +fmov $f30,$f7 +fmov $f7,$f9 +cmpteq $f9,$f30,$f1 +fbne $f1,L.860 +lda $13,41 +cmpeq $14,$31,$23 +bne $23,L.862 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.862: +L.860: +lds $f9,L.839 +ldt $f6,L.414 +cvtts $f6,$f9 +lds $f30,L.527 +cmpteq $f9,$f30,$f1 +fbne $f1,L.864 +lda $13,42 +cmpeq $14,$31,$23 +bne $23,L.866 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.866: +L.864: +ldt $f8,L.868 +lda $27,2 +stb $27,-61+256($sp) +lda $27,-61+256($sp) +ldb $27,($27) +stq $27,-56+256($sp) +ldt $f8,-56+256($sp) +cvtqt $f8,$f8 +ldt $f30,L.414 +cmpteq $f8,$f30,$f1 +fbne $f1,L.869 +lda $13,43 +cmpeq $14,$31,$23 +bne $23,L.871 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.871: +L.869: +ldt $f8,L.868 +lda $27,2 +stw $27,-64+256($sp) +lda $27,-64+256($sp) +ldw $27,($27) +stq $27,-56+256($sp) +ldt $f8,-56+256($sp) +cvtqt $f8,$f8 +ldt $f30,L.414 +cmpteq $f8,$f30,$f1 +fbne $f1,L.873 +lda $13,44 +cmpeq $14,$31,$23 +bne $23,L.875 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.875: +L.873: +ldt $f8,L.868 +lda $27,2 +stl $27,-68+256($sp) +lds $f8,-68+256($sp) +cvtlq $f8,$f8 +cvtqt $f8,$f8 +ldt $f30,L.414 +cmpteq $f8,$f30,$f1 +fbne $f1,L.877 +lda $13,45 +cmpeq $14,$31,$23 +bne $23,L.879 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.879: +L.877: +ldt $f8,L.868 +lda $27,2 +stq $27,-80+256($sp) +ldt $f8,-80+256($sp) +cvtqt $f8,$f8 +ldt $f30,L.414 +cmpteq $f8,$f30,$f1 +fbne $f1,L.881 +lda $13,46 +cmpeq $14,$31,$23 +bne $23,L.883 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.883: +L.881: +ldt $f8,L.868 +lda $27,2 +stl $27,-84+256($sp) +ldl $27,-84+256($sp) +zap $27,240,$27 +ldt $f30,L.594 +srl $27,1,$25 +stq $25,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +mult $f30,$f29,$f30 +and $27,1,$27 +stq $27,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +addt $f30,$f29,$f8 +ldt $f30,L.414 +cmpteq $f8,$f30,$f1 +fbne $f1,L.885 +lda $13,47 +cmpeq $14,$31,$23 +bne $23,L.887 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.887: +L.885: +ldt $f8,L.868 +lds $f7,L.527 +cvtst $f7,$f8 +ldt $f30,L.414 +cmpteq $f8,$f30,$f1 +fbne $f1,L.889 +lda $13,48 +cmpeq $14,$31,$23 +bne $23,L.891 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.891: +L.889: +ldt $f8,L.868 +ldt $f30,L.414 +fmov $f30,$f6 +fmov $f6,$f8 +cmpteq $f8,$f30,$f1 +fbne $f1,L.893 +lda $13,49 +cmpeq $14,$31,$23 +bne $23,L.895 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.895: +L.893: +lda $12,5 +lda $27,2 +stb $27,-61+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +lda $25,-61+256($sp) +ldb $25,($25) +addl $27,$25,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,7,$23 +bne $23,L.897 +lda $13,50 +cmpeq $14,$31,$23 +bne $23,L.899 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.899: +L.897: +lda $12,5 +lda $27,2 +stw $27,-64+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +lda $25,-64+256($sp) +ldw $25,($25) +addl $27,$25,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,7,$23 +bne $23,L.901 +lda $13,51 +cmpeq $14,$31,$23 +bne $23,L.903 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.903: +L.901: +lda $12,5 +lda $27,2 +stl $27,-68+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +ldl $25,-68+256($sp) +addl $27,$25,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,7,$23 +bne $23,L.905 +lda $13,52 +cmpeq $14,$31,$23 +bne $23,L.907 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.907: +L.905: +lda $12,5 +lda $27,2 +stq $27,-80+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +ldq $25,-80+256($sp) +addq $27,$25,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,7,$23 +bne $23,L.909 +lda $13,53 +cmpeq $14,$31,$23 +bne $23,L.911 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.911: +L.909: +lda $12,5 +lda $27,2 +stl $27,-84+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +addl $27,$25,$27 +zap $27,240,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,7,$23 +bne $23,L.913 +lda $13,54 +cmpeq $14,$31,$23 +bne $23,L.915 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.915: +L.913: +lda $12,5 +lds $f7,L.527 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +stq $27,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqs $f30,$f30 +adds $f30,$f7,$f30 +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,7,$23 +bne $23,L.917 +lda $13,55 +cmpeq $14,$31,$23 +bne $23,L.919 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.919: +L.917: +lda $12,5 +ldt $f6,L.414 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +stq $27,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqt $f30,$f30 +addt $f30,$f6,$f30 +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,7,$23 +bne $23,L.921 +lda $13,56 +cmpeq $14,$31,$23 +bne $23,L.923 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.923: +L.921: +lda $11,5 +lda $27,2 +stb $27,-61+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +lda $25,-61+256($sp) +ldb $25,($25) +addl $27,$25,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,7,$23 +bne $23,L.925 +lda $13,57 +cmpeq $14,$31,$23 +bne $23,L.927 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.927: +L.925: +lda $11,5 +lda $27,2 +stw $27,-64+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +lda $25,-64+256($sp) +ldw $25,($25) +addl $27,$25,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,7,$23 +bne $23,L.929 +lda $13,58 +cmpeq $14,$31,$23 +bne $23,L.931 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.931: +L.929: +lda $11,5 +lda $27,2 +stl $27,-68+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +ldl $25,-68+256($sp) +addl $27,$25,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,7,$23 +bne $23,L.933 +lda $13,59 +cmpeq $14,$31,$23 +bne $23,L.935 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.935: +L.933: +lda $11,5 +lda $27,2 +stq $27,-80+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +ldq $25,-80+256($sp) +addq $27,$25,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,7,$23 +bne $23,L.937 +lda $13,60 +cmpeq $14,$31,$23 +bne $23,L.939 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.939: +L.937: +lda $11,5 +lda $27,2 +stl $27,-84+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +addl $27,$25,$27 +zap $27,240,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,7,$23 +bne $23,L.941 +lda $13,61 +cmpeq $14,$31,$23 +bne $23,L.943 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.943: +L.941: +lda $11,5 +lds $f7,L.527 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +stq $27,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqs $f30,$f30 +adds $f30,$f7,$f30 +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,7,$23 +bne $23,L.945 +lda $13,62 +cmpeq $14,$31,$23 +bne $23,L.947 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.947: +L.945: +lda $11,5 +ldt $f6,L.414 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +stq $27,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqt $f30,$f30 +addt $f30,$f6,$f30 +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,7,$23 +bne $23,L.949 +lda $13,63 +cmpeq $14,$31,$23 +bne $23,L.951 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.951: +L.949: +lda $10,5 +lda $27,2 +stb $27,-61+256($sp) +lda $27,-61+256($sp) +ldb $27,($27) +addl $10,$27,$10 +cmpeq $10,7,$23 +bne $23,L.953 +lda $13,64 +cmpeq $14,$31,$23 +bne $23,L.955 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.955: +L.953: +lda $10,5 +lda $27,2 +stw $27,-64+256($sp) +lda $27,-64+256($sp) +ldw $27,($27) +addl $10,$27,$10 +cmpeq $10,7,$23 +bne $23,L.957 +lda $13,65 +cmpeq $14,$31,$23 +bne $23,L.959 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.959: +L.957: +lda $10,5 +lda $27,2 +stl $27,-68+256($sp) +ldl $27,-68+256($sp) +addl $10,$27,$10 +cmpeq $10,7,$23 +bne $23,L.961 +lda $13,66 +cmpeq $14,$31,$23 +bne $23,L.963 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.963: +L.961: +lda $10,5 +lda $27,2 +stq $27,-80+256($sp) +sll $10,8*(8-4),$27 +sra $27,8*(8-4),$27 +ldq $25,-80+256($sp) +addq $27,$25,$27 +mov $27,$10 +cmpeq $10,7,$23 +bne $23,L.965 +lda $13,67 +cmpeq $14,$31,$23 +bne $23,L.967 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.967: +L.965: +lda $10,5 +lda $27,2 +stl $27,-84+256($sp) +mov $10,$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +addl $27,$25,$27 +zap $27,240,$27 +mov $27,$10 +cmpeq $10,7,$23 +bne $23,L.969 +lda $13,68 +cmpeq $14,$31,$23 +bne $23,L.971 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.971: +L.969: +lda $10,5 +lds $f7,L.527 +stq $10,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqs $f30,$f30 +adds $f30,$f7,$f30 +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $10,-56+256($sp) +cmpeq $10,7,$23 +bne $23,L.973 +lda $13,69 +cmpeq $14,$31,$23 +bne $23,L.975 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.975: +L.973: +lda $10,5 +ldt $f6,L.414 +stq $10,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqt $f30,$f30 +addt $f30,$f6,$f30 +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $10,-56+256($sp) +cmpeq $10,7,$23 +bne $23,L.977 +lda $13,70 +cmpeq $14,$31,$23 +bne $23,L.979 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.979: +L.977: +lda $9,5 +lda $27,2 +stb $27,-61+256($sp) +lda $27,-61+256($sp) +ldb $27,($27) +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +addq $9,$27,$9 +cmpeq $9,7,$23 +bne $23,L.981 +lda $13,71 +cmpeq $14,$31,$23 +bne $23,L.983 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.983: +L.981: +lda $9,5 +lda $27,2 +stw $27,-64+256($sp) +lda $27,-64+256($sp) +ldw $27,($27) +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +addq $9,$27,$9 +cmpeq $9,7,$23 +bne $23,L.985 +lda $13,72 +cmpeq $14,$31,$23 +bne $23,L.987 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.987: +L.985: +lda $9,5 +lda $27,2 +stl $27,-68+256($sp) +ldl $27,-68+256($sp) +addq $9,$27,$9 +cmpeq $9,7,$23 +bne $23,L.989 +lda $13,73 +cmpeq $14,$31,$23 +bne $23,L.991 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.991: +L.989: +lda $9,5 +lda $27,2 +stq $27,-80+256($sp) +ldq $27,-80+256($sp) +addq $9,$27,$9 +cmpeq $9,7,$23 +bne $23,L.993 +lda $13,74 +cmpeq $14,$31,$23 +bne $23,L.995 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.995: +L.993: +lda $9,5 +lda $27,2 +stl $27,-84+256($sp) +ldl $27,-84+256($sp) +zap $27,240,$27 +addq $9,$27,$9 +cmpeq $9,7,$23 +bne $23,L.997 +lda $13,75 +cmpeq $14,$31,$23 +bne $23,L.999 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.999: +L.997: +lda $9,5 +lds $f7,L.527 +stq $9,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqs $f30,$f30 +adds $f30,$f7,$f30 +cvttqc $f30,$f1 +stt $f1,-56+256($sp) +ldq $9,-56+256($sp) +cmpeq $9,7,$23 +bne $23,L.1001 +lda $13,76 +cmpeq $14,$31,$23 +bne $23,L.1003 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1003: +L.1001: +lda $9,5 +ldt $f6,L.414 +stq $9,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqt $f30,$f30 +addt $f30,$f6,$f30 +cvttqc $f30,$f1 +stt $f1,-56+256($sp) +ldq $9,-56+256($sp) +cmpeq $9,7,$23 +bne $23,L.1005 +lda $13,77 +cmpeq $14,$31,$23 +bne $23,L.1007 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1007: +L.1005: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stb $27,-61+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,-61+256($sp) +ldb $25,($25) +addl $27,$25,$27 +zap $27,240,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,7 +cmpeq $27,$25,$23 +bne $23,L.1009 +lda $13,78 +cmpeq $14,$31,$23 +bne $23,L.1011 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1011: +L.1009: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stw $27,-64+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,-64+256($sp) +ldw $25,($25) +addl $27,$25,$27 +zap $27,240,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,7 +cmpeq $27,$25,$23 +bne $23,L.1013 +lda $13,79 +cmpeq $14,$31,$23 +bne $23,L.1015 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1015: +L.1013: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stl $27,-68+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +ldl $25,-68+256($sp) +addl $27,$25,$27 +zap $27,240,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,7 +cmpeq $27,$25,$23 +bne $23,L.1017 +lda $13,80 +cmpeq $14,$31,$23 +bne $23,L.1019 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1019: +L.1017: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stq $27,-80+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +ldq $25,-80+256($sp) +addq $27,$25,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,7 +cmpeq $27,$25,$23 +bne $23,L.1021 +lda $13,81 +cmpeq $14,$31,$23 +bne $23,L.1023 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1023: +L.1021: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stl $27,-84+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +addl $27,$25,$27 +zap $27,240,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,7 +cmpeq $27,$25,$23 +bne $23,L.1025 +lda $13,82 +cmpeq $14,$31,$23 +bne $23,L.1027 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1027: +L.1025: +lda $27,5 +stl $27,-60+256($sp) +lds $f7,L.527 +ldl $27,-60+256($sp) +zap $27,240,$27 +ldt $f30,L.594 +srl $27,1,$25 +stq $25,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +mult $f30,$f29,$f30 +and $27,1,$27 +stq $27,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +addt $f30,$f29,$f30 +cvtts $f30,$f30 +adds $f30,$f7,$f30 +lds $f29,L.826 +cmptlt $f30,$f29,$f1 +fbne $f1,L.1030 +subs $f30,$f29,$f29 +cvttqc $f29,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +addl $27,0x80000000,$27 +zap $27,240,$27 +stl $27,-120+256($sp) +br L.1031 +L.1030: +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +stl $27,-120+256($sp) +L.1031: +ldl $27,-120+256($sp) +zap $27,240,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,7 +cmpeq $27,$25,$23 +bne $23,L.1032 +lda $13,83 +cmpeq $14,$31,$23 +bne $23,L.1034 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1034: +L.1032: +lda $27,5 +stl $27,-60+256($sp) +ldt $f6,L.414 +ldl $27,-60+256($sp) +zap $27,240,$27 +ldt $f30,L.594 +srl $27,1,$25 +stq $25,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +mult $f30,$f29,$f30 +and $27,1,$27 +stq $27,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +addt $f30,$f29,$f30 +addt $f30,$f6,$f30 +ldt $f29,L.834 +cmptlt $f30,$f29,$f1 +fbne $f1,L.1037 +subt $f30,$f29,$f29 +cvttqc $f29,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +addl $27,0x80000000,$27 +zap $27,240,$27 +stl $27,-124+256($sp) +br L.1038 +L.1037: +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +stl $27,-124+256($sp) +L.1038: +ldl $27,-124+256($sp) +zap $27,240,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,7 +cmpeq $27,$25,$23 +bne $23,L.1039 +lda $13,84 +cmpeq $14,$31,$23 +bne $23,L.1041 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1041: +L.1039: +lds $f9,L.839 +lda $27,2 +stb $27,-61+256($sp) +lda $27,-61+256($sp) +ldb $27,($27) +stq $27,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqs $f30,$f30 +adds $f9,$f30,$f9 +lds $f30,L.1045 +cmpteq $f9,$f30,$f1 +fbne $f1,L.1043 +lda $13,85 +cmpeq $14,$31,$23 +bne $23,L.1046 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1046: +L.1043: +lds $f9,L.839 +lda $27,2 +stw $27,-64+256($sp) +lda $27,-64+256($sp) +ldw $27,($27) +stq $27,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqs $f30,$f30 +adds $f9,$f30,$f9 +lds $f30,L.1045 +cmpteq $f9,$f30,$f1 +fbne $f1,L.1048 +lda $13,86 +cmpeq $14,$31,$23 +bne $23,L.1050 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1050: +L.1048: +lds $f9,L.839 +lda $27,2 +stl $27,-68+256($sp) +lds $f30,-68+256($sp) +cvtlq $f30,$f30 +cvtqs $f30,$f30 +adds $f9,$f30,$f9 +lds $f30,L.1045 +cmpteq $f9,$f30,$f1 +fbne $f1,L.1052 +lda $13,87 +cmpeq $14,$31,$23 +bne $23,L.1054 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1054: +L.1052: +lds $f9,L.839 +lda $27,2 +stq $27,-80+256($sp) +ldt $f30,-80+256($sp) +cvtqs $f30,$f30 +adds $f9,$f30,$f9 +lds $f30,L.1045 +cmpteq $f9,$f30,$f1 +fbne $f1,L.1056 +lda $13,88 +cmpeq $14,$31,$23 +bne $23,L.1058 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1058: +L.1056: +lds $f9,L.839 +lda $27,2 +stl $27,-84+256($sp) +ldl $27,-84+256($sp) +zap $27,240,$27 +ldt $f30,L.594 +srl $27,1,$25 +stq $25,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +mult $f30,$f29,$f30 +and $27,1,$27 +stq $27,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +addt $f30,$f29,$f30 +cvtts $f30,$f30 +adds $f9,$f30,$f9 +lds $f30,L.1045 +cmpteq $f9,$f30,$f1 +fbne $f1,L.1060 +lda $13,89 +cmpeq $14,$31,$23 +bne $23,L.1062 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1062: +L.1060: +lds $f9,L.839 +lds $f7,L.527 +adds $f9,$f7,$f9 +lds $f30,L.1045 +cmpteq $f9,$f30,$f1 +fbne $f1,L.1064 +lda $13,90 +cmpeq $14,$31,$23 +bne $23,L.1066 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1066: +L.1064: +lds $f9,L.839 +ldt $f6,L.414 +cvtst $f9,$f30 +addt $f30,$f6,$f30 +cvtts $f30,$f9 +lds $f30,L.1045 +cmpteq $f9,$f30,$f1 +fbne $f1,L.1068 +lda $13,91 +cmpeq $14,$31,$23 +bne $23,L.1070 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1070: +L.1068: +ldt $f8,L.868 +lda $27,2 +stb $27,-61+256($sp) +lda $27,-61+256($sp) +ldb $27,($27) +stq $27,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqt $f30,$f30 +addt $f8,$f30,$f8 +ldt $f30,L.1074 +cmpteq $f8,$f30,$f1 +fbne $f1,L.1072 +lda $13,92 +cmpeq $14,$31,$23 +bne $23,L.1075 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1075: +L.1072: +ldt $f8,L.868 +lda $27,2 +stw $27,-64+256($sp) +lda $27,-64+256($sp) +ldw $27,($27) +stq $27,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqt $f30,$f30 +addt $f8,$f30,$f8 +ldt $f30,L.1074 +cmpteq $f8,$f30,$f1 +fbne $f1,L.1077 +lda $13,93 +cmpeq $14,$31,$23 +bne $23,L.1079 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1079: +L.1077: +ldt $f8,L.868 +lda $27,2 +stl $27,-68+256($sp) +lds $f30,-68+256($sp) +cvtlq $f30,$f30 +cvtqt $f30,$f30 +addt $f8,$f30,$f8 +ldt $f30,L.1074 +cmpteq $f8,$f30,$f1 +fbne $f1,L.1081 +lda $13,94 +cmpeq $14,$31,$23 +bne $23,L.1083 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1083: +L.1081: +ldt $f8,L.868 +lda $27,2 +stq $27,-80+256($sp) +ldt $f30,-80+256($sp) +cvtqt $f30,$f30 +addt $f8,$f30,$f8 +ldt $f30,L.1074 +cmpteq $f8,$f30,$f1 +fbne $f1,L.1085 +lda $13,95 +cmpeq $14,$31,$23 +bne $23,L.1087 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1087: +L.1085: +ldt $f8,L.868 +lda $27,2 +stl $27,-84+256($sp) +ldl $27,-84+256($sp) +zap $27,240,$27 +ldt $f30,L.594 +srl $27,1,$25 +stq $25,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +mult $f30,$f29,$f30 +and $27,1,$27 +stq $27,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +addt $f30,$f29,$f30 +addt $f8,$f30,$f8 +ldt $f30,L.1074 +cmpteq $f8,$f30,$f1 +fbne $f1,L.1089 +lda $13,96 +cmpeq $14,$31,$23 +bne $23,L.1091 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1091: +L.1089: +ldt $f8,L.868 +lds $f7,L.527 +cvtst $f7,$f30 +addt $f8,$f30,$f8 +ldt $f30,L.1074 +cmpteq $f8,$f30,$f1 +fbne $f1,L.1093 +lda $13,97 +cmpeq $14,$31,$23 +bne $23,L.1095 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1095: +L.1093: +ldt $f8,L.868 +ldt $f6,L.414 +addt $f8,$f6,$f8 +ldt $f30,L.1074 +cmpteq $f8,$f30,$f1 +fbne $f1,L.1097 +lda $13,98 +cmpeq $14,$31,$23 +bne $23,L.1099 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1099: +L.1097: +lda $12,5 +lda $27,2 +stb $27,-61+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +lda $25,-61+256($sp) +ldb $25,($25) +subl $27,$25,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,3,$23 +bne $23,L.1101 +lda $13,99 +cmpeq $14,$31,$23 +bne $23,L.1103 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1103: +L.1101: +lda $12,5 +lda $27,2 +stw $27,-64+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +lda $25,-64+256($sp) +ldw $25,($25) +subl $27,$25,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,3,$23 +bne $23,L.1105 +lda $13,100 +cmpeq $14,$31,$23 +bne $23,L.1107 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1107: +L.1105: +lda $12,5 +lda $27,2 +stl $27,-68+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +ldl $25,-68+256($sp) +subl $27,$25,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,3,$23 +bne $23,L.1109 +lda $13,101 +cmpeq $14,$31,$23 +bne $23,L.1111 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1111: +L.1109: +lda $12,5 +lda $27,2 +stq $27,-80+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +ldq $25,-80+256($sp) +subq $27,$25,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,3,$23 +bne $23,L.1113 +lda $13,102 +cmpeq $14,$31,$23 +bne $23,L.1115 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1115: +L.1113: +lda $12,5 +lda $27,2 +stl $27,-84+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +subl $27,$25,$27 +zap $27,240,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,3,$23 +bne $23,L.1117 +lda $13,103 +cmpeq $14,$31,$23 +bne $23,L.1119 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1119: +L.1117: +lda $12,5 +lds $f7,L.527 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +stq $27,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqs $f30,$f30 +subs $f30,$f7,$f30 +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,3,$23 +bne $23,L.1121 +lda $13,104 +cmpeq $14,$31,$23 +bne $23,L.1123 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1123: +L.1121: +lda $12,5 +ldt $f6,L.414 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +stq $27,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqt $f30,$f30 +subt $f30,$f6,$f30 +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,3,$23 +bne $23,L.1125 +lda $13,105 +cmpeq $14,$31,$23 +bne $23,L.1127 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1127: +L.1125: +lda $11,5 +lda $27,2 +stb $27,-61+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +lda $25,-61+256($sp) +ldb $25,($25) +subl $27,$25,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,3,$23 +bne $23,L.1129 +lda $13,106 +cmpeq $14,$31,$23 +bne $23,L.1131 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1131: +L.1129: +lda $11,5 +lda $27,2 +stw $27,-64+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +lda $25,-64+256($sp) +ldw $25,($25) +subl $27,$25,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,3,$23 +bne $23,L.1133 +lda $13,107 +cmpeq $14,$31,$23 +bne $23,L.1135 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1135: +L.1133: +lda $11,5 +lda $27,2 +stl $27,-68+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +ldl $25,-68+256($sp) +subl $27,$25,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,3,$23 +bne $23,L.1137 +lda $13,108 +cmpeq $14,$31,$23 +bne $23,L.1139 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1139: +L.1137: +lda $11,5 +lda $27,2 +stq $27,-80+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +ldq $25,-80+256($sp) +subq $27,$25,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,3,$23 +bne $23,L.1141 +lda $13,109 +cmpeq $14,$31,$23 +bne $23,L.1143 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1143: +L.1141: +lda $11,5 +lda $27,2 +stl $27,-84+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +subl $27,$25,$27 +zap $27,240,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,3,$23 +bne $23,L.1145 +lda $13,110 +cmpeq $14,$31,$23 +bne $23,L.1147 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1147: +L.1145: +lda $11,5 +lds $f7,L.527 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +stq $27,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqs $f30,$f30 +subs $f30,$f7,$f30 +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,3,$23 +bne $23,L.1149 +lda $13,111 +cmpeq $14,$31,$23 +bne $23,L.1151 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1151: +L.1149: +lda $11,5 +ldt $f6,L.414 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +stq $27,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqt $f30,$f30 +subt $f30,$f6,$f30 +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,3,$23 +bne $23,L.1153 +lda $13,112 +cmpeq $14,$31,$23 +bne $23,L.1155 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1155: +L.1153: +lda $10,5 +lda $27,2 +stb $27,-61+256($sp) +lda $27,-61+256($sp) +ldb $27,($27) +subl $10,$27,$10 +cmpeq $10,3,$23 +bne $23,L.1157 +lda $13,113 +cmpeq $14,$31,$23 +bne $23,L.1159 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1159: +L.1157: +lda $10,5 +lda $27,2 +stw $27,-64+256($sp) +lda $27,-64+256($sp) +ldw $27,($27) +subl $10,$27,$10 +cmpeq $10,3,$23 +bne $23,L.1161 +lda $13,114 +cmpeq $14,$31,$23 +bne $23,L.1163 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1163: +L.1161: +lda $10,5 +lda $27,2 +stl $27,-68+256($sp) +ldl $27,-68+256($sp) +subl $10,$27,$10 +cmpeq $10,3,$23 +bne $23,L.1165 +lda $13,115 +cmpeq $14,$31,$23 +bne $23,L.1167 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1167: +L.1165: +lda $10,5 +lda $27,2 +stq $27,-80+256($sp) +sll $10,8*(8-4),$27 +sra $27,8*(8-4),$27 +ldq $25,-80+256($sp) +subq $27,$25,$27 +mov $27,$10 +cmpeq $10,3,$23 +bne $23,L.1169 +lda $13,116 +cmpeq $14,$31,$23 +bne $23,L.1171 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1171: +L.1169: +lda $10,5 +lda $27,2 +stl $27,-84+256($sp) +mov $10,$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +subl $27,$25,$27 +zap $27,240,$27 +mov $27,$10 +cmpeq $10,3,$23 +bne $23,L.1173 +lda $13,117 +cmpeq $14,$31,$23 +bne $23,L.1175 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1175: +L.1173: +lda $10,5 +lds $f7,L.527 +stq $10,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqs $f30,$f30 +subs $f30,$f7,$f30 +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $10,-56+256($sp) +cmpeq $10,3,$23 +bne $23,L.1177 +lda $13,118 +cmpeq $14,$31,$23 +bne $23,L.1179 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1179: +L.1177: +lda $10,5 +ldt $f6,L.414 +stq $10,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqt $f30,$f30 +subt $f30,$f6,$f30 +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $10,-56+256($sp) +cmpeq $10,3,$23 +bne $23,L.1181 +lda $13,119 +cmpeq $14,$31,$23 +bne $23,L.1183 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1183: +L.1181: +lda $9,5 +lda $27,2 +stb $27,-61+256($sp) +lda $27,-61+256($sp) +ldb $27,($27) +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +subq $9,$27,$9 +cmpeq $9,3,$23 +bne $23,L.1185 +lda $13,120 +cmpeq $14,$31,$23 +bne $23,L.1187 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1187: +L.1185: +lda $9,5 +lda $27,2 +stw $27,-64+256($sp) +lda $27,-64+256($sp) +ldw $27,($27) +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +subq $9,$27,$9 +cmpeq $9,3,$23 +bne $23,L.1189 +lda $13,121 +cmpeq $14,$31,$23 +bne $23,L.1191 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1191: +L.1189: +lda $9,5 +lda $27,2 +stl $27,-68+256($sp) +ldl $27,-68+256($sp) +subq $9,$27,$9 +cmpeq $9,3,$23 +bne $23,L.1193 +lda $13,122 +cmpeq $14,$31,$23 +bne $23,L.1195 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1195: +L.1193: +lda $9,5 +lda $27,2 +stq $27,-80+256($sp) +ldq $27,-80+256($sp) +subq $9,$27,$9 +cmpeq $9,3,$23 +bne $23,L.1197 +lda $13,123 +cmpeq $14,$31,$23 +bne $23,L.1199 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1199: +L.1197: +lda $9,5 +lda $27,2 +stl $27,-84+256($sp) +ldl $27,-84+256($sp) +zap $27,240,$27 +subq $9,$27,$9 +cmpeq $9,3,$23 +bne $23,L.1201 +lda $13,124 +cmpeq $14,$31,$23 +bne $23,L.1203 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1203: +L.1201: +lda $9,5 +lds $f7,L.527 +stq $9,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqs $f30,$f30 +subs $f30,$f7,$f30 +cvttqc $f30,$f1 +stt $f1,-56+256($sp) +ldq $9,-56+256($sp) +cmpeq $9,3,$23 +bne $23,L.1205 +lda $13,125 +cmpeq $14,$31,$23 +bne $23,L.1207 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1207: +L.1205: +lda $9,5 +ldt $f6,L.414 +stq $9,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqt $f30,$f30 +subt $f30,$f6,$f30 +cvttqc $f30,$f1 +stt $f1,-56+256($sp) +ldq $9,-56+256($sp) +cmpeq $9,3,$23 +bne $23,L.1209 +lda $13,126 +cmpeq $14,$31,$23 +bne $23,L.1211 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1211: +L.1209: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stb $27,-61+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,-61+256($sp) +ldb $25,($25) +subl $27,$25,$27 +zap $27,240,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,3 +cmpeq $27,$25,$23 +bne $23,L.1213 +lda $13,127 +cmpeq $14,$31,$23 +bne $23,L.1215 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1215: +L.1213: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stw $27,-64+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,-64+256($sp) +ldw $25,($25) +subl $27,$25,$27 +zap $27,240,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,3 +cmpeq $27,$25,$23 +bne $23,L.1217 +lda $13,128 +cmpeq $14,$31,$23 +bne $23,L.1219 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1219: +L.1217: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stl $27,-68+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +ldl $25,-68+256($sp) +subl $27,$25,$27 +zap $27,240,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,3 +cmpeq $27,$25,$23 +bne $23,L.1221 +lda $13,129 +cmpeq $14,$31,$23 +bne $23,L.1223 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1223: +L.1221: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stq $27,-80+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +ldq $25,-80+256($sp) +subq $27,$25,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,3 +cmpeq $27,$25,$23 +bne $23,L.1225 +lda $13,130 +cmpeq $14,$31,$23 +bne $23,L.1227 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1227: +L.1225: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stl $27,-84+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +subl $27,$25,$27 +zap $27,240,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,3 +cmpeq $27,$25,$23 +bne $23,L.1229 +lda $13,131 +cmpeq $14,$31,$23 +bne $23,L.1231 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1231: +L.1229: +lda $27,5 +stl $27,-60+256($sp) +lds $f7,L.527 +ldl $27,-60+256($sp) +zap $27,240,$27 +ldt $f30,L.594 +srl $27,1,$25 +stq $25,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +mult $f30,$f29,$f30 +and $27,1,$27 +stq $27,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +addt $f30,$f29,$f30 +cvtts $f30,$f30 +subs $f30,$f7,$f30 +lds $f29,L.826 +cmptlt $f30,$f29,$f1 +fbne $f1,L.1234 +subs $f30,$f29,$f29 +cvttqc $f29,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +addl $27,0x80000000,$27 +zap $27,240,$27 +stl $27,-128+256($sp) +br L.1235 +L.1234: +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +stl $27,-128+256($sp) +L.1235: +ldl $27,-128+256($sp) +zap $27,240,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,3 +cmpeq $27,$25,$23 +bne $23,L.1236 +lda $13,132 +cmpeq $14,$31,$23 +bne $23,L.1238 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1238: +L.1236: +lda $27,5 +stl $27,-60+256($sp) +ldt $f6,L.414 +ldl $27,-60+256($sp) +zap $27,240,$27 +ldt $f30,L.594 +srl $27,1,$25 +stq $25,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +mult $f30,$f29,$f30 +and $27,1,$27 +stq $27,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +addt $f30,$f29,$f30 +subt $f30,$f6,$f30 +ldt $f29,L.834 +cmptlt $f30,$f29,$f1 +fbne $f1,L.1241 +subt $f30,$f29,$f29 +cvttqc $f29,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +addl $27,0x80000000,$27 +zap $27,240,$27 +stl $27,-132+256($sp) +br L.1242 +L.1241: +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +stl $27,-132+256($sp) +L.1242: +ldl $27,-132+256($sp) +zap $27,240,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,3 +cmpeq $27,$25,$23 +bne $23,L.1243 +lda $13,133 +cmpeq $14,$31,$23 +bne $23,L.1245 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1245: +L.1243: +lds $f9,L.839 +lda $27,2 +stb $27,-61+256($sp) +lda $27,-61+256($sp) +ldb $27,($27) +stq $27,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqs $f30,$f30 +subs $f9,$f30,$f9 +lds $f30,L.1249 +cmpteq $f9,$f30,$f1 +fbne $f1,L.1247 +lda $13,134 +cmpeq $14,$31,$23 +bne $23,L.1250 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1250: +L.1247: +lds $f9,L.839 +lda $27,2 +stw $27,-64+256($sp) +lda $27,-64+256($sp) +ldw $27,($27) +stq $27,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqs $f30,$f30 +subs $f9,$f30,$f9 +lds $f30,L.1249 +cmpteq $f9,$f30,$f1 +fbne $f1,L.1252 +lda $13,135 +cmpeq $14,$31,$23 +bne $23,L.1254 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1254: +L.1252: +lds $f9,L.839 +lda $27,2 +stl $27,-68+256($sp) +lds $f30,-68+256($sp) +cvtlq $f30,$f30 +cvtqs $f30,$f30 +subs $f9,$f30,$f9 +lds $f30,L.1249 +cmpteq $f9,$f30,$f1 +fbne $f1,L.1256 +lda $13,136 +cmpeq $14,$31,$23 +bne $23,L.1258 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1258: +L.1256: +lds $f9,L.839 +lda $27,2 +stq $27,-80+256($sp) +ldt $f30,-80+256($sp) +cvtqs $f30,$f30 +subs $f9,$f30,$f9 +lds $f30,L.1249 +cmpteq $f9,$f30,$f1 +fbne $f1,L.1260 +lda $13,137 +cmpeq $14,$31,$23 +bne $23,L.1262 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1262: +L.1260: +lds $f9,L.839 +lda $27,2 +stl $27,-84+256($sp) +ldl $27,-84+256($sp) +zap $27,240,$27 +ldt $f30,L.594 +srl $27,1,$25 +stq $25,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +mult $f30,$f29,$f30 +and $27,1,$27 +stq $27,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +addt $f30,$f29,$f30 +cvtts $f30,$f30 +subs $f9,$f30,$f9 +lds $f30,L.1249 +cmpteq $f9,$f30,$f1 +fbne $f1,L.1264 +lda $13,138 +cmpeq $14,$31,$23 +bne $23,L.1266 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1266: +L.1264: +lds $f9,L.839 +lds $f7,L.527 +subs $f9,$f7,$f9 +lds $f30,L.1249 +cmpteq $f9,$f30,$f1 +fbne $f1,L.1268 +lda $13,139 +cmpeq $14,$31,$23 +bne $23,L.1270 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1270: +L.1268: +lds $f9,L.839 +ldt $f6,L.414 +cvtst $f9,$f30 +subt $f30,$f6,$f30 +cvtts $f30,$f9 +lds $f30,L.1249 +cmpteq $f9,$f30,$f1 +fbne $f1,L.1272 +lda $13,140 +cmpeq $14,$31,$23 +bne $23,L.1274 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1274: +L.1272: +ldt $f8,L.868 +lda $27,2 +stb $27,-61+256($sp) +lda $27,-61+256($sp) +ldb $27,($27) +stq $27,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqt $f30,$f30 +subt $f8,$f30,$f8 +ldt $f30,L.1278 +cmpteq $f8,$f30,$f1 +fbne $f1,L.1276 +lda $13,141 +cmpeq $14,$31,$23 +bne $23,L.1279 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1279: +L.1276: +ldt $f8,L.868 +lda $27,2 +stw $27,-64+256($sp) +lda $27,-64+256($sp) +ldw $27,($27) +stq $27,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqt $f30,$f30 +subt $f8,$f30,$f8 +ldt $f30,L.1278 +cmpteq $f8,$f30,$f1 +fbne $f1,L.1281 +lda $13,142 +cmpeq $14,$31,$23 +bne $23,L.1283 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1283: +L.1281: +ldt $f8,L.868 +lda $27,2 +stl $27,-68+256($sp) +lds $f30,-68+256($sp) +cvtlq $f30,$f30 +cvtqt $f30,$f30 +subt $f8,$f30,$f8 +ldt $f30,L.1278 +cmpteq $f8,$f30,$f1 +fbne $f1,L.1285 +lda $13,143 +cmpeq $14,$31,$23 +bne $23,L.1287 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1287: +L.1285: +ldt $f8,L.868 +lda $27,2 +stq $27,-80+256($sp) +ldt $f30,-80+256($sp) +cvtqt $f30,$f30 +subt $f8,$f30,$f8 +ldt $f30,L.1278 +cmpteq $f8,$f30,$f1 +fbne $f1,L.1289 +lda $13,144 +cmpeq $14,$31,$23 +bne $23,L.1291 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1291: +L.1289: +ldt $f8,L.868 +lda $27,2 +stl $27,-84+256($sp) +ldl $27,-84+256($sp) +zap $27,240,$27 +ldt $f30,L.594 +srl $27,1,$25 +stq $25,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +mult $f30,$f29,$f30 +and $27,1,$27 +stq $27,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +addt $f30,$f29,$f30 +subt $f8,$f30,$f8 +ldt $f30,L.1278 +cmpteq $f8,$f30,$f1 +fbne $f1,L.1293 +lda $13,145 +cmpeq $14,$31,$23 +bne $23,L.1295 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1295: +L.1293: +ldt $f8,L.868 +lds $f7,L.527 +cvtst $f7,$f30 +subt $f8,$f30,$f8 +ldt $f30,L.1278 +cmpteq $f8,$f30,$f1 +fbne $f1,L.1297 +lda $13,146 +cmpeq $14,$31,$23 +bne $23,L.1299 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1299: +L.1297: +ldt $f8,L.868 +ldt $f6,L.414 +subt $f8,$f6,$f8 +ldt $f30,L.1278 +cmpteq $f8,$f30,$f1 +fbne $f1,L.1301 +lda $13,147 +cmpeq $14,$31,$23 +bne $23,L.1303 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1303: +L.1301: +lda $12,5 +lda $27,2 +stb $27,-61+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +lda $25,-61+256($sp) +ldb $25,($25) +mull $27,$25,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,10,$23 +bne $23,L.1305 +lda $13,148 +cmpeq $14,$31,$23 +bne $23,L.1307 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1307: +L.1305: +lda $12,5 +lda $27,2 +stw $27,-64+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +lda $25,-64+256($sp) +ldw $25,($25) +mull $27,$25,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,10,$23 +bne $23,L.1309 +lda $13,149 +cmpeq $14,$31,$23 +bne $23,L.1311 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1311: +L.1309: +lda $12,5 +lda $27,2 +stl $27,-68+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +ldl $25,-68+256($sp) +mull $27,$25,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,10,$23 +bne $23,L.1313 +lda $13,150 +cmpeq $14,$31,$23 +bne $23,L.1315 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1315: +L.1313: +lda $12,5 +lda $27,2 +stq $27,-80+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +ldq $25,-80+256($sp) +mulq $27,$25,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,10,$23 +bne $23,L.1317 +lda $13,151 +cmpeq $14,$31,$23 +bne $23,L.1319 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1319: +L.1317: +lda $12,5 +lda $27,2 +stl $27,-84+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +mull $27,$25,$27 +zap $27,240,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,10,$23 +bne $23,L.1321 +lda $13,152 +cmpeq $14,$31,$23 +bne $23,L.1323 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1323: +L.1321: +lda $12,5 +lds $f7,L.527 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +stq $27,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqs $f30,$f30 +muls $f30,$f7,$f30 +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,10,$23 +bne $23,L.1325 +lda $13,153 +cmpeq $14,$31,$23 +bne $23,L.1327 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1327: +L.1325: +lda $12,5 +ldt $f6,L.414 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +stq $27,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqt $f30,$f30 +mult $f30,$f6,$f30 +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,10,$23 +bne $23,L.1329 +lda $13,154 +cmpeq $14,$31,$23 +bne $23,L.1331 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1331: +L.1329: +lda $11,5 +lda $27,2 +stb $27,-61+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +lda $25,-61+256($sp) +ldb $25,($25) +mull $27,$25,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,10,$23 +bne $23,L.1333 +lda $13,155 +cmpeq $14,$31,$23 +bne $23,L.1335 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1335: +L.1333: +lda $11,5 +lda $27,2 +stw $27,-64+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +lda $25,-64+256($sp) +ldw $25,($25) +mull $27,$25,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,10,$23 +bne $23,L.1337 +lda $13,156 +cmpeq $14,$31,$23 +bne $23,L.1339 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1339: +L.1337: +lda $11,5 +lda $27,2 +stl $27,-68+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +ldl $25,-68+256($sp) +mull $27,$25,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,10,$23 +bne $23,L.1341 +lda $13,157 +cmpeq $14,$31,$23 +bne $23,L.1343 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1343: +L.1341: +lda $11,5 +lda $27,2 +stq $27,-80+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +ldq $25,-80+256($sp) +mulq $27,$25,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,10,$23 +bne $23,L.1345 +lda $13,158 +cmpeq $14,$31,$23 +bne $23,L.1347 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1347: +L.1345: +lda $11,5 +lda $27,2 +stl $27,-84+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +mull $27,$25,$27 +zap $27,240,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,10,$23 +bne $23,L.1349 +lda $13,159 +cmpeq $14,$31,$23 +bne $23,L.1351 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1351: +L.1349: +lda $11,5 +lds $f7,L.527 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +stq $27,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqs $f30,$f30 +muls $f30,$f7,$f30 +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,10,$23 +bne $23,L.1353 +lda $13,160 +cmpeq $14,$31,$23 +bne $23,L.1355 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1355: +L.1353: +lda $11,5 +ldt $f6,L.414 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +stq $27,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqt $f30,$f30 +mult $f30,$f6,$f30 +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,10,$23 +bne $23,L.1357 +lda $13,161 +cmpeq $14,$31,$23 +bne $23,L.1359 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1359: +L.1357: +lda $10,5 +lda $27,2 +stb $27,-61+256($sp) +lda $27,-61+256($sp) +ldb $27,($27) +mull $10,$27,$10 +cmpeq $10,10,$23 +bne $23,L.1361 +lda $13,162 +cmpeq $14,$31,$23 +bne $23,L.1363 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1363: +L.1361: +lda $10,5 +lda $27,2 +stw $27,-64+256($sp) +lda $27,-64+256($sp) +ldw $27,($27) +mull $10,$27,$10 +cmpeq $10,10,$23 +bne $23,L.1365 +lda $13,163 +cmpeq $14,$31,$23 +bne $23,L.1367 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1367: +L.1365: +lda $10,5 +lda $27,2 +stl $27,-68+256($sp) +ldl $27,-68+256($sp) +mull $10,$27,$10 +cmpeq $10,10,$23 +bne $23,L.1369 +lda $13,164 +cmpeq $14,$31,$23 +bne $23,L.1371 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1371: +L.1369: +lda $10,5 +lda $27,2 +stq $27,-80+256($sp) +sll $10,8*(8-4),$27 +sra $27,8*(8-4),$27 +ldq $25,-80+256($sp) +mulq $27,$25,$27 +mov $27,$10 +cmpeq $10,10,$23 +bne $23,L.1373 +lda $13,165 +cmpeq $14,$31,$23 +bne $23,L.1375 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1375: +L.1373: +lda $10,5 +lda $27,2 +stl $27,-84+256($sp) +mov $10,$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +mull $27,$25,$27 +zap $27,240,$27 +mov $27,$10 +cmpeq $10,10,$23 +bne $23,L.1377 +lda $13,166 +cmpeq $14,$31,$23 +bne $23,L.1379 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1379: +L.1377: +lda $10,5 +lds $f7,L.527 +stq $10,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqs $f30,$f30 +muls $f30,$f7,$f30 +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $10,-56+256($sp) +cmpeq $10,10,$23 +bne $23,L.1381 +lda $13,167 +cmpeq $14,$31,$23 +bne $23,L.1383 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1383: +L.1381: +lda $10,5 +ldt $f6,L.414 +stq $10,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqt $f30,$f30 +mult $f30,$f6,$f30 +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $10,-56+256($sp) +cmpeq $10,10,$23 +bne $23,L.1385 +lda $13,168 +cmpeq $14,$31,$23 +bne $23,L.1387 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1387: +L.1385: +lda $9,5 +lda $27,2 +stb $27,-61+256($sp) +lda $27,-61+256($sp) +ldb $27,($27) +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +mulq $9,$27,$9 +cmpeq $9,10,$23 +bne $23,L.1389 +lda $13,169 +cmpeq $14,$31,$23 +bne $23,L.1391 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1391: +L.1389: +lda $9,5 +lda $27,2 +stw $27,-64+256($sp) +lda $27,-64+256($sp) +ldw $27,($27) +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +mulq $9,$27,$9 +cmpeq $9,10,$23 +bne $23,L.1393 +lda $13,170 +cmpeq $14,$31,$23 +bne $23,L.1395 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1395: +L.1393: +lda $9,5 +lda $27,2 +stl $27,-68+256($sp) +ldl $27,-68+256($sp) +mulq $9,$27,$9 +cmpeq $9,10,$23 +bne $23,L.1397 +lda $13,171 +cmpeq $14,$31,$23 +bne $23,L.1399 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1399: +L.1397: +lda $9,5 +lda $27,2 +stq $27,-80+256($sp) +ldq $27,-80+256($sp) +mulq $9,$27,$9 +cmpeq $9,10,$23 +bne $23,L.1401 +lda $13,172 +cmpeq $14,$31,$23 +bne $23,L.1403 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1403: +L.1401: +lda $9,5 +lda $27,2 +stl $27,-84+256($sp) +ldl $27,-84+256($sp) +zap $27,240,$27 +mulq $9,$27,$9 +cmpeq $9,10,$23 +bne $23,L.1405 +lda $13,173 +cmpeq $14,$31,$23 +bne $23,L.1407 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1407: +L.1405: +lda $9,5 +lds $f7,L.527 +stq $9,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqs $f30,$f30 +muls $f30,$f7,$f30 +cvttqc $f30,$f1 +stt $f1,-56+256($sp) +ldq $9,-56+256($sp) +cmpeq $9,10,$23 +bne $23,L.1409 +lda $13,174 +cmpeq $14,$31,$23 +bne $23,L.1411 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1411: +L.1409: +lda $9,5 +ldt $f6,L.414 +stq $9,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqt $f30,$f30 +mult $f30,$f6,$f30 +cvttqc $f30,$f1 +stt $f1,-56+256($sp) +ldq $9,-56+256($sp) +cmpeq $9,10,$23 +bne $23,L.1413 +lda $13,175 +cmpeq $14,$31,$23 +bne $23,L.1415 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1415: +L.1413: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stb $27,-61+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,-61+256($sp) +ldb $25,($25) +mull $27,$25,$27 +zap $27,240,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,10 +cmpeq $27,$25,$23 +bne $23,L.1417 +lda $13,176 +cmpeq $14,$31,$23 +bne $23,L.1419 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1419: +L.1417: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stw $27,-64+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,-64+256($sp) +ldw $25,($25) +mull $27,$25,$27 +zap $27,240,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,10 +cmpeq $27,$25,$23 +bne $23,L.1421 +lda $13,177 +cmpeq $14,$31,$23 +bne $23,L.1423 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1423: +L.1421: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stl $27,-68+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +ldl $25,-68+256($sp) +mull $27,$25,$27 +zap $27,240,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,10 +cmpeq $27,$25,$23 +bne $23,L.1425 +lda $13,178 +cmpeq $14,$31,$23 +bne $23,L.1427 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1427: +L.1425: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stq $27,-80+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +ldq $25,-80+256($sp) +mulq $27,$25,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,10 +cmpeq $27,$25,$23 +bne $23,L.1429 +lda $13,179 +cmpeq $14,$31,$23 +bne $23,L.1431 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1431: +L.1429: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stl $27,-84+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +mull $27,$25,$27 +zap $27,240,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,10 +cmpeq $27,$25,$23 +bne $23,L.1433 +lda $13,180 +cmpeq $14,$31,$23 +bne $23,L.1435 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1435: +L.1433: +lda $27,5 +stl $27,-60+256($sp) +lds $f7,L.527 +ldl $27,-60+256($sp) +zap $27,240,$27 +ldt $f30,L.594 +srl $27,1,$25 +stq $25,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +mult $f30,$f29,$f30 +and $27,1,$27 +stq $27,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +addt $f30,$f29,$f30 +cvtts $f30,$f30 +muls $f30,$f7,$f30 +lds $f29,L.826 +cmptlt $f30,$f29,$f1 +fbne $f1,L.1438 +subs $f30,$f29,$f29 +cvttqc $f29,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +addl $27,0x80000000,$27 +zap $27,240,$27 +stl $27,-136+256($sp) +br L.1439 +L.1438: +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +stl $27,-136+256($sp) +L.1439: +ldl $27,-136+256($sp) +zap $27,240,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,10 +cmpeq $27,$25,$23 +bne $23,L.1440 +lda $13,181 +cmpeq $14,$31,$23 +bne $23,L.1442 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1442: +L.1440: +lda $27,5 +stl $27,-60+256($sp) +ldt $f6,L.414 +ldl $27,-60+256($sp) +zap $27,240,$27 +ldt $f30,L.594 +srl $27,1,$25 +stq $25,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +mult $f30,$f29,$f30 +and $27,1,$27 +stq $27,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +addt $f30,$f29,$f30 +mult $f30,$f6,$f30 +ldt $f29,L.834 +cmptlt $f30,$f29,$f1 +fbne $f1,L.1445 +subt $f30,$f29,$f29 +cvttqc $f29,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +addl $27,0x80000000,$27 +zap $27,240,$27 +stl $27,-140+256($sp) +br L.1446 +L.1445: +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +stl $27,-140+256($sp) +L.1446: +ldl $27,-140+256($sp) +zap $27,240,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,10 +cmpeq $27,$25,$23 +bne $23,L.1447 +lda $13,182 +cmpeq $14,$31,$23 +bne $23,L.1449 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1449: +L.1447: +lds $f9,L.839 +lda $27,2 +stb $27,-61+256($sp) +lda $27,-61+256($sp) +ldb $27,($27) +stq $27,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqs $f30,$f30 +muls $f9,$f30,$f9 +lds $f30,L.1453 +cmpteq $f9,$f30,$f1 +fbne $f1,L.1451 +lda $13,183 +cmpeq $14,$31,$23 +bne $23,L.1454 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1454: +L.1451: +lds $f9,L.839 +lda $27,2 +stw $27,-64+256($sp) +lda $27,-64+256($sp) +ldw $27,($27) +stq $27,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqs $f30,$f30 +muls $f9,$f30,$f9 +lds $f30,L.1453 +cmpteq $f9,$f30,$f1 +fbne $f1,L.1456 +lda $13,184 +cmpeq $14,$31,$23 +bne $23,L.1458 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1458: +L.1456: +lds $f9,L.839 +lda $27,2 +stl $27,-68+256($sp) +lds $f30,-68+256($sp) +cvtlq $f30,$f30 +cvtqs $f30,$f30 +muls $f9,$f30,$f9 +lds $f30,L.1453 +cmpteq $f9,$f30,$f1 +fbne $f1,L.1460 +lda $13,185 +cmpeq $14,$31,$23 +bne $23,L.1462 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1462: +L.1460: +lds $f9,L.839 +lda $27,2 +stq $27,-80+256($sp) +ldt $f30,-80+256($sp) +cvtqs $f30,$f30 +muls $f9,$f30,$f9 +lds $f30,L.1453 +cmpteq $f9,$f30,$f1 +fbne $f1,L.1464 +lda $13,186 +cmpeq $14,$31,$23 +bne $23,L.1466 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1466: +L.1464: +lds $f9,L.839 +lda $27,2 +stl $27,-84+256($sp) +ldl $27,-84+256($sp) +zap $27,240,$27 +ldt $f30,L.594 +srl $27,1,$25 +stq $25,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +mult $f30,$f29,$f30 +and $27,1,$27 +stq $27,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +addt $f30,$f29,$f30 +cvtts $f30,$f30 +muls $f9,$f30,$f9 +lds $f30,L.1453 +cmpteq $f9,$f30,$f1 +fbne $f1,L.1468 +lda $13,187 +cmpeq $14,$31,$23 +bne $23,L.1470 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1470: +L.1468: +lds $f9,L.839 +lds $f7,L.527 +muls $f9,$f7,$f9 +lds $f30,L.1453 +cmpteq $f9,$f30,$f1 +fbne $f1,L.1472 +lda $13,188 +cmpeq $14,$31,$23 +bne $23,L.1474 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1474: +L.1472: +lds $f9,L.839 +ldt $f6,L.414 +cvtst $f9,$f30 +mult $f30,$f6,$f30 +cvtts $f30,$f9 +lds $f30,L.1453 +cmpteq $f9,$f30,$f1 +fbne $f1,L.1476 +lda $13,189 +cmpeq $14,$31,$23 +bne $23,L.1478 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1478: +L.1476: +ldt $f8,L.868 +lda $27,2 +stb $27,-61+256($sp) +lda $27,-61+256($sp) +ldb $27,($27) +stq $27,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqt $f30,$f30 +mult $f8,$f30,$f8 +ldt $f30,L.1482 +cmpteq $f8,$f30,$f1 +fbne $f1,L.1480 +lda $13,190 +cmpeq $14,$31,$23 +bne $23,L.1483 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1483: +L.1480: +ldt $f8,L.868 +lda $27,2 +stw $27,-64+256($sp) +lda $27,-64+256($sp) +ldw $27,($27) +stq $27,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqt $f30,$f30 +mult $f8,$f30,$f8 +ldt $f30,L.1482 +cmpteq $f8,$f30,$f1 +fbne $f1,L.1485 +lda $13,191 +cmpeq $14,$31,$23 +bne $23,L.1487 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1487: +L.1485: +ldt $f8,L.868 +lda $27,2 +stl $27,-68+256($sp) +lds $f30,-68+256($sp) +cvtlq $f30,$f30 +cvtqt $f30,$f30 +mult $f8,$f30,$f8 +ldt $f30,L.1482 +cmpteq $f8,$f30,$f1 +fbne $f1,L.1489 +lda $13,192 +cmpeq $14,$31,$23 +bne $23,L.1491 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1491: +L.1489: +ldt $f8,L.868 +lda $27,2 +stq $27,-80+256($sp) +ldt $f30,-80+256($sp) +cvtqt $f30,$f30 +mult $f8,$f30,$f8 +ldt $f30,L.1482 +cmpteq $f8,$f30,$f1 +fbne $f1,L.1493 +lda $13,193 +cmpeq $14,$31,$23 +bne $23,L.1495 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1495: +L.1493: +ldt $f8,L.868 +lda $27,2 +stl $27,-84+256($sp) +ldl $27,-84+256($sp) +zap $27,240,$27 +ldt $f30,L.594 +srl $27,1,$25 +stq $25,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +mult $f30,$f29,$f30 +and $27,1,$27 +stq $27,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +addt $f30,$f29,$f30 +mult $f8,$f30,$f8 +ldt $f30,L.1482 +cmpteq $f8,$f30,$f1 +fbne $f1,L.1497 +lda $13,194 +cmpeq $14,$31,$23 +bne $23,L.1499 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1499: +L.1497: +ldt $f8,L.868 +lds $f7,L.527 +cvtst $f7,$f30 +mult $f8,$f30,$f8 +ldt $f30,L.1482 +cmpteq $f8,$f30,$f1 +fbne $f1,L.1501 +lda $13,195 +cmpeq $14,$31,$23 +bne $23,L.1503 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1503: +L.1501: +ldt $f8,L.868 +ldt $f6,L.414 +mult $f8,$f6,$f8 +ldt $f30,L.1482 +cmpteq $f8,$f30,$f1 +fbne $f1,L.1505 +lda $13,196 +cmpeq $14,$31,$23 +bne $23,L.1507 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1507: +L.1505: +lda $12,5 +lda $27,2 +stb $27,-61+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +lda $25,-61+256($sp) +ldb $25,($25) +divl $27,$25,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,2,$23 +bne $23,L.1509 +lda $13,197 +cmpeq $14,$31,$23 +bne $23,L.1511 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1511: +L.1509: +lda $12,5 +lda $27,2 +stw $27,-64+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +lda $25,-64+256($sp) +ldw $25,($25) +divl $27,$25,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,2,$23 +bne $23,L.1513 +lda $13,198 +cmpeq $14,$31,$23 +bne $23,L.1515 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1515: +L.1513: +lda $12,5 +lda $27,2 +stl $27,-68+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +ldl $25,-68+256($sp) +divl $27,$25,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,2,$23 +bne $23,L.1517 +lda $13,199 +cmpeq $14,$31,$23 +bne $23,L.1519 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1519: +L.1517: +lda $12,5 +lda $27,2 +stq $27,-80+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +ldq $25,-80+256($sp) +divq $27,$25,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,2,$23 +bne $23,L.1521 +lda $13,200 +cmpeq $14,$31,$23 +bne $23,L.1523 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1523: +L.1521: +lda $12,5 +lda $27,2 +stl $27,-84+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +divlu $27,$25,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,2,$23 +bne $23,L.1525 +lda $13,201 +cmpeq $14,$31,$23 +bne $23,L.1527 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1527: +L.1525: +lda $12,5 +lds $f7,L.527 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +stq $27,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqs $f30,$f30 +divs $f30,$f7,$f30 +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,2,$23 +bne $23,L.1529 +lda $13,202 +cmpeq $14,$31,$23 +bne $23,L.1531 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1531: +L.1529: +lda $12,5 +ldt $f6,L.414 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +stq $27,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqt $f30,$f30 +divt $f30,$f6,$f30 +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,2,$23 +bne $23,L.1533 +lda $13,203 +cmpeq $14,$31,$23 +bne $23,L.1535 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1535: +L.1533: +lda $11,5 +lda $27,2 +stb $27,-61+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +lda $25,-61+256($sp) +ldb $25,($25) +divl $27,$25,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,2,$23 +bne $23,L.1537 +lda $13,204 +cmpeq $14,$31,$23 +bne $23,L.1539 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1539: +L.1537: +lda $11,5 +lda $27,2 +stw $27,-64+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +lda $25,-64+256($sp) +ldw $25,($25) +divl $27,$25,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,2,$23 +bne $23,L.1541 +lda $13,205 +cmpeq $14,$31,$23 +bne $23,L.1543 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1543: +L.1541: +lda $11,5 +lda $27,2 +stl $27,-68+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +ldl $25,-68+256($sp) +divl $27,$25,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,2,$23 +bne $23,L.1545 +lda $13,206 +cmpeq $14,$31,$23 +bne $23,L.1547 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1547: +L.1545: +lda $11,5 +lda $27,2 +stq $27,-80+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +ldq $25,-80+256($sp) +divq $27,$25,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,2,$23 +bne $23,L.1549 +lda $13,207 +cmpeq $14,$31,$23 +bne $23,L.1551 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1551: +L.1549: +lda $11,5 +lda $27,2 +stl $27,-84+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +divlu $27,$25,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,2,$23 +bne $23,L.1553 +lda $13,208 +cmpeq $14,$31,$23 +bne $23,L.1555 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1555: +L.1553: +lda $11,5 +lds $f7,L.527 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +stq $27,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqs $f30,$f30 +divs $f30,$f7,$f30 +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,2,$23 +bne $23,L.1557 +lda $13,209 +cmpeq $14,$31,$23 +bne $23,L.1559 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1559: +L.1557: +lda $11,5 +ldt $f6,L.414 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +stq $27,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqt $f30,$f30 +divt $f30,$f6,$f30 +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,2,$23 +bne $23,L.1561 +lda $13,210 +cmpeq $14,$31,$23 +bne $23,L.1563 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1563: +L.1561: +lda $10,5 +lda $27,2 +stb $27,-61+256($sp) +lda $27,-61+256($sp) +ldb $27,($27) +divl $10,$27,$10 +cmpeq $10,2,$23 +bne $23,L.1565 +lda $13,211 +cmpeq $14,$31,$23 +bne $23,L.1567 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1567: +L.1565: +lda $10,5 +lda $27,2 +stw $27,-64+256($sp) +lda $27,-64+256($sp) +ldw $27,($27) +divl $10,$27,$10 +cmpeq $10,2,$23 +bne $23,L.1569 +lda $13,212 +cmpeq $14,$31,$23 +bne $23,L.1571 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1571: +L.1569: +lda $10,5 +lda $27,2 +stl $27,-68+256($sp) +ldl $27,-68+256($sp) +divl $10,$27,$10 +cmpeq $10,2,$23 +bne $23,L.1573 +lda $13,213 +cmpeq $14,$31,$23 +bne $23,L.1575 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1575: +L.1573: +lda $10,5 +lda $27,2 +stq $27,-80+256($sp) +sll $10,8*(8-4),$27 +sra $27,8*(8-4),$27 +ldq $25,-80+256($sp) +divq $27,$25,$27 +mov $27,$10 +cmpeq $10,2,$23 +bne $23,L.1577 +lda $13,214 +cmpeq $14,$31,$23 +bne $23,L.1579 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1579: +L.1577: +lda $10,5 +lda $27,2 +stl $27,-84+256($sp) +mov $10,$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +divlu $27,$25,$27 +mov $27,$10 +cmpeq $10,2,$23 +bne $23,L.1581 +lda $13,215 +cmpeq $14,$31,$23 +bne $23,L.1583 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1583: +L.1581: +lda $10,5 +lds $f7,L.527 +stq $10,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqs $f30,$f30 +divs $f30,$f7,$f30 +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $10,-56+256($sp) +cmpeq $10,2,$23 +bne $23,L.1585 +lda $13,216 +cmpeq $14,$31,$23 +bne $23,L.1587 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1587: +L.1585: +lda $10,5 +ldt $f6,L.414 +stq $10,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqt $f30,$f30 +divt $f30,$f6,$f30 +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $10,-56+256($sp) +cmpeq $10,2,$23 +bne $23,L.1589 +lda $13,217 +cmpeq $14,$31,$23 +bne $23,L.1591 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1591: +L.1589: +lda $9,5 +lda $27,2 +stb $27,-61+256($sp) +lda $27,-61+256($sp) +ldb $27,($27) +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +divq $9,$27,$9 +cmpeq $9,2,$23 +bne $23,L.1593 +lda $13,218 +cmpeq $14,$31,$23 +bne $23,L.1595 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1595: +L.1593: +lda $9,5 +lda $27,2 +stw $27,-64+256($sp) +lda $27,-64+256($sp) +ldw $27,($27) +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +divq $9,$27,$9 +cmpeq $9,2,$23 +bne $23,L.1597 +lda $13,219 +cmpeq $14,$31,$23 +bne $23,L.1599 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1599: +L.1597: +lda $9,5 +lda $27,2 +stl $27,-68+256($sp) +ldl $27,-68+256($sp) +divq $9,$27,$9 +cmpeq $9,2,$23 +bne $23,L.1601 +lda $13,220 +cmpeq $14,$31,$23 +bne $23,L.1603 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1603: +L.1601: +lda $9,5 +lda $27,2 +stq $27,-80+256($sp) +ldq $27,-80+256($sp) +divq $9,$27,$9 +cmpeq $9,2,$23 +bne $23,L.1605 +lda $13,221 +cmpeq $14,$31,$23 +bne $23,L.1607 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1607: +L.1605: +lda $9,5 +lda $27,2 +stl $27,-84+256($sp) +ldl $27,-84+256($sp) +zap $27,240,$27 +divq $9,$27,$9 +cmpeq $9,2,$23 +bne $23,L.1609 +lda $13,222 +cmpeq $14,$31,$23 +bne $23,L.1611 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1611: +L.1609: +lda $9,5 +lds $f7,L.527 +stq $9,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqs $f30,$f30 +divs $f30,$f7,$f30 +cvttqc $f30,$f1 +stt $f1,-56+256($sp) +ldq $9,-56+256($sp) +cmpeq $9,2,$23 +bne $23,L.1613 +lda $13,223 +cmpeq $14,$31,$23 +bne $23,L.1615 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1615: +L.1613: +lda $9,5 +ldt $f6,L.414 +stq $9,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqt $f30,$f30 +divt $f30,$f6,$f30 +cvttqc $f30,$f1 +stt $f1,-56+256($sp) +ldq $9,-56+256($sp) +cmpeq $9,2,$23 +bne $23,L.1617 +lda $13,224 +cmpeq $14,$31,$23 +bne $23,L.1619 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1619: +L.1617: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stb $27,-61+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,-61+256($sp) +ldb $25,($25) +divlu $27,$25,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,2 +cmpeq $27,$25,$23 +bne $23,L.1621 +lda $13,225 +cmpeq $14,$31,$23 +bne $23,L.1623 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1623: +L.1621: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stw $27,-64+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,-64+256($sp) +ldw $25,($25) +divlu $27,$25,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,2 +cmpeq $27,$25,$23 +bne $23,L.1625 +lda $13,226 +cmpeq $14,$31,$23 +bne $23,L.1627 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1627: +L.1625: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stl $27,-68+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +ldl $25,-68+256($sp) +divlu $27,$25,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,2 +cmpeq $27,$25,$23 +bne $23,L.1629 +lda $13,227 +cmpeq $14,$31,$23 +bne $23,L.1631 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1631: +L.1629: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stq $27,-80+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +ldq $25,-80+256($sp) +divq $27,$25,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,2 +cmpeq $27,$25,$23 +bne $23,L.1633 +lda $13,228 +cmpeq $14,$31,$23 +bne $23,L.1635 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1635: +L.1633: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stl $27,-144+256($sp) +stl $27,-84+256($sp) +ldl $25,-60+256($sp) +zap $25,240,$25 +ldl $22,-84+256($sp) +zap $22,240,$22 +divlu $25,$22,$25 +stl $25,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +ldl $25,-144+256($sp) +zap $25,240,$25 +cmpeq $27,$25,$23 +bne $23,L.1637 +lda $13,229 +cmpeq $14,$31,$23 +bne $23,L.1639 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1639: +L.1637: +lda $27,5 +stl $27,-60+256($sp) +lds $f7,L.527 +ldl $27,-60+256($sp) +zap $27,240,$27 +ldt $f30,L.594 +srl $27,1,$25 +stq $25,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +mult $f30,$f29,$f30 +and $27,1,$27 +stq $27,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +addt $f30,$f29,$f30 +cvtts $f30,$f30 +divs $f30,$f7,$f30 +lds $f29,L.826 +cmptlt $f30,$f29,$f1 +fbne $f1,L.1642 +subs $f30,$f29,$f29 +cvttqc $f29,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +addl $27,0x80000000,$27 +zap $27,240,$27 +stl $27,-148+256($sp) +br L.1643 +L.1642: +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +stl $27,-148+256($sp) +L.1643: +ldl $27,-148+256($sp) +zap $27,240,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,2 +cmpeq $27,$25,$23 +bne $23,L.1644 +lda $13,230 +cmpeq $14,$31,$23 +bne $23,L.1646 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1646: +L.1644: +lda $27,5 +stl $27,-60+256($sp) +ldt $f6,L.414 +ldl $27,-60+256($sp) +zap $27,240,$27 +ldt $f30,L.594 +srl $27,1,$25 +stq $25,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +mult $f30,$f29,$f30 +and $27,1,$27 +stq $27,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +addt $f30,$f29,$f30 +divt $f30,$f6,$f30 +ldt $f29,L.834 +cmptlt $f30,$f29,$f1 +fbne $f1,L.1649 +subt $f30,$f29,$f29 +cvttqc $f29,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +addl $27,0x80000000,$27 +zap $27,240,$27 +stl $27,-152+256($sp) +br L.1650 +L.1649: +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +stl $27,-152+256($sp) +L.1650: +ldl $27,-152+256($sp) +zap $27,240,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,2 +cmpeq $27,$25,$23 +bne $23,L.1651 +lda $13,231 +cmpeq $14,$31,$23 +bne $23,L.1653 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1653: +L.1651: +lds $f9,L.839 +lda $27,2 +stb $27,-61+256($sp) +lda $27,-61+256($sp) +ldb $27,($27) +stq $27,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqs $f30,$f30 +divs $f9,$f30,$f9 +cvtst $f9,$f30 +ldt $f29,L.1657 +cmpteq $f30,$f29,$f1 +fbne $f1,L.1655 +lda $13,232 +cmpeq $14,$31,$23 +bne $23,L.1658 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1658: +L.1655: +lds $f9,L.839 +lda $27,2 +stw $27,-64+256($sp) +lda $27,-64+256($sp) +ldw $27,($27) +stq $27,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqs $f30,$f30 +divs $f9,$f30,$f9 +cvtst $f9,$f30 +ldt $f29,L.1657 +cmpteq $f30,$f29,$f1 +fbne $f1,L.1660 +lda $13,233 +cmpeq $14,$31,$23 +bne $23,L.1662 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1662: +L.1660: +lds $f9,L.839 +lda $27,2 +stl $27,-68+256($sp) +lds $f30,-68+256($sp) +cvtlq $f30,$f30 +cvtqs $f30,$f30 +divs $f9,$f30,$f9 +cvtst $f9,$f30 +ldt $f29,L.1657 +cmpteq $f30,$f29,$f1 +fbne $f1,L.1664 +lda $13,234 +cmpeq $14,$31,$23 +bne $23,L.1666 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1666: +L.1664: +lds $f9,L.839 +lda $27,2 +stq $27,-80+256($sp) +ldt $f30,-80+256($sp) +cvtqs $f30,$f30 +divs $f9,$f30,$f9 +cvtst $f9,$f30 +ldt $f29,L.1657 +cmpteq $f30,$f29,$f1 +fbne $f1,L.1668 +lda $13,235 +cmpeq $14,$31,$23 +bne $23,L.1670 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1670: +L.1668: +lds $f9,L.839 +lda $27,2 +stl $27,-84+256($sp) +ldl $27,-84+256($sp) +zap $27,240,$27 +ldt $f30,L.594 +srl $27,1,$25 +stq $25,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +mult $f30,$f29,$f30 +and $27,1,$27 +stq $27,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +addt $f30,$f29,$f30 +cvtts $f30,$f30 +divs $f9,$f30,$f9 +cvtst $f9,$f30 +ldt $f29,L.1657 +cmpteq $f30,$f29,$f1 +fbne $f1,L.1672 +lda $13,236 +cmpeq $14,$31,$23 +bne $23,L.1674 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1674: +L.1672: +lds $f9,L.839 +lds $f7,L.527 +divs $f9,$f7,$f9 +cvtst $f9,$f30 +ldt $f29,L.1657 +cmpteq $f30,$f29,$f1 +fbne $f1,L.1676 +lda $13,237 +cmpeq $14,$31,$23 +bne $23,L.1678 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1678: +L.1676: +lds $f9,L.839 +ldt $f6,L.414 +cvtst $f9,$f30 +divt $f30,$f6,$f30 +cvtts $f30,$f9 +cvtst $f9,$f30 +ldt $f29,L.1657 +cmpteq $f30,$f29,$f1 +fbne $f1,L.1680 +lda $13,238 +cmpeq $14,$31,$23 +bne $23,L.1682 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1682: +L.1680: +ldt $f8,L.868 +lda $27,2 +stb $27,-61+256($sp) +lda $27,-61+256($sp) +ldb $27,($27) +stq $27,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqt $f30,$f30 +divt $f8,$f30,$f8 +ldt $f30,L.1657 +cmpteq $f8,$f30,$f1 +fbne $f1,L.1684 +lda $13,239 +cmpeq $14,$31,$23 +bne $23,L.1686 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1686: +L.1684: +ldt $f8,L.868 +lda $27,2 +stw $27,-64+256($sp) +lda $27,-64+256($sp) +ldw $27,($27) +stq $27,-56+256($sp) +ldt $f30,-56+256($sp) +cvtqt $f30,$f30 +divt $f8,$f30,$f8 +ldt $f30,L.1657 +cmpteq $f8,$f30,$f1 +fbne $f1,L.1688 +lda $13,240 +cmpeq $14,$31,$23 +bne $23,L.1690 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1690: +L.1688: +ldt $f8,L.868 +lda $27,2 +stl $27,-68+256($sp) +lds $f30,-68+256($sp) +cvtlq $f30,$f30 +cvtqt $f30,$f30 +divt $f8,$f30,$f8 +ldt $f30,L.1657 +cmpteq $f8,$f30,$f1 +fbne $f1,L.1692 +lda $13,241 +cmpeq $14,$31,$23 +bne $23,L.1694 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1694: +L.1692: +ldt $f8,L.868 +lda $27,2 +stq $27,-80+256($sp) +ldt $f30,-80+256($sp) +cvtqt $f30,$f30 +divt $f8,$f30,$f8 +ldt $f30,L.1657 +cmpteq $f8,$f30,$f1 +fbne $f1,L.1696 +lda $13,242 +cmpeq $14,$31,$23 +bne $23,L.1698 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1698: +L.1696: +ldt $f8,L.868 +lda $27,2 +stl $27,-84+256($sp) +ldl $27,-84+256($sp) +zap $27,240,$27 +ldt $f30,L.594 +srl $27,1,$25 +stq $25,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +mult $f30,$f29,$f30 +and $27,1,$27 +stq $27,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +addt $f30,$f29,$f30 +divt $f8,$f30,$f8 +ldt $f30,L.1657 +cmpteq $f8,$f30,$f1 +fbne $f1,L.1700 +lda $13,243 +cmpeq $14,$31,$23 +bne $23,L.1702 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1702: +L.1700: +ldt $f8,L.868 +lds $f7,L.527 +cvtst $f7,$f30 +divt $f8,$f30,$f8 +ldt $f30,L.1657 +cmpteq $f8,$f30,$f1 +fbne $f1,L.1704 +lda $13,244 +cmpeq $14,$31,$23 +bne $23,L.1706 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1706: +L.1704: +ldt $f8,L.868 +ldt $f6,L.414 +divt $f8,$f6,$f8 +ldt $f30,L.1657 +cmpteq $f8,$f30,$f1 +fbne $f1,L.1708 +lda $13,245 +cmpeq $14,$31,$23 +bne $23,L.1710 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1710: +L.1708: +lda $12,5 +lda $27,2 +stb $27,-61+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +lda $25,-61+256($sp) +ldb $25,($25) +reml $27,$25,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,1,$23 +bne $23,L.1712 +lda $13,246 +cmpeq $14,$31,$23 +bne $23,L.1714 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1714: +L.1712: +lda $12,5 +lda $27,2 +stw $27,-64+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +lda $25,-64+256($sp) +ldw $25,($25) +reml $27,$25,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,1,$23 +bne $23,L.1716 +lda $13,247 +cmpeq $14,$31,$23 +bne $23,L.1718 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1718: +L.1716: +lda $12,5 +lda $27,2 +stl $27,-68+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +ldl $25,-68+256($sp) +reml $27,$25,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,1,$23 +bne $23,L.1720 +lda $13,248 +cmpeq $14,$31,$23 +bne $23,L.1722 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1722: +L.1720: +lda $12,5 +lda $27,2 +stq $27,-80+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +ldq $25,-80+256($sp) +remq $27,$25,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,1,$23 +bne $23,L.1724 +lda $13,249 +cmpeq $14,$31,$23 +bne $23,L.1726 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1726: +L.1724: +lda $12,5 +lda $27,2 +stl $27,-84+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +remlu $27,$25,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,1,$23 +bne $23,L.1728 +lda $13,250 +cmpeq $14,$31,$23 +bne $23,L.1730 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1730: +L.1728: +lda $11,5 +lda $27,2 +stb $27,-61+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +lda $25,-61+256($sp) +ldb $25,($25) +reml $27,$25,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,1,$23 +bne $23,L.1732 +lda $13,251 +cmpeq $14,$31,$23 +bne $23,L.1734 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1734: +L.1732: +lda $11,5 +lda $27,2 +stw $27,-64+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +lda $25,-64+256($sp) +ldw $25,($25) +reml $27,$25,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,1,$23 +bne $23,L.1736 +lda $13,252 +cmpeq $14,$31,$23 +bne $23,L.1738 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1738: +L.1736: +lda $11,5 +lda $27,2 +stl $27,-68+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +ldl $25,-68+256($sp) +reml $27,$25,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,1,$23 +bne $23,L.1740 +lda $13,253 +cmpeq $14,$31,$23 +bne $23,L.1742 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1742: +L.1740: +lda $11,5 +lda $27,2 +stq $27,-80+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +ldq $25,-80+256($sp) +remq $27,$25,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,1,$23 +bne $23,L.1744 +lda $13,254 +cmpeq $14,$31,$23 +bne $23,L.1746 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1746: +L.1744: +lda $11,5 +lda $27,2 +stl $27,-84+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +remlu $27,$25,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,1,$23 +bne $23,L.1748 +lda $13,255 +cmpeq $14,$31,$23 +bne $23,L.1750 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1750: +L.1748: +lda $10,5 +lda $27,2 +stb $27,-61+256($sp) +lda $27,-61+256($sp) +ldb $27,($27) +reml $10,$27,$10 +cmpeq $10,1,$23 +bne $23,L.1752 +lda $13,256 +cmpeq $14,$31,$23 +bne $23,L.1754 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1754: +L.1752: +lda $10,5 +lda $27,2 +stw $27,-64+256($sp) +lda $27,-64+256($sp) +ldw $27,($27) +reml $10,$27,$10 +cmpeq $10,1,$23 +bne $23,L.1756 +lda $13,257 +cmpeq $14,$31,$23 +bne $23,L.1758 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1758: +L.1756: +lda $10,5 +lda $27,2 +stl $27,-68+256($sp) +ldl $27,-68+256($sp) +reml $10,$27,$10 +cmpeq $10,1,$23 +bne $23,L.1760 +lda $13,258 +cmpeq $14,$31,$23 +bne $23,L.1762 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1762: +L.1760: +lda $10,5 +lda $27,2 +stq $27,-80+256($sp) +sll $10,8*(8-4),$27 +sra $27,8*(8-4),$27 +ldq $25,-80+256($sp) +remq $27,$25,$27 +mov $27,$10 +cmpeq $10,1,$23 +bne $23,L.1764 +lda $13,259 +cmpeq $14,$31,$23 +bne $23,L.1766 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1766: +L.1764: +lda $10,5 +lda $27,2 +stl $27,-84+256($sp) +mov $10,$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +remlu $27,$25,$27 +mov $27,$10 +cmpeq $10,1,$23 +bne $23,L.1768 +lda $13,260 +cmpeq $14,$31,$23 +bne $23,L.1770 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1770: +L.1768: +lda $9,5 +lda $27,2 +stb $27,-61+256($sp) +lda $27,-61+256($sp) +ldb $27,($27) +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +remq $9,$27,$9 +cmpeq $9,1,$23 +bne $23,L.1772 +lda $13,261 +cmpeq $14,$31,$23 +bne $23,L.1774 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1774: +L.1772: +lda $9,5 +lda $27,2 +stw $27,-64+256($sp) +lda $27,-64+256($sp) +ldw $27,($27) +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +remq $9,$27,$9 +cmpeq $9,1,$23 +bne $23,L.1776 +lda $13,262 +cmpeq $14,$31,$23 +bne $23,L.1778 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1778: +L.1776: +lda $9,5 +lda $27,2 +stl $27,-68+256($sp) +ldl $27,-68+256($sp) +remq $9,$27,$9 +cmpeq $9,1,$23 +bne $23,L.1780 +lda $13,263 +cmpeq $14,$31,$23 +bne $23,L.1782 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1782: +L.1780: +lda $9,5 +lda $27,2 +stq $27,-80+256($sp) +ldq $27,-80+256($sp) +remq $9,$27,$9 +cmpeq $9,1,$23 +bne $23,L.1784 +lda $13,264 +cmpeq $14,$31,$23 +bne $23,L.1786 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1786: +L.1784: +lda $9,5 +lda $27,2 +stl $27,-84+256($sp) +ldl $27,-84+256($sp) +zap $27,240,$27 +remq $9,$27,$9 +cmpeq $9,1,$23 +bne $23,L.1788 +lda $13,265 +cmpeq $14,$31,$23 +bne $23,L.1790 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1790: +L.1788: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stb $27,-61+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,-61+256($sp) +ldb $25,($25) +remlu $27,$25,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,1 +cmpeq $27,$25,$23 +bne $23,L.1792 +lda $13,266 +cmpeq $14,$31,$23 +bne $23,L.1794 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1794: +L.1792: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stw $27,-64+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,-64+256($sp) +ldw $25,($25) +remlu $27,$25,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,1 +cmpeq $27,$25,$23 +bne $23,L.1796 +lda $13,267 +cmpeq $14,$31,$23 +bne $23,L.1798 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1798: +L.1796: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stl $27,-68+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +ldl $25,-68+256($sp) +remlu $27,$25,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,1 +cmpeq $27,$25,$23 +bne $23,L.1800 +lda $13,268 +cmpeq $14,$31,$23 +bne $23,L.1802 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1802: +L.1800: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stq $27,-80+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +ldq $25,-80+256($sp) +remq $27,$25,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,1 +cmpeq $27,$25,$23 +bne $23,L.1804 +lda $13,269 +cmpeq $14,$31,$23 +bne $23,L.1806 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1806: +L.1804: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stl $27,-84+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +remlu $27,$25,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,1 +cmpeq $27,$25,$23 +bne $23,L.1808 +lda $13,270 +cmpeq $14,$31,$23 +bne $23,L.1810 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1810: +L.1808: +lda $12,5 +lda $27,2 +stb $27,-61+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +lda $25,-61+256($sp) +ldb $25,($25) +sra $27,$25,$27 +addl $27,0,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,1,$23 +bne $23,L.1812 +lda $13,271 +cmpeq $14,$31,$23 +bne $23,L.1814 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1814: +L.1812: +lda $12,5 +lda $27,2 +stw $27,-64+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +lda $25,-64+256($sp) +ldw $25,($25) +sra $27,$25,$27 +addl $27,0,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,1,$23 +bne $23,L.1816 +lda $13,272 +cmpeq $14,$31,$23 +bne $23,L.1818 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1818: +L.1816: +lda $12,5 +lda $27,2 +stl $27,-68+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +ldl $25,-68+256($sp) +sra $27,$25,$27 +addl $27,0,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,1,$23 +bne $23,L.1820 +lda $13,273 +cmpeq $14,$31,$23 +bne $23,L.1822 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1822: +L.1820: +lda $12,5 +lda $27,2 +stq $27,-80+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +ldq $25,-80+256($sp) +sra $27,$25,$27 +addl $27,0,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,1,$23 +bne $23,L.1824 +lda $13,274 +cmpeq $14,$31,$23 +bne $23,L.1826 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1826: +L.1824: +lda $12,5 +lda $27,2 +stl $27,-84+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +sra $27,$25,$27 +addl $27,0,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,1,$23 +bne $23,L.1828 +lda $13,275 +cmpeq $14,$31,$23 +bne $23,L.1830 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1830: +L.1828: +lda $11,5 +lda $27,2 +stb $27,-61+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +lda $25,-61+256($sp) +ldb $25,($25) +sra $27,$25,$27 +addl $27,0,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,1,$23 +bne $23,L.1832 +lda $13,276 +cmpeq $14,$31,$23 +bne $23,L.1834 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1834: +L.1832: +lda $11,5 +lda $27,2 +stw $27,-64+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +lda $25,-64+256($sp) +ldw $25,($25) +sra $27,$25,$27 +addl $27,0,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,1,$23 +bne $23,L.1836 +lda $13,277 +cmpeq $14,$31,$23 +bne $23,L.1838 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1838: +L.1836: +lda $11,5 +lda $27,2 +stl $27,-68+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +ldl $25,-68+256($sp) +sra $27,$25,$27 +addl $27,0,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,1,$23 +bne $23,L.1840 +lda $13,278 +cmpeq $14,$31,$23 +bne $23,L.1842 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1842: +L.1840: +lda $11,5 +lda $27,2 +stq $27,-80+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +ldq $25,-80+256($sp) +sra $27,$25,$27 +addl $27,0,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,1,$23 +bne $23,L.1844 +lda $13,279 +cmpeq $14,$31,$23 +bne $23,L.1846 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1846: +L.1844: +lda $11,5 +lda $27,2 +stl $27,-84+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +sra $27,$25,$27 +addl $27,0,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,1,$23 +bne $23,L.1848 +lda $13,280 +cmpeq $14,$31,$23 +bne $23,L.1850 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1850: +L.1848: +lda $10,5 +lda $27,2 +stb $27,-61+256($sp) +lda $27,-61+256($sp) +ldb $27,($27) +sra $10,$27,$10 +addl $10,0,$10 +cmpeq $10,1,$23 +bne $23,L.1852 +lda $13,281 +cmpeq $14,$31,$23 +bne $23,L.1854 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1854: +L.1852: +lda $10,5 +lda $27,2 +stw $27,-64+256($sp) +lda $27,-64+256($sp) +ldw $27,($27) +sra $10,$27,$10 +addl $10,0,$10 +cmpeq $10,1,$23 +bne $23,L.1856 +lda $13,282 +cmpeq $14,$31,$23 +bne $23,L.1858 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1858: +L.1856: +lda $10,5 +lda $27,2 +stl $27,-68+256($sp) +ldl $27,-68+256($sp) +sra $10,$27,$10 +addl $10,0,$10 +cmpeq $10,1,$23 +bne $23,L.1860 +lda $13,283 +cmpeq $14,$31,$23 +bne $23,L.1862 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1862: +L.1860: +lda $10,5 +lda $27,2 +stq $27,-80+256($sp) +ldq $27,-80+256($sp) +sra $10,$27,$10 +addl $10,0,$10 +cmpeq $10,1,$23 +bne $23,L.1864 +lda $13,284 +cmpeq $14,$31,$23 +bne $23,L.1866 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1866: +L.1864: +lda $10,5 +lda $27,2 +stl $27,-84+256($sp) +ldl $27,-84+256($sp) +zap $27,240,$27 +sra $10,$27,$10 +addl $10,0,$10 +cmpeq $10,1,$23 +bne $23,L.1868 +lda $13,285 +cmpeq $14,$31,$23 +bne $23,L.1870 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1870: +L.1868: +lda $9,5 +lda $27,2 +stb $27,-61+256($sp) +lda $27,-61+256($sp) +ldb $27,($27) +sra $9,$27,$9 +cmpeq $9,1,$23 +bne $23,L.1872 +lda $13,286 +cmpeq $14,$31,$23 +bne $23,L.1874 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1874: +L.1872: +lda $9,5 +lda $27,2 +stw $27,-64+256($sp) +lda $27,-64+256($sp) +ldw $27,($27) +sra $9,$27,$9 +cmpeq $9,1,$23 +bne $23,L.1876 +lda $13,287 +cmpeq $14,$31,$23 +bne $23,L.1878 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1878: +L.1876: +lda $9,5 +lda $27,2 +stl $27,-68+256($sp) +ldl $27,-68+256($sp) +sra $9,$27,$9 +cmpeq $9,1,$23 +bne $23,L.1880 +lda $13,288 +cmpeq $14,$31,$23 +bne $23,L.1882 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1882: +L.1880: +lda $9,5 +lda $27,2 +stq $27,-80+256($sp) +ldq $27,-80+256($sp) +sra $9,$27,$9 +cmpeq $9,1,$23 +bne $23,L.1884 +lda $13,289 +cmpeq $14,$31,$23 +bne $23,L.1886 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1886: +L.1884: +lda $9,5 +lda $27,2 +stl $27,-84+256($sp) +ldl $27,-84+256($sp) +zap $27,240,$27 +sra $9,$27,$9 +cmpeq $9,1,$23 +bne $23,L.1888 +lda $13,290 +cmpeq $14,$31,$23 +bne $23,L.1890 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1890: +L.1888: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stb $27,-61+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,-61+256($sp) +ldb $25,($25) +srl $27,$25,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,1 +cmpeq $27,$25,$23 +bne $23,L.1892 +lda $13,291 +cmpeq $14,$31,$23 +bne $23,L.1894 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1894: +L.1892: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stw $27,-64+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,-64+256($sp) +ldw $25,($25) +srl $27,$25,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,1 +cmpeq $27,$25,$23 +bne $23,L.1896 +lda $13,292 +cmpeq $14,$31,$23 +bne $23,L.1898 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1898: +L.1896: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stl $27,-68+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +ldl $25,-68+256($sp) +srl $27,$25,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,1 +cmpeq $27,$25,$23 +bne $23,L.1900 +lda $13,293 +cmpeq $14,$31,$23 +bne $23,L.1902 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1902: +L.1900: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stq $27,-80+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +ldq $25,-80+256($sp) +srl $27,$25,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,1 +cmpeq $27,$25,$23 +bne $23,L.1904 +lda $13,294 +cmpeq $14,$31,$23 +bne $23,L.1906 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1906: +L.1904: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stl $27,-84+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +srl $27,$25,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,1 +cmpeq $27,$25,$23 +bne $23,L.1908 +lda $13,295 +cmpeq $14,$31,$23 +bne $23,L.1910 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1910: +L.1908: +lda $12,5 +lda $27,2 +stb $27,-61+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +lda $25,-61+256($sp) +ldb $25,($25) +sll $27,$25,$27 +addl $27,0,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,20,$23 +bne $23,L.1912 +lda $13,296 +cmpeq $14,$31,$23 +bne $23,L.1914 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1914: +L.1912: +lda $12,5 +lda $27,2 +stw $27,-64+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +lda $25,-64+256($sp) +ldw $25,($25) +sll $27,$25,$27 +addl $27,0,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,20,$23 +bne $23,L.1916 +lda $13,297 +cmpeq $14,$31,$23 +bne $23,L.1918 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1918: +L.1916: +lda $12,5 +lda $27,2 +stl $27,-68+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +ldl $25,-68+256($sp) +sll $27,$25,$27 +addl $27,0,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,20,$23 +bne $23,L.1920 +lda $13,298 +cmpeq $14,$31,$23 +bne $23,L.1922 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1922: +L.1920: +lda $12,5 +lda $27,2 +stq $27,-80+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +ldq $25,-80+256($sp) +sll $27,$25,$27 +addl $27,0,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,20,$23 +bne $23,L.1924 +lda $13,299 +cmpeq $14,$31,$23 +bne $23,L.1926 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1926: +L.1924: +lda $12,5 +lda $27,2 +stl $27,-84+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +sll $27,$25,$27 +addl $27,0,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,20,$23 +bne $23,L.1928 +lda $13,300 +cmpeq $14,$31,$23 +bne $23,L.1930 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1930: +L.1928: +lda $11,5 +lda $27,2 +stb $27,-61+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +lda $25,-61+256($sp) +ldb $25,($25) +sll $27,$25,$27 +addl $27,0,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,20,$23 +bne $23,L.1932 +lda $13,301 +cmpeq $14,$31,$23 +bne $23,L.1934 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1934: +L.1932: +lda $11,5 +lda $27,2 +stw $27,-64+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +lda $25,-64+256($sp) +ldw $25,($25) +sll $27,$25,$27 +addl $27,0,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,20,$23 +bne $23,L.1936 +lda $13,302 +cmpeq $14,$31,$23 +bne $23,L.1938 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1938: +L.1936: +lda $11,5 +lda $27,2 +stl $27,-68+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +ldl $25,-68+256($sp) +sll $27,$25,$27 +addl $27,0,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,20,$23 +bne $23,L.1940 +lda $13,303 +cmpeq $14,$31,$23 +bne $23,L.1942 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1942: +L.1940: +lda $11,5 +lda $27,2 +stq $27,-80+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +ldq $25,-80+256($sp) +sll $27,$25,$27 +addl $27,0,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,20,$23 +bne $23,L.1944 +lda $13,304 +cmpeq $14,$31,$23 +bne $23,L.1946 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1946: +L.1944: +lda $11,5 +lda $27,2 +stl $27,-84+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +sll $27,$25,$27 +addl $27,0,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,20,$23 +bne $23,L.1948 +lda $13,305 +cmpeq $14,$31,$23 +bne $23,L.1950 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1950: +L.1948: +lda $10,5 +lda $27,2 +stb $27,-61+256($sp) +lda $27,-61+256($sp) +ldb $27,($27) +sll $10,$27,$10 +addl $10,0,$10 +cmpeq $10,20,$23 +bne $23,L.1952 +lda $13,306 +cmpeq $14,$31,$23 +bne $23,L.1954 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1954: +L.1952: +lda $10,5 +lda $27,2 +stw $27,-64+256($sp) +lda $27,-64+256($sp) +ldw $27,($27) +sll $10,$27,$10 +addl $10,0,$10 +cmpeq $10,20,$23 +bne $23,L.1956 +lda $13,307 +cmpeq $14,$31,$23 +bne $23,L.1958 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1958: +L.1956: +lda $10,5 +lda $27,2 +stl $27,-68+256($sp) +ldl $27,-68+256($sp) +sll $10,$27,$10 +addl $10,0,$10 +cmpeq $10,20,$23 +bne $23,L.1960 +lda $13,308 +cmpeq $14,$31,$23 +bne $23,L.1962 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1962: +L.1960: +lda $10,5 +lda $27,2 +stq $27,-80+256($sp) +ldq $27,-80+256($sp) +sll $10,$27,$10 +addl $10,0,$10 +cmpeq $10,20,$23 +bne $23,L.1964 +lda $13,309 +cmpeq $14,$31,$23 +bne $23,L.1966 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1966: +L.1964: +lda $10,5 +lda $27,2 +stl $27,-84+256($sp) +ldl $27,-84+256($sp) +zap $27,240,$27 +sll $10,$27,$10 +addl $10,0,$10 +cmpeq $10,20,$23 +bne $23,L.1968 +lda $13,310 +cmpeq $14,$31,$23 +bne $23,L.1970 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1970: +L.1968: +lda $9,5 +lda $27,2 +stb $27,-61+256($sp) +lda $27,-61+256($sp) +ldb $27,($27) +sll $9,$27,$9 +cmpeq $9,20,$23 +bne $23,L.1972 +lda $13,311 +cmpeq $14,$31,$23 +bne $23,L.1974 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1974: +L.1972: +lda $9,5 +lda $27,2 +stw $27,-64+256($sp) +lda $27,-64+256($sp) +ldw $27,($27) +sll $9,$27,$9 +cmpeq $9,20,$23 +bne $23,L.1976 +lda $13,312 +cmpeq $14,$31,$23 +bne $23,L.1978 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1978: +L.1976: +lda $9,5 +lda $27,2 +stl $27,-68+256($sp) +ldl $27,-68+256($sp) +sll $9,$27,$9 +cmpeq $9,20,$23 +bne $23,L.1980 +lda $13,313 +cmpeq $14,$31,$23 +bne $23,L.1982 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1982: +L.1980: +lda $9,5 +lda $27,2 +stq $27,-80+256($sp) +ldq $27,-80+256($sp) +sll $9,$27,$9 +cmpeq $9,20,$23 +bne $23,L.1984 +lda $13,314 +cmpeq $14,$31,$23 +bne $23,L.1986 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1986: +L.1984: +lda $9,5 +lda $27,2 +stl $27,-84+256($sp) +ldl $27,-84+256($sp) +zap $27,240,$27 +sll $9,$27,$9 +cmpeq $9,20,$23 +bne $23,L.1988 +lda $13,315 +cmpeq $14,$31,$23 +bne $23,L.1990 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1990: +L.1988: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stb $27,-61+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,-61+256($sp) +ldb $25,($25) +sll $27,$25,$27 +zap $27,240,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,20 +cmpeq $27,$25,$23 +bne $23,L.1992 +lda $13,316 +cmpeq $14,$31,$23 +bne $23,L.1994 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1994: +L.1992: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stw $27,-64+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,-64+256($sp) +ldw $25,($25) +sll $27,$25,$27 +zap $27,240,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,20 +cmpeq $27,$25,$23 +bne $23,L.1996 +lda $13,317 +cmpeq $14,$31,$23 +bne $23,L.1998 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.1998: +L.1996: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stl $27,-68+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +ldl $25,-68+256($sp) +sll $27,$25,$27 +zap $27,240,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,20 +cmpeq $27,$25,$23 +bne $23,L.2000 +lda $13,318 +cmpeq $14,$31,$23 +bne $23,L.2002 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2002: +L.2000: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stq $27,-80+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +ldq $25,-80+256($sp) +sll $27,$25,$27 +zap $27,240,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,20 +cmpeq $27,$25,$23 +bne $23,L.2004 +lda $13,319 +cmpeq $14,$31,$23 +bne $23,L.2006 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2006: +L.2004: +lda $27,5 +stl $27,-60+256($sp) +lda $27,2 +stl $27,-84+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +sll $27,$25,$27 +zap $27,240,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,20 +cmpeq $27,$25,$23 +bne $23,L.2008 +lda $13,320 +cmpeq $14,$31,$23 +bne $23,L.2010 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2010: +L.2008: +lda $12,12 +lda $27,10 +stb $27,-61+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +lda $25,-61+256($sp) +ldb $25,($25) +and $27,$25,$27 +addl $27,0,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,8,$23 +bne $23,L.2012 +lda $13,321 +cmpeq $14,$31,$23 +bne $23,L.2014 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2014: +L.2012: +lda $12,12 +lda $27,10 +stw $27,-64+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +lda $25,-64+256($sp) +ldw $25,($25) +and $27,$25,$27 +addl $27,0,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,8,$23 +bne $23,L.2016 +lda $13,322 +cmpeq $14,$31,$23 +bne $23,L.2018 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2018: +L.2016: +lda $12,12 +lda $27,10 +stl $27,-68+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +ldl $25,-68+256($sp) +and $27,$25,$27 +addl $27,0,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,8,$23 +bne $23,L.2020 +lda $13,323 +cmpeq $14,$31,$23 +bne $23,L.2022 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2022: +L.2020: +lda $12,12 +lda $27,10 +stq $27,-80+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +ldq $25,-80+256($sp) +and $27,$25,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,8,$23 +bne $23,L.2024 +lda $13,324 +cmpeq $14,$31,$23 +bne $23,L.2026 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2026: +L.2024: +lda $12,12 +lda $27,10 +stl $27,-84+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +and $27,$25,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,8,$23 +bne $23,L.2028 +lda $13,325 +cmpeq $14,$31,$23 +bne $23,L.2030 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2030: +L.2028: +lda $11,12 +lda $27,10 +stb $27,-61+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +lda $25,-61+256($sp) +ldb $25,($25) +and $27,$25,$27 +addl $27,0,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,8,$23 +bne $23,L.2032 +lda $13,326 +cmpeq $14,$31,$23 +bne $23,L.2034 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2034: +L.2032: +lda $11,12 +lda $27,10 +stw $27,-64+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +lda $25,-64+256($sp) +ldw $25,($25) +and $27,$25,$27 +addl $27,0,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,8,$23 +bne $23,L.2036 +lda $13,327 +cmpeq $14,$31,$23 +bne $23,L.2038 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2038: +L.2036: +lda $11,12 +lda $27,10 +stl $27,-68+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +ldl $25,-68+256($sp) +and $27,$25,$27 +addl $27,0,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,8,$23 +bne $23,L.2040 +lda $13,328 +cmpeq $14,$31,$23 +bne $23,L.2042 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2042: +L.2040: +lda $11,12 +lda $27,10 +stq $27,-80+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +ldq $25,-80+256($sp) +and $27,$25,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,8,$23 +bne $23,L.2044 +lda $13,329 +cmpeq $14,$31,$23 +bne $23,L.2046 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2046: +L.2044: +lda $11,12 +lda $27,10 +stl $27,-84+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +and $27,$25,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,8,$23 +bne $23,L.2048 +lda $13,330 +cmpeq $14,$31,$23 +bne $23,L.2050 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2050: +L.2048: +lda $10,12 +lda $27,10 +stb $27,-61+256($sp) +lda $27,-61+256($sp) +ldb $27,($27) +and $10,$27,$10 +addl $10,0,$10 +cmpeq $10,8,$23 +bne $23,L.2052 +lda $13,331 +cmpeq $14,$31,$23 +bne $23,L.2054 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2054: +L.2052: +lda $10,12 +lda $27,10 +stw $27,-64+256($sp) +lda $27,-64+256($sp) +ldw $27,($27) +and $10,$27,$10 +addl $10,0,$10 +cmpeq $10,8,$23 +bne $23,L.2056 +lda $13,332 +cmpeq $14,$31,$23 +bne $23,L.2058 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2058: +L.2056: +lda $10,12 +lda $27,10 +stl $27,-68+256($sp) +ldl $27,-68+256($sp) +and $10,$27,$10 +addl $10,0,$10 +cmpeq $10,8,$23 +bne $23,L.2060 +lda $13,333 +cmpeq $14,$31,$23 +bne $23,L.2062 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2062: +L.2060: +lda $10,12 +lda $27,10 +stq $27,-80+256($sp) +sll $10,8*(8-4),$27 +sra $27,8*(8-4),$27 +ldq $25,-80+256($sp) +and $27,$25,$27 +mov $27,$10 +cmpeq $10,8,$23 +bne $23,L.2064 +lda $13,334 +cmpeq $14,$31,$23 +bne $23,L.2066 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2066: +L.2064: +lda $10,12 +lda $27,10 +stl $27,-84+256($sp) +mov $10,$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +and $27,$25,$27 +mov $27,$10 +cmpeq $10,8,$23 +bne $23,L.2068 +lda $13,335 +cmpeq $14,$31,$23 +bne $23,L.2070 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2070: +L.2068: +lda $9,12 +lda $27,10 +stb $27,-61+256($sp) +lda $27,-61+256($sp) +ldb $27,($27) +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +and $9,$27,$9 +cmpeq $9,8,$23 +bne $23,L.2072 +lda $13,336 +cmpeq $14,$31,$23 +bne $23,L.2074 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2074: +L.2072: +lda $9,12 +lda $27,10 +stw $27,-64+256($sp) +lda $27,-64+256($sp) +ldw $27,($27) +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +and $9,$27,$9 +cmpeq $9,8,$23 +bne $23,L.2076 +lda $13,337 +cmpeq $14,$31,$23 +bne $23,L.2078 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2078: +L.2076: +lda $9,12 +lda $27,10 +stl $27,-68+256($sp) +ldl $27,-68+256($sp) +and $9,$27,$9 +cmpeq $9,8,$23 +bne $23,L.2080 +lda $13,338 +cmpeq $14,$31,$23 +bne $23,L.2082 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2082: +L.2080: +lda $9,12 +lda $27,10 +stq $27,-80+256($sp) +ldq $27,-80+256($sp) +and $9,$27,$9 +cmpeq $9,8,$23 +bne $23,L.2084 +lda $13,339 +cmpeq $14,$31,$23 +bne $23,L.2086 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2086: +L.2084: +lda $9,12 +lda $27,10 +stl $27,-84+256($sp) +ldl $27,-84+256($sp) +zap $27,240,$27 +and $9,$27,$9 +cmpeq $9,8,$23 +bne $23,L.2088 +lda $13,340 +cmpeq $14,$31,$23 +bne $23,L.2090 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2090: +L.2088: +lda $27,12 +stl $27,-60+256($sp) +lda $27,10 +stb $27,-61+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,-61+256($sp) +ldb $25,($25) +and $27,$25,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,8 +cmpeq $27,$25,$23 +bne $23,L.2092 +lda $13,341 +cmpeq $14,$31,$23 +bne $23,L.2094 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2094: +L.2092: +lda $27,12 +stl $27,-60+256($sp) +lda $27,10 +stw $27,-64+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,-64+256($sp) +ldw $25,($25) +and $27,$25,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,8 +cmpeq $27,$25,$23 +bne $23,L.2096 +lda $13,342 +cmpeq $14,$31,$23 +bne $23,L.2098 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2098: +L.2096: +lda $27,12 +stl $27,-60+256($sp) +lda $27,10 +stl $27,-68+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +ldl $25,-68+256($sp) +and $27,$25,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,8 +cmpeq $27,$25,$23 +bne $23,L.2100 +lda $13,343 +cmpeq $14,$31,$23 +bne $23,L.2102 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2102: +L.2100: +lda $27,12 +stl $27,-60+256($sp) +lda $27,10 +stq $27,-80+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +ldq $25,-80+256($sp) +and $27,$25,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,8 +cmpeq $27,$25,$23 +bne $23,L.2104 +lda $13,344 +cmpeq $14,$31,$23 +bne $23,L.2106 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2106: +L.2104: +lda $27,12 +stl $27,-60+256($sp) +lda $27,10 +stl $27,-84+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +and $27,$25,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,8 +cmpeq $27,$25,$23 +bne $23,L.2108 +lda $13,345 +cmpeq $14,$31,$23 +bne $23,L.2110 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2110: +L.2108: +lda $12,12 +lda $27,10 +stb $27,-61+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +lda $25,-61+256($sp) +ldb $25,($25) +xor $27,$25,$27 +addl $27,0,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,6,$23 +bne $23,L.2112 +lda $13,346 +cmpeq $14,$31,$23 +bne $23,L.2114 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2114: +L.2112: +lda $12,12 +lda $27,10 +stw $27,-64+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +lda $25,-64+256($sp) +ldw $25,($25) +xor $27,$25,$27 +addl $27,0,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,6,$23 +bne $23,L.2116 +lda $13,347 +cmpeq $14,$31,$23 +bne $23,L.2118 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2118: +L.2116: +lda $12,12 +lda $27,10 +stl $27,-68+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +ldl $25,-68+256($sp) +xor $27,$25,$27 +addl $27,0,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,6,$23 +bne $23,L.2120 +lda $13,348 +cmpeq $14,$31,$23 +bne $23,L.2122 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2122: +L.2120: +lda $12,12 +lda $27,10 +stq $27,-80+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +ldq $25,-80+256($sp) +xor $27,$25,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,6,$23 +bne $23,L.2124 +lda $13,349 +cmpeq $14,$31,$23 +bne $23,L.2126 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2126: +L.2124: +lda $12,12 +lda $27,10 +stl $27,-84+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +xor $27,$25,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,6,$23 +bne $23,L.2128 +lda $13,350 +cmpeq $14,$31,$23 +bne $23,L.2130 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2130: +L.2128: +lda $11,12 +lda $27,10 +stb $27,-61+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +lda $25,-61+256($sp) +ldb $25,($25) +xor $27,$25,$27 +addl $27,0,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,6,$23 +bne $23,L.2132 +lda $13,351 +cmpeq $14,$31,$23 +bne $23,L.2134 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2134: +L.2132: +lda $11,12 +lda $27,10 +stw $27,-64+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +lda $25,-64+256($sp) +ldw $25,($25) +xor $27,$25,$27 +addl $27,0,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,6,$23 +bne $23,L.2136 +lda $13,352 +cmpeq $14,$31,$23 +bne $23,L.2138 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2138: +L.2136: +lda $11,12 +lda $27,10 +stl $27,-68+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +ldl $25,-68+256($sp) +xor $27,$25,$27 +addl $27,0,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,6,$23 +bne $23,L.2140 +lda $13,353 +cmpeq $14,$31,$23 +bne $23,L.2142 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2142: +L.2140: +lda $11,12 +lda $27,10 +stq $27,-80+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +ldq $25,-80+256($sp) +xor $27,$25,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,6,$23 +bne $23,L.2144 +lda $13,354 +cmpeq $14,$31,$23 +bne $23,L.2146 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2146: +L.2144: +lda $11,12 +lda $27,10 +stl $27,-84+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +xor $27,$25,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,6,$23 +bne $23,L.2148 +lda $13,355 +cmpeq $14,$31,$23 +bne $23,L.2150 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2150: +L.2148: +lda $10,12 +lda $27,10 +stb $27,-61+256($sp) +lda $27,-61+256($sp) +ldb $27,($27) +xor $10,$27,$10 +addl $10,0,$10 +cmpeq $10,6,$23 +bne $23,L.2152 +lda $13,356 +cmpeq $14,$31,$23 +bne $23,L.2154 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2154: +L.2152: +lda $10,12 +lda $27,10 +stw $27,-64+256($sp) +lda $27,-64+256($sp) +ldw $27,($27) +xor $10,$27,$10 +addl $10,0,$10 +cmpeq $10,6,$23 +bne $23,L.2156 +lda $13,357 +cmpeq $14,$31,$23 +bne $23,L.2158 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2158: +L.2156: +lda $10,12 +lda $27,10 +stl $27,-68+256($sp) +ldl $27,-68+256($sp) +xor $10,$27,$10 +addl $10,0,$10 +cmpeq $10,6,$23 +bne $23,L.2160 +lda $13,358 +cmpeq $14,$31,$23 +bne $23,L.2162 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2162: +L.2160: +lda $10,12 +lda $27,10 +stq $27,-80+256($sp) +sll $10,8*(8-4),$27 +sra $27,8*(8-4),$27 +ldq $25,-80+256($sp) +xor $27,$25,$27 +mov $27,$10 +cmpeq $10,6,$23 +bne $23,L.2164 +lda $13,359 +cmpeq $14,$31,$23 +bne $23,L.2166 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2166: +L.2164: +lda $10,12 +lda $27,10 +stl $27,-84+256($sp) +mov $10,$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +xor $27,$25,$27 +mov $27,$10 +cmpeq $10,6,$23 +bne $23,L.2168 +lda $13,360 +cmpeq $14,$31,$23 +bne $23,L.2170 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2170: +L.2168: +lda $9,12 +lda $27,10 +stb $27,-61+256($sp) +lda $27,-61+256($sp) +ldb $27,($27) +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +xor $9,$27,$9 +cmpeq $9,6,$23 +bne $23,L.2172 +lda $13,361 +cmpeq $14,$31,$23 +bne $23,L.2174 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2174: +L.2172: +lda $9,12 +lda $27,10 +stw $27,-64+256($sp) +lda $27,-64+256($sp) +ldw $27,($27) +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +xor $9,$27,$9 +cmpeq $9,6,$23 +bne $23,L.2176 +lda $13,362 +cmpeq $14,$31,$23 +bne $23,L.2178 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2178: +L.2176: +lda $9,12 +lda $27,10 +stl $27,-68+256($sp) +ldl $27,-68+256($sp) +xor $9,$27,$9 +cmpeq $9,6,$23 +bne $23,L.2180 +lda $13,363 +cmpeq $14,$31,$23 +bne $23,L.2182 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2182: +L.2180: +lda $9,12 +lda $27,10 +stq $27,-80+256($sp) +ldq $27,-80+256($sp) +xor $9,$27,$9 +cmpeq $9,6,$23 +bne $23,L.2184 +lda $13,364 +cmpeq $14,$31,$23 +bne $23,L.2186 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2186: +L.2184: +lda $9,12 +lda $27,10 +stl $27,-84+256($sp) +ldl $27,-84+256($sp) +zap $27,240,$27 +xor $9,$27,$9 +cmpeq $9,6,$23 +bne $23,L.2188 +lda $13,365 +cmpeq $14,$31,$23 +bne $23,L.2190 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2190: +L.2188: +lda $27,12 +stl $27,-60+256($sp) +lda $27,10 +stb $27,-61+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,-61+256($sp) +ldb $25,($25) +xor $27,$25,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,6 +cmpeq $27,$25,$23 +bne $23,L.2192 +lda $13,366 +cmpeq $14,$31,$23 +bne $23,L.2194 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2194: +L.2192: +lda $27,12 +stl $27,-60+256($sp) +lda $27,10 +stw $27,-64+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,-64+256($sp) +ldw $25,($25) +xor $27,$25,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,6 +cmpeq $27,$25,$23 +bne $23,L.2196 +lda $13,367 +cmpeq $14,$31,$23 +bne $23,L.2198 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2198: +L.2196: +lda $27,12 +stl $27,-60+256($sp) +lda $27,10 +stl $27,-68+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +ldl $25,-68+256($sp) +xor $27,$25,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,6 +cmpeq $27,$25,$23 +bne $23,L.2200 +lda $13,368 +cmpeq $14,$31,$23 +bne $23,L.2202 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2202: +L.2200: +lda $27,12 +stl $27,-60+256($sp) +lda $27,10 +stq $27,-80+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +ldq $25,-80+256($sp) +xor $27,$25,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,6 +cmpeq $27,$25,$23 +bne $23,L.2204 +lda $13,369 +cmpeq $14,$31,$23 +bne $23,L.2206 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2206: +L.2204: +lda $27,12 +stl $27,-60+256($sp) +lda $27,10 +stl $27,-84+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +xor $27,$25,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,6 +cmpeq $27,$25,$23 +bne $23,L.2208 +lda $13,370 +cmpeq $14,$31,$23 +bne $23,L.2210 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2210: +L.2208: +lda $12,12 +lda $27,10 +stb $27,-61+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +lda $25,-61+256($sp) +ldb $25,($25) +or $27,$25,$27 +addl $27,0,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,14,$23 +bne $23,L.2212 +lda $13,371 +cmpeq $14,$31,$23 +bne $23,L.2214 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2214: +L.2212: +lda $12,12 +lda $27,10 +stw $27,-64+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +lda $25,-64+256($sp) +ldw $25,($25) +or $27,$25,$27 +addl $27,0,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,14,$23 +bne $23,L.2216 +lda $13,372 +cmpeq $14,$31,$23 +bne $23,L.2218 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2218: +L.2216: +lda $12,12 +lda $27,10 +stl $27,-68+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +ldl $25,-68+256($sp) +or $27,$25,$27 +addl $27,0,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,14,$23 +bne $23,L.2220 +lda $13,373 +cmpeq $14,$31,$23 +bne $23,L.2222 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2222: +L.2220: +lda $12,12 +lda $27,10 +stq $27,-80+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +ldq $25,-80+256($sp) +or $27,$25,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,14,$23 +bne $23,L.2224 +lda $13,374 +cmpeq $14,$31,$23 +bne $23,L.2226 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2226: +L.2224: +lda $12,12 +lda $27,10 +stl $27,-84+256($sp) +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +or $27,$25,$27 +mov $27,$12 +sll $12,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,14,$23 +bne $23,L.2228 +lda $13,375 +cmpeq $14,$31,$23 +bne $23,L.2230 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2230: +L.2228: +lda $11,12 +lda $27,10 +stb $27,-61+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +lda $25,-61+256($sp) +ldb $25,($25) +or $27,$25,$27 +addl $27,0,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,14,$23 +bne $23,L.2232 +lda $13,376 +cmpeq $14,$31,$23 +bne $23,L.2234 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2234: +L.2232: +lda $11,12 +lda $27,10 +stw $27,-64+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +lda $25,-64+256($sp) +ldw $25,($25) +or $27,$25,$27 +addl $27,0,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,14,$23 +bne $23,L.2236 +lda $13,377 +cmpeq $14,$31,$23 +bne $23,L.2238 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2238: +L.2236: +lda $11,12 +lda $27,10 +stl $27,-68+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +ldl $25,-68+256($sp) +or $27,$25,$27 +addl $27,0,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,14,$23 +bne $23,L.2240 +lda $13,378 +cmpeq $14,$31,$23 +bne $23,L.2242 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2242: +L.2240: +lda $11,12 +lda $27,10 +stq $27,-80+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +ldq $25,-80+256($sp) +or $27,$25,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,14,$23 +bne $23,L.2244 +lda $13,379 +cmpeq $14,$31,$23 +bne $23,L.2246 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2246: +L.2244: +lda $11,12 +lda $27,10 +stl $27,-84+256($sp) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +or $27,$25,$27 +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,14,$23 +bne $23,L.2248 +lda $13,380 +cmpeq $14,$31,$23 +bne $23,L.2250 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2250: +L.2248: +lda $10,12 +lda $27,10 +stb $27,-61+256($sp) +lda $27,-61+256($sp) +ldb $27,($27) +or $10,$27,$10 +addl $10,0,$10 +cmpeq $10,14,$23 +bne $23,L.2252 +lda $13,381 +cmpeq $14,$31,$23 +bne $23,L.2254 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2254: +L.2252: +lda $10,12 +lda $27,10 +stw $27,-64+256($sp) +lda $27,-64+256($sp) +ldw $27,($27) +or $10,$27,$10 +addl $10,0,$10 +cmpeq $10,14,$23 +bne $23,L.2256 +lda $13,382 +cmpeq $14,$31,$23 +bne $23,L.2258 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2258: +L.2256: +lda $10,12 +lda $27,10 +stl $27,-68+256($sp) +ldl $27,-68+256($sp) +or $10,$27,$10 +addl $10,0,$10 +cmpeq $10,14,$23 +bne $23,L.2260 +lda $13,383 +cmpeq $14,$31,$23 +bne $23,L.2262 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2262: +L.2260: +lda $10,12 +lda $27,10 +stq $27,-80+256($sp) +sll $10,8*(8-4),$27 +sra $27,8*(8-4),$27 +ldq $25,-80+256($sp) +or $27,$25,$27 +mov $27,$10 +cmpeq $10,14,$23 +bne $23,L.2264 +lda $13,384 +cmpeq $14,$31,$23 +bne $23,L.2266 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2266: +L.2264: +lda $10,12 +lda $27,10 +stl $27,-84+256($sp) +mov $10,$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +or $27,$25,$27 +mov $27,$10 +cmpeq $10,14,$23 +bne $23,L.2268 +lda $13,385 +cmpeq $14,$31,$23 +bne $23,L.2270 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2270: +L.2268: +lda $9,12 +lda $27,10 +stb $27,-61+256($sp) +lda $27,-61+256($sp) +ldb $27,($27) +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +or $9,$27,$9 +cmpeq $9,14,$23 +bne $23,L.2272 +lda $13,386 +cmpeq $14,$31,$23 +bne $23,L.2274 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2274: +L.2272: +lda $9,12 +lda $27,10 +stw $27,-64+256($sp) +lda $27,-64+256($sp) +ldw $27,($27) +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +or $9,$27,$9 +cmpeq $9,14,$23 +bne $23,L.2276 +lda $13,387 +cmpeq $14,$31,$23 +bne $23,L.2278 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2278: +L.2276: +lda $9,12 +lda $27,10 +stl $27,-68+256($sp) +ldl $27,-68+256($sp) +or $9,$27,$9 +cmpeq $9,14,$23 +bne $23,L.2280 +lda $13,388 +cmpeq $14,$31,$23 +bne $23,L.2282 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2282: +L.2280: +lda $9,12 +lda $27,10 +stq $27,-80+256($sp) +ldq $27,-80+256($sp) +or $9,$27,$9 +cmpeq $9,14,$23 +bne $23,L.2284 +lda $13,389 +cmpeq $14,$31,$23 +bne $23,L.2286 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2286: +L.2284: +lda $9,12 +lda $27,10 +stl $27,-84+256($sp) +ldl $27,-84+256($sp) +zap $27,240,$27 +or $9,$27,$9 +cmpeq $9,14,$23 +bne $23,L.2288 +lda $13,390 +cmpeq $14,$31,$23 +bne $23,L.2290 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2290: +L.2288: +lda $27,12 +stl $27,-60+256($sp) +lda $27,10 +stb $27,-61+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,-61+256($sp) +ldb $25,($25) +or $27,$25,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,14 +cmpeq $27,$25,$23 +bne $23,L.2292 +lda $13,391 +cmpeq $14,$31,$23 +bne $23,L.2294 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2294: +L.2292: +lda $27,12 +stl $27,-60+256($sp) +lda $27,10 +stw $27,-64+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,-64+256($sp) +ldw $25,($25) +or $27,$25,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,14 +cmpeq $27,$25,$23 +bne $23,L.2296 +lda $13,392 +cmpeq $14,$31,$23 +bne $23,L.2298 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2298: +L.2296: +lda $27,12 +stl $27,-60+256($sp) +lda $27,10 +stl $27,-68+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +ldl $25,-68+256($sp) +or $27,$25,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,14 +cmpeq $27,$25,$23 +bne $23,L.2300 +lda $13,393 +cmpeq $14,$31,$23 +bne $23,L.2302 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2302: +L.2300: +lda $27,12 +stl $27,-60+256($sp) +lda $27,10 +stq $27,-80+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +ldq $25,-80+256($sp) +or $27,$25,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,14 +cmpeq $27,$25,$23 +bne $23,L.2304 +lda $13,394 +cmpeq $14,$31,$23 +bne $23,L.2306 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2306: +L.2304: +lda $27,12 +stl $27,-60+256($sp) +lda $27,10 +stl $27,-84+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +ldl $25,-84+256($sp) +zap $25,240,$25 +or $27,$25,$27 +stl $27,-60+256($sp) +ldl $27,-60+256($sp) +zap $27,240,$27 +lda $25,14 +cmpeq $27,$25,$23 +bne $23,L.2308 +lda $13,395 +cmpeq $14,$31,$23 +bne $23,L.2310 +lda $16,L.685 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2310: +L.2308: +cmpeq $13,$31,$23 +bne $23,L.2312 +lda $27,1 +stl $27,-108+256($sp) +ldq $27,-48+256($sp) +ldl $27,44($27) +cmpeq $27,$31,$23 +bne $23,L.2314 +lda $16,L.686 +lda $17,1 +jsr $26,printf +ldgp $gp,0($26) +L.2314: +L.2312: +ldl $0,-108+256($sp) +L.684: +ldt $f6,0($sp) +ldt $f7,8($sp) +ldt $f8,16($sp) +ldt $f9,24($sp) +ldq $9,32($sp) +ldq $10,40($sp) +ldq $11,48($sp) +ldq $12,56($sp) +ldq $13,64($sp) +ldq $14,72($sp) +ldq $24,80($sp) +ldq $26,88($sp) +lda $sp,256($sp) +ret +.end s714 +.sdata +.align 0 +L.2317: +.byte 115 +.byte 55 +.byte 49 +.byte 53 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.2318: +.byte 115 +.byte 55 +.byte 49 +.byte 53 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s715 +.text +.text +.ent s715 +s715: +ldgp $gp,0($27) +lda $sp,-128($sp) +.mask 0x5007800,-88 +.frame $sp,128,$26,48 +stq $11,0($sp) +stq $12,8($sp) +stq $13,16($sp) +stq $14,24($sp) +stq $24,32($sp) +stq $26,40($sp) +stq $16,80($sp) +.prologue 1 +stl $31,-68+128($sp) +stl $31,-60+128($sp) +lda $14,L.2318 +ldq $25,-48+128($sp) +lda $13,60($25) +mov $31,$11 +L.2319: +L.2320: +mov $13,$27 +lda $13,1($27) +mov $14,$25 +lda $14,1($25) +ldb $25,($25) +stb $25,($27) +sll $25,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,$31,$23 +beq $23,L.2319 +lda $27,1 +mov $27,$12 +lda $12,1($12) +lda $12,1($12) +lda $12,1($12) +lda $12,1($12) +lda $27,1($12) +mov $27,$12 +cmpeq $27,6,$23 +bne $23,L.2322 +ldq $27,-48+128($sp) +ldl $27,44($27) +cmpeq $27,$31,$23 +bne $23,L.2324 +lda $16,L.2317 +lda $17,1 +jsr $26,printf +ldgp $gp,0($26) +L.2324: +lda $11,1($11) +L.2322: +ldl $16,-60+128($sp) +lda $27,3 +stl $27,-64+128($sp) +ldl $27,-64+128($sp) +lda $17,2($27) +ldl $18,-68+128($sp) +jsr $26,s715f +ldgp $gp,0($26) +cmpeq $0,5,$23 +bne $23,L.2326 +ldq $27,-48+128($sp) +ldl $27,44($27) +cmpeq $27,$31,$23 +bne $23,L.2328 +lda $16,L.2317 +lda $17,2 +jsr $26,printf +ldgp $gp,0($26) +L.2328: +lda $11,2($11) +L.2326: +mov $11,$0 +L.2316: +ldq $11,0($sp) +ldq $12,8($sp) +ldq $13,16($sp) +ldq $14,24($sp) +ldq $24,32($sp) +ldq $26,40($sp) +lda $sp,128($sp) +ret +.end s715 +.globl s715f +.text +.ent s715f +s715f: +ldgp $gp,0($27) +lda $sp,-64($sp) +.frame $sp,64,$26,48 +.prologue 1 +mov $17,$0 +L.2330: +lda $sp,64($sp) +ret +.end s715f +.sdata +.align 0 +L.2332: +.byte 115 +.byte 55 +.byte 50 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.2333: +.byte 115 +.byte 55 +.byte 50 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s72 +.text +.text +.ent s72 +s72: +ldgp $gp,0($27) +lda $sp,-176($sp) +.fmask 0x300,-168 +.mask 0x5007e00,-104 +.frame $sp,176,$26,48 +stt $f8,0($sp) +stt $f9,8($sp) +stq $9,16($sp) +stq $10,24($sp) +stq $11,32($sp) +stq $12,40($sp) +stq $13,48($sp) +stq $14,56($sp) +stq $24,64($sp) +stq $26,72($sp) +mov $16,$14 +.prologue 1 +lda $12,L.2333 +lda $11,60($14) +mov $31,$9 +L.2334: +L.2335: +mov $11,$27 +lda $11,1($27) +mov $12,$25 +lda $12,1($25) +ldb $25,($25) +stb $25,($27) +sll $25,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,$31,$23 +beq $23,L.2334 +lda $27,2 +stl $27,-60+176($sp) +ldl $27,-60+176($sp) +cmpeq $27,2,$23 +bne $23,L.2337 +lda $27,1 +lda $9,1($9) +lda $16,L.2332 +mov $27,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2337: +ldl $27,-60+176($sp) +negl $27,$25 +addl $27,$25,$27 +cmpeq $27,$31,$23 +bne $23,L.2339 +lda $27,2 +lda $9,2($9) +lda $16,L.2332 +mov $27,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2339: +stl $31,-60+176($sp) +mov $31,$13 +br L.2344 +L.2341: +ldl $27,-60+176($sp) +sll $27,1,$27 +addl $27,0,$27 +or $27,1,$27 +addl $27,0,$27 +stl $27,-60+176($sp) +L.2342: +lda $13,1($13) +L.2344: +ldl $27,4($14) +cmplt $13,$27,$23 +bne $23,L.2341 +ldl $27,-60+176($sp) +not $27,$27 +addl $27,0,$27 +cmpeq $27,$31,$23 +bne $23,L.2345 +lda $27,4 +lda $9,4($9) +lda $16,L.2332 +mov $27,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2345: +lda $27,5 +stl $27,-60+176($sp) +ldl $27,-60+176($sp) +lda $27,1($27) +stl $27,-60+176($sp) +cmpeq $27,6,$23 +beq $23,L.2352 +ldl $27,-60+176($sp) +subl $27,1,$27 +stl $27,-60+176($sp) +cmpeq $27,5,$23 +beq $23,L.2352 +ldl $27,-60+176($sp) +lda $25,1($27) +stl $25,-60+176($sp) +cmpeq $27,5,$23 +beq $23,L.2352 +ldl $27,-60+176($sp) +subl $27,1,$25 +stl $25,-60+176($sp) +cmpeq $27,6,$23 +beq $23,L.2352 +ldl $27,-60+176($sp) +cmpeq $27,5,$23 +bne $23,L.2347 +L.2352: +lda $27,8 +lda $9,8($9) +lda $16,L.2332 +mov $27,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2347: +lda $27,26 +stb $27,-65+176($sp) +lda $27,26 +stq $27,-80+176($sp) +ldt $f9,L.2353 +lda $27,26 +stw $27,-68+176($sp) +lda $27,26 +stl $27,-84+176($sp) +lda $27,26 +stl $27,-64+176($sp) +lds $f8,L.2354 +mov $31,$10 +lda $27,-68+176($sp) +ldw $27,($27) +sll $27,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,26,$23 +beq $23,L.2361 +ldl $27,-64+176($sp) +sll $27,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,26,$23 +beq $23,L.2361 +ldq $27,-80+176($sp) +sll $27,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,26,$23 +beq $23,L.2361 +ldl $27,-84+176($sp) +zap $27,240,$27 +sll $27,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,26,$23 +beq $23,L.2361 +cvttqc $f8,$f1 +cvtql $f1,$f1 +sts $f1,-56+176($sp) +ldl $27,-56+176($sp) +sll $27,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,26,$23 +beq $23,L.2361 +cvttqc $f9,$f1 +cvtql $f1,$f1 +sts $f1,-56+176($sp) +ldl $27,-56+176($sp) +sll $27,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,26,$23 +bne $23,L.2355 +L.2361: +lda $10,1($10) +L.2355: +lda $27,-65+176($sp) +ldb $27,($27) +sll $27,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,26,$23 +beq $23,L.2368 +ldl $27,-64+176($sp) +sll $27,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,26,$23 +beq $23,L.2368 +ldq $27,-80+176($sp) +sll $27,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,26,$23 +beq $23,L.2368 +ldl $27,-84+176($sp) +zap $27,240,$27 +sll $27,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,26,$23 +beq $23,L.2368 +cvttqc $f8,$f1 +cvtql $f1,$f1 +sts $f1,-56+176($sp) +ldl $27,-56+176($sp) +sll $27,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,26,$23 +beq $23,L.2368 +cvttqc $f9,$f1 +cvtql $f1,$f1 +sts $f1,-56+176($sp) +ldl $27,-56+176($sp) +sll $27,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,26,$23 +bne $23,L.2362 +L.2368: +lda $10,2($10) +L.2362: +lda $27,-65+176($sp) +ldb $27,($27) +cmpeq $27,26,$23 +beq $23,L.2375 +lda $27,-68+176($sp) +ldw $27,($27) +cmpeq $27,26,$23 +beq $23,L.2375 +ldq $27,-80+176($sp) +cmpeq $27,26,$23 +beq $23,L.2375 +ldl $27,-84+176($sp) +zap $27,240,$27 +cmpeq $27,26,$23 +beq $23,L.2375 +cvttqc $f8,$f1 +cvtql $f1,$f1 +sts $f1,-56+176($sp) +ldl $27,-56+176($sp) +cmpeq $27,26,$23 +beq $23,L.2375 +cvttqc $f9,$f1 +cvtql $f1,$f1 +sts $f1,-56+176($sp) +ldl $27,-56+176($sp) +cmpeq $27,26,$23 +bne $23,L.2369 +L.2375: +lda $10,4($10) +L.2369: +lda $27,-65+176($sp) +ldb $27,($27) +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +cmpeq $27,26,$23 +beq $23,L.2382 +lda $27,-68+176($sp) +ldw $27,($27) +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +cmpeq $27,26,$23 +beq $23,L.2382 +ldl $27,-64+176($sp) +cmpeq $27,26,$23 +beq $23,L.2382 +ldl $27,-84+176($sp) +zap $27,240,$27 +cmpeq $27,26,$23 +beq $23,L.2382 +cvttqc $f8,$f1 +stt $f1,-56+176($sp) +ldq $27,-56+176($sp) +cmpeq $27,26,$23 +beq $23,L.2382 +cvttqc $f9,$f1 +stt $f1,-56+176($sp) +ldq $27,-56+176($sp) +cmpeq $27,26,$23 +bne $23,L.2376 +L.2382: +lda $10,8($10) +L.2376: +lda $27,26 +lda $25,-65+176($sp) +ldb $25,($25) +cmpeq $25,$27,$23 +beq $23,L.2391 +lda $25,-68+176($sp) +ldw $25,($25) +cmpeq $25,$27,$23 +beq $23,L.2391 +ldl $25,-64+176($sp) +cmpeq $25,$27,$23 +beq $23,L.2391 +ldq $25,-80+176($sp) +cmpeq $25,$27,$23 +beq $23,L.2391 +lds $f30,L.826 +cmptlt $f8,$f30,$f1 +fbne $f1,L.2392 +subs $f8,$f30,$f30 +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+176($sp) +ldl $27,-56+176($sp) +addl $27,0x80000000,$27 +zap $27,240,$27 +stl $27,-88+176($sp) +br L.2393 +L.2392: +cvttqc $f8,$f1 +cvtql $f1,$f1 +sts $f1,-56+176($sp) +ldl $27,-56+176($sp) +stl $27,-88+176($sp) +L.2393: +ldl $27,-88+176($sp) +zap $27,240,$27 +lda $25,26 +cmpeq $27,$25,$23 +beq $23,L.2391 +ldt $f30,L.834 +cmptlt $f9,$f30,$f1 +fbne $f1,L.2394 +subt $f9,$f30,$f30 +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+176($sp) +ldl $27,-56+176($sp) +addl $27,0x80000000,$27 +zap $27,240,$27 +stl $27,-92+176($sp) +br L.2395 +L.2394: +cvttqc $f9,$f1 +cvtql $f1,$f1 +sts $f1,-56+176($sp) +ldl $27,-56+176($sp) +stl $27,-92+176($sp) +L.2395: +ldl $27,-92+176($sp) +zap $27,240,$27 +lda $25,26 +cmpeq $27,$25,$23 +bne $23,L.2383 +L.2391: +lda $10,16($10) +L.2383: +ldt $f30,L.2353 +lda $27,-65+176($sp) +ldb $27,($27) +stq $27,-56+176($sp) +ldt $f29,-56+176($sp) +cvtqs $f29,$f29 +cvtst $f29,$f29 +cmpteq $f29,$f30,$f1 +fbeq $f1,L.2402 +lda $27,-68+176($sp) +ldw $27,($27) +stq $27,-56+176($sp) +ldt $f29,-56+176($sp) +cvtqs $f29,$f29 +cvtst $f29,$f29 +cmpteq $f29,$f30,$f1 +fbeq $f1,L.2402 +lds $f29,-64+176($sp) +cvtlq $f29,$f29 +cvtqs $f29,$f29 +cvtst $f29,$f29 +cmpteq $f29,$f30,$f1 +fbeq $f1,L.2402 +ldt $f29,-80+176($sp) +cvtqs $f29,$f29 +cvtst $f29,$f29 +cmpteq $f29,$f30,$f1 +fbeq $f1,L.2402 +ldl $27,-84+176($sp) +zap $27,240,$27 +ldt $f29,L.594 +srl $27,1,$25 +stq $25,-56+176($sp) +ldt $f28,-56+176($sp) +cvtqt $f28,$f28 +mult $f29,$f28,$f29 +and $27,1,$27 +stq $27,-56+176($sp) +ldt $f28,-56+176($sp) +cvtqt $f28,$f28 +addt $f29,$f28,$f29 +cvtts $f29,$f29 +cvtst $f29,$f29 +cmpteq $f29,$f30,$f1 +fbeq $f1,L.2402 +cvtts $f9,$f29 +cvtst $f29,$f29 +cmpteq $f29,$f30,$f1 +fbne $f1,L.2396 +L.2402: +lda $10,32($10) +L.2396: +ldt $f30,L.2353 +lda $27,-65+176($sp) +ldb $27,($27) +stq $27,-56+176($sp) +ldt $f29,-56+176($sp) +cvtqt $f29,$f29 +cmpteq $f29,$f30,$f1 +fbeq $f1,L.2409 +lda $27,-68+176($sp) +ldw $27,($27) +stq $27,-56+176($sp) +ldt $f29,-56+176($sp) +cvtqt $f29,$f29 +cmpteq $f29,$f30,$f1 +fbeq $f1,L.2409 +lds $f29,-64+176($sp) +cvtlq $f29,$f29 +cvtqt $f29,$f29 +cmpteq $f29,$f30,$f1 +fbeq $f1,L.2409 +ldt $f29,-80+176($sp) +cvtqt $f29,$f29 +cmpteq $f29,$f30,$f1 +fbeq $f1,L.2409 +ldl $27,-84+176($sp) +zap $27,240,$27 +ldt $f29,L.594 +srl $27,1,$25 +stq $25,-56+176($sp) +ldt $f28,-56+176($sp) +cvtqt $f28,$f28 +mult $f29,$f28,$f29 +and $27,1,$27 +stq $27,-56+176($sp) +ldt $f28,-56+176($sp) +cvtqt $f28,$f28 +addt $f29,$f28,$f29 +cmpteq $f29,$f30,$f1 +fbeq $f1,L.2409 +cvtst $f8,$f29 +cmpteq $f29,$f30,$f1 +fbne $f1,L.2403 +L.2409: +lda $10,64($10) +L.2403: +cmpeq $10,$31,$23 +bne $23,L.2410 +lda $27,16 +lda $9,16($9) +lda $16,L.2332 +mov $27,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2410: +mov $9,$0 +L.2331: +ldt $f8,0($sp) +ldt $f9,8($sp) +ldq $9,16($sp) +ldq $10,24($sp) +ldq $11,32($sp) +ldq $12,40($sp) +ldq $13,48($sp) +ldq $14,56($sp) +ldq $24,64($sp) +ldq $26,72($sp) +lda $sp,176($sp) +ret +.end s72 +.sdata +.align 0 +L.2413: +.byte 115 +.byte 55 +.byte 53 +.byte 55 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.2414: +.byte 115 +.byte 55 +.byte 53 +.byte 55 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s757 +.text +.text +.ent s757 +s757: +ldgp $gp,0($27) +lda $sp,-272($sp) +.mask 0x5007e00,-216 +.frame $sp,272,$26,48 +stq $9,0($sp) +stq $10,8($sp) +stq $11,16($sp) +stq $12,24($sp) +stq $13,32($sp) +stq $14,40($sp) +stq $24,48($sp) +stq $26,56($sp) +mov $16,$14 +.prologue 1 +lda $27,L.2414 +stq $27,-152+272($sp) +lda $27,60($14) +stq $27,-160+272($sp) +stl $31,-164+272($sp) +L.2415: +L.2416: +ldq $27,-160+272($sp) +lda $25,1($27) +stq $25,-160+272($sp) +ldq $25,-152+272($sp) +lda $22,1($25) +stq $22,-152+272($sp) +ldb $25,($25) +stb $25,($27) +sll $25,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,$31,$23 +beq $23,L.2415 +lda $27,40 +stl $27,-168+272($sp) +ldl $27,-168+272($sp) +sll $27,3,$25 +addl $25,0,$25 +sll $25,2,$25 +addl $25,0,$25 +lda $22,1280 +cmpeq $25,$22,$23 +beq $23,L.2420 +sra $27,3,$27 +addl $27,0,$27 +sra $27,2,$27 +addl $27,0,$27 +cmpeq $27,1,$23 +bne $23,L.2418 +L.2420: +ldl $27,-164+272($sp) +lda $27,1($27) +stl $27,-164+272($sp) +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.2421 +lda $16,L.2413 +lda $17,1 +jsr $26,printf +ldgp $gp,0($26) +L.2421: +L.2418: +mov $31,$9 +stl $31,-136+272($sp) +br L.2426 +L.2423: +lda $27,1 +stl $27,-128+272($sp) +ldl $27,-128+272($sp) +zap $27,240,$27 +ldl $25,16($14) +subl $25,1,$25 +sll $27,$25,$27 +zap $27,240,$27 +stl $27,-132+272($sp) +stl $31,-140+272($sp) +ldl $27,-140+272($sp) +zap $27,240,$27 +not $27,$27 +zap $27,240,$27 +ldl $25,-136+272($sp) +srl $27,$25,$22 +stl $22,-144+272($sp) +sll $27,$25,$27 +zap $27,240,$27 +stl $27,-140+272($sp) +stl $31,-124+272($sp) +br L.2430 +L.2427: +ldl $27,-124+272($sp) +ldl $25,-136+272($sp) +cmplt $27,$25,$23 +beq $23,L.2438 +lda $27,1 +stl $27,-180+272($sp) +br L.2439 +L.2438: +stl $31,-180+272($sp) +L.2439: +ldl $27,-128+272($sp) +zap $27,240,$27 +ldl $25,-140+272($sp) +zap $25,240,$25 +and $27,$25,$27 +cmpeq $27,$31,$23 +beq $23,L.2440 +lda $27,1 +stl $27,-184+272($sp) +br L.2441 +L.2440: +stl $31,-184+272($sp) +L.2441: +ldl $27,-180+272($sp) +ldl $25,-184+272($sp) +cmpeq $27,$25,$23 +beq $23,L.2437 +ldl $27,-124+272($sp) +ldl $25,-136+272($sp) +cmplt $27,$25,$23 +beq $23,L.2442 +lda $27,1 +stl $27,-188+272($sp) +br L.2443 +L.2442: +stl $31,-188+272($sp) +L.2443: +ldl $27,-132+272($sp) +zap $27,240,$27 +ldl $25,-144+272($sp) +zap $25,240,$25 +and $27,$25,$27 +cmpeq $27,$31,$23 +beq $23,L.2444 +lda $27,1 +stl $27,-192+272($sp) +br L.2445 +L.2444: +stl $31,-192+272($sp) +L.2445: +ldl $27,-188+272($sp) +ldl $25,-192+272($sp) +cmpeq $27,$25,$23 +bne $23,L.2431 +L.2437: +lda $9,1 +L.2431: +ldl $27,-128+272($sp) +zap $27,240,$27 +sll $27,1,$27 +zap $27,240,$27 +stl $27,-128+272($sp) +ldl $27,-132+272($sp) +zap $27,240,$27 +srl $27,1,$27 +stl $27,-132+272($sp) +L.2428: +ldl $27,-124+272($sp) +lda $27,1($27) +stl $27,-124+272($sp) +L.2430: +ldl $27,-124+272($sp) +ldl $25,16($14) +cmplt $27,$25,$23 +bne $23,L.2427 +L.2424: +ldl $27,-136+272($sp) +lda $27,1($27) +stl $27,-136+272($sp) +L.2426: +ldl $27,-136+272($sp) +ldl $25,16($14) +cmplt $27,$25,$23 +bne $23,L.2423 +cmpeq $9,$31,$23 +bne $23,L.2446 +ldl $27,-164+272($sp) +lda $27,2($27) +stl $27,-164+272($sp) +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.2448 +lda $16,L.2413 +lda $17,2 +jsr $26,printf +ldgp $gp,0($26) +L.2448: +L.2446: +lda $10,3 +lda $11,2 +lda $12,1 +cmplt $10,$11,$23 +beq $23,L.2456 +lda $27,1 +stl $27,-184+272($sp) +br L.2457 +L.2456: +stl $31,-184+272($sp) +L.2457: +ldl $27,-184+272($sp) +cmplt $27,$12,$23 +beq $23,L.2454 +lda $27,1 +stl $27,-180+272($sp) +br L.2455 +L.2454: +stl $31,-180+272($sp) +L.2455: +ldl $27,-180+272($sp) +cmpeq $27,1,$23 +bne $23,L.2450 +ldl $27,-164+272($sp) +lda $27,4($27) +stl $27,-164+272($sp) +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.2458 +lda $16,L.2413 +lda $17,4 +jsr $26,printf +ldgp $gp,0($26) +L.2458: +L.2450: +lda $27,-116+272($sp) +lda $25,-120+272($sp) +cmpeq $27,$25,$23 +beq $23,L.2460 +ldl $27,-164+272($sp) +lda $27,8($27) +stl $27,-164+272($sp) +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.2463 +lda $16,L.2413 +lda $17,8 +jsr $26,printf +ldgp $gp,0($26) +L.2463: +L.2460: +lda $27,-116+272($sp) +lda $25,-120+272($sp) +cmpult $27,$25,$23 +beq $23,L.2465 +ldl $27,40($14) +cmpeq $27,$31,$23 +bne $23,L.2468 +lda $16,L.2470 +jsr $26,printf +ldgp $gp,0($26) +L.2468: +L.2465: +mov $31,$9 +stl $31,-124+272($sp) +L.2471: +ldl $27,-124+272($sp) +sll $27,2,$27 +lda $25,-120+272($sp) +addq $27,$25,$27 +lda $25,1 +stl $25,($27) +L.2472: +ldl $27,-124+272($sp) +lda $27,1($27) +stl $27,-124+272($sp) +ldl $27,-124+272($sp) +cmplt $27,16,$23 +bne $23,L.2471 +stl $31,-116+272($sp) +stl $31,-104+272($sp) +stl $31,-96+272($sp) +stl $31,-92+272($sp) +stl $31,-84+272($sp) +stl $31,-68+272($sp) +mov $31,$10 +L.2481: +mov $31,$11 +L.2485: +mov $31,$12 +L.2489: +mov $31,$13 +L.2493: +cmplt $10,$11,$23 +beq $23,L.2504 +lda $27,1 +stl $27,-192+272($sp) +br L.2505 +L.2504: +stl $31,-192+272($sp) +L.2505: +cmplt $12,$13,$23 +beq $23,L.2506 +lda $27,1 +stl $27,-196+272($sp) +br L.2507 +L.2506: +stl $31,-196+272($sp) +L.2507: +ldl $27,-192+272($sp) +ldl $25,-196+272($sp) +cmpeq $27,$25,$23 +beq $23,L.2502 +lda $27,1 +stl $27,-188+272($sp) +br L.2503 +L.2502: +stl $31,-188+272($sp) +L.2503: +ldl $27,-188+272($sp) +sll $10,3,$25 +addl $25,0,$25 +sll $11,2,$22 +addl $22,0,$22 +addl $25,$22,$25 +sll $12,1,$22 +addl $22,0,$22 +addl $25,$22,$25 +addl $25,$13,$25 +sll $25,8*(8-4),$25 +sra $25,8*(8-4),$25 +sll $25,2,$25 +lda $22,-120+272($sp) +addq $25,$22,$25 +ldl $25,($25) +cmpeq $27,$25,$23 +bne $23,L.2497 +lda $9,1 +L.2497: +L.2494: +lda $13,1($13) +cmplt $13,2,$23 +bne $23,L.2493 +L.2490: +lda $12,1($12) +cmplt $12,2,$23 +bne $23,L.2489 +L.2486: +lda $11,1($11) +cmplt $11,2,$23 +bne $23,L.2485 +L.2482: +lda $10,1($10) +cmplt $10,2,$23 +bne $23,L.2481 +cmpeq $9,$31,$23 +bne $23,L.2508 +ldl $27,-164+272($sp) +lda $27,16($27) +stl $27,-164+272($sp) +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.2510 +lda $16,L.2413 +lda $17,16 +jsr $26,printf +ldgp $gp,0($26) +L.2510: +L.2508: +stq $31,-176+272($sp) +ldq $27,-176+272($sp) +cmpeq $27,$31,$23 +bne $23,L.2512 +ldl $27,-164+272($sp) +lda $27,32($27) +stl $27,-164+272($sp) +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.2514 +lda $16,L.2413 +lda $17,32 +jsr $26,printf +ldgp $gp,0($26) +L.2514: +L.2512: +ldl $0,-164+272($sp) +L.2412: +ldq $9,0($sp) +ldq $10,8($sp) +ldq $11,16($sp) +ldq $12,24($sp) +ldq $13,32($sp) +ldq $14,40($sp) +ldq $24,48($sp) +ldq $26,56($sp) +lda $sp,272($sp) +ret +.end s757 +.sdata +.align 0 +L.2517: +.byte 76 +.byte 111 +.byte 99 +.byte 97 +.byte 108 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 32 +.byte 37 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.2518: +.byte 115 +.byte 55 +.byte 56 +.byte 49 +.byte 51 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.2519: +.byte 115 +.byte 55 +.byte 56 +.byte 49 +.byte 51 +.byte 32 +.byte 32 +.byte 0 +.globl s7813 +.text +.text +.ent s7813 +s7813: +ldgp $gp,0($27) +lda $sp,-192($sp) +.mask 0x5007e00,-136 +.frame $sp,192,$26,48 +stq $9,0($sp) +stq $10,8($sp) +stq $11,16($sp) +stq $12,24($sp) +stq $13,32($sp) +stq $14,40($sp) +stq $24,48($sp) +stq $26,56($sp) +stq $16,144($sp) +.prologue 1 +lda $9,L.2519 +ldq $27,-48+192($sp) +lda $25,60($27) +stq $25,-64+192($sp) +mov $31,$13 +stl $31,-68+192($sp) +ldl $14,48($27) +L.2520: +L.2521: +ldq $27,-64+192($sp) +lda $25,1($27) +stq $25,-64+192($sp) +mov $9,$25 +lda $9,1($25) +ldb $25,($25) +stb $25,($27) +sll $25,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,$31,$23 +beq $23,L.2520 +br L.2523 +lda $13,1 +cmpeq $14,$31,$23 +bne $23,L.2525 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2525: +L.2523: +br L.2527 +lda $13,2 +cmpeq $14,$31,$23 +bne $23,L.2529 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2529: +L.2527: +br L.2531 +lda $13,3 +cmpeq $14,$31,$23 +bne $23,L.2533 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2533: +L.2531: +br L.2535 +lda $13,4 +cmpeq $14,$31,$23 +bne $23,L.2537 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2537: +L.2535: +br L.2539 +lda $13,5 +cmpeq $14,$31,$23 +bne $23,L.2541 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2541: +L.2539: +br L.2543 +lda $13,6 +cmpeq $14,$31,$23 +bne $23,L.2545 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2545: +L.2543: +br L.2547 +lda $13,7 +cmpeq $14,$31,$23 +bne $23,L.2549 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2549: +L.2547: +br L.2551 +lda $13,8 +cmpeq $14,$31,$23 +bne $23,L.2553 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2553: +L.2551: +br L.2555 +lda $13,9 +cmpeq $14,$31,$23 +bne $23,L.2557 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2557: +L.2555: +br L.2559 +lda $13,10 +cmpeq $14,$31,$23 +bne $23,L.2561 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2561: +L.2559: +br L.2563 +lda $13,11 +cmpeq $14,$31,$23 +bne $23,L.2565 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2565: +L.2563: +br L.2567 +lda $13,12 +cmpeq $14,$31,$23 +bne $23,L.2569 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2569: +L.2567: +br L.2571 +lda $13,13 +cmpeq $14,$31,$23 +bne $23,L.2573 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2573: +L.2571: +br L.2575 +lda $13,14 +cmpeq $14,$31,$23 +bne $23,L.2577 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2577: +L.2575: +br L.2579 +lda $13,15 +cmpeq $14,$31,$23 +bne $23,L.2581 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2581: +L.2579: +br L.2583 +lda $13,16 +cmpeq $14,$31,$23 +bne $23,L.2585 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2585: +L.2583: +br L.2587 +lda $13,17 +cmpeq $14,$31,$23 +bne $23,L.2589 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2589: +L.2587: +br L.2591 +lda $13,18 +cmpeq $14,$31,$23 +bne $23,L.2593 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2593: +L.2591: +br L.2595 +lda $13,16 +cmpeq $14,$31,$23 +bne $23,L.2597 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2597: +L.2595: +br L.2599 +lda $13,20 +cmpeq $14,$31,$23 +bne $23,L.2601 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2601: +L.2599: +br L.2603 +lda $13,21 +cmpeq $14,$31,$23 +bne $23,L.2605 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2605: +L.2603: +br L.2607 +lda $13,22 +cmpeq $14,$31,$23 +bne $23,L.2609 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2609: +L.2607: +br L.2611 +lda $13,23 +cmpeq $14,$31,$23 +bne $23,L.2613 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2613: +L.2611: +br L.2615 +lda $13,24 +cmpeq $14,$31,$23 +bne $23,L.2617 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2617: +L.2615: +br L.2619 +lda $13,25 +cmpeq $14,$31,$23 +bne $23,L.2621 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2621: +L.2619: +br L.2623 +lda $13,26 +cmpeq $14,$31,$23 +bne $23,L.2625 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2625: +L.2623: +br L.2627 +lda $13,27 +cmpeq $14,$31,$23 +bne $23,L.2629 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2629: +L.2627: +br L.2631 +lda $13,28 +cmpeq $14,$31,$23 +bne $23,L.2633 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2633: +L.2631: +br L.2635 +lda $13,26 +cmpeq $14,$31,$23 +bne $23,L.2637 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2637: +L.2635: +br L.2639 +lda $13,30 +cmpeq $14,$31,$23 +bne $23,L.2641 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2641: +L.2639: +br L.2643 +lda $13,31 +cmpeq $14,$31,$23 +bne $23,L.2645 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2645: +L.2643: +br L.2647 +lda $13,32 +cmpeq $14,$31,$23 +bne $23,L.2649 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2649: +L.2647: +br L.2651 +lda $13,33 +cmpeq $14,$31,$23 +bne $23,L.2653 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2653: +L.2651: +br L.2655 +lda $13,34 +cmpeq $14,$31,$23 +bne $23,L.2657 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2657: +L.2655: +br L.2659 +lda $13,35 +cmpeq $14,$31,$23 +bne $23,L.2661 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2661: +L.2659: +br L.2663 +lda $13,36 +cmpeq $14,$31,$23 +bne $23,L.2665 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2665: +L.2663: +br L.2667 +lda $13,37 +cmpeq $14,$31,$23 +bne $23,L.2669 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2669: +L.2667: +br L.2671 +lda $13,38 +cmpeq $14,$31,$23 +bne $23,L.2673 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2673: +L.2671: +br L.2675 +lda $13,39 +cmpeq $14,$31,$23 +bne $23,L.2677 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2677: +L.2675: +br L.2679 +lda $13,40 +cmpeq $14,$31,$23 +bne $23,L.2681 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2681: +L.2679: +br L.2683 +lda $13,41 +cmpeq $14,$31,$23 +bne $23,L.2685 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2685: +L.2683: +br L.2687 +lda $13,42 +cmpeq $14,$31,$23 +bne $23,L.2689 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2689: +L.2687: +br L.2691 +lda $13,43 +cmpeq $14,$31,$23 +bne $23,L.2693 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2693: +L.2691: +br L.2695 +lda $13,44 +cmpeq $14,$31,$23 +bne $23,L.2697 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2697: +L.2695: +br L.2699 +lda $13,45 +cmpeq $14,$31,$23 +bne $23,L.2701 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2701: +L.2699: +br L.2703 +lda $13,46 +cmpeq $14,$31,$23 +bne $23,L.2705 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2705: +L.2703: +br L.2707 +lda $13,47 +cmpeq $14,$31,$23 +bne $23,L.2709 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2709: +L.2707: +br L.2711 +lda $13,48 +cmpeq $14,$31,$23 +bne $23,L.2713 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2713: +L.2711: +br L.2715 +lda $13,49 +cmpeq $14,$31,$23 +bne $23,L.2717 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2717: +L.2715: +br L.2719 +lda $13,50 +cmpeq $14,$31,$23 +bne $23,L.2721 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2721: +L.2719: +br L.2723 +lda $13,51 +cmpeq $14,$31,$23 +bne $23,L.2725 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2725: +L.2723: +br L.2727 +lda $13,52 +cmpeq $14,$31,$23 +bne $23,L.2729 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2729: +L.2727: +br L.2731 +lda $13,53 +cmpeq $14,$31,$23 +bne $23,L.2733 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2733: +L.2731: +br L.2735 +lda $13,54 +cmpeq $14,$31,$23 +bne $23,L.2737 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2737: +L.2735: +br L.2739 +lda $13,55 +cmpeq $14,$31,$23 +bne $23,L.2741 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2741: +L.2739: +br L.2743 +lda $13,56 +cmpeq $14,$31,$23 +bne $23,L.2745 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2745: +L.2743: +br L.2747 +lda $13,57 +cmpeq $14,$31,$23 +bne $23,L.2749 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2749: +L.2747: +br L.2751 +lda $13,58 +cmpeq $14,$31,$23 +bne $23,L.2753 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2753: +L.2751: +br L.2755 +lda $13,56 +cmpeq $14,$31,$23 +bne $23,L.2757 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2757: +L.2755: +br L.2759 +lda $13,60 +cmpeq $14,$31,$23 +bne $23,L.2761 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2761: +L.2759: +br L.2763 +lda $13,61 +cmpeq $14,$31,$23 +bne $23,L.2765 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2765: +L.2763: +br L.2767 +lda $13,62 +cmpeq $14,$31,$23 +bne $23,L.2769 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2769: +L.2767: +br L.2771 +lda $13,63 +cmpeq $14,$31,$23 +bne $23,L.2773 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2773: +L.2771: +br L.2775 +lda $13,64 +cmpeq $14,$31,$23 +bne $23,L.2777 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2777: +L.2775: +br L.2779 +lda $13,65 +cmpeq $14,$31,$23 +bne $23,L.2781 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2781: +L.2779: +br L.2783 +lda $13,66 +cmpeq $14,$31,$23 +bne $23,L.2785 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2785: +L.2783: +br L.2787 +lda $13,67 +cmpeq $14,$31,$23 +bne $23,L.2789 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2789: +L.2787: +br L.2791 +lda $13,68 +cmpeq $14,$31,$23 +bne $23,L.2793 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2793: +L.2791: +br L.2795 +lda $13,69 +cmpeq $14,$31,$23 +bne $23,L.2797 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2797: +L.2795: +br L.2799 +lda $13,70 +cmpeq $14,$31,$23 +bne $23,L.2801 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2801: +L.2799: +br L.2803 +lda $13,71 +cmpeq $14,$31,$23 +bne $23,L.2805 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2805: +L.2803: +br L.2807 +lda $13,72 +cmpeq $14,$31,$23 +bne $23,L.2809 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2809: +L.2807: +br L.2811 +lda $13,73 +cmpeq $14,$31,$23 +bne $23,L.2813 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2813: +L.2811: +br L.2815 +lda $13,74 +cmpeq $14,$31,$23 +bne $23,L.2817 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2817: +L.2815: +br L.2819 +lda $13,75 +cmpeq $14,$31,$23 +bne $23,L.2821 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2821: +L.2819: +cmpeq $13,$31,$23 +bne $23,L.2823 +ldq $27,-48+192($sp) +ldl $27,44($27) +cmpeq $27,$31,$23 +bne $23,L.2825 +lda $16,L.2518 +lda $17,1 +jsr $26,printf +ldgp $gp,0($26) +L.2825: +ldl $27,-68+192($sp) +lda $27,1($27) +stl $27,-68+192($sp) +L.2823: +mov $31,$13 +mov $31,$11 +mov $31,$12 +mov $12,$27 +lda $12,1($27) +mov $31,$25 +cmpeq $27,$25,$23 +bne $23,L.2828 +mov $11,$27 +lda $11,1($27) +cmpeq $27,$25,$23 +bne $23,L.2828 +lda $27,1 +stl $27,-80+192($sp) +br L.2829 +L.2828: +stl $31,-80+192($sp) +L.2829: +ldl $10,-80+192($sp) +cmpeq $12,1,$23 +bne $23,L.2830 +lda $13,1 +cmpeq $14,$31,$23 +bne $23,L.2832 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2832: +L.2830: +cmpeq $11,$31,$23 +bne $23,L.2834 +lda $13,2 +cmpeq $14,$31,$23 +bne $23,L.2836 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2836: +L.2834: +cmpeq $10,$31,$23 +bne $23,L.2838 +lda $13,3 +cmpeq $14,$31,$23 +bne $23,L.2840 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2840: +L.2838: +cmpeq $12,$31,$23 +bne $23,L.2843 +mov $11,$25 +lda $11,1($25) +cmpeq $25,$31,$23 +bne $23,L.2843 +lda $27,1 +stl $27,-84+192($sp) +br L.2844 +L.2843: +stl $31,-84+192($sp) +L.2844: +ldl $10,-84+192($sp) +cmpeq $12,1,$23 +bne $23,L.2845 +lda $13,4 +cmpeq $14,$31,$23 +bne $23,L.2847 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2847: +L.2845: +cmpeq $11,1,$23 +bne $23,L.2849 +lda $13,5 +cmpeq $14,$31,$23 +bne $23,L.2851 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2851: +L.2849: +cmpeq $10,$31,$23 +bne $23,L.2853 +lda $13,6 +cmpeq $14,$31,$23 +bne $23,L.2855 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2855: +L.2853: +mov $12,$27 +subl $27,1,$12 +mov $31,$25 +cmpeq $27,$25,$23 +bne $23,L.2858 +cmpeq $11,$25,$23 +bne $23,L.2858 +lda $27,1 +stl $27,-88+192($sp) +br L.2859 +L.2858: +stl $31,-88+192($sp) +L.2859: +ldl $10,-88+192($sp) +cmpeq $12,$31,$23 +bne $23,L.2860 +lda $13,7 +cmpeq $14,$31,$23 +bne $23,L.2862 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2862: +L.2860: +cmpeq $11,1,$23 +bne $23,L.2864 +lda $13,8 +cmpeq $14,$31,$23 +bne $23,L.2866 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2866: +L.2864: +cmpeq $10,1,$23 +bne $23,L.2868 +lda $13,9 +cmpeq $14,$31,$23 +bne $23,L.2870 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2870: +L.2868: +cmpeq $12,$31,$23 +bne $23,L.2873 +mov $11,$25 +subl $25,1,$11 +cmpeq $25,$31,$23 +bne $23,L.2873 +lda $27,1 +stl $27,-92+192($sp) +br L.2874 +L.2873: +stl $31,-92+192($sp) +L.2874: +ldl $10,-92+192($sp) +cmpeq $12,$31,$23 +bne $23,L.2875 +lda $13,10 +cmpeq $14,$31,$23 +bne $23,L.2877 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2877: +L.2875: +cmpeq $11,1,$23 +bne $23,L.2879 +lda $13,11 +cmpeq $14,$31,$23 +bne $23,L.2881 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2881: +L.2879: +cmpeq $10,$31,$23 +bne $23,L.2883 +lda $13,12 +cmpeq $14,$31,$23 +bne $23,L.2885 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2885: +L.2883: +cmpeq $13,$31,$23 +bne $23,L.2887 +ldq $27,-48+192($sp) +ldl $27,44($27) +cmpeq $27,$31,$23 +bne $23,L.2889 +lda $16,L.2518 +lda $17,2 +jsr $26,printf +ldgp $gp,0($26) +L.2889: +ldl $27,-68+192($sp) +lda $27,2($27) +stl $27,-68+192($sp) +L.2887: +mov $31,$13 +mov $31,$11 +mov $31,$12 +mov $12,$27 +lda $12,1($27) +mov $31,$25 +cmpeq $27,$25,$23 +beq $23,L.2894 +cmpeq $11,$25,$23 +bne $23,L.2892 +L.2894: +lda $27,1 +stl $27,-96+192($sp) +br L.2893 +L.2892: +stl $31,-96+192($sp) +L.2893: +ldl $10,-96+192($sp) +cmpeq $12,1,$23 +bne $23,L.2895 +lda $13,1 +cmpeq $14,$31,$23 +bne $23,L.2897 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2897: +L.2895: +cmpeq $11,$31,$23 +bne $23,L.2899 +lda $13,2 +cmpeq $14,$31,$23 +bne $23,L.2901 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2901: +L.2899: +cmpeq $10,$31,$23 +bne $23,L.2903 +lda $13,3 +cmpeq $14,$31,$23 +bne $23,L.2905 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2905: +L.2903: +mov $11,$27 +lda $11,1($27) +mov $31,$25 +cmpeq $27,$25,$23 +beq $23,L.2910 +cmpeq $12,$25,$23 +bne $23,L.2908 +L.2910: +lda $27,1 +stl $27,-100+192($sp) +br L.2909 +L.2908: +stl $31,-100+192($sp) +L.2909: +ldl $10,-100+192($sp) +cmpeq $12,1,$23 +bne $23,L.2911 +lda $13,4 +cmpeq $14,$31,$23 +bne $23,L.2913 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2913: +L.2911: +cmpeq $11,1,$23 +bne $23,L.2915 +lda $13,5 +cmpeq $14,$31,$23 +bne $23,L.2917 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2917: +L.2915: +cmpeq $10,1,$23 +bne $23,L.2919 +lda $13,6 +cmpeq $14,$31,$23 +bne $23,L.2921 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2921: +L.2919: +mov $12,$27 +subl $27,1,$12 +mov $31,$25 +cmpeq $27,$25,$23 +beq $23,L.2926 +mov $11,$27 +subl $27,1,$11 +cmpeq $27,$25,$23 +bne $23,L.2924 +L.2926: +lda $27,1 +stl $27,-104+192($sp) +br L.2925 +L.2924: +stl $31,-104+192($sp) +L.2925: +ldl $10,-104+192($sp) +cmpeq $12,$31,$23 +bne $23,L.2927 +lda $13,7 +cmpeq $14,$31,$23 +bne $23,L.2929 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2929: +L.2927: +cmpeq $11,1,$23 +bne $23,L.2931 +lda $13,8 +cmpeq $14,$31,$23 +bne $23,L.2933 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2933: +L.2931: +cmpeq $10,1,$23 +bne $23,L.2935 +lda $13,9 +cmpeq $14,$31,$23 +bne $23,L.2937 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2937: +L.2935: +mov $31,$27 +cmpeq $12,$27,$23 +beq $23,L.2942 +mov $11,$25 +subl $25,1,$11 +cmpeq $25,$27,$23 +bne $23,L.2940 +L.2942: +lda $27,1 +stl $27,-108+192($sp) +br L.2941 +L.2940: +stl $31,-108+192($sp) +L.2941: +ldl $10,-108+192($sp) +cmpeq $12,$31,$23 +bne $23,L.2943 +lda $13,10 +cmpeq $14,$31,$23 +bne $23,L.2945 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2945: +L.2943: +cmpeq $11,$31,$23 +bne $23,L.2947 +lda $13,11 +cmpeq $14,$31,$23 +bne $23,L.2949 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2949: +L.2947: +cmpeq $10,1,$23 +bne $23,L.2951 +lda $13,12 +cmpeq $14,$31,$23 +bne $23,L.2953 +lda $16,L.2517 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.2953: +L.2951: +cmpeq $13,$31,$23 +bne $23,L.2955 +ldq $27,-48+192($sp) +ldl $27,44($27) +cmpeq $27,$31,$23 +bne $23,L.2957 +lda $16,L.2518 +lda $17,4 +jsr $26,printf +ldgp $gp,0($26) +L.2957: +ldl $27,-68+192($sp) +lda $27,4($27) +stl $27,-68+192($sp) +L.2955: +mov $31,$11 +mov $31,$12 +stl $31,-72+192($sp) +lda $25,1 +stl $25,-76+192($sp) +ldl $25,-76+192($sp) +cmpeq $25,$31,$23 +bne $23,L.2961 +ldl $27,-72+192($sp) +stl $27,-112+192($sp) +br L.2962 +L.2961: +ldl $27,-76+192($sp) +cmpeq $27,$31,$23 +bne $23,L.2963 +mov $12,$27 +lda $12,1($27) +stl $27,-116+192($sp) +br L.2964 +L.2963: +mov $11,$27 +lda $11,1($27) +stl $27,-116+192($sp) +L.2964: +ldl $27,-116+192($sp) +stl $27,-112+192($sp) +L.2962: +ldl $10,-112+192($sp) +cmpeq $10,$31,$23 +beq $23,L.2968 +cmpeq $12,$31,$23 +beq $23,L.2968 +cmpeq $11,$31,$23 +bne $23,L.2965 +L.2968: +ldq $27,-48+192($sp) +ldl $27,44($27) +cmpeq $27,$31,$23 +bne $23,L.2969 +lda $16,L.2518 +lda $17,8 +jsr $26,printf +ldgp $gp,0($26) +L.2969: +ldl $27,-68+192($sp) +lda $27,8($27) +stl $27,-68+192($sp) +L.2965: +ldl $27,-76+192($sp) +cmpeq $27,$31,$23 +bne $23,L.2976 +ldl $27,-72+192($sp) +stl $27,-120+192($sp) +br L.2977 +L.2976: +lda $27,1 +stl $27,-120+192($sp) +L.2977: +ldl $25,-120+192($sp) +cmpeq $25,$31,$23 +beq $23,L.2975 +ldl $25,-72+192($sp) +cmpeq $25,$31,$23 +bne $23,L.2978 +lda $27,1 +stl $27,-124+192($sp) +br L.2979 +L.2978: +ldl $27,-72+192($sp) +stl $27,-124+192($sp) +L.2979: +ldl $27,-124+192($sp) +cmpeq $27,$31,$23 +bne $23,L.2971 +L.2975: +ldq $27,-48+192($sp) +ldl $27,44($27) +cmpeq $27,$31,$23 +bne $23,L.2980 +lda $16,L.2518 +lda $17,16 +jsr $26,printf +ldgp $gp,0($26) +L.2980: +ldl $27,-68+192($sp) +lda $27,16($27) +stl $27,-68+192($sp) +L.2971: +ldl $0,-68+192($sp) +L.2516: +ldq $9,0($sp) +ldq $10,8($sp) +ldq $11,16($sp) +ldq $12,24($sp) +ldq $13,32($sp) +ldq $14,40($sp) +ldq $24,48($sp) +ldq $26,56($sp) +lda $sp,192($sp) +ret +.end s7813 +.sdata +.align 0 +L.2983: +.byte 115 +.byte 56 +.byte 49 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.2984: +.byte 115 +.byte 56 +.byte 49 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.align 0 +L.2985: +.byte 82 +.byte 101 +.byte 103 +.byte 105 +.byte 115 +.byte 116 +.byte 101 +.byte 114 +.byte 32 +.byte 99 +.byte 111 +.byte 117 +.byte 110 +.byte 116 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 37 +.byte 115 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 117 +.byte 110 +.byte 114 +.byte 101 +.byte 108 +.byte 105 +.byte 97 +.byte 98 +.byte 108 +.byte 101 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.2986: +.byte 37 +.byte 100 +.byte 32 +.byte 114 +.byte 101 +.byte 103 +.byte 105 +.byte 115 +.byte 116 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 97 +.byte 115 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 101 +.byte 100 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 37 +.byte 115 +.byte 32 +.byte 118 +.byte 97 +.byte 114 +.byte 105 +.byte 97 +.byte 98 +.byte 108 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.globl s81 +.text +.text +.ent s81 +s81: +ldgp $gp,0($27) +lda $sp,-160($sp) +.mask 0x5007e00,-104 +.frame $sp,160,$26,48 +stq $9,0($sp) +stq $10,8($sp) +stq $11,16($sp) +stq $12,24($sp) +stq $13,32($sp) +stq $14,40($sp) +stq $24,48($sp) +stq $26,56($sp) +stq $16,112($sp) +.prologue 1 +stl $31,-96+160($sp) +stl $31,-84+160($sp) +stl $31,-88+160($sp) +stl $31,-92+160($sp) +lda $27,L.2984 +stq $27,-72+160($sp) +ldq $27,-48+160($sp) +lda $27,60($27) +stq $27,-80+160($sp) +L.2987: +L.2988: +ldq $27,-80+160($sp) +lda $25,1($27) +stq $25,-80+160($sp) +ldq $25,-72+160($sp) +lda $22,1($25) +stq $22,-72+160($sp) +ldb $25,($25) +stb $25,($27) +sll $25,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,$31,$23 +beq $23,L.2987 +lda $27,1 +stl $27,-60+160($sp) +mov $31,$11 +L.2990: +ldl $27,-60+160($sp) +mov $27,$25 +mov $25,$14 +mov $25,$10 +lda $13,-60+160($sp) +lda $9,-60+160($sp) +mov $27,$12 +stl $27,-64+160($sp) +sll $14,8*(8-1),$27 +sra $27,8*(8-1),$27 +sll $10,8*(8-1),$25 +sra $25,8*(8-1),$25 +cmpeq $27,$25,$23 +bne $23,L.2994 +lda $27,1 +stl $27,-84+160($sp) +L.2994: +mov $13,$27 +mov $9,$25 +cmpeq $27,$25,$23 +bne $23,L.2996 +lda $27,1 +stl $27,-88+160($sp) +L.2996: +ldl $27,-64+160($sp) +cmpeq $12,$27,$23 +bne $23,L.2998 +lda $27,1 +stl $27,-92+160($sp) +L.2998: +ldl $27,-60+160($sp) +sll $27,1,$27 +addl $27,0,$27 +stl $27,-60+160($sp) +L.2991: +lda $11,1($11) +cmplt $11,50,$23 +bne $23,L.2990 +ldl $27,-84+160($sp) +cmpeq $27,$31,$23 +bne $23,L.3000 +ldl $27,-96+160($sp) +lda $27,1($27) +stl $27,-96+160($sp) +ldq $27,-48+160($sp) +ldl $27,44($27) +cmpeq $27,$31,$23 +bne $23,L.3002 +lda $16,L.2983 +lda $17,1 +jsr $26,printf +ldgp $gp,0($26) +L.3002: +L.3000: +ldl $27,-88+160($sp) +cmpeq $27,$31,$23 +bne $23,L.3004 +ldl $27,-96+160($sp) +lda $27,2($27) +stl $27,-96+160($sp) +ldq $27,-48+160($sp) +ldl $27,44($27) +cmpeq $27,$31,$23 +bne $23,L.3006 +lda $16,L.2983 +lda $17,2 +jsr $26,printf +ldgp $gp,0($26) +L.3006: +L.3004: +ldl $27,-92+160($sp) +cmpeq $27,$31,$23 +bne $23,L.3008 +ldl $27,-96+160($sp) +lda $27,4($27) +stl $27,-96+160($sp) +ldq $27,-48+160($sp) +ldl $27,44($27) +cmpeq $27,$31,$23 +bne $23,L.3010 +lda $16,L.2983 +lda $17,4 +jsr $26,printf +ldgp $gp,0($26) +L.3010: +L.3008: +jsr $26,regc +ldgp $gp,0($26) +stl $0,-60+160($sp) +ldq $27,-48+160($sp) +ldl $27,40($27) +cmpeq $27,$31,$23 +bne $23,L.3012 +ldl $27,-60+160($sp) +cmplt $27,$31,$23 +beq $23,L.3014 +lda $16,L.2985 +lda $17,L.423 +jsr $26,printf +ldgp $gp,0($26) +br L.3015 +L.3014: +lda $16,L.2986 +ldl $17,-60+160($sp) +lda $18,L.423 +jsr $26,printf +ldgp $gp,0($26) +L.3015: +L.3012: +jsr $26,regp +ldgp $gp,0($26) +stl $0,-60+160($sp) +ldq $27,-48+160($sp) +ldl $27,40($27) +cmpeq $27,$31,$23 +bne $23,L.3016 +ldl $27,-60+160($sp) +cmplt $27,$31,$23 +beq $23,L.3018 +lda $16,L.2985 +lda $17,L.3020 +jsr $26,printf +ldgp $gp,0($26) +br L.3019 +L.3018: +lda $16,L.2986 +ldl $17,-60+160($sp) +lda $18,L.3020 +jsr $26,printf +ldgp $gp,0($26) +L.3019: +L.3016: +jsr $26,regi +ldgp $gp,0($26) +stl $0,-60+160($sp) +ldq $27,-48+160($sp) +ldl $27,40($27) +cmpeq $27,$31,$23 +bne $23,L.3021 +ldl $27,-60+160($sp) +cmplt $27,$31,$23 +beq $23,L.3023 +lda $16,L.2985 +lda $17,L.424 +jsr $26,printf +ldgp $gp,0($26) +br L.3024 +L.3023: +lda $16,L.2986 +ldl $17,-60+160($sp) +lda $18,L.424 +jsr $26,printf +ldgp $gp,0($26) +L.3024: +L.3021: +ldl $0,-96+160($sp) +L.2982: +ldq $9,0($sp) +ldq $10,8($sp) +ldq $11,16($sp) +ldq $12,24($sp) +ldq $13,32($sp) +ldq $14,40($sp) +ldq $24,48($sp) +ldq $26,56($sp) +lda $sp,160($sp) +ret +.end s81 +.globl regc +.text +.ent regc +regc: +ldgp $gp,0($27) +lda $sp,-272($sp) +.mask 0x5007e00,-216 +.frame $sp,272,$26,48 +stq $9,0($sp) +stq $10,8($sp) +stq $11,16($sp) +stq $12,24($sp) +stq $13,32($sp) +stq $14,40($sp) +stq $24,48($sp) +stq $26,56($sp) +.prologue 1 +stb $31,-190+272($sp) +lda $27,1 +stb $27,-169+272($sp) +lda $27,2 +stb $27,-170+272($sp) +lda $27,3 +stb $27,-171+272($sp) +lda $14,4 +lda $27,5 +stb $27,-172+272($sp) +lda $13,6 +lda $27,7 +stb $27,-173+272($sp) +lda $12,8 +lda $27,9 +stb $27,-174+272($sp) +lda $11,10 +lda $27,11 +stb $27,-175+272($sp) +lda $10,12 +lda $27,13 +stb $27,-176+272($sp) +lda $9,14 +lda $27,15 +stb $27,-177+272($sp) +lda $27,16 +stb $27,-57+272($sp) +lda $27,17 +stb $27,-178+272($sp) +lda $27,18 +stb $27,-58+272($sp) +lda $27,19 +stb $27,-179+272($sp) +lda $27,20 +stb $27,-59+272($sp) +lda $27,21 +stb $27,-180+272($sp) +lda $27,22 +stb $27,-60+272($sp) +lda $27,23 +stb $27,-181+272($sp) +lda $27,24 +stb $27,-61+272($sp) +lda $27,25 +stb $27,-182+272($sp) +lda $27,26 +stb $27,-62+272($sp) +lda $27,27 +stb $27,-183+272($sp) +lda $27,28 +stb $27,-63+272($sp) +lda $27,29 +stb $27,-184+272($sp) +lda $27,30 +stb $27,-64+272($sp) +lda $27,31 +stb $27,-185+272($sp) +lda $27,32 +stb $27,-65+272($sp) +lda $27,33 +stb $27,-186+272($sp) +lda $27,34 +stb $27,-66+272($sp) +lda $27,35 +stb $27,-187+272($sp) +lda $27,36 +stb $27,-188+272($sp) +lda $27,37 +stb $27,-189+272($sp) +lda $27,38 +stb $27,-191+272($sp) +lda $27,-169+272($sp) +lda $25,-190+272($sp) +subq $27,$25,$25 +stl $25,-156+272($sp) +lda $25,-170+272($sp) +subq $25,$27,$27 +stl $27,-152+272($sp) +lda $27,-171+272($sp) +lda $25,-170+272($sp) +subq $27,$25,$27 +stl $27,-148+272($sp) +lda $27,-172+272($sp) +lda $25,-171+272($sp) +subq $27,$25,$27 +stl $27,-144+272($sp) +lda $27,-173+272($sp) +lda $25,-172+272($sp) +subq $27,$25,$27 +stl $27,-140+272($sp) +lda $27,-174+272($sp) +lda $25,-173+272($sp) +subq $27,$25,$27 +stl $27,-136+272($sp) +lda $27,-175+272($sp) +lda $25,-174+272($sp) +subq $27,$25,$27 +stl $27,-132+272($sp) +lda $27,-176+272($sp) +lda $25,-175+272($sp) +subq $27,$25,$27 +stl $27,-128+272($sp) +lda $27,-177+272($sp) +lda $25,-176+272($sp) +subq $27,$25,$27 +stl $27,-124+272($sp) +lda $27,-178+272($sp) +lda $25,-177+272($sp) +subq $27,$25,$27 +stl $27,-120+272($sp) +lda $27,-179+272($sp) +lda $25,-178+272($sp) +subq $27,$25,$27 +stl $27,-116+272($sp) +lda $27,-180+272($sp) +lda $25,-179+272($sp) +subq $27,$25,$27 +stl $27,-112+272($sp) +lda $27,-181+272($sp) +lda $25,-180+272($sp) +subq $27,$25,$27 +stl $27,-108+272($sp) +lda $27,-182+272($sp) +lda $25,-181+272($sp) +subq $27,$25,$27 +stl $27,-104+272($sp) +lda $27,-183+272($sp) +lda $25,-182+272($sp) +subq $27,$25,$27 +stl $27,-100+272($sp) +lda $27,-184+272($sp) +lda $25,-183+272($sp) +subq $27,$25,$27 +stl $27,-96+272($sp) +lda $27,-185+272($sp) +lda $25,-184+272($sp) +subq $27,$25,$27 +stl $27,-92+272($sp) +lda $27,-186+272($sp) +lda $25,-185+272($sp) +subq $27,$25,$27 +stl $27,-88+272($sp) +lda $27,-187+272($sp) +lda $25,-186+272($sp) +subq $27,$25,$27 +stl $27,-84+272($sp) +lda $27,-188+272($sp) +lda $25,-187+272($sp) +subq $27,$25,$27 +stl $27,-80+272($sp) +lda $27,-189+272($sp) +lda $25,-188+272($sp) +subq $27,$25,$27 +stl $27,-76+272($sp) +lda $27,-191+272($sp) +lda $25,-189+272($sp) +subq $27,$25,$27 +stl $27,-72+272($sp) +ldl $27,-156+272($sp) +stl $27,-168+272($sp) +lda $27,1 +stl $27,-164+272($sp) +stl $31,-160+272($sp) +L.3047: +ldl $27,-164+272($sp) +cmpeq $27,1,$23 +bne $23,L.3053 +cmpeq $27,2,$23 +bne $23,L.3056 +cmpeq $27,3,$23 +bne $23,L.3061 +br L.3051 +L.3053: +ldl $27,-160+272($sp) +sll $27,2,$27 +lda $25,-156+272($sp) +addq $27,$25,$27 +ldl $27,($27) +ldl $25,-168+272($sp) +cmpeq $27,$25,$23 +bne $23,L.3052 +lda $27,2 +ldl $25,-160+272($sp) +sll $25,2,$25 +lda $22,-156+272($sp) +addq $25,$22,$25 +ldl $25,($25) +stl $25,-200+272($sp) +stl $27,-164+272($sp) +lda $27,1 +stl $27,-196+272($sp) +br L.3052 +L.3056: +ldl $27,-160+272($sp) +sll $27,2,$27 +lda $25,-156+272($sp) +addq $27,$25,$27 +ldl $27,($27) +ldl $25,-168+272($sp) +cmpeq $27,$25,$23 +beq $23,L.3057 +lda $27,3 +stl $27,-164+272($sp) +br L.3052 +L.3057: +ldl $27,-160+272($sp) +sll $27,2,$27 +lda $25,-156+272($sp) +addq $27,$25,$27 +ldl $27,($27) +ldl $25,-200+272($sp) +cmpeq $27,$25,$23 +beq $23,L.3059 +ldl $27,-196+272($sp) +lda $27,1($27) +stl $27,-196+272($sp) +br L.3052 +L.3059: +lda $27,4 +stl $27,-164+272($sp) +br L.3052 +L.3061: +ldl $27,-160+272($sp) +sll $27,2,$27 +lda $25,-156+272($sp) +addq $27,$25,$27 +ldl $27,($27) +ldl $25,-168+272($sp) +cmpeq $27,$25,$23 +bne $23,L.3052 +lda $27,4 +stl $27,-164+272($sp) +L.3051: +L.3052: +L.3048: +ldl $27,-160+272($sp) +lda $27,1($27) +stl $27,-160+272($sp) +ldl $27,-160+272($sp) +cmplt $27,22,$23 +bne $23,L.3047 +ldl $27,-164+272($sp) +cmpeq $27,3,$23 +beq $23,L.3064 +lda $27,16 +ldl $25,-196+272($sp) +subl $27,$25,$0 +br L.3025 +L.3064: +lda $0,-1 +L.3025: +ldq $9,0($sp) +ldq $10,8($sp) +ldq $11,16($sp) +ldq $12,24($sp) +ldq $13,32($sp) +ldq $14,40($sp) +ldq $24,48($sp) +ldq $26,56($sp) +lda $sp,272($sp) +ret +.end regc +.globl regi +.text +.ent regi +regi: +ldgp $gp,0($27) +lda $sp,-368($sp) +.mask 0x5007e00,-312 +.frame $sp,368,$26,48 +stq $9,0($sp) +stq $10,8($sp) +stq $11,16($sp) +stq $12,24($sp) +stq $13,32($sp) +stq $14,40($sp) +stq $24,48($sp) +stq $26,56($sp) +.prologue 1 +stl $31,-284+368($sp) +lda $27,1 +stl $27,-200+368($sp) +lda $27,2 +stl $27,-204+368($sp) +lda $27,3 +stl $27,-208+368($sp) +lda $14,4 +lda $27,5 +stl $27,-212+368($sp) +lda $13,6 +lda $27,7 +stl $27,-216+368($sp) +lda $12,8 +lda $27,9 +stl $27,-220+368($sp) +lda $11,10 +lda $27,11 +stl $27,-224+368($sp) +lda $10,12 +lda $27,13 +stl $27,-228+368($sp) +lda $9,14 +lda $27,15 +stl $27,-232+368($sp) +lda $27,16 +stl $27,-60+368($sp) +lda $27,17 +stl $27,-236+368($sp) +lda $27,18 +stl $27,-64+368($sp) +lda $27,19 +stl $27,-240+368($sp) +lda $27,20 +stl $27,-68+368($sp) +lda $27,21 +stl $27,-244+368($sp) +lda $27,22 +stl $27,-72+368($sp) +lda $27,23 +stl $27,-248+368($sp) +lda $27,24 +stl $27,-76+368($sp) +lda $27,25 +stl $27,-252+368($sp) +lda $27,26 +stl $27,-80+368($sp) +lda $27,27 +stl $27,-256+368($sp) +lda $27,28 +stl $27,-84+368($sp) +lda $27,29 +stl $27,-260+368($sp) +lda $27,30 +stl $27,-88+368($sp) +lda $27,31 +stl $27,-264+368($sp) +lda $27,32 +stl $27,-92+368($sp) +lda $27,33 +stl $27,-268+368($sp) +lda $27,34 +stl $27,-96+368($sp) +lda $27,35 +stl $27,-272+368($sp) +lda $27,36 +stl $27,-276+368($sp) +lda $27,37 +stl $27,-280+368($sp) +lda $27,38 +stl $27,-288+368($sp) +lda $27,-200+368($sp) +stq $27,-304+368($sp) +lda $25,-284+368($sp) +subq $27,$25,$25 +divq $25,4,$25 +mov $25,$27 +stl $27,-184+368($sp) +lda $27,-204+368($sp) +ldq $25,-304+368($sp) +subq $27,$25,$27 +divq $27,4,$27 +stl $27,-180+368($sp) +lda $27,-208+368($sp) +lda $25,-204+368($sp) +subq $27,$25,$27 +divq $27,4,$27 +stl $27,-176+368($sp) +lda $27,-212+368($sp) +lda $25,-208+368($sp) +subq $27,$25,$27 +divq $27,4,$27 +stl $27,-172+368($sp) +lda $27,-216+368($sp) +lda $25,-212+368($sp) +subq $27,$25,$27 +divq $27,4,$27 +stl $27,-168+368($sp) +lda $27,-220+368($sp) +lda $25,-216+368($sp) +subq $27,$25,$27 +divq $27,4,$27 +stl $27,-164+368($sp) +lda $27,-224+368($sp) +lda $25,-220+368($sp) +subq $27,$25,$27 +divq $27,4,$27 +stl $27,-160+368($sp) +lda $27,-228+368($sp) +lda $25,-224+368($sp) +subq $27,$25,$27 +divq $27,4,$27 +stl $27,-156+368($sp) +lda $27,-232+368($sp) +lda $25,-228+368($sp) +subq $27,$25,$27 +divq $27,4,$27 +stl $27,-152+368($sp) +lda $27,-236+368($sp) +lda $25,-232+368($sp) +subq $27,$25,$27 +divq $27,4,$27 +stl $27,-148+368($sp) +lda $27,-240+368($sp) +lda $25,-236+368($sp) +subq $27,$25,$27 +divq $27,4,$27 +stl $27,-144+368($sp) +lda $27,-244+368($sp) +lda $25,-240+368($sp) +subq $27,$25,$27 +divq $27,4,$27 +stl $27,-140+368($sp) +lda $27,-248+368($sp) +lda $25,-244+368($sp) +subq $27,$25,$27 +divq $27,4,$27 +stl $27,-136+368($sp) +lda $27,-252+368($sp) +lda $25,-248+368($sp) +subq $27,$25,$27 +divq $27,4,$27 +stl $27,-132+368($sp) +lda $27,-256+368($sp) +lda $25,-252+368($sp) +subq $27,$25,$27 +divq $27,4,$27 +stl $27,-128+368($sp) +lda $27,-260+368($sp) +lda $25,-256+368($sp) +subq $27,$25,$27 +divq $27,4,$27 +stl $27,-124+368($sp) +lda $27,-264+368($sp) +lda $25,-260+368($sp) +subq $27,$25,$27 +divq $27,4,$27 +stl $27,-120+368($sp) +lda $27,-268+368($sp) +lda $25,-264+368($sp) +subq $27,$25,$27 +divq $27,4,$27 +stl $27,-116+368($sp) +lda $27,-272+368($sp) +lda $25,-268+368($sp) +subq $27,$25,$27 +divq $27,4,$27 +stl $27,-112+368($sp) +lda $27,-276+368($sp) +lda $25,-272+368($sp) +subq $27,$25,$27 +divq $27,4,$27 +stl $27,-108+368($sp) +lda $27,-280+368($sp) +lda $25,-276+368($sp) +subq $27,$25,$27 +divq $27,4,$27 +stl $27,-104+368($sp) +lda $27,-288+368($sp) +lda $25,-280+368($sp) +subq $27,$25,$27 +divq $27,4,$27 +stl $27,-100+368($sp) +ldl $27,-184+368($sp) +stl $27,-196+368($sp) +lda $27,1 +stl $27,-192+368($sp) +stl $31,-188+368($sp) +L.3088: +ldl $27,-192+368($sp) +cmpeq $27,1,$23 +bne $23,L.3094 +cmpeq $27,2,$23 +bne $23,L.3097 +cmpeq $27,3,$23 +bne $23,L.3102 +br L.3092 +L.3094: +ldl $27,-188+368($sp) +sll $27,2,$27 +lda $25,-184+368($sp) +addq $27,$25,$27 +ldl $27,($27) +ldl $25,-196+368($sp) +cmpeq $27,$25,$23 +bne $23,L.3093 +lda $27,2 +ldl $25,-188+368($sp) +sll $25,2,$25 +lda $22,-184+368($sp) +addq $25,$22,$25 +ldl $25,($25) +stl $25,-296+368($sp) +stl $27,-192+368($sp) +lda $27,1 +stl $27,-292+368($sp) +br L.3093 +L.3097: +ldl $27,-188+368($sp) +sll $27,2,$27 +lda $25,-184+368($sp) +addq $27,$25,$27 +ldl $27,($27) +ldl $25,-196+368($sp) +cmpeq $27,$25,$23 +beq $23,L.3098 +lda $27,3 +stl $27,-192+368($sp) +br L.3093 +L.3098: +ldl $27,-188+368($sp) +sll $27,2,$27 +lda $25,-184+368($sp) +addq $27,$25,$27 +ldl $27,($27) +ldl $25,-296+368($sp) +cmpeq $27,$25,$23 +beq $23,L.3100 +ldl $27,-292+368($sp) +lda $27,1($27) +stl $27,-292+368($sp) +br L.3093 +L.3100: +lda $27,4 +stl $27,-192+368($sp) +br L.3093 +L.3102: +ldl $27,-188+368($sp) +sll $27,2,$27 +lda $25,-184+368($sp) +addq $27,$25,$27 +ldl $27,($27) +ldl $25,-196+368($sp) +cmpeq $27,$25,$23 +bne $23,L.3093 +lda $27,4 +stl $27,-192+368($sp) +L.3092: +L.3093: +L.3089: +ldl $27,-188+368($sp) +lda $27,1($27) +stl $27,-188+368($sp) +ldl $27,-188+368($sp) +cmplt $27,22,$23 +bne $23,L.3088 +ldl $27,-192+368($sp) +cmpeq $27,3,$23 +beq $23,L.3105 +lda $27,16 +ldl $25,-292+368($sp) +subl $27,$25,$0 +br L.3066 +L.3105: +lda $0,-1 +L.3066: +ldq $9,0($sp) +ldq $10,8($sp) +ldq $11,16($sp) +ldq $12,24($sp) +ldq $13,32($sp) +ldq $14,40($sp) +ldq $24,48($sp) +ldq $26,56($sp) +lda $sp,368($sp) +ret +.end regi +.globl regp +.text +.ent regp +regp: +ldgp $gp,0($27) +lda $sp,-512($sp) +.mask 0x5007e00,-456 +.frame $sp,512,$26,48 +stq $9,0($sp) +stq $10,8($sp) +stq $11,16($sp) +stq $12,24($sp) +stq $13,32($sp) +stq $14,40($sp) +stq $24,48($sp) +stq $26,56($sp) +.prologue 1 +lda $27,-416+512($sp) +stq $27,-416+512($sp) +lda $27,-368+512($sp) +stq $27,-368+512($sp) +lda $27,-376+512($sp) +stq $27,-376+512($sp) +lda $27,-384+512($sp) +stq $27,-384+512($sp) +lda $14,-240+512($sp) +lda $27,-240+512($sp) +stq $27,-240+512($sp) +lda $13,-248+512($sp) +lda $27,-248+512($sp) +stq $27,-248+512($sp) +lda $12,-256+512($sp) +lda $27,-256+512($sp) +stq $27,-256+512($sp) +lda $11,-264+512($sp) +lda $27,-264+512($sp) +stq $27,-264+512($sp) +lda $10,-272+512($sp) +lda $27,-272+512($sp) +stq $27,-272+512($sp) +lda $9,-280+512($sp) +lda $27,-280+512($sp) +stq $27,-280+512($sp) +lda $27,-288+512($sp) +stq $27,-64+512($sp) +lda $27,-288+512($sp) +stq $27,-288+512($sp) +lda $27,-296+512($sp) +stq $27,-72+512($sp) +lda $27,-296+512($sp) +stq $27,-296+512($sp) +lda $27,-304+512($sp) +stq $27,-80+512($sp) +lda $27,-304+512($sp) +stq $27,-304+512($sp) +lda $27,-312+512($sp) +stq $27,-88+512($sp) +lda $27,-312+512($sp) +stq $27,-312+512($sp) +lda $27,-320+512($sp) +stq $27,-96+512($sp) +lda $27,-320+512($sp) +stq $27,-320+512($sp) +lda $27,-328+512($sp) +stq $27,-104+512($sp) +lda $27,-328+512($sp) +stq $27,-328+512($sp) +lda $27,-336+512($sp) +stq $27,-112+512($sp) +lda $27,-336+512($sp) +stq $27,-336+512($sp) +lda $27,-344+512($sp) +stq $27,-120+512($sp) +lda $27,-344+512($sp) +stq $27,-344+512($sp) +lda $27,-352+512($sp) +stq $27,-128+512($sp) +lda $27,-352+512($sp) +stq $27,-352+512($sp) +lda $27,-360+512($sp) +stq $27,-136+512($sp) +lda $27,-360+512($sp) +stq $27,-360+512($sp) +lda $27,-392+512($sp) +stq $27,-392+512($sp) +lda $27,-400+512($sp) +stq $27,-400+512($sp) +lda $27,-424+512($sp) +stq $27,-424+512($sp) +lda $27,-368+512($sp) +stq $27,-440+512($sp) +lda $25,-416+512($sp) +subq $27,$25,$25 +divq $25,8,$25 +mov $25,$27 +stl $27,-224+512($sp) +lda $27,-376+512($sp) +ldq $25,-440+512($sp) +subq $27,$25,$27 +divq $27,8,$27 +stl $27,-220+512($sp) +lda $27,-384+512($sp) +lda $25,-376+512($sp) +subq $27,$25,$27 +divq $27,8,$27 +stl $27,-216+512($sp) +lda $27,-240+512($sp) +lda $25,-384+512($sp) +subq $27,$25,$27 +divq $27,8,$27 +stl $27,-212+512($sp) +lda $27,-248+512($sp) +lda $25,-240+512($sp) +subq $27,$25,$27 +divq $27,8,$27 +stl $27,-208+512($sp) +lda $27,-256+512($sp) +lda $25,-248+512($sp) +subq $27,$25,$27 +divq $27,8,$27 +stl $27,-204+512($sp) +lda $27,-264+512($sp) +lda $25,-256+512($sp) +subq $27,$25,$27 +divq $27,8,$27 +stl $27,-200+512($sp) +lda $27,-272+512($sp) +lda $25,-264+512($sp) +subq $27,$25,$27 +divq $27,8,$27 +stl $27,-196+512($sp) +lda $27,-280+512($sp) +lda $25,-272+512($sp) +subq $27,$25,$27 +divq $27,8,$27 +stl $27,-192+512($sp) +lda $27,-288+512($sp) +lda $25,-280+512($sp) +subq $27,$25,$27 +divq $27,8,$27 +stl $27,-188+512($sp) +lda $27,-296+512($sp) +lda $25,-288+512($sp) +subq $27,$25,$27 +divq $27,8,$27 +stl $27,-184+512($sp) +lda $27,-304+512($sp) +lda $25,-296+512($sp) +subq $27,$25,$27 +divq $27,8,$27 +stl $27,-180+512($sp) +lda $27,-312+512($sp) +lda $25,-304+512($sp) +subq $27,$25,$27 +divq $27,8,$27 +stl $27,-176+512($sp) +lda $27,-320+512($sp) +lda $25,-312+512($sp) +subq $27,$25,$27 +divq $27,8,$27 +stl $27,-172+512($sp) +lda $27,-328+512($sp) +lda $25,-320+512($sp) +subq $27,$25,$27 +divq $27,8,$27 +stl $27,-168+512($sp) +lda $27,-336+512($sp) +lda $25,-328+512($sp) +subq $27,$25,$27 +divq $27,8,$27 +stl $27,-164+512($sp) +lda $27,-344+512($sp) +lda $25,-336+512($sp) +subq $27,$25,$27 +divq $27,8,$27 +stl $27,-160+512($sp) +lda $27,-352+512($sp) +lda $25,-344+512($sp) +subq $27,$25,$27 +divq $27,8,$27 +stl $27,-156+512($sp) +lda $27,-360+512($sp) +lda $25,-352+512($sp) +subq $27,$25,$27 +divq $27,8,$27 +stl $27,-152+512($sp) +lda $27,-392+512($sp) +lda $25,-360+512($sp) +subq $27,$25,$27 +divq $27,8,$27 +stl $27,-148+512($sp) +lda $27,-400+512($sp) +lda $25,-392+512($sp) +subq $27,$25,$27 +divq $27,8,$27 +stl $27,-144+512($sp) +lda $27,-424+512($sp) +lda $25,-400+512($sp) +subq $27,$25,$27 +divq $27,8,$27 +stl $27,-140+512($sp) +ldl $27,-224+512($sp) +stl $27,-404+512($sp) +lda $27,1 +stl $27,-232+512($sp) +stl $31,-228+512($sp) +L.3129: +ldl $27,-232+512($sp) +cmpeq $27,1,$23 +bne $23,L.3135 +cmpeq $27,2,$23 +bne $23,L.3138 +cmpeq $27,3,$23 +bne $23,L.3143 +br L.3133 +L.3135: +ldl $27,-228+512($sp) +sll $27,2,$27 +lda $25,-224+512($sp) +addq $27,$25,$27 +ldl $27,($27) +ldl $25,-404+512($sp) +cmpeq $27,$25,$23 +bne $23,L.3134 +lda $27,2 +ldl $25,-228+512($sp) +sll $25,2,$25 +lda $22,-224+512($sp) +addq $25,$22,$25 +ldl $25,($25) +stl $25,-432+512($sp) +stl $27,-232+512($sp) +lda $27,1 +stl $27,-428+512($sp) +br L.3134 +L.3138: +ldl $27,-228+512($sp) +sll $27,2,$27 +lda $25,-224+512($sp) +addq $27,$25,$27 +ldl $27,($27) +ldl $25,-404+512($sp) +cmpeq $27,$25,$23 +beq $23,L.3139 +lda $27,3 +stl $27,-232+512($sp) +br L.3134 +L.3139: +ldl $27,-228+512($sp) +sll $27,2,$27 +lda $25,-224+512($sp) +addq $27,$25,$27 +ldl $27,($27) +ldl $25,-432+512($sp) +cmpeq $27,$25,$23 +beq $23,L.3141 +ldl $27,-428+512($sp) +lda $27,1($27) +stl $27,-428+512($sp) +br L.3134 +L.3141: +lda $27,4 +stl $27,-232+512($sp) +br L.3134 +L.3143: +ldl $27,-228+512($sp) +sll $27,2,$27 +lda $25,-224+512($sp) +addq $27,$25,$27 +ldl $27,($27) +ldl $25,-404+512($sp) +cmpeq $27,$25,$23 +bne $23,L.3134 +lda $27,4 +stl $27,-232+512($sp) +L.3133: +L.3134: +L.3130: +ldl $27,-228+512($sp) +lda $27,1($27) +stl $27,-228+512($sp) +ldl $27,-228+512($sp) +cmplt $27,22,$23 +bne $23,L.3129 +ldl $27,-232+512($sp) +cmpeq $27,3,$23 +beq $23,L.3146 +lda $27,16 +ldl $25,-428+512($sp) +subl $27,$25,$0 +br L.3107 +L.3146: +lda $0,-1 +L.3107: +ldq $9,0($sp) +ldq $10,8($sp) +ldq $11,16($sp) +ldq $12,24($sp) +ldq $13,32($sp) +ldq $14,40($sp) +ldq $24,48($sp) +ldq $26,56($sp) +lda $sp,512($sp) +ret +.end regp +.lcomm L.3149,420 +.sdata +.align 0 +L.3150: +.byte 115 +.byte 56 +.byte 52 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.3151: +.byte 115 +.byte 56 +.byte 52 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s84 +.text +.text +.ent s84 +s84: +ldgp $gp,0($27) +lda $sp,-368($sp) +.fmask 0x200,-368 +.mask 0x5007e00,-304 +.frame $sp,368,$26,48 +stt $f9,0($sp) +stq $9,8($sp) +stq $10,16($sp) +stq $11,24($sp) +stq $12,32($sp) +stq $13,40($sp) +stq $14,48($sp) +stq $24,56($sp) +stq $26,64($sp) +mov $16,$14 +.prologue 1 +lda $10,L.3151 +lda $9,60($14) +stl $31,-268+368($sp) +L.3152: +L.3153: +mov $9,$27 +lda $9,1($27) +mov $10,$25 +lda $10,1($25) +ldb $25,($25) +stb $25,($27) +sll $25,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,$31,$23 +beq $23,L.3152 +lda $16,3 +jsr $26,fip +ldgp $gp,0($26) +stq $0,-280+368($sp) +ldq $27,-280+368($sp) +ldl $27,($27) +cmpeq $27,3,$23 +bne $23,L.3155 +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.3157 +lda $16,L.3150 +lda $17,1 +jsr $26,printf +ldgp $gp,0($26) +L.3157: +ldl $27,-268+368($sp) +lda $27,1($27) +stl $27,-268+368($sp) +L.3155: +lda $27,glork +stq $27,-288+368($sp) +lda $16,4 +ldq $27,-288+368($sp) +jsr $26,($27) +ldgp $gp,0($26) +cmpeq $0,4,$23 +bne $23,L.3159 +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.3161 +lda $16,L.3150 +lda $17,2 +jsr $26,printf +ldgp $gp,0($26) +L.3161: +ldl $27,-268+368($sp) +lda $27,2($27) +stl $27,-268+368($sp) +L.3159: +mov $31,$12 +L.3163: +sll $12,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,2,$27 +lda $25,-124+368($sp) +addq $27,$25,$27 +stq $12,-56+368($sp) +ldt $f30,-56+368($sp) +cvtqs $f30,$f30 +sts $f30,($27) +sll $12,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,3,$25 +lda $22,-264+368($sp) +addq $25,$22,$25 +sll $27,2,$27 +lda $22,-124+368($sp) +addq $27,$22,$27 +stq $27,($25) +L.3164: +lda $12,1($12) +cmplt $12,17,$23 +bne $23,L.3163 +lds $f9,L.410 +mov $31,$12 +L.3167: +sll $12,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,3,$27 +lda $25,-264+368($sp) +addq $27,$25,$27 +ldq $27,($27) +lds $f30,($27) +adds $f9,$f30,$f9 +L.3168: +lda $12,1($12) +cmplt $12,17,$23 +bne $23,L.3167 +lds $f30,L.3173 +cmpteq $f9,$f30,$f1 +fbne $f1,L.3171 +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.3174 +lda $16,L.3150 +lda $17,4 +jsr $26,printf +ldgp $gp,0($26) +L.3174: +ldl $27,-268+368($sp) +lda $27,4($27) +stl $27,-268+368($sp) +L.3171: +mov $31,$11 +L.3176: +mov $31,$12 +L.3180: +mov $31,$13 +L.3184: +sll $13,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,2,$27 +lda $25,28 +sll $12,8*(8-4),$22 +sra $22,8*(8-4),$22 +mulq $25,$22,$25 +lda $22,140 +sll $11,8*(8-4),$8 +sra $8,8*(8-4),$8 +mulq $22,$8,$22 +lda $22,L.3149($22) +addq $25,$22,$25 +addq $27,$25,$27 +lda $25,35 +mull $25,$11,$25 +lda $22,7 +mull $22,$12,$22 +addl $25,$22,$25 +addl $25,$13,$25 +stl $25,($27) +L.3185: +lda $13,1($13) +cmplt $13,7,$23 +bne $23,L.3184 +L.3181: +lda $12,1($12) +cmplt $12,5,$23 +bne $23,L.3180 +L.3177: +lda $11,1($11) +cmplt $11,3,$23 +bne $23,L.3176 +lda $11,1 +lda $12,2 +lda $13,3 +lda $16,L.3149 +lda $17,105 +mov $31,$18 +jsr $26,array +ldgp $gp,0($26) +mov $0,$27 +stl $27,-292+368($sp) +lda $25,140 +sll $11,8*(8-4),$22 +sra $22,8*(8-4),$22 +mulq $25,$22,$25 +lda $16,L.3149($25) +lda $25,35 +mov $25,$17 +mov $25,$18 +jsr $26,array +ldgp $gp,0($26) +mov $0,$27 +stl $27,-296+368($sp) +lda $25,28 +sll $12,8*(8-4),$22 +sra $22,8*(8-4),$22 +mulq $25,$22,$25 +lda $22,140 +sll $11,8*(8-4),$8 +sra $8,8*(8-4),$8 +mulq $22,$8,$22 +lda $22,L.3149($22) +addq $25,$22,$16 +lda $17,7 +lda $18,49 +jsr $26,array +ldgp $gp,0($26) +ldl $25,-292+368($sp) +ldl $22,-296+368($sp) +addl $25,$22,$25 +addl $25,$0,$27 +sll $13,8*(8-4),$25 +sra $25,8*(8-4),$25 +sll $25,2,$25 +lda $22,28 +sll $12,8*(8-4),$8 +sra $8,8*(8-4),$8 +mulq $22,$8,$22 +lda $8,140 +sll $11,8*(8-4),$7 +sra $7,8*(8-4),$7 +mulq $8,$7,$8 +lda $8,L.3149($8) +addq $22,$8,$22 +addq $25,$22,$25 +ldl $25,($25) +addl $27,$25,$27 +subl $27,52,$27 +cmpeq $27,$31,$23 +bne $23,L.3188 +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.3190 +lda $16,L.3150 +lda $17,8 +jsr $26,printf +ldgp $gp,0($26) +L.3190: +ldl $27,-268+368($sp) +lda $27,8($27) +stl $27,-268+368($sp) +L.3188: +ldl $0,-268+368($sp) +L.3148: +ldt $f9,0($sp) +ldq $9,8($sp) +ldq $10,16($sp) +ldq $11,24($sp) +ldq $12,32($sp) +ldq $13,40($sp) +ldq $14,48($sp) +ldq $24,56($sp) +ldq $26,64($sp) +lda $sp,368($sp) +ret +.end s84 +.globl array +.text +.ent array +array: +ldgp $gp,0($27) +lda $sp,-80($sp) +.mask 0x4004000,-72 +.frame $sp,80,$26,48 +stq $14,0($sp) +stq $26,8($sp) +.prologue 1 +mov $31,$14 +br L.3196 +L.3193: +sll $14,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,2,$27 +addq $27,$16,$27 +ldl $27,($27) +addl $14,$18,$25 +cmpeq $27,$25,$23 +bne $23,L.3197 +lda $0,1 +br L.3192 +L.3197: +L.3194: +lda $14,1($14) +L.3196: +cmplt $14,$17,$23 +bne $23,L.3193 +mov $31,$0 +L.3192: +ldq $14,0($sp) +ldq $26,8($sp) +lda $sp,80($sp) +ret +.end array +.lcomm L.3200,4 +.globl fip +.text +.text +.ent fip +fip: +ldgp $gp,0($27) +lda $sp,-64($sp) +.frame $sp,64,$26,48 +.prologue 1 +lda $27,L.3200 +stl $16,L.3200 +mov $27,$0 +L.3199: +lda $sp,64($sp) +ret +.end fip +.globl glork +.text +.ent glork +glork: +ldgp $gp,0($27) +lda $sp,-64($sp) +.frame $sp,64,$26,48 +.prologue 1 +mov $16,$0 +L.3201: +lda $sp,64($sp) +ret +.end glork +.sdata +.align 0 +L.3203: +.byte 115 +.byte 56 +.byte 53 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.3204: +.byte 115 +.byte 56 +.byte 53 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.align 3 +L.3212: +.quad L.423 +.quad L.425 +.quad L.424 +.quad L.426 +.quad L.427 +.quad L.428 +.quad L.429 +.align 0 +L.3213: +.byte 32 +.byte 97 +.byte 108 +.byte 105 +.byte 103 +.byte 110 +.byte 109 +.byte 101 +.byte 110 +.byte 116 +.byte 58 +.byte 32 +.byte 0 +.globl s85 +.text +.text +.ent s85 +s85: +ldgp $gp,0($27) +lda $sp,-528($sp) +.mask 0x5007c00,-480 +.frame $sp,528,$26,48 +stq $10,0($sp) +stq $11,8($sp) +stq $12,16($sp) +stq $13,24($sp) +stq $14,32($sp) +stq $24,40($sp) +stq $26,48($sp) +mov $16,$14 +.prologue 1 +lda $12,L.3204 +lda $11,60($14) +mov $31,$10 +L.3217: +L.3218: +mov $11,$27 +lda $11,1($27) +mov $12,$25 +lda $12,1($25) +ldb $25,($25) +stb $25,($27) +sll $25,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,$31,$23 +beq $23,L.3217 +lda $25,-348+528($sp) +lda $22,-368+528($sp) +subq $25,$22,$25 +cmple $25,$31,$23 +bne $23,L.3228 +lda $25,-344+528($sp) +lda $22,-348+528($sp) +subq $25,$22,$25 +cmple $25,$31,$23 +bne $23,L.3228 +lda $25,-336+528($sp) +lda $22,-344+528($sp) +subq $25,$22,$25 +cmple $25,$31,$23 +beq $23,L.3220 +L.3228: +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.3229 +lda $16,L.3203 +lda $17,1 +jsr $26,printf +ldgp $gp,0($26) +L.3229: +lda $10,1($10) +L.3220: +lda $27,-409+528($sp) +lda $25,-410+528($sp) +subq $27,$25,$27 +stl $27,-324+528($sp) +lda $27,-412+528($sp) +lda $25,-414+528($sp) +subq $27,$25,$27 +stl $27,-320+528($sp) +lda $27,-420+528($sp) +lda $25,-424+528($sp) +subq $27,$25,$27 +stl $27,-316+528($sp) +lda $27,-432+528($sp) +lda $25,-440+528($sp) +subq $27,$25,$27 +stl $27,-312+528($sp) +lda $27,-444+528($sp) +lda $25,-448+528($sp) +subq $27,$25,$27 +stl $27,-308+528($sp) +lda $27,-452+528($sp) +lda $25,-456+528($sp) +subq $27,$25,$27 +stl $27,-304+528($sp) +lda $27,-464+528($sp) +lda $25,-472+528($sp) +subq $27,$25,$27 +stl $27,-300+528($sp) +ldl $27,40($14) +cmpeq $27,$31,$23 +bne $23,L.3244 +mov $31,$13 +L.3246: +lda $16,L.3250 +sll $13,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,3,$25 +ldq $17,L.3212($25) +lda $18,L.3213 +sll $27,2,$27 +lda $25,-324+528($sp) +addq $27,$25,$27 +ldl $19,($27) +jsr $26,printf +ldgp $gp,0($26) +L.3247: +lda $13,1($13) +cmplt $13,7,$23 +bne $23,L.3246 +L.3244: +ldl $27,-328+528($sp) +or $27,56,$27 +stl $27,-328+528($sp) +ldl $27,-328+528($sp) +mov $27,$25 +and $25,0xfffffffc,$25 +sll $27,26,$27 +addl $27,0,$27 +sra $27,29,$27 +addl $27,0,$27 +sll $27,30,$27 +addl $27,0,$27 +sra $27,30,$27 +addl $27,0,$27 +and $27,3,$27 +or $25,$27,$27 +stl $27,-328+528($sp) +ldl $27,-328+528($sp) +mov $27,$25 +and $25,0xffffffc7,$25 +sll $27,30,$27 +addl $27,0,$27 +sra $27,30,$27 +addl $27,0,$27 +sll $27,29,$27 +addl $27,0,$27 +sra $27,29,$27 +addl $27,0,$27 +sll $27,3,$27 +zap $27,240,$27 +and $27,56,$27 +or $25,$27,$27 +stl $27,-328+528($sp) +ldl $27,-328+528($sp) +sll $27,26,$27 +addl $27,0,$27 +sra $27,29,$27 +addl $27,0,$27 +cmpeq $27,3,$23 +bne $23,L.3251 +ldl $27,-328+528($sp) +sll $27,26,$27 +addl $27,0,$27 +sra $27,29,$27 +addl $27,0,$27 +lda $25,-1 +cmpeq $27,$25,$23 +beq $23,L.3253 +ldl $27,40($14) +cmpeq $27,$31,$23 +bne $23,L.3254 +lda $16,L.3257 +jsr $26,printf +ldgp $gp,0($26) +br L.3254 +L.3253: +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.3258 +lda $16,L.3203 +lda $17,2 +jsr $26,printf +ldgp $gp,0($26) +L.3258: +lda $10,2($10) +L.3254: +L.3251: +ldl $27,-328+528($sp) +or $27,64,$27 +stl $27,-328+528($sp) +ldl $27,-328+528($sp) +sll $27,25,$27 +addl $27,0,$27 +sra $27,31,$27 +addl $27,0,$27 +cmpeq $27,1,$23 +bne $23,L.3260 +ldl $27,40($14) +cmpeq $27,$31,$23 +bne $23,L.3262 +lda $16,L.3264 +jsr $26,printf +ldgp $gp,0($26) +L.3262: +L.3260: +lda $27,-296+528($sp) +subq $27,$27,$27 +cmpeq $27,$31,$23 +beq $23,L.3272 +cmpeq $27,$31,$23 +beq $23,L.3272 +cmpeq $27,$31,$23 +beq $23,L.3272 +cmpeq $27,$31,$23 +beq $23,L.3272 +cmpeq $27,$31,$23 +beq $23,L.3272 +cmpeq $27,$31,$23 +beq $23,L.3272 +cmpeq $27,$31,$23 +bne $23,L.3265 +L.3272: +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.3273 +lda $16,L.3203 +lda $17,4 +jsr $26,printf +ldgp $gp,0($26) +L.3273: +lda $10,4($10) +L.3265: +br L.3275 +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.3277 +lda $16,L.3203 +lda $17,8 +jsr $26,printf +ldgp $gp,0($26) +L.3277: +lda $10,8($10) +L.3275: +lda $27,-408+528($sp) +stq $27,-336+528($sp) +lda $27,2 +stb $27,-408+528($sp) +ldq $27,-336+528($sp) +ldb $25,($27) +lda $25,1($25) +stb $25,($27) +lda $27,-408+528($sp) +ldb $27,($27) +cmpeq $27,3,$23 +bne $23,L.3281 +ldl $27,44($14) +cmpeq $27,$31,$23 +bne $23,L.3283 +lda $16,L.3203 +lda $17,16 +jsr $26,printf +ldgp $gp,0($26) +L.3283: +lda $10,16($10) +L.3281: +mov $10,$0 +L.3202: +ldq $10,0($sp) +ldq $11,8($sp) +ldq $12,16($sp) +ldq $13,24($sp) +ldq $14,32($sp) +ldq $24,40($sp) +ldq $26,48($sp) +lda $sp,528($sp) +ret +.end s85 +.sdata +.align 0 +L.3286: +.byte 115 +.byte 56 +.byte 54 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.3287: +.byte 115 +.byte 56 +.byte 54 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.align 2 +L.3288: +.long 0x1 +.long 0x3 +.long 0x5 +.align 3 +L.3289: +.quad L.3288+8 +.lcomm L.3291,40 +.sdata +.align 2 +L.3292: +.long 0x3f800000 +.long 0x40400000 +.long 0x40a00000 +.long 0x40000000 +.long 0x40800000 +.long 0x40c00000 +.long 0x40400000 +.long 0x40a00000 +.long 0x40e00000 +.long 0x0 +.long 0x0 +.long 0x0 +.align 2 +L.3293: +.long 0x3f800000 +.long 0x40400000 +.long 0x40a00000 +.long 0x40000000 +.long 0x40800000 +.long 0x40c00000 +.long 0x40400000 +.long 0x40a00000 +.long 0x40e00000 +.space 12 +.align 2 +L.3294: +.long 0x3f800000 +.long 0x40400000 +.long 0x40a00000 +.long 0x40000000 +.long 0x40800000 +.long 0x40c00000 +.long 0x40400000 +.long 0x40a00000 +.long 0x40e00000 +.space 12 +.align 2 +L.3295: +.long 0x3f800000 +.space 8 +.long 0x40000000 +.space 8 +.long 0x40400000 +.space 8 +.long 0x40800000 +.space 8 +.globl s86 +.text +.text +.ent s86 +s86: +ldgp $gp,0($27) +lda $sp,-144($sp) +.mask 0x5007e00,-88 +.frame $sp,144,$26,48 +stq $9,0($sp) +stq $10,8($sp) +stq $11,16($sp) +stq $12,24($sp) +stq $13,32($sp) +stq $14,40($sp) +stq $24,48($sp) +stq $26,56($sp) +stq $16,96($sp) +.prologue 1 +ldq $27,L.3289 +lda $27,-4($27) +stq $27,-80+144($sp) +jsr $26,one +ldgp $gp,0($26) +sll $0,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,2,$27 +ldq $25,-80+144($sp) +addq $27,$25,$14 +lda $9,L.3287 +ldq $27,-48+144($sp) +lda $27,60($27) +stq $27,-64+144($sp) +stl $31,-68+144($sp) +L.3296: +L.3297: +ldq $27,-64+144($sp) +lda $25,1($27) +stq $25,-64+144($sp) +mov $9,$25 +lda $9,1($25) +ldb $25,($25) +stb $25,($27) +sll $25,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,$31,$23 +beq $23,L.3296 +ldq $27,L.3289 +ldl $27,($27) +cmpeq $27,5,$23 +bne $23,L.3299 +ldq $27,-48+144($sp) +ldl $27,44($27) +cmpeq $27,$31,$23 +bne $23,L.3301 +lda $16,L.3286 +lda $17,1 +jsr $26,printf +ldgp $gp,0($26) +L.3301: +ldl $27,-68+144($sp) +lda $27,1($27) +stl $27,-68+144($sp) +L.3299: +ldq $27,-80+144($sp) +ldl $27,($27) +cmpeq $27,3,$23 +bne $23,L.3303 +ldq $27,-48+144($sp) +ldl $27,44($27) +cmpeq $27,$31,$23 +bne $23,L.3305 +lda $16,L.3286 +lda $17,2 +jsr $26,printf +ldgp $gp,0($26) +L.3305: +ldl $27,-68+144($sp) +lda $27,2($27) +stl $27,-68+144($sp) +L.3303: +ldl $27,($14) +cmpeq $27,5,$23 +bne $23,L.3307 +ldq $27,-48+144($sp) +ldl $27,44($27) +cmpeq $27,$31,$23 +bne $23,L.3309 +lda $16,L.3286 +lda $17,4 +jsr $26,printf +ldgp $gp,0($26) +L.3309: +ldl $27,-68+144($sp) +lda $27,4($27) +stl $27,-68+144($sp) +L.3307: +mov $31,$10 +mov $31,$13 +L.3311: +sll $13,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,2,$27 +ldl $27,L.3291($27) +cmpeq $27,$31,$23 +bne $23,L.3315 +lda $10,1 +L.3315: +L.3312: +lda $13,1($13) +cmplt $13,10,$23 +bne $23,L.3311 +cmpeq $10,$31,$23 +bne $23,L.3317 +ldq $27,-48+144($sp) +ldl $27,44($27) +cmpeq $27,$31,$23 +bne $23,L.3319 +lda $16,L.3286 +lda $17,8 +jsr $26,printf +ldgp $gp,0($26) +L.3319: +ldl $27,-68+144($sp) +lda $27,8($27) +stl $27,-68+144($sp) +L.3317: +mov $31,$10 +mov $31,$12 +L.3321: +mov $31,$13 +L.3325: +lda $27,3 +mull $27,$12,$27 +addl $27,$13,$11 +sll $13,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,2,$27 +lda $25,12 +sll $12,8*(8-4),$22 +sra $22,8*(8-4),$22 +mulq $25,$22,$25 +lda $22,L.3293($25) +addq $27,$22,$22 +lds $f30,($22) +lda $25,L.3294($25) +addq $27,$25,$27 +lds $f29,($27) +cmpteq $f30,$f29,$f1 +fbeq $f1,L.3331 +sll $11,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,2,$27 +lds $f29,L.3292($27) +cmpteq $f30,$f29,$f1 +fbne $f1,L.3329 +L.3331: +lda $10,1 +L.3329: +L.3326: +lda $13,1($13) +cmplt $13,3,$23 +bne $23,L.3325 +L.3322: +lda $12,1($12) +cmplt $12,4,$23 +bne $23,L.3321 +cmpeq $10,$31,$23 +bne $23,L.3332 +ldq $27,-48+144($sp) +ldl $27,44($27) +cmpeq $27,$31,$23 +bne $23,L.3334 +lda $16,L.3286 +lda $17,16 +jsr $26,printf +ldgp $gp,0($26) +L.3334: +ldl $27,-68+144($sp) +lda $27,16($27) +stl $27,-68+144($sp) +L.3332: +mov $31,$10 +mov $31,$13 +L.3336: +lda $27,12 +sll $13,8*(8-4),$25 +sra $25,8*(8-4),$25 +mulq $27,$25,$27 +lds $f30,L.3295($27) +lda $27,1($13) +stq $27,-56+144($sp) +ldt $f29,-56+144($sp) +cvtqs $f29,$f29 +cmpteq $f30,$f29,$f1 +fbne $f1,L.3340 +lda $10,1 +L.3340: +L.3337: +lda $13,1($13) +cmplt $13,4,$23 +bne $23,L.3336 +cmpeq $10,$31,$23 +bne $23,L.3342 +ldq $27,-48+144($sp) +ldl $27,44($27) +cmpeq $27,$31,$23 +bne $23,L.3344 +lda $16,L.3286 +lda $17,32 +jsr $26,printf +ldgp $gp,0($26) +L.3344: +ldl $27,-68+144($sp) +lda $27,32($27) +stl $27,-68+144($sp) +L.3342: +ldl $0,-68+144($sp) +L.3285: +ldq $9,0($sp) +ldq $10,8($sp) +ldq $11,16($sp) +ldq $12,24($sp) +ldq $13,32($sp) +ldq $14,40($sp) +ldq $24,48($sp) +ldq $26,56($sp) +lda $sp,144($sp) +ret +.end s86 +.globl one +.text +.ent one +one: +ldgp $gp,0($27) +lda $sp,-64($sp) +.frame $sp,64,$26,48 +.prologue 1 +lda $0,1 +L.3346: +lda $sp,64($sp) +ret +.end one +.sdata +.align 0 +L.3348: +.byte 115 +.byte 56 +.byte 56 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.3349: +.byte 115 +.byte 56 +.byte 56 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s88 +.text +.text +.ent s88 +s88: +ldgp $gp,0($27) +lda $sp,-128($sp) +.mask 0x5007800,-88 +.frame $sp,128,$26,48 +stq $11,0($sp) +stq $12,8($sp) +stq $13,16($sp) +stq $14,24($sp) +stq $24,32($sp) +stq $26,40($sp) +stq $16,80($sp) +.prologue 1 +lda $14,L.3349 +ldq $27,-48+128($sp) +lda $13,60($27) +mov $31,$12 +L.3351: +L.3352: +mov $13,$27 +lda $13,1($27) +mov $14,$25 +lda $14,1($25) +ldb $25,($25) +stb $25,($27) +sll $25,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,$31,$23 +beq $23,L.3351 +br L.3354 +ldq $27,-48+128($sp) +ldl $27,44($27) +cmpeq $27,$31,$23 +bne $23,L.3356 +lda $16,L.3348 +lda $17,1 +jsr $26,printf +ldgp $gp,0($26) +L.3356: +lda $12,1($12) +L.3354: +lda $27,-76+128($sp) +stq $27,metricp +lda $27,2 +stl $27,-76+128($sp) +ldq $27,metricp +lda $25,3 +stl $25,($27) +ldl $27,-76+128($sp) +cmpeq $27,3,$23 +bne $23,L.3358 +ldq $27,-48+128($sp) +ldl $27,44($27) +cmpeq $27,$31,$23 +bne $23,L.3360 +lda $16,L.3348 +lda $17,2 +jsr $26,printf +ldgp $gp,0($26) +L.3360: +lda $12,2($12) +L.3358: +ldt $f30,L.417 +stt $f30,-72+128($sp) +stt $f30,-64+128($sp) +lda $11,-72+128($sp) +ldt $f30,L.416 +stt $f30,($11) +ldt $f30,L.416 +stt $f30,8($11) +ldt $f30,-72+128($sp) +ldt $f29,-64+128($sp) +addt $f30,$f29,$f30 +ldt $f29,L.414 +cmpteq $f30,$f29,$f1 +fbne $f1,L.3363 +ldq $27,-48+128($sp) +ldl $27,44($27) +cmpeq $27,$31,$23 +bne $23,L.3366 +lda $16,L.3348 +lda $17,4 +jsr $26,printf +ldgp $gp,0($26) +L.3366: +lda $12,4($12) +L.3363: +mov $12,$0 +L.3347: +ldq $11,0($sp) +ldq $12,8($sp) +ldq $13,16($sp) +ldq $14,24($sp) +ldq $24,32($sp) +ldq $26,40($sp) +lda $sp,128($sp) +ret +.end s88 +.sdata +.align 0 +L.3369: +.byte 115 +.byte 57 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.3370: +.byte 115 +.byte 57 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s9 +.text +.text +.ent s9 +s9: +ldgp $gp,0($27) +lda $sp,-144($sp) +.mask 0x5007e00,-88 +.frame $sp,144,$26,48 +stq $9,0($sp) +stq $10,8($sp) +stq $11,16($sp) +stq $12,24($sp) +stq $13,32($sp) +stq $14,40($sp) +stq $24,48($sp) +stq $26,56($sp) +stq $16,96($sp) +.prologue 1 +lda $12,L.3370 +ldq $27,-48+144($sp) +lda $11,60($27) +mov $31,$10 +L.3371: +L.3372: +mov $11,$27 +lda $11,1($27) +mov $12,$25 +lda $12,1($25) +ldb $25,($25) +stb $25,($27) +sll $25,8*(8-1),$27 +sra $27,8*(8-1),$27 +cmpeq $27,$31,$23 +beq $23,L.3371 +mov $31,$13 +mov $31,$14 +L.3374: +lda $27,2 +mov $27,$9 +stl $27,-60+144($sp) +lda $27,3 +stl $27,-64+144($sp) +stl $27,-68+144($sp) +ldl $27,-68+144($sp) +cmpeq $27,3,$23 +beq $23,L.3380 +ldl $27,-64+144($sp) +cmpeq $27,3,$23 +bne $23,L.3378 +L.3380: +lda $13,1 +L.3378: +ldl $27,-60+144($sp) +cmpeq $27,2,$23 +beq $23,L.3383 +cmpeq $9,2,$23 +bne $23,L.3381 +L.3383: +lda $13,1 +L.3381: +L.3375: +lda $14,1($14) +cmplt $14,2,$23 +bne $23,L.3374 +cmpeq $13,$31,$23 +bne $23,L.3388 +ldq $27,-48+144($sp) +ldl $27,44($27) +cmpeq $27,$31,$23 +bne $23,L.3386 +lda $16,L.3369 +lda $17,1 +jsr $26,printf +ldgp $gp,0($26) +L.3386: +lda $10,1($10) +br L.3388 +ldq $27,-48+144($sp) +ldl $27,44($27) +cmpeq $27,$31,$23 +bne $23,L.3389 +lda $16,L.3369 +lda $17,2 +jsr $26,printf +ldgp $gp,0($26) +L.3389: +lda $10,2($10) +L.3388: +mov $10,$0 +L.3368: +ldq $9,0($sp) +ldq $10,8($sp) +ldq $11,16($sp) +ldq $12,24($sp) +ldq $13,32($sp) +ldq $14,40($sp) +ldq $24,48($sp) +ldq $26,56($sp) +lda $sp,144($sp) +ret +.end s9 +.globl setev +.text +.ent setev +setev: +ldgp $gp,0($27) +lda $sp,-64($sp) +.frame $sp,64,$26,48 +.prologue 1 +lda $27,1066 +stl $27,extvar +mov $31,$0 +L.3391: +lda $sp,64($sp) +ret +.end setev +.globl rfs +.comm rfs,8 +.globl crc +.comm crc,4 +.globl rrc +.comm rrc,4 +.globl flgl +.comm flgl,4 +.globl flgd +.comm flgd,4 +.globl flgm +.comm flgm,4 +.globl flgs +.comm flgs,4 +.globl dprec +.comm dprec,4 +.globl fprec +.comm fprec,4 +.globl dbits +.comm dbits,4 +.globl fbits +.comm fbits,4 +.globl ubits +.comm ubits,4 +.globl lbits +.comm lbits,4 +.globl metricp +.comm metricp,8 +.globl extvar +.comm extvar,4 +.rdata +.align 0 +L.3264: +.byte 66 +.byte 101 +.byte 32 +.byte 101 +.byte 115 +.byte 112 +.byte 101 +.byte 99 +.byte 105 +.byte 97 +.byte 108 +.byte 108 +.byte 121 +.byte 32 +.byte 99 +.byte 97 +.byte 114 +.byte 101 +.byte 102 +.byte 117 +.byte 108 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 49 +.byte 45 +.byte 98 +.byte 105 +.byte 116 +.byte 32 +.byte 102 +.byte 105 +.byte 101 +.byte 108 +.byte 100 +.byte 115 +.byte 33 +.byte 10 +.byte 0 +.align 0 +L.3257: +.byte 83 +.byte 105 +.byte 103 +.byte 110 +.byte 32 +.byte 101 +.byte 120 +.byte 116 +.byte 101 +.byte 110 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 105 +.byte 110 +.byte 32 +.byte 102 +.byte 105 +.byte 101 +.byte 108 +.byte 100 +.byte 115 +.byte 10 +.byte 0 +.align 0 +L.3250: +.byte 37 +.byte 115 +.byte 37 +.byte 115 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 2 +L.3173: +.long 0x43080000 +.align 0 +L.3020: +.byte 112 +.byte 111 +.byte 105 +.byte 110 +.byte 116 +.byte 101 +.byte 114 +.byte 0 +.align 0 +L.2470: +.byte 73 +.byte 110 +.byte 99 +.byte 114 +.byte 101 +.byte 97 +.byte 115 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 97 +.byte 114 +.byte 114 +.byte 97 +.byte 121 +.byte 32 +.byte 101 +.byte 108 +.byte 101 +.byte 109 +.byte 101 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 97 +.byte 115 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 101 +.byte 100 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 100 +.byte 101 +.byte 99 +.byte 114 +.byte 101 +.byte 97 +.byte 115 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 108 +.byte 111 +.byte 99 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 10 +.byte 0 +.align 2 +L.2354: +.long 0x41d00000 +.align 3 +L.2353: +.long 0x0 +.long 0x403a0000 +.align 3 +L.1657: +.long 0x0 +.long 0x40040000 +.align 3 +L.1482: +.long 0x0 +.long 0x40240000 +.align 2 +L.1453: +.long 0x41200000 +.align 3 +L.1278: +.long 0x0 +.long 0x40080000 +.align 2 +L.1249: +.long 0x40400000 +.align 3 +L.1074: +.long 0x0 +.long 0x401c0000 +.align 2 +L.1045: +.long 0x40e00000 +.align 3 +L.868: +.long 0x0 +.long 0x40140000 +.align 2 +L.839: +.long 0x40a00000 +.align 3 +L.834: +.long 0x0 +.long 0x41e00000 +.align 2 +L.826: +.long 0x4f000000 +.align 0 +L.651: +.byte 113 +.byte 117 +.byte 101 +.byte 101 +.byte 112 +.byte 0 +.align 0 +L.637: +.byte 10 +.byte 0 +.align 0 +L.636: +.byte 37 +.byte 100 +.byte 0 +.align 0 +L.631: +.byte 32 +.byte 32 +.byte 32 +.byte 107 +.byte 101 +.byte 121 +.byte 61 +.byte 0 +.align 3 +L.594: +.long 0x0 +.long 0x40000000 +.align 3 +L.534: +.long 0x0 +.long 0x40ce8480 +.align 3 +L.533: +.long 0x0 +.long 0x405f4000 +.align 2 +L.532: +.long 0x42fa0000 +.align 2 +L.527: +.long 0x40000000 +.align 0 +L.429: +.byte 100 +.byte 111 +.byte 117 +.byte 98 +.byte 108 +.byte 101 +.byte 0 +.align 0 +L.428: +.byte 102 +.byte 108 +.byte 111 +.byte 97 +.byte 116 +.byte 0 +.align 0 +L.427: +.byte 117 +.byte 110 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 101 +.byte 100 +.byte 0 +.align 0 +L.426: +.byte 108 +.byte 111 +.byte 110 +.byte 103 +.byte 0 +.align 0 +L.425: +.byte 115 +.byte 104 +.byte 111 +.byte 114 +.byte 116 +.byte 0 +.align 0 +L.424: +.byte 105 +.byte 110 +.byte 116 +.byte 0 +.align 0 +L.423: +.byte 99 +.byte 104 +.byte 97 +.byte 114 +.byte 0 +.align 3 +L.417: +.long 0x0 +.long 0x0 +.align 3 +L.416: +.long 0x0 +.long 0x3ff00000 +.align 3 +L.415: +.long 0x0 +.long 0x40100000 +.align 3 +L.414: +.long 0x0 +.long 0x40000000 +.align 2 +L.410: +.long 0x0 +.align 2 +L.409: +.long 0x3f800000 +.align 0 +L.388: +.byte 113 +.byte 117 +.byte 101 +.byte 101 +.byte 112 +.byte 33 +.byte 0 +.align 0 +L.377: +.byte 10 +.byte 9 +.byte 8 +.byte 13 +.byte 12 +.byte 92 +.byte 39 +.byte 0 +.align 0 +L.373: +.byte 46 +.byte 34 +.byte 46 +.byte 0 +.align 0 +L.360: +.byte 46 +.byte 46 +.byte 46 +.byte 0 +.align 3 +L.332: +.long 0x0 +.long 0x40938800 +.align 0 +L.198: +.byte 32 +.byte 32 +.byte 32 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 101 +.byte 110 +.byte 116 +.byte 32 +.byte 114 +.byte 101 +.byte 115 +.byte 117 +.byte 108 +.byte 116 +.byte 115 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 110 +.byte 32 +.byte 97 +.byte 115 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 101 +.byte 100 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 108 +.byte 111 +.byte 110 +.byte 103 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.197: +.byte 68 +.byte 101 +.byte 99 +.byte 105 +.byte 109 +.byte 97 +.byte 108 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 111 +.byte 99 +.byte 116 +.byte 97 +.byte 108 +.byte 47 +.byte 104 +.byte 101 +.byte 120 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 115 +.byte 116 +.byte 97 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 115 +.byte 111 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 109 +.byte 101 +.byte 115 +.byte 32 +.byte 103 +.byte 105 +.byte 118 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.27: +.byte 10 +.byte 70 +.byte 97 +.byte 105 +.byte 108 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.26: +.byte 10 +.byte 78 +.byte 111 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 115 +.byte 32 +.byte 100 +.byte 101 +.byte 116 +.byte 101 +.byte 99 +.byte 116 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.20: +.byte 83 +.byte 101 +.byte 99 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 37 +.byte 115 +.byte 32 +.byte 114 +.byte 101 +.byte 116 +.byte 117 +.byte 114 +.byte 110 +.byte 101 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 46 +.byte 10 +.byte 0 diff --git a/code/tools/lcc/alpha/osf/tst/cvt.1bk b/code/tools/lcc/alpha/osf/tst/cvt.1bk new file mode 100644 index 0000000..b28b302 --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/cvt.1bk @@ -0,0 +1,11 @@ +1 1 1 1 1 1 1 1 1.000000 1.000000 1.000000 +2 2 2 2 2 2 2 2 2.000000 2.000000 2.000000 +3 3 3 3 3 3 3 3 3.000000 3.000000 3.000000 +4 4 4 4 4 4 4 4 4.000000 4.000000 4.000000 +5 5 5 5 5 5 5 5 5.000000 5.000000 5.000000 +6 6 6 6 6 6 6 6 6.000000 6.000000 6.000000 +7 7 7 7 7 7 7 7 7.000000 7.000000 7.000000 +8 8 8 8 8 8 8 8 8.000000 8.000000 8.000000 +9 9 9 9 9 9 9 9 9.000000 9.000000 9.000000 +10 10 10 10 10 10 10 10 10.000000 10.000000 10.000000 +11 11 11 11 11 11 11 11 11.000000 11.000000 11.000000 diff --git a/code/tools/lcc/alpha/osf/tst/cvt.2bk b/code/tools/lcc/alpha/osf/tst/cvt.2bk new file mode 100644 index 0000000..241527d --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/cvt.2bk @@ -0,0 +1,2 @@ +tst/cvt.c:32: warning: conversion from `pointer to void function(void)' to `pointer to void' is compiler dependent +tst/cvt.c:33: warning: conversion from `pointer to void' to `pointer to void function(void)' is compiler dependent diff --git a/code/tools/lcc/alpha/osf/tst/cvt.sbk b/code/tools/lcc/alpha/osf/tst/cvt.sbk new file mode 100644 index 0000000..f93ef64 --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/cvt.sbk @@ -0,0 +1,744 @@ +.globl print +.text +.text +.ent print +print: +ldgp $gp,0($27) +lda $sp,-112($sp) +.mask 0x4000000,-64 +.frame $sp,112,$26,48 +stq $26,48($sp) +.prologue 1 +lda $16,L.2 +lda $27,c +ldb $17,($27) +lda $27,s +ldw $18,($27) +ldl $19,i +ldq $20,l +lda $27,C +ldbu $21,($27) +lda $27,S +ldwu $27,($27) +stq $27,0($sp) +ldl $27,I +zap $27,240,$27 +stq $27,8($sp) +ldq $27,L +stq $27,16($sp) +lds $f30,f +cvtst $f30,$f30 +stt $f30,24($sp) +ldt $f30,d +stt $f30,32($sp) +ldt $f30,D +stt $f30,40($sp) +jsr $26,printf +ldgp $gp,0($26) +L.1: +ldq $26,48($sp) +lda $sp,112($sp) +ret +.end print +.globl main +.text +.ent main +main: +ldgp $gp,0($27) +lda $sp,-160($sp) +.mask 0x5007e00,-104 +.frame $sp,160,$26,48 +stq $9,0($sp) +stq $10,8($sp) +stq $11,16($sp) +stq $12,24($sp) +stq $13,32($sp) +stq $14,40($sp) +stq $24,48($sp) +stq $26,56($sp) +.prologue 1 +lda $27,c +lda $25,1 +stb $25,c +ldb $27,($27) +mov $27,$25 +stw $25,s +stl $27,i +sll $27,8*(8-4),$25 +sra $25,8*(8-4),$25 +stq $25,l +mov $27,$25 +mov $25,$22 +stb $22,C +mov $25,$22 +stw $22,S +stl $25,I +mov $27,$25 +stq $25,L +stq $27,-56+160($sp) +ldt $f30,-56+160($sp) +cvtqs $f30,$f30 +sts $f30,f +stq $27,-56+160($sp) +ldt $f30,-56+160($sp) +cvtqt $f30,$f30 +stt $f30,d +stt $f30,D +jsr $26,print +ldgp $gp,0($26) +lda $27,s +lda $25,2 +stw $25,s +ldw $27,($27) +mov $27,$25 +stb $25,c +stl $27,i +sll $27,8*(8-4),$25 +sra $25,8*(8-4),$25 +stq $25,l +mov $27,$25 +mov $25,$22 +stb $22,C +mov $25,$22 +stw $22,S +stl $25,I +mov $27,$25 +stq $25,L +stq $27,-56+160($sp) +ldt $f30,-56+160($sp) +cvtqs $f30,$f30 +sts $f30,f +stq $27,-56+160($sp) +ldt $f30,-56+160($sp) +cvtqt $f30,$f30 +stt $f30,d +stt $f30,D +jsr $26,print +ldgp $gp,0($26) +lda $27,3 +stl $27,i +ldl $27,i +mov $27,$25 +stb $25,c +mov $27,$25 +stw $25,s +sll $27,8*(8-4),$25 +sra $25,8*(8-4),$25 +stq $25,l +mov $27,$25 +mov $25,$22 +stb $22,C +mov $25,$22 +stw $22,S +stl $25,I +mov $27,$25 +stq $25,L +stq $27,-56+160($sp) +ldt $f30,-56+160($sp) +cvtqs $f30,$f30 +sts $f30,f +stq $27,-56+160($sp) +ldt $f30,-56+160($sp) +cvtqt $f30,$f30 +stt $f30,d +stt $f30,D +jsr $26,print +ldgp $gp,0($26) +lda $27,4 +stq $27,l +ldq $27,l +mov $27,$25 +stb $25,c +mov $27,$25 +stw $25,s +mov $27,$25 +stl $25,i +mov $27,$25 +mov $25,$22 +stb $22,C +mov $25,$22 +stw $22,S +stl $25,I +mov $27,$25 +stq $25,L +stq $27,-56+160($sp) +ldt $f30,-56+160($sp) +cvtqs $f30,$f30 +sts $f30,f +stq $27,-56+160($sp) +ldt $f30,-56+160($sp) +cvtqt $f30,$f30 +stt $f30,d +stt $f30,D +jsr $26,print +ldgp $gp,0($26) +lda $27,C +lda $25,5 +stb $25,C +ldbu $27,($27) +mov $27,$25 +stb $25,c +mov $27,$25 +stw $25,s +stl $27,i +sll $27,8*(8-4),$25 +sra $25,8*(8-4),$25 +stq $25,l +mov $27,$25 +mov $25,$22 +stw $22,S +stl $25,I +mov $27,$25 +stq $25,L +stq $27,-56+160($sp) +ldt $f30,-56+160($sp) +cvtqs $f30,$f30 +sts $f30,f +stq $27,-56+160($sp) +ldt $f30,-56+160($sp) +cvtqt $f30,$f30 +stt $f30,d +stt $f30,D +jsr $26,print +ldgp $gp,0($26) +lda $27,S +lda $25,6 +stw $25,S +ldwu $27,($27) +mov $27,$25 +stb $25,c +mov $27,$25 +stw $25,s +stl $27,i +sll $27,8*(8-4),$25 +sra $25,8*(8-4),$25 +stq $25,l +mov $27,$25 +mov $25,$22 +stb $22,C +stl $25,I +mov $27,$25 +stq $25,L +stq $27,-56+160($sp) +ldt $f30,-56+160($sp) +cvtqs $f30,$f30 +sts $f30,f +stq $27,-56+160($sp) +ldt $f30,-56+160($sp) +cvtqt $f30,$f30 +stt $f30,d +stt $f30,D +jsr $26,print +ldgp $gp,0($26) +lda $27,7 +stl $27,I +ldl $27,I +zap $27,240,$27 +mov $27,$25 +mov $25,$22 +stb $22,c +mov $25,$22 +stw $22,s +stl $25,i +and $27,(1<<(8*4))-1,$25 +stq $25,l +mov $27,$25 +stb $25,C +mov $27,$25 +stw $25,S +and $27,(1<<(8*4))-1,$25 +stq $25,L +ldt $f30,L.4 +srl $27,1,$25 +stq $25,-56+160($sp) +ldt $f29,-56+160($sp) +cvtqt $f29,$f29 +mult $f30,$f29,$f30 +and $27,1,$27 +stq $27,-56+160($sp) +ldt $f29,-56+160($sp) +cvtqt $f29,$f29 +addt $f30,$f29,$f30 +cvtts $f30,$f29 +sts $f29,f +stt $f30,d +stt $f30,D +jsr $26,print +ldgp $gp,0($26) +lda $27,8 +stq $27,L +ldq $27,L +mov $27,$25 +mov $25,$22 +stb $22,c +mov $25,$22 +stw $22,s +stl $25,i +mov $27,$25 +stq $25,l +mov $27,$25 +stb $25,C +lda $25,S +mov $27,$22 +stw $22,S +ldwu $25,($25) +stl $25,I +ldt $f30,L.4 +srl $27,1,$25 +stq $25,-56+160($sp) +ldt $f29,-56+160($sp) +cvtqt $f29,$f29 +mult $f30,$f29,$f30 +and $27,1,$27 +stq $27,-56+160($sp) +ldt $f29,-56+160($sp) +cvtqt $f29,$f29 +addt $f30,$f29,$f30 +cvtts $f30,$f29 +sts $f29,f +stt $f30,d +stt $f30,D +jsr $26,print +ldgp $gp,0($26) +lds $f30,L.5 +sts $f30,f +lds $f30,f +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+160($sp) +ldl $27,-56+160($sp) +mov $27,$25 +stb $25,c +mov $27,$25 +stw $25,s +stl $27,i +cvttqc $f30,$f1 +stt $f1,-56+160($sp) +ldq $27,-56+160($sp) +stq $27,l +lds $f29,L.9 +cmptlt $f30,$f29,$f1 +fbne $f1,L.7 +subs $f30,$f29,$f29 +cvttqc $f29,$f1 +cvtql $f1,$f1 +sts $f1,-56+160($sp) +ldl $27,-56+160($sp) +addl $27,0x80000000,$14 +zap $14,240,$14 +br L.8 +L.7: +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+160($sp) +ldl $27,-56+160($sp) +mov $27,$14 +L.8: +mov $14,$27 +stb $27,C +lds $f30,f +lds $f29,L.9 +cmptlt $f30,$f29,$f1 +fbne $f1,L.11 +subs $f30,$f29,$f29 +cvttqc $f29,$f1 +cvtql $f1,$f1 +sts $f1,-56+160($sp) +ldl $27,-56+160($sp) +addl $27,0x80000000,$13 +zap $13,240,$13 +br L.12 +L.11: +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+160($sp) +ldl $27,-56+160($sp) +mov $27,$13 +L.12: +mov $13,$27 +stw $27,S +lds $f30,f +lds $f29,L.9 +cmptlt $f30,$f29,$f1 +fbne $f1,L.14 +subs $f30,$f29,$f29 +cvttqc $f29,$f1 +cvtql $f1,$f1 +sts $f1,-56+160($sp) +ldl $27,-56+160($sp) +addl $27,0x80000000,$12 +zap $12,240,$12 +br L.15 +L.14: +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+160($sp) +ldl $27,-56+160($sp) +mov $27,$12 +L.15: +stl $12,I +lds $f30,f +lds $f29,L.19 +cmptlt $f30,$f29,$f1 +fbne $f1,L.17 +subs $f30,$f29,$f29 +cvttqc $f29,$f1 +stt $f1,-56+160($sp) +ldq $27,-56+160($sp) +lda $11,0x8000000000000000($27) +br L.18 +L.17: +cvttqc $f30,$f1 +stt $f1,-56+160($sp) +ldq $27,-56+160($sp) +mov $27,$11 +L.18: +stq $11,L +lds $f30,f +cvtst $f30,$f30 +stt $f30,d +stt $f30,D +jsr $26,print +ldgp $gp,0($26) +ldt $f30,L.20 +stt $f30,d +ldt $f30,d +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+160($sp) +ldl $27,-56+160($sp) +mov $27,$25 +stb $25,c +mov $27,$25 +stw $25,s +stl $27,i +cvttqc $f30,$f1 +stt $f1,-56+160($sp) +ldq $27,-56+160($sp) +stq $27,l +ldt $f29,L.24 +cmptlt $f30,$f29,$f1 +fbne $f1,L.22 +subt $f30,$f29,$f29 +cvttqc $f29,$f1 +cvtql $f1,$f1 +sts $f1,-56+160($sp) +ldl $27,-56+160($sp) +addl $27,0x80000000,$10 +zap $10,240,$10 +br L.23 +L.22: +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+160($sp) +ldl $27,-56+160($sp) +mov $27,$10 +L.23: +mov $10,$27 +stb $27,C +ldt $f30,d +ldt $f29,L.24 +cmptlt $f30,$f29,$f1 +fbne $f1,L.26 +subt $f30,$f29,$f29 +cvttqc $f29,$f1 +cvtql $f1,$f1 +sts $f1,-56+160($sp) +ldl $27,-56+160($sp) +addl $27,0x80000000,$9 +zap $9,240,$9 +br L.27 +L.26: +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+160($sp) +ldl $27,-56+160($sp) +mov $27,$9 +L.27: +mov $9,$27 +stw $27,S +ldt $f30,d +ldt $f29,L.24 +cmptlt $f30,$f29,$f1 +fbne $f1,L.29 +subt $f30,$f29,$f29 +cvttqc $f29,$f1 +cvtql $f1,$f1 +sts $f1,-56+160($sp) +ldl $27,-56+160($sp) +addl $27,0x80000000,$27 +zap $27,240,$27 +stl $27,-60+160($sp) +br L.30 +L.29: +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+160($sp) +ldl $27,-56+160($sp) +stl $27,-60+160($sp) +L.30: +ldl $27,-60+160($sp) +zap $27,240,$27 +stl $27,I +ldt $f30,d +ldt $f29,L.34 +cmptlt $f30,$f29,$f1 +fbne $f1,L.32 +subt $f30,$f29,$f29 +cvttqc $f29,$f1 +stt $f1,-56+160($sp) +ldq $27,-56+160($sp) +lda $27,0x8000000000000000($27) +stq $27,-72+160($sp) +br L.33 +L.32: +cvttqc $f30,$f1 +stt $f1,-56+160($sp) +ldq $27,-56+160($sp) +stq $27,-72+160($sp) +L.33: +ldq $27,-72+160($sp) +stq $27,L +ldt $f30,d +cvtts $f30,$f29 +sts $f29,f +stt $f30,D +jsr $26,print +ldgp $gp,0($26) +ldt $f30,L.35 +stt $f30,D +ldt $f30,D +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+160($sp) +ldl $27,-56+160($sp) +mov $27,$25 +stb $25,c +mov $27,$25 +stw $25,s +stl $27,i +cvttqc $f30,$f1 +stt $f1,-56+160($sp) +ldq $27,-56+160($sp) +stq $27,l +ldt $f29,L.39 +cmptlt $f30,$f29,$f1 +fbne $f1,L.37 +subt $f30,$f29,$f29 +cvttqc $f29,$f1 +cvtql $f1,$f1 +sts $f1,-56+160($sp) +ldl $27,-56+160($sp) +addl $27,0x80000000,$27 +zap $27,240,$27 +stl $27,-76+160($sp) +br L.38 +L.37: +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+160($sp) +ldl $27,-56+160($sp) +stl $27,-76+160($sp) +L.38: +ldl $27,-76+160($sp) +zap $27,240,$27 +stb $27,C +ldt $f30,D +ldt $f29,L.39 +cmptlt $f30,$f29,$f1 +fbne $f1,L.41 +subt $f30,$f29,$f29 +cvttqc $f29,$f1 +cvtql $f1,$f1 +sts $f1,-56+160($sp) +ldl $27,-56+160($sp) +addl $27,0x80000000,$27 +zap $27,240,$27 +stl $27,-80+160($sp) +br L.42 +L.41: +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+160($sp) +ldl $27,-56+160($sp) +stl $27,-80+160($sp) +L.42: +ldl $27,-80+160($sp) +zap $27,240,$27 +stw $27,S +ldt $f30,D +ldt $f29,L.39 +cmptlt $f30,$f29,$f1 +fbne $f1,L.44 +subt $f30,$f29,$f29 +cvttqc $f29,$f1 +cvtql $f1,$f1 +sts $f1,-56+160($sp) +ldl $27,-56+160($sp) +addl $27,0x80000000,$27 +zap $27,240,$27 +stl $27,-84+160($sp) +br L.45 +L.44: +cvttqc $f30,$f1 +cvtql $f1,$f1 +sts $f1,-56+160($sp) +ldl $27,-56+160($sp) +stl $27,-84+160($sp) +L.45: +ldl $27,-84+160($sp) +zap $27,240,$27 +stl $27,I +ldt $f30,D +ldt $f29,L.49 +cmptlt $f30,$f29,$f1 +fbne $f1,L.47 +subt $f30,$f29,$f29 +cvttqc $f29,$f1 +stt $f1,-56+160($sp) +ldq $27,-56+160($sp) +lda $27,0x8000000000000000($27) +stq $27,-96+160($sp) +br L.48 +L.47: +cvttqc $f30,$f1 +stt $f1,-56+160($sp) +ldq $27,-56+160($sp) +stq $27,-96+160($sp) +L.48: +ldq $27,-96+160($sp) +stq $27,L +ldt $f30,D +cvtts $f30,$f29 +sts $f29,f +stt $f30,d +jsr $26,print +ldgp $gp,0($26) +stq $31,p +stq $31,p +stq $31,p +stq $31,p +ldq $27,P +stq $27,p +stq $31,P +stq $31,P +stq $31,P +stq $31,P +ldq $27,p +stq $27,P +mov $31,$0 +L.3: +ldq $9,0($sp) +ldq $10,8($sp) +ldq $11,16($sp) +ldq $12,24($sp) +ldq $13,32($sp) +ldq $14,40($sp) +ldq $24,48($sp) +ldq $26,56($sp) +lda $sp,160($sp) +ret +.end main +.globl P +.comm P,8 +.globl p +.comm p,8 +.globl D +.comm D,8 +.globl d +.comm d,8 +.globl f +.comm f,4 +.globl L +.comm L,8 +.globl I +.comm I,4 +.globl S +.comm S,2 +.globl C +.comm C,1 +.globl l +.comm l,8 +.globl i +.comm i,4 +.globl s +.comm s,2 +.globl c +.comm c,1 +.rdata +.align 3 +L.49: +.long 0x0 +.long 0x43e00000 +.align 3 +L.39: +.long 0x0 +.long 0x41e00000 +.align 3 +L.35: +.long 0x0 +.long 0x40260000 +.align 3 +L.34: +.long 0x0 +.long 0x43e00000 +.align 3 +L.24: +.long 0x0 +.long 0x41e00000 +.align 3 +L.20: +.long 0x0 +.long 0x40240000 +.align 2 +L.19: +.long 0x5f000000 +.align 2 +L.9: +.long 0x4f000000 +.align 2 +L.5: +.long 0x41100000 +.align 3 +L.4: +.long 0x0 +.long 0x40000000 +.align 0 +L.2: +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 108 +.byte 100 +.byte 32 +.byte 37 +.byte 117 +.byte 32 +.byte 37 +.byte 117 +.byte 32 +.byte 37 +.byte 117 +.byte 32 +.byte 37 +.byte 108 +.byte 117 +.byte 32 +.byte 37 +.byte 102 +.byte 32 +.byte 37 +.byte 102 +.byte 32 +.byte 37 +.byte 108 +.byte 102 +.byte 10 +.byte 0 diff --git a/code/tools/lcc/alpha/osf/tst/fields.1bk b/code/tools/lcc/alpha/osf/tst/fields.1bk new file mode 100644 index 0000000..56fdeb9 --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/fields.1bk @@ -0,0 +1,5 @@ +x = 1 2 3 4 -3 6 +y = 3 8 9 +x = 1 2 3 0 0 6 +y = 2 8 16 +p->a = 0x3, p->b = 0xf diff --git a/code/tools/lcc/alpha/osf/tst/fields.2bk b/code/tools/lcc/alpha/osf/tst/fields.2bk new file mode 100644 index 0000000..51e1736 --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/fields.2bk @@ -0,0 +1,4 @@ +tst/fields.c:6: warning: initializer exceeds bit-field width +tst/fields.c:8: warning: initializer exceeds bit-field width +tst/fields.c:30: warning: missing return value +tst/fields.c:34: warning: missing return value diff --git a/code/tools/lcc/alpha/osf/tst/fields.sbk b/code/tools/lcc/alpha/osf/tst/fields.sbk new file mode 100644 index 0000000..b261035 --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/fields.sbk @@ -0,0 +1,325 @@ +.sdata +.globl x +.align 2 +x: +.long 0x1 +.byte 0x2 +.space 3 +.byte 0x3 +.byte 0x40 +.space 2 +.byte 0x50 +.byte 0x6 +.space 2 +.globl i +.align 2 +i: +.long 0x10 +.globl y +.align 2 +y: +.byte 0x23 +.space 3 +.byte 0x9 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.globl main +.text +.text +.ent main +main: +ldgp $gp,0($27) +lda $sp,-80($sp) +.mask 0x4000000,-72 +.frame $sp,80,$26,48 +stq $26,8($sp) +.prologue 1 +lda $16,L.4 +ldl $17,x +lda $27,x+4 +ldb $18,($27) +ldl $27,x+8 +sll $27,20,$27 +addl $27,0,$27 +sra $27,20,$19 +addl $19,0,$19 +ldl $27,x+8 +sll $27,16,$27 +addl $27,0,$27 +sra $27,28,$20 +addl $20,0,$20 +ldl $27,x+12 +sll $27,25,$27 +addl $27,0,$27 +sra $27,29,$21 +addl $21,0,$21 +lda $27,x+13 +ldb $27,($27) +stq $27,0($sp) +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.10 +ldl $27,y +zap $27,240,$27 +and $27,3,$17 +srl $27,2,$27 +and $27,15,$18 +ldl $19,y+4 +zap $19,240,$19 +jsr $26,printf +ldgp $gp,0($26) +ldl $27,x+8 +and $27,0xffff0fff,$27 +ldl $25,i +sll $25,28,$25 +addl $25,0,$25 +sra $25,28,$25 +addl $25,0,$25 +sll $25,12,$25 +zap $25,240,$25 +and $25,0xf000,$25 +or $27,$25,$27 +stl $27,x+8 +ldl $27,x+12 +and $27,0xffffff8f,$27 +stl $27,x+12 +lda $16,L.4 +ldl $17,x +lda $27,x+4 +ldb $18,($27) +ldl $27,x+8 +sll $27,20,$27 +addl $27,0,$27 +sra $27,20,$19 +addl $19,0,$19 +ldl $27,x+8 +sll $27,16,$27 +addl $27,0,$27 +sra $27,28,$20 +addl $20,0,$20 +ldl $27,x+12 +sll $27,25,$27 +addl $27,0,$27 +sra $27,29,$21 +addl $21,0,$21 +lda $27,x+13 +ldb $27,($27) +stq $27,0($sp) +jsr $26,printf +ldgp $gp,0($26) +ldl $27,y +zap $27,240,$27 +and $27,0xfffffffc,$27 +or $27,2,$27 +stl $27,y +ldl $27,i +stl $27,y+4 +lda $16,L.10 +ldl $27,y +zap $27,240,$27 +and $27,3,$17 +srl $27,2,$27 +and $27,15,$18 +ldl $19,y+4 +zap $19,240,$19 +jsr $26,printf +ldgp $gp,0($26) +lda $16,x +jsr $26,f2 +ldgp $gp,0($26) +mov $31,$0 +L.3: +ldq $26,8($sp) +lda $sp,80($sp) +ret +.end main +.globl f1 +.text +.ent f1 +f1: +ldgp $gp,0($27) +lda $sp,-80($sp) +.mask 0x4004000,-72 +.frame $sp,80,$26,48 +stq $14,0($sp) +stq $26,8($sp) +mov $16,$14 +.prologue 1 +ldl $27,($14) +zap $27,240,$27 +and $27,0xffffffc3,$27 +stl $27,($14) +ldl $27,($14) +zap $27,240,$27 +and $27,0xfffffffc,$27 +and $31,3,$25 +and $25,3,$25 +or $27,$25,$27 +stl $27,($14) +ldl $27,($14) +zap $27,240,$27 +and $27,60,$27 +cmpeq $27,$31,$23 +bne $23,L.22 +lda $16,L.24 +jsr $26,printf +ldgp $gp,0($26) +L.22: +ldl $27,($14) +zap $27,240,$27 +or $27,3,$27 +stl $27,($14) +ldl $27,($14) +zap $27,240,$27 +or $27,60,$27 +stl $27,($14) +lda $16,L.25 +ldl $27,($14) +zap $27,240,$27 +and $27,3,$17 +srl $27,2,$27 +and $27,15,$18 +jsr $26,printf +ldgp $gp,0($26) +mov $31,$0 +L.21: +ldq $14,0($sp) +ldq $26,8($sp) +lda $sp,80($sp) +ret +.end f1 +.globl f2 +.text +.ent f2 +f2: +ldgp $gp,0($27) +lda $sp,-80($sp) +.mask 0x4006000,-64 +.frame $sp,80,$26,48 +stq $13,0($sp) +stq $14,8($sp) +stq $26,16($sp) +mov $16,$14 +.prologue 1 +ldl $27,i +cmpeq $27,$31,$23 +beq $23,L.28 +lda $13,1 +br L.29 +L.28: +mov $31,$13 +L.29: +ldl $27,($14) +zap $27,240,$27 +and $27,0xfffffffc,$27 +mov $13,$25 +and $25,3,$25 +and $25,3,$25 +or $27,$25,$27 +stl $27,($14) +mov $14,$16 +jsr $26,f1 +ldgp $gp,0($26) +ldl $27,($14) +zap $27,240,$27 +and $27,0xffffffc3,$27 +mov $31,$25 +and $25,15,$25 +sll $25,2,$25 +zap $25,240,$25 +and $25,60,$25 +or $27,$25,$27 +stl $27,($14) +mov $31,$0 +L.26: +ldq $13,0($sp) +ldq $14,8($sp) +ldq $26,16($sp) +lda $sp,80($sp) +ret +.end f2 +.rdata +.align 0 +L.25: +.byte 112 +.byte 45 +.byte 62 +.byte 97 +.byte 32 +.byte 61 +.byte 32 +.byte 48 +.byte 120 +.byte 37 +.byte 120 +.byte 44 +.byte 32 +.byte 112 +.byte 45 +.byte 62 +.byte 98 +.byte 32 +.byte 61 +.byte 32 +.byte 48 +.byte 120 +.byte 37 +.byte 120 +.byte 10 +.byte 0 +.align 0 +L.24: +.byte 112 +.byte 45 +.byte 62 +.byte 98 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 33 +.byte 10 +.byte 0 +.align 0 +L.10: +.byte 121 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.4: +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 diff --git a/code/tools/lcc/alpha/osf/tst/front.2bk b/code/tools/lcc/alpha/osf/tst/front.2bk new file mode 100644 index 0000000..bbd390a --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/front.2bk @@ -0,0 +1,29 @@ +tst/front.c:3: warning: missing return value +tst/front.c:10: warning: missing return value +tst/front.c:20: type error in argument 1 to `s'; found `pointer to struct D' expected `pointer to incomplete struct D defined at tst/front.c:14' +tst/front.c:21: warning: missing return value +tst/front.c:32: warning: missing return value +tst/front.c:36: operands of = have illegal types `pointer to int' and `pointer to const int' +tst/front.c:38: warning: missing return value +tst/front.c:62: operands of = have illegal types `pointer to char' and `pointer to const void' +tst/front.c:63: warning: missing return value +tst/front.c:68: warning: missing return value +tst/front.c:69: warning: inconsistent linkage for `yy' previously declared at tst/front.c:68 +tst/front.c:69: warning: missing return value +tst/front.c:71: invalid storage class `static' for `int function goo' +tst/front.c:71: warning: declaration of `goo' does not match previous declaration at tst/front.c:70 +tst/front.c:71: warning: missing return value +tst/front.c:74: warning: declaration of `xr' does not match previous declaration at tst/front.c:72 +tst/front.c:74: warning: missing return value +tst/front.c:81: warning: missing return value +tst/front.c:82: warning: declaration of `ss2' does not match previous declaration at tst/front.c:81 +tst/front.c:84: warning: inconsistent linkage for `ss5' previously declared at tst/front.c:80 +tst/front.c:92: type error in argument 1 to `gx1'; found `pointer to double' expected `double' +tst/front.c:92: warning: missing return value +tst/front.c:95: redeclaration of `hx1' previously declared at tst/front.c:94 +tst/front.c:98: warning: missing return value +tst/front.c:101: conflicting argument declarations for function `gg1' +tst/front.c:101: warning: missing return value +tst/front.c:112: type error in argument 4 to `qsort'; found `pointer to int function(pointer to pointer to char,pointer to pointer to char)' expected `pointer to int function(pointer to const void,pointer to const void)' +tst/front.c:113: warning: missing return value +tst/front.c:120: warning: missing return value diff --git a/code/tools/lcc/alpha/osf/tst/front.sbk b/code/tools/lcc/alpha/osf/tst/front.sbk new file mode 100644 index 0000000..f7fd430 --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/front.sbk @@ -0,0 +1,380 @@ +.globl main +.text +.text +.ent main +main: +ldgp $gp,0($27) +lda $sp,-64($sp) +.mask 0x4000000,-64 +.frame $sp,64,$26,48 +stq $26,0($sp) +.prologue 1 +mov $31,$16 +jsr $26,exit +ldgp $gp,0($26) +mov $31,$0 +L.1: +ldq $26,0($sp) +lda $sp,64($sp) +ret +.end main +.globl nested +.text +.ent nested +nested: +ldgp $gp,0($27) +lda $sp,-64($sp) +.frame $sp,64,$26,48 +.prologue 1 +cmplt $16,4,$23 +beq $23,L.6 +lda $27,114 +cmpeq $17,$27,$23 +bne $23,L.9 +L.6: +cmpeq $16,1,$23 +beq $23,L.8 +lda $27,104 +cmpeq $17,$27,$23 +bne $23,L.9 +lda $27,105 +cmpeq $17,$27,$23 +bne $23,L.9 +L.8: +cmpeq $16,2,$23 +beq $23,L.3 +lda $27,111 +cmpeq $17,$27,$23 +bne $23,L.9 +lda $27,121 +cmpeq $17,$27,$23 +beq $23,L.3 +L.9: +mov $17,$16 +L.3: +mov $31,$0 +L.2: +lda $sp,64($sp) +ret +.end nested +.globl s +.text +.ent s +s: +ldgp $gp,0($27) +lda $sp,-64($sp) +.frame $sp,64,$26,48 +.prologue 1 +L.10: +lda $sp,64($sp) +ret +.end s +.sdata +.globl Dy +.align 2 +Dy: +.long 0x0 +.space 4 +.globl Dz +.align 2 +Dz: +.long 0x1 +.space 4 +.globl Dfunc +.text +.text +.ent Dfunc +Dfunc: +ldgp $gp,0($27) +lda $sp,-64($sp) +.mask 0x4000000,-64 +.frame $sp,64,$26,48 +stq $26,0($sp) +.prologue 1 +ldq $26,0($sp) +lda $sp,64($sp) +ret +.end Dfunc +.globl f +.text +.ent f +f: +ldgp $gp,0($27) +lda $sp,-48($sp) +.frame $sp,48,$26,48 +.prologue 1 +lda $sp,48($sp) +ret +.end f +.globl f1 +.text +.ent f1 +f1: +ldgp $gp,0($27) +lda $sp,-48($sp) +.frame $sp,48,$26,48 +.prologue 1 +lda $sp,48($sp) +ret +.end f1 +.globl f2 +.text +.ent f2 +f2: +ldgp $gp,0($27) +lda $sp,-64($sp) +.mask 0x4000000,-64 +.frame $sp,64,$26,48 +stq $26,0($sp) +stq $16,16($sp) +stq $17,24($sp) +.prologue 1 +ldq $26,0($sp) +lda $sp,64($sp) +ret +.end f2 +.globl g +.text +.ent g +g: +ldgp $gp,0($27) +lda $sp,-64($sp) +.mask 0x4000000,-64 +.frame $sp,64,$26,48 +stq $26,0($sp) +stq $16,16($sp) +.prologue 1 +ldq $26,0($sp) +lda $sp,64($sp) +ret +.end g +.globl h +.text +.ent h +h: +ldgp $gp,0($27) +lda $sp,-64($sp) +.mask 0x4000000,-64 +.frame $sp,64,$26,48 +stq $26,0($sp) +stq $16,16($sp) +.prologue 1 +ldq $26,0($sp) +lda $sp,64($sp) +ret +.end h +.globl h1 +.text +.ent h1 +h1: +ldgp $gp,0($27) +lda $sp,-64($sp) +.mask 0x4000000,-64 +.frame $sp,64,$26,48 +stq $26,0($sp) +stq $16,16($sp) +stq $17,24($sp) +.prologue 1 +ldq $26,0($sp) +lda $sp,64($sp) +ret +.end h1 +.globl h2 +.text +.ent h2 +h2: +ldgp $gp,0($27) +lda $sp,-48($sp) +.frame $sp,48,$26,48 +.prologue 1 +lda $sp,48($sp) +ret +.end h2 +.sdata +.align 2 +L.21: +.long 0x1 +.globl set1 +.text +.text +.ent set1 +set1: +ldgp $gp,0($27) +lda $sp,-48($sp) +.frame $sp,48,$26,48 +.prologue 1 +lda $sp,48($sp) +ret +.end set1 +.sdata +.align 2 +L.23: +.long 0x2 +.globl set2 +.text +.text +.ent set2 +set2: +ldgp $gp,0($27) +lda $sp,-48($sp) +.frame $sp,48,$26,48 +.prologue 1 +lda $sp,48($sp) +ret +.end set2 +.text +.ent goo +goo: +ldgp $gp,0($27) +lda $sp,-48($sp) +.frame $sp,48,$26,48 +.prologue 1 +lda $sp,48($sp) +ret +.end goo +.globl sss +.text +.ent sss +sss: +ldgp $gp,0($27) +lda $sp,-48($sp) +.frame $sp,48,$26,48 +.prologue 1 +lda $sp,48($sp) +ret +.end sss +.lcomm L.27,4 +.globl rrr +.text +.text +.ent rrr +rrr: +ldgp $gp,0($27) +lda $sp,-48($sp) +.frame $sp,48,$26,48 +.prologue 1 +lda $sp,48($sp) +ret +.end rrr +.globl setstatic +.text +.ent setstatic +setstatic: +ldgp $gp,0($27) +lda $sp,-48($sp) +.frame $sp,48,$26,48 +.prologue 1 +lda $sp,48($sp) +ret +.end setstatic +.globl gx1 +.text +.ent gx1 +gx1: +ldgp $gp,0($27) +lda $sp,-64($sp) +.mask 0x4000000,-64 +.frame $sp,64,$26,48 +stq $26,0($sp) +stt $f16,16($sp) +.prologue 1 +ldq $26,0($sp) +lda $sp,64($sp) +ret +.end gx1 +.globl ff1 +.text +.ent ff1 +ff1: +ldgp $gp,0($27) +lda $sp,-48($sp) +.frame $sp,48,$26,48 +.prologue 1 +lda $sp,48($sp) +ret +.end ff1 +.globl gg1 +.text +.ent gg1 +gg1: +ldgp $gp,0($27) +lda $sp,-48($sp) +.frame $sp,48,$26,48 +.prologue 1 +lda $sp,48($sp) +ret +.end gg1 +.globl hh1 +.text +.ent hh1 +hh1: +ldgp $gp,0($27) +lda $sp,-48($sp) +.frame $sp,48,$26,48 +.prologue 1 +lda $sp,48($sp) +ret +.end hh1 +.globl cmp +.text +.ent cmp +cmp: +ldgp $gp,0($27) +lda $sp,-64($sp) +.mask 0x4000000,-64 +.frame $sp,64,$26,48 +stq $26,0($sp) +stq $16,16($sp) +stq $17,24($sp) +.prologue 1 +ldq $26,0($sp) +lda $sp,64($sp) +ret +.end cmp +.globl sort +.text +.ent sort +sort: +ldgp $gp,0($27) +lda $sp,-64($sp) +.mask 0x4000000,-64 +.frame $sp,64,$26,48 +stq $26,0($sp) +.prologue 1 +ldq $26,0($sp) +lda $sp,64($sp) +ret +.end sort +.globl onearg +.text +.ent onearg +onearg: +ldgp $gp,0($27) +lda $sp,-64($sp) +.mask 0x4000000,-64 +.frame $sp,64,$26,48 +stq $26,0($sp) +.prologue 1 +ldq $26,0($sp) +lda $sp,64($sp) +ret +.end onearg +.extern xr 4 +.globl ss4 +.comm ss4,4 +.lcomm ss2,4 +.lcomm ss5,4 +.globl ss3 +.comm ss3,4 +.lcomm ss1,4 +.lcomm yy,4 +.globl z +.comm z,4 +.globl y +.comm y,8 +.globl x +.comm x,8 +.globl b +.comm b,4 +.globl a +.comm a,4 diff --git a/code/tools/lcc/alpha/osf/tst/incr.1bk b/code/tools/lcc/alpha/osf/tst/incr.1bk new file mode 100644 index 0000000..e69de29 diff --git a/code/tools/lcc/alpha/osf/tst/incr.2bk b/code/tools/lcc/alpha/osf/tst/incr.2bk new file mode 100644 index 0000000..d9ef13c --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/incr.2bk @@ -0,0 +1,9 @@ +tst/incr.c:1: warning: missing return value +tst/incr.c:6: warning: expression with no effect elided +tst/incr.c:6: warning: expression with no effect elided +tst/incr.c:11: warning: missing return value +tst/incr.c:16: warning: expression with no effect elided +tst/incr.c:16: warning: expression with no effect elided +tst/incr.c:21: warning: missing return value +tst/incr.c:30: warning: missing return value +tst/incr.c:39: warning: missing return value diff --git a/code/tools/lcc/alpha/osf/tst/incr.sbk b/code/tools/lcc/alpha/osf/tst/incr.sbk new file mode 100644 index 0000000..3386683 --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/incr.sbk @@ -0,0 +1,151 @@ +.globl main +.text +.text +.ent main +main: +ldgp $gp,0($27) +lda $sp,-64($sp) +.frame $sp,64,$26,48 +.prologue 1 +mov $31,$0 +L.1: +lda $sp,64($sp) +ret +.end main +.globl memchar +.text +.ent memchar +memchar: +ldgp $gp,0($27) +lda $sp,-96($sp) +.mask 0x5000000,-88 +.frame $sp,96,$26,48 +stq $24,0($sp) +stq $26,8($sp) +.prologue 1 +ldq $27,-72+96($sp) +lda $25,1($27) +stq $25,-72+96($sp) +ldb $27,($27) +stb $27,-57+96($sp) +ldq $27,-72+96($sp) +lda $27,1($27) +stq $27,-72+96($sp) +ldb $27,($27) +stb $27,-57+96($sp) +ldq $27,-72+96($sp) +lda $25,-1($27) +stq $25,-72+96($sp) +ldb $27,($27) +stb $27,-57+96($sp) +ldq $27,-72+96($sp) +lda $27,-1($27) +stq $27,-72+96($sp) +ldb $27,($27) +stb $27,-57+96($sp) +mov $31,$0 +L.2: +ldq $24,0($sp) +ldq $26,8($sp) +lda $sp,96($sp) +ret +.end memchar +.globl memint +.text +.ent memint +memint: +ldgp $gp,0($27) +lda $sp,-80($sp) +.frame $sp,80,$26,48 +.prologue 1 +ldq $27,-72+80($sp) +lda $25,4($27) +stq $25,-72+80($sp) +ldl $27,($27) +stl $27,-60+80($sp) +ldq $27,-72+80($sp) +lda $27,4($27) +stq $27,-72+80($sp) +ldl $27,($27) +stl $27,-60+80($sp) +ldq $27,-72+80($sp) +lda $25,-4($27) +stq $25,-72+80($sp) +ldl $27,($27) +stl $27,-60+80($sp) +ldq $27,-72+80($sp) +lda $27,-4($27) +stq $27,-72+80($sp) +ldl $27,($27) +stl $27,-60+80($sp) +mov $31,$0 +L.3: +lda $sp,80($sp) +ret +.end memint +.globl regchar +.text +.ent regchar +regchar: +ldgp $gp,0($27) +lda $sp,-96($sp) +.mask 0x5006000,-72 +.frame $sp,96,$26,48 +stq $13,0($sp) +stq $14,8($sp) +stq $24,16($sp) +stq $26,24($sp) +.prologue 1 +mov $13,$27 +lda $13,1($27) +ldb $14,($27) +lda $27,1($13) +mov $27,$13 +ldb $14,($27) +mov $13,$27 +lda $13,-1($27) +ldb $14,($27) +lda $27,-1($13) +mov $27,$13 +ldb $14,($27) +mov $31,$0 +L.4: +ldq $13,0($sp) +ldq $14,8($sp) +ldq $24,16($sp) +ldq $26,24($sp) +lda $sp,96($sp) +ret +.end regchar +.globl regint +.text +.ent regint +regint: +ldgp $gp,0($27) +lda $sp,-80($sp) +.mask 0x4006000,-64 +.frame $sp,80,$26,48 +stq $13,0($sp) +stq $14,8($sp) +stq $26,16($sp) +.prologue 1 +mov $13,$27 +lda $13,4($27) +ldl $14,($27) +lda $27,4($13) +mov $27,$13 +ldl $14,($27) +mov $13,$27 +lda $13,-4($27) +ldl $14,($27) +lda $27,-4($13) +mov $27,$13 +ldl $14,($27) +mov $31,$0 +L.5: +ldq $13,0($sp) +ldq $14,8($sp) +ldq $26,16($sp) +lda $sp,80($sp) +ret +.end regint diff --git a/code/tools/lcc/alpha/osf/tst/init.1bk b/code/tools/lcc/alpha/osf/tst/init.1bk new file mode 100644 index 0000000..77aff09 --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/init.1bk @@ -0,0 +1,16 @@ + 1 2 3 4 + 5 6 + 7 +if +for +else +while +1 2 3 if +4 5 0 for +6 7 8 else +9 10 11 while +1 2 3 if +4 5 0 for +6 7 8 else +9 10 11 while +0 0 0 diff --git a/code/tools/lcc/alpha/osf/tst/init.2bk b/code/tools/lcc/alpha/osf/tst/init.2bk new file mode 100644 index 0000000..aafe415 --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/init.2bk @@ -0,0 +1,3 @@ +tst/init.c:36: warning: missing return value +tst/init.c:49: warning: missing return value +tst/init.c:59: warning: missing return value diff --git a/code/tools/lcc/alpha/osf/tst/init.sbk b/code/tools/lcc/alpha/osf/tst/init.sbk new file mode 100644 index 0000000..c45840c --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/init.sbk @@ -0,0 +1,333 @@ +.sdata +.globl words +.align 2 +words: +.long 0x1 +.long 0x2 +.long 0x3 +.byte 105 +.byte 102 +.byte 0 +.space 3 +.space 2 +.long 0x4 +.long 0x5 +.space 4 +.byte 102 +.byte 111 +.byte 114 +.space 3 +.space 2 +.long 0x6 +.long 0x7 +.long 0x8 +.byte 101 +.byte 108 +.byte 115 +.byte 101 +.byte 0 +.space 1 +.space 2 +.long 0x9 +.long 0xa +.long 0xb +.byte 119 +.byte 104 +.byte 105 +.byte 108 +.byte 101 +.space 1 +.space 2 +.long 0x0 +.space 8 +.space 8 +.globl wordlist +.align 3 +wordlist: +.quad words +.globl x +.align 2 +x: +.long 0x1 +.long 0x2 +.long 0x3 +.long 0x4 +.long 0x0 +.long 0x5 +.long 0x6 +.space 12 +.long 0x7 +.space 16 +.globl y +.align 3 +y: +.quad x +.quad x+20 +.quad x+40 +.quad 0x0 +.globl main +.text +.text +.ent main +main: +ldgp $gp,0($27) +lda $sp,-80($sp) +.mask 0x4006000,-64 +.frame $sp,80,$26,48 +stq $13,0($sp) +stq $14,8($sp) +stq $26,16($sp) +.prologue 1 +mov $31,$13 +br L.8 +L.5: +mov $31,$14 +br L.12 +L.9: +lda $16,L.13 +sll $14,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,2,$27 +sll $13,8*(8-4),$25 +sra $25,8*(8-4),$25 +sll $25,3,$25 +ldq $25,y($25) +addq $27,$25,$27 +ldl $17,($27) +jsr $26,printf +ldgp $gp,0($26) +L.10: +lda $14,1($14) +L.12: +sll $14,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,2,$27 +sll $13,8*(8-4),$25 +sra $25,8*(8-4),$25 +sll $25,3,$25 +ldq $25,y($25) +addq $27,$25,$27 +ldl $27,($27) +cmpeq $27,$31,$23 +beq $23,L.9 +lda $16,L.14 +jsr $26,printf +ldgp $gp,0($26) +L.6: +lda $13,1($13) +L.8: +sll $13,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,3,$27 +ldq $27,y($27) +cmpeq $27,$31,$23 +beq $23,L.5 +jsr $26,f +ldgp $gp,0($26) +ldq $16,wordlist +jsr $26,g +ldgp $gp,0($26) +mov $31,$0 +L.4: +ldq $13,0($sp) +ldq $14,8($sp) +ldq $26,16($sp) +lda $sp,80($sp) +ret +.end main +.sdata +.align 3 +L.16: +.quad L.17 +.quad L.18 +.quad L.19 +.quad L.20 +.quad 0x0 +.globl f +.text +.text +.ent f +f: +ldgp $gp,0($27) +lda $sp,-80($sp) +.mask 0x4004000,-72 +.frame $sp,80,$26,48 +stq $14,0($sp) +stq $26,8($sp) +.prologue 1 +lda $14,L.16 +br L.24 +L.21: +lda $16,L.25 +ldq $17,($14) +jsr $26,printf +ldgp $gp,0($26) +L.22: +lda $14,8($14) +L.24: +ldq $27,($14) +cmpeq $27,$31,$23 +beq $23,L.21 +mov $31,$0 +L.15: +ldq $14,0($sp) +ldq $26,8($sp) +lda $sp,80($sp) +ret +.end f +.globl g +.text +.ent g +g: +ldgp $gp,0($27) +lda $sp,-80($sp) +.mask 0x4006000,-64 +.frame $sp,80,$26,48 +stq $13,0($sp) +stq $14,8($sp) +stq $26,16($sp) +mov $16,$14 +.prologue 1 +br L.30 +L.27: +mov $31,$13 +br L.34 +L.31: +lda $16,L.35 +sll $13,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,2,$27 +addq $27,$14,$27 +ldl $17,($27) +jsr $26,printf +ldgp $gp,0($26) +L.32: +lda $13,1($13) +L.34: +mov $13,$27 +lda $25,3 +cmpult $27,$25,$23 +bne $23,L.31 +lda $16,L.25 +lda $17,12($14) +jsr $26,printf +ldgp $gp,0($26) +L.28: +lda $14,20($14) +L.30: +ldl $27,($14) +cmpeq $27,$31,$23 +beq $23,L.27 +jsr $26,h +ldgp $gp,0($26) +mov $31,$0 +L.26: +ldq $13,0($sp) +ldq $14,8($sp) +ldq $26,16($sp) +lda $sp,80($sp) +ret +.end g +.globl h +.text +.ent h +h: +ldgp $gp,0($27) +lda $sp,-80($sp) +.mask 0x4004000,-72 +.frame $sp,80,$26,48 +stq $14,0($sp) +stq $26,8($sp) +.prologue 1 +mov $31,$14 +br L.40 +L.37: +lda $16,L.41 +lda $27,20 +sll $14,8*(8-4),$25 +sra $25,8*(8-4),$25 +mulq $27,$25,$27 +ldl $17,words($27) +ldl $18,words+4($27) +ldl $19,words+8($27) +lda $20,words+12($27) +jsr $26,printf +ldgp $gp,0($26) +L.38: +lda $14,1($14) +L.40: +mov $14,$27 +lda $25,5 +cmpult $27,$25,$23 +bne $23,L.37 +mov $31,$0 +L.36: +ldq $14,0($sp) +ldq $26,8($sp) +lda $sp,80($sp) +ret +.end h +.rdata +.align 0 +L.41: +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 0 +L.35: +.byte 37 +.byte 100 +.byte 32 +.byte 0 +.align 0 +L.25: +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 0 +L.20: +.byte 119 +.byte 104 +.byte 105 +.byte 108 +.byte 101 +.byte 0 +.align 0 +L.19: +.byte 101 +.byte 108 +.byte 115 +.byte 101 +.byte 0 +.align 0 +L.18: +.byte 102 +.byte 111 +.byte 114 +.byte 0 +.align 0 +L.17: +.byte 105 +.byte 102 +.byte 0 +.align 0 +L.14: +.byte 10 +.byte 0 +.align 0 +L.13: +.byte 32 +.byte 37 +.byte 100 +.byte 0 diff --git a/code/tools/lcc/alpha/osf/tst/limits.1bk b/code/tools/lcc/alpha/osf/tst/limits.1bk new file mode 100644 index 0000000..2b1efe5 --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/limits.1bk @@ -0,0 +1,14 @@ +UCHAR_MAX: 000000ff=255 +USHRT_MAX: 0000ffff=65535 +UINT_MAX: ffffffff=-1 +ULONG_MAX: ffffffffffffffff=-1 +CHAR_MAX: 0000007f=127 +SCHAR_MAX: 0000007f=127 +SHRT_MAX: 00007fff=32767 +INT_MAX: 7fffffff=2147483647 +LONG_MAX: 7fffffffffffffff=9223372036854775807 +CHAR_MIN: ffffff80=-128 +SCHAR_MIN: ffffff80=-128 +SHRT_MIN: ffff8000=-32768 +INT_MIN: 80000000=-2147483648 +LONG_MIN: 8000000000000000=-9223372036854775808 diff --git a/code/tools/lcc/alpha/osf/tst/limits.2bk b/code/tools/lcc/alpha/osf/tst/limits.2bk new file mode 100644 index 0000000..e69de29 diff --git a/code/tools/lcc/alpha/osf/tst/limits.sbk b/code/tools/lcc/alpha/osf/tst/limits.sbk new file mode 100644 index 0000000..3e5e644 --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/limits.sbk @@ -0,0 +1,405 @@ +.globl main +.text +.text +.ent main +main: +ldgp $gp,0($27) +lda $sp,-64($sp) +.mask 0x4000000,-64 +.frame $sp,64,$26,48 +stq $26,0($sp) +.prologue 1 +lda $16,L.2 +lda $27,255 +mov $27,$17 +mov $27,$18 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.3 +lda $27,65535 +mov $27,$17 +mov $27,$18 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.4 +lda $27,0xffffffff +mov $27,$17 +mov $27,$18 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.5 +lda $27,0xffffffffffffffff +mov $27,$17 +mov $27,$18 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.6 +lda $27,127 +mov $27,$17 +mov $27,$18 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.7 +lda $27,127 +mov $27,$17 +mov $27,$18 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.8 +lda $27,32767 +mov $27,$17 +mov $27,$18 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.9 +lda $27,2147483647 +mov $27,$17 +mov $27,$18 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.10 +lda $27,9223372036854775807 +mov $27,$17 +mov $27,$18 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.11 +lda $27,-128 +mov $27,$17 +mov $27,$18 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.12 +lda $27,-128 +mov $27,$17 +mov $27,$18 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.13 +lda $27,-32768 +mov $27,$17 +mov $27,$18 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.14 +lda $27,-2147483648 +mov $27,$17 +mov $27,$18 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.15 +lda $27,-9223372036854775808 +mov $27,$17 +mov $27,$18 +jsr $26,printf +ldgp $gp,0($26) +mov $31,$0 +L.1: +ldq $26,0($sp) +lda $sp,64($sp) +ret +.end main +.rdata +.align 0 +L.15: +.byte 76 +.byte 79 +.byte 78 +.byte 71 +.byte 95 +.byte 77 +.byte 73 +.byte 78 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 108 +.byte 120 +.byte 61 +.byte 37 +.byte 108 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.14: +.byte 73 +.byte 78 +.byte 84 +.byte 95 +.byte 77 +.byte 73 +.byte 78 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.13: +.byte 83 +.byte 72 +.byte 82 +.byte 84 +.byte 95 +.byte 77 +.byte 73 +.byte 78 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.12: +.byte 83 +.byte 67 +.byte 72 +.byte 65 +.byte 82 +.byte 95 +.byte 77 +.byte 73 +.byte 78 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.11: +.byte 67 +.byte 72 +.byte 65 +.byte 82 +.byte 95 +.byte 77 +.byte 73 +.byte 78 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.10: +.byte 76 +.byte 79 +.byte 78 +.byte 71 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 108 +.byte 120 +.byte 61 +.byte 37 +.byte 108 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.9: +.byte 73 +.byte 78 +.byte 84 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.8: +.byte 83 +.byte 72 +.byte 82 +.byte 84 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.7: +.byte 83 +.byte 67 +.byte 72 +.byte 65 +.byte 82 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.6: +.byte 67 +.byte 72 +.byte 65 +.byte 82 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.5: +.byte 85 +.byte 76 +.byte 79 +.byte 78 +.byte 71 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 108 +.byte 120 +.byte 61 +.byte 37 +.byte 108 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.4: +.byte 85 +.byte 73 +.byte 78 +.byte 84 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.3: +.byte 85 +.byte 83 +.byte 72 +.byte 82 +.byte 84 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.2: +.byte 85 +.byte 67 +.byte 72 +.byte 65 +.byte 82 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 diff --git a/code/tools/lcc/alpha/osf/tst/paranoia.1bk b/code/tools/lcc/alpha/osf/tst/paranoia.1bk new file mode 100644 index 0000000..d947458 --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/paranoia.1bk @@ -0,0 +1,195 @@ +Lest this program stop prematurely, i.e. before displaying + + `END OF TEST', + +try to persuade the computer NOT to terminate execution when an +error like Over/Underflow or Division by Zero occurs, but rather +to persevere with a surrogate value after, perhaps, displaying some +warning. If persuasion avails naught, don't despair but run this +program anyway to see how many milestones it passes, and then +amend it to make further progress. + +Answer questions with Y, y, N or n (unless otherwise indicated). + + +Diagnosis resumes after milestone Number 0 Page: 1 + +Users are invited to help debug and augment this program so it will +cope with unanticipated and newly uncovered arithmetic pathologies. + +Please send suggestions and interesting results to + Richard Karpinski + Computer Center U-76 + University of California + San Francisco, CA 94143-0704, USA + +In doing so, please include the following information: + Precision: double; + Version: 10 February 1989; + Computer: + + Compiler: + + Optimization level: + + Other relevant compiler options: + +Diagnosis resumes after milestone Number 1 Page: 2 + +Running this program should reveal these characteristics: + Radix = 1, 2, 4, 8, 10, 16, 100, 256 ... + Precision = number of significant digits carried. + U2 = Radix/Radix^Precision = One Ulp + (OneUlpnit in the Last Place) of 1.000xxx . + U1 = 1/Radix^Precision = One Ulp of numbers a little less than 1.0 . + Adequacy of guard digits for Mult., Div. and Subt. + Whether arithmetic is chopped, correctly rounded, or something else + for Mult., Div., Add/Subt. and Sqrt. + Whether a Sticky Bit used correctly for rounding. + UnderflowThreshold = an underflow threshold. + E0 and PseudoZero tell whether underflow is abrupt, gradual, or fuzzy. + V = an overflow threshold, roughly. + V0 tells, roughly, whether Infinity is represented. + Comparisions are checked for consistency with subtraction + and for contamination with pseudo-zeros. + Sqrt is tested. Y^X is not tested. + Extra-precise subexpressions are revealed but NOT YET tested. + Decimal-Binary conversion is NOT YET tested for accuracy. + +Diagnosis resumes after milestone Number 2 Page: 3 + +The program attempts to discriminate among + FLAWs, like lack of a sticky bit, + Serious DEFECTs, like lack of a guard digit, and + FAILUREs, like 2+2 == 5 . +Failures may confound subsequent diagnoses. + +The diagnostic capabilities of this program go beyond an earlier +program called `MACHAR', which can be found at the end of the +book `Software Manual for the Elementary Functions' (1980) by +W. J. Cody and W. Waite. Although both programs try to discover +the Radix, Precision and range (over/underflow thresholds) +of the arithmetic, this program tries to cope with a wider variety +of pathologies, and to say how well the arithmetic is implemented. + +The program is based upon a conventional radix representation for +floating-point numbers, but also allows logarithmic encoding +as used by certain early WANG machines. + +BASIC version of this program (C) 1983 by Prof. W. M. Kahan; +see source comments for more history. + +Diagnosis resumes after milestone Number 3 Page: 4 + +Program is now RUNNING tests on small integers: +-1, 0, 1/2, 1, 2, 3, 4, 5, 9, 27, 32 & 240 are O.K. + +Searching for Radix and Precision. +Radix = 2.000000 . +Closest relative separation found is U1 = 1.1102230e-16 . + +Recalculating radix and precision + confirms closest relative separation U1 . +Radix confirmed. +The number of significant digits of the Radix is 53.000000 . + +Diagnosis resumes after milestone Number 30 Page: 5 + +Subtraction appears to be normalized, as it should be. +Checking for guard digit in *, /, and -. + *, /, and - appear to have guard digits, as they should. + +Diagnosis resumes after milestone Number 40 Page: 6 + +Checking rounding on multiply, divide and add/subtract. +Multiplication appears to round correctly. +Division appears to round correctly. +Addition/Subtraction appears to round correctly. +Checking for sticky bit. +Sticky bit apparently used correctly. + +Does Multiplication commute? Testing on 20 random pairs. + No failures found in 20 integer pairs. + +Running test of square root(x). +Testing if sqrt(X * X) == X for 20 Integers X. +Test for sqrt monotonicity. +sqrt has passed a test for Monotonicity. +Testing whether sqrt is rounded or chopped. +Square root appears to be correctly rounded. + +Diagnosis resumes after milestone Number 90 Page: 7 + +Testing powers Z^i for small Integers Z and i. +... no discrepancis found. + +Seeking Underflow thresholds UfThold and E0. +Smallest strictly positive number found is E0 = 2.22507e-308 . +Since comparison denies Z = 0, evaluating (Z + Z) / Z should be safe. +What the machine gets for (Z + Z) / Z is 2.00000000000000000e+00 . +This is O.K., provided Over/Underflow has NOT just been signaled. + +Diagnosis resumes after milestone Number 120 Page: 8 + + +FLAW: X = 3.05947655544740190e-308 + is not equal to Z = 2.22507385850720140e-308 . +yet X - Z yields 0.00000000000000000e+00 . + Should this NOT signal Underflow, this is a SERIOUS DEFECT +that causes confusion when innocent statements like + if (X == Z) ... else ... (f(X) - f(Z)) / (X - Z) ... +encounter Division by Zero although actually +X / Z = 1 + 0.375 . +The Underflow threshold is 2.22507385850720140e-308, below which +calculation may suffer larger Relative error than merely roundoff. +Since underflow occurs below the threshold +UfThold = (2.00000000000000000e+00) ^ (-1.02200000000000000e+03) +only underflow should afflict the expression + (2.00000000000000000e+00) ^ (-1.02200000000000000e+03); +actually calculating yields: 0.00000000000000000e+00 . +This computed value is O.K. + +Testing X^((X + 1) / (X - 1)) vs. exp(2) = 7.38905609893065220e+00 as X -> 1. +Accuracy seems adequate. +Testing powers Z^Q at four nearly extreme values. + ... no discrepancies found. + + +Diagnosis resumes after milestone Number 160 Page: 9 + +Searching for Overflow threshold: +This may generate an error. + +* * * FLOATING-POINT ERROR * * * +Can `Z = -Y' overflow? +Trying it on Y = -8.98846567431157950e+307 . +Seems O.K. +Overflow threshold is V = 1.79769313486231570e+308 . +There is no saturation value because the system traps on overflow. +No Overflow should be signaled for V * 1 = 1.79769313486231570e+308 + nor for V / 1 = 1.79769313486231570e+308 . +Any overflow signal separating this * from the one +above is a DEFECT. + + +Diagnosis resumes after milestone Number 190 Page: 10 + + +What message and/or values does Division by Zero produce? + Trying to compute 1 / 0 produces ... +* * * FLOATING-POINT ERROR * * * + + Trying to compute 0 / 0 produces ... +* * * FLOATING-POINT ERROR * * * + +Diagnosis resumes after milestone Number 220 Page: 11 + + + +No failures, defects nor flaws have been discovered. +Rounding appears to conform to the proposed IEEE standard P754, +except for possibly Double Rounding during Gradual Underflow. +The arithmetic diagnosed appears to be Excellent! + +A total of 3 floating point exceptions were registered. +END OF TEST. diff --git a/code/tools/lcc/alpha/osf/tst/paranoia.2bk b/code/tools/lcc/alpha/osf/tst/paranoia.2bk new file mode 100644 index 0000000..2718174 --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/paranoia.2bk @@ -0,0 +1,16 @@ +tst/paranoia.c:1867: warning: missing return value +tst/paranoia.c:1874: warning: missing return value +tst/paranoia.c:1884: warning: missing return value +tst/paranoia.c:1924: warning: missing return value +tst/paranoia.c:1939: warning: missing return value +tst/paranoia.c:1956: warning: missing return value +tst/paranoia.c:1975: warning: missing return value +tst/paranoia.c:1988: warning: missing return value +tst/paranoia.c:1995: warning: missing return value +tst/paranoia.c:2055: warning: missing return value +tst/paranoia.c:2062: warning: missing return value +tst/paranoia.c:2070: warning: missing return value +tst/paranoia.c:2087: warning: missing return value +tst/paranoia.c:2115: warning: missing return value +tst/paranoia.c:2144: warning: missing return value +tst/paranoia.c:2173: warning: missing return value diff --git a/code/tools/lcc/alpha/osf/tst/paranoia.sbk b/code/tools/lcc/alpha/osf/tst/paranoia.sbk new file mode 100644 index 0000000..faa3dc5 --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/paranoia.sbk @@ -0,0 +1,19291 @@ +.sdata +.globl Zero +.align 3 +Zero: +.long 0x0 +.long 0x0 +.globl Half +.align 3 +Half: +.long 0x0 +.long 0x3fe00000 +.globl One +.align 3 +One: +.long 0x0 +.long 0x3ff00000 +.globl Two +.align 3 +Two: +.long 0x0 +.long 0x40000000 +.globl Three +.align 3 +Three: +.long 0x0 +.long 0x40080000 +.globl Four +.align 3 +Four: +.long 0x0 +.long 0x40100000 +.globl Five +.align 3 +Five: +.long 0x0 +.long 0x40140000 +.globl Eight +.align 3 +Eight: +.long 0x0 +.long 0x40200000 +.globl Nine +.align 3 +Nine: +.long 0x0 +.long 0x40220000 +.globl TwentySeven +.align 3 +TwentySeven: +.long 0x0 +.long 0x403b0000 +.globl ThirtyTwo +.align 3 +ThirtyTwo: +.long 0x0 +.long 0x40400000 +.globl TwoForty +.align 3 +TwoForty: +.long 0x0 +.long 0x406e0000 +.globl MinusOne +.align 3 +MinusOne: +.long 0x0 +.long 0xbff00000 +.globl OneAndHalf +.align 3 +OneAndHalf: +.long 0x0 +.long 0x3ff80000 +.globl NoTrials +.align 2 +NoTrials: +.long 0x14 +.globl sigfpe +.text +.text +.ent sigfpe +sigfpe: +ldgp $gp,0($27) +lda $sp,-64($sp) +.mask 0x4000000,-64 +.frame $sp,64,$26,48 +stq $26,0($sp) +stq $16,16($sp) +.prologue 1 +ldl $27,fpecount +lda $27,1($27) +stl $27,fpecount +lda $16,L.3 +jsr $26,printf +ldgp $gp,0($26) +lda $16,_iob+56 +jsr $26,fflush +ldgp $gp,0($26) +ldq $27,sigsave +cmpeq $27,$31,$23 +bne $23,L.5 +lda $16,8 +ldq $17,sigsave +jsr $26,signal +ldgp $gp,0($26) +stq $31,sigsave +lda $16,ovfl_buf +lda $17,1 +jsr $26,longjmp +ldgp $gp,0($26) +L.5: +jsr $26,abort +ldgp $gp,0($26) +L.2: +ldq $26,0($sp) +lda $sp,64($sp) +ret +.end sigfpe +.sdata +.align 3 +L.756: +.quad L.757 +.quad L.758 +.quad L.759 +.quad L.760 +.globl main +.text +.text +.ent main +main: +ldgp $gp,0($27) +lda $sp,-256($sp) +.mask 0x4007e00,-208 +.frame $sp,256,$26,48 +stq $9,0($sp) +stq $10,8($sp) +stq $11,16($sp) +stq $12,24($sp) +stq $13,32($sp) +stq $14,40($sp) +stq $26,48($sp) +.prologue 1 +ldt $f30,L.8 +stt $f30,Zero +ldt $f30,L.9 +stt $f30,One +ldt $f30,One +addt $f30,$f30,$f29 +stt $f29,Two +ldt $f29,Two +addt $f29,$f30,$f28 +stt $f28,Three +ldt $f28,Three +addt $f28,$f30,$f27 +stt $f27,Four +ldt $f27,Four +addt $f27,$f30,$f26 +stt $f26,Five +addt $f27,$f27,$f26 +stt $f26,Eight +mult $f28,$f28,$f26 +stt $f26,Nine +ldt $f26,Nine +mult $f26,$f28,$f26 +stt $f26,TwentySeven +ldt $f26,Eight +mult $f27,$f26,$f26 +stt $f26,ThirtyTwo +ldt $f26,Five +mult $f27,$f26,$f26 +mult $f26,$f28,$f28 +mult $f28,$f27,$f28 +stt $f28,TwoForty +negt $f30,$f28 +stt $f28,MinusOne +divt $f30,$f29,$f29 +stt $f29,Half +ldt $f29,Half +addt $f30,$f29,$f30 +stt $f30,OneAndHalf +stl $31,ErrCnt +stl $31,ErrCnt+4 +stl $31,ErrCnt+8 +stl $31,ErrCnt+12 +lda $27,1 +stl $27,PageNo +stl $31,Milestone +lda $16,8 +lda $17,sigfpe +jsr $26,signal +ldgp $gp,0($26) +jsr $26,Instructions +ldgp $gp,0($26) +jsr $26,Pause +ldgp $gp,0($26) +jsr $26,Heading +ldgp $gp,0($26) +jsr $26,Pause +ldgp $gp,0($26) +jsr $26,Characteristics +ldgp $gp,0($26) +jsr $26,Pause +ldgp $gp,0($26) +jsr $26,History +ldgp $gp,0($26) +jsr $26,Pause +ldgp $gp,0($26) +lda $27,7 +stl $27,Milestone +lda $16,L.13 +jsr $26,printf +ldgp $gp,0($26) +mov $31,$16 +ldt $f30,Zero +addt $f30,$f30,$f29 +cmpteq $f29,$f30,$f1 +fbeq $f1,L.16 +ldt $f29,One +subt $f29,$f29,$f28 +cmpteq $f28,$f30,$f1 +fbeq $f1,L.16 +cmptle $f29,$f30,$f1 +fbne $f1,L.16 +addt $f29,$f29,$f30 +ldt $f29,Two +cmpteq $f30,$f29,$f1 +fbeq $f1,L.16 +lda $14,1 +br L.17 +L.16: +mov $31,$14 +L.17: +mov $14,$17 +lda $18,L.15 +jsr $26,TstCond +ldgp $gp,0($26) +ldt $f30,Zero +negt $f30,$f30 +stt $f30,Z +ldt $f30,Z +ldt $f29,L.8 +cmpteq $f30,$f29,$f1 +fbne $f1,L.18 +ldl $27,ErrCnt +lda $27,1($27) +stl $27,ErrCnt +lda $16,L.20 +jsr $26,printf +ldgp $gp,0($26) +ldt $f30,L.21 +stt $f30,U1 +ldt $f30,L.9 +stt $f30,Radix +jsr $26,TstPtUf +ldgp $gp,0($26) +L.18: +mov $31,$16 +ldt $f30,Three +ldt $f29,Two +ldt $f28,One +addt $f29,$f28,$f27 +cmpteq $f30,$f27,$f1 +fbeq $f1,L.24 +ldt $f27,Four +addt $f30,$f28,$f26 +cmpteq $f27,$f26,$f1 +fbeq $f1,L.24 +ldt $f26,Zero +negt $f29,$f25 +mult $f29,$f25,$f29 +addt $f27,$f29,$f29 +cmpteq $f29,$f26,$f1 +fbeq $f1,L.24 +subt $f27,$f30,$f30 +subt $f30,$f28,$f30 +cmpteq $f30,$f26,$f1 +fbeq $f1,L.24 +lda $13,1 +br L.25 +L.24: +mov $31,$13 +L.25: +mov $13,$17 +lda $18,L.23 +jsr $26,TstCond +ldgp $gp,0($26) +ldt $f30,MinusOne +stt $f30,-64+256($sp) +ldt $f29,One +ldt $f28,L.8 +subt $f28,$f29,$f28 +cmpteq $f30,$f28,$f1 +fbeq $f1,L.28 +ldt $f28,Zero +addt $f30,$f29,$f27 +cmpteq $f27,$f28,$f1 +fbeq $f1,L.28 +addt $f29,$f30,$f27 +cmpteq $f27,$f28,$f1 +fbeq $f1,L.28 +fmov $f29,$f16 +jsr $26,fabs +ldgp $gp,0($26) +ldt $f29,Zero +ldt $f28,-64+256($sp) +addt $f28,$f0,$f30 +cmpteq $f30,$f29,$f1 +fbeq $f1,L.28 +ldt $f30,MinusOne +mult $f30,$f30,$f28 +addt $f30,$f28,$f30 +cmpteq $f30,$f29,$f1 +fbeq $f1,L.28 +lda $12,1 +br L.29 +L.28: +mov $31,$12 +L.29: +mov $31,$16 +mov $12,$17 +lda $18,L.27 +jsr $26,TstCond +ldgp $gp,0($26) +mov $31,$16 +ldt $f30,Half +ldt $f29,MinusOne +addt $f30,$f29,$f29 +addt $f29,$f30,$f30 +ldt $f29,Zero +cmpteq $f30,$f29,$f1 +fbeq $f1,L.32 +lda $11,1 +br L.33 +L.32: +mov $31,$11 +L.33: +mov $11,$17 +lda $18,L.31 +jsr $26,TstCond +ldgp $gp,0($26) +lda $27,10 +stl $27,Milestone +mov $31,$16 +ldt $f30,Nine +ldt $f29,Three +mult $f29,$f29,$f28 +cmpteq $f30,$f28,$f1 +fbeq $f1,L.36 +ldt $f28,TwentySeven +mult $f30,$f29,$f30 +cmpteq $f28,$f30,$f1 +fbeq $f1,L.36 +ldt $f30,Eight +ldt $f29,Four +addt $f29,$f29,$f27 +cmpteq $f30,$f27,$f1 +fbeq $f1,L.36 +ldt $f27,ThirtyTwo +mult $f30,$f29,$f30 +cmpteq $f27,$f30,$f1 +fbeq $f1,L.36 +subt $f27,$f28,$f30 +subt $f30,$f29,$f30 +ldt $f29,One +subt $f30,$f29,$f30 +ldt $f29,Zero +cmpteq $f30,$f29,$f1 +fbeq $f1,L.36 +lda $10,1 +br L.37 +L.36: +mov $31,$10 +L.37: +mov $10,$17 +lda $18,L.35 +jsr $26,TstCond +ldgp $gp,0($26) +mov $31,$16 +ldt $f30,Five +ldt $f29,Four +ldt $f28,One +addt $f29,$f28,$f28 +cmpteq $f30,$f28,$f1 +fbeq $f1,L.40 +ldt $f28,TwoForty +ldt $f27,Three +mult $f29,$f30,$f26 +mult $f26,$f27,$f26 +mult $f26,$f29,$f26 +cmpteq $f28,$f26,$f1 +fbeq $f1,L.40 +ldt $f26,Zero +divt $f28,$f27,$f25 +mult $f29,$f29,$f24 +mult $f24,$f30,$f24 +subt $f25,$f24,$f25 +cmpteq $f25,$f26,$f1 +fbeq $f1,L.40 +divt $f28,$f29,$f25 +mult $f30,$f27,$f24 +mult $f24,$f29,$f24 +subt $f25,$f24,$f25 +cmpteq $f25,$f26,$f1 +fbeq $f1,L.40 +divt $f28,$f30,$f30 +mult $f29,$f27,$f28 +mult $f28,$f29,$f29 +subt $f30,$f29,$f30 +cmpteq $f30,$f26,$f1 +fbeq $f1,L.40 +lda $9,1 +br L.41 +L.40: +mov $31,$9 +L.41: +mov $9,$17 +lda $18,L.39 +jsr $26,TstCond +ldgp $gp,0($26) +ldl $27,ErrCnt +cmpeq $27,$31,$23 +beq $23,L.42 +lda $16,L.44 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.45 +jsr $26,printf +ldgp $gp,0($26) +L.42: +lda $16,L.46 +jsr $26,printf +ldgp $gp,0($26) +ldt $f30,One +stt $f30,W +L.47: +ldt $f30,W +addt $f30,$f30,$f30 +stt $f30,W +ldt $f30,W +ldt $f29,One +addt $f30,$f29,$f28 +stt $f28,Y +ldt $f28,Y +subt $f28,$f30,$f30 +stt $f30,Z +ldt $f30,Z +subt $f30,$f29,$f30 +stt $f30,Y +L.48: +ldt $f16,Y +jsr $26,fabs +ldgp $gp,0($26) +ldt $f29,MinusOne +addt $f29,$f0,$f30 +ldt $f29,Zero +cmptlt $f30,$f29,$f1 +fbne $f1,L.47 +ldt $f30,Zero +stt $f30,Precision +ldt $f30,One +stt $f30,Y +L.50: +ldt $f30,W +ldt $f29,Y +addt $f30,$f29,$f28 +stt $f28,Radix +addt $f29,$f29,$f29 +stt $f29,Y +ldt $f29,Radix +subt $f29,$f30,$f30 +stt $f30,Radix +L.51: +ldt $f30,Radix +ldt $f29,Zero +cmpteq $f30,$f29,$f1 +fbne $f1,L.50 +ldt $f30,Radix +ldt $f29,Two +cmptlt $f30,$f29,$f1 +fbeq $f1,L.53 +ldt $f30,One +stt $f30,Radix +L.53: +lda $16,L.55 +ldt $f17,Radix +jsr $26,printf +ldgp $gp,0($26) +ldt $f30,Radix +ldt $f29,L.9 +cmpteq $f30,$f29,$f1 +fbne $f1,L.56 +ldt $f30,One +stt $f30,W +L.58: +ldt $f30,One +ldt $f29,Precision +addt $f29,$f30,$f29 +stt $f29,Precision +ldt $f29,W +ldt $f28,Radix +mult $f29,$f28,$f29 +stt $f29,W +ldt $f29,W +addt $f29,$f30,$f30 +stt $f30,Y +L.59: +ldt $f30,Y +ldt $f29,W +subt $f30,$f29,$f30 +ldt $f29,One +cmpteq $f30,$f29,$f1 +fbne $f1,L.58 +L.56: +ldt $f30,One +ldt $f29,W +divt $f30,$f29,$f30 +stt $f30,U1 +ldt $f30,U1 +ldt $f29,Radix +mult $f29,$f30,$f29 +stt $f29,U2 +lda $16,L.61 +fmov $f30,$f17 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.62 +jsr $26,printf +ldgp $gp,0($26) +ldt $f30,Radix +stt $f30,E0 +ldt $f30,U1 +stt $f30,E1 +ldt $f30,U2 +stt $f30,E9 +ldt $f30,Precision +stt $f30,E3 +ldt $f30,Four +ldt $f29,Three +divt $f30,$f29,$f30 +stt $f30,X +ldt $f30,X +ldt $f29,One +subt $f30,$f29,$f30 +stt $f30,Third +ldt $f30,Third +ldt $f29,Half +subt $f29,$f30,$f29 +stt $f29,F6 +ldt $f29,F6 +addt $f29,$f29,$f29 +stt $f29,X +ldt $f29,X +subt $f29,$f30,$f16 +jsr $26,fabs +ldgp $gp,0($26) +stt $f0,X +ldt $f30,X +ldt $f29,U2 +cmptlt $f30,$f29,$f1 +fbeq $f1,L.63 +ldt $f30,U2 +stt $f30,X +L.63: +L.65: +ldt $f30,X +stt $f30,U2 +ldt $f30,U2 +ldt $f29,Half +mult $f29,$f30,$f29 +ldt $f28,ThirtyTwo +mult $f28,$f30,$f28 +mult $f28,$f30,$f30 +addt $f29,$f30,$f30 +stt $f30,Y +ldt $f30,One +ldt $f29,Y +addt $f30,$f29,$f29 +stt $f29,Y +ldt $f29,Y +subt $f29,$f30,$f30 +stt $f30,X +L.66: +ldt $f30,X +ldt $f29,U2 +cmptle $f29,$f30,$f1 +fbne $f1,L.68 +ldt $f29,Zero +cmptle $f30,$f29,$f1 +fbeq $f1,L.65 +L.68: +ldt $f30,Two +ldt $f29,Three +divt $f30,$f29,$f30 +stt $f30,X +ldt $f30,Half +ldt $f29,X +subt $f29,$f30,$f29 +stt $f29,F6 +ldt $f29,F6 +addt $f29,$f29,$f28 +stt $f28,Third +ldt $f28,Third +subt $f28,$f30,$f30 +stt $f30,X +ldt $f30,X +addt $f30,$f29,$f16 +jsr $26,fabs +ldgp $gp,0($26) +stt $f0,X +ldt $f30,X +ldt $f29,U1 +cmptlt $f30,$f29,$f1 +fbeq $f1,L.69 +ldt $f30,U1 +stt $f30,X +L.69: +L.71: +ldt $f30,X +stt $f30,U1 +ldt $f30,Half +ldt $f29,U1 +mult $f30,$f29,$f28 +ldt $f27,ThirtyTwo +mult $f27,$f29,$f27 +mult $f27,$f29,$f29 +addt $f28,$f29,$f29 +stt $f29,Y +ldt $f29,Y +subt $f30,$f29,$f29 +stt $f29,Y +ldt $f29,Y +addt $f30,$f29,$f29 +stt $f29,X +ldt $f29,X +subt $f30,$f29,$f29 +stt $f29,Y +ldt $f29,Y +addt $f30,$f29,$f30 +stt $f30,X +L.72: +ldt $f30,X +ldt $f29,U1 +cmptle $f29,$f30,$f1 +fbne $f1,L.74 +ldt $f29,Zero +cmptle $f30,$f29,$f1 +fbeq $f1,L.71 +L.74: +ldt $f30,U1 +ldt $f29,E1 +cmpteq $f30,$f29,$f1 +fbeq $f1,L.75 +lda $16,L.77 +jsr $26,printf +ldgp $gp,0($26) +br L.76 +L.75: +lda $16,L.78 +ldt $f17,U1 +jsr $26,printf +ldgp $gp,0($26) +L.76: +ldt $f30,U1 +ldt $f29,One +divt $f29,$f30,$f29 +stt $f29,W +ldt $f29,Half +subt $f29,$f30,$f28 +addt $f28,$f29,$f29 +stt $f29,F9 +ldt $f29,U2 +divt $f29,$f30,$f30 +ldt $f29,L.79 +addt $f30,$f29,$f16 +jsr $26,floor +ldgp $gp,0($26) +stt $f0,Radix +ldt $f30,Radix +ldt $f29,E0 +cmpteq $f30,$f29,$f1 +fbeq $f1,L.80 +lda $16,L.82 +jsr $26,printf +ldgp $gp,0($26) +br L.81 +L.80: +lda $16,L.83 +ldt $f17,Radix +jsr $26,printf +ldgp $gp,0($26) +L.81: +lda $16,2 +ldt $f30,Eight +ldt $f29,Radix +addt $f30,$f30,$f30 +cmptle $f29,$f30,$f1 +fbeq $f1,L.86 +lda $27,1 +stl $27,-68+256($sp) +br L.87 +L.86: +stl $31,-68+256($sp) +L.87: +ldl $17,-68+256($sp) +lda $18,L.85 +jsr $26,TstCond +ldgp $gp,0($26) +lda $16,3 +ldt $f30,Radix +ldt $f29,Two +cmpteq $f30,$f29,$f1 +fbne $f1,L.93 +ldt $f29,L.94 +cmpteq $f30,$f29,$f1 +fbne $f1,L.93 +ldt $f29,One +cmpteq $f30,$f29,$f1 +fbeq $f1,L.90 +L.93: +lda $27,1 +stl $27,-72+256($sp) +br L.91 +L.90: +stl $31,-72+256($sp) +L.91: +ldl $17,-72+256($sp) +lda $18,L.89 +jsr $26,TstCond +ldgp $gp,0($26) +lda $27,20 +stl $27,Milestone +mov $31,$16 +ldt $f30,Half +ldt $f29,F9 +subt $f29,$f30,$f29 +cmptlt $f29,$f30,$f1 +fbeq $f1,L.97 +lda $27,1 +stl $27,-76+256($sp) +br L.98 +L.97: +stl $31,-76+256($sp) +L.98: +ldl $17,-76+256($sp) +lda $18,L.96 +jsr $26,TstCond +ldgp $gp,0($26) +ldt $f30,F9 +stt $f30,X +lda $27,1 +stl $27,I +ldt $f30,Half +ldt $f29,X +subt $f29,$f30,$f29 +stt $f29,Y +ldt $f29,Y +subt $f29,$f30,$f30 +stt $f30,Z +mov $31,$16 +ldt $f30,X +ldt $f29,One +cmpteq $f30,$f29,$f1 +fbeq $f1,L.103 +ldt $f30,Z +ldt $f29,Zero +cmpteq $f30,$f29,$f1 +fbeq $f1,L.101 +L.103: +lda $27,1 +stl $27,-80+256($sp) +br L.102 +L.101: +stl $31,-80+256($sp) +L.102: +ldl $17,-80+256($sp) +lda $18,L.100 +jsr $26,TstCond +ldgp $gp,0($26) +ldt $f30,One +ldt $f29,U2 +addt $f30,$f29,$f28 +stt $f28,X +stl $31,I +lda $27,25 +stl $27,Milestone +ldt $f28,Radix +subt $f28,$f30,$f27 +stt $f27,BMinusU2 +ldt $f27,BMinusU2 +subt $f27,$f29,$f29 +addt $f29,$f30,$f29 +stt $f29,BMinusU2 +cmpteq $f28,$f30,$f1 +fbne $f1,L.104 +ldt $f16,U1 +jsr $26,log +ldgp $gp,0($26) +fmov $f0,$f30 +stt $f30,-88+256($sp) +ldt $f16,Radix +jsr $26,log +ldgp $gp,0($26) +ldt $f29,TwoForty +negt $f29,$f29 +ldt $f28,-88+256($sp) +mult $f29,$f28,$f29 +divt $f29,$f0,$f30 +stt $f30,X +ldt $f30,Half +ldt $f29,X +addt $f30,$f29,$f16 +jsr $26,floor +ldgp $gp,0($26) +stt $f0,Y +ldt $f30,X +ldt $f29,Y +subt $f30,$f29,$f16 +jsr $26,fabs +ldgp $gp,0($26) +ldt $f29,Four +mult $f0,$f29,$f30 +ldt $f29,One +cmptlt $f30,$f29,$f1 +fbeq $f1,L.106 +ldt $f30,Y +stt $f30,X +L.106: +ldt $f30,X +ldt $f29,TwoForty +divt $f30,$f29,$f30 +stt $f30,Precision +ldt $f30,Half +ldt $f29,Precision +addt $f30,$f29,$f16 +jsr $26,floor +ldgp $gp,0($26) +stt $f0,Y +ldt $f30,Precision +ldt $f29,Y +subt $f30,$f29,$f16 +jsr $26,fabs +ldgp $gp,0($26) +ldt $f29,TwoForty +mult $f0,$f29,$f30 +ldt $f29,Half +cmptlt $f30,$f29,$f1 +fbeq $f1,L.108 +ldt $f30,Y +stt $f30,Precision +L.108: +L.104: +ldt $f30,Precision +stt $f30,-88+256($sp) +fmov $f30,$f16 +jsr $26,floor +ldgp $gp,0($26) +ldt $f29,-88+256($sp) +cmpteq $f29,$f0,$f1 +fbeq $f1,L.112 +ldt $f30,Radix +ldt $f29,One +cmpteq $f30,$f29,$f1 +fbeq $f1,L.110 +L.112: +lda $16,L.113 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.114 +jsr $26,printf +ldgp $gp,0($26) +L.110: +ldt $f30,Radix +ldt $f29,One +cmpteq $f30,$f29,$f1 +fbeq $f1,L.115 +lda $16,L.117 +jsr $26,printf +ldgp $gp,0($26) +br L.116 +L.115: +lda $16,L.118 +ldt $f17,Precision +jsr $26,printf +ldgp $gp,0($26) +L.116: +lda $16,1 +ldt $f30,Nine +ldt $f29,U2 +mult $f29,$f30,$f29 +mult $f29,$f30,$f30 +ldt $f29,TwoForty +mult $f30,$f29,$f30 +ldt $f29,One +cmptlt $f30,$f29,$f1 +fbeq $f1,L.121 +lda $27,1 +stl $27,-92+256($sp) +br L.122 +L.121: +stl $31,-92+256($sp) +L.122: +ldl $17,-92+256($sp) +lda $18,L.120 +jsr $26,TstCond +ldgp $gp,0($26) +lda $27,30 +stl $27,Milestone +ldt $f30,Four +ldt $f29,Three +ldt $f28,One +divt $f28,$f30,$f27 +divt $f30,$f29,$f30 +subt $f30,$f28,$f30 +subt $f30,$f27,$f30 +mult $f30,$f29,$f30 +subt $f30,$f27,$f16 +jsr $26,fabs +ldgp $gp,0($26) +stt $f0,X +L.123: +ldt $f30,X +stt $f30,Z2 +ldt $f30,One +ldt $f29,Z2 +ldt $f28,Half +mult $f28,$f29,$f28 +ldt $f27,ThirtyTwo +mult $f27,$f29,$f27 +mult $f27,$f29,$f29 +addt $f28,$f29,$f29 +addt $f30,$f29,$f29 +subt $f29,$f30,$f30 +stt $f30,X +L.124: +ldt $f30,X +ldt $f29,Z2 +cmptle $f29,$f30,$f1 +fbne $f1,L.126 +ldt $f29,Zero +cmptle $f30,$f29,$f1 +fbeq $f1,L.123 +L.126: +ldt $f30,Three +ldt $f29,Four +divt $f30,$f29,$f28 +ldt $f27,Two +divt $f27,$f30,$f27 +subt $f28,$f27,$f28 +mult $f28,$f30,$f30 +ldt $f28,One +divt $f28,$f29,$f29 +subt $f30,$f29,$f16 +jsr $26,fabs +ldgp $gp,0($26) +stt $f0,Z +stt $f0,Y +stt $f0,X +L.127: +ldt $f30,Z +stt $f30,Z1 +ldt $f30,One +ldt $f29,Two +divt $f30,$f29,$f30 +ldt $f29,Z1 +ldt $f28,Half +mult $f28,$f29,$f28 +ldt $f27,ThirtyTwo +mult $f27,$f29,$f27 +mult $f27,$f29,$f29 +addt $f28,$f29,$f29 +subt $f30,$f29,$f29 +addt $f29,$f30,$f29 +subt $f30,$f29,$f29 +addt $f29,$f30,$f30 +stt $f30,Z +L.128: +ldt $f30,Z +ldt $f29,Z1 +cmptle $f29,$f30,$f1 +fbne $f1,L.130 +ldt $f29,Zero +cmptle $f30,$f29,$f1 +fbeq $f1,L.127 +L.130: +L.131: +L.134: +ldt $f30,Y +stt $f30,Y1 +ldt $f30,Half +ldt $f29,Y1 +mult $f30,$f29,$f28 +ldt $f27,ThirtyTwo +mult $f27,$f29,$f27 +mult $f27,$f29,$f29 +addt $f28,$f29,$f29 +subt $f30,$f29,$f29 +addt $f29,$f30,$f29 +subt $f30,$f29,$f29 +addt $f29,$f30,$f30 +stt $f30,Y +L.135: +ldt $f30,Y +ldt $f29,Y1 +cmptle $f29,$f30,$f1 +fbne $f1,L.137 +ldt $f29,Zero +cmptle $f30,$f29,$f1 +fbeq $f1,L.134 +L.137: +ldt $f30,X +stt $f30,X1 +ldt $f30,X1 +ldt $f29,F9 +ldt $f28,Half +mult $f28,$f30,$f28 +ldt $f27,ThirtyTwo +mult $f27,$f30,$f27 +mult $f27,$f30,$f30 +addt $f28,$f30,$f30 +subt $f30,$f29,$f30 +addt $f30,$f29,$f30 +stt $f30,X +L.132: +ldt $f30,X +ldt $f29,X1 +cmptle $f29,$f30,$f1 +fbne $f1,L.138 +ldt $f29,Zero +cmptle $f30,$f29,$f1 +fbeq $f1,L.131 +L.138: +ldt $f30,X1 +ldt $f29,Y1 +cmpteq $f30,$f29,$f1 +fbeq $f1,L.141 +ldt $f29,Z1 +cmpteq $f30,$f29,$f1 +fbne $f1,L.139 +L.141: +lda $16,1 +lda $17,L.142 +jsr $26,BadCond +ldgp $gp,0($26) +lda $16,L.143 +ldt $f17,X1 +ldt $f18,Y1 +ldt $f19,Z1 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.144 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.145 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.146 +jsr $26,notify +ldgp $gp,0($26) +ldt $f30,U1 +ldt $f29,X1 +cmpteq $f29,$f30,$f1 +fbne $f1,L.150 +ldt $f29,Y1 +cmpteq $f29,$f30,$f1 +fbne $f1,L.150 +ldt $f29,Z1 +cmpteq $f29,$f30,$f1 +fbeq $f1,L.140 +L.150: +lda $16,L.151 +jsr $26,printf +ldgp $gp,0($26) +br L.140 +L.139: +ldt $f30,Z1 +ldt $f29,U1 +cmpteq $f30,$f29,$f1 +fbeq $f1,L.154 +ldt $f30,Z2 +ldt $f29,U2 +cmpteq $f30,$f29,$f1 +fbne $f1,L.152 +L.154: +ldt $f30,Z1 +ldt $f29,U1 +cmptlt $f30,$f29,$f1 +fbeq $f1,L.157 +ldt $f30,Z2 +ldt $f29,U2 +cmptlt $f30,$f29,$f1 +fbne $f1,L.155 +L.157: +mov $31,$16 +lda $17,L.158 +jsr $26,BadCond +ldgp $gp,0($26) +lda $16,L.159 +jsr $26,notify +ldgp $gp,0($26) +lda $16,L.160 +ldt $f30,U1 +fmov $f30,$f17 +ldt $f29,Z1 +subt $f29,$f30,$f18 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.161 +ldt $f30,U2 +fmov $f30,$f17 +ldt $f29,Z2 +subt $f29,$f30,$f18 +jsr $26,printf +ldgp $gp,0($26) +br L.156 +L.155: +ldt $f30,Zero +ldt $f29,Z1 +cmptle $f29,$f30,$f1 +fbne $f1,L.164 +ldt $f29,Z2 +cmptle $f29,$f30,$f1 +fbeq $f1,L.162 +L.164: +lda $16,L.165 +ldt $f17,Radix +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.166 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.167 +ldt $f17,Z1 +ldt $f18,Z2 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.168 +jsr $26,notify +ldgp $gp,0($26) +L.162: +ldt $f30,Z1 +ldt $f29,Z2 +cmpteq $f30,$f29,$f1 +fbeq $f1,L.171 +ldt $f29,Zero +cmptle $f30,$f29,$f1 +fbne $f1,L.169 +L.171: +ldt $f30,Z1 +ldt $f29,U1 +divt $f30,$f29,$f30 +stt $f30,X +ldt $f30,Z2 +ldt $f29,U2 +divt $f30,$f29,$f30 +stt $f30,Y +ldt $f30,Y +ldt $f29,X +cmptle $f30,$f29,$f1 +fbne $f1,L.172 +ldt $f30,Y +stt $f30,X +L.172: +ldt $f16,X +jsr $26,log +ldgp $gp,0($26) +negt $f0,$f30 +stt $f30,Q +lda $16,L.174 +jsr $26,printf +ldgp $gp,0($26) +ldt $f16,Radix +jsr $26,log +ldgp $gp,0($26) +fmov $f0,$f30 +lda $16,L.175 +ldt $f29,Q +divt $f29,$f30,$f17 +jsr $26,printf +ldgp $gp,0($26) +ldt $f16,L.94 +jsr $26,log +ldgp $gp,0($26) +fmov $f0,$f30 +lda $16,L.176 +ldt $f29,Q +divt $f29,$f30,$f17 +jsr $26,printf +ldgp $gp,0($26) +L.169: +lda $16,L.151 +jsr $26,printf +ldgp $gp,0($26) +L.156: +L.152: +L.140: +jsr $26,Pause +ldgp $gp,0($26) +lda $27,35 +stl $27,Milestone +ldt $f30,Radix +ldt $f29,Two +cmptlt $f30,$f29,$f1 +fbne $f1,L.177 +ldt $f30,Radix +ldt $f29,W +mult $f30,$f30,$f30 +divt $f29,$f30,$f30 +stt $f30,X +ldt $f30,X +ldt $f29,One +addt $f30,$f29,$f29 +stt $f29,Y +ldt $f29,Y +subt $f29,$f30,$f30 +stt $f30,Z +ldt $f30,Z +ldt $f29,U2 +addt $f30,$f29,$f28 +stt $f28,T +ldt $f28,T +subt $f28,$f30,$f30 +stt $f30,X +mov $31,$16 +ldt $f30,X +cmpteq $f30,$f29,$f1 +fbeq $f1,L.181 +lda $27,1 +stl $27,-96+256($sp) +br L.182 +L.181: +stl $31,-96+256($sp) +L.182: +ldl $17,-96+256($sp) +lda $18,L.180 +jsr $26,TstCond +ldgp $gp,0($26) +ldt $f30,X +ldt $f29,U2 +cmpteq $f30,$f29,$f1 +fbeq $f1,L.183 +lda $16,L.185 +jsr $26,printf +ldgp $gp,0($26) +L.183: +L.177: +lda $16,L.186 +jsr $26,printf +ldgp $gp,0($26) +ldt $f30,F9 +ldt $f29,One +mult $f30,$f29,$f28 +stt $f28,Y +mult $f29,$f30,$f28 +stt $f28,Z +ldt $f28,Half +subt $f30,$f28,$f30 +stt $f30,X +ldt $f30,X +ldt $f27,Y +subt $f27,$f28,$f27 +subt $f27,$f30,$f27 +stt $f27,Y +ldt $f27,Z +subt $f27,$f28,$f28 +subt $f28,$f30,$f30 +stt $f30,Z +ldt $f30,U2 +addt $f29,$f30,$f28 +stt $f28,X +ldt $f28,X +ldt $f27,Radix +mult $f28,$f27,$f26 +stt $f26,T +mult $f27,$f28,$f28 +stt $f28,R +ldt $f28,T +subt $f28,$f27,$f28 +stt $f28,X +mult $f27,$f30,$f30 +ldt $f28,X +subt $f28,$f30,$f28 +stt $f28,X +ldt $f28,R +subt $f28,$f27,$f28 +stt $f28,T +ldt $f28,T +subt $f28,$f30,$f30 +stt $f30,T +subt $f27,$f29,$f30 +ldt $f29,X +mult $f29,$f30,$f29 +stt $f29,X +ldt $f29,T +mult $f29,$f30,$f30 +stt $f30,T +ldt $f30,Zero +ldt $f29,X +cmpteq $f29,$f30,$f1 +fbeq $f1,L.187 +ldt $f29,Y +cmpteq $f29,$f30,$f1 +fbeq $f1,L.187 +ldt $f29,Z +cmpteq $f29,$f30,$f1 +fbeq $f1,L.187 +ldt $f29,T +cmpteq $f29,$f30,$f1 +fbeq $f1,L.187 +lda $27,1 +stl $27,GMult +br L.188 +L.187: +mov $31,$27 +stl $27,GMult +lda $16,1 +mov $27,$17 +lda $18,L.189 +jsr $26,TstCond +ldgp $gp,0($26) +L.188: +ldt $f30,Radix +ldt $f29,U2 +mult $f30,$f29,$f30 +stt $f30,Z +ldt $f30,Z +ldt $f29,One +addt $f29,$f30,$f29 +stt $f29,X +ldt $f29,X +addt $f29,$f30,$f30 +mult $f29,$f29,$f29 +subt $f30,$f29,$f16 +jsr $26,fabs +ldgp $gp,0($26) +ldt $f29,U2 +subt $f0,$f29,$f30 +stt $f30,Y +ldt $f30,One +subt $f30,$f29,$f30 +stt $f30,X +ldt $f30,X +subt $f30,$f29,$f29 +mult $f30,$f30,$f30 +subt $f29,$f30,$f16 +jsr $26,fabs +ldgp $gp,0($26) +ldt $f29,U1 +subt $f0,$f29,$f30 +stt $f30,Z +mov $31,$16 +ldt $f30,Zero +ldt $f29,Y +cmptle $f29,$f30,$f1 +fbeq $f1,L.192 +ldt $f29,Z +cmptle $f29,$f30,$f1 +fbeq $f1,L.192 +lda $27,1 +stl $27,-96+256($sp) +br L.193 +L.192: +stl $31,-96+256($sp) +L.193: +ldl $17,-96+256($sp) +lda $18,L.191 +jsr $26,TstCond +ldgp $gp,0($26) +ldt $f30,One +ldt $f29,U2 +subt $f30,$f29,$f28 +stt $f28,Y +addt $f30,$f29,$f29 +stt $f29,X +ldt $f29,Y +divt $f30,$f29,$f29 +stt $f29,Z +ldt $f29,Z +ldt $f28,X +subt $f29,$f28,$f29 +stt $f29,Y +ldt $f29,Three +divt $f30,$f29,$f30 +stt $f30,X +ldt $f30,Nine +divt $f29,$f30,$f29 +stt $f29,Z +ldt $f29,Z +ldt $f28,X +subt $f28,$f29,$f28 +stt $f28,X +ldt $f28,TwentySeven +divt $f30,$f28,$f30 +stt $f30,T +ldt $f30,T +subt $f29,$f30,$f30 +stt $f30,Z +lda $16,2 +ldt $f30,Zero +ldt $f29,X +cmpteq $f29,$f30,$f1 +fbeq $f1,L.196 +ldt $f29,Y +cmpteq $f29,$f30,$f1 +fbeq $f1,L.196 +ldt $f29,Z +cmpteq $f29,$f30,$f1 +fbeq $f1,L.196 +lda $27,1 +stl $27,-100+256($sp) +br L.197 +L.196: +stl $31,-100+256($sp) +L.197: +ldl $17,-100+256($sp) +lda $18,L.195 +jsr $26,TstCond +ldgp $gp,0($26) +ldt $f30,F9 +ldt $f29,One +divt $f30,$f29,$f28 +stt $f28,Y +ldt $f28,Half +subt $f30,$f28,$f30 +stt $f30,X +ldt $f30,Y +subt $f30,$f28,$f30 +ldt $f28,X +subt $f30,$f28,$f30 +stt $f30,Y +ldt $f30,U2 +addt $f29,$f30,$f30 +stt $f30,X +ldt $f30,X +divt $f30,$f29,$f29 +stt $f29,T +ldt $f29,T +subt $f29,$f30,$f30 +stt $f30,X +ldt $f30,Zero +ldt $f29,X +cmpteq $f29,$f30,$f1 +fbeq $f1,L.198 +ldt $f29,Y +cmpteq $f29,$f30,$f1 +fbeq $f1,L.198 +ldt $f29,Z +cmpteq $f29,$f30,$f1 +fbeq $f1,L.198 +lda $27,1 +stl $27,GDiv +br L.199 +L.198: +mov $31,$27 +stl $27,GDiv +lda $16,1 +mov $27,$17 +lda $18,L.200 +jsr $26,TstCond +ldgp $gp,0($26) +L.199: +ldt $f30,One +ldt $f29,U2 +addt $f30,$f29,$f29 +divt $f30,$f29,$f30 +stt $f30,X +ldt $f30,Half +ldt $f29,X +subt $f29,$f30,$f29 +subt $f29,$f30,$f30 +stt $f30,Y +lda $16,1 +ldt $f30,Y +ldt $f29,Zero +cmptlt $f30,$f29,$f1 +fbeq $f1,L.203 +lda $27,1 +stl $27,-104+256($sp) +br L.204 +L.203: +stl $31,-104+256($sp) +L.204: +ldl $17,-104+256($sp) +lda $18,L.202 +jsr $26,TstCond +ldgp $gp,0($26) +ldt $f30,One +ldt $f29,U2 +subt $f30,$f29,$f28 +stt $f28,X +ldt $f28,Radix +mult $f28,$f29,$f29 +addt $f30,$f29,$f30 +stt $f30,Y +ldt $f30,X +mult $f30,$f28,$f29 +stt $f29,Z +ldt $f29,Y +mult $f29,$f28,$f27 +stt $f27,T +ldt $f27,Z +divt $f27,$f28,$f27 +stt $f27,R +ldt $f27,T +divt $f27,$f28,$f28 +stt $f28,StickyBit +ldt $f28,R +subt $f28,$f30,$f30 +stt $f30,X +ldt $f30,StickyBit +subt $f30,$f29,$f30 +stt $f30,Y +mov $31,$16 +ldt $f30,Zero +ldt $f29,X +cmpteq $f29,$f30,$f1 +fbeq $f1,L.207 +ldt $f29,Y +cmpteq $f29,$f30,$f1 +fbeq $f1,L.207 +lda $27,1 +stl $27,-108+256($sp) +br L.208 +L.207: +stl $31,-108+256($sp) +L.208: +ldl $17,-108+256($sp) +lda $18,L.206 +jsr $26,TstCond +ldgp $gp,0($26) +ldt $f30,One +ldt $f29,U1 +subt $f30,$f29,$f29 +stt $f29,Y +ldt $f29,F9 +subt $f30,$f29,$f29 +stt $f29,X +ldt $f29,Y +subt $f30,$f29,$f30 +stt $f30,Y +ldt $f30,Radix +ldt $f29,U2 +subt $f30,$f29,$f29 +stt $f29,T +ldt $f29,BMinusU2 +subt $f30,$f29,$f29 +stt $f29,Z +ldt $f29,T +subt $f30,$f29,$f30 +stt $f30,T +ldt $f30,U1 +ldt $f29,X +cmpteq $f29,$f30,$f1 +fbeq $f1,L.209 +ldt $f29,Y +cmpteq $f29,$f30,$f1 +fbeq $f1,L.209 +ldt $f30,U2 +ldt $f29,Z +cmpteq $f29,$f30,$f1 +fbeq $f1,L.209 +ldt $f29,T +cmpteq $f29,$f30,$f1 +fbeq $f1,L.209 +lda $27,1 +stl $27,GAddSub +br L.210 +L.209: +mov $31,$27 +stl $27,GAddSub +lda $16,1 +mov $27,$17 +lda $18,L.211 +jsr $26,TstCond +ldgp $gp,0($26) +L.210: +ldt $f30,F9 +ldt $f29,One +cmpteq $f30,$f29,$f1 +fbne $f1,L.212 +subt $f30,$f29,$f30 +ldt $f29,Zero +cmptlt $f30,$f29,$f1 +fbne $f1,L.212 +lda $16,1 +lda $17,L.214 +jsr $26,BadCond +ldgp $gp,0($26) +lda $16,L.215 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.216 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.217 +jsr $26,printf +ldgp $gp,0($26) +L.212: +ldl $27,GMult +cmpeq $27,1,$23 +beq $23,L.218 +ldl $27,GDiv +cmpeq $27,1,$23 +beq $23,L.218 +ldl $27,GAddSub +cmpeq $27,1,$23 +beq $23,L.218 +lda $16,L.220 +jsr $26,printf +ldgp $gp,0($26) +L.218: +lda $27,40 +stl $27,Milestone +jsr $26,Pause +ldgp $gp,0($26) +lda $16,L.221 +jsr $26,printf +ldgp $gp,0($26) +stl $31,RMult +stl $31,RDiv +stl $31,RAddSub +ldt $f30,Two +ldt $f29,Radix +divt $f29,$f30,$f29 +stt $f29,RadixD2 +stt $f30,A1 +stl $31,Done +L.222: +ldt $f30,Radix +stt $f30,AInvrse +L.225: +ldt $f30,AInvrse +stt $f30,X +ldt $f29,A1 +divt $f30,$f29,$f30 +stt $f30,AInvrse +L.226: +ldt $f16,AInvrse +jsr $26,floor +ldgp $gp,0($26) +ldt $f29,AInvrse +cmpteq $f0,$f29,$f1 +fbne $f1,L.225 +ldt $f30,X +ldt $f29,One +cmpteq $f30,$f29,$f1 +fbne $f1,L.231 +ldt $f30,A1 +ldt $f29,Three +cmptle $f30,$f29,$f1 +fbne $f1,L.229 +L.231: +lda $27,1 +stl $27,-112+256($sp) +br L.230 +L.229: +stl $31,-112+256($sp) +L.230: +ldl $27,-112+256($sp) +stl $27,Done +ldl $27,Done +cmpeq $27,$31,$23 +beq $23,L.232 +ldt $f30,Nine +ldt $f29,One +addt $f30,$f29,$f30 +stt $f30,A1 +L.232: +L.223: +ldl $27,Done +cmpeq $27,$31,$23 +bne $23,L.222 +ldt $f30,X +ldt $f29,One +cmpteq $f30,$f29,$f1 +fbeq $f1,L.234 +ldt $f30,Radix +stt $f30,A1 +L.234: +ldt $f30,A1 +ldt $f29,One +divt $f29,$f30,$f29 +stt $f29,AInvrse +stt $f30,X +ldt $f30,AInvrse +stt $f30,Y +stl $31,Done +L.236: +ldt $f30,Half +ldt $f29,X +ldt $f28,Y +mult $f29,$f28,$f29 +subt $f29,$f30,$f29 +stt $f29,Z +mov $31,$16 +ldt $f29,Z +cmpteq $f29,$f30,$f1 +fbeq $f1,L.241 +lda $27,1 +stl $27,-112+256($sp) +br L.242 +L.241: +stl $31,-112+256($sp) +L.242: +ldl $17,-112+256($sp) +lda $18,L.240 +jsr $26,TstCond +ldgp $gp,0($26) +ldt $f30,X +ldt $f29,Radix +cmpteq $f30,$f29,$f1 +fbeq $f1,L.244 +lda $27,1 +stl $27,-116+256($sp) +br L.245 +L.244: +stl $31,-116+256($sp) +L.245: +ldl $27,-116+256($sp) +stl $27,Done +ldt $f30,Radix +stt $f30,X +ldt $f30,One +ldt $f29,X +divt $f30,$f29,$f30 +stt $f30,Y +L.237: +ldl $27,Done +cmpeq $27,$31,$23 +bne $23,L.236 +ldt $f30,One +ldt $f29,U2 +addt $f30,$f29,$f28 +stt $f28,Y2 +subt $f30,$f29,$f30 +stt $f30,Y1 +ldt $f30,OneAndHalf +subt $f30,$f29,$f28 +stt $f28,X +addt $f30,$f29,$f28 +stt $f28,Y +ldt $f28,X +ldt $f27,Y2 +subt $f28,$f29,$f26 +mult $f26,$f27,$f26 +stt $f26,Z +ldt $f26,Y +ldt $f25,Y1 +mult $f26,$f25,$f24 +stt $f24,T +ldt $f24,Z +subt $f24,$f28,$f24 +stt $f24,Z +ldt $f24,T +subt $f24,$f28,$f24 +stt $f24,T +mult $f28,$f27,$f28 +stt $f28,X +addt $f26,$f29,$f29 +mult $f29,$f25,$f29 +stt $f29,Y +ldt $f29,X +subt $f29,$f30,$f29 +stt $f29,X +ldt $f29,Y +subt $f29,$f30,$f30 +stt $f30,Y +ldt $f30,Zero +ldt $f29,X +cmpteq $f29,$f30,$f1 +fbeq $f1,L.246 +ldt $f29,Y +cmpteq $f29,$f30,$f1 +fbeq $f1,L.246 +ldt $f29,Z +cmpteq $f29,$f30,$f1 +fbeq $f1,L.246 +ldt $f29,T +cmptle $f29,$f30,$f1 +fbeq $f1,L.246 +ldt $f30,OneAndHalf +ldt $f29,U2 +addt $f30,$f29,$f28 +ldt $f27,Y2 +mult $f28,$f27,$f26 +stt $f26,X +subt $f30,$f29,$f30 +subt $f30,$f29,$f26 +stt $f26,Y +addt $f28,$f29,$f28 +stt $f28,Z +ldt $f28,Y1 +mult $f30,$f28,$f30 +stt $f30,T +ldt $f30,Z +addt $f30,$f29,$f26 +ldt $f25,X +subt $f25,$f26,$f25 +stt $f25,X +ldt $f25,Y +mult $f25,$f28,$f24 +stt $f24,StickyBit +mult $f30,$f27,$f30 +stt $f30,S +ldt $f30,T +subt $f30,$f25,$f30 +stt $f30,T +subt $f29,$f25,$f30 +ldt $f25,StickyBit +addt $f30,$f25,$f30 +stt $f30,Y +ldt $f30,S +addt $f26,$f29,$f26 +subt $f30,$f26,$f30 +stt $f30,Z +addt $f27,$f29,$f30 +mult $f30,$f28,$f30 +stt $f30,StickyBit +mult $f27,$f28,$f30 +stt $f30,Y1 +ldt $f30,StickyBit +subt $f30,$f27,$f30 +stt $f30,StickyBit +ldt $f30,Y1 +ldt $f29,Half +subt $f30,$f29,$f30 +stt $f30,Y1 +ldt $f30,Zero +ldt $f29,X +cmpteq $f29,$f30,$f1 +fbeq $f1,L.248 +ldt $f29,Y +cmpteq $f29,$f30,$f1 +fbeq $f1,L.248 +ldt $f29,Z +cmpteq $f29,$f30,$f1 +fbeq $f1,L.248 +ldt $f29,T +cmpteq $f29,$f30,$f1 +fbeq $f1,L.248 +ldt $f29,StickyBit +cmpteq $f29,$f30,$f1 +fbeq $f1,L.248 +ldt $f30,Y1 +ldt $f29,Half +cmpteq $f30,$f29,$f1 +fbeq $f1,L.248 +lda $27,1 +stl $27,RMult +lda $16,L.250 +jsr $26,printf +ldgp $gp,0($26) +br L.249 +L.248: +ldt $f30,U2 +ldt $f29,Zero +ldt $f28,X +addt $f28,$f30,$f28 +cmpteq $f28,$f29,$f1 +fbeq $f1,L.251 +ldt $f28,Y +cmptlt $f28,$f29,$f1 +fbeq $f1,L.251 +ldt $f28,Z +addt $f28,$f30,$f28 +cmpteq $f28,$f29,$f1 +fbeq $f1,L.251 +ldt $f28,T +cmptlt $f28,$f29,$f1 +fbeq $f1,L.251 +ldt $f28,StickyBit +addt $f28,$f30,$f30 +cmpteq $f30,$f29,$f1 +fbeq $f1,L.251 +ldt $f30,Y1 +ldt $f29,Half +cmptlt $f30,$f29,$f1 +fbeq $f1,L.251 +lda $27,2 +stl $27,RMult +lda $16,L.253 +jsr $26,printf +ldgp $gp,0($26) +br L.252 +L.251: +lda $16,L.254 +jsr $26,printf +ldgp $gp,0($26) +L.252: +L.249: +ldl $27,RMult +cmpeq $27,1,$23 +beq $23,L.247 +ldl $27,GMult +cmpeq $27,$31,$23 +beq $23,L.247 +lda $16,L.257 +jsr $26,notify +ldgp $gp,0($26) +br L.247 +L.246: +lda $16,L.254 +jsr $26,printf +ldgp $gp,0($26) +L.247: +lda $27,45 +stl $27,Milestone +ldt $f30,One +ldt $f29,U2 +addt $f30,$f29,$f28 +stt $f28,Y2 +subt $f30,$f29,$f30 +stt $f30,Y1 +ldt $f30,OneAndHalf +addt $f30,$f29,$f28 +addt $f28,$f29,$f27 +stt $f27,Z +ldt $f27,Z +ldt $f26,Y2 +divt $f27,$f26,$f25 +stt $f25,X +subt $f30,$f29,$f25 +subt $f25,$f29,$f25 +stt $f25,T +ldt $f25,T +ldt $f24,Y1 +subt $f25,$f29,$f23 +divt $f23,$f24,$f23 +stt $f23,Y +addt $f27,$f29,$f27 +divt $f27,$f26,$f27 +stt $f27,Z +ldt $f27,X +subt $f27,$f30,$f27 +stt $f27,X +ldt $f27,Y +subt $f27,$f25,$f27 +stt $f27,Y +divt $f25,$f24,$f27 +stt $f27,T +ldt $f27,Z +subt $f27,$f28,$f28 +stt $f28,Z +subt $f29,$f30,$f30 +ldt $f29,T +addt $f30,$f29,$f30 +stt $f30,T +ldt $f30,Zero +ldt $f29,X +cmptle $f29,$f30,$f1 +fbeq $f1,L.258 +ldt $f29,Y +cmptle $f29,$f30,$f1 +fbeq $f1,L.258 +ldt $f29,Z +cmptle $f29,$f30,$f1 +fbeq $f1,L.258 +ldt $f29,T +cmptle $f29,$f30,$f1 +fbeq $f1,L.258 +ldt $f30,OneAndHalf +ldt $f29,Y2 +divt $f30,$f29,$f28 +stt $f28,X +ldt $f28,U2 +subt $f30,$f28,$f27 +stt $f27,Y +addt $f30,$f28,$f27 +stt $f27,Z +ldt $f27,Y +ldt $f26,X +subt $f26,$f27,$f26 +stt $f26,X +ldt $f26,Y1 +divt $f30,$f26,$f25 +stt $f25,T +divt $f27,$f26,$f27 +stt $f27,Y +ldt $f27,Z +ldt $f26,T +addt $f27,$f28,$f25 +subt $f26,$f25,$f26 +stt $f26,T +ldt $f26,Y +subt $f26,$f27,$f26 +stt $f26,Y +divt $f27,$f29,$f27 +stt $f27,Z +addt $f29,$f28,$f28 +divt $f28,$f29,$f28 +stt $f28,Y1 +ldt $f28,Z +subt $f28,$f30,$f30 +stt $f30,Z +ldt $f30,Y1 +subt $f30,$f29,$f30 +stt $f30,Y2 +ldt $f30,F9 +ldt $f29,U1 +subt $f30,$f29,$f29 +divt $f29,$f30,$f30 +stt $f30,Y1 +ldt $f30,Zero +ldt $f29,X +cmpteq $f29,$f30,$f1 +fbeq $f1,L.260 +ldt $f29,Y +cmpteq $f29,$f30,$f1 +fbeq $f1,L.260 +ldt $f29,Z +cmpteq $f29,$f30,$f1 +fbeq $f1,L.260 +ldt $f29,T +cmpteq $f29,$f30,$f1 +fbeq $f1,L.260 +ldt $f29,Y2 +cmpteq $f29,$f30,$f1 +fbeq $f1,L.260 +cmpteq $f29,$f30,$f1 +fbeq $f1,L.260 +ldt $f30,Half +ldt $f29,Y1 +subt $f29,$f30,$f29 +ldt $f28,F9 +subt $f28,$f30,$f30 +cmpteq $f29,$f30,$f1 +fbeq $f1,L.260 +lda $27,1 +stl $27,RDiv +lda $16,L.262 +jsr $26,printf +ldgp $gp,0($26) +ldl $27,GDiv +cmpeq $27,$31,$23 +beq $23,L.261 +lda $16,L.265 +jsr $26,notify +ldgp $gp,0($26) +br L.261 +L.260: +ldt $f30,Zero +ldt $f29,X +cmptlt $f29,$f30,$f1 +fbeq $f1,L.266 +ldt $f29,Y +cmptlt $f29,$f30,$f1 +fbeq $f1,L.266 +ldt $f29,Z +cmptlt $f29,$f30,$f1 +fbeq $f1,L.266 +ldt $f29,T +cmptlt $f29,$f30,$f1 +fbeq $f1,L.266 +ldt $f29,Y2 +cmptlt $f29,$f30,$f1 +fbeq $f1,L.266 +ldt $f30,Half +ldt $f29,Y1 +subt $f29,$f30,$f29 +ldt $f28,F9 +subt $f28,$f30,$f30 +cmptlt $f29,$f30,$f1 +fbeq $f1,L.266 +lda $27,2 +stl $27,RDiv +lda $16,L.268 +jsr $26,printf +ldgp $gp,0($26) +L.266: +L.261: +L.258: +ldl $27,RDiv +cmpeq $27,$31,$23 +beq $23,L.269 +lda $16,L.271 +jsr $26,printf +ldgp $gp,0($26) +L.269: +ldt $f30,Radix +ldt $f29,One +divt $f29,$f30,$f29 +stt $f29,BInvrse +mov $31,$16 +ldt $f29,Half +ldt $f28,BInvrse +mult $f28,$f30,$f30 +subt $f30,$f29,$f30 +cmpteq $f30,$f29,$f1 +fbeq $f1,L.274 +lda $27,1 +stl $27,-112+256($sp) +br L.275 +L.274: +stl $31,-112+256($sp) +L.275: +ldl $17,-112+256($sp) +lda $18,L.273 +jsr $26,TstCond +ldgp $gp,0($26) +lda $27,50 +stl $27,Milestone +mov $31,$16 +ldt $f30,Half +ldt $f29,F9 +ldt $f28,U1 +addt $f29,$f28,$f29 +subt $f29,$f30,$f29 +cmpteq $f29,$f30,$f1 +fbeq $f1,L.278 +ldt $f30,One +ldt $f29,BMinusU2 +ldt $f28,U2 +addt $f29,$f28,$f29 +subt $f29,$f30,$f29 +ldt $f28,Radix +subt $f28,$f30,$f30 +cmpteq $f29,$f30,$f1 +fbeq $f1,L.278 +lda $27,1 +stl $27,-116+256($sp) +br L.279 +L.278: +stl $31,-116+256($sp) +L.279: +ldl $17,-116+256($sp) +lda $18,L.277 +jsr $26,TstCond +ldgp $gp,0($26) +ldt $f30,One +ldt $f29,U1 +mult $f29,$f29,$f29 +subt $f30,$f29,$f29 +stt $f29,X +ldt $f29,U2 +subt $f30,$f29,$f28 +mult $f29,$f28,$f29 +addt $f30,$f29,$f29 +stt $f29,Y +ldt $f29,Half +ldt $f28,F9 +subt $f28,$f29,$f28 +stt $f28,Z +ldt $f28,X +subt $f28,$f29,$f29 +ldt $f28,Z +subt $f29,$f28,$f29 +stt $f29,X +ldt $f29,Y +subt $f29,$f30,$f30 +stt $f30,Y +ldt $f30,Zero +ldt $f29,X +cmpteq $f29,$f30,$f1 +fbeq $f1,L.280 +ldt $f29,Y +cmpteq $f29,$f30,$f1 +fbeq $f1,L.280 +lda $27,2 +stl $27,RAddSub +lda $16,L.282 +jsr $26,printf +ldgp $gp,0($26) +L.280: +ldl $27,GAddSub +cmpeq $27,1,$23 +beq $23,L.283 +ldt $f30,Half +ldt $f29,U2 +addt $f30,$f29,$f28 +mult $f28,$f29,$f28 +stt $f28,X +subt $f30,$f29,$f30 +mult $f30,$f29,$f30 +stt $f30,Y +ldt $f30,One +ldt $f28,X +addt $f30,$f28,$f28 +stt $f28,X +ldt $f28,Y +addt $f30,$f28,$f28 +stt $f28,Y +addt $f30,$f29,$f29 +ldt $f28,X +subt $f29,$f28,$f29 +stt $f29,X +ldt $f29,Y +subt $f30,$f29,$f30 +stt $f30,Y +ldt $f30,Zero +ldt $f29,X +cmpteq $f29,$f30,$f1 +fbeq $f1,L.285 +ldt $f29,Y +cmpteq $f29,$f30,$f1 +fbeq $f1,L.285 +ldt $f30,Half +ldt $f29,U2 +ldt $f28,U1 +addt $f30,$f29,$f27 +mult $f27,$f28,$f27 +stt $f27,X +subt $f30,$f29,$f30 +mult $f30,$f28,$f30 +stt $f30,Y +ldt $f30,One +ldt $f29,X +subt $f30,$f29,$f29 +stt $f29,X +ldt $f29,Y +subt $f30,$f29,$f29 +stt $f29,Y +ldt $f29,F9 +ldt $f28,X +subt $f29,$f28,$f29 +stt $f29,X +ldt $f29,Y +subt $f30,$f29,$f30 +stt $f30,Y +ldt $f30,Zero +ldt $f29,X +cmpteq $f29,$f30,$f1 +fbeq $f1,L.287 +ldt $f29,Y +cmpteq $f29,$f30,$f1 +fbeq $f1,L.287 +lda $27,1 +stl $27,RAddSub +lda $16,L.289 +jsr $26,printf +ldgp $gp,0($26) +ldl $27,GAddSub +cmpeq $27,$31,$23 +beq $23,L.284 +lda $16,L.292 +jsr $26,notify +ldgp $gp,0($26) +br L.284 +L.287: +lda $16,L.293 +jsr $26,printf +ldgp $gp,0($26) +br L.284 +L.285: +lda $16,L.293 +jsr $26,printf +ldgp $gp,0($26) +br L.284 +L.283: +lda $16,L.293 +jsr $26,printf +ldgp $gp,0($26) +L.284: +ldt $f30,One +stt $f30,S +ldt $f29,Half +addt $f30,$f29,$f28 +mult $f29,$f28,$f28 +addt $f30,$f28,$f28 +stt $f28,X +ldt $f28,U2 +addt $f30,$f28,$f30 +mult $f30,$f29,$f30 +stt $f30,Y +ldt $f30,X +ldt $f29,Y +subt $f30,$f29,$f28 +stt $f28,Z +subt $f29,$f30,$f30 +stt $f30,T +ldt $f30,Z +ldt $f29,T +addt $f30,$f29,$f30 +stt $f30,StickyBit +ldt $f30,StickyBit +ldt $f29,Zero +cmpteq $f30,$f29,$f1 +fbne $f1,L.294 +ldt $f30,Zero +stt $f30,S +lda $16,3 +lda $17,L.296 +jsr $26,BadCond +ldgp $gp,0($26) +L.294: +ldt $f30,Zero +stt $f30,StickyBit +ldl $27,GMult +cmpeq $27,1,$23 +beq $23,L.297 +ldl $27,GDiv +cmpeq $27,1,$23 +beq $23,L.297 +ldl $27,GAddSub +cmpeq $27,1,$23 +beq $23,L.297 +ldl $27,RMult +cmpeq $27,1,$23 +beq $23,L.297 +ldl $27,RDiv +cmpeq $27,1,$23 +beq $23,L.297 +ldl $27,RAddSub +cmpeq $27,1,$23 +beq $23,L.297 +ldt $f16,RadixD2 +jsr $26,floor +ldgp $gp,0($26) +ldt $f29,RadixD2 +cmpteq $f0,$f29,$f1 +fbeq $f1,L.297 +lda $16,L.299 +jsr $26,printf +ldgp $gp,0($26) +ldt $f30,Half +ldt $f29,U2 +ldt $f28,U1 +addt $f30,$f28,$f28 +mult $f28,$f29,$f28 +stt $f28,X +mult $f30,$f29,$f30 +stt $f30,Y +ldt $f30,One +ldt $f29,Y +addt $f30,$f29,$f29 +stt $f29,Z +ldt $f29,X +addt $f30,$f29,$f30 +stt $f30,T +ldt $f30,One +ldt $f29,Z +subt $f29,$f30,$f29 +ldt $f28,Zero +cmptle $f29,$f28,$f1 +fbeq $f1,L.300 +ldt $f29,T +subt $f29,$f30,$f30 +ldt $f29,U2 +cmptlt $f30,$f29,$f1 +fbne $f1,L.300 +ldt $f30,T +ldt $f29,Y +addt $f30,$f29,$f30 +stt $f30,Z +ldt $f30,Z +ldt $f29,X +subt $f30,$f29,$f30 +stt $f30,Y +ldt $f30,T +ldt $f29,Z +subt $f29,$f30,$f29 +ldt $f28,U2 +cmptlt $f29,$f28,$f1 +fbne $f1,L.302 +ldt $f29,Y +subt $f29,$f30,$f30 +ldt $f29,Zero +cmpteq $f30,$f29,$f1 +fbeq $f1,L.302 +ldt $f30,Half +ldt $f29,U1 +addt $f30,$f29,$f28 +mult $f28,$f29,$f28 +stt $f28,X +mult $f30,$f29,$f30 +stt $f30,Y +ldt $f30,One +ldt $f29,Y +subt $f30,$f29,$f29 +stt $f29,Z +ldt $f29,X +subt $f30,$f29,$f30 +stt $f30,T +ldt $f30,Zero +ldt $f29,Z +ldt $f28,One +subt $f29,$f28,$f29 +cmpteq $f29,$f30,$f1 +fbeq $f1,L.304 +ldt $f29,T +ldt $f28,F9 +subt $f29,$f28,$f29 +cmpteq $f29,$f30,$f1 +fbeq $f1,L.304 +ldt $f30,U1 +ldt $f29,Half +subt $f29,$f30,$f29 +mult $f29,$f30,$f30 +stt $f30,Z +ldt $f30,F9 +ldt $f29,Z +subt $f30,$f29,$f29 +stt $f29,T +ldt $f29,Y +subt $f30,$f29,$f30 +stt $f30,Q +ldt $f30,F9 +ldt $f29,Zero +ldt $f28,T +subt $f28,$f30,$f28 +cmpteq $f28,$f29,$f1 +fbeq $f1,L.306 +ldt $f28,U1 +subt $f30,$f28,$f30 +ldt $f28,Q +subt $f30,$f28,$f30 +cmpteq $f30,$f29,$f1 +fbeq $f1,L.306 +ldt $f30,One +ldt $f29,U2 +ldt $f28,OneAndHalf +addt $f30,$f29,$f27 +mult $f27,$f28,$f27 +stt $f27,Z +addt $f28,$f29,$f28 +ldt $f27,Z +subt $f28,$f27,$f28 +addt $f28,$f29,$f28 +stt $f28,T +ldt $f28,Radix +ldt $f27,Half +divt $f27,$f28,$f27 +addt $f30,$f27,$f27 +stt $f27,X +mult $f28,$f29,$f29 +addt $f30,$f29,$f30 +stt $f30,Y +ldt $f30,X +ldt $f29,Y +mult $f30,$f29,$f30 +stt $f30,Z +ldt $f30,Zero +ldt $f29,T +cmpteq $f29,$f30,$f1 +fbeq $f1,L.308 +ldt $f29,X +ldt $f28,Radix +ldt $f27,U2 +mult $f28,$f27,$f28 +addt $f29,$f28,$f29 +ldt $f28,Z +subt $f29,$f28,$f29 +cmpteq $f29,$f30,$f1 +fbeq $f1,L.308 +ldt $f30,Radix +ldt $f29,Two +cmpteq $f30,$f29,$f1 +fbne $f1,L.310 +ldt $f30,Two +ldt $f29,U2 +addt $f30,$f29,$f29 +stt $f29,X +ldt $f29,X +divt $f29,$f30,$f30 +stt $f30,Y +ldt $f30,Y +ldt $f29,One +subt $f30,$f29,$f30 +ldt $f29,Zero +cmpteq $f30,$f29,$f1 +fbeq $f1,L.311 +ldt $f30,S +stt $f30,StickyBit +br L.311 +L.310: +ldt $f30,S +stt $f30,StickyBit +L.311: +L.308: +L.306: +L.304: +L.302: +L.300: +L.297: +ldt $f30,StickyBit +ldt $f29,One +cmpteq $f30,$f29,$f1 +fbeq $f1,L.314 +lda $16,L.316 +jsr $26,printf +ldgp $gp,0($26) +br L.315 +L.314: +lda $16,L.317 +jsr $26,printf +ldgp $gp,0($26) +L.315: +lda $16,3 +ldl $25,GMult +cmpeq $25,$31,$23 +bne $23,L.320 +ldl $25,GDiv +cmpeq $25,$31,$23 +bne $23,L.320 +ldl $25,GAddSub +cmpeq $25,$31,$23 +bne $23,L.320 +ldl $25,RMult +cmpeq $25,$31,$23 +bne $23,L.320 +ldl $25,RDiv +cmpeq $25,$31,$23 +bne $23,L.320 +ldl $25,RAddSub +cmpeq $25,$31,$23 +bne $23,L.320 +lda $27,1 +stl $27,-120+256($sp) +br L.321 +L.320: +stl $31,-120+256($sp) +L.321: +ldl $17,-120+256($sp) +lda $18,L.319 +jsr $26,TstCond +ldgp $gp,0($26) +lda $27,60 +stl $27,Milestone +lda $16,L.45 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.322 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.323 +ldl $17,NoTrials +jsr $26,printf +ldgp $gp,0($26) +ldt $f16,L.324 +jsr $26,sqrt +ldgp $gp,0($26) +stt $f0,Random9 +ldt $f30,Third +stt $f30,Random1 +lda $27,1 +stl $27,I +L.325: +jsr $26,Random +ldgp $gp,0($26) +stt $f0,X +jsr $26,Random +ldgp $gp,0($26) +stt $f0,Y +ldt $f30,Y +ldt $f29,X +mult $f30,$f29,$f28 +stt $f28,Z9 +mult $f29,$f30,$f30 +stt $f30,Z +ldt $f30,Z +ldt $f29,Z9 +subt $f30,$f29,$f30 +stt $f30,Z9 +ldl $27,I +lda $27,1($27) +stl $27,I +L.326: +ldl $27,I +ldl $25,NoTrials +cmple $27,$25,$23 +beq $23,L.328 +ldt $f30,Z9 +ldt $f29,Zero +cmpteq $f30,$f29,$f1 +fbne $f1,L.325 +L.328: +ldl $27,I +ldl $25,NoTrials +cmpeq $27,$25,$23 +beq $23,L.329 +ldt $f30,One +ldt $f29,Half +ldt $f28,Three +divt $f29,$f28,$f29 +addt $f30,$f29,$f29 +stt $f29,Random1 +ldt $f28,U2 +ldt $f27,U1 +addt $f28,$f27,$f28 +addt $f28,$f30,$f30 +stt $f30,Random2 +ldt $f28,Random1 +ldt $f27,Random2 +mult $f28,$f27,$f26 +stt $f26,Z +mult $f27,$f28,$f28 +stt $f28,Y +mult $f29,$f30,$f30 +subt $f30,$f30,$f30 +stt $f30,Z9 +L.329: +ldl $27,I +ldl $25,NoTrials +cmpeq $27,$25,$23 +bne $23,L.331 +ldt $f30,Z9 +ldt $f29,Zero +cmpteq $f30,$f29,$f1 +fbne $f1,L.331 +lda $16,2 +lda $17,L.333 +jsr $26,BadCond +ldgp $gp,0($26) +br L.332 +L.331: +lda $16,L.334 +ldl $17,NoTrials +jsr $26,printf +ldgp $gp,0($26) +L.332: +lda $27,70 +stl $27,Milestone +lda $16,L.335 +jsr $26,printf +ldgp $gp,0($26) +ldt $f30,Zero +stt $f30,-136+256($sp) +fmov $f30,$f16 +jsr $26,sqrt +ldgp $gp,0($26) +ldt $f29,-136+256($sp) +cmpteq $f29,$f0,$f1 +fbeq $f1,L.338 +ldt $f30,Zero +negt $f30,$f30 +stt $f30,-144+256($sp) +fmov $f30,$f16 +jsr $26,sqrt +ldgp $gp,0($26) +ldt $f29,-144+256($sp) +cmpteq $f29,$f0,$f1 +fbeq $f1,L.338 +ldt $f30,One +stt $f30,-152+256($sp) +fmov $f30,$f16 +jsr $26,sqrt +ldgp $gp,0($26) +fmov $f0,$f30 +ldt $f29,-152+256($sp) +cmpteq $f29,$f30,$f1 +fbeq $f1,L.338 +lda $27,1 +stl $27,-124+256($sp) +br L.339 +L.338: +stl $31,-124+256($sp) +L.339: +mov $31,$16 +ldl $17,-124+256($sp) +lda $18,L.337 +jsr $26,TstCond +ldgp $gp,0($26) +ldt $f30,Zero +stt $f30,MinSqEr +stt $f30,MaxSqEr +stt $f30,J +ldt $f30,Radix +stt $f30,X +ldt $f30,U2 +stt $f30,OneUlp +lda $16,1 +jsr $26,SqXMinX +ldgp $gp,0($26) +ldt $f30,BInvrse +stt $f30,X +ldt $f29,U1 +mult $f30,$f29,$f30 +stt $f30,OneUlp +lda $16,1 +jsr $26,SqXMinX +ldgp $gp,0($26) +ldt $f30,U1 +stt $f30,X +mult $f30,$f30,$f30 +stt $f30,OneUlp +lda $16,1 +jsr $26,SqXMinX +ldgp $gp,0($26) +ldt $f30,J +ldt $f29,Zero +cmpteq $f30,$f29,$f1 +fbne $f1,L.340 +jsr $26,Pause +ldgp $gp,0($26) +L.340: +lda $16,L.342 +ldl $17,NoTrials +jsr $26,printf +ldgp $gp,0($26) +ldt $f30,Zero +stt $f30,J +ldt $f30,Two +stt $f30,X +ldt $f30,Radix +stt $f30,Y +ldt $f29,One +cmpteq $f30,$f29,$f1 +fbne $f1,L.343 +L.345: +ldt $f30,Y +stt $f30,X +ldt $f29,Radix +mult $f29,$f30,$f30 +stt $f30,Y +L.346: +ldt $f30,Y +ldt $f29,X +subt $f30,$f29,$f30 +lds $f29,NoTrials +cvtlq $f29,$f29 +cvtqt $f29,$f29 +cmptlt $f30,$f29,$f1 +fbne $f1,L.345 +L.343: +ldt $f30,X +ldt $f29,U2 +mult $f30,$f29,$f30 +stt $f30,OneUlp +lda $27,1 +stl $27,I +br L.349 +L.348: +ldt $f30,X +ldt $f29,One +addt $f30,$f29,$f30 +stt $f30,X +lda $16,2 +jsr $26,SqXMinX +ldgp $gp,0($26) +ldt $f30,J +ldt $f29,Zero +cmptle $f30,$f29,$f1 +fbne $f1,L.351 +br L.350 +L.351: +ldl $27,I +lda $27,1($27) +stl $27,I +L.349: +ldl $27,I +ldl $25,NoTrials +cmple $27,$25,$23 +bne $23,L.348 +L.350: +lda $16,L.353 +jsr $26,printf +ldgp $gp,0($26) +lda $27,-1 +stl $27,I +ldt $f30,BMinusU2 +stt $f30,X +ldt $f30,Radix +stt $f30,Y +ldt $f29,U2 +mult $f30,$f29,$f29 +addt $f30,$f29,$f30 +stt $f30,Z +stl $31,NotMonot +stl $31,Monot +br L.355 +L.354: +ldl $27,I +lda $27,1($27) +stl $27,I +ldt $f16,X +jsr $26,sqrt +ldgp $gp,0($26) +stt $f0,X +ldt $f16,Y +jsr $26,sqrt +ldgp $gp,0($26) +stt $f0,Q +ldt $f16,Z +jsr $26,sqrt +ldgp $gp,0($26) +stt $f0,Z +ldt $f30,Q +ldt $f29,X +cmptle $f29,$f30,$f1 +fbeq $f1,L.359 +ldt $f29,Z +cmptle $f30,$f29,$f1 +fbne $f1,L.357 +L.359: +lda $27,1 +stl $27,NotMonot +br L.358 +L.357: +ldt $f30,Q +ldt $f29,Half +addt $f30,$f29,$f16 +jsr $26,floor +ldgp $gp,0($26) +stt $f0,Q +ldl $27,I +cmple $27,$31,$23 +beq $23,L.362 +ldt $f30,Q +ldt $f29,Radix +mult $f30,$f30,$f30 +cmpteq $f29,$f30,$f1 +fbeq $f1,L.360 +L.362: +lda $27,1 +stl $27,Monot +br L.361 +L.360: +ldl $27,I +cmple $27,$31,$23 +bne $23,L.363 +ldl $27,I +cmple $27,1,$23 +bne $23,L.365 +lda $27,1 +stl $27,Monot +br L.364 +L.365: +ldt $f30,Y +ldt $f29,BInvrse +mult $f30,$f29,$f30 +stt $f30,Y +ldt $f30,Y +ldt $f29,U1 +subt $f30,$f29,$f28 +stt $f28,X +addt $f30,$f29,$f30 +stt $f30,Z +br L.364 +L.363: +ldt $f30,Q +stt $f30,Y +ldt $f30,Y +ldt $f29,U2 +subt $f30,$f29,$f28 +stt $f28,X +addt $f30,$f29,$f30 +stt $f30,Z +L.364: +L.361: +L.358: +L.355: +ldl $25,NotMonot +cmpeq $25,$31,$23 +beq $23,L.367 +ldl $25,Monot +cmpeq $25,$31,$23 +bne $23,L.354 +L.367: +ldl $27,Monot +cmpeq $27,$31,$23 +bne $23,L.368 +lda $16,L.370 +jsr $26,printf +ldgp $gp,0($26) +br L.369 +L.368: +lda $16,2 +lda $17,L.158 +jsr $26,BadCond +ldgp $gp,0($26) +lda $16,L.371 +ldt $f17,Y +jsr $26,printf +ldgp $gp,0($26) +L.369: +lda $27,80 +stl $27,Milestone +ldt $f30,Half +ldt $f29,MinSqEr +addt $f29,$f30,$f29 +stt $f29,MinSqEr +ldt $f29,MaxSqEr +subt $f29,$f30,$f30 +stt $f30,MaxSqEr +ldt $f30,One +ldt $f29,U2 +addt $f30,$f29,$f16 +jsr $26,sqrt +ldgp $gp,0($26) +ldt $f29,One +ldt $f28,U2 +subt $f0,$f29,$f30 +divt $f30,$f28,$f30 +stt $f30,Y +ldt $f30,Y +subt $f30,$f29,$f30 +ldt $f29,Eight +divt $f28,$f29,$f29 +addt $f30,$f29,$f30 +stt $f30,SqEr +ldt $f30,SqEr +ldt $f29,MaxSqEr +cmptle $f30,$f29,$f1 +fbne $f1,L.372 +ldt $f30,SqEr +stt $f30,MaxSqEr +L.372: +ldt $f30,Y +ldt $f29,U2 +ldt $f28,Eight +divt $f29,$f28,$f29 +addt $f30,$f29,$f30 +stt $f30,SqEr +ldt $f30,SqEr +ldt $f29,MinSqEr +cmptlt $f30,$f29,$f1 +fbeq $f1,L.374 +ldt $f30,SqEr +stt $f30,MinSqEr +L.374: +ldt $f16,F9 +jsr $26,sqrt +ldgp $gp,0($26) +ldt $f29,U2 +ldt $f28,U1 +subt $f0,$f29,$f30 +ldt $f27,One +subt $f27,$f29,$f29 +subt $f30,$f29,$f30 +divt $f30,$f28,$f30 +stt $f30,Y +ldt $f30,Y +ldt $f29,Eight +divt $f28,$f29,$f29 +addt $f30,$f29,$f30 +stt $f30,SqEr +ldt $f30,SqEr +ldt $f29,MaxSqEr +cmptle $f30,$f29,$f1 +fbne $f1,L.376 +ldt $f30,SqEr +stt $f30,MaxSqEr +L.376: +ldt $f30,Y +ldt $f29,One +addt $f30,$f29,$f30 +ldt $f29,U1 +ldt $f28,Eight +divt $f29,$f28,$f29 +addt $f30,$f29,$f30 +stt $f30,SqEr +ldt $f30,SqEr +ldt $f29,MinSqEr +cmptlt $f30,$f29,$f1 +fbeq $f1,L.378 +ldt $f30,SqEr +stt $f30,MinSqEr +L.378: +ldt $f30,U2 +stt $f30,OneUlp +ldt $f30,OneUlp +stt $f30,X +lda $27,1 +stl $27,Indx +L.380: +ldt $f30,X +ldt $f29,U1 +addt $f30,$f29,$f29 +addt $f29,$f30,$f30 +ldt $f29,F9 +addt $f30,$f29,$f16 +jsr $26,sqrt +ldgp $gp,0($26) +stt $f0,Y +ldt $f30,U2 +ldt $f29,X +ldt $f28,OneUlp +ldt $f27,Y +subt $f27,$f30,$f27 +ldt $f26,One +subt $f26,$f30,$f30 +addt $f30,$f29,$f30 +subt $f27,$f30,$f30 +divt $f30,$f28,$f30 +stt $f30,Y +ldt $f30,Half +ldt $f27,U1 +subt $f27,$f29,$f27 +ldt $f26,F9 +addt $f27,$f26,$f27 +mult $f27,$f30,$f27 +mult $f27,$f29,$f27 +mult $f27,$f29,$f29 +divt $f29,$f28,$f29 +stt $f29,Z +ldt $f29,Y +addt $f29,$f30,$f30 +ldt $f29,Z +addt $f30,$f29,$f30 +stt $f30,SqEr +ldt $f30,SqEr +ldt $f29,MinSqEr +cmptlt $f30,$f29,$f1 +fbeq $f1,L.384 +ldt $f30,SqEr +stt $f30,MinSqEr +L.384: +ldt $f30,Y +ldt $f29,Half +subt $f30,$f29,$f30 +ldt $f29,Z +addt $f30,$f29,$f30 +stt $f30,SqEr +ldt $f30,SqEr +ldt $f29,MaxSqEr +cmptle $f30,$f29,$f1 +fbne $f1,L.386 +ldt $f30,SqEr +stt $f30,MaxSqEr +L.386: +ldl $27,Indx +cmpeq $27,1,$23 +bne $23,L.390 +cmpeq $27,3,$23 +beq $23,L.388 +L.390: +ldt $f16,X +jsr $26,Sign +ldgp $gp,0($26) +fmov $f0,$f30 +stt $f30,-160+256($sp) +ldt $f16,OneUlp +jsr $26,sqrt +ldgp $gp,0($26) +ldt $f29,Eight +ldt $f28,Nine +mult $f28,$f0,$f30 +divt $f29,$f30,$f16 +jsr $26,floor +ldgp $gp,0($26) +ldt $f29,OneUlp +ldt $f28,-160+256($sp) +mult $f29,$f28,$f29 +mult $f29,$f0,$f30 +stt $f30,X +br L.389 +L.388: +ldt $f30,U1 +stt $f30,OneUlp +ldt $f30,OneUlp +negt $f30,$f30 +stt $f30,X +L.389: +L.381: +ldl $27,Indx +lda $27,1($27) +stl $27,Indx +ldl $27,Indx +cmple $27,3,$23 +bne $23,L.380 +lda $27,85 +stl $27,Milestone +stl $31,SqRWrng +stl $31,Anomaly +stl $31,RSqrt +ldt $f30,Radix +ldt $f29,One +cmpteq $f30,$f29,$f1 +fbne $f1,L.391 +lda $16,L.393 +jsr $26,printf +ldgp $gp,0($26) +ldt $f30,Precision +stt $f30,-160+256($sp) +fmov $f30,$f16 +jsr $26,floor +ldgp $gp,0($26) +fmov $f0,$f30 +ldt $f16,Radix +ldt $f29,One +ldt $f28,-160+256($sp) +addt $f29,$f28,$f29 +subt $f29,$f30,$f17 +jsr $26,pow +ldgp $gp,0($26) +fmov $f0,$f30 +ldt $f29,Half +addt $f29,$f30,$f16 +jsr $26,floor +ldgp $gp,0($26) +stt $f0,D +ldt $f30,D +ldt $f29,Radix +divt $f30,$f29,$f29 +stt $f29,X +ldt $f29,A1 +divt $f30,$f29,$f30 +stt $f30,Y +ldt $f30,X +stt $f30,-168+256($sp) +fmov $f30,$f16 +jsr $26,floor +ldgp $gp,0($26) +ldt $f29,-168+256($sp) +cmpteq $f29,$f0,$f1 +fbeq $f1,L.396 +ldt $f30,Y +stt $f30,-176+256($sp) +fmov $f30,$f16 +jsr $26,floor +ldgp $gp,0($26) +ldt $f29,-176+256($sp) +cmpteq $f29,$f0,$f1 +fbne $f1,L.394 +L.396: +lda $27,1 +stl $27,Anomaly +br L.395 +L.394: +ldt $f30,Zero +stt $f30,X +ldt $f30,X +stt $f30,Z2 +ldt $f30,One +stt $f30,Y +ldt $f29,Y +stt $f29,Y2 +ldt $f29,Radix +subt $f29,$f30,$f30 +stt $f30,Z1 +ldt $f30,Four +ldt $f29,D +mult $f30,$f29,$f30 +stt $f30,FourD +L.397: +ldt $f30,Y2 +ldt $f29,Z2 +cmptle $f30,$f29,$f1 +fbne $f1,L.400 +ldt $f30,Radix +stt $f30,Q +ldt $f30,Y +stt $f30,Y1 +L.402: +ldt $f30,Q +stt $f30,-184+256($sp) +ldt $f29,Half +ldt $f28,Y1 +divt $f30,$f28,$f28 +subt $f29,$f28,$f16 +jsr $26,floor +ldgp $gp,0($26) +ldt $f29,Y1 +mult $f0,$f29,$f30 +ldt $f29,-184+256($sp) +addt $f29,$f30,$f16 +jsr $26,fabs +ldgp $gp,0($26) +stt $f0,X1 +ldt $f30,Y1 +stt $f30,Q +ldt $f30,X1 +stt $f30,Y1 +L.403: +ldt $f30,X1 +ldt $f29,Zero +cmptle $f30,$f29,$f1 +fbeq $f1,L.402 +ldt $f30,Q +ldt $f29,One +cmptle $f30,$f29,$f1 +fbeq $f1,L.405 +ldt $f30,Y2 +stt $f30,Z2 +ldt $f30,Y +stt $f30,Z +L.405: +L.400: +ldt $f30,Y +ldt $f29,Two +addt $f30,$f29,$f30 +stt $f30,Y +ldt $f30,X +ldt $f29,Eight +addt $f30,$f29,$f30 +stt $f30,X +ldt $f30,Y2 +ldt $f29,X +addt $f30,$f29,$f30 +stt $f30,Y2 +ldt $f30,Y2 +ldt $f29,FourD +cmptlt $f30,$f29,$f1 +fbne $f1,L.407 +ldt $f30,Y2 +ldt $f29,FourD +subt $f30,$f29,$f30 +stt $f30,Y2 +L.407: +L.398: +ldt $f30,Y +ldt $f29,D +cmptlt $f30,$f29,$f1 +fbne $f1,L.397 +ldt $f30,FourD +ldt $f29,Z2 +subt $f30,$f29,$f29 +stt $f29,X8 +ldt $f29,X8 +ldt $f28,Z +mult $f28,$f28,$f28 +addt $f29,$f28,$f28 +divt $f28,$f30,$f30 +stt $f30,Q +ldt $f30,Eight +divt $f29,$f30,$f30 +stt $f30,X8 +ldt $f30,Q +stt $f30,-184+256($sp) +fmov $f30,$f16 +jsr $26,floor +ldgp $gp,0($26) +ldt $f29,-184+256($sp) +cmpteq $f29,$f0,$f1 +fbne $f1,L.409 +lda $27,1 +stl $27,Anomaly +br L.410 +L.409: +stl $31,Break +L.411: +ldt $f30,Z1 +ldt $f29,Z +mult $f30,$f29,$f30 +stt $f30,X +ldt $f30,X +stt $f30,-192+256($sp) +ldt $f29,Radix +divt $f30,$f29,$f16 +jsr $26,floor +ldgp $gp,0($26) +ldt $f29,Radix +mult $f0,$f29,$f30 +ldt $f29,-192+256($sp) +subt $f29,$f30,$f30 +stt $f30,X +ldt $f30,X +ldt $f29,One +cmpteq $f30,$f29,$f1 +fbeq $f1,L.414 +lda $27,1 +stl $27,Break +br L.415 +L.414: +ldt $f30,Z1 +ldt $f29,One +subt $f30,$f29,$f30 +stt $f30,Z1 +L.415: +L.412: +ldl $27,Break +cmpeq $27,$31,$23 +beq $23,L.416 +ldt $f30,Z1 +ldt $f29,Zero +cmptle $f30,$f29,$f1 +fbeq $f1,L.411 +L.416: +ldt $f30,Z1 +ldt $f29,Zero +cmptle $f30,$f29,$f1 +fbeq $f1,L.417 +ldl $27,Break +cmpeq $27,$31,$23 +beq $23,L.417 +lda $27,1 +stl $27,Anomaly +br L.418 +L.417: +ldt $f30,Z1 +ldt $f29,RadixD2 +cmptle $f30,$f29,$f1 +fbne $f1,L.419 +ldt $f30,Z1 +ldt $f29,Radix +subt $f30,$f29,$f30 +stt $f30,Z1 +L.419: +L.421: +jsr $26,NewD +ldgp $gp,0($26) +L.422: +ldt $f30,U2 +ldt $f29,D +mult $f30,$f29,$f30 +ldt $f29,F9 +cmptlt $f30,$f29,$f1 +fbne $f1,L.421 +ldt $f30,D +ldt $f29,Radix +mult $f30,$f29,$f29 +subt $f29,$f30,$f29 +ldt $f28,W +subt $f28,$f30,$f30 +cmpteq $f29,$f30,$f1 +fbne $f1,L.424 +lda $27,1 +stl $27,Anomaly +br L.425 +L.424: +ldt $f30,D +stt $f30,Z2 +stl $31,I +ldt $f29,Z +ldt $f28,One +addt $f28,$f29,$f28 +ldt $f27,Half +mult $f28,$f27,$f28 +addt $f30,$f28,$f28 +stt $f28,Y +addt $f30,$f29,$f30 +ldt $f29,Q +addt $f30,$f29,$f30 +stt $f30,X +jsr $26,SR3750 +ldgp $gp,0($26) +ldt $f30,D +ldt $f29,Z +ldt $f28,One +subt $f28,$f29,$f28 +ldt $f27,Half +mult $f28,$f27,$f28 +addt $f30,$f28,$f28 +addt $f28,$f30,$f28 +stt $f28,Y +subt $f30,$f29,$f29 +addt $f29,$f30,$f30 +stt $f30,X +ldt $f30,X +ldt $f29,Q +addt $f30,$f29,$f29 +addt $f29,$f30,$f30 +stt $f30,X +jsr $26,SR3750 +ldgp $gp,0($26) +jsr $26,NewD +ldgp $gp,0($26) +ldt $f30,Z2 +ldt $f29,D +subt $f29,$f30,$f29 +ldt $f28,W +subt $f28,$f30,$f30 +cmpteq $f29,$f30,$f1 +fbne $f1,L.426 +lda $27,1 +stl $27,Anomaly +br L.427 +L.426: +ldt $f30,Z2 +ldt $f29,D +subt $f29,$f30,$f29 +ldt $f28,Z +ldt $f27,One +subt $f27,$f28,$f27 +ldt $f26,Half +mult $f27,$f26,$f27 +addt $f30,$f27,$f27 +addt $f29,$f27,$f27 +stt $f27,Y +subt $f30,$f28,$f30 +ldt $f28,Q +addt $f30,$f28,$f30 +addt $f29,$f30,$f30 +stt $f30,X +jsr $26,SR3750 +ldgp $gp,0($26) +ldt $f30,One +ldt $f29,Z +addt $f30,$f29,$f30 +ldt $f29,Half +mult $f30,$f29,$f30 +stt $f30,Y +ldt $f30,Q +stt $f30,X +jsr $26,SR3750 +ldgp $gp,0($26) +ldl $27,I +cmpeq $27,$31,$23 +beq $23,L.428 +lda $27,1 +stl $27,Anomaly +L.428: +L.427: +L.425: +L.418: +L.410: +L.395: +ldl $25,I +cmpeq $25,$31,$23 +bne $23,L.432 +ldl $25,Anomaly +cmpeq $25,$31,$23 +bne $23,L.430 +L.432: +mov $31,$16 +lda $17,L.433 +jsr $26,BadCond +ldgp $gp,0($26) +lda $16,L.434 +ldt $f17,W +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.435 +jsr $26,printf +ldgp $gp,0($26) +lda $27,1 +stl $27,SqRWrng +L.430: +L.391: +ldl $27,Anomaly +cmpeq $27,$31,$23 +beq $23,L.436 +ldt $f30,Zero +ldt $f29,MinSqEr +cmptlt $f29,$f30,$f1 +fbne $f1,L.438 +ldt $f29,MaxSqEr +cmptle $f29,$f30,$f1 +fbeq $f1,L.438 +lda $27,1 +stl $27,RSqrt +lda $16,L.440 +jsr $26,printf +ldgp $gp,0($26) +br L.439 +L.438: +ldt $f30,U2 +ldt $f29,Half +ldt $f28,MaxSqEr +addt $f28,$f30,$f28 +subt $f30,$f29,$f30 +cmptle $f28,$f30,$f1 +fbeq $f1,L.444 +ldt $f30,MinSqEr +cmptle $f30,$f29,$f1 +fbeq $f1,L.444 +ldt $f28,Radix +addt $f30,$f28,$f30 +cmptlt $f30,$f29,$f1 +fbeq $f1,L.441 +L.444: +lda $27,1 +stl $27,SqRWrng +br L.442 +L.441: +lda $27,2 +stl $27,RSqrt +lda $16,L.445 +jsr $26,printf +ldgp $gp,0($26) +L.442: +L.439: +L.436: +ldl $27,SqRWrng +cmpeq $27,$31,$23 +bne $23,L.446 +lda $16,L.448 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.449 +ldt $f30,MinSqEr +ldt $f29,Half +subt $f30,$f29,$f17 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.450 +ldt $f30,Half +ldt $f29,MaxSqEr +addt $f30,$f29,$f17 +jsr $26,printf +ldgp $gp,0($26) +lda $16,1 +ldt $f30,Radix +ldt $f29,MaxSqEr +ldt $f28,MinSqEr +subt $f29,$f28,$f29 +mult $f30,$f30,$f30 +cmptlt $f29,$f30,$f1 +fbeq $f1,L.453 +lda $27,1 +stl $27,-156+256($sp) +br L.454 +L.453: +stl $31,-156+256($sp) +L.454: +ldl $17,-156+256($sp) +lda $18,L.452 +jsr $26,TstCond +ldgp $gp,0($26) +L.446: +lda $27,90 +stl $27,Milestone +jsr $26,Pause +ldgp $gp,0($26) +lda $16,L.455 +jsr $26,printf +ldgp $gp,0($26) +stl $31,N +stl $31,I +ldt $f30,Zero +negt $f30,$f30 +stt $f30,Z +lda $25,3 +stl $25,M +stl $31,Break +L.456: +ldt $f30,One +stt $f30,X +jsr $26,SR3980 +ldgp $gp,0($26) +ldl $27,I +cmple $27,10,$23 +beq $23,L.459 +lda $27,1023 +stl $27,I +jsr $26,SR3980 +ldgp $gp,0($26) +L.459: +ldt $f30,Z +ldt $f29,MinusOne +cmpteq $f30,$f29,$f1 +fbeq $f1,L.461 +lda $27,1 +stl $27,Break +br L.462 +L.461: +ldt $f30,MinusOne +stt $f30,Z +jsr $26,PrintIfNPositive +ldgp $gp,0($26) +stl $31,N +lda $27,-4 +stl $27,I +L.462: +L.457: +ldl $27,Break +cmpeq $27,$31,$23 +bne $23,L.456 +jsr $26,PrintIfNPositive +ldgp $gp,0($26) +ldl $27,N +stl $27,N1 +stl $31,N +ldt $f30,A1 +stt $f30,Z +ldt $f16,W +jsr $26,log +ldgp $gp,0($26) +fmov $f0,$f30 +stt $f30,-160+256($sp) +ldt $f16,A1 +jsr $26,log +ldgp $gp,0($26) +fmov $f0,$f30 +ldt $f29,Two +ldt $f28,-160+256($sp) +mult $f29,$f28,$f29 +divt $f29,$f30,$f16 +jsr $26,floor +ldgp $gp,0($26) +cvttqc $f0,$f1 +cvtql $f1,$f1 +sts $f1,-56+256($sp) +ldl $27,-56+256($sp) +stl $27,M +stl $31,Break +L.463: +ldt $f30,Z +stt $f30,X +lda $27,1 +stl $27,I +jsr $26,SR3980 +ldgp $gp,0($26) +ldt $f30,Z +ldt $f29,AInvrse +cmpteq $f30,$f29,$f1 +fbeq $f1,L.466 +lda $27,1 +stl $27,Break +br L.467 +L.466: +ldt $f30,AInvrse +stt $f30,Z +L.467: +L.464: +ldl $27,Break +cmpeq $27,$31,$23 +bne $23,L.463 +lda $27,100 +stl $27,Milestone +ldl $27,NoTrials +stl $27,M +ldt $f30,Three +stt $f30,Z +L.468: +ldt $f30,Z +stt $f30,X +lda $27,1 +stl $27,I +jsr $26,SR3980 +ldgp $gp,0($26) +L.471: +ldt $f30,Z +ldt $f29,Two +addt $f30,$f29,$f30 +stt $f30,Z +L.472: +ldt $f30,Three +stt $f30,-168+256($sp) +ldt $f29,Z +divt $f29,$f30,$f16 +jsr $26,floor +ldgp $gp,0($26) +ldt $f29,-168+256($sp) +mult $f29,$f0,$f30 +ldt $f29,Z +cmpteq $f30,$f29,$f1 +fbne $f1,L.471 +L.469: +ldt $f30,Z +ldt $f29,Eight +ldt $f28,Three +mult $f29,$f28,$f29 +cmptlt $f30,$f29,$f1 +fbne $f1,L.468 +ldl $27,N +cmple $27,$31,$23 +bne $23,L.474 +lda $16,L.476 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.477 +jsr $26,printf +ldgp $gp,0($26) +L.474: +jsr $26,PrintIfNPositive +ldgp $gp,0($26) +ldl $27,N +ldl $25,N1 +addl $27,$25,$27 +stl $27,N +ldl $27,N +cmpeq $27,$31,$23 +beq $23,L.478 +lda $16,L.480 +jsr $26,printf +ldgp $gp,0($26) +L.478: +ldl $27,N +cmple $27,$31,$23 +bne $23,L.481 +jsr $26,Pause +ldgp $gp,0($26) +br L.482 +L.481: +lda $16,L.45 +jsr $26,printf +ldgp $gp,0($26) +L.482: +lda $27,110 +stl $27,Milestone +lda $16,L.483 +jsr $26,printf +ldgp $gp,0($26) +ldt $f30,U1 +stt $f30,D +ldt $f30,Precision +stt $f30,-168+256($sp) +fmov $f30,$f16 +jsr $26,floor +ldgp $gp,0($26) +ldt $f29,-168+256($sp) +cmpteq $f29,$f0,$f1 +fbne $f1,L.484 +ldt $f30,BInvrse +stt $f30,D +ldt $f30,Precision +stt $f30,X +L.486: +ldt $f30,D +ldt $f29,BInvrse +mult $f30,$f29,$f30 +stt $f30,D +ldt $f30,X +ldt $f29,One +subt $f30,$f29,$f30 +stt $f30,X +L.487: +ldt $f30,X +ldt $f29,Zero +cmptle $f30,$f29,$f1 +fbeq $f1,L.486 +L.484: +ldt $f30,One +stt $f30,Y +ldt $f30,D +stt $f30,Z +L.489: +ldt $f30,Y +stt $f30,C +ldt $f30,Z +stt $f30,Y +ldt $f30,Y +mult $f30,$f30,$f30 +stt $f30,Z +L.490: +ldt $f30,Z +ldt $f29,Y +cmptle $f29,$f30,$f1 +fbne $f1,L.492 +addt $f30,$f30,$f29 +cmptle $f29,$f30,$f1 +fbeq $f1,L.489 +L.492: +ldt $f30,C +stt $f30,Y +ldt $f30,Y +ldt $f29,D +mult $f30,$f29,$f30 +stt $f30,Z +L.493: +ldt $f30,Y +stt $f30,C +ldt $f30,Z +stt $f30,Y +ldt $f30,Y +ldt $f29,D +mult $f30,$f29,$f30 +stt $f30,Z +L.494: +ldt $f30,Z +ldt $f29,Y +cmptle $f29,$f30,$f1 +fbne $f1,L.496 +addt $f30,$f30,$f29 +cmptle $f29,$f30,$f1 +fbeq $f1,L.493 +L.496: +ldt $f30,Radix +ldt $f29,Two +cmptlt $f30,$f29,$f1 +fbeq $f1,L.497 +ldt $f30,Two +stt $f30,HInvrse +br L.498 +L.497: +ldt $f30,Radix +stt $f30,HInvrse +L.498: +ldt $f30,One +ldt $f29,HInvrse +divt $f30,$f29,$f29 +stt $f29,H +ldt $f29,C +divt $f30,$f29,$f30 +stt $f30,CInvrse +stt $f29,E0 +ldt $f30,E0 +ldt $f29,H +mult $f30,$f29,$f30 +stt $f30,Z +L.499: +ldt $f30,E0 +stt $f30,Y +ldt $f30,Z +stt $f30,E0 +ldt $f30,E0 +ldt $f29,H +mult $f30,$f29,$f30 +stt $f30,Z +L.500: +ldt $f30,Z +ldt $f29,E0 +cmptle $f29,$f30,$f1 +fbne $f1,L.502 +addt $f30,$f30,$f29 +cmptle $f29,$f30,$f1 +fbeq $f1,L.499 +L.502: +ldt $f30,E0 +stt $f30,UfThold +ldt $f30,Zero +stt $f30,E1 +stt $f30,Q +ldt $f30,U2 +stt $f30,E9 +ldt $f30,One +ldt $f29,E9 +addt $f30,$f29,$f30 +stt $f30,S +ldt $f30,C +ldt $f29,S +mult $f30,$f29,$f29 +stt $f29,D +ldt $f29,D +cmptle $f29,$f30,$f1 +fbeq $f1,L.503 +ldt $f30,Radix +ldt $f29,U2 +mult $f30,$f29,$f30 +stt $f30,E9 +ldt $f30,One +ldt $f29,E9 +addt $f30,$f29,$f30 +stt $f30,S +ldt $f30,C +ldt $f29,S +mult $f30,$f29,$f29 +stt $f29,D +ldt $f29,D +cmptle $f29,$f30,$f1 +fbeq $f1,L.504 +mov $31,$16 +lda $17,L.507 +jsr $26,BadCond +ldgp $gp,0($26) +ldt $f30,E0 +stt $f30,Underflow +ldt $f30,Zero +stt $f30,Y1 +ldt $f30,Z +stt $f30,PseudoZero +jsr $26,Pause +ldgp $gp,0($26) +br L.504 +L.503: +ldt $f30,D +stt $f30,Underflow +ldt $f30,Underflow +ldt $f29,H +mult $f30,$f29,$f30 +stt $f30,PseudoZero +ldt $f30,Zero +stt $f30,UfThold +L.508: +ldt $f30,Underflow +stt $f30,Y1 +ldt $f30,PseudoZero +stt $f30,Underflow +ldt $f30,E1 +addt $f30,$f30,$f29 +cmptle $f29,$f30,$f1 +fbeq $f1,L.511 +ldt $f30,Underflow +ldt $f29,HInvrse +mult $f30,$f29,$f30 +stt $f30,Y2 +ldt $f30,Y1 +ldt $f29,Y2 +subt $f30,$f29,$f16 +jsr $26,fabs +ldgp $gp,0($26) +stt $f0,E1 +ldt $f30,Y1 +stt $f30,Q +ldt $f30,UfThold +ldt $f29,Zero +cmpteq $f30,$f29,$f1 +fbeq $f1,L.513 +ldt $f30,Y1 +ldt $f29,Y2 +cmpteq $f30,$f29,$f1 +fbne $f1,L.513 +ldt $f30,Y1 +stt $f30,UfThold +L.513: +L.511: +ldt $f30,PseudoZero +ldt $f29,H +mult $f30,$f29,$f30 +stt $f30,PseudoZero +L.509: +ldt $f30,PseudoZero +ldt $f29,Underflow +cmptle $f29,$f30,$f1 +fbne $f1,L.515 +addt $f30,$f30,$f29 +cmptle $f29,$f30,$f1 +fbeq $f1,L.508 +L.515: +L.504: +ldt $f30,PseudoZero +ldt $f29,Zero +cmpteq $f30,$f29,$f1 +fbne $f1,L.516 +lda $16,L.45 +jsr $26,printf +ldgp $gp,0($26) +ldt $f30,PseudoZero +stt $f30,Z +ldt $f29,Zero +cmptle $f30,$f29,$f1 +fbeq $f1,L.518 +mov $31,$16 +lda $17,L.520 +jsr $26,BadCond +ldgp $gp,0($26) +lda $16,L.521 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.522 +ldt $f17,PseudoZero +jsr $26,printf +ldgp $gp,0($26) +ldt $f30,PseudoZero +negt $f30,$f30 +stt $f30,X +ldt $f30,X +ldt $f29,Zero +cmptle $f30,$f29,$f1 +fbeq $f1,L.519 +lda $16,L.525 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.526 +ldt $f17,X +jsr $26,printf +ldgp $gp,0($26) +br L.519 +L.518: +lda $16,3 +lda $17,L.527 +jsr $26,BadCond +ldgp $gp,0($26) +lda $16,L.528 +ldt $f17,PseudoZero +jsr $26,printf +ldgp $gp,0($26) +L.519: +jsr $26,TstPtUf +ldgp $gp,0($26) +L.516: +lda $27,120 +stl $27,Milestone +ldt $f30,CInvrse +ldt $f29,Y +mult $f30,$f29,$f29 +ldt $f28,Y1 +mult $f30,$f28,$f30 +cmptle $f29,$f30,$f1 +fbne $f1,L.529 +ldt $f30,H +ldt $f29,S +mult $f30,$f29,$f30 +stt $f30,S +ldt $f30,Underflow +stt $f30,E0 +L.529: +ldt $f30,E1 +ldt $f29,Zero +cmpteq $f30,$f29,$f1 +fbne $f1,L.531 +ldt $f29,E0 +cmpteq $f30,$f29,$f1 +fbne $f1,L.531 +lda $16,2 +lda $17,L.158 +jsr $26,BadCond +ldgp $gp,0($26) +ldt $f30,E1 +ldt $f29,E0 +cmptlt $f30,$f29,$f1 +fbeq $f1,L.533 +lda $16,L.535 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.536 +jsr $26,printf +ldgp $gp,0($26) +ldt $f30,PseudoZero +ldt $f29,Zero +cmpteq $f30,$f29,$f1 +fbeq $f1,L.534 +ldt $f30,E1 +stt $f30,E0 +br L.534 +L.533: +lda $16,L.539 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.540 +jsr $26,printf +ldgp $gp,0($26) +L.534: +L.531: +lda $16,L.541 +ldt $f17,E0 +jsr $26,printf +ldgp $gp,0($26) +ldt $f30,E0 +stt $f30,Z +jsr $26,TstPtUf +ldgp $gp,0($26) +ldt $f30,E0 +stt $f30,Underflow +ldl $27,N +cmpeq $27,1,$23 +beq $23,L.542 +ldt $f30,Y +stt $f30,Underflow +L.542: +lda $27,4 +stl $27,I +ldt $f30,E1 +ldt $f29,Zero +cmpteq $f30,$f29,$f1 +fbeq $f1,L.544 +lda $27,3 +stl $27,I +L.544: +ldt $f30,UfThold +ldt $f29,Zero +cmpteq $f30,$f29,$f1 +fbeq $f1,L.546 +ldl $27,I +subl $27,2,$27 +stl $27,I +L.546: +lda $27,1 +stl $27,UfNGrad +ldl $27,I +cmplt $27,1,$23 +bne $23,L.548 +cmple $27,4,$23 +beq $23,L.548 +subl $27,1,$27 +sll $27,3,$27 +ldq $27,L.571($27) +jmp ($27) +.rdata +.align 3 +L.571: +.quad L.550 +.quad L.557 +.quad L.562 +.quad L.563 +.text +L.550: +ldt $f30,Underflow +stt $f30,UfThold +ldt $f30,CInvrse +ldt $f29,Q +mult $f30,$f29,$f29 +ldt $f28,Y +mult $f30,$f28,$f30 +ldt $f28,S +mult $f30,$f28,$f30 +cmpteq $f29,$f30,$f1 +fbne $f1,L.551 +ldt $f30,Y +stt $f30,UfThold +mov $31,$16 +lda $17,L.553 +jsr $26,BadCond +ldgp $gp,0($26) +lda $16,L.554 +ldt $f17,UfThold +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.555 +ldt $f17,C +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.556 +jsr $26,printf +ldgp $gp,0($26) +L.551: +jsr $26,Pause +ldgp $gp,0($26) +br L.549 +L.557: +mov $31,$16 +lda $17,L.558 +jsr $26,BadCond +ldgp $gp,0($26) +lda $16,L.559 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.560 +ldt $f17,Q +ldt $f18,Y2 +jsr $26,printf +ldgp $gp,0($26) +ldt $f30,Q +ldt $f29,Y2 +subt $f30,$f29,$f16 +jsr $26,fabs +ldgp $gp,0($26) +fmov $f0,$f30 +lda $16,L.561 +fmov $f30,$f17 +jsr $26,printf +ldgp $gp,0($26) +ldt $f30,Q +stt $f30,UfThold +br L.549 +L.562: +ldt $f30,X +stt $f30,X +br L.549 +L.563: +ldt $f30,UfThold +ldt $f29,Q +cmpteq $f29,$f30,$f1 +fbeq $f1,L.564 +ldt $f29,E1 +ldt $f28,E0 +cmpteq $f29,$f28,$f1 +fbeq $f1,L.564 +ldt $f28,E9 +divt $f29,$f28,$f29 +subt $f30,$f29,$f16 +jsr $26,fabs +ldgp $gp,0($26) +ldt $f29,E1 +cmptle $f0,$f29,$f1 +fbeq $f1,L.564 +stl $31,UfNGrad +lda $16,L.566 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.567 +jsr $26,printf +ldgp $gp,0($26) +ldt $f30,E0 +ldt $f29,CInvrse +mult $f30,$f29,$f28 +stt $f28,Y +ldt $f28,U2 +ldt $f27,Y +ldt $f26,OneAndHalf +addt $f26,$f28,$f26 +mult $f27,$f26,$f27 +stt $f27,Y +ldt $f27,One +addt $f27,$f28,$f28 +mult $f29,$f28,$f29 +stt $f29,X +ldt $f29,Y +ldt $f28,X +divt $f29,$f28,$f29 +stt $f29,Y +ldt $f29,Y +cmpteq $f29,$f30,$f1 +fbeq $f1,L.569 +lda $27,1 +stl $27,-172+256($sp) +br L.570 +L.569: +stl $31,-172+256($sp) +L.570: +ldl $27,-172+256($sp) +stl $27,IEEE +L.564: +L.548: +L.549: +ldl $27,UfNGrad +cmpeq $27,$31,$23 +bne $23,L.572 +lda $16,L.45 +jsr $26,printf +ldgp $gp,0($26) +lda $27,sigfpe +stq $27,sigsave +lda $16,ovfl_buf +jsr $26,setjmp +ldgp $gp,0($26) +cmpeq $0,$31,$23 +bne $23,L.574 +lda $16,L.576 +jsr $26,printf +ldgp $gp,0($26) +ldt $f30,H +addt $f30,$f30,$f30 +stt $f30,R +br L.575 +L.574: +ldt $f30,Underflow +ldt $f29,UfThold +divt $f30,$f29,$f16 +jsr $26,sqrt +ldgp $gp,0($26) +stt $f0,R +L.575: +stq $31,sigsave +ldt $f30,R +ldt $f29,H +cmptle $f30,$f29,$f1 +fbeq $f1,L.577 +ldt $f30,R +ldt $f29,UfThold +mult $f30,$f29,$f29 +stt $f29,Z +ldt $f29,One +ldt $f28,H +ldt $f27,Z +mult $f30,$f28,$f30 +addt $f29,$f28,$f28 +mult $f30,$f28,$f30 +addt $f29,$f30,$f30 +mult $f27,$f30,$f30 +stt $f30,X +br L.578 +L.577: +ldt $f30,UfThold +stt $f30,Z +ldt $f30,One +ldt $f29,H +ldt $f28,Z +mult $f29,$f29,$f27 +addt $f30,$f29,$f29 +mult $f27,$f29,$f29 +addt $f30,$f29,$f30 +mult $f28,$f30,$f30 +stt $f30,X +L.578: +ldt $f30,X +ldt $f29,Z +cmpteq $f30,$f29,$f1 +fbne $f1,L.579 +subt $f30,$f29,$f30 +ldt $f29,Zero +cmpteq $f30,$f29,$f1 +fbeq $f1,L.579 +lda $16,3 +lda $17,L.158 +jsr $26,BadCond +ldgp $gp,0($26) +lda $16,L.581 +ldt $f17,X +ldt $f18,Z +jsr $26,printf +ldgp $gp,0($26) +ldt $f30,X +ldt $f29,Z +subt $f30,$f29,$f30 +stt $f30,Z9 +lda $16,L.582 +ldt $f17,Z9 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.583 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.584 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.585 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.586 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.587 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.588 +jsr $26,printf +ldgp $gp,0($26) +lda $27,sigfpe +stq $27,sigsave +lda $16,ovfl_buf +jsr $26,setjmp +ldgp $gp,0($26) +cmpeq $0,$31,$23 +bne $23,L.589 +lda $16,L.591 +jsr $26,printf +ldgp $gp,0($26) +br L.590 +L.589: +lda $16,L.592 +ldt $f30,Half +ldt $f29,X +ldt $f28,Z +divt $f29,$f28,$f29 +subt $f29,$f30,$f29 +subt $f29,$f30,$f17 +jsr $26,printf +ldgp $gp,0($26) +L.590: +stq $31,sigsave +L.579: +L.572: +lda $16,L.593 +ldt $f17,UfThold +lda $18,L.594 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.595 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.596 +jsr $26,printf +ldgp $gp,0($26) +ldt $f30,U1 +mult $f30,$f30,$f29 +stt $f29,Y2 +ldt $f29,Y2 +mult $f29,$f29,$f29 +stt $f29,Y +ldt $f29,Y +mult $f29,$f30,$f30 +stt $f30,Y2 +ldt $f30,Y2 +ldt $f29,UfThold +cmptle $f30,$f29,$f1 +fbeq $f1,L.597 +ldt $f30,Y +ldt $f29,E0 +cmptle $f30,$f29,$f1 +fbne $f1,L.599 +lda $16,2 +lda $17,L.158 +jsr $26,BadCond +ldgp $gp,0($26) +lda $27,5 +stl $27,I +br L.600 +L.599: +lda $16,1 +lda $17,L.158 +jsr $26,BadCond +ldgp $gp,0($26) +lda $27,4 +stl $27,I +L.600: +lda $16,L.601 +ldl $17,I +jsr $26,printf +ldgp $gp,0($26) +L.597: +lda $27,130 +stl $27,Milestone +ldt $f16,UfThold +jsr $26,log +ldgp $gp,0($26) +fmov $f0,$f30 +stt $f30,-176+256($sp) +ldt $f16,HInvrse +jsr $26,log +ldgp $gp,0($26) +ldt $f29,Half +ldt $f28,TwoForty +ldt $f27,-176+256($sp) +mult $f28,$f27,$f28 +divt $f28,$f0,$f30 +subt $f29,$f30,$f16 +jsr $26,floor +ldgp $gp,0($26) +negt $f0,$f30 +ldt $f29,TwoForty +divt $f30,$f29,$f30 +stt $f30,Y +ldt $f30,Y +addt $f30,$f30,$f30 +stt $f30,Y2 +lda $16,L.602 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.603 +ldt $f17,HInvrse +ldt $f18,Y +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.604 +ldt $f17,HInvrse +ldt $f18,Y +jsr $26,printf +ldgp $gp,0($26) +ldt $f16,HInvrse +ldt $f17,Y2 +jsr $26,pow +ldgp $gp,0($26) +stt $f0,V9 +lda $16,L.605 +ldt $f17,V9 +jsr $26,printf +ldgp $gp,0($26) +ldt $f30,V9 +ldt $f29,Zero +cmptlt $f30,$f29,$f1 +fbne $f1,L.608 +ldt $f29,Radix +addt $f29,$f29,$f29 +ldt $f28,E9 +addt $f29,$f28,$f29 +ldt $f28,UfThold +mult $f29,$f28,$f29 +cmptle $f30,$f29,$f1 +fbne $f1,L.606 +L.608: +lda $16,1 +lda $17,L.609 +jsr $26,BadCond +ldgp $gp,0($26) +lda $16,L.610 +ldt $f17,UfThold +jsr $26,printf +ldgp $gp,0($26) +br L.607 +L.606: +ldt $f30,V9 +ldt $f29,UfThold +ldt $f28,One +ldt $f27,E9 +addt $f28,$f27,$f28 +mult $f29,$f28,$f29 +cmptle $f30,$f29,$f1 +fbeq $f1,L.611 +lda $16,L.613 +jsr $26,printf +ldgp $gp,0($26) +br L.612 +L.611: +lda $16,2 +lda $17,L.609 +jsr $26,BadCond +ldgp $gp,0($26) +lda $16,L.610 +ldt $f17,UfThold +jsr $26,printf +ldgp $gp,0($26) +L.612: +L.607: +lda $27,140 +stl $27,Milestone +lda $16,L.45 +jsr $26,printf +ldgp $gp,0($26) +ldt $f30,Zero +stt $f30,X +lda $27,2 +stl $27,I +ldt $f29,Two +ldt $f28,Three +mult $f29,$f28,$f29 +stt $f29,Y +stt $f30,Q +stl $31,N +L.614: +ldt $f30,X +stt $f30,Z +ldl $27,I +lda $27,1($27) +stl $27,I +ldl $27,I +ldt $f30,Y +addl $27,$27,$27 +stq $27,-56+256($sp) +ldt $f29,-56+256($sp) +cvtqt $f29,$f29 +divt $f30,$f29,$f30 +stt $f30,Y +ldt $f30,Y +ldt $f29,Q +addt $f30,$f29,$f30 +stt $f30,R +ldt $f30,Z +ldt $f29,R +addt $f30,$f29,$f28 +stt $f28,X +ldt $f28,X +subt $f30,$f28,$f30 +addt $f30,$f29,$f30 +stt $f30,Q +L.615: +ldt $f30,X +ldt $f29,Z +cmptle $f30,$f29,$f1 +fbeq $f1,L.614 +ldt $f30,OneAndHalf +ldt $f29,One +ldt $f28,Eight +divt $f29,$f28,$f29 +addt $f30,$f29,$f29 +ldt $f28,X +ldt $f27,ThirtyTwo +mult $f30,$f27,$f30 +divt $f28,$f30,$f30 +addt $f29,$f30,$f30 +stt $f30,Z +ldt $f30,Z +mult $f30,$f30,$f30 +stt $f30,X +ldt $f30,X +mult $f30,$f30,$f30 +stt $f30,Exp2 +ldt $f30,F9 +stt $f30,X +ldt $f30,X +ldt $f29,U1 +subt $f30,$f29,$f30 +stt $f30,Y +lda $16,L.617 +ldt $f17,Exp2 +jsr $26,printf +ldgp $gp,0($26) +lda $27,1 +stl $27,I +L.618: +ldt $f30,X +ldt $f29,BInvrse +subt $f30,$f29,$f28 +stt $f28,Z +ldt $f28,One +addt $f30,$f28,$f27 +ldt $f26,Z +subt $f28,$f29,$f29 +subt $f26,$f29,$f29 +divt $f27,$f29,$f29 +stt $f29,Z +fmov $f30,$f16 +ldt $f17,Z +jsr $26,pow +ldgp $gp,0($26) +ldt $f29,Exp2 +subt $f0,$f29,$f30 +stt $f30,Q +ldt $f16,Q +jsr $26,fabs +ldgp $gp,0($26) +ldt $f29,TwoForty +ldt $f28,U2 +mult $f29,$f28,$f29 +cmptle $f0,$f29,$f1 +fbne $f1,L.622 +lda $27,1 +stl $27,N +ldt $f30,BInvrse +ldt $f29,X +subt $f29,$f30,$f29 +ldt $f28,One +subt $f28,$f30,$f30 +subt $f29,$f30,$f30 +stt $f30,V9 +lda $16,2 +lda $17,L.624 +jsr $26,BadCond +ldgp $gp,0($26) +ldt $f16,X +ldt $f17,Z +jsr $26,pow +ldgp $gp,0($26) +fmov $f0,$f30 +lda $16,L.625 +fmov $f30,$f17 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.626 +ldt $f17,V9 +ldt $f18,Z +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.627 +ldt $f17,Q +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.628 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.629 +jsr $26,printf +ldgp $gp,0($26) +br L.620 +L.622: +ldt $f30,Y +ldt $f29,X +subt $f30,$f29,$f29 +ldt $f28,Two +mult $f29,$f28,$f29 +addt $f29,$f30,$f29 +stt $f29,Z +stt $f30,X +ldt $f30,Z +stt $f30,Y +ldt $f30,X +ldt $f29,F9 +subt $f30,$f29,$f30 +ldt $f29,One +mult $f30,$f30,$f30 +addt $f29,$f30,$f30 +stt $f30,Z +ldt $f30,Z +ldt $f29,One +cmptle $f30,$f29,$f1 +fbne $f1,L.630 +ldl $27,I +ldl $25,NoTrials +cmplt $27,$25,$23 +beq $23,L.630 +ldl $27,I +lda $27,1($27) +stl $27,I +br L.618 +L.630: +ldt $f30,X +ldt $f29,One +cmptle $f30,$f29,$f1 +fbne $f1,L.632 +ldl $27,N +cmpeq $27,$31,$23 +beq $23,L.620 +lda $16,L.636 +jsr $26,printf +ldgp $gp,0($26) +br L.620 +L.632: +ldt $f30,U2 +ldt $f29,One +addt $f29,$f30,$f29 +stt $f29,X +addt $f30,$f30,$f30 +stt $f30,Y +ldt $f30,Y +ldt $f29,X +addt $f30,$f29,$f30 +stt $f30,Y +lda $27,1 +stl $27,I +br L.618 +L.620: +lda $27,150 +stl $27,Milestone +lda $16,L.637 +jsr $26,printf +ldgp $gp,0($26) +stl $31,N +ldt $f30,A1 +stt $f30,Z +ldt $f16,C +jsr $26,log +ldgp $gp,0($26) +fmov $f0,$f30 +stt $f30,-184+256($sp) +ldt $f16,A1 +jsr $26,log +ldgp $gp,0($26) +ldt $f29,Half +ldt $f28,-184+256($sp) +divt $f28,$f0,$f30 +subt $f29,$f30,$f16 +jsr $26,floor +ldgp $gp,0($26) +stt $f0,Q +stl $31,Break +L.638: +ldt $f30,CInvrse +stt $f30,X +ldt $f16,Z +ldt $f17,Q +jsr $26,pow +ldgp $gp,0($26) +stt $f0,Y +jsr $26,IsYeqX +ldgp $gp,0($26) +ldt $f30,Q +negt $f30,$f30 +stt $f30,Q +ldt $f30,C +stt $f30,X +ldt $f16,Z +ldt $f17,Q +jsr $26,pow +ldgp $gp,0($26) +stt $f0,Y +jsr $26,IsYeqX +ldgp $gp,0($26) +ldt $f30,Z +ldt $f29,One +cmptlt $f30,$f29,$f1 +fbeq $f1,L.641 +lda $27,1 +stl $27,Break +br L.642 +L.641: +ldt $f30,AInvrse +stt $f30,Z +L.642: +L.639: +ldl $27,Break +cmpeq $27,$31,$23 +bne $23,L.638 +jsr $26,PrintIfNPositive +ldgp $gp,0($26) +ldl $27,N +cmpeq $27,$31,$23 +beq $23,L.643 +lda $16,L.645 +jsr $26,printf +ldgp $gp,0($26) +L.643: +lda $16,L.45 +jsr $26,printf +ldgp $gp,0($26) +lda $27,160 +stl $27,Milestone +jsr $26,Pause +ldgp $gp,0($26) +lda $16,L.646 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.647 +jsr $26,printf +ldgp $gp,0($26) +ldt $f30,CInvrse +negt $f30,$f30 +stt $f30,Y +ldt $f30,HInvrse +ldt $f29,Y +mult $f30,$f29,$f30 +stt $f30,V9 +lda $27,sigfpe +stq $27,sigsave +lda $16,ovfl_buf +jsr $26,setjmp +ldgp $gp,0($26) +cmpeq $0,$31,$23 +bne $23,L.648 +stl $31,I +ldt $f30,Y +stt $f30,V9 +br L.650 +L.648: +L.651: +ldt $f30,Y +stt $f30,V +ldt $f30,V9 +stt $f30,Y +ldt $f30,HInvrse +ldt $f29,Y +mult $f30,$f29,$f30 +stt $f30,V9 +L.652: +ldt $f30,V9 +ldt $f29,Y +cmptlt $f30,$f29,$f1 +fbne $f1,L.651 +lda $27,1 +stl $27,I +L.650: +stq $31,sigsave +ldt $f30,V9 +stt $f30,Z +lda $16,L.654 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.655 +ldt $f17,Y +jsr $26,printf +ldgp $gp,0($26) +ldt $f30,Y +negt $f30,$f29 +stt $f29,V9 +ldt $f29,V9 +stt $f29,V0 +ldt $f29,V +subt $f29,$f30,$f30 +ldt $f28,V0 +addt $f29,$f28,$f29 +cmpteq $f30,$f29,$f1 +fbeq $f1,L.656 +lda $16,L.658 +jsr $26,printf +ldgp $gp,0($26) +br L.657 +L.656: +lda $16,L.659 +jsr $26,printf +ldgp $gp,0($26) +lda $16,3 +lda $17,L.660 +jsr $26,BadCond +ldgp $gp,0($26) +L.657: +ldt $f30,Z +ldt $f29,Y +cmpteq $f30,$f29,$f1 +fbne $f1,L.661 +lda $16,1 +lda $17,L.158 +jsr $26,BadCond +ldgp $gp,0($26) +lda $16,L.663 +ldt $f17,Y +ldt $f18,Z +jsr $26,printf +ldgp $gp,0($26) +L.661: +ldl $27,I +cmpeq $27,$31,$23 +bne $23,L.664 +ldt $f30,V +ldt $f29,HInvrse +ldt $f28,U2 +mult $f29,$f28,$f27 +subt $f27,$f29,$f27 +mult $f30,$f27,$f27 +stt $f27,Y +ldt $f27,Y +ldt $f26,One +subt $f26,$f29,$f29 +mult $f29,$f28,$f29 +mult $f29,$f30,$f30 +addt $f27,$f30,$f30 +stt $f30,Z +ldt $f30,Z +ldt $f29,V0 +cmptlt $f30,$f29,$f1 +fbeq $f1,L.666 +ldt $f30,Z +stt $f30,Y +L.666: +ldt $f30,Y +ldt $f29,V0 +cmptlt $f30,$f29,$f1 +fbeq $f1,L.668 +ldt $f30,Y +stt $f30,V +L.668: +ldt $f30,V0 +ldt $f29,V +subt $f30,$f29,$f29 +cmptlt $f29,$f30,$f1 +fbeq $f1,L.665 +ldt $f30,V0 +stt $f30,V +br L.665 +L.664: +ldt $f30,Y +ldt $f29,HInvrse +ldt $f28,U2 +mult $f29,$f28,$f27 +subt $f27,$f29,$f27 +mult $f30,$f27,$f27 +stt $f27,V +ldt $f27,V +ldt $f26,One +subt $f26,$f29,$f29 +mult $f29,$f28,$f29 +mult $f29,$f30,$f30 +addt $f27,$f30,$f30 +stt $f30,V +L.665: +lda $16,L.672 +ldt $f17,V +jsr $26,printf +ldgp $gp,0($26) +ldl $27,I +cmpeq $27,$31,$23 +bne $23,L.673 +lda $16,L.675 +ldt $f17,V0 +jsr $26,printf +ldgp $gp,0($26) +br L.674 +L.673: +lda $16,L.676 +jsr $26,printf +ldgp $gp,0($26) +L.674: +ldt $f30,V +ldt $f29,One +mult $f30,$f29,$f30 +stt $f30,V9 +lda $16,L.677 +ldt $f17,V9 +jsr $26,printf +ldgp $gp,0($26) +ldt $f30,V +ldt $f29,One +divt $f30,$f29,$f30 +stt $f30,V9 +lda $16,L.678 +ldt $f17,V9 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.679 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.680 +jsr $26,printf +ldgp $gp,0($26) +lda $27,170 +stl $27,Milestone +ldt $f30,V +negt $f30,$f29 +cmptlt $f29,$f30,$f1 +fbeq $f1,L.685 +ldt $f29,V0 +negt $f29,$f28 +cmptlt $f28,$f29,$f1 +fbeq $f1,L.685 +ldt $f29,UfThold +negt $f29,$f28 +cmptlt $f28,$f30,$f1 +fbeq $f1,L.685 +cmptlt $f29,$f30,$f1 +fbne $f1,L.681 +L.685: +mov $31,$16 +lda $17,L.686 +jsr $26,BadCond +ldgp $gp,0($26) +lda $16,L.687 +ldt $f17,V +ldt $f18,V0 +ldt $f19,UfThold +jsr $26,printf +ldgp $gp,0($26) +L.681: +lda $27,175 +stl $27,Milestone +lda $16,L.45 +jsr $26,printf +ldgp $gp,0($26) +lda $27,1 +stl $27,Indx +L.688: +ldl $27,Indx +cmpeq $27,1,$23 +bne $23,L.694 +cmpeq $27,2,$23 +bne $23,L.695 +cmpeq $27,3,$23 +bne $23,L.696 +br L.692 +L.694: +ldt $f30,UfThold +stt $f30,Z +br L.693 +L.695: +ldt $f30,E0 +stt $f30,Z +br L.693 +L.696: +ldt $f30,PseudoZero +stt $f30,Z +L.692: +L.693: +ldt $f30,Z +ldt $f29,Zero +cmpteq $f30,$f29,$f1 +fbne $f1,L.697 +ldt $f16,Z +jsr $26,sqrt +ldgp $gp,0($26) +stt $f0,V9 +ldt $f30,V9 +mult $f30,$f30,$f30 +stt $f30,Y +ldt $f30,Y +ldt $f29,One +ldt $f28,Radix +ldt $f27,E9 +mult $f28,$f27,$f28 +ldt $f27,Z +subt $f29,$f28,$f26 +divt $f30,$f26,$f26 +cmptlt $f26,$f27,$f1 +fbne $f1,L.701 +addt $f29,$f28,$f29 +mult $f29,$f27,$f29 +cmptle $f30,$f29,$f1 +fbne $f1,L.699 +L.701: +ldt $f30,V9 +ldt $f29,U1 +cmptle $f30,$f29,$f1 +fbne $f1,L.702 +lda $16,1 +lda $17,L.158 +jsr $26,BadCond +ldgp $gp,0($26) +br L.703 +L.702: +lda $16,2 +lda $17,L.158 +jsr $26,BadCond +ldgp $gp,0($26) +L.703: +lda $16,L.704 +ldt $f17,Z +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.705 +ldt $f17,Y +jsr $26,printf +ldgp $gp,0($26) +L.699: +L.697: +L.689: +ldl $27,Indx +lda $27,1($27) +stl $27,Indx +ldl $27,Indx +cmple $27,3,$23 +bne $23,L.688 +lda $27,180 +stl $27,Milestone +lda $27,1 +stl $27,Indx +L.706: +ldl $27,Indx +cmpeq $27,1,$23 +beq $23,L.710 +ldt $f30,V +stt $f30,Z +br L.711 +L.710: +ldt $f30,V0 +stt $f30,Z +L.711: +ldt $f16,Z +jsr $26,sqrt +ldgp $gp,0($26) +stt $f0,V9 +ldt $f30,V9 +ldt $f29,One +ldt $f28,Radix +ldt $f27,E9 +mult $f28,$f27,$f28 +subt $f29,$f28,$f29 +mult $f29,$f30,$f29 +stt $f29,X +ldt $f29,X +mult $f30,$f29,$f30 +stt $f30,V9 +ldt $f30,V9 +ldt $f29,Z +ldt $f28,One +ldt $f27,Two +ldt $f26,Radix +mult $f27,$f26,$f27 +ldt $f26,E9 +mult $f27,$f26,$f27 +subt $f28,$f27,$f28 +mult $f28,$f29,$f28 +cmptlt $f30,$f28,$f1 +fbne $f1,L.714 +cmptle $f30,$f29,$f1 +fbne $f1,L.712 +L.714: +ldt $f30,V9 +stt $f30,Y +ldt $f30,X +ldt $f29,W +cmptlt $f30,$f29,$f1 +fbeq $f1,L.715 +lda $16,1 +lda $17,L.158 +jsr $26,BadCond +ldgp $gp,0($26) +br L.716 +L.715: +lda $16,2 +lda $17,L.158 +jsr $26,BadCond +ldgp $gp,0($26) +L.716: +lda $16,L.717 +ldt $f17,Z +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.718 +ldt $f17,Y +jsr $26,printf +ldgp $gp,0($26) +L.712: +L.707: +ldl $27,Indx +lda $27,1($27) +stl $27,Indx +ldl $27,Indx +cmple $27,2,$23 +bne $23,L.706 +lda $27,190 +stl $27,Milestone +jsr $26,Pause +ldgp $gp,0($26) +ldt $f30,UfThold +ldt $f29,V +mult $f30,$f29,$f30 +stt $f30,X +ldt $f30,Radix +mult $f30,$f30,$f30 +stt $f30,Y +ldt $f30,X +ldt $f29,Y +mult $f30,$f29,$f28 +ldt $f27,One +cmptlt $f28,$f27,$f1 +fbne $f1,L.721 +cmptle $f30,$f29,$f1 +fbne $f1,L.719 +L.721: +ldt $f30,X +ldt $f29,Y +ldt $f28,U1 +mult $f30,$f29,$f27 +cmptlt $f27,$f28,$f1 +fbne $f1,L.724 +divt $f29,$f28,$f29 +cmptle $f30,$f29,$f1 +fbne $f1,L.722 +L.724: +lda $16,2 +lda $17,L.725 +jsr $26,BadCond +ldgp $gp,0($26) +br L.723 +L.722: +lda $16,3 +lda $17,L.158 +jsr $26,BadCond +ldgp $gp,0($26) +L.723: +lda $16,L.726 +ldt $f17,X +lda $18,L.727 +jsr $26,printf +ldgp $gp,0($26) +L.719: +lda $27,200 +stl $27,Milestone +lda $27,1 +stl $27,Indx +L.728: +ldt $f30,F9 +stt $f30,X +ldl $27,Indx +cmplt $27,2,$23 +bne $23,L.732 +cmple $27,5,$23 +beq $23,L.732 +subl $27,2,$27 +sll $27,3,$27 +ldq $27,L.738($27) +jmp ($27) +.rdata +.align 3 +L.738: +.quad L.734 +.quad L.735 +.quad L.736 +.quad L.737 +.text +L.734: +ldt $f30,One +ldt $f29,U2 +addt $f30,$f29,$f30 +stt $f30,X +br L.733 +L.735: +ldt $f30,V +stt $f30,X +br L.733 +L.736: +ldt $f30,UfThold +stt $f30,X +br L.733 +L.737: +ldt $f30,Radix +stt $f30,X +L.732: +L.733: +ldt $f30,X +stt $f30,Y +lda $27,sigfpe +stq $27,sigsave +lda $16,ovfl_buf +jsr $26,setjmp +ldgp $gp,0($26) +cmpeq $0,$31,$23 +bne $23,L.739 +lda $16,L.741 +ldt $f17,X +jsr $26,printf +ldgp $gp,0($26) +br L.740 +L.739: +ldt $f30,Half +ldt $f29,Y +ldt $f28,X +divt $f29,$f28,$f29 +subt $f29,$f30,$f29 +subt $f29,$f30,$f30 +stt $f30,V9 +ldt $f30,V9 +ldt $f29,Zero +cmpteq $f30,$f29,$f1 +fbeq $f1,L.742 +br L.729 +L.742: +ldt $f30,V9 +ldt $f29,U1 +negt $f29,$f29 +cmpteq $f30,$f29,$f1 +fbeq $f1,L.744 +ldl $27,Indx +cmplt $27,5,$23 +beq $23,L.744 +lda $16,3 +lda $17,L.158 +jsr $26,BadCond +ldgp $gp,0($26) +br L.745 +L.744: +lda $16,1 +lda $17,L.158 +jsr $26,BadCond +ldgp $gp,0($26) +L.745: +lda $16,L.746 +ldt $f17,X +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.747 +ldt $f17,V9 +jsr $26,printf +ldgp $gp,0($26) +L.740: +stq $31,sigsave +L.729: +ldl $27,Indx +lda $27,1($27) +stl $27,Indx +ldl $27,Indx +cmple $27,5,$23 +bne $23,L.728 +lda $27,210 +stl $27,Milestone +ldt $f30,Zero +stt $f30,MyZero +lda $16,L.45 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.748 +jsr $26,printf +ldgp $gp,0($26) +lda $27,sigfpe +stq $27,sigsave +lda $16,L.749 +jsr $26,printf +ldgp $gp,0($26) +lda $16,ovfl_buf +jsr $26,setjmp +ldgp $gp,0($26) +cmpeq $0,$31,$23 +beq $23,L.750 +lda $16,L.752 +ldt $f30,One +ldt $f29,MyZero +divt $f30,$f29,$f17 +jsr $26,printf +ldgp $gp,0($26) +L.750: +stq $31,sigsave +lda $27,sigfpe +stq $27,sigsave +lda $16,L.753 +jsr $26,printf +ldgp $gp,0($26) +lda $16,ovfl_buf +jsr $26,setjmp +ldgp $gp,0($26) +cmpeq $0,$31,$23 +beq $23,L.754 +lda $16,L.752 +ldt $f30,Zero +ldt $f29,MyZero +divt $f30,$f29,$f17 +jsr $26,printf +ldgp $gp,0($26) +L.754: +stq $31,sigsave +lda $27,220 +stl $27,Milestone +jsr $26,Pause +ldgp $gp,0($26) +lda $16,L.45 +jsr $26,printf +ldgp $gp,0($26) +stl $31,-188+256($sp) +L.761: +ldl $27,-188+256($sp) +sll $27,2,$27 +ldl $27,ErrCnt($27) +cmpeq $27,$31,$23 +bne $23,L.765 +lda $16,L.767 +ldl $27,-188+256($sp) +sll $27,3,$25 +ldq $17,L.756($25) +sll $27,2,$27 +ldl $18,ErrCnt($27) +jsr $26,printf +ldgp $gp,0($26) +L.765: +L.762: +ldl $27,-188+256($sp) +lda $27,1($27) +stl $27,-188+256($sp) +ldl $27,-188+256($sp) +cmplt $27,4,$23 +bne $23,L.761 +lda $16,L.45 +jsr $26,printf +ldgp $gp,0($26) +ldl $27,ErrCnt +ldl $25,ErrCnt+4 +addl $27,$25,$27 +ldl $25,ErrCnt+8 +addl $27,$25,$27 +ldl $25,ErrCnt+12 +addl $27,$25,$27 +cmple $27,$31,$23 +bne $23,L.768 +ldl $25,ErrCnt +ldl $22,ErrCnt+4 +addl $25,$22,$25 +ldl $22,ErrCnt+8 +addl $25,$22,$25 +cmpeq $25,$31,$23 +beq $23,L.773 +ldl $25,ErrCnt+12 +cmple $25,$31,$23 +bne $23,L.773 +lda $16,L.778 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.779 +jsr $26,printf +ldgp $gp,0($26) +L.773: +ldl $25,ErrCnt +ldl $22,ErrCnt+4 +addl $25,$22,$25 +cmpeq $25,$31,$23 +beq $23,L.780 +ldl $25,ErrCnt+8 +cmple $25,$31,$23 +bne $23,L.780 +lda $16,L.784 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.785 +jsr $26,printf +ldgp $gp,0($26) +L.780: +ldl $27,ErrCnt +ldl $25,ErrCnt+4 +addl $27,$25,$27 +cmple $27,$31,$23 +bne $23,L.786 +lda $16,L.789 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.790 +jsr $26,printf +ldgp $gp,0($26) +L.786: +ldl $27,ErrCnt +cmple $27,$31,$23 +bne $23,L.769 +lda $16,L.793 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.794 +jsr $26,printf +ldgp $gp,0($26) +br L.769 +L.768: +lda $16,L.795 +jsr $26,printf +ldgp $gp,0($26) +ldl $27,RMult +cmpeq $27,1,$23 +beq $23,L.800 +ldl $27,RDiv +cmpeq $27,1,$23 +beq $23,L.800 +ldl $27,RAddSub +cmpeq $27,1,$23 +beq $23,L.800 +ldl $27,RSqrt +cmpeq $27,1,$23 +bne $23,L.796 +L.800: +lda $16,L.801 +jsr $26,printf +ldgp $gp,0($26) +br L.797 +L.796: +ldt $f30,One +ldt $f29,StickyBit +cmptlt $f29,$f30,$f1 +fbne $f1,L.802 +ldt $f29,Radix +ldt $f28,Two +subt $f29,$f28,$f28 +ldt $f27,Nine +subt $f29,$f27,$f29 +subt $f29,$f30,$f30 +mult $f28,$f30,$f30 +ldt $f29,Zero +cmpteq $f30,$f29,$f1 +fbeq $f1,L.802 +lda $16,L.804 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.805 +jsr $26,printf +ldgp $gp,0($26) +ldt $f30,Two +ldt $f29,Radix +cmpteq $f29,$f30,$f1 +fbeq $f1,L.806 +ldt $f29,Precision +ldt $f28,TwentySeven +ldt $f27,Four +ldt $f26,Three +mult $f27,$f26,$f27 +mult $f27,$f30,$f30 +subt $f29,$f30,$f30 +subt $f29,$f28,$f29 +subt $f29,$f28,$f29 +ldt $f28,One +addt $f29,$f28,$f29 +mult $f30,$f29,$f30 +ldt $f29,Zero +cmpteq $f30,$f29,$f1 +fbeq $f1,L.806 +lda $16,L.808 +jsr $26,printf +ldgp $gp,0($26) +br L.807 +L.806: +lda $16,L.809 +jsr $26,printf +ldgp $gp,0($26) +L.807: +ldl $27,IEEE +cmpeq $27,$31,$23 +bne $23,L.810 +lda $16,L.812 +jsr $26,printf +ldgp $gp,0($26) +br L.811 +L.810: +lda $16,L.813 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.814 +jsr $26,printf +ldgp $gp,0($26) +L.811: +L.802: +lda $16,L.815 +jsr $26,printf +ldgp $gp,0($26) +L.797: +L.769: +ldl $27,fpecount +cmpeq $27,$31,$23 +bne $23,L.816 +lda $16,L.818 +ldl $17,fpecount +jsr $26,printf +ldgp $gp,0($26) +L.816: +lda $16,L.819 +jsr $26,printf +ldgp $gp,0($26) +mov $31,$0 +L.7: +ldq $9,0($sp) +ldq $10,8($sp) +ldq $11,16($sp) +ldq $12,24($sp) +ldq $13,32($sp) +ldq $14,40($sp) +ldq $26,48($sp) +lda $sp,256($sp) +ret +.end main +.globl Sign +.text +.ent Sign +Sign: +ldgp $gp,0($27) +lda $sp,-80($sp) +.fmask 0x200,-80 +.mask 0x4000000,-72 +.frame $sp,80,$26,48 +stt $f9,0($sp) +stq $26,8($sp) +.prologue 1 +ldt $f30,L.8 +cmptlt $f16,$f30,$f1 +fbne $f1,L.822 +ldt $f9,L.9 +br L.823 +L.822: +ldt $f9,L.824 +L.823: +fmov $f9,$f0 +L.820: +ldt $f9,0($sp) +ldq $26,8($sp) +lda $sp,80($sp) +ret +.end Sign +.globl Pause +.text +.ent Pause +Pause: +ldgp $gp,0($27) +lda $sp,-64($sp) +.mask 0x4000000,-64 +.frame $sp,64,$26,48 +stq $26,0($sp) +.prologue 1 +lda $16,L.826 +ldl $17,Milestone +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.827 +ldl $17,PageNo +jsr $26,printf +ldgp $gp,0($26) +ldl $27,Milestone +lda $27,1($27) +stl $27,Milestone +ldl $27,PageNo +lda $27,1($27) +stl $27,PageNo +mov $31,$0 +L.825: +ldq $26,0($sp) +lda $sp,64($sp) +ret +.end Pause +.globl TstCond +.text +.ent TstCond +TstCond: +ldgp $gp,0($27) +lda $sp,-64($sp) +.mask 0x4000000,-64 +.frame $sp,64,$26,48 +stq $26,0($sp) +stq $16,16($sp) +stq $17,24($sp) +stq $18,32($sp) +.prologue 1 +ldl $27,-40+64($sp) +cmpeq $27,$31,$23 +beq $23,L.829 +ldl $16,-48+64($sp) +ldq $17,-32+64($sp) +jsr $26,BadCond +ldgp $gp,0($26) +lda $16,L.812 +jsr $26,printf +ldgp $gp,0($26) +L.829: +mov $31,$0 +L.828: +ldq $26,0($sp) +lda $sp,64($sp) +ret +.end TstCond +.sdata +.align 3 +L.832: +.quad L.833 +.quad L.834 +.quad L.835 +.quad L.836 +.globl BadCond +.text +.text +.ent BadCond +BadCond: +ldgp $gp,0($27) +lda $sp,-80($sp) +.mask 0x4004000,-72 +.frame $sp,80,$26,48 +stq $14,0($sp) +stq $26,8($sp) +mov $16,$14 +stq $17,40($sp) +.prologue 1 +sll $14,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,2,$27 +lda $27,ErrCnt($27) +ldl $25,($27) +lda $25,1($25) +stl $25,($27) +lda $16,L.837 +sll $14,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,3,$27 +ldq $17,L.832($27) +ldq $18,-40+80($sp) +jsr $26,printf +ldgp $gp,0($26) +mov $31,$0 +L.831: +ldq $14,0($sp) +ldq $26,8($sp) +lda $sp,80($sp) +ret +.end BadCond +.globl Random +.text +.ent Random +Random: +ldgp $gp,0($27) +lda $sp,-80($sp) +.fmask 0x300,-72 +.mask 0x4000000,-64 +.frame $sp,80,$26,48 +stt $f8,0($sp) +stt $f9,8($sp) +stq $26,16($sp) +.prologue 1 +ldt $f30,Random1 +ldt $f29,Random9 +addt $f30,$f29,$f9 +mult $f9,$f9,$f8 +mult $f8,$f8,$f8 +mult $f9,$f8,$f9 +fmov $f9,$f16 +jsr $26,floor +ldgp $gp,0($26) +subt $f9,$f0,$f8 +ldt $f30,L.839 +mult $f30,$f9,$f30 +addt $f8,$f30,$f30 +stt $f30,Random1 +ldt $f0,Random1 +L.838: +ldt $f8,0($sp) +ldt $f9,8($sp) +ldq $26,16($sp) +lda $sp,80($sp) +ret +.end Random +.globl SqXMinX +.text +.ent SqXMinX +SqXMinX: +ldgp $gp,0($27) +lda $sp,-80($sp) +.fmask 0x200,-80 +.mask 0x4000000,-72 +.frame $sp,80,$26,48 +stt $f9,0($sp) +stq $26,8($sp) +stq $16,32($sp) +.prologue 1 +ldt $f30,X +ldt $f29,BInvrse +mult $f30,$f29,$f9 +subt $f30,$f9,$f29 +stt $f29,-64+80($sp) +mult $f30,$f30,$f16 +jsr $26,sqrt +ldgp $gp,0($26) +subt $f0,$f9,$f30 +ldt $f29,-64+80($sp) +subt $f30,$f29,$f30 +ldt $f29,OneUlp +divt $f30,$f29,$f30 +stt $f30,SqEr +ldt $f30,SqEr +ldt $f29,Zero +cmpteq $f30,$f29,$f1 +fbne $f1,L.841 +ldt $f30,SqEr +ldt $f29,MinSqEr +cmptlt $f30,$f29,$f1 +fbeq $f1,L.843 +ldt $f30,SqEr +stt $f30,MinSqEr +L.843: +ldt $f30,SqEr +ldt $f29,MaxSqEr +cmptle $f30,$f29,$f1 +fbne $f1,L.845 +ldt $f30,SqEr +stt $f30,MaxSqEr +L.845: +ldt $f30,J +ldt $f29,L.9 +addt $f30,$f29,$f30 +stt $f30,J +ldl $16,-48+80($sp) +lda $17,L.45 +jsr $26,BadCond +ldgp $gp,0($26) +lda $16,L.847 +ldt $f30,X +mult $f30,$f30,$f17 +fmov $f30,$f18 +ldt $f30,OneUlp +ldt $f29,SqEr +mult $f30,$f29,$f19 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.848 +jsr $26,printf +ldgp $gp,0($26) +L.841: +mov $31,$0 +L.840: +ldt $f9,0($sp) +ldq $26,8($sp) +lda $sp,80($sp) +ret +.end SqXMinX +.globl NewD +.text +.ent NewD +NewD: +ldgp $gp,0($27) +lda $sp,-64($sp) +.mask 0x4000000,-64 +.frame $sp,64,$26,48 +stq $26,0($sp) +.prologue 1 +ldt $f30,Z1 +ldt $f29,Q +mult $f30,$f29,$f30 +stt $f30,X +ldt $f30,Half +ldt $f29,X +ldt $f28,Radix +divt $f29,$f28,$f29 +subt $f30,$f29,$f16 +jsr $26,floor +ldgp $gp,0($26) +ldt $f29,Radix +mult $f0,$f29,$f30 +ldt $f28,X +addt $f30,$f28,$f30 +stt $f30,X +ldt $f30,X +ldt $f28,Z +ldt $f27,D +ldt $f26,Q +mult $f30,$f28,$f25 +subt $f26,$f25,$f26 +divt $f26,$f29,$f26 +mult $f30,$f30,$f25 +divt $f27,$f29,$f29 +mult $f25,$f29,$f29 +addt $f26,$f29,$f29 +stt $f29,Q +ldt $f29,Two +mult $f29,$f30,$f30 +mult $f30,$f27,$f30 +subt $f28,$f30,$f30 +stt $f30,Z +ldt $f30,Z +ldt $f29,Zero +cmptle $f30,$f29,$f1 +fbeq $f1,L.850 +ldt $f30,Z +negt $f30,$f30 +stt $f30,Z +ldt $f30,Z1 +negt $f30,$f30 +stt $f30,Z1 +L.850: +ldt $f30,Radix +ldt $f29,D +mult $f30,$f29,$f30 +stt $f30,D +mov $31,$0 +L.849: +ldq $26,0($sp) +lda $sp,64($sp) +ret +.end NewD +.globl SR3750 +.text +.ent SR3750 +SR3750: +ldgp $gp,0($27) +lda $sp,-64($sp) +.mask 0x4000000,-64 +.frame $sp,64,$26,48 +stq $26,0($sp) +.prologue 1 +ldt $f30,X +ldt $f29,Radix +ldt $f28,Z2 +subt $f30,$f29,$f27 +subt $f28,$f29,$f29 +cmptlt $f27,$f29,$f1 +fbne $f1,L.853 +subt $f30,$f28,$f30 +ldt $f29,W +subt $f29,$f28,$f29 +cmptle $f30,$f29,$f1 +fbeq $f1,L.853 +ldl $27,I +lda $27,1($27) +stl $27,I +ldt $f30,X +ldt $f29,D +mult $f30,$f29,$f16 +jsr $26,sqrt +ldgp $gp,0($26) +stt $f0,X2 +ldt $f30,Z2 +ldt $f29,Y +ldt $f28,X2 +subt $f28,$f30,$f28 +subt $f29,$f30,$f30 +subt $f28,$f30,$f30 +stt $f30,Y2 +ldt $f30,Half +ldt $f28,X8 +subt $f29,$f30,$f29 +divt $f28,$f29,$f29 +stt $f29,X2 +ldt $f29,X2 +mult $f30,$f29,$f28 +mult $f28,$f29,$f28 +subt $f29,$f28,$f29 +stt $f29,X2 +ldt $f29,Y2 +addt $f29,$f30,$f29 +ldt $f28,X2 +subt $f30,$f28,$f30 +addt $f29,$f30,$f30 +stt $f30,SqEr +ldt $f30,SqEr +ldt $f29,MinSqEr +cmptlt $f30,$f29,$f1 +fbeq $f1,L.855 +ldt $f30,SqEr +stt $f30,MinSqEr +L.855: +ldt $f30,Y2 +ldt $f29,X2 +subt $f30,$f29,$f30 +stt $f30,SqEr +ldt $f30,SqEr +ldt $f29,MaxSqEr +cmptle $f30,$f29,$f1 +fbne $f1,L.857 +ldt $f30,SqEr +stt $f30,MaxSqEr +L.857: +L.853: +mov $31,$0 +L.852: +ldq $26,0($sp) +lda $sp,64($sp) +ret +.end SR3750 +.globl IsYeqX +.text +.ent IsYeqX +IsYeqX: +ldgp $gp,0($27) +lda $sp,-64($sp) +.mask 0x4000000,-64 +.frame $sp,64,$26,48 +stq $26,0($sp) +.prologue 1 +ldt $f30,Y +ldt $f29,X +cmpteq $f30,$f29,$f1 +fbne $f1,L.860 +ldl $27,N +cmple $27,$31,$23 +beq $23,L.862 +ldt $f30,Zero +ldt $f29,Z +cmpteq $f29,$f30,$f1 +fbeq $f1,L.864 +ldt $f29,Q +cmptle $f29,$f30,$f1 +fbeq $f1,L.864 +lda $16,L.866 +jsr $26,printf +ldgp $gp,0($26) +br L.865 +L.864: +lda $16,2 +lda $17,L.867 +jsr $26,BadCond +ldgp $gp,0($26) +L.865: +lda $16,L.868 +ldt $f17,Z +ldt $f18,Q +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.869 +ldt $f17,Y +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.870 +ldt $f17,X +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.871 +ldt $f30,Y +ldt $f29,X +subt $f30,$f29,$f17 +jsr $26,printf +ldgp $gp,0($26) +L.862: +ldl $27,N +lda $27,1($27) +stl $27,N +L.860: +mov $31,$0 +L.859: +ldq $26,0($sp) +lda $sp,64($sp) +ret +.end IsYeqX +.globl SR3980 +.text +.ent SR3980 +SR3980: +ldgp $gp,0($27) +lda $sp,-64($sp) +.mask 0x4000000,-64 +.frame $sp,64,$26,48 +stq $26,0($sp) +.prologue 1 +L.873: +lds $f30,I +cvtlq $f30,$f30 +cvtqt $f30,$f30 +stt $f30,Q +ldt $f16,Z +ldt $f17,Q +jsr $26,pow +ldgp $gp,0($26) +stt $f0,Y +jsr $26,IsYeqX +ldgp $gp,0($26) +ldl $27,I +lda $27,1($27) +stl $27,I +ldl $25,M +cmple $27,$25,$23 +bne $23,L.876 +br L.875 +L.876: +ldt $f30,Z +ldt $f29,X +mult $f30,$f29,$f30 +stt $f30,X +L.874: +ldt $f30,X +ldt $f29,W +cmptlt $f30,$f29,$f1 +fbne $f1,L.873 +L.875: +mov $31,$0 +L.872: +ldq $26,0($sp) +lda $sp,64($sp) +ret +.end SR3980 +.globl PrintIfNPositive +.text +.ent PrintIfNPositive +PrintIfNPositive: +ldgp $gp,0($27) +lda $sp,-64($sp) +.mask 0x4000000,-64 +.frame $sp,64,$26,48 +stq $26,0($sp) +.prologue 1 +ldl $27,N +cmple $27,$31,$23 +bne $23,L.879 +lda $16,L.881 +ldl $17,N +jsr $26,printf +ldgp $gp,0($26) +L.879: +mov $31,$0 +L.878: +ldq $26,0($sp) +lda $sp,64($sp) +ret +.end PrintIfNPositive +.globl TstPtUf +.text +.ent TstPtUf +TstPtUf: +ldgp $gp,0($27) +lda $sp,-64($sp) +.mask 0x4000000,-64 +.frame $sp,64,$26,48 +stq $26,0($sp) +.prologue 1 +stl $31,N +ldt $f30,Z +ldt $f29,Zero +cmpteq $f30,$f29,$f1 +fbne $f1,L.883 +lda $16,L.885 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.886 +jsr $26,printf +ldgp $gp,0($26) +lda $27,sigfpe +stq $27,sigsave +lda $16,ovfl_buf +jsr $26,setjmp +ldgp $gp,0($26) +cmpeq $0,$31,$23 +bne $23,L.887 +br L.889 +L.887: +ldt $f30,Z +addt $f30,$f30,$f29 +divt $f29,$f30,$f30 +stt $f30,Q9 +lda $16,L.890 +ldt $f17,Q9 +jsr $26,printf +ldgp $gp,0($26) +ldt $f30,Q9 +ldt $f29,Two +subt $f30,$f29,$f16 +jsr $26,fabs +ldgp $gp,0($26) +ldt $f29,Radix +ldt $f28,U2 +mult $f29,$f28,$f29 +cmptlt $f0,$f29,$f1 +fbeq $f1,L.891 +lda $16,L.893 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.894 +jsr $26,printf +ldgp $gp,0($26) +br L.892 +L.891: +ldt $f30,Q9 +ldt $f29,One +cmptlt $f30,$f29,$f1 +fbne $f1,L.897 +ldt $f29,Two +cmptle $f30,$f29,$f1 +fbne $f1,L.895 +L.897: +L.889: +lda $27,1 +stl $27,N +ldl $27,ErrCnt+4 +lda $27,1($27) +stl $27,ErrCnt+4 +lda $16,L.900 +jsr $26,printf +ldgp $gp,0($26) +br L.896 +L.895: +lda $27,1 +stl $27,N +ldl $27,ErrCnt+8 +lda $27,1($27) +stl $27,ErrCnt+8 +lda $16,L.903 +jsr $26,printf +ldgp $gp,0($26) +L.896: +L.892: +stq $31,sigsave +ldt $f30,Z +ldt $f29,One +mult $f30,$f29,$f28 +stt $f28,V9 +ldt $f28,V9 +stt $f28,Random1 +mult $f29,$f30,$f28 +stt $f28,V9 +ldt $f28,V9 +stt $f28,Random2 +divt $f30,$f29,$f30 +stt $f30,V9 +ldt $f30,Z +ldt $f29,Random1 +cmpteq $f30,$f29,$f1 +fbeq $f1,L.904 +ldt $f29,Random2 +cmpteq $f30,$f29,$f1 +fbeq $f1,L.904 +ldt $f29,V9 +cmpteq $f30,$f29,$f1 +fbeq $f1,L.904 +ldl $27,N +cmple $27,$31,$23 +bne $23,L.905 +jsr $26,Pause +ldgp $gp,0($26) +br L.905 +L.904: +lda $27,1 +stl $27,N +lda $16,2 +lda $17,L.908 +jsr $26,BadCond +ldgp $gp,0($26) +lda $16,L.909 +ldt $f17,Z +jsr $26,printf +ldgp $gp,0($26) +ldt $f30,Z +ldt $f29,Random1 +cmpteq $f30,$f29,$f1 +fbne $f1,L.910 +lda $16,L.912 +ldt $f17,Random1 +jsr $26,printf +ldgp $gp,0($26) +L.910: +ldt $f30,Random2 +ldt $f29,Z +cmpteq $f29,$f30,$f1 +fbne $f1,L.913 +ldt $f29,Random1 +cmpteq $f30,$f29,$f1 +fbne $f1,L.913 +lda $16,L.915 +ldt $f17,Random2 +jsr $26,printf +ldgp $gp,0($26) +L.913: +ldt $f30,Z +ldt $f29,V9 +cmpteq $f30,$f29,$f1 +fbne $f1,L.916 +lda $16,L.918 +ldt $f17,V9 +jsr $26,printf +ldgp $gp,0($26) +L.916: +ldt $f30,Random2 +ldt $f29,Random1 +cmpteq $f30,$f29,$f1 +fbne $f1,L.919 +ldl $27,ErrCnt+8 +lda $27,1($27) +stl $27,ErrCnt+8 +lda $16,2 +lda $17,L.923 +jsr $26,BadCond +ldgp $gp,0($26) +lda $16,L.924 +ldt $f17,Random2 +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.925 +ldt $f17,Random1 +jsr $26,printf +ldgp $gp,0($26) +L.919: +jsr $26,Pause +ldgp $gp,0($26) +L.905: +L.883: +mov $31,$0 +L.882: +ldq $26,0($sp) +lda $sp,64($sp) +ret +.end TstPtUf +.globl notify +.text +.ent notify +notify: +ldgp $gp,0($27) +lda $sp,-64($sp) +.mask 0x4000000,-64 +.frame $sp,64,$26,48 +stq $26,0($sp) +stq $16,16($sp) +.prologue 1 +lda $16,L.927 +ldq $17,-48+64($sp) +jsr $26,printf +ldgp $gp,0($26) +lda $16,L.928 +jsr $26,printf +ldgp $gp,0($26) +mov $31,$0 +L.926: +ldq $26,0($sp) +lda $sp,64($sp) +ret +.end notify +.globl msglist +.text +.ent msglist +msglist: +ldgp $gp,0($27) +lda $sp,-80($sp) +.mask 0x4004000,-72 +.frame $sp,80,$26,48 +stq $14,0($sp) +stq $26,8($sp) +mov $16,$14 +.prologue 1 +br L.931 +L.930: +lda $16,L.933 +mov $14,$27 +lda $14,8($27) +ldq $17,($27) +jsr $26,printf +ldgp $gp,0($26) +L.931: +ldq $27,($14) +cmpeq $27,$31,$23 +beq $23,L.930 +mov $31,$0 +L.929: +ldq $14,0($sp) +ldq $26,8($sp) +lda $sp,80($sp) +ret +.end msglist +.sdata +.align 3 +L.935: +.quad L.936 +.quad L.937 +.quad L.938 +.quad L.939 +.quad L.940 +.quad L.941 +.quad L.942 +.quad L.943 +.quad L.944 +.quad 0x0 +.globl Instructions +.text +.text +.ent Instructions +Instructions: +ldgp $gp,0($27) +lda $sp,-64($sp) +.mask 0x4000000,-64 +.frame $sp,64,$26,48 +stq $26,0($sp) +.prologue 1 +lda $16,L.935 +jsr $26,msglist +ldgp $gp,0($26) +mov $31,$0 +L.934: +ldq $26,0($sp) +lda $sp,64($sp) +ret +.end Instructions +.sdata +.align 3 +L.946: +.quad L.947 +.quad L.948 +.quad L.949 +.quad L.950 +.quad L.951 +.quad L.952 +.quad L.953 +.quad L.954 +.quad L.955 +.quad L.956 +.quad L.957 +.quad L.958 +.quad L.959 +.quad L.960 +.quad 0x0 +.globl Heading +.text +.text +.ent Heading +Heading: +ldgp $gp,0($27) +lda $sp,-64($sp) +.mask 0x4000000,-64 +.frame $sp,64,$26,48 +stq $26,0($sp) +.prologue 1 +lda $16,L.946 +jsr $26,msglist +ldgp $gp,0($26) +mov $31,$0 +L.945: +ldq $26,0($sp) +lda $sp,64($sp) +ret +.end Heading +.sdata +.align 3 +L.962: +.quad L.963 +.quad L.964 +.quad L.965 +.quad L.966 +.quad L.967 +.quad L.968 +.quad L.969 +.quad L.970 +.quad L.971 +.quad L.972 +.quad L.973 +.quad L.974 +.quad L.975 +.quad L.976 +.quad L.977 +.quad L.978 +.quad L.979 +.quad L.980 +.quad L.981 +.quad 0x0 +.globl Characteristics +.text +.text +.ent Characteristics +Characteristics: +ldgp $gp,0($27) +lda $sp,-64($sp) +.mask 0x4000000,-64 +.frame $sp,64,$26,48 +stq $26,0($sp) +.prologue 1 +lda $16,L.962 +jsr $26,msglist +ldgp $gp,0($26) +mov $31,$0 +L.961: +ldq $26,0($sp) +lda $sp,64($sp) +ret +.end Characteristics +.sdata +.align 3 +L.983: +.quad L.984 +.quad L.985 +.quad L.986 +.quad L.987 +.quad L.988 +.quad L.989 +.quad L.990 +.quad L.991 +.quad L.992 +.quad L.993 +.quad L.994 +.quad L.995 +.quad L.996 +.quad L.997 +.quad L.998 +.quad L.999 +.quad L.1000 +.quad 0x0 +.globl History +.text +.text +.ent History +History: +ldgp $gp,0($27) +lda $sp,-64($sp) +.mask 0x4000000,-64 +.frame $sp,64,$26,48 +stq $26,0($sp) +.prologue 1 +lda $16,L.983 +jsr $26,msglist +ldgp $gp,0($26) +mov $31,$0 +L.982: +ldq $26,0($sp) +lda $sp,64($sp) +ret +.end History +.globl pow +.text +.ent pow +pow: +ldgp $gp,0($27) +lda $sp,-128($sp) +.fmask 0x380,-112 +.mask 0x4006000,-88 +.frame $sp,128,$26,48 +stt $f7,0($sp) +stt $f8,8($sp) +stt $f9,16($sp) +stq $13,24($sp) +stq $14,32($sp) +stq $26,40($sp) +fmov $f16,$f9 +fmov $f17,$f8 +.prologue 1 +mov $31,$13 +stl $31,-64+128($sp) +ldt $f30,L.8 +cmpteq $f8,$f30,$f1 +fbeq $f1,L.1002 +ldt $f0,L.9 +br L.1001 +L.1002: +ldt $f30,L.1007 +cmptlt $f8,$f30,$f1 +fbne $f1,L.1006 +ldt $f30,L.1008 +cmptle $f8,$f30,$f1 +fbne $f1,L.1004 +L.1006: +ldt $f30,L.824 +cmpteq $f9,$f30,$f1 +fbne $f1,L.1004 +fmov $f9,$f16 +jsr $26,log +ldgp $gp,0($26) +fmov $f0,$f30 +mult $f8,$f30,$f16 +jsr $26,exp +ldgp $gp,0($26) +fmov $f0,$f30 +br L.1001 +L.1004: +ldt $f30,L.8 +cmptlt $f8,$f30,$f1 +fbeq $f1,L.1009 +negt $f8,$f8 +lda $27,1 +stl $27,-64+128($sp) +L.1009: +fmov $f8,$f16 +lda $17,-72+128($sp) +jsr $26,modf +ldgp $gp,0($26) +fmov $f0,$f8 +ldt $f30,L.8 +cmpteq $f8,$f30,$f1 +fbne $f1,L.1011 +fmov $f9,$f16 +jsr $26,log +ldgp $gp,0($26) +fmov $f0,$f30 +mult $f8,$f30,$f16 +jsr $26,exp +ldgp $gp,0($26) +fmov $f0,$f7 +br L.1012 +L.1011: +ldt $f7,L.9 +L.1012: +fmov $f9,$f16 +lda $17,-60+128($sp) +jsr $26,frexp +ldgp $gp,0($26) +fmov $f0,$f9 +ldt $f30,-72+128($sp) +cvttqc $f30,$f1 +stt $f1,-56+128($sp) +ldq $27,-56+128($sp) +mov $27,$14 +cmpeq $27,$31,$23 +bne $23,L.1013 +L.1015: +and $14,1,$27 +cmpeq $27,$31,$23 +bne $23,L.1019 +mult $f7,$f9,$f7 +ldl $27,-60+128($sp) +addl $13,$27,$13 +L.1019: +sra $14,1,$27 +mov $27,$14 +cmpeq $27,$31,$23 +beq $23,L.1021 +br L.1017 +L.1021: +mult $f9,$f9,$f9 +ldl $27,-60+128($sp) +sll $27,1,$27 +addl $27,0,$27 +stl $27,-60+128($sp) +ldt $f30,L.1025 +cmptlt $f9,$f30,$f1 +fbeq $f1,L.1015 +ldt $f30,L.1026 +mult $f30,$f9,$f9 +ldl $27,-60+128($sp) +subl $27,1,$27 +stl $27,-60+128($sp) +br L.1015 +L.1017: +L.1013: +ldl $27,-64+128($sp) +cmpeq $27,$31,$23 +bne $23,L.1027 +ldt $f30,L.9 +divt $f30,$f7,$f7 +negl $13,$13 +L.1027: +fmov $f7,$f16 +mov $13,$17 +jsr $26,ldexp +ldgp $gp,0($26) +fmov $f0,$f30 +L.1001: +ldt $f7,0($sp) +ldt $f8,8($sp) +ldt $f9,16($sp) +ldq $13,24($sp) +ldq $14,32($sp) +ldq $26,40($sp) +lda $sp,128($sp) +ret +.end pow +.globl UfNGrad +.comm UfNGrad,4 +.globl SqRWrng +.comm SqRWrng,4 +.globl IEEE +.comm IEEE,4 +.globl Anomaly +.comm Anomaly,4 +.globl Monot +.comm Monot,4 +.globl NotMonot +.comm NotMonot,4 +.globl Done +.comm Done,4 +.globl Break +.comm Break,4 +.globl RSqrt +.comm RSqrt,4 +.globl RAddSub +.comm RAddSub,4 +.globl RDiv +.comm RDiv,4 +.globl RMult +.comm RMult,4 +.globl GAddSub +.comm GAddSub,4 +.globl GDiv +.comm GDiv,4 +.globl GMult +.comm GMult,4 +.globl N1 +.comm N1,4 +.globl N +.comm N,4 +.globl M +.comm M,4 +.globl PageNo +.comm PageNo,4 +.globl Milestone +.comm Milestone,4 +.globl fpecount +.comm fpecount,4 +.globl ErrCnt +.comm ErrCnt,16 +.globl Z9 +.comm Z9,8 +.globl Z2 +.comm Z2,8 +.globl Z1 +.comm Z1,8 +.globl PseudoZero +.comm PseudoZero,8 +.globl Z +.comm Z,8 +.globl Random2 +.comm Random2,8 +.globl Y2 +.comm Y2,8 +.globl Y1 +.comm Y1,8 +.globl Y +.comm Y,8 +.globl Random1 +.comm Random1,8 +.globl X8 +.comm X8,8 +.globl X2 +.comm X2,8 +.globl X1 +.comm X1,8 +.globl X +.comm X,8 +.globl W +.comm W,8 +.globl V9 +.comm V9,8 +.globl V0 +.comm V0,8 +.globl V +.comm V,8 +.globl U2 +.comm U2,8 +.globl U1 +.comm U1,8 +.globl UfThold +.comm UfThold,8 +.globl OneUlp +.comm OneUlp,8 +.globl S +.comm S,8 +.globl Underflow +.comm Underflow,8 +.globl T +.comm T,8 +.globl Random9 +.comm Random9,8 +.globl R +.comm R,8 +.globl Q9 +.comm Q9,8 +.globl Q +.comm Q,8 +.globl Precision +.comm Precision,8 +.globl MyZero +.comm MyZero,8 +.globl J +.comm J,8 +.globl StickyBit +.comm StickyBit,8 +.globl I +.comm I,4 +.globl HInvrse +.comm HInvrse,8 +.globl H +.comm H,8 +.globl F9 +.comm F9,8 +.globl F6 +.comm F6,8 +.globl Third +.comm Third,8 +.globl E9 +.comm E9,8 +.globl MaxSqEr +.comm MaxSqEr,8 +.globl SqEr +.comm SqEr,8 +.globl MinSqEr +.comm MinSqEr,8 +.globl E3 +.comm E3,8 +.globl Exp2 +.comm Exp2,8 +.globl E1 +.comm E1,8 +.globl E0 +.comm E0,8 +.globl FourD +.comm FourD,8 +.globl D +.comm D,8 +.globl CInvrse +.comm CInvrse,8 +.globl C +.comm C,8 +.globl A1 +.comm A1,8 +.globl AInvrse +.comm AInvrse,8 +.globl ch +.comm ch,8 +.globl Indx +.comm Indx,4 +.globl BMinusU2 +.comm BMinusU2,8 +.globl RadixD2 +.comm RadixD2,8 +.globl BInvrse +.comm BInvrse,8 +.globl Radix +.comm Radix,8 +.globl sigsave +.comm sigsave,8 +.globl ovfl_buf +.comm ovfl_buf,336 +.extern _iob 0 +.rdata +.align 3 +L.1026: +.long 0x0 +.long 0x40000000 +.align 3 +L.1025: +.long 0x0 +.long 0x3fe00000 +.align 3 +L.1008: +.long 0x0 +.long 0x40913000 +.align 3 +L.1007: +.long 0x0 +.long 0xc0913000 +.align 0 +L.1000: +.byte 115 +.byte 101 +.byte 101 +.byte 32 +.byte 115 +.byte 111 +.byte 117 +.byte 114 +.byte 99 +.byte 101 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 109 +.byte 101 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 109 +.byte 111 +.byte 114 +.byte 101 +.byte 32 +.byte 104 +.byte 105 +.byte 115 +.byte 116 +.byte 111 +.byte 114 +.byte 121 +.byte 46 +.byte 0 +.align 0 +L.999: +.byte 66 +.byte 65 +.byte 83 +.byte 73 +.byte 67 +.byte 32 +.byte 118 +.byte 101 +.byte 114 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 40 +.byte 67 +.byte 41 +.byte 32 +.byte 49 +.byte 57 +.byte 56 +.byte 51 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 80 +.byte 114 +.byte 111 +.byte 102 +.byte 46 +.byte 32 +.byte 87 +.byte 46 +.byte 32 +.byte 77 +.byte 46 +.byte 32 +.byte 75 +.byte 97 +.byte 104 +.byte 97 +.byte 110 +.byte 59 +.byte 0 +.align 0 +L.998: +.byte 97 +.byte 115 +.byte 32 +.byte 117 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 99 +.byte 101 +.byte 114 +.byte 116 +.byte 97 +.byte 105 +.byte 110 +.byte 32 +.byte 101 +.byte 97 +.byte 114 +.byte 108 +.byte 121 +.byte 32 +.byte 87 +.byte 65 +.byte 78 +.byte 71 +.byte 32 +.byte 109 +.byte 97 +.byte 99 +.byte 104 +.byte 105 +.byte 110 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.997: +.byte 102 +.byte 108 +.byte 111 +.byte 97 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 45 +.byte 112 +.byte 111 +.byte 105 +.byte 110 +.byte 116 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 115 +.byte 44 +.byte 32 +.byte 98 +.byte 117 +.byte 116 +.byte 32 +.byte 97 +.byte 108 +.byte 115 +.byte 111 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 111 +.byte 119 +.byte 115 +.byte 32 +.byte 108 +.byte 111 +.byte 103 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 105 +.byte 99 +.byte 32 +.byte 101 +.byte 110 +.byte 99 +.byte 111 +.byte 100 +.byte 105 +.byte 110 +.byte 103 +.byte 0 +.align 0 +L.996: +.byte 10 +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 98 +.byte 97 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 117 +.byte 112 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 118 +.byte 101 +.byte 110 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 97 +.byte 108 +.byte 32 +.byte 114 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 114 +.byte 101 +.byte 112 +.byte 114 +.byte 101 +.byte 115 +.byte 101 +.byte 110 +.byte 116 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 0 +.align 0 +L.995: +.byte 111 +.byte 102 +.byte 32 +.byte 112 +.byte 97 +.byte 116 +.byte 104 +.byte 111 +.byte 108 +.byte 111 +.byte 103 +.byte 105 +.byte 101 +.byte 115 +.byte 44 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 115 +.byte 97 +.byte 121 +.byte 32 +.byte 104 +.byte 111 +.byte 119 +.byte 32 +.byte 119 +.byte 101 +.byte 108 +.byte 108 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 105 +.byte 109 +.byte 112 +.byte 108 +.byte 101 +.byte 109 +.byte 101 +.byte 110 +.byte 116 +.byte 101 +.byte 100 +.byte 46 +.byte 0 +.align 0 +L.994: +.byte 111 +.byte 102 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 44 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 116 +.byte 114 +.byte 105 +.byte 101 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 99 +.byte 111 +.byte 112 +.byte 101 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 97 +.byte 32 +.byte 119 +.byte 105 +.byte 100 +.byte 101 +.byte 114 +.byte 32 +.byte 118 +.byte 97 +.byte 114 +.byte 105 +.byte 101 +.byte 116 +.byte 121 +.byte 0 +.align 0 +L.993: +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 44 +.byte 32 +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 114 +.byte 97 +.byte 110 +.byte 103 +.byte 101 +.byte 32 +.byte 40 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 47 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 115 +.byte 41 +.byte 0 +.align 0 +L.992: +.byte 87 +.byte 46 +.byte 32 +.byte 74 +.byte 46 +.byte 32 +.byte 67 +.byte 111 +.byte 100 +.byte 121 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 87 +.byte 46 +.byte 32 +.byte 87 +.byte 97 +.byte 105 +.byte 116 +.byte 101 +.byte 46 +.byte 32 +.byte 65 +.byte 108 +.byte 116 +.byte 104 +.byte 111 +.byte 117 +.byte 103 +.byte 104 +.byte 32 +.byte 98 +.byte 111 +.byte 116 +.byte 104 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 115 +.byte 32 +.byte 116 +.byte 114 +.byte 121 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 0 +.align 0 +L.991: +.byte 98 +.byte 111 +.byte 111 +.byte 107 +.byte 32 +.byte 32 +.byte 96 +.byte 83 +.byte 111 +.byte 102 +.byte 116 +.byte 119 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 77 +.byte 97 +.byte 110 +.byte 117 +.byte 97 +.byte 108 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 69 +.byte 108 +.byte 101 +.byte 109 +.byte 101 +.byte 110 +.byte 116 +.byte 97 +.byte 114 +.byte 121 +.byte 32 +.byte 70 +.byte 117 +.byte 110 +.byte 99 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 39 +.byte 32 +.byte 40 +.byte 49 +.byte 57 +.byte 56 +.byte 48 +.byte 41 +.byte 32 +.byte 98 +.byte 121 +.byte 0 +.align 0 +L.990: +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 99 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 100 +.byte 32 +.byte 96 +.byte 77 +.byte 65 +.byte 67 +.byte 72 +.byte 65 +.byte 82 +.byte 39 +.byte 44 +.byte 32 +.byte 119 +.byte 104 +.byte 105 +.byte 99 +.byte 104 +.byte 32 +.byte 99 +.byte 97 +.byte 110 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 102 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 97 +.byte 116 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 101 +.byte 110 +.byte 100 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 0 +.align 0 +L.989: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 100 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 99 +.byte 97 +.byte 112 +.byte 97 +.byte 98 +.byte 105 +.byte 108 +.byte 105 +.byte 116 +.byte 105 +.byte 101 +.byte 115 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 103 +.byte 111 +.byte 32 +.byte 98 +.byte 101 +.byte 121 +.byte 111 +.byte 110 +.byte 100 +.byte 32 +.byte 97 +.byte 110 +.byte 32 +.byte 101 +.byte 97 +.byte 114 +.byte 108 +.byte 105 +.byte 101 +.byte 114 +.byte 0 +.align 0 +L.988: +.byte 70 +.byte 97 +.byte 105 +.byte 108 +.byte 117 +.byte 114 +.byte 101 +.byte 115 +.byte 32 +.byte 109 +.byte 97 +.byte 121 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 102 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 115 +.byte 117 +.byte 98 +.byte 115 +.byte 101 +.byte 113 +.byte 117 +.byte 101 +.byte 110 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.987: +.byte 32 +.byte 32 +.byte 32 +.byte 70 +.byte 65 +.byte 73 +.byte 76 +.byte 85 +.byte 82 +.byte 69 +.byte 115 +.byte 44 +.byte 32 +.byte 108 +.byte 105 +.byte 107 +.byte 101 +.byte 32 +.byte 50 +.byte 43 +.byte 50 +.byte 32 +.byte 61 +.byte 61 +.byte 32 +.byte 53 +.byte 32 +.byte 46 +.byte 0 +.align 0 +L.986: +.byte 32 +.byte 32 +.byte 32 +.byte 83 +.byte 101 +.byte 114 +.byte 105 +.byte 111 +.byte 117 +.byte 115 +.byte 32 +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 115 +.byte 44 +.byte 32 +.byte 108 +.byte 105 +.byte 107 +.byte 101 +.byte 32 +.byte 108 +.byte 97 +.byte 99 +.byte 107 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 97 +.byte 32 +.byte 103 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 44 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 0 +.align 0 +L.985: +.byte 32 +.byte 32 +.byte 32 +.byte 70 +.byte 76 +.byte 65 +.byte 87 +.byte 115 +.byte 44 +.byte 32 +.byte 108 +.byte 105 +.byte 107 +.byte 101 +.byte 32 +.byte 108 +.byte 97 +.byte 99 +.byte 107 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 97 +.byte 32 +.byte 115 +.byte 116 +.byte 105 +.byte 99 +.byte 107 +.byte 121 +.byte 32 +.byte 98 +.byte 105 +.byte 116 +.byte 44 +.byte 0 +.align 0 +L.984: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 97 +.byte 116 +.byte 116 +.byte 101 +.byte 109 +.byte 112 +.byte 116 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 114 +.byte 105 +.byte 109 +.byte 105 +.byte 110 +.byte 97 +.byte 116 +.byte 101 +.byte 32 +.byte 97 +.byte 109 +.byte 111 +.byte 110 +.byte 103 +.byte 0 +.align 0 +L.981: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 68 +.byte 101 +.byte 99 +.byte 105 +.byte 109 +.byte 97 +.byte 108 +.byte 45 +.byte 66 +.byte 105 +.byte 110 +.byte 97 +.byte 114 +.byte 121 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 118 +.byte 101 +.byte 114 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 78 +.byte 79 +.byte 84 +.byte 32 +.byte 89 +.byte 69 +.byte 84 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 97 +.byte 99 +.byte 99 +.byte 117 +.byte 114 +.byte 97 +.byte 99 +.byte 121 +.byte 46 +.byte 0 +.align 0 +L.980: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 69 +.byte 120 +.byte 116 +.byte 114 +.byte 97 +.byte 45 +.byte 112 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 101 +.byte 32 +.byte 115 +.byte 117 +.byte 98 +.byte 101 +.byte 120 +.byte 112 +.byte 114 +.byte 101 +.byte 115 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 114 +.byte 101 +.byte 118 +.byte 101 +.byte 97 +.byte 108 +.byte 101 +.byte 100 +.byte 32 +.byte 98 +.byte 117 +.byte 116 +.byte 32 +.byte 78 +.byte 79 +.byte 84 +.byte 32 +.byte 89 +.byte 69 +.byte 84 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 101 +.byte 100 +.byte 46 +.byte 0 +.align 0 +L.979: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 83 +.byte 113 +.byte 114 +.byte 116 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 101 +.byte 100 +.byte 46 +.byte 32 +.byte 32 +.byte 89 +.byte 94 +.byte 88 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 101 +.byte 100 +.byte 46 +.byte 0 +.align 0 +L.978: +.byte 9 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 116 +.byte 97 +.byte 109 +.byte 105 +.byte 110 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 112 +.byte 115 +.byte 101 +.byte 117 +.byte 100 +.byte 111 +.byte 45 +.byte 122 +.byte 101 +.byte 114 +.byte 111 +.byte 115 +.byte 46 +.byte 0 +.align 0 +L.977: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 99 +.byte 104 +.byte 101 +.byte 99 +.byte 107 +.byte 101 +.byte 100 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 115 +.byte 105 +.byte 115 +.byte 116 +.byte 101 +.byte 110 +.byte 99 +.byte 121 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 115 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 0 +.align 0 +L.976: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 86 +.byte 48 +.byte 32 +.byte 32 +.byte 116 +.byte 101 +.byte 108 +.byte 108 +.byte 115 +.byte 44 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 103 +.byte 104 +.byte 108 +.byte 121 +.byte 44 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 32 +.byte 73 +.byte 110 +.byte 102 +.byte 105 +.byte 110 +.byte 105 +.byte 116 +.byte 121 +.byte 32 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 114 +.byte 101 +.byte 112 +.byte 114 +.byte 101 +.byte 115 +.byte 101 +.byte 110 +.byte 116 +.byte 101 +.byte 100 +.byte 46 +.byte 0 +.align 0 +L.975: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 86 +.byte 32 +.byte 61 +.byte 32 +.byte 97 +.byte 110 +.byte 32 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 44 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 103 +.byte 104 +.byte 108 +.byte 121 +.byte 46 +.byte 0 +.align 0 +L.974: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 69 +.byte 48 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 80 +.byte 115 +.byte 101 +.byte 117 +.byte 100 +.byte 111 +.byte 90 +.byte 101 +.byte 114 +.byte 111 +.byte 32 +.byte 116 +.byte 101 +.byte 108 +.byte 108 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 97 +.byte 98 +.byte 114 +.byte 117 +.byte 112 +.byte 116 +.byte 44 +.byte 32 +.byte 103 +.byte 114 +.byte 97 +.byte 100 +.byte 117 +.byte 97 +.byte 108 +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 102 +.byte 117 +.byte 122 +.byte 122 +.byte 121 +.byte 46 +.byte 0 +.align 0 +L.973: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 84 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 61 +.byte 32 +.byte 97 +.byte 110 +.byte 32 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 46 +.byte 0 +.align 0 +L.972: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 87 +.byte 104 +.byte 101 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 97 +.byte 32 +.byte 83 +.byte 116 +.byte 105 +.byte 99 +.byte 107 +.byte 121 +.byte 32 +.byte 66 +.byte 105 +.byte 116 +.byte 32 +.byte 117 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 105 +.byte 110 +.byte 103 +.byte 46 +.byte 0 +.align 0 +L.971: +.byte 9 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 77 +.byte 117 +.byte 108 +.byte 116 +.byte 46 +.byte 44 +.byte 32 +.byte 68 +.byte 105 +.byte 118 +.byte 46 +.byte 44 +.byte 32 +.byte 65 +.byte 100 +.byte 100 +.byte 47 +.byte 83 +.byte 117 +.byte 98 +.byte 116 +.byte 46 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 83 +.byte 113 +.byte 114 +.byte 116 +.byte 46 +.byte 0 +.align 0 +L.970: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 87 +.byte 104 +.byte 101 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 112 +.byte 101 +.byte 100 +.byte 44 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 100 +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 115 +.byte 111 +.byte 109 +.byte 101 +.byte 116 +.byte 104 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 101 +.byte 108 +.byte 115 +.byte 101 +.byte 0 +.align 0 +L.969: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 65 +.byte 100 +.byte 101 +.byte 113 +.byte 117 +.byte 97 +.byte 99 +.byte 121 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 103 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 77 +.byte 117 +.byte 108 +.byte 116 +.byte 46 +.byte 44 +.byte 32 +.byte 68 +.byte 105 +.byte 118 +.byte 46 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 83 +.byte 117 +.byte 98 +.byte 116 +.byte 46 +.byte 0 +.align 0 +L.968: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 85 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 49 +.byte 47 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 94 +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 61 +.byte 32 +.byte 79 +.byte 110 +.byte 101 +.byte 32 +.byte 85 +.byte 108 +.byte 112 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 108 +.byte 105 +.byte 116 +.byte 116 +.byte 108 +.byte 101 +.byte 32 +.byte 108 +.byte 101 +.byte 115 +.byte 115 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 110 +.byte 32 +.byte 49 +.byte 46 +.byte 48 +.byte 32 +.byte 46 +.byte 0 +.align 0 +L.967: +.byte 9 +.byte 40 +.byte 79 +.byte 110 +.byte 101 +.byte 85 +.byte 108 +.byte 112 +.byte 110 +.byte 105 +.byte 116 +.byte 32 +.byte 105 +.byte 110 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 76 +.byte 97 +.byte 115 +.byte 116 +.byte 32 +.byte 80 +.byte 108 +.byte 97 +.byte 99 +.byte 101 +.byte 41 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 49 +.byte 46 +.byte 48 +.byte 48 +.byte 48 +.byte 120 +.byte 120 +.byte 120 +.byte 32 +.byte 46 +.byte 0 +.align 0 +L.966: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 85 +.byte 50 +.byte 32 +.byte 61 +.byte 32 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 47 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 94 +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 61 +.byte 32 +.byte 79 +.byte 110 +.byte 101 +.byte 32 +.byte 85 +.byte 108 +.byte 112 +.byte 0 +.align 0 +L.965: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 61 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 105 +.byte 102 +.byte 105 +.byte 99 +.byte 97 +.byte 110 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 99 +.byte 97 +.byte 114 +.byte 114 +.byte 105 +.byte 101 +.byte 100 +.byte 46 +.byte 0 +.align 0 +L.964: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 49 +.byte 44 +.byte 32 +.byte 50 +.byte 44 +.byte 32 +.byte 52 +.byte 44 +.byte 32 +.byte 56 +.byte 44 +.byte 32 +.byte 49 +.byte 48 +.byte 44 +.byte 32 +.byte 49 +.byte 54 +.byte 44 +.byte 32 +.byte 49 +.byte 48 +.byte 48 +.byte 44 +.byte 32 +.byte 50 +.byte 53 +.byte 54 +.byte 32 +.byte 46 +.byte 46 +.byte 46 +.byte 0 +.align 0 +L.963: +.byte 82 +.byte 117 +.byte 110 +.byte 110 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 115 +.byte 104 +.byte 111 +.byte 117 +.byte 108 +.byte 100 +.byte 32 +.byte 114 +.byte 101 +.byte 118 +.byte 101 +.byte 97 +.byte 108 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 115 +.byte 101 +.byte 32 +.byte 99 +.byte 104 +.byte 97 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 101 +.byte 114 +.byte 105 +.byte 115 +.byte 116 +.byte 105 +.byte 99 +.byte 115 +.byte 58 +.byte 0 +.align 0 +L.960: +.byte 9 +.byte 79 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 114 +.byte 101 +.byte 108 +.byte 101 +.byte 118 +.byte 97 +.byte 110 +.byte 116 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 105 +.byte 108 +.byte 101 +.byte 114 +.byte 32 +.byte 111 +.byte 112 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 58 +.byte 0 +.align 0 +L.959: +.byte 9 +.byte 79 +.byte 112 +.byte 116 +.byte 105 +.byte 109 +.byte 105 +.byte 122 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 108 +.byte 101 +.byte 118 +.byte 101 +.byte 108 +.byte 58 +.byte 10 +.byte 0 +.align 0 +L.958: +.byte 9 +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 105 +.byte 108 +.byte 101 +.byte 114 +.byte 58 +.byte 10 +.byte 0 +.align 0 +L.957: +.byte 9 +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 101 +.byte 114 +.byte 58 +.byte 10 +.byte 0 +.align 0 +L.956: +.byte 9 +.byte 86 +.byte 101 +.byte 114 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 58 +.byte 9 +.byte 49 +.byte 48 +.byte 32 +.byte 70 +.byte 101 +.byte 98 +.byte 114 +.byte 117 +.byte 97 +.byte 114 +.byte 121 +.byte 32 +.byte 49 +.byte 57 +.byte 56 +.byte 57 +.byte 59 +.byte 0 +.align 0 +L.955: +.byte 9 +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 58 +.byte 9 +.byte 100 +.byte 111 +.byte 117 +.byte 98 +.byte 108 +.byte 101 +.byte 59 +.byte 0 +.align 0 +L.954: +.byte 73 +.byte 110 +.byte 32 +.byte 100 +.byte 111 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 115 +.byte 111 +.byte 44 +.byte 32 +.byte 112 +.byte 108 +.byte 101 +.byte 97 +.byte 115 +.byte 101 +.byte 32 +.byte 105 +.byte 110 +.byte 99 +.byte 108 +.byte 117 +.byte 100 +.byte 101 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 102 +.byte 111 +.byte 108 +.byte 108 +.byte 111 +.byte 119 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 105 +.byte 110 +.byte 102 +.byte 111 +.byte 114 +.byte 109 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 58 +.byte 0 +.align 0 +L.953: +.byte 9 +.byte 83 +.byte 97 +.byte 110 +.byte 32 +.byte 70 +.byte 114 +.byte 97 +.byte 110 +.byte 99 +.byte 105 +.byte 115 +.byte 99 +.byte 111 +.byte 44 +.byte 32 +.byte 67 +.byte 65 +.byte 32 +.byte 57 +.byte 52 +.byte 49 +.byte 52 +.byte 51 +.byte 45 +.byte 48 +.byte 55 +.byte 48 +.byte 52 +.byte 44 +.byte 32 +.byte 85 +.byte 83 +.byte 65 +.byte 10 +.byte 0 +.align 0 +L.952: +.byte 9 +.byte 85 +.byte 110 +.byte 105 +.byte 118 +.byte 101 +.byte 114 +.byte 115 +.byte 105 +.byte 116 +.byte 121 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 67 +.byte 97 +.byte 108 +.byte 105 +.byte 102 +.byte 111 +.byte 114 +.byte 110 +.byte 105 +.byte 97 +.byte 0 +.align 0 +L.951: +.byte 9 +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 101 +.byte 114 +.byte 32 +.byte 67 +.byte 101 +.byte 110 +.byte 116 +.byte 101 +.byte 114 +.byte 32 +.byte 85 +.byte 45 +.byte 55 +.byte 54 +.byte 0 +.align 0 +L.950: +.byte 9 +.byte 82 +.byte 105 +.byte 99 +.byte 104 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 75 +.byte 97 +.byte 114 +.byte 112 +.byte 105 +.byte 110 +.byte 115 +.byte 107 +.byte 105 +.byte 0 +.align 0 +L.949: +.byte 80 +.byte 108 +.byte 101 +.byte 97 +.byte 115 +.byte 101 +.byte 32 +.byte 115 +.byte 101 +.byte 110 +.byte 100 +.byte 32 +.byte 115 +.byte 117 +.byte 103 +.byte 103 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 105 +.byte 110 +.byte 116 +.byte 101 +.byte 114 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 114 +.byte 101 +.byte 115 +.byte 117 +.byte 108 +.byte 116 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 0 +.align 0 +L.948: +.byte 99 +.byte 111 +.byte 112 +.byte 101 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 117 +.byte 110 +.byte 97 +.byte 110 +.byte 116 +.byte 105 +.byte 99 +.byte 105 +.byte 112 +.byte 97 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 110 +.byte 101 +.byte 119 +.byte 108 +.byte 121 +.byte 32 +.byte 117 +.byte 110 +.byte 99 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 101 +.byte 100 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 112 +.byte 97 +.byte 116 +.byte 104 +.byte 111 +.byte 108 +.byte 111 +.byte 103 +.byte 105 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.947: +.byte 85 +.byte 115 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 105 +.byte 110 +.byte 118 +.byte 105 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 104 +.byte 101 +.byte 108 +.byte 112 +.byte 32 +.byte 100 +.byte 101 +.byte 98 +.byte 117 +.byte 103 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 97 +.byte 117 +.byte 103 +.byte 109 +.byte 101 +.byte 110 +.byte 116 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 115 +.byte 111 +.byte 32 +.byte 105 +.byte 116 +.byte 32 +.byte 119 +.byte 105 +.byte 108 +.byte 108 +.byte 0 +.align 0 +L.944: +.byte 65 +.byte 110 +.byte 115 +.byte 119 +.byte 101 +.byte 114 +.byte 32 +.byte 113 +.byte 117 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 89 +.byte 44 +.byte 32 +.byte 121 +.byte 44 +.byte 32 +.byte 78 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 110 +.byte 32 +.byte 40 +.byte 117 +.byte 110 +.byte 108 +.byte 101 +.byte 115 +.byte 115 +.byte 32 +.byte 111 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 119 +.byte 105 +.byte 115 +.byte 101 +.byte 32 +.byte 105 +.byte 110 +.byte 100 +.byte 105 +.byte 99 +.byte 97 +.byte 116 +.byte 101 +.byte 100 +.byte 41 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.943: +.byte 97 +.byte 109 +.byte 101 +.byte 110 +.byte 100 +.byte 32 +.byte 105 +.byte 116 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 109 +.byte 97 +.byte 107 +.byte 101 +.byte 32 +.byte 102 +.byte 117 +.byte 114 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 101 +.byte 115 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.942: +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 97 +.byte 110 +.byte 121 +.byte 119 +.byte 97 +.byte 121 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 115 +.byte 101 +.byte 101 +.byte 32 +.byte 104 +.byte 111 +.byte 119 +.byte 32 +.byte 109 +.byte 97 +.byte 110 +.byte 121 +.byte 32 +.byte 109 +.byte 105 +.byte 108 +.byte 101 +.byte 115 +.byte 116 +.byte 111 +.byte 110 +.byte 101 +.byte 115 +.byte 32 +.byte 105 +.byte 116 +.byte 32 +.byte 112 +.byte 97 +.byte 115 +.byte 115 +.byte 101 +.byte 115 +.byte 44 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 110 +.byte 0 +.align 0 +L.941: +.byte 119 +.byte 97 +.byte 114 +.byte 110 +.byte 105 +.byte 110 +.byte 103 +.byte 46 +.byte 32 +.byte 32 +.byte 73 +.byte 102 +.byte 32 +.byte 112 +.byte 101 +.byte 114 +.byte 115 +.byte 117 +.byte 97 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 118 +.byte 97 +.byte 105 +.byte 108 +.byte 115 +.byte 32 +.byte 110 +.byte 97 +.byte 117 +.byte 103 +.byte 104 +.byte 116 +.byte 44 +.byte 32 +.byte 100 +.byte 111 +.byte 110 +.byte 39 +.byte 116 +.byte 32 +.byte 100 +.byte 101 +.byte 115 +.byte 112 +.byte 97 +.byte 105 +.byte 114 +.byte 32 +.byte 98 +.byte 117 +.byte 116 +.byte 32 +.byte 114 +.byte 117 +.byte 110 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 0 +.align 0 +L.940: +.byte 116 +.byte 111 +.byte 32 +.byte 112 +.byte 101 +.byte 114 +.byte 115 +.byte 101 +.byte 118 +.byte 101 +.byte 114 +.byte 101 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 97 +.byte 32 +.byte 115 +.byte 117 +.byte 114 +.byte 114 +.byte 111 +.byte 103 +.byte 97 +.byte 116 +.byte 101 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 32 +.byte 97 +.byte 102 +.byte 116 +.byte 101 +.byte 114 +.byte 44 +.byte 32 +.byte 112 +.byte 101 +.byte 114 +.byte 104 +.byte 97 +.byte 112 +.byte 115 +.byte 44 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 112 +.byte 108 +.byte 97 +.byte 121 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 115 +.byte 111 +.byte 109 +.byte 101 +.byte 0 +.align 0 +L.939: +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 32 +.byte 108 +.byte 105 +.byte 107 +.byte 101 +.byte 32 +.byte 79 +.byte 118 +.byte 101 +.byte 114 +.byte 47 +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 68 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 90 +.byte 101 +.byte 114 +.byte 111 +.byte 32 +.byte 111 +.byte 99 +.byte 99 +.byte 117 +.byte 114 +.byte 115 +.byte 44 +.byte 32 +.byte 98 +.byte 117 +.byte 116 +.byte 32 +.byte 114 +.byte 97 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 0 +.align 0 +L.938: +.byte 116 +.byte 114 +.byte 121 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 112 +.byte 101 +.byte 114 +.byte 115 +.byte 117 +.byte 97 +.byte 100 +.byte 101 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 101 +.byte 114 +.byte 32 +.byte 78 +.byte 79 +.byte 84 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 116 +.byte 101 +.byte 114 +.byte 109 +.byte 105 +.byte 110 +.byte 97 +.byte 116 +.byte 101 +.byte 32 +.byte 101 +.byte 120 +.byte 101 +.byte 99 +.byte 117 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 110 +.byte 32 +.byte 97 +.byte 110 +.byte 0 +.align 0 +L.937: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 96 +.byte 69 +.byte 78 +.byte 68 +.byte 32 +.byte 79 +.byte 70 +.byte 32 +.byte 84 +.byte 69 +.byte 83 +.byte 84 +.byte 39 +.byte 44 +.byte 10 +.byte 0 +.align 0 +L.936: +.byte 76 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 115 +.byte 116 +.byte 111 +.byte 112 +.byte 32 +.byte 112 +.byte 114 +.byte 101 +.byte 109 +.byte 97 +.byte 116 +.byte 117 +.byte 114 +.byte 101 +.byte 108 +.byte 121 +.byte 44 +.byte 32 +.byte 105 +.byte 46 +.byte 101 +.byte 46 +.byte 32 +.byte 98 +.byte 101 +.byte 102 +.byte 111 +.byte 114 +.byte 101 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 112 +.byte 108 +.byte 97 +.byte 121 +.byte 105 +.byte 110 +.byte 103 +.byte 10 +.byte 0 +.align 0 +L.933: +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 0 +L.928: +.byte 32 +.byte 32 +.byte 32 +.byte 80 +.byte 76 +.byte 69 +.byte 65 +.byte 83 +.byte 69 +.byte 32 +.byte 78 +.byte 79 +.byte 84 +.byte 73 +.byte 70 +.byte 89 +.byte 32 +.byte 75 +.byte 65 +.byte 82 +.byte 80 +.byte 73 +.byte 78 +.byte 75 +.byte 83 +.byte 73 +.byte 33 +.byte 10 +.byte 0 +.align 0 +L.927: +.byte 37 +.byte 115 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 105 +.byte 110 +.byte 99 +.byte 111 +.byte 110 +.byte 115 +.byte 105 +.byte 115 +.byte 116 +.byte 101 +.byte 110 +.byte 116 +.byte 46 +.byte 46 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.925: +.byte 9 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 90 +.byte 32 +.byte 42 +.byte 32 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.924: +.byte 9 +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 103 +.byte 101 +.byte 115 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 49 +.byte 32 +.byte 42 +.byte 32 +.byte 90 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.923: +.byte 77 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 105 +.byte 99 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 100 +.byte 111 +.byte 101 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 109 +.byte 117 +.byte 116 +.byte 101 +.byte 33 +.byte 10 +.byte 0 +.align 0 +L.918: +.byte 90 +.byte 32 +.byte 47 +.byte 32 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.915: +.byte 49 +.byte 32 +.byte 42 +.byte 32 +.byte 90 +.byte 32 +.byte 61 +.byte 61 +.byte 32 +.byte 37 +.byte 103 +.byte 10 +.byte 0 +.align 0 +L.912: +.byte 90 +.byte 32 +.byte 42 +.byte 32 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 0 +.align 0 +L.909: +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 9 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 101 +.byte 115 +.byte 32 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 101 +.byte 110 +.byte 116 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 32 +.byte 0 +.align 0 +L.908: +.byte 87 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 112 +.byte 114 +.byte 105 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 90 +.byte 32 +.byte 61 +.byte 32 +.byte 0 +.align 0 +L.903: +.byte 84 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 33 +.byte 10 +.byte 0 +.align 0 +L.900: +.byte 84 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 86 +.byte 69 +.byte 82 +.byte 89 +.byte 32 +.byte 83 +.byte 69 +.byte 82 +.byte 73 +.byte 79 +.byte 85 +.byte 83 +.byte 32 +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 33 +.byte 10 +.byte 0 +.align 0 +L.894: +.byte 32 +.byte 104 +.byte 97 +.byte 115 +.byte 32 +.byte 78 +.byte 79 +.byte 84 +.byte 32 +.byte 106 +.byte 117 +.byte 115 +.byte 116 +.byte 32 +.byte 98 +.byte 101 +.byte 101 +.byte 110 +.byte 32 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 97 +.byte 108 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.893: +.byte 84 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 79 +.byte 46 +.byte 75 +.byte 46 +.byte 44 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 118 +.byte 105 +.byte 100 +.byte 101 +.byte 100 +.byte 32 +.byte 79 +.byte 118 +.byte 101 +.byte 114 +.byte 47 +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 0 +.align 0 +L.890: +.byte 87 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 109 +.byte 97 +.byte 99 +.byte 104 +.byte 105 +.byte 110 +.byte 101 +.byte 32 +.byte 103 +.byte 101 +.byte 116 +.byte 115 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 40 +.byte 90 +.byte 32 +.byte 43 +.byte 32 +.byte 90 +.byte 41 +.byte 32 +.byte 47 +.byte 32 +.byte 90 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.886: +.byte 40 +.byte 90 +.byte 32 +.byte 43 +.byte 32 +.byte 90 +.byte 41 +.byte 32 +.byte 47 +.byte 32 +.byte 90 +.byte 32 +.byte 115 +.byte 104 +.byte 111 +.byte 117 +.byte 108 +.byte 100 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 115 +.byte 97 +.byte 102 +.byte 101 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.885: +.byte 83 +.byte 105 +.byte 110 +.byte 99 +.byte 101 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 32 +.byte 100 +.byte 101 +.byte 110 +.byte 105 +.byte 101 +.byte 115 +.byte 32 +.byte 90 +.byte 32 +.byte 61 +.byte 32 +.byte 48 +.byte 44 +.byte 32 +.byte 101 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 97 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 0 +.align 0 +L.881: +.byte 83 +.byte 105 +.byte 109 +.byte 105 +.byte 108 +.byte 97 +.byte 114 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 114 +.byte 101 +.byte 112 +.byte 97 +.byte 110 +.byte 99 +.byte 105 +.byte 101 +.byte 115 +.byte 32 +.byte 104 +.byte 97 +.byte 118 +.byte 101 +.byte 32 +.byte 111 +.byte 99 +.byte 99 +.byte 117 +.byte 114 +.byte 114 +.byte 101 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 116 +.byte 105 +.byte 109 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.871: +.byte 9 +.byte 9 +.byte 116 +.byte 104 +.byte 101 +.byte 121 +.byte 32 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.870: +.byte 9 +.byte 119 +.byte 104 +.byte 105 +.byte 99 +.byte 104 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 101 +.byte 100 +.byte 32 +.byte 117 +.byte 110 +.byte 101 +.byte 113 +.byte 117 +.byte 97 +.byte 108 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 59 +.byte 10 +.byte 0 +.align 0 +L.869: +.byte 9 +.byte 121 +.byte 105 +.byte 101 +.byte 108 +.byte 100 +.byte 101 +.byte 100 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 59 +.byte 10 +.byte 0 +.align 0 +L.868: +.byte 9 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 32 +.byte 94 +.byte 32 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 10 +.byte 0 +.align 0 +L.867: +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 10 +.byte 0 +.align 0 +L.866: +.byte 87 +.byte 65 +.byte 82 +.byte 78 +.byte 73 +.byte 78 +.byte 71 +.byte 58 +.byte 32 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 10 +.byte 0 +.align 0 +L.848: +.byte 9 +.byte 105 +.byte 110 +.byte 115 +.byte 116 +.byte 101 +.byte 97 +.byte 100 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 32 +.byte 48 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.847: +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 40 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 32 +.byte 45 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 3 +L.839: +.long 0x88e368f1 +.long 0x3ed4f8b5 +.align 0 +L.837: +.byte 37 +.byte 115 +.byte 58 +.byte 32 +.byte 32 +.byte 37 +.byte 115 +.byte 0 +.align 0 +L.836: +.byte 70 +.byte 76 +.byte 65 +.byte 87 +.byte 0 +.align 0 +L.835: +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 0 +.align 0 +L.834: +.byte 83 +.byte 69 +.byte 82 +.byte 73 +.byte 79 +.byte 85 +.byte 83 +.byte 32 +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 0 +.align 0 +L.833: +.byte 70 +.byte 65 +.byte 73 +.byte 76 +.byte 85 +.byte 82 +.byte 69 +.byte 0 +.align 0 +L.827: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 80 +.byte 97 +.byte 103 +.byte 101 +.byte 58 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 10 +.byte 0 +.align 0 +L.826: +.byte 10 +.byte 68 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 105 +.byte 115 +.byte 32 +.byte 114 +.byte 101 +.byte 115 +.byte 117 +.byte 109 +.byte 101 +.byte 115 +.byte 32 +.byte 97 +.byte 102 +.byte 116 +.byte 101 +.byte 114 +.byte 32 +.byte 109 +.byte 105 +.byte 108 +.byte 101 +.byte 115 +.byte 116 +.byte 111 +.byte 110 +.byte 101 +.byte 32 +.byte 78 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 32 +.byte 37 +.byte 100 +.byte 0 +.align 3 +L.824: +.long 0x0 +.long 0xbff00000 +.align 0 +L.819: +.byte 69 +.byte 78 +.byte 68 +.byte 32 +.byte 79 +.byte 70 +.byte 32 +.byte 84 +.byte 69 +.byte 83 +.byte 84 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.818: +.byte 10 +.byte 65 +.byte 32 +.byte 116 +.byte 111 +.byte 116 +.byte 97 +.byte 108 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 102 +.byte 108 +.byte 111 +.byte 97 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 112 +.byte 111 +.byte 105 +.byte 110 +.byte 116 +.byte 32 +.byte 101 +.byte 120 +.byte 99 +.byte 101 +.byte 112 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 119 +.byte 101 +.byte 114 +.byte 101 +.byte 32 +.byte 114 +.byte 101 +.byte 103 +.byte 105 +.byte 115 +.byte 116 +.byte 101 +.byte 114 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.815: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 100 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 69 +.byte 120 +.byte 99 +.byte 101 +.byte 108 +.byte 108 +.byte 101 +.byte 110 +.byte 116 +.byte 33 +.byte 10 +.byte 0 +.align 0 +L.814: +.byte 32 +.byte 100 +.byte 117 +.byte 114 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 71 +.byte 114 +.byte 97 +.byte 100 +.byte 117 +.byte 97 +.byte 108 +.byte 32 +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.813: +.byte 44 +.byte 10 +.byte 101 +.byte 120 +.byte 99 +.byte 101 +.byte 112 +.byte 116 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 112 +.byte 111 +.byte 115 +.byte 115 +.byte 105 +.byte 98 +.byte 108 +.byte 121 +.byte 32 +.byte 68 +.byte 111 +.byte 117 +.byte 98 +.byte 108 +.byte 101 +.byte 32 +.byte 82 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 105 +.byte 110 +.byte 103 +.byte 0 +.align 0 +L.812: +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.809: +.byte 56 +.byte 53 +.byte 52 +.byte 0 +.align 0 +L.808: +.byte 55 +.byte 53 +.byte 52 +.byte 0 +.align 0 +L.805: +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 112 +.byte 111 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 73 +.byte 69 +.byte 69 +.byte 69 +.byte 32 +.byte 115 +.byte 116 +.byte 97 +.byte 110 +.byte 100 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 80 +.byte 0 +.align 0 +L.804: +.byte 82 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 102 +.byte 111 +.byte 114 +.byte 109 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 0 +.align 0 +L.801: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 100 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 115 +.byte 101 +.byte 101 +.byte 109 +.byte 115 +.byte 32 +.byte 83 +.byte 97 +.byte 116 +.byte 105 +.byte 115 +.byte 102 +.byte 97 +.byte 99 +.byte 116 +.byte 111 +.byte 114 +.byte 121 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.795: +.byte 78 +.byte 111 +.byte 32 +.byte 102 +.byte 97 +.byte 105 +.byte 108 +.byte 117 +.byte 114 +.byte 101 +.byte 115 +.byte 44 +.byte 32 +.byte 100 +.byte 101 +.byte 102 +.byte 101 +.byte 99 +.byte 116 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 114 +.byte 32 +.byte 102 +.byte 108 +.byte 97 +.byte 119 +.byte 115 +.byte 32 +.byte 104 +.byte 97 +.byte 118 +.byte 101 +.byte 32 +.byte 98 +.byte 101 +.byte 101 +.byte 110 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.794: +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 39 +.byte 115 +.byte 32 +.byte 115 +.byte 117 +.byte 98 +.byte 115 +.byte 101 +.byte 113 +.byte 117 +.byte 101 +.byte 110 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.793: +.byte 80 +.byte 111 +.byte 116 +.byte 101 +.byte 110 +.byte 116 +.byte 105 +.byte 97 +.byte 108 +.byte 108 +.byte 121 +.byte 32 +.byte 102 +.byte 97 +.byte 116 +.byte 97 +.byte 108 +.byte 32 +.byte 70 +.byte 65 +.byte 73 +.byte 76 +.byte 85 +.byte 82 +.byte 69 +.byte 32 +.byte 109 +.byte 97 +.byte 121 +.byte 32 +.byte 104 +.byte 97 +.byte 118 +.byte 101 +.byte 32 +.byte 115 +.byte 112 +.byte 111 +.byte 105 +.byte 108 +.byte 101 +.byte 100 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 0 +.align 0 +L.790: +.byte 117 +.byte 110 +.byte 97 +.byte 99 +.byte 99 +.byte 101 +.byte 112 +.byte 116 +.byte 97 +.byte 98 +.byte 108 +.byte 101 +.byte 32 +.byte 83 +.byte 101 +.byte 114 +.byte 105 +.byte 111 +.byte 117 +.byte 115 +.byte 32 +.byte 68 +.byte 101 +.byte 102 +.byte 101 +.byte 99 +.byte 116 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.789: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 100 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 104 +.byte 97 +.byte 115 +.byte 32 +.byte 0 +.align 0 +L.785: +.byte 100 +.byte 101 +.byte 115 +.byte 112 +.byte 105 +.byte 116 +.byte 101 +.byte 32 +.byte 105 +.byte 110 +.byte 99 +.byte 111 +.byte 110 +.byte 118 +.byte 101 +.byte 110 +.byte 105 +.byte 101 +.byte 110 +.byte 116 +.byte 32 +.byte 68 +.byte 101 +.byte 102 +.byte 101 +.byte 99 +.byte 116 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.784: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 100 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 109 +.byte 97 +.byte 121 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 65 +.byte 99 +.byte 99 +.byte 101 +.byte 112 +.byte 116 +.byte 97 +.byte 98 +.byte 108 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.779: +.byte 83 +.byte 97 +.byte 116 +.byte 105 +.byte 115 +.byte 102 +.byte 97 +.byte 99 +.byte 116 +.byte 111 +.byte 114 +.byte 121 +.byte 32 +.byte 116 +.byte 104 +.byte 111 +.byte 117 +.byte 103 +.byte 104 +.byte 32 +.byte 102 +.byte 108 +.byte 97 +.byte 119 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.778: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 100 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 115 +.byte 101 +.byte 101 +.byte 109 +.byte 115 +.byte 32 +.byte 0 +.align 0 +L.767: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 32 +.byte 37 +.byte 45 +.byte 50 +.byte 57 +.byte 115 +.byte 32 +.byte 37 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.760: +.byte 70 +.byte 76 +.byte 65 +.byte 87 +.byte 115 +.byte 32 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 101 +.byte 100 +.byte 32 +.byte 61 +.byte 0 +.align 0 +L.759: +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 115 +.byte 32 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 101 +.byte 100 +.byte 32 +.byte 61 +.byte 0 +.align 0 +L.758: +.byte 83 +.byte 69 +.byte 82 +.byte 73 +.byte 79 +.byte 85 +.byte 83 +.byte 32 +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 115 +.byte 32 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 101 +.byte 100 +.byte 32 +.byte 61 +.byte 0 +.align 0 +L.757: +.byte 70 +.byte 65 +.byte 73 +.byte 76 +.byte 85 +.byte 82 +.byte 69 +.byte 115 +.byte 32 +.byte 32 +.byte 101 +.byte 110 +.byte 99 +.byte 111 +.byte 117 +.byte 110 +.byte 116 +.byte 101 +.byte 114 +.byte 101 +.byte 100 +.byte 32 +.byte 61 +.byte 0 +.align 0 +L.753: +.byte 10 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 84 +.byte 114 +.byte 121 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 101 +.byte 32 +.byte 48 +.byte 32 +.byte 47 +.byte 32 +.byte 48 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 100 +.byte 117 +.byte 99 +.byte 101 +.byte 115 +.byte 32 +.byte 46 +.byte 46 +.byte 46 +.byte 0 +.align 0 +L.752: +.byte 32 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.749: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 84 +.byte 114 +.byte 121 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 101 +.byte 32 +.byte 49 +.byte 32 +.byte 47 +.byte 32 +.byte 48 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 100 +.byte 117 +.byte 99 +.byte 101 +.byte 115 +.byte 32 +.byte 46 +.byte 46 +.byte 46 +.byte 0 +.align 0 +L.748: +.byte 87 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 109 +.byte 101 +.byte 115 +.byte 115 +.byte 97 +.byte 103 +.byte 101 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 47 +.byte 111 +.byte 114 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 115 +.byte 32 +.byte 100 +.byte 111 +.byte 101 +.byte 115 +.byte 32 +.byte 68 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 90 +.byte 101 +.byte 114 +.byte 111 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 100 +.byte 117 +.byte 99 +.byte 101 +.byte 63 +.byte 10 +.byte 0 +.align 0 +L.747: +.byte 32 +.byte 32 +.byte 105 +.byte 110 +.byte 115 +.byte 116 +.byte 101 +.byte 97 +.byte 100 +.byte 44 +.byte 32 +.byte 88 +.byte 32 +.byte 47 +.byte 32 +.byte 88 +.byte 32 +.byte 45 +.byte 32 +.byte 49 +.byte 47 +.byte 50 +.byte 32 +.byte 45 +.byte 32 +.byte 49 +.byte 47 +.byte 50 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.746: +.byte 32 +.byte 32 +.byte 88 +.byte 32 +.byte 47 +.byte 32 +.byte 88 +.byte 32 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 49 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 110 +.byte 32 +.byte 88 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.741: +.byte 32 +.byte 32 +.byte 88 +.byte 32 +.byte 47 +.byte 32 +.byte 88 +.byte 32 +.byte 32 +.byte 116 +.byte 114 +.byte 97 +.byte 112 +.byte 115 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 110 +.byte 32 +.byte 88 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 103 +.byte 10 +.byte 0 +.align 0 +L.727: +.byte 105 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 102 +.byte 97 +.byte 114 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 49 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.726: +.byte 32 +.byte 117 +.byte 110 +.byte 98 +.byte 97 +.byte 108 +.byte 97 +.byte 110 +.byte 99 +.byte 101 +.byte 100 +.byte 32 +.byte 114 +.byte 97 +.byte 110 +.byte 103 +.byte 101 +.byte 59 +.byte 32 +.byte 85 +.byte 102 +.byte 84 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 42 +.byte 32 +.byte 86 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 9 +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 0 +L.725: +.byte 66 +.byte 97 +.byte 100 +.byte 108 +.byte 121 +.byte 0 +.align 0 +L.718: +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 102 +.byte 97 +.byte 114 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 40 +.byte 90 +.byte 41 +.byte 32 +.byte 94 +.byte 32 +.byte 50 +.byte 32 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.717: +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 103 +.byte 101 +.byte 115 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 90 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.705: +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 102 +.byte 97 +.byte 114 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 40 +.byte 90 +.byte 41 +.byte 32 +.byte 94 +.byte 32 +.byte 50 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.704: +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 103 +.byte 101 +.byte 115 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 119 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 112 +.byte 114 +.byte 105 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 90 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.687: +.byte 43 +.byte 45 +.byte 37 +.byte 103 +.byte 44 +.byte 32 +.byte 43 +.byte 45 +.byte 37 +.byte 103 +.byte 10 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 43 +.byte 45 +.byte 37 +.byte 103 +.byte 32 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 102 +.byte 117 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 79 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 46 +.byte 0 +.align 0 +L.686: +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 105 +.byte 110 +.byte 118 +.byte 111 +.byte 108 +.byte 118 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 0 +.align 0 +L.680: +.byte 97 +.byte 98 +.byte 111 +.byte 118 +.byte 101 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.679: +.byte 65 +.byte 110 +.byte 121 +.byte 32 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 97 +.byte 108 +.byte 32 +.byte 115 +.byte 101 +.byte 112 +.byte 97 +.byte 114 +.byte 97 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 42 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 111 +.byte 110 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.678: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 110 +.byte 111 +.byte 114 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 86 +.byte 32 +.byte 47 +.byte 32 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.677: +.byte 78 +.byte 111 +.byte 32 +.byte 79 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 115 +.byte 104 +.byte 111 +.byte 117 +.byte 108 +.byte 100 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 97 +.byte 108 +.byte 101 +.byte 100 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 86 +.byte 32 +.byte 42 +.byte 32 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.676: +.byte 84 +.byte 104 +.byte 101 +.byte 114 +.byte 101 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 32 +.byte 115 +.byte 97 +.byte 116 +.byte 117 +.byte 114 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 32 +.byte 98 +.byte 101 +.byte 99 +.byte 97 +.byte 117 +.byte 115 +.byte 101 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 115 +.byte 121 +.byte 115 +.byte 116 +.byte 101 +.byte 109 +.byte 32 +.byte 116 +.byte 114 +.byte 97 +.byte 112 +.byte 115 +.byte 32 +.byte 111 +.byte 110 +.byte 32 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.675: +.byte 79 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 115 +.byte 97 +.byte 116 +.byte 117 +.byte 114 +.byte 97 +.byte 116 +.byte 101 +.byte 115 +.byte 32 +.byte 97 +.byte 116 +.byte 32 +.byte 86 +.byte 48 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.672: +.byte 79 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 86 +.byte 32 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.663: +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 112 +.byte 97 +.byte 115 +.byte 116 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 9 +.byte 115 +.byte 104 +.byte 114 +.byte 105 +.byte 110 +.byte 107 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.660: +.byte 45 +.byte 40 +.byte 45 +.byte 89 +.byte 41 +.byte 32 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 89 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.659: +.byte 102 +.byte 105 +.byte 110 +.byte 100 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 0 +.align 0 +L.658: +.byte 83 +.byte 101 +.byte 101 +.byte 109 +.byte 115 +.byte 32 +.byte 79 +.byte 46 +.byte 75 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.655: +.byte 84 +.byte 114 +.byte 121 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 105 +.byte 116 +.byte 32 +.byte 111 +.byte 110 +.byte 32 +.byte 89 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.654: +.byte 67 +.byte 97 +.byte 110 +.byte 32 +.byte 96 +.byte 90 +.byte 32 +.byte 61 +.byte 32 +.byte 45 +.byte 89 +.byte 39 +.byte 32 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 63 +.byte 10 +.byte 0 +.align 0 +L.647: +.byte 84 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 109 +.byte 97 +.byte 121 +.byte 32 +.byte 103 +.byte 101 +.byte 110 +.byte 101 +.byte 114 +.byte 97 +.byte 116 +.byte 101 +.byte 32 +.byte 97 +.byte 110 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.646: +.byte 83 +.byte 101 +.byte 97 +.byte 114 +.byte 99 +.byte 104 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 79 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 58 +.byte 10 +.byte 0 +.align 0 +L.645: +.byte 32 +.byte 46 +.byte 46 +.byte 46 +.byte 32 +.byte 110 +.byte 111 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 114 +.byte 101 +.byte 112 +.byte 97 +.byte 110 +.byte 99 +.byte 105 +.byte 101 +.byte 115 +.byte 32 +.byte 102 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.637: +.byte 84 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 112 +.byte 111 +.byte 119 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 90 +.byte 94 +.byte 81 +.byte 32 +.byte 97 +.byte 116 +.byte 32 +.byte 102 +.byte 111 +.byte 117 +.byte 114 +.byte 32 +.byte 110 +.byte 101 +.byte 97 +.byte 114 +.byte 108 +.byte 121 +.byte 32 +.byte 101 +.byte 120 +.byte 116 +.byte 114 +.byte 101 +.byte 109 +.byte 101 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.636: +.byte 65 +.byte 99 +.byte 99 +.byte 117 +.byte 114 +.byte 97 +.byte 99 +.byte 121 +.byte 32 +.byte 115 +.byte 101 +.byte 101 +.byte 109 +.byte 115 +.byte 32 +.byte 97 +.byte 100 +.byte 101 +.byte 113 +.byte 117 +.byte 97 +.byte 116 +.byte 101 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.629: +.byte 9 +.byte 99 +.byte 97 +.byte 108 +.byte 99 +.byte 117 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 105 +.byte 110 +.byte 118 +.byte 111 +.byte 108 +.byte 118 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 116 +.byte 105 +.byte 110 +.byte 121 +.byte 32 +.byte 105 +.byte 110 +.byte 116 +.byte 101 +.byte 114 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 114 +.byte 97 +.byte 116 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.628: +.byte 9 +.byte 84 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 109 +.byte 117 +.byte 99 +.byte 104 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 32 +.byte 109 +.byte 97 +.byte 121 +.byte 32 +.byte 115 +.byte 112 +.byte 111 +.byte 105 +.byte 108 +.byte 32 +.byte 102 +.byte 105 +.byte 110 +.byte 97 +.byte 110 +.byte 99 +.byte 105 +.byte 97 +.byte 108 +.byte 10 +.byte 0 +.align 0 +L.627: +.byte 9 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.626: +.byte 9 +.byte 40 +.byte 49 +.byte 32 +.byte 43 +.byte 32 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 32 +.byte 94 +.byte 32 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 59 +.byte 10 +.byte 0 +.align 0 +L.625: +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 10 +.byte 0 +.align 0 +L.624: +.byte 67 +.byte 97 +.byte 108 +.byte 99 +.byte 117 +.byte 108 +.byte 97 +.byte 116 +.byte 101 +.byte 100 +.byte 0 +.align 0 +L.617: +.byte 84 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 88 +.byte 94 +.byte 40 +.byte 40 +.byte 88 +.byte 32 +.byte 43 +.byte 32 +.byte 49 +.byte 41 +.byte 32 +.byte 47 +.byte 32 +.byte 40 +.byte 88 +.byte 32 +.byte 45 +.byte 32 +.byte 49 +.byte 41 +.byte 41 +.byte 32 +.byte 118 +.byte 115 +.byte 46 +.byte 32 +.byte 101 +.byte 120 +.byte 112 +.byte 40 +.byte 50 +.byte 41 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 88 +.byte 32 +.byte 45 +.byte 62 +.byte 32 +.byte 49 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.613: +.byte 84 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 79 +.byte 46 +.byte 75 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.610: +.byte 32 +.byte 32 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.609: +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 98 +.byte 101 +.byte 116 +.byte 119 +.byte 101 +.byte 101 +.byte 110 +.byte 32 +.byte 48 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 10 +.byte 0 +.align 0 +L.605: +.byte 97 +.byte 99 +.byte 116 +.byte 117 +.byte 97 +.byte 108 +.byte 108 +.byte 121 +.byte 32 +.byte 99 +.byte 97 +.byte 108 +.byte 99 +.byte 117 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 121 +.byte 105 +.byte 101 +.byte 108 +.byte 100 +.byte 115 +.byte 58 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.604: +.byte 115 +.byte 104 +.byte 111 +.byte 117 +.byte 108 +.byte 100 +.byte 32 +.byte 97 +.byte 102 +.byte 102 +.byte 108 +.byte 105 +.byte 99 +.byte 116 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 101 +.byte 120 +.byte 112 +.byte 114 +.byte 101 +.byte 115 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 10 +.byte 9 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 32 +.byte 94 +.byte 32 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 59 +.byte 10 +.byte 0 +.align 0 +L.603: +.byte 85 +.byte 102 +.byte 84 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 61 +.byte 32 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 32 +.byte 94 +.byte 32 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 10 +.byte 111 +.byte 110 +.byte 108 +.byte 121 +.byte 32 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 0 +.align 0 +L.602: +.byte 83 +.byte 105 +.byte 110 +.byte 99 +.byte 101 +.byte 32 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 111 +.byte 99 +.byte 99 +.byte 117 +.byte 114 +.byte 115 +.byte 32 +.byte 98 +.byte 101 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.601: +.byte 82 +.byte 97 +.byte 110 +.byte 103 +.byte 101 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 110 +.byte 97 +.byte 114 +.byte 114 +.byte 111 +.byte 119 +.byte 59 +.byte 32 +.byte 85 +.byte 49 +.byte 94 +.byte 37 +.byte 100 +.byte 32 +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.596: +.byte 109 +.byte 101 +.byte 114 +.byte 101 +.byte 108 +.byte 121 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 111 +.byte 102 +.byte 102 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.595: +.byte 99 +.byte 97 +.byte 108 +.byte 99 +.byte 117 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 109 +.byte 97 +.byte 121 +.byte 32 +.byte 115 +.byte 117 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 32 +.byte 108 +.byte 97 +.byte 114 +.byte 103 +.byte 101 +.byte 114 +.byte 32 +.byte 82 +.byte 101 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 110 +.byte 32 +.byte 0 +.align 0 +L.594: +.byte 32 +.byte 98 +.byte 101 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 119 +.byte 104 +.byte 105 +.byte 99 +.byte 104 +.byte 0 +.align 0 +L.593: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 44 +.byte 32 +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 0 +L.592: +.byte 88 +.byte 32 +.byte 47 +.byte 32 +.byte 90 +.byte 32 +.byte 61 +.byte 32 +.byte 49 +.byte 32 +.byte 43 +.byte 32 +.byte 37 +.byte 103 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.591: +.byte 88 +.byte 32 +.byte 47 +.byte 32 +.byte 90 +.byte 32 +.byte 102 +.byte 97 +.byte 105 +.byte 108 +.byte 115 +.byte 33 +.byte 10 +.byte 0 +.align 0 +L.588: +.byte 101 +.byte 110 +.byte 99 +.byte 111 +.byte 117 +.byte 110 +.byte 116 +.byte 101 +.byte 114 +.byte 32 +.byte 68 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 90 +.byte 101 +.byte 114 +.byte 111 +.byte 32 +.byte 97 +.byte 108 +.byte 116 +.byte 104 +.byte 111 +.byte 117 +.byte 103 +.byte 104 +.byte 32 +.byte 97 +.byte 99 +.byte 116 +.byte 117 +.byte 97 +.byte 108 +.byte 108 +.byte 121 +.byte 10 +.byte 0 +.align 0 +L.587: +.byte 32 +.byte 32 +.byte 46 +.byte 46 +.byte 46 +.byte 32 +.byte 40 +.byte 102 +.byte 40 +.byte 88 +.byte 41 +.byte 32 +.byte 45 +.byte 32 +.byte 102 +.byte 40 +.byte 90 +.byte 41 +.byte 41 +.byte 32 +.byte 47 +.byte 32 +.byte 40 +.byte 88 +.byte 32 +.byte 45 +.byte 32 +.byte 90 +.byte 41 +.byte 32 +.byte 46 +.byte 46 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.586: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 105 +.byte 102 +.byte 32 +.byte 40 +.byte 88 +.byte 32 +.byte 61 +.byte 61 +.byte 32 +.byte 90 +.byte 41 +.byte 32 +.byte 32 +.byte 46 +.byte 46 +.byte 46 +.byte 32 +.byte 32 +.byte 101 +.byte 108 +.byte 115 +.byte 101 +.byte 0 +.align 0 +L.585: +.byte 99 +.byte 111 +.byte 110 +.byte 102 +.byte 117 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 110 +.byte 32 +.byte 105 +.byte 110 +.byte 110 +.byte 111 +.byte 99 +.byte 101 +.byte 110 +.byte 116 +.byte 32 +.byte 115 +.byte 116 +.byte 97 +.byte 116 +.byte 101 +.byte 109 +.byte 101 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 108 +.byte 105 +.byte 107 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.584: +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 83 +.byte 69 +.byte 82 +.byte 73 +.byte 79 +.byte 85 +.byte 83 +.byte 32 +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 10 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 99 +.byte 97 +.byte 117 +.byte 115 +.byte 101 +.byte 115 +.byte 32 +.byte 0 +.align 0 +L.583: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 83 +.byte 104 +.byte 111 +.byte 117 +.byte 108 +.byte 100 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 78 +.byte 79 +.byte 84 +.byte 32 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 97 +.byte 108 +.byte 32 +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 44 +.byte 32 +.byte 0 +.align 0 +L.582: +.byte 121 +.byte 101 +.byte 116 +.byte 32 +.byte 88 +.byte 32 +.byte 45 +.byte 32 +.byte 90 +.byte 32 +.byte 121 +.byte 105 +.byte 101 +.byte 108 +.byte 100 +.byte 115 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.581: +.byte 88 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 9 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 101 +.byte 113 +.byte 117 +.byte 97 +.byte 108 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 90 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.576: +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 47 +.byte 32 +.byte 85 +.byte 102 +.byte 84 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 102 +.byte 97 +.byte 105 +.byte 108 +.byte 101 +.byte 100 +.byte 33 +.byte 10 +.byte 0 +.align 0 +L.567: +.byte 40 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 111 +.byte 102 +.byte 102 +.byte 32 +.byte 105 +.byte 110 +.byte 32 +.byte 85 +.byte 102 +.byte 84 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 41 +.byte 32 +.byte 60 +.byte 32 +.byte 69 +.byte 48 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.566: +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 103 +.byte 114 +.byte 97 +.byte 100 +.byte 117 +.byte 97 +.byte 108 +.byte 59 +.byte 32 +.byte 105 +.byte 116 +.byte 32 +.byte 105 +.byte 110 +.byte 99 +.byte 117 +.byte 114 +.byte 115 +.byte 32 +.byte 65 +.byte 98 +.byte 115 +.byte 111 +.byte 108 +.byte 117 +.byte 116 +.byte 101 +.byte 32 +.byte 69 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 32 +.byte 61 +.byte 10 +.byte 0 +.align 0 +L.561: +.byte 124 +.byte 81 +.byte 32 +.byte 45 +.byte 32 +.byte 89 +.byte 124 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.560: +.byte 112 +.byte 114 +.byte 105 +.byte 110 +.byte 116 +.byte 32 +.byte 111 +.byte 117 +.byte 116 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 81 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 44 +.byte 32 +.byte 89 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.559: +.byte 81 +.byte 32 +.byte 61 +.byte 61 +.byte 32 +.byte 89 +.byte 32 +.byte 119 +.byte 104 +.byte 105 +.byte 108 +.byte 101 +.byte 32 +.byte 100 +.byte 101 +.byte 110 +.byte 121 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 124 +.byte 81 +.byte 32 +.byte 45 +.byte 32 +.byte 89 +.byte 124 +.byte 32 +.byte 61 +.byte 61 +.byte 32 +.byte 48 +.byte 59 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 115 +.byte 101 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 115 +.byte 10 +.byte 0 +.align 0 +L.558: +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 102 +.byte 117 +.byte 115 +.byte 101 +.byte 115 +.byte 32 +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 44 +.byte 32 +.byte 119 +.byte 104 +.byte 105 +.byte 99 +.byte 104 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 103 +.byte 101 +.byte 115 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 10 +.byte 0 +.align 0 +L.556: +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 101 +.byte 108 +.byte 115 +.byte 101 +.byte 32 +.byte 109 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 105 +.byte 99 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 103 +.byte 101 +.byte 116 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 109 +.byte 97 +.byte 110 +.byte 121 +.byte 32 +.byte 108 +.byte 97 +.byte 115 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 119 +.byte 114 +.byte 111 +.byte 110 +.byte 103 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.555: +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 100 +.byte 111 +.byte 119 +.byte 110 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.554: +.byte 97 +.byte 112 +.byte 112 +.byte 114 +.byte 111 +.byte 97 +.byte 99 +.byte 104 +.byte 32 +.byte 97 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.553: +.byte 69 +.byte 105 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 97 +.byte 99 +.byte 99 +.byte 117 +.byte 114 +.byte 97 +.byte 99 +.byte 121 +.byte 32 +.byte 100 +.byte 101 +.byte 116 +.byte 101 +.byte 114 +.byte 105 +.byte 111 +.byte 114 +.byte 97 +.byte 116 +.byte 101 +.byte 115 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 115 +.byte 10 +.byte 0 +.align 0 +L.541: +.byte 83 +.byte 109 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 115 +.byte 116 +.byte 114 +.byte 105 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 112 +.byte 111 +.byte 115 +.byte 105 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 32 +.byte 102 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 69 +.byte 48 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 103 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.540: +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 110 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 100 +.byte 117 +.byte 99 +.byte 116 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.539: +.byte 68 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 101 +.byte 110 +.byte 99 +.byte 101 +.byte 32 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 115 +.byte 32 +.byte 97 +.byte 116 +.byte 32 +.byte 97 +.byte 32 +.byte 104 +.byte 105 +.byte 103 +.byte 104 +.byte 101 +.byte 114 +.byte 0 +.align 0 +L.536: +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 110 +.byte 32 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 101 +.byte 110 +.byte 99 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.535: +.byte 80 +.byte 114 +.byte 111 +.byte 100 +.byte 117 +.byte 99 +.byte 116 +.byte 115 +.byte 32 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 97 +.byte 116 +.byte 32 +.byte 97 +.byte 32 +.byte 104 +.byte 105 +.byte 103 +.byte 104 +.byte 101 +.byte 114 +.byte 0 +.align 0 +L.528: +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 32 +.byte 80 +.byte 115 +.byte 101 +.byte 117 +.byte 100 +.byte 111 +.byte 90 +.byte 101 +.byte 114 +.byte 111 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 112 +.byte 114 +.byte 105 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 111 +.byte 117 +.byte 116 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 37 +.byte 103 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.527: +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 99 +.byte 97 +.byte 110 +.byte 32 +.byte 115 +.byte 116 +.byte 105 +.byte 99 +.byte 107 +.byte 32 +.byte 97 +.byte 116 +.byte 32 +.byte 97 +.byte 110 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 103 +.byte 101 +.byte 100 +.byte 108 +.byte 121 +.byte 32 +.byte 112 +.byte 111 +.byte 115 +.byte 105 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.526: +.byte 112 +.byte 111 +.byte 115 +.byte 105 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 44 +.byte 32 +.byte 105 +.byte 115 +.byte 110 +.byte 39 +.byte 116 +.byte 59 +.byte 32 +.byte 105 +.byte 116 +.byte 32 +.byte 112 +.byte 114 +.byte 105 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 111 +.byte 117 +.byte 116 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 32 +.byte 37 +.byte 103 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.525: +.byte 66 +.byte 117 +.byte 116 +.byte 32 +.byte 45 +.byte 80 +.byte 115 +.byte 101 +.byte 117 +.byte 100 +.byte 111 +.byte 90 +.byte 101 +.byte 114 +.byte 111 +.byte 44 +.byte 32 +.byte 119 +.byte 104 +.byte 105 +.byte 99 +.byte 104 +.byte 32 +.byte 115 +.byte 104 +.byte 111 +.byte 117 +.byte 108 +.byte 100 +.byte 32 +.byte 98 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.522: +.byte 80 +.byte 115 +.byte 101 +.byte 117 +.byte 100 +.byte 111 +.byte 90 +.byte 101 +.byte 114 +.byte 111 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 112 +.byte 114 +.byte 105 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 111 +.byte 117 +.byte 116 +.byte 32 +.byte 97 +.byte 115 +.byte 58 +.byte 32 +.byte 37 +.byte 103 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.521: +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 103 +.byte 101 +.byte 100 +.byte 108 +.byte 121 +.byte 32 +.byte 110 +.byte 101 +.byte 103 +.byte 97 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.520: +.byte 80 +.byte 111 +.byte 115 +.byte 105 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 32 +.byte 101 +.byte 120 +.byte 112 +.byte 114 +.byte 101 +.byte 115 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 99 +.byte 97 +.byte 110 +.byte 32 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 97 +.byte 110 +.byte 10 +.byte 0 +.align 0 +L.507: +.byte 109 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 105 +.byte 99 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 103 +.byte 101 +.byte 116 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 109 +.byte 97 +.byte 110 +.byte 121 +.byte 32 +.byte 108 +.byte 97 +.byte 115 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 119 +.byte 114 +.byte 111 +.byte 110 +.byte 103 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.483: +.byte 83 +.byte 101 +.byte 101 +.byte 107 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 115 +.byte 32 +.byte 85 +.byte 102 +.byte 84 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 69 +.byte 48 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.480: +.byte 46 +.byte 46 +.byte 46 +.byte 32 +.byte 110 +.byte 111 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 114 +.byte 101 +.byte 112 +.byte 97 +.byte 110 +.byte 99 +.byte 105 +.byte 115 +.byte 32 +.byte 102 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.477: +.byte 9 +.byte 105 +.byte 110 +.byte 118 +.byte 111 +.byte 108 +.byte 118 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 105 +.byte 110 +.byte 116 +.byte 101 +.byte 114 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 114 +.byte 97 +.byte 116 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.476: +.byte 69 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 115 +.byte 32 +.byte 108 +.byte 105 +.byte 107 +.byte 101 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 109 +.byte 97 +.byte 121 +.byte 32 +.byte 105 +.byte 110 +.byte 118 +.byte 97 +.byte 108 +.byte 105 +.byte 100 +.byte 97 +.byte 116 +.byte 101 +.byte 32 +.byte 102 +.byte 105 +.byte 110 +.byte 97 +.byte 110 +.byte 99 +.byte 105 +.byte 97 +.byte 108 +.byte 32 +.byte 99 +.byte 97 +.byte 108 +.byte 99 +.byte 117 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 10 +.byte 0 +.align 0 +L.455: +.byte 84 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 112 +.byte 111 +.byte 119 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 90 +.byte 94 +.byte 105 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 115 +.byte 109 +.byte 97 +.byte 108 +.byte 108 +.byte 32 +.byte 73 +.byte 110 +.byte 116 +.byte 101 +.byte 103 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 90 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 105 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.452: +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 32 +.byte 103 +.byte 101 +.byte 116 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 109 +.byte 97 +.byte 110 +.byte 121 +.byte 32 +.byte 108 +.byte 97 +.byte 115 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 119 +.byte 114 +.byte 111 +.byte 110 +.byte 103 +.byte 0 +.align 0 +L.450: +.byte 116 +.byte 111 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 32 +.byte 117 +.byte 108 +.byte 112 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.449: +.byte 79 +.byte 98 +.byte 115 +.byte 101 +.byte 114 +.byte 118 +.byte 101 +.byte 100 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 115 +.byte 32 +.byte 114 +.byte 117 +.byte 110 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 32 +.byte 0 +.align 0 +L.448: +.byte 83 +.byte 113 +.byte 117 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 114 +.byte 111 +.byte 111 +.byte 116 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 101 +.byte 105 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 112 +.byte 101 +.byte 100 +.byte 32 +.byte 110 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.445: +.byte 83 +.byte 113 +.byte 117 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 114 +.byte 111 +.byte 111 +.byte 116 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 112 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.440: +.byte 83 +.byte 113 +.byte 117 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 114 +.byte 111 +.byte 111 +.byte 116 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.435: +.byte 32 +.byte 102 +.byte 97 +.byte 105 +.byte 108 +.byte 115 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 115 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.434: +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 94 +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.433: +.byte 65 +.byte 110 +.byte 111 +.byte 109 +.byte 97 +.byte 108 +.byte 111 +.byte 117 +.byte 115 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 73 +.byte 110 +.byte 116 +.byte 101 +.byte 103 +.byte 101 +.byte 114 +.byte 32 +.byte 60 +.byte 32 +.byte 0 +.align 0 +L.393: +.byte 84 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 100 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 112 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.371: +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 40 +.byte 88 +.byte 41 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 110 +.byte 45 +.byte 109 +.byte 111 +.byte 110 +.byte 111 +.byte 116 +.byte 111 +.byte 110 +.byte 105 +.byte 99 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 88 +.byte 32 +.byte 110 +.byte 101 +.byte 97 +.byte 114 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.370: +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 32 +.byte 104 +.byte 97 +.byte 115 +.byte 32 +.byte 112 +.byte 97 +.byte 115 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 97 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 77 +.byte 111 +.byte 110 +.byte 111 +.byte 116 +.byte 111 +.byte 110 +.byte 105 +.byte 99 +.byte 105 +.byte 116 +.byte 121 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.353: +.byte 84 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 32 +.byte 109 +.byte 111 +.byte 110 +.byte 111 +.byte 116 +.byte 111 +.byte 110 +.byte 105 +.byte 99 +.byte 105 +.byte 116 +.byte 121 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.342: +.byte 84 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 105 +.byte 102 +.byte 32 +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 40 +.byte 88 +.byte 32 +.byte 42 +.byte 32 +.byte 88 +.byte 41 +.byte 32 +.byte 61 +.byte 61 +.byte 32 +.byte 88 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 73 +.byte 110 +.byte 116 +.byte 101 +.byte 103 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 88 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.337: +.byte 83 +.byte 113 +.byte 117 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 114 +.byte 111 +.byte 111 +.byte 116 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 48 +.byte 46 +.byte 48 +.byte 44 +.byte 32 +.byte 45 +.byte 48 +.byte 46 +.byte 48 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 49 +.byte 46 +.byte 48 +.byte 32 +.byte 119 +.byte 114 +.byte 111 +.byte 110 +.byte 103 +.byte 0 +.align 0 +L.335: +.byte 10 +.byte 82 +.byte 117 +.byte 110 +.byte 110 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 115 +.byte 113 +.byte 117 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 114 +.byte 111 +.byte 111 +.byte 116 +.byte 40 +.byte 120 +.byte 41 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.334: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 78 +.byte 111 +.byte 32 +.byte 102 +.byte 97 +.byte 105 +.byte 108 +.byte 117 +.byte 114 +.byte 101 +.byte 115 +.byte 32 +.byte 102 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 105 +.byte 110 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 105 +.byte 110 +.byte 116 +.byte 101 +.byte 103 +.byte 101 +.byte 114 +.byte 32 +.byte 112 +.byte 97 +.byte 105 +.byte 114 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.333: +.byte 88 +.byte 32 +.byte 42 +.byte 32 +.byte 89 +.byte 32 +.byte 61 +.byte 61 +.byte 32 +.byte 89 +.byte 32 +.byte 42 +.byte 32 +.byte 88 +.byte 32 +.byte 116 +.byte 114 +.byte 105 +.byte 97 +.byte 108 +.byte 32 +.byte 102 +.byte 97 +.byte 105 +.byte 108 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 3 +L.324: +.long 0x0 +.long 0x40080000 +.align 0 +L.323: +.byte 84 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 111 +.byte 110 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 114 +.byte 97 +.byte 110 +.byte 100 +.byte 111 +.byte 109 +.byte 32 +.byte 112 +.byte 97 +.byte 105 +.byte 114 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.322: +.byte 68 +.byte 111 +.byte 101 +.byte 115 +.byte 32 +.byte 77 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 105 +.byte 99 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 109 +.byte 117 +.byte 116 +.byte 101 +.byte 63 +.byte 32 +.byte 32 +.byte 0 +.align 0 +L.319: +.byte 108 +.byte 97 +.byte 99 +.byte 107 +.byte 40 +.byte 115 +.byte 41 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 103 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 102 +.byte 97 +.byte 105 +.byte 108 +.byte 117 +.byte 114 +.byte 101 +.byte 40 +.byte 115 +.byte 41 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 10 +.byte 40 +.byte 110 +.byte 111 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 97 +.byte 98 +.byte 111 +.byte 118 +.byte 101 +.byte 41 +.byte 32 +.byte 99 +.byte 111 +.byte 117 +.byte 110 +.byte 116 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 111 +.byte 110 +.byte 101 +.byte 32 +.byte 102 +.byte 108 +.byte 97 +.byte 119 +.byte 32 +.byte 105 +.byte 110 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 102 +.byte 105 +.byte 110 +.byte 97 +.byte 108 +.byte 32 +.byte 116 +.byte 97 +.byte 108 +.byte 108 +.byte 121 +.byte 32 +.byte 98 +.byte 101 +.byte 108 +.byte 111 +.byte 119 +.byte 0 +.align 0 +L.317: +.byte 83 +.byte 116 +.byte 105 +.byte 99 +.byte 107 +.byte 121 +.byte 32 +.byte 98 +.byte 105 +.byte 116 +.byte 32 +.byte 117 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 105 +.byte 110 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 97 +.byte 116 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.316: +.byte 83 +.byte 116 +.byte 105 +.byte 99 +.byte 107 +.byte 121 +.byte 32 +.byte 98 +.byte 105 +.byte 116 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 97 +.byte 114 +.byte 101 +.byte 110 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 117 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.299: +.byte 67 +.byte 104 +.byte 101 +.byte 99 +.byte 107 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 115 +.byte 116 +.byte 105 +.byte 99 +.byte 107 +.byte 121 +.byte 32 +.byte 98 +.byte 105 +.byte 116 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.296: +.byte 40 +.byte 88 +.byte 32 +.byte 45 +.byte 32 +.byte 89 +.byte 41 +.byte 32 +.byte 43 +.byte 32 +.byte 40 +.byte 89 +.byte 32 +.byte 45 +.byte 32 +.byte 88 +.byte 41 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 110 +.byte 32 +.byte 122 +.byte 101 +.byte 114 +.byte 111 +.byte 33 +.byte 10 +.byte 0 +.align 0 +L.293: +.byte 65 +.byte 100 +.byte 100 +.byte 105 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 47 +.byte 83 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 110 +.byte 101 +.byte 105 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.292: +.byte 65 +.byte 100 +.byte 100 +.byte 47 +.byte 83 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 0 +.align 0 +L.289: +.byte 65 +.byte 100 +.byte 100 +.byte 105 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 47 +.byte 83 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.282: +.byte 65 +.byte 100 +.byte 100 +.byte 47 +.byte 83 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 112 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.277: +.byte 73 +.byte 110 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 108 +.byte 101 +.byte 116 +.byte 101 +.byte 32 +.byte 99 +.byte 97 +.byte 114 +.byte 114 +.byte 121 +.byte 45 +.byte 112 +.byte 114 +.byte 111 +.byte 112 +.byte 97 +.byte 103 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 105 +.byte 110 +.byte 32 +.byte 65 +.byte 100 +.byte 100 +.byte 105 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 0 +.align 0 +L.273: +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 42 +.byte 32 +.byte 40 +.byte 32 +.byte 49 +.byte 32 +.byte 47 +.byte 32 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 41 +.byte 32 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 49 +.byte 0 +.align 0 +L.271: +.byte 47 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 101 +.byte 105 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 112 +.byte 101 +.byte 100 +.byte 32 +.byte 110 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.268: +.byte 68 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.265: +.byte 68 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 0 +.align 0 +L.262: +.byte 68 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.257: +.byte 77 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 105 +.byte 99 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 0 +.align 0 +L.254: +.byte 42 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 101 +.byte 105 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 112 +.byte 101 +.byte 100 +.byte 32 +.byte 110 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.253: +.byte 77 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 105 +.byte 99 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.250: +.byte 77 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 105 +.byte 99 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.240: +.byte 88 +.byte 32 +.byte 42 +.byte 32 +.byte 40 +.byte 49 +.byte 47 +.byte 88 +.byte 41 +.byte 32 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 49 +.byte 0 +.align 0 +L.221: +.byte 67 +.byte 104 +.byte 101 +.byte 99 +.byte 107 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 111 +.byte 110 +.byte 32 +.byte 109 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 121 +.byte 44 +.byte 32 +.byte 100 +.byte 105 +.byte 118 +.byte 105 +.byte 100 +.byte 101 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 97 +.byte 100 +.byte 100 +.byte 47 +.byte 115 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.220: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 42 +.byte 44 +.byte 32 +.byte 47 +.byte 44 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 45 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 104 +.byte 97 +.byte 118 +.byte 101 +.byte 32 +.byte 103 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 44 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 121 +.byte 32 +.byte 115 +.byte 104 +.byte 111 +.byte 117 +.byte 108 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.217: +.byte 32 +.byte 32 +.byte 46 +.byte 46 +.byte 46 +.byte 32 +.byte 32 +.byte 105 +.byte 102 +.byte 32 +.byte 40 +.byte 88 +.byte 32 +.byte 61 +.byte 61 +.byte 32 +.byte 49 +.byte 46 +.byte 48 +.byte 41 +.byte 32 +.byte 123 +.byte 46 +.byte 46 +.byte 46 +.byte 46 +.byte 46 +.byte 125 +.byte 32 +.byte 101 +.byte 108 +.byte 115 +.byte 101 +.byte 32 +.byte 123 +.byte 46 +.byte 46 +.byte 46 +.byte 47 +.byte 40 +.byte 88 +.byte 45 +.byte 49 +.byte 46 +.byte 48 +.byte 41 +.byte 46 +.byte 46 +.byte 46 +.byte 125 +.byte 10 +.byte 0 +.align 0 +L.216: +.byte 32 +.byte 32 +.byte 115 +.byte 117 +.byte 99 +.byte 104 +.byte 32 +.byte 112 +.byte 114 +.byte 101 +.byte 99 +.byte 97 +.byte 117 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 97 +.byte 103 +.byte 97 +.byte 105 +.byte 110 +.byte 115 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 122 +.byte 101 +.byte 114 +.byte 111 +.byte 32 +.byte 97 +.byte 115 +.byte 10 +.byte 0 +.align 0 +L.215: +.byte 32 +.byte 32 +.byte 115 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 121 +.byte 105 +.byte 101 +.byte 108 +.byte 100 +.byte 115 +.byte 32 +.byte 32 +.byte 40 +.byte 49 +.byte 45 +.byte 85 +.byte 49 +.byte 41 +.byte 32 +.byte 45 +.byte 32 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 48 +.byte 32 +.byte 44 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 101 +.byte 98 +.byte 121 +.byte 32 +.byte 118 +.byte 105 +.byte 116 +.byte 105 +.byte 97 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 10 +.byte 0 +.align 0 +L.214: +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 103 +.byte 101 +.byte 115 +.byte 32 +.byte 32 +.byte 40 +.byte 49 +.byte 45 +.byte 85 +.byte 49 +.byte 41 +.byte 32 +.byte 60 +.byte 32 +.byte 49 +.byte 32 +.byte 32 +.byte 97 +.byte 108 +.byte 116 +.byte 104 +.byte 111 +.byte 117 +.byte 103 +.byte 104 +.byte 10 +.byte 0 +.align 0 +L.211: +.byte 45 +.byte 32 +.byte 108 +.byte 97 +.byte 99 +.byte 107 +.byte 115 +.byte 32 +.byte 71 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 68 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 44 +.byte 32 +.byte 115 +.byte 111 +.byte 32 +.byte 99 +.byte 97 +.byte 110 +.byte 99 +.byte 101 +.byte 108 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 111 +.byte 98 +.byte 115 +.byte 99 +.byte 117 +.byte 114 +.byte 101 +.byte 100 +.byte 0 +.align 0 +L.206: +.byte 42 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 47 +.byte 111 +.byte 114 +.byte 32 +.byte 47 +.byte 32 +.byte 103 +.byte 101 +.byte 116 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 109 +.byte 97 +.byte 110 +.byte 121 +.byte 32 +.byte 108 +.byte 97 +.byte 115 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 119 +.byte 114 +.byte 111 +.byte 110 +.byte 103 +.byte 0 +.align 0 +L.202: +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 49 +.byte 47 +.byte 49 +.byte 46 +.byte 48 +.byte 48 +.byte 48 +.byte 46 +.byte 46 +.byte 49 +.byte 32 +.byte 62 +.byte 61 +.byte 32 +.byte 49 +.byte 0 +.align 0 +L.200: +.byte 68 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 108 +.byte 97 +.byte 99 +.byte 107 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 71 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 68 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 44 +.byte 32 +.byte 115 +.byte 111 +.byte 32 +.byte 88 +.byte 47 +.byte 49 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 88 +.byte 0 +.align 0 +L.195: +.byte 68 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 108 +.byte 97 +.byte 99 +.byte 107 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 71 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 68 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 44 +.byte 32 +.byte 115 +.byte 111 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 97 +.byte 110 +.byte 32 +.byte 101 +.byte 120 +.byte 99 +.byte 101 +.byte 101 +.byte 100 +.byte 32 +.byte 49 +.byte 32 +.byte 117 +.byte 108 +.byte 112 +.byte 10 +.byte 111 +.byte 114 +.byte 32 +.byte 32 +.byte 49 +.byte 47 +.byte 51 +.byte 32 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 32 +.byte 51 +.byte 47 +.byte 57 +.byte 32 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 32 +.byte 57 +.byte 47 +.byte 50 +.byte 55 +.byte 32 +.byte 109 +.byte 97 +.byte 121 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 97 +.byte 103 +.byte 114 +.byte 101 +.byte 101 +.byte 0 +.align 0 +L.191: +.byte 42 +.byte 32 +.byte 103 +.byte 101 +.byte 116 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 109 +.byte 97 +.byte 110 +.byte 121 +.byte 32 +.byte 102 +.byte 105 +.byte 110 +.byte 97 +.byte 108 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 119 +.byte 114 +.byte 111 +.byte 110 +.byte 103 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.189: +.byte 42 +.byte 32 +.byte 108 +.byte 97 +.byte 99 +.byte 107 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 71 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 68 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 44 +.byte 32 +.byte 115 +.byte 111 +.byte 32 +.byte 49 +.byte 42 +.byte 88 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 88 +.byte 0 +.align 0 +L.186: +.byte 10 +.byte 67 +.byte 104 +.byte 101 +.byte 99 +.byte 107 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 103 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 32 +.byte 105 +.byte 110 +.byte 32 +.byte 42 +.byte 44 +.byte 32 +.byte 47 +.byte 44 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 45 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.185: +.byte 83 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 110 +.byte 111 +.byte 114 +.byte 109 +.byte 97 +.byte 108 +.byte 105 +.byte 122 +.byte 101 +.byte 100 +.byte 44 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 105 +.byte 116 +.byte 32 +.byte 115 +.byte 104 +.byte 111 +.byte 117 +.byte 108 +.byte 100 +.byte 32 +.byte 98 +.byte 101 +.byte 46 +.byte 0 +.align 0 +L.180: +.byte 83 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 110 +.byte 111 +.byte 114 +.byte 109 +.byte 97 +.byte 108 +.byte 105 +.byte 122 +.byte 101 +.byte 100 +.byte 32 +.byte 88 +.byte 61 +.byte 89 +.byte 44 +.byte 88 +.byte 43 +.byte 90 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 89 +.byte 43 +.byte 90 +.byte 33 +.byte 0 +.align 0 +L.176: +.byte 114 +.byte 111 +.byte 117 +.byte 103 +.byte 104 +.byte 108 +.byte 121 +.byte 32 +.byte 37 +.byte 103 +.byte 32 +.byte 101 +.byte 120 +.byte 116 +.byte 114 +.byte 97 +.byte 32 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 105 +.byte 102 +.byte 105 +.byte 99 +.byte 97 +.byte 110 +.byte 116 +.byte 32 +.byte 100 +.byte 101 +.byte 99 +.byte 105 +.byte 109 +.byte 97 +.byte 108 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.175: +.byte 112 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 101 +.byte 108 +.byte 121 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 97 +.byte 98 +.byte 111 +.byte 117 +.byte 116 +.byte 32 +.byte 37 +.byte 103 +.byte 32 +.byte 101 +.byte 120 +.byte 116 +.byte 114 +.byte 97 +.byte 32 +.byte 66 +.byte 45 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 44 +.byte 32 +.byte 105 +.byte 46 +.byte 101 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.174: +.byte 83 +.byte 111 +.byte 109 +.byte 101 +.byte 32 +.byte 115 +.byte 117 +.byte 98 +.byte 101 +.byte 120 +.byte 112 +.byte 114 +.byte 101 +.byte 115 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 99 +.byte 97 +.byte 108 +.byte 99 +.byte 117 +.byte 108 +.byte 97 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 101 +.byte 120 +.byte 116 +.byte 114 +.byte 97 +.byte 10 +.byte 0 +.align 0 +L.168: +.byte 111 +.byte 102 +.byte 32 +.byte 97 +.byte 110 +.byte 10 +.byte 101 +.byte 120 +.byte 116 +.byte 114 +.byte 97 +.byte 45 +.byte 112 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 0 +.align 0 +L.167: +.byte 90 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 90 +.byte 50 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 32 +.byte 0 +.align 0 +L.166: +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 101 +.byte 120 +.byte 97 +.byte 99 +.byte 116 +.byte 32 +.byte 114 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 97 +.byte 108 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 97 +.byte 32 +.byte 114 +.byte 101 +.byte 115 +.byte 117 +.byte 108 +.byte 116 +.byte 10 +.byte 0 +.align 0 +L.165: +.byte 66 +.byte 101 +.byte 99 +.byte 97 +.byte 117 +.byte 115 +.byte 101 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 117 +.byte 110 +.byte 117 +.byte 115 +.byte 117 +.byte 97 +.byte 108 +.byte 32 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 102 +.byte 0 +.align 0 +L.161: +.byte 9 +.byte 85 +.byte 50 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 44 +.byte 32 +.byte 90 +.byte 50 +.byte 32 +.byte 45 +.byte 32 +.byte 85 +.byte 50 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.160: +.byte 9 +.byte 85 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 44 +.byte 32 +.byte 90 +.byte 49 +.byte 32 +.byte 45 +.byte 32 +.byte 85 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.159: +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 0 +.align 0 +L.158: +.byte 0 +.align 0 +L.151: +.byte 84 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 102 +.byte 101 +.byte 97 +.byte 116 +.byte 117 +.byte 114 +.byte 101 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 102 +.byte 117 +.byte 114 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.146: +.byte 80 +.byte 111 +.byte 115 +.byte 115 +.byte 105 +.byte 98 +.byte 108 +.byte 121 +.byte 32 +.byte 115 +.byte 111 +.byte 109 +.byte 101 +.byte 32 +.byte 112 +.byte 97 +.byte 114 +.byte 116 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 0 +.align 0 +L.145: +.byte 98 +.byte 121 +.byte 32 +.byte 101 +.byte 120 +.byte 116 +.byte 114 +.byte 97 +.byte 45 +.byte 112 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 101 +.byte 32 +.byte 101 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 115 +.byte 117 +.byte 98 +.byte 101 +.byte 120 +.byte 112 +.byte 114 +.byte 101 +.byte 115 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.144: +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 115 +.byte 121 +.byte 109 +.byte 112 +.byte 116 +.byte 111 +.byte 109 +.byte 115 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 105 +.byte 110 +.byte 99 +.byte 111 +.byte 110 +.byte 115 +.byte 105 +.byte 115 +.byte 116 +.byte 101 +.byte 110 +.byte 99 +.byte 105 +.byte 101 +.byte 115 +.byte 32 +.byte 105 +.byte 110 +.byte 116 +.byte 114 +.byte 111 +.byte 100 +.byte 117 +.byte 99 +.byte 101 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.143: +.byte 114 +.byte 101 +.byte 115 +.byte 112 +.byte 101 +.byte 99 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 108 +.byte 121 +.byte 32 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 44 +.byte 32 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 44 +.byte 32 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 44 +.byte 10 +.byte 0 +.align 0 +L.142: +.byte 68 +.byte 105 +.byte 115 +.byte 97 +.byte 103 +.byte 114 +.byte 101 +.byte 101 +.byte 109 +.byte 101 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 97 +.byte 109 +.byte 111 +.byte 110 +.byte 103 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 115 +.byte 32 +.byte 88 +.byte 49 +.byte 44 +.byte 32 +.byte 89 +.byte 49 +.byte 44 +.byte 32 +.byte 90 +.byte 49 +.byte 44 +.byte 10 +.byte 0 +.align 0 +L.120: +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 119 +.byte 111 +.byte 114 +.byte 115 +.byte 101 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 110 +.byte 32 +.byte 53 +.byte 32 +.byte 100 +.byte 101 +.byte 99 +.byte 105 +.byte 109 +.byte 97 +.byte 108 +.byte 32 +.byte 102 +.byte 105 +.byte 103 +.byte 117 +.byte 114 +.byte 101 +.byte 115 +.byte 32 +.byte 32 +.byte 0 +.align 0 +L.118: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 105 +.byte 102 +.byte 105 +.byte 99 +.byte 97 +.byte 110 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 37 +.byte 102 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.117: +.byte 108 +.byte 111 +.byte 103 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 105 +.byte 99 +.byte 32 +.byte 101 +.byte 110 +.byte 99 +.byte 111 +.byte 100 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 104 +.byte 97 +.byte 115 +.byte 32 +.byte 112 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 99 +.byte 104 +.byte 97 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 101 +.byte 114 +.byte 105 +.byte 122 +.byte 101 +.byte 100 +.byte 32 +.byte 115 +.byte 111 +.byte 108 +.byte 101 +.byte 108 +.byte 121 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 85 +.byte 49 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.114: +.byte 111 +.byte 102 +.byte 32 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 105 +.byte 102 +.byte 105 +.byte 99 +.byte 97 +.byte 110 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 98 +.byte 117 +.byte 116 +.byte 44 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 105 +.byte 116 +.byte 115 +.byte 101 +.byte 108 +.byte 102 +.byte 44 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 109 +.byte 105 +.byte 110 +.byte 111 +.byte 114 +.byte 32 +.byte 102 +.byte 108 +.byte 97 +.byte 119 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.113: +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 99 +.byte 97 +.byte 110 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 99 +.byte 104 +.byte 97 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 101 +.byte 114 +.byte 105 +.byte 122 +.byte 101 +.byte 100 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 97 +.byte 110 +.byte 32 +.byte 73 +.byte 110 +.byte 116 +.byte 101 +.byte 103 +.byte 101 +.byte 114 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 10 +.byte 0 +.align 0 +L.100: +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 102 +.byte 117 +.byte 122 +.byte 122 +.byte 121 +.byte 44 +.byte 88 +.byte 61 +.byte 49 +.byte 32 +.byte 98 +.byte 117 +.byte 116 +.byte 32 +.byte 88 +.byte 45 +.byte 49 +.byte 47 +.byte 50 +.byte 45 +.byte 49 +.byte 47 +.byte 50 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 0 +.align 0 +L.96: +.byte 40 +.byte 49 +.byte 45 +.byte 85 +.byte 49 +.byte 41 +.byte 45 +.byte 49 +.byte 47 +.byte 50 +.byte 32 +.byte 60 +.byte 32 +.byte 49 +.byte 47 +.byte 50 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 70 +.byte 65 +.byte 76 +.byte 83 +.byte 69 +.byte 44 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 46 +.byte 32 +.byte 102 +.byte 97 +.byte 105 +.byte 108 +.byte 115 +.byte 63 +.byte 0 +.align 3 +L.94: +.long 0x0 +.long 0x40240000 +.align 0 +L.89: +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 103 +.byte 111 +.byte 111 +.byte 100 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 50 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 49 +.byte 48 +.byte 0 +.align 0 +L.85: +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 98 +.byte 105 +.byte 103 +.byte 58 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 111 +.byte 102 +.byte 102 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 98 +.byte 108 +.byte 101 +.byte 109 +.byte 115 +.byte 0 +.align 0 +L.83: +.byte 77 +.byte 89 +.byte 83 +.byte 84 +.byte 69 +.byte 82 +.byte 89 +.byte 58 +.byte 32 +.byte 114 +.byte 101 +.byte 99 +.byte 97 +.byte 108 +.byte 99 +.byte 117 +.byte 108 +.byte 97 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.82: +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 102 +.byte 105 +.byte 114 +.byte 109 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 3 +L.79: +.long 0x47ae147b +.long 0x3f847ae1 +.align 0 +L.78: +.byte 103 +.byte 101 +.byte 116 +.byte 115 +.byte 32 +.byte 98 +.byte 101 +.byte 116 +.byte 116 +.byte 101 +.byte 114 +.byte 32 +.byte 99 +.byte 108 +.byte 111 +.byte 115 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 114 +.byte 101 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 32 +.byte 115 +.byte 101 +.byte 112 +.byte 97 +.byte 114 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 85 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.77: +.byte 99 +.byte 111 +.byte 110 +.byte 102 +.byte 105 +.byte 114 +.byte 109 +.byte 115 +.byte 32 +.byte 99 +.byte 108 +.byte 111 +.byte 115 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 114 +.byte 101 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 32 +.byte 115 +.byte 101 +.byte 112 +.byte 97 +.byte 114 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 85 +.byte 49 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.62: +.byte 82 +.byte 101 +.byte 99 +.byte 97 +.byte 108 +.byte 99 +.byte 117 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 114 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 112 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 10 +.byte 32 +.byte 0 +.align 0 +L.61: +.byte 67 +.byte 108 +.byte 111 +.byte 115 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 114 +.byte 101 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 32 +.byte 115 +.byte 101 +.byte 112 +.byte 97 +.byte 114 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 102 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 85 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 10 +.byte 0 +.align 0 +L.55: +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 102 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.46: +.byte 83 +.byte 101 +.byte 97 +.byte 114 +.byte 99 +.byte 104 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.45: +.byte 10 +.byte 0 +.align 0 +L.44: +.byte 45 +.byte 49 +.byte 44 +.byte 32 +.byte 48 +.byte 44 +.byte 32 +.byte 49 +.byte 47 +.byte 50 +.byte 44 +.byte 32 +.byte 49 +.byte 44 +.byte 32 +.byte 50 +.byte 44 +.byte 32 +.byte 51 +.byte 44 +.byte 32 +.byte 52 +.byte 44 +.byte 32 +.byte 53 +.byte 44 +.byte 32 +.byte 57 +.byte 44 +.byte 32 +.byte 50 +.byte 55 +.byte 44 +.byte 32 +.byte 51 +.byte 50 +.byte 32 +.byte 38 +.byte 32 +.byte 50 +.byte 52 +.byte 48 +.byte 32 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 79 +.byte 46 +.byte 75 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.39: +.byte 53 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 52 +.byte 43 +.byte 49 +.byte 44 +.byte 32 +.byte 50 +.byte 52 +.byte 48 +.byte 47 +.byte 51 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 56 +.byte 48 +.byte 44 +.byte 32 +.byte 50 +.byte 52 +.byte 48 +.byte 47 +.byte 52 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 54 +.byte 48 +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 50 +.byte 52 +.byte 48 +.byte 47 +.byte 53 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 52 +.byte 56 +.byte 0 +.align 0 +L.35: +.byte 57 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 51 +.byte 42 +.byte 51 +.byte 44 +.byte 32 +.byte 50 +.byte 55 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 57 +.byte 42 +.byte 51 +.byte 44 +.byte 32 +.byte 51 +.byte 50 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 56 +.byte 42 +.byte 52 +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 51 +.byte 50 +.byte 45 +.byte 50 +.byte 55 +.byte 45 +.byte 52 +.byte 45 +.byte 49 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 0 +.align 0 +L.31: +.byte 49 +.byte 47 +.byte 50 +.byte 32 +.byte 43 +.byte 32 +.byte 40 +.byte 45 +.byte 49 +.byte 41 +.byte 32 +.byte 43 +.byte 32 +.byte 49 +.byte 47 +.byte 50 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 0 +.align 0 +L.27: +.byte 45 +.byte 49 +.byte 43 +.byte 49 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 44 +.byte 32 +.byte 40 +.byte 45 +.byte 49 +.byte 41 +.byte 43 +.byte 97 +.byte 98 +.byte 115 +.byte 40 +.byte 49 +.byte 41 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 45 +.byte 49 +.byte 43 +.byte 40 +.byte 45 +.byte 49 +.byte 41 +.byte 42 +.byte 40 +.byte 45 +.byte 49 +.byte 41 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 0 +.align 0 +L.23: +.byte 51 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 50 +.byte 43 +.byte 49 +.byte 44 +.byte 32 +.byte 52 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 51 +.byte 43 +.byte 49 +.byte 44 +.byte 32 +.byte 52 +.byte 43 +.byte 50 +.byte 42 +.byte 40 +.byte 45 +.byte 50 +.byte 41 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 52 +.byte 45 +.byte 51 +.byte 45 +.byte 49 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 0 +.align 3 +L.21: +.long 0xd2f1a9fc +.long 0x3f50624d +.align 0 +L.20: +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 103 +.byte 101 +.byte 115 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 45 +.byte 48 +.byte 46 +.byte 48 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 78 +.byte 111 +.byte 110 +.byte 45 +.byte 122 +.byte 101 +.byte 114 +.byte 111 +.byte 33 +.byte 10 +.byte 0 +.align 0 +L.15: +.byte 48 +.byte 43 +.byte 48 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 44 +.byte 32 +.byte 49 +.byte 45 +.byte 49 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 44 +.byte 32 +.byte 49 +.byte 32 +.byte 60 +.byte 61 +.byte 32 +.byte 48 +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 49 +.byte 43 +.byte 49 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 50 +.byte 0 +.align 0 +L.13: +.byte 80 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 119 +.byte 32 +.byte 82 +.byte 85 +.byte 78 +.byte 78 +.byte 73 +.byte 78 +.byte 71 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 115 +.byte 32 +.byte 111 +.byte 110 +.byte 32 +.byte 115 +.byte 109 +.byte 97 +.byte 108 +.byte 108 +.byte 32 +.byte 105 +.byte 110 +.byte 116 +.byte 101 +.byte 103 +.byte 101 +.byte 114 +.byte 115 +.byte 58 +.byte 10 +.byte 0 +.align 3 +L.9: +.long 0x0 +.long 0x3ff00000 +.align 3 +L.8: +.long 0x0 +.long 0x0 +.align 0 +L.3: +.byte 10 +.byte 42 +.byte 32 +.byte 42 +.byte 32 +.byte 42 +.byte 32 +.byte 70 +.byte 76 +.byte 79 +.byte 65 +.byte 84 +.byte 73 +.byte 78 +.byte 71 +.byte 45 +.byte 80 +.byte 79 +.byte 73 +.byte 78 +.byte 84 +.byte 32 +.byte 69 +.byte 82 +.byte 82 +.byte 79 +.byte 82 +.byte 32 +.byte 42 +.byte 32 +.byte 42 +.byte 32 +.byte 42 +.byte 10 +.byte 0 diff --git a/code/tools/lcc/alpha/osf/tst/sort.1bk b/code/tools/lcc/alpha/osf/tst/sort.1bk new file mode 100644 index 0000000..75e1f0d --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/sort.1bk @@ -0,0 +1,20 @@ +exchange(1,9) +exchange(3,7) +exchange(5,6) +exchange(0,5) +exchange(0,3) +exchange(0,0) +exchange(1,2) +exchange(6,6) +exchange(8,9) +exchange(7,8) +-51 +-1 +0 +1 +3 +10 +18 +32 +567 +789 diff --git a/code/tools/lcc/alpha/osf/tst/sort.2bk b/code/tools/lcc/alpha/osf/tst/sort.2bk new file mode 100644 index 0000000..81e6f38 --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/sort.2bk @@ -0,0 +1,5 @@ +tst/sort.c:23: warning: missing return value +tst/sort.c:30: warning: missing return value +tst/sort.c:37: warning: missing return value +tst/sort.c:41: warning: missing return value +tst/sort.c:65: warning: missing return value diff --git a/code/tools/lcc/alpha/osf/tst/sort.sbk b/code/tools/lcc/alpha/osf/tst/sort.sbk new file mode 100644 index 0000000..4abc71b --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/sort.sbk @@ -0,0 +1,323 @@ +.sdata +.globl in +.align 2 +in: +.long 0xa +.long 0x20 +.long 0xffffffff +.long 0x237 +.long 0x3 +.long 0x12 +.long 0x1 +.long 0xffffffcd +.long 0x315 +.long 0x0 +.globl main +.text +.text +.ent main +main: +ldgp $gp,0($27) +lda $sp,-80($sp) +.mask 0x4004000,-72 +.frame $sp,80,$26,48 +stq $14,0($sp) +stq $26,8($sp) +.prologue 1 +lda $16,in +lda $17,10 +jsr $26,sort +ldgp $gp,0($26) +mov $31,$14 +br L.5 +L.2: +sll $14,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,2,$27 +ldl $16,in($27) +jsr $26,putd +ldgp $gp,0($26) +lda $16,10 +jsr $26,putchar +ldgp $gp,0($26) +L.3: +lda $14,1($14) +L.5: +mov $14,$27 +lda $25,10 +cmpult $27,$25,$23 +bne $23,L.2 +mov $31,$0 +L.1: +ldq $14,0($sp) +ldq $26,8($sp) +lda $sp,80($sp) +ret +.end main +.globl putd +.text +.ent putd +putd: +ldgp $gp,0($27) +lda $sp,-80($sp) +.mask 0x5004000,-64 +.frame $sp,80,$26,48 +stq $14,0($sp) +stq $24,8($sp) +stq $26,16($sp) +mov $16,$14 +.prologue 1 +cmplt $14,$31,$23 +beq $23,L.7 +lda $16,45 +jsr $26,putchar +ldgp $gp,0($26) +negl $14,$14 +L.7: +divl $14,10,$27 +cmpeq $27,$31,$23 +bne $23,L.9 +divl $14,10,$16 +jsr $26,putd +ldgp $gp,0($26) +L.9: +reml $14,10,$27 +lda $16,48($27) +jsr $26,putchar +ldgp $gp,0($26) +mov $31,$0 +L.6: +ldq $14,0($sp) +ldq $24,8($sp) +ldq $26,16($sp) +lda $sp,80($sp) +ret +.end putd +.globl sort +.text +.ent sort +sort: +ldgp $gp,0($27) +lda $sp,-64($sp) +.mask 0x4000000,-64 +.frame $sp,64,$26,48 +stq $26,0($sp) +stq $16,16($sp) +stq $17,24($sp) +.prologue 1 +ldq $27,-48+64($sp) +stq $27,xx +mov $27,$16 +mov $31,$17 +ldl $27,-40+64($sp) +subl $27,1,$27 +stl $27,-40+64($sp) +mov $27,$18 +jsr $26,quick +ldgp $gp,0($26) +mov $31,$0 +L.11: +ldq $26,0($sp) +lda $sp,64($sp) +ret +.end sort +.globl quick +.text +.ent quick +quick: +ldgp $gp,0($27) +lda $sp,-96($sp) +.mask 0x4007800,-64 +.frame $sp,96,$26,48 +stq $11,0($sp) +stq $12,8($sp) +stq $13,16($sp) +stq $14,24($sp) +stq $26,32($sp) +mov $16,$14 +mov $17,$13 +mov $18,$12 +.prologue 1 +cmplt $13,$12,$23 +bne $23,L.13 +br L.12 +L.13: +mov $14,$16 +mov $13,$17 +mov $12,$18 +jsr $26,partition +ldgp $gp,0($26) +mov $0,$11 +mov $14,$16 +mov $13,$17 +subl $11,1,$18 +jsr $26,quick +ldgp $gp,0($26) +mov $14,$16 +lda $17,1($11) +mov $12,$18 +jsr $26,quick +ldgp $gp,0($26) +mov $31,$0 +L.12: +ldq $11,0($sp) +ldq $12,8($sp) +ldq $13,16($sp) +ldq $14,24($sp) +ldq $26,32($sp) +lda $sp,96($sp) +ret +.end quick +.globl partition +.text +.ent partition +partition: +ldgp $gp,0($27) +lda $sp,-112($sp) +.mask 0x4007c00,-72 +.frame $sp,112,$26,48 +stq $10,0($sp) +stq $11,8($sp) +stq $12,16($sp) +stq $13,24($sp) +stq $14,32($sp) +stq $26,40($sp) +mov $16,$14 +mov $17,$13 +mov $18,$12 +.prologue 1 +lda $12,1($12) +mov $13,$10 +sll $10,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,2,$27 +addq $27,$14,$27 +ldl $11,($27) +br L.17 +L.16: +lda $13,1($13) +br L.20 +L.19: +lda $13,1($13) +L.20: +sll $13,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,2,$27 +addq $27,$14,$27 +ldl $27,($27) +cmplt $27,$11,$23 +bne $23,L.19 +subl $12,1,$12 +br L.23 +L.22: +subl $12,1,$12 +L.23: +sll $12,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,2,$27 +addq $27,$14,$27 +ldl $27,($27) +cmple $27,$11,$23 +beq $23,L.22 +cmplt $13,$12,$23 +beq $23,L.25 +sll $13,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,2,$27 +addq $27,$14,$16 +sll $12,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,2,$27 +addq $27,$14,$17 +jsr $26,exchange +ldgp $gp,0($26) +L.25: +L.17: +cmplt $13,$12,$23 +bne $23,L.16 +sll $10,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,2,$27 +addq $27,$14,$16 +sll $12,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,2,$27 +addq $27,$14,$17 +jsr $26,exchange +ldgp $gp,0($26) +mov $12,$0 +L.15: +ldq $10,0($sp) +ldq $11,8($sp) +ldq $12,16($sp) +ldq $13,24($sp) +ldq $14,32($sp) +ldq $26,40($sp) +lda $sp,112($sp) +ret +.end partition +.globl exchange +.text +.ent exchange +exchange: +ldgp $gp,0($27) +lda $sp,-112($sp) +.mask 0x5006000,-88 +.frame $sp,112,$26,48 +stq $13,0($sp) +stq $14,8($sp) +stq $24,16($sp) +stq $26,24($sp) +mov $16,$14 +mov $17,$13 +.prologue 1 +lda $16,L.28 +ldq $27,xx +stq $27,-80+112($sp) +mov $14,$25 +subq $25,$27,$25 +stq $25,-72+112($sp) +divq $25,4,$17 +mov $13,$27 +ldq $25,-80+112($sp) +subq $27,$25,$27 +divq $27,4,$18 +jsr $26,printf +ldgp $gp,0($26) +ldl $27,($14) +stl $27,-60+112($sp) +ldl $27,($13) +stl $27,($14) +ldl $27,-60+112($sp) +stl $27,($13) +mov $31,$0 +L.27: +ldq $13,0($sp) +ldq $14,8($sp) +ldq $24,16($sp) +ldq $26,24($sp) +lda $sp,112($sp) +ret +.end exchange +.globl xx +.comm xx,8 +.rdata +.align 0 +L.28: +.byte 101 +.byte 120 +.byte 99 +.byte 104 +.byte 97 +.byte 110 +.byte 103 +.byte 101 +.byte 40 +.byte 37 +.byte 100 +.byte 44 +.byte 37 +.byte 100 +.byte 41 +.byte 10 +.byte 0 diff --git a/code/tools/lcc/alpha/osf/tst/spill.1bk b/code/tools/lcc/alpha/osf/tst/spill.1bk new file mode 100644 index 0000000..e69de29 diff --git a/code/tools/lcc/alpha/osf/tst/spill.2bk b/code/tools/lcc/alpha/osf/tst/spill.2bk new file mode 100644 index 0000000..afd73e2 --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/spill.2bk @@ -0,0 +1,6 @@ +tst/spill.c:1: warning: missing return value +tst/spill.c:3: warning: missing return value +tst/spill.c:5: warning: missing return value +tst/spill.c:7: warning: missing return value +tst/spill.c:9: warning: missing return value +tst/spill.c:17: warning: missing return value diff --git a/code/tools/lcc/alpha/osf/tst/spill.sbk b/code/tools/lcc/alpha/osf/tst/spill.sbk new file mode 100644 index 0000000..e90d4f4 --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/spill.sbk @@ -0,0 +1,272 @@ +.globl main +.text +.text +.ent main +main: +ldgp $gp,0($27) +lda $sp,-64($sp) +.frame $sp,64,$26,48 +.prologue 1 +mov $31,$0 +L.1: +lda $sp,64($sp) +ret +.end main +.globl f +.text +.ent f +f: +ldgp $gp,0($27) +lda $sp,-80($sp) +.mask 0x4000000,-80 +.frame $sp,80,$26,48 +stq $26,0($sp) +stq $16,32($sp) +.prologue 1 +jsr $26,f +ldgp $gp,0($26) +mov $0,$27 +stl $27,-60+80($sp) +jsr $26,f +ldgp $gp,0($26) +ldl $25,-60+80($sp) +addl $25,$0,$27 +stl $27,-48+80($sp) +mov $31,$0 +L.2: +ldq $26,0($sp) +lda $sp,80($sp) +ret +.end f +.globl f2 +.text +.ent f2 +f2: +ldgp $gp,0($27) +lda $sp,-80($sp) +.mask 0x4004000,-72 +.frame $sp,80,$26,48 +stq $14,0($sp) +stq $26,8($sp) +stq $16,32($sp) +.prologue 1 +jsr $26,f +ldgp $gp,0($26) +mov $0,$27 +stl $27,-60+80($sp) +ldl $25,-48+80($sp) +cmpeq $25,$31,$23 +bne $23,L.5 +jsr $26,f +ldgp $gp,0($26) +mov $0,$27 +mov $27,$14 +br L.6 +L.5: +lda $14,1 +L.6: +ldl $27,-60+80($sp) +addl $27,$14,$27 +stl $27,-48+80($sp) +mov $31,$0 +L.3: +ldq $14,0($sp) +ldq $26,8($sp) +lda $sp,80($sp) +ret +.end f2 +.globl f3 +.text +.ent f3 +f3: +ldgp $gp,0($27) +lda $sp,-144($sp) +.mask 0x4007e00,-96 +.frame $sp,144,$26,48 +stq $9,0($sp) +stq $10,8($sp) +stq $11,16($sp) +stq $12,24($sp) +stq $13,32($sp) +stq $14,40($sp) +stq $26,48($sp) +stq $16,96($sp) +stq $17,104($sp) +.prologue 1 +mov $31,$14 +mov $31,$13 +mov $31,$12 +mov $31,$11 +mov $31,$10 +mov $31,$9 +stl $31,-60+144($sp) +stl $31,-64+144($sp) +stl $31,-68+144($sp) +stl $31,-72+144($sp) +ldq $27,-40+144($sp) +stq $27,-88+144($sp) +lda $25,4($27) +stq $25,-40+144($sp) +ldl $25,-48+144($sp) +cmpeq $25,$31,$23 +bne $23,L.9 +jsr $26,f +ldgp $gp,0($26) +mov $0,$27 +stl $27,-76+144($sp) +br L.10 +L.9: +stl $31,-76+144($sp) +L.10: +ldl $27,-76+144($sp) +ldq $25,-88+144($sp) +stl $27,($25) +mov $31,$0 +L.7: +ldq $9,0($sp) +ldq $10,8($sp) +ldq $11,16($sp) +ldq $12,24($sp) +ldq $13,32($sp) +ldq $14,40($sp) +ldq $26,48($sp) +lda $sp,144($sp) +ret +.end f3 +.globl f4 +.text +.ent f4 +f4: +ldgp $gp,0($27) +lda $sp,-128($sp) +.mask 0x4007e00,-80 +.frame $sp,128,$26,48 +stq $9,0($sp) +stq $10,8($sp) +stq $11,16($sp) +stq $12,24($sp) +stq $13,32($sp) +stq $14,40($sp) +stq $26,48($sp) +.prologue 1 +mov $31,$14 +mov $31,$13 +mov $31,$12 +mov $31,$11 +mov $31,$10 +mov $31,$9 +ldl $27,i +sll $27,8*(8-4),$25 +sra $25,8*(8-4),$25 +sll $25,3,$25 +ldt $f30,a($25) +ldt $f29,b($25) +ldt $f28,L.15 +addt $f30,$f29,$f27 +cmpteq $f27,$f28,$f1 +fbne $f1,L.13 +cmpeq $27,$31,$23 +bne $23,L.13 +subt $f30,$f29,$f30 +cmpteq $f30,$f28,$f1 +fbne $f1,L.13 +lda $27,1 +stl $27,-60+128($sp) +br L.14 +L.13: +stl $31,-60+128($sp) +L.14: +ldl $27,-60+128($sp) +stl $27,i +mov $31,$0 +L.11: +ldq $9,0($sp) +ldq $10,8($sp) +ldq $11,16($sp) +ldq $12,24($sp) +ldq $13,32($sp) +ldq $14,40($sp) +ldq $26,48($sp) +lda $sp,128($sp) +ret +.end f4 +.globl f5 +.text +.ent f5 +f5: +ldgp $gp,0($27) +lda $sp,-64($sp) +.frame $sp,64,$26,48 +.prologue 1 +ldl $27,k +ldl $25,m +ldq $22,A +mull $27,$25,$8 +sll $8,8*(8-4),$8 +sra $8,8*(8-4),$8 +sll $8,3,$8 +addq $8,$22,$8 +ldl $7,j +mull $7,$25,$25 +sll $25,8*(8-4),$25 +sra $25,8*(8-4),$25 +sll $25,3,$25 +addq $25,$22,$25 +ldl $22,n +ldq $6,B +mull $27,$22,$27 +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,3,$27 +addq $27,$6,$27 +mull $7,$22,$22 +sll $22,8*(8-4),$22 +sra $22,8*(8-4),$22 +sll $22,3,$22 +addq $22,$6,$22 +ldt $f30,($8) +ldt $f29,($25) +mult $f30,$f29,$f30 +ldt $f29,($27) +ldt $f28,($22) +mult $f29,$f28,$f29 +addt $f30,$f29,$f30 +stt $f30,x +ldt $f30,($8) +ldt $f29,($22) +mult $f30,$f29,$f30 +ldt $f29,($27) +ldt $f28,($25) +mult $f29,$f28,$f29 +subt $f30,$f29,$f30 +stt $f30,x +mov $31,$0 +L.16: +lda $sp,64($sp) +ret +.end f5 +.globl x +.comm x,8 +.globl B +.comm B,8 +.globl A +.comm A,8 +.globl n +.comm n,4 +.globl m +.comm m,4 +.globl k +.comm k,4 +.globl j +.comm j,4 +.globl i +.comm i,4 +.globl b +.comm b,80 +.globl a +.comm a,80 +.rdata +.align 3 +L.15: +.long 0x0 +.long 0x0 diff --git a/code/tools/lcc/alpha/osf/tst/stdarg.1bk b/code/tools/lcc/alpha/osf/tst/stdarg.1bk new file mode 100644 index 0000000..e973176 --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/stdarg.1bk @@ -0,0 +1,6 @@ +test 1 +test 2 +test 3 +test 4 +test 5.000000 +{1 2 3 4} {1 2 3 4} {1 2 3 4} {1 2 3 4} {1 2 3 4} {1 2 3 4} diff --git a/code/tools/lcc/alpha/osf/tst/stdarg.2bk b/code/tools/lcc/alpha/osf/tst/stdarg.2bk new file mode 100644 index 0000000..2b3f417 --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/stdarg.2bk @@ -0,0 +1 @@ +tst/stdarg.c:51: warning: missing return value diff --git a/code/tools/lcc/alpha/osf/tst/stdarg.sbk b/code/tools/lcc/alpha/osf/tst/stdarg.sbk new file mode 100644 index 0000000..e33da40 --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/stdarg.sbk @@ -0,0 +1,430 @@ +.sdata +.globl x +.align 2 +x: +.long 0x1 +.long 0x2 +.long 0x3 +.long 0x4 +.globl main +.text +.text +.ent main +main: +ldgp $gp,0($27) +lda $sp,-128($sp) +.mask 0x4000000,-72 +.frame $sp,128,$26,48 +stq $26,56($sp) +.prologue 1 +lda $16,L.3 +jsr $26,print +ldgp $gp,0($26) +lda $16,L.4 +lda $17,L.5 +jsr $26,print +ldgp $gp,0($26) +lda $16,L.6 +lda $17,3 +lda $18,10 +jsr $26,print +ldgp $gp,0($26) +lda $16,L.7 +lda $17,L.8 +lda $18,L.9 +lda $19,4 +lda $20,10 +jsr $26,print +ldgp $gp,0($26) +lda $16,L.10 +lda $17,L.8 +lda $18,L.9 +ldt $f19,L.11 +lda $20,10 +jsr $26,print +ldgp $gp,0($26) +lda $16,L.12 +lda $27,x +mov $27,$1 +uldq $17,0($1) +uldq $18,8($1) +mov $27,$1 +uldq $19,0($1) +uldq $20,8($1) +mov $27,$1 +uldq $21,0($1) +ldl $4,8($1) +ldl $2,12($1) +stl $4,0($30) +stl $2,4($30) +mov $27,$1 +ldl $4,0($1) +ldl $2,4($1) +stl $4,8($30) +stl $2,12($30) +ldl $4,8($1) +ldl $2,12($1) +stl $4,16($30) +stl $2,20($30) +mov $27,$1 +ldl $4,0($1) +ldl $2,4($1) +stl $4,24($30) +stl $2,28($30) +ldl $4,8($1) +ldl $2,12($1) +stl $4,32($30) +stl $2,36($30) +mov $27,$1 +ldl $4,0($1) +ldl $2,4($1) +stl $4,40($30) +stl $2,44($30) +ldl $4,8($1) +ldl $2,12($1) +stl $4,48($30) +stl $2,52($30) +jsr $26,print +ldgp $gp,0($26) +mov $31,$0 +L.2: +ldq $26,56($sp) +lda $sp,128($sp) +ret +.end main +.globl print +.text +.ent print +print: +ldgp $gp,0($27) +lda $sp,-160($sp) +.mask 0x4006000,-144 +.frame $sp,160,$26,96 +stq $13,0($sp) +stq $14,8($sp) +stq $26,16($sp) +stq $16,112($sp) +stq $17,120($sp) +stt $f17,72($sp) +stq $18,128($sp) +stt $f18,80($sp) +stq $19,136($sp) +stt $f19,88($sp) +stq $20,144($sp) +stt $f20,96($sp) +stq $21,152($sp) +stt $f21,104($sp) +.prologue 1 +lda $27,-48+160($sp) +stq $27,-120+160($sp) +lda $27,-40+160($sp) +ldq $25,-120+160($sp) +subq $27,$25,$27 +stl $27,-112+160($sp) +br L.21 +L.18: +ldq $27,-48+160($sp) +ldb $27,($27) +cmpeq $27,37,$23 +beq $23,L.22 +ldq $27,-48+160($sp) +lda $27,1($27) +stq $27,-48+160($sp) +ldb $14,($27) +lda $27,115 +cmpeq $14,$27,$23 +bne $23,L.74 +cmple $14,$27,$23 +beq $23,L.100 +L.99: +lda $27,98 +cmplt $14,$27,$23 +bne $23,L.24 +lda $27,102 +cmple $14,$27,$23 +beq $23,L.24 +subl $14,98,$27 +sll $27,3,$27 +ldq $27,L.101($27) +jmp ($27) +.rdata +.align 3 +L.101: +.quad L.27 +.quad L.41 +.quad L.52 +.quad L.24 +.quad L.85 +.text +L.100: +lda $27,119 +cmpeq $14,$27,$23 +bne $23,L.63 +br L.24 +L.27: +ldl $27,-112+160($sp) +lda $27,16($27) +stl $27,-112+160($sp) +lda $27,-136+160($sp) +ldl $25,-112+160($sp) +ldq $22,-120+160($sp) +addq $25,$22,$25 +lda $1,-16($25) +ldl $4,0($1) +ldl $2,4($1) +stl $4,0($27) +stl $2,4($27) +ldl $4,8($1) +ldl $2,12($1) +stl $4,8($27) +stl $2,12($27) +lda $16,L.37 +ldl $17,-136+160($sp) +ldl $18,-132+160($sp) +ldl $19,-128+160($sp) +ldl $20,-124+160($sp) +jsr $26,printf +ldgp $gp,0($26) +br L.23 +L.41: +lda $16,L.42 +ldl $27,-112+160($sp) +lda $27,8($27) +stl $27,-112+160($sp) +ldl $27,-112+160($sp) +ldq $25,-120+160($sp) +addq $27,$25,$27 +lda $27,-8($27) +ldb $17,($27) +jsr $26,printf +ldgp $gp,0($26) +br L.23 +L.52: +lda $16,L.53 +ldl $27,-112+160($sp) +lda $27,8($27) +stl $27,-112+160($sp) +ldl $27,-112+160($sp) +ldq $25,-120+160($sp) +addq $27,$25,$27 +ldl $17,-8($27) +jsr $26,printf +ldgp $gp,0($26) +br L.23 +L.63: +lda $16,L.64 +ldl $27,-112+160($sp) +lda $27,8($27) +stl $27,-112+160($sp) +ldl $27,-112+160($sp) +ldq $25,-120+160($sp) +addq $27,$25,$27 +lda $27,-8($27) +ldw $17,($27) +jsr $26,printf +ldgp $gp,0($26) +br L.23 +L.74: +lda $16,L.75 +ldl $27,-112+160($sp) +lda $27,8($27) +stl $27,-112+160($sp) +ldl $27,-112+160($sp) +ldq $25,-120+160($sp) +addq $27,$25,$27 +ldq $17,-8($27) +jsr $26,printf +ldgp $gp,0($26) +br L.23 +L.85: +lda $16,L.86 +ldl $27,-112+160($sp) +lda $27,8($27) +stl $27,-112+160($sp) +ldl $27,-112+160($sp) +cmple $27,48,$23 +beq $23,L.97 +ldl $27,-112+160($sp) +ldq $25,-120+160($sp) +addq $27,$25,$27 +lda $13,-56($27) +br L.98 +L.97: +ldl $27,-112+160($sp) +ldq $25,-120+160($sp) +addq $27,$25,$27 +lda $13,-8($27) +L.98: +ldt $f17,($13) +jsr $26,printf +ldgp $gp,0($26) +br L.23 +L.24: +lda $16,L.42 +ldq $27,-48+160($sp) +ldb $17,($27) +jsr $26,printf +ldgp $gp,0($26) +br L.23 +L.22: +lda $16,L.42 +ldq $27,-48+160($sp) +ldb $17,($27) +jsr $26,printf +ldgp $gp,0($26) +L.23: +L.19: +ldq $27,-48+160($sp) +lda $27,1($27) +stq $27,-48+160($sp) +L.21: +ldq $27,-48+160($sp) +ldb $27,($27) +cmpeq $27,$31,$23 +beq $23,L.18 +mov $31,$0 +L.13: +ldq $13,0($sp) +ldq $14,8($sp) +ldq $26,16($sp) +lda $sp,160($sp) +ret +.end print +.rdata +.align 0 +L.86: +.byte 37 +.byte 102 +.byte 0 +.align 0 +L.75: +.byte 37 +.byte 115 +.byte 0 +.align 0 +L.64: +.byte 37 +.byte 120 +.byte 0 +.align 0 +L.53: +.byte 37 +.byte 100 +.byte 0 +.align 0 +L.42: +.byte 37 +.byte 99 +.byte 0 +.align 0 +L.37: +.byte 123 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 125 +.byte 0 +.align 0 +L.12: +.byte 37 +.byte 98 +.byte 32 +.byte 37 +.byte 98 +.byte 32 +.byte 37 +.byte 98 +.byte 32 +.byte 37 +.byte 98 +.byte 32 +.byte 37 +.byte 98 +.byte 32 +.byte 37 +.byte 98 +.byte 10 +.byte 0 +.align 3 +L.11: +.long 0x0 +.long 0x40140000 +.align 0 +L.10: +.byte 37 +.byte 115 +.byte 37 +.byte 115 +.byte 32 +.byte 37 +.byte 102 +.byte 37 +.byte 99 +.byte 0 +.align 0 +L.9: +.byte 115 +.byte 116 +.byte 0 +.align 0 +L.8: +.byte 116 +.byte 101 +.byte 0 +.align 0 +L.7: +.byte 37 +.byte 115 +.byte 37 +.byte 115 +.byte 32 +.byte 37 +.byte 119 +.byte 37 +.byte 99 +.byte 0 +.align 0 +L.6: +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 37 +.byte 100 +.byte 37 +.byte 99 +.byte 0 +.align 0 +L.5: +.byte 50 +.byte 0 +.align 0 +L.4: +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 0 +L.3: +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 49 +.byte 10 +.byte 0 diff --git a/code/tools/lcc/alpha/osf/tst/struct.1bk b/code/tools/lcc/alpha/osf/tst/struct.1bk new file mode 100644 index 0000000..807f3da --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/struct.1bk @@ -0,0 +1,5 @@ +(-1,-1) is not within [10,10; 310,310] +(1,1) is not within [10,10; 310,310] +(20,300) is within [10,10; 310,310] +(500,400) is not within [10,10; 310,310] +ab diff --git a/code/tools/lcc/alpha/osf/tst/struct.2bk b/code/tools/lcc/alpha/osf/tst/struct.2bk new file mode 100644 index 0000000..cb0fbd0 --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/struct.2bk @@ -0,0 +1,2 @@ +tst/struct.c:49: warning: missing return value +tst/struct.c:68: warning: missing return value diff --git a/code/tools/lcc/alpha/osf/tst/struct.sbk b/code/tools/lcc/alpha/osf/tst/struct.sbk new file mode 100644 index 0000000..9dac672 --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/struct.sbk @@ -0,0 +1,443 @@ +.globl addpoint +.text +.text +.ent addpoint +addpoint: +ldgp $gp,0($27) +lda $sp,-64($sp) +.frame $sp,64,$26,48 +stq $17,24($sp) +stq $18,32($sp) +.prologue 1 +ldl $27,-40+64($sp) +ldl $25,-32+64($sp) +addl $27,$25,$27 +stl $27,-40+64($sp) +ldl $27,-36+64($sp) +ldl $25,-28+64($sp) +addl $27,$25,$27 +stl $27,-36+64($sp) +lda $1,-40+64($sp) +ldl $4,0($1) +ldl $2,4($1) +stl $4,0($16) +stl $2,4($16) +L.1: +lda $sp,64($sp) +ret +.end addpoint +.globl canonrect +.text +.ent canonrect +canonrect: +ldgp $gp,0($27) +lda $sp,-112($sp) +.mask 0x4007800,-80 +.frame $sp,112,$26,48 +stq $11,0($sp) +stq $12,8($sp) +stq $13,16($sp) +stq $14,24($sp) +stq $26,32($sp) +stq $17,72($sp) +stq $18,80($sp) +.prologue 1 +ldl $27,-40+112($sp) +ldl $25,-32+112($sp) +cmplt $27,$25,$23 +beq $23,L.10 +ldl $14,-40+112($sp) +br L.11 +L.10: +ldl $14,-32+112($sp) +L.11: +stl $14,-72+112($sp) +ldl $27,-36+112($sp) +ldl $25,-28+112($sp) +cmplt $27,$25,$23 +beq $23,L.20 +ldl $13,-36+112($sp) +br L.21 +L.20: +ldl $13,-28+112($sp) +L.21: +stl $13,-68+112($sp) +ldl $27,-40+112($sp) +ldl $25,-32+112($sp) +cmple $27,$25,$23 +bne $23,L.26 +ldl $12,-40+112($sp) +br L.27 +L.26: +ldl $12,-32+112($sp) +L.27: +stl $12,-64+112($sp) +ldl $27,-36+112($sp) +ldl $25,-28+112($sp) +cmple $27,$25,$23 +bne $23,L.37 +ldl $11,-36+112($sp) +br L.38 +L.37: +ldl $11,-28+112($sp) +L.38: +stl $11,-60+112($sp) +lda $1,-72+112($sp) +ldl $4,0($1) +ldl $2,4($1) +stl $4,0($16) +stl $2,4($16) +ldl $4,8($1) +ldl $2,12($1) +stl $4,8($16) +stl $2,12($16) +L.5: +ldq $11,0($sp) +ldq $12,8($sp) +ldq $13,16($sp) +ldq $14,24($sp) +ldq $26,32($sp) +lda $sp,112($sp) +ret +.end canonrect +.globl makepoint +.text +.ent makepoint +makepoint: +ldgp $gp,0($27) +lda $sp,-64($sp) +.frame $sp,64,$26,48 +.prologue 1 +stl $17,-64+64($sp) +stl $18,-60+64($sp) +lda $1,-64+64($sp) +ldl $4,0($1) +ldl $2,4($1) +stl $4,0($16) +stl $2,4($16) +L.39: +lda $sp,64($sp) +ret +.end makepoint +.globl makerect +.text +.ent makerect +makerect: +ldgp $gp,0($27) +lda $sp,-80($sp) +.mask 0x4000000,-80 +.frame $sp,80,$26,48 +stq $26,0($sp) +stq $16,32($sp) +stq $17,40($sp) +stq $18,48($sp) +.prologue 1 +lda $27,-72+80($sp) +lda $1,-40+80($sp) +ldl $4,0($1) +ldl $2,4($1) +stl $4,0($27) +stl $2,4($27) +lda $27,-64+80($sp) +lda $1,-32+80($sp) +ldl $4,0($1) +ldl $2,4($1) +stl $4,0($27) +stl $2,4($27) +ldq $16,-48+80($sp) +lda $1,-72+80($sp) +uldq $17,0($1) +uldq $18,8($1) +jsr $26,canonrect +ldgp $gp,0($26) +L.42: +ldq $26,0($sp) +lda $sp,80($sp) +ret +.end makerect +.globl ptinrect +.text +.ent ptinrect +ptinrect: +ldgp $gp,0($27) +lda $sp,-80($sp) +.mask 0x4004000,-72 +.frame $sp,80,$26,48 +stq $14,0($sp) +stq $26,8($sp) +stq $16,32($sp) +stq $17,40($sp) +stq $18,48($sp) +.prologue 1 +ldl $27,-48+80($sp) +ldl $25,-40+80($sp) +cmplt $27,$25,$23 +bne $23,L.53 +ldl $25,-32+80($sp) +cmplt $27,$25,$23 +beq $23,L.53 +ldl $27,-44+80($sp) +ldl $25,-36+80($sp) +cmplt $27,$25,$23 +bne $23,L.53 +ldl $27,-44+80($sp) +ldl $25,-28+80($sp) +cmplt $27,$25,$23 +beq $23,L.53 +lda $14,1 +br L.54 +L.53: +mov $31,$14 +L.54: +mov $14,$0 +L.45: +ldq $14,0($sp) +ldq $26,8($sp) +lda $sp,80($sp) +ret +.end ptinrect +.sdata +.globl y +.align 0 +y: +.byte 97 +.byte 98 +.byte 0 +.globl odd +.text +.text +.ent odd +odd: +ldgp $gp,0($27) +lda $sp,-80($sp) +.mask 0x4000000,-80 +.frame $sp,80,$26,48 +stq $26,0($sp) +stq $16,32($sp) +.prologue 1 +lda $27,-59+80($sp) +lda $1,-48+80($sp) +ldb $4,0($1) +ldb $2,1($1) +stb $4,0($27) +stb $2,1($27) +ldb $4,2($1) +stb $4,2($27) +lda $16,L.56 +lda $17,-59+80($sp) +jsr $26,printf +ldgp $gp,0($26) +mov $31,$0 +L.55: +ldq $26,0($sp) +lda $sp,80($sp) +ret +.end odd +.rdata +.align 2 +L.58: +.long 0x0 +.long 0x0 +.align 2 +L.59: +.long 0x140 +.long 0x140 +.align 2 +L.60: +.long 0xffffffff +.long 0xffffffff +.long 0x1 +.long 0x1 +.long 0x14 +.long 0x12c +.long 0x1f4 +.long 0x190 +.globl main +.text +.text +.ent main +main: +ldgp $gp,0($27) +lda $sp,-176($sp) +.mask 0x4004000,-168 +.frame $sp,176,$26,48 +stq $14,0($sp) +stq $26,8($sp) +.prologue 1 +lda $27,-120+176($sp) +lda $1,L.58 +ldl $4,0($1) +ldl $2,4($1) +stl $4,0($27) +stl $2,4($27) +lda $27,-128+176($sp) +lda $1,L.59 +ldl $4,0($1) +ldl $2,4($1) +stl $4,0($27) +stl $2,4($27) +lda $27,-88+176($sp) +lda $1,L.60 +addq $1,32,$1 +addq $27,32,$3 +L.76: +addq $1,-8,$1 +addq $3,-8,$3 +ldl $4,0($1) +ldl $2,4($1) +stl $4,0($3) +stl $2,4($3) +cmpult $27,$3,$23 +bne $23,L.76 +lda $16,-136+176($sp) +lda $27,-10 +mov $27,$17 +mov $27,$18 +jsr $26,makepoint +ldgp $gp,0($26) +lda $16,-144+176($sp) +lda $1,-128+176($sp) +uldq $17,0($1) +lda $1,-136+176($sp) +uldq $18,0($1) +jsr $26,addpoint +ldgp $gp,0($26) +lda $16,-152+176($sp) +lda $27,10 +mov $27,$17 +mov $27,$18 +jsr $26,makepoint +ldgp $gp,0($26) +lda $16,-160+176($sp) +lda $1,-120+176($sp) +uldq $17,0($1) +lda $1,-152+176($sp) +uldq $18,0($1) +jsr $26,addpoint +ldgp $gp,0($26) +lda $16,-104+176($sp) +lda $1,-144+176($sp) +uldq $17,0($1) +lda $1,-160+176($sp) +uldq $18,0($1) +jsr $26,makerect +ldgp $gp,0($26) +mov $31,$14 +br L.64 +L.61: +lda $16,-112+176($sp) +sll $14,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,3,$27 +lda $25,-88+176($sp) +addq $27,$25,$25 +ldl $17,($25) +lda $25,-84+176($sp) +addq $27,$25,$27 +ldl $18,($27) +jsr $26,makepoint +ldgp $gp,0($26) +lda $16,L.65 +sll $14,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,3,$27 +lda $25,-88+176($sp) +addq $27,$25,$27 +ldl $17,($27) +ldl $18,-108+176($sp) +jsr $26,printf +ldgp $gp,0($26) +lda $1,-112+176($sp) +uldq $16,0($1) +lda $1,-104+176($sp) +uldq $17,0($1) +uldq $18,8($1) +jsr $26,ptinrect +ldgp $gp,0($26) +cmpeq $0,$31,$23 +beq $23,L.68 +lda $16,L.70 +jsr $26,printf +ldgp $gp,0($26) +L.68: +lda $16,L.71 +ldl $17,-104+176($sp) +ldl $18,-100+176($sp) +ldl $19,-96+176($sp) +ldl $20,-92+176($sp) +jsr $26,printf +ldgp $gp,0($26) +L.62: +lda $14,1($14) +L.64: +mov $14,$27 +lda $25,4 +cmpult $27,$25,$23 +bne $23,L.61 +lda $1,y +uldq $16,0($1) +jsr $26,odd +ldgp $gp,0($26) +mov $31,$16 +jsr $26,exit +ldgp $gp,0($26) +mov $31,$0 +L.57: +ldq $14,0($sp) +ldq $26,8($sp) +lda $sp,176($sp) +ret +.end main +.rdata +.align 0 +L.71: +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 105 +.byte 110 +.byte 32 +.byte 91 +.byte 37 +.byte 100 +.byte 44 +.byte 37 +.byte 100 +.byte 59 +.byte 32 +.byte 37 +.byte 100 +.byte 44 +.byte 37 +.byte 100 +.byte 93 +.byte 10 +.byte 0 +.align 0 +L.70: +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 0 +.align 0 +L.65: +.byte 40 +.byte 37 +.byte 100 +.byte 44 +.byte 37 +.byte 100 +.byte 41 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 0 +.align 0 +L.56: +.byte 37 +.byte 115 +.byte 10 +.byte 0 diff --git a/code/tools/lcc/alpha/osf/tst/switch.1bk b/code/tools/lcc/alpha/osf/tst/switch.1bk new file mode 100644 index 0000000..de46a73 --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/switch.1bk @@ -0,0 +1,76 @@ +b = 0x8 +f = 0xc +n = 0xa +r = 0xd +t = 0x9 +v = 0xb +x = 0x78 +f: +x = 0 +x = 1 +x = 2 +x = 2 +x = 2 +x = 2 +x = 2 +x = 7 +x = 8 +x = 9 +x = 9 +x = 9 +x = 9 +x = 9 +x = 9 +x = 9 +x = 16 +x = 17 +x = 18 +x = 19 +x = 20 +g: +1 1 +1 2 +2 3 +2 4 +2 5 +3 6 +d 6 +3 7 +d 7 +3 8 +d 8 +d 9 +d 10 +h: +i = 8 +i = 16 +i = 120 +i = 128 +i = 248 +i = 264 +i = 272 +i = 280 +i = 288 +i = 296 +i = 304 +i = 312 +488 defaults +x = 0x1000000 +x = 0x2000000 +x = 0x3000000 +x = 0x4000000 +x = 0x5000000 +x = 0x6000000 (default) +x = 0x7000000 (default) +0 +1 +2 +3 +4 +5 +0 +1 +2 +3 +4 +5 diff --git a/code/tools/lcc/alpha/osf/tst/switch.2bk b/code/tools/lcc/alpha/osf/tst/switch.2bk new file mode 100644 index 0000000..6dee58e --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/switch.2bk @@ -0,0 +1,7 @@ +tst/switch.c:55: warning: missing return value +tst/switch.c:73: warning: missing return value +tst/switch.c:97: warning: missing return value +tst/switch.c:101: warning: overflow in converting constant expression from `int' to `unsigned int' +tst/switch.c:102: warning: overflow in converting constant expression from `int' to `unsigned int' +tst/switch.c:112: warning: missing return value +tst/switch.c:137: warning: missing return value diff --git a/code/tools/lcc/alpha/osf/tst/switch.sbk b/code/tools/lcc/alpha/osf/tst/switch.sbk new file mode 100644 index 0000000..3ac6382 --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/switch.sbk @@ -0,0 +1,903 @@ +.globl main +.text +.text +.ent main +main: +ldgp $gp,0($27) +lda $sp,-80($sp) +.mask 0x4006000,-64 +.frame $sp,80,$26,48 +stq $13,0($sp) +stq $14,8($sp) +stq $26,16($sp) +.prologue 1 +lda $14,L.6 +br L.5 +L.2: +ldb $16,($14) +jsr $26,backslash +ldgp $gp,0($26) +mov $0,$27 +lda $16,L.7 +ldb $17,($14) +mov $27,$18 +jsr $26,printf +ldgp $gp,0($26) +L.3: +lda $14,1($14) +L.5: +ldb $27,($14) +cmpeq $27,$31,$23 +beq $23,L.2 +jsr $26,f +ldgp $gp,0($26) +jsr $26,g +ldgp $gp,0($26) +jsr $26,h +ldgp $gp,0($26) +lda $13,16777216 +br L.11 +L.8: +mov $13,$16 +jsr $26,big +ldgp $gp,0($26) +L.9: +lda $13,16777216($13) +L.11: +and $13,117440512,$27 +addl $27,0,$27 +cmpeq $27,$31,$23 +beq $23,L.8 +jsr $26,limit +ldgp $gp,0($26) +mov $31,$0 +L.1: +ldq $13,0($sp) +ldq $14,8($sp) +ldq $26,16($sp) +lda $sp,80($sp) +ret +.end main +.globl backslash +.text +.ent backslash +backslash: +ldgp $gp,0($27) +lda $sp,-64($sp) +.frame $sp,64,$26,48 +.prologue 1 +lda $27,102 +cmpeq $16,$27,$23 +bne $23,L.16 +cmple $16,$27,$23 +beq $23,L.22 +L.21: +lda $27,98 +cmpeq $16,$27,$23 +bne $23,L.15 +br L.13 +L.22: +lda $27,110 +cmpeq $16,$27,$23 +bne $23,L.17 +cmplt $16,$27,$23 +bne $23,L.13 +L.23: +lda $27,114 +cmpeq $16,$27,$23 +bne $23,L.18 +lda $27,116 +cmpeq $16,$27,$23 +bne $23,L.19 +lda $27,118 +cmpeq $16,$27,$23 +bne $23,L.20 +br L.13 +L.15: +lda $0,8 +br L.12 +L.16: +lda $0,12 +br L.12 +L.17: +lda $0,10 +br L.12 +L.18: +lda $0,13 +br L.12 +L.19: +lda $0,9 +br L.12 +L.20: +lda $0,11 +br L.12 +L.13: +mov $16,$0 +L.12: +lda $sp,64($sp) +ret +.end backslash +.globl f +.text +.ent f +f: +ldgp $gp,0($27) +lda $sp,-96($sp) +.mask 0x4007000,-72 +.frame $sp,96,$26,48 +stq $12,0($sp) +stq $13,8($sp) +stq $14,16($sp) +stq $26,24($sp) +.prologue 1 +mov $31,$13 +lda $16,L.25 +jsr $26,printf +ldgp $gp,0($26) +mov $31,$14 +L.26: +mov $14,$12 +cmplt $14,1,$23 +bne $23,L.30 +cmple $14,20,$23 +beq $23,L.30 +subl $14,1,$27 +sll $27,3,$27 +ldq $27,L.42($27) +jmp ($27) +.rdata +.align 3 +L.42: +.quad L.32 +.quad L.33 +.quad L.30 +.quad L.30 +.quad L.30 +.quad L.30 +.quad L.34 +.quad L.35 +.quad L.36 +.quad L.30 +.quad L.30 +.quad L.30 +.quad L.30 +.quad L.30 +.quad L.30 +.quad L.37 +.quad L.38 +.quad L.39 +.quad L.40 +.quad L.41 +.text +L.32: +mov $14,$13 +br L.31 +L.33: +mov $14,$13 +br L.31 +L.34: +mov $14,$13 +br L.31 +L.35: +mov $14,$13 +br L.31 +L.36: +mov $14,$13 +br L.31 +L.37: +mov $14,$13 +br L.31 +L.38: +mov $14,$13 +br L.31 +L.39: +mov $14,$13 +br L.31 +L.40: +mov $14,$13 +br L.31 +L.41: +mov $14,$13 +L.30: +L.31: +lda $16,L.43 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +L.27: +lda $14,1($14) +cmple $14,20,$23 +bne $23,L.26 +mov $31,$0 +L.24: +ldq $12,0($sp) +ldq $13,8($sp) +ldq $14,16($sp) +ldq $26,24($sp) +lda $sp,96($sp) +ret +.end f +.globl g +.text +.ent g +g: +ldgp $gp,0($27) +lda $sp,-80($sp) +.mask 0x4004000,-72 +.frame $sp,80,$26,48 +stq $14,0($sp) +stq $26,8($sp) +.prologue 1 +lda $16,L.45 +jsr $26,printf +ldgp $gp,0($26) +lda $14,1 +L.46: +lda $27,1001 +cmplt $14,$27,$23 +bne $23,L.63 +lda $27,1004 +cmple $14,$27,$23 +beq $23,L.64 +subl $14,1001,$27 +sll $27,3,$27 +ldq $27,L.65($27) +jmp ($27) +.rdata +.align 3 +L.65: +.quad L.59 +.quad L.59 +.quad L.59 +.quad L.59 +.text +L.63: +cmplt $14,1,$23 +bne $23,L.50 +cmple $14,8,$23 +beq $23,L.50 +subl $14,1,$27 +sll $27,3,$27 +ldq $27,L.66($27) +jmp ($27) +.rdata +.align 3 +L.66: +.quad L.52 +.quad L.52 +.quad L.54 +.quad L.54 +.quad L.54 +.quad L.56 +.quad L.56 +.quad L.56 +.text +L.64: +lda $27,3001 +cmplt $14,$27,$23 +bne $23,L.50 +lda $27,3004 +cmple $14,$27,$23 +beq $23,L.50 +subl $14,3001,$27 +sll $27,3,$27 +ldq $27,L.67($27) +jmp ($27) +.rdata +.align 3 +L.67: +.quad L.61 +.quad L.61 +.quad L.61 +.quad L.61 +.text +L.52: +lda $16,L.53 +mov $14,$17 +jsr $26,printf +ldgp $gp,0($26) +br L.51 +L.54: +lda $16,L.55 +mov $14,$17 +jsr $26,printf +ldgp $gp,0($26) +br L.51 +L.56: +lda $16,L.57 +mov $14,$17 +jsr $26,printf +ldgp $gp,0($26) +L.50: +lda $16,L.58 +mov $14,$17 +jsr $26,printf +ldgp $gp,0($26) +br L.51 +L.59: +lda $16,L.60 +mov $14,$17 +jsr $26,printf +ldgp $gp,0($26) +br L.51 +L.61: +lda $16,L.62 +mov $14,$17 +jsr $26,printf +ldgp $gp,0($26) +L.51: +L.47: +lda $14,1($14) +cmple $14,10,$23 +bne $23,L.46 +mov $31,$0 +L.44: +ldq $14,0($sp) +ldq $26,8($sp) +lda $sp,80($sp) +ret +.end g +.globl h +.text +.ent h +h: +ldgp $gp,0($27) +lda $sp,-80($sp) +.mask 0x4006000,-64 +.frame $sp,80,$26,48 +stq $13,0($sp) +stq $14,8($sp) +stq $26,16($sp) +.prologue 1 +mov $31,$13 +lda $16,L.69 +jsr $26,printf +ldgp $gp,0($26) +lda $14,1 +L.70: +lda $27,264 +cmpeq $14,$27,$23 +bne $23,L.82 +cmple $14,$27,$23 +beq $23,L.90 +L.89: +lda $27,120 +cmpeq $14,$27,$23 +bne $23,L.80 +cmple $14,$27,$23 +beq $23,L.92 +L.91: +cmpeq $14,8,$23 +bne $23,L.79 +cmplt $14,8,$23 +bne $23,L.74 +L.93: +cmpeq $14,16,$23 +bne $23,L.78 +br L.74 +L.92: +lda $27,128 +cmpeq $14,$27,$23 +bne $23,L.76 +cmplt $14,$27,$23 +bne $23,L.74 +L.94: +lda $27,248 +cmpeq $14,$27,$23 +bne $23,L.83 +br L.74 +L.90: +lda $27,288 +cmpeq $14,$27,$23 +bne $23,L.87 +cmple $14,$27,$23 +beq $23,L.96 +L.95: +lda $27,272 +cmpeq $14,$27,$23 +bne $23,L.84 +cmplt $14,$27,$23 +bne $23,L.74 +L.97: +lda $27,280 +cmpeq $14,$27,$23 +bne $23,L.81 +br L.74 +L.96: +lda $27,304 +cmpeq $14,$27,$23 +bne $23,L.85 +cmple $14,$27,$23 +beq $23,L.99 +L.98: +lda $27,296 +cmpeq $14,$27,$23 +bne $23,L.86 +br L.74 +L.99: +lda $27,312 +cmpeq $14,$27,$23 +bne $23,L.88 +br L.74 +L.74: +lda $13,1($13) +br L.71 +L.76: +lda $16,L.77 +mov $14,$17 +jsr $26,printf +ldgp $gp,0($26) +br L.75 +L.78: +lda $16,L.77 +mov $14,$17 +jsr $26,printf +ldgp $gp,0($26) +br L.75 +L.79: +lda $16,L.77 +mov $14,$17 +jsr $26,printf +ldgp $gp,0($26) +br L.75 +L.80: +lda $16,L.77 +mov $14,$17 +jsr $26,printf +ldgp $gp,0($26) +br L.75 +L.81: +lda $16,L.77 +mov $14,$17 +jsr $26,printf +ldgp $gp,0($26) +br L.75 +L.82: +lda $16,L.77 +mov $14,$17 +jsr $26,printf +ldgp $gp,0($26) +br L.75 +L.83: +lda $16,L.77 +mov $14,$17 +jsr $26,printf +ldgp $gp,0($26) +br L.75 +L.84: +lda $16,L.77 +mov $14,$17 +jsr $26,printf +ldgp $gp,0($26) +br L.75 +L.85: +lda $16,L.77 +mov $14,$17 +jsr $26,printf +ldgp $gp,0($26) +br L.75 +L.86: +lda $16,L.77 +mov $14,$17 +jsr $26,printf +ldgp $gp,0($26) +br L.75 +L.87: +lda $16,L.77 +mov $14,$17 +jsr $26,printf +ldgp $gp,0($26) +br L.75 +L.88: +lda $16,L.77 +mov $14,$17 +jsr $26,printf +ldgp $gp,0($26) +L.75: +L.71: +lda $14,1($14) +lda $27,500 +cmple $14,$27,$23 +bne $23,L.70 +lda $16,L.100 +mov $13,$17 +jsr $26,printf +ldgp $gp,0($26) +mov $31,$0 +L.68: +ldq $13,0($sp) +ldq $14,8($sp) +ldq $26,16($sp) +lda $sp,80($sp) +ret +.end h +.globl big +.text +.ent big +big: +ldgp $gp,0($27) +lda $sp,-80($sp) +.mask 0x4004000,-72 +.frame $sp,80,$26,48 +stq $14,0($sp) +stq $26,8($sp) +stq $16,32($sp) +.prologue 1 +ldl $27,-48+80($sp) +zap $27,240,$27 +and $27,0x6000000,$14 +lda $25,33554432 +cmpeq $14,$25,$23 +bne $23,L.107 +cmple $14,$25,$23 +beq $23,L.111 +L.110: +lda $25,-2 +cmpeq $14,$25,$23 +bne $23,L.105 +lda $25,-1 +cmpeq $14,$25,$23 +bne $23,L.105 +cmpeq $14,$31,$23 +bne $23,L.105 +br L.102 +L.111: +mov $14,$27 +lda $25,67108864 +cmpeq $27,$25,$23 +bne $23,L.108 +br L.102 +L.105: +lda $16,L.106 +ldl $17,-48+80($sp) +zap $17,240,$17 +jsr $26,printf +ldgp $gp,0($26) +br L.103 +L.107: +lda $16,L.106 +ldl $17,-48+80($sp) +zap $17,240,$17 +jsr $26,printf +ldgp $gp,0($26) +br L.103 +L.108: +lda $16,L.106 +ldl $17,-48+80($sp) +zap $17,240,$17 +jsr $26,printf +ldgp $gp,0($26) +br L.103 +L.102: +lda $16,L.109 +ldl $17,-48+80($sp) +zap $17,240,$17 +jsr $26,printf +ldgp $gp,0($26) +L.103: +mov $31,$0 +L.101: +ldq $14,0($sp) +ldq $26,8($sp) +lda $sp,80($sp) +ret +.end big +.globl limit +.text +.ent limit +limit: +ldgp $gp,0($27) +lda $sp,-80($sp) +.mask 0x4004000,-72 +.frame $sp,80,$26,48 +stq $14,0($sp) +stq $26,8($sp) +.prologue 1 +lda $14,-2147483648 +L.113: +lda $27,-2147483648 +cmplt $14,$27,$23 +bne $23,L.117 +lda $27,-2147483644 +cmple $14,$27,$23 +beq $23,L.117 +subl $14,-2147483648,$27 +sll $27,3,$27 +ldq $27,L.130($27) +jmp ($27) +.rdata +.align 3 +L.130: +.quad L.119 +.quad L.121 +.quad L.123 +.quad L.125 +.quad L.127 +.text +L.119: +lda $16,L.120 +jsr $26,printf +ldgp $gp,0($26) +br L.118 +L.121: +lda $16,L.122 +jsr $26,printf +ldgp $gp,0($26) +br L.118 +L.123: +lda $16,L.124 +jsr $26,printf +ldgp $gp,0($26) +br L.118 +L.125: +lda $16,L.126 +jsr $26,printf +ldgp $gp,0($26) +br L.118 +L.127: +lda $16,L.128 +jsr $26,printf +ldgp $gp,0($26) +br L.118 +L.117: +lda $16,L.129 +jsr $26,printf +ldgp $gp,0($26) +L.118: +L.114: +lda $14,1($14) +lda $27,-2147483643 +cmple $14,$27,$23 +bne $23,L.113 +lda $14,2147483647 +L.131: +lda $27,2147483643 +cmplt $14,$27,$23 +bne $23,L.135 +lda $27,2147483647 +cmple $14,$27,$23 +beq $23,L.135 +subl $14,2147483643,$27 +sll $27,3,$27 +ldq $27,L.142($27) +jmp ($27) +.rdata +.align 3 +L.142: +.quad L.141 +.quad L.140 +.quad L.139 +.quad L.138 +.quad L.137 +.text +L.137: +lda $16,L.120 +jsr $26,printf +ldgp $gp,0($26) +br L.136 +L.138: +lda $16,L.122 +jsr $26,printf +ldgp $gp,0($26) +br L.136 +L.139: +lda $16,L.124 +jsr $26,printf +ldgp $gp,0($26) +br L.136 +L.140: +lda $16,L.126 +jsr $26,printf +ldgp $gp,0($26) +br L.136 +L.141: +lda $16,L.128 +jsr $26,printf +ldgp $gp,0($26) +br L.136 +L.135: +lda $16,L.129 +jsr $26,printf +ldgp $gp,0($26) +L.136: +L.132: +subl $14,1,$14 +lda $27,2147483642 +cmplt $14,$27,$23 +beq $23,L.131 +mov $31,$0 +L.112: +ldq $14,0($sp) +ldq $26,8($sp) +lda $sp,80($sp) +ret +.end limit +.rdata +.align 0 +L.129: +.byte 53 +.byte 10 +.byte 0 +.align 0 +L.128: +.byte 52 +.byte 10 +.byte 0 +.align 0 +L.126: +.byte 51 +.byte 10 +.byte 0 +.align 0 +L.124: +.byte 50 +.byte 10 +.byte 0 +.align 0 +L.122: +.byte 49 +.byte 10 +.byte 0 +.align 0 +L.120: +.byte 48 +.byte 10 +.byte 0 +.align 0 +L.109: +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 48 +.byte 120 +.byte 37 +.byte 120 +.byte 32 +.byte 40 +.byte 100 +.byte 101 +.byte 102 +.byte 97 +.byte 117 +.byte 108 +.byte 116 +.byte 41 +.byte 10 +.byte 0 +.align 0 +L.106: +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 48 +.byte 120 +.byte 37 +.byte 120 +.byte 10 +.byte 0 +.align 0 +L.100: +.byte 37 +.byte 100 +.byte 32 +.byte 100 +.byte 101 +.byte 102 +.byte 97 +.byte 117 +.byte 108 +.byte 116 +.byte 115 +.byte 10 +.byte 0 +.align 0 +L.77: +.byte 105 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.69: +.byte 104 +.byte 58 +.byte 10 +.byte 0 +.align 0 +L.62: +.byte 54 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.60: +.byte 53 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.58: +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.57: +.byte 51 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.55: +.byte 50 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.53: +.byte 49 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.45: +.byte 103 +.byte 58 +.byte 10 +.byte 0 +.align 0 +L.43: +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.25: +.byte 102 +.byte 58 +.byte 10 +.byte 0 +.align 0 +L.7: +.byte 37 +.byte 99 +.byte 32 +.byte 61 +.byte 32 +.byte 48 +.byte 120 +.byte 37 +.byte 120 +.byte 10 +.byte 0 +.align 0 +L.6: +.byte 98 +.byte 102 +.byte 110 +.byte 114 +.byte 116 +.byte 118 +.byte 120 +.byte 0 diff --git a/code/tools/lcc/alpha/osf/tst/wf1.1bk b/code/tools/lcc/alpha/osf/tst/wf1.1bk new file mode 100644 index 0000000..a846267 --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/wf1.1bk @@ -0,0 +1,74 @@ +5 a +2 and +5 buf +16 c +8 char +1 compare +4 cond +5 count +1 d +1 die +3 else +1 entry +1 eof +4 err +1 error +1 exit +1 folded +1 for +1 free +1 frequencies +1 frequency +1 get +2 getchar +3 getword +14 if +2 in +1 index +1 input +1 install +8 int +1 into +1 is +4 isletter +1 it +1 itself +5 left +1 letter +7 lookup +1 main +2 malloc +1 message +2 n +1 necessary +12 next +9 node +4 of +1 on +1 or +1 otherwise +2 out +8 p +3 print +2 printf +16 return +5 right +4 root +25 s +2 storage +3 strcmp +1 strcpy +1 strlen +8 struct +1 structures +2 subtree +1 t +5 tprint +9 tree +1 uses +1 version +1 wf +3 while +21 word +9 words +2 z diff --git a/code/tools/lcc/alpha/osf/tst/wf1.2bk b/code/tools/lcc/alpha/osf/tst/wf1.2bk new file mode 100644 index 0000000..190e4a1 --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/wf1.2bk @@ -0,0 +1,2 @@ +tst/wf1.c:29: warning: missing return value +tst/wf1.c:87: warning: missing return value diff --git a/code/tools/lcc/alpha/osf/tst/wf1.sbk b/code/tools/lcc/alpha/osf/tst/wf1.sbk new file mode 100644 index 0000000..507b38f --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/wf1.sbk @@ -0,0 +1,400 @@ +.globl main +.text +.text +.ent main +main: +ldgp $gp,0($27) +lda $sp,-96($sp) +.mask 0x4000000,-96 +.frame $sp,96,$26,48 +stq $26,0($sp) +.prologue 1 +stq $31,-88+96($sp) +stl $31,next +br L.3 +L.2: +lda $16,-76+96($sp) +lda $17,-88+96($sp) +jsr $26,lookup +ldgp $gp,0($26) +ldl $25,($0) +lda $25,1($25) +stl $25,($0) +L.3: +lda $16,-76+96($sp) +jsr $26,getword +ldgp $gp,0($26) +cmpeq $0,$31,$23 +beq $23,L.2 +ldq $16,-88+96($sp) +jsr $26,tprint +ldgp $gp,0($26) +mov $31,$0 +L.1: +ldq $26,0($sp) +lda $sp,96($sp) +ret +.end main +.globl err +.text +.ent err +err: +ldgp $gp,0($27) +lda $sp,-64($sp) +.mask 0x4000000,-64 +.frame $sp,64,$26,48 +stq $26,0($sp) +stq $16,16($sp) +.prologue 1 +lda $16,L.6 +ldq $17,-48+64($sp) +jsr $26,printf +ldgp $gp,0($26) +lda $16,1 +jsr $26,exit +ldgp $gp,0($26) +mov $31,$0 +L.5: +ldq $26,0($sp) +lda $sp,64($sp) +ret +.end err +.globl getword +.text +.ent getword +getword: +ldgp $gp,0($27) +lda $sp,-96($sp) +.mask 0x5006000,-72 +.frame $sp,96,$26,48 +stq $13,0($sp) +stq $14,8($sp) +stq $24,16($sp) +stq $26,24($sp) +stq $16,48($sp) +.prologue 1 +L.8: +L.9: +jsr $26,getchar +ldgp $gp,0($26) +mov $0,$27 +mov $27,$14 +lda $25,-1 +cmpeq $27,$25,$23 +bne $23,L.11 +mov $14,$16 +jsr $26,isletter +ldgp $gp,0($26) +cmpeq $0,$31,$23 +bne $23,L.8 +L.11: +ldq $13,-48+96($sp) +br L.15 +L.12: +mov $13,$27 +lda $13,1($27) +mov $14,$25 +stb $25,($27) +L.13: +jsr $26,getchar +ldgp $gp,0($26) +mov $0,$14 +L.15: +mov $14,$16 +jsr $26,isletter +ldgp $gp,0($26) +mov $0,$14 +cmpeq $0,$31,$23 +beq $23,L.12 +stb $31,($13) +mov $13,$27 +ldq $25,-48+96($sp) +cmpule $27,$25,$23 +bne $23,L.16 +lda $0,1 +br L.7 +L.16: +mov $31,$0 +L.7: +ldq $13,0($sp) +ldq $14,8($sp) +ldq $24,16($sp) +ldq $26,24($sp) +lda $sp,96($sp) +ret +.end getword +.globl isletter +.text +.ent isletter +isletter: +ldgp $gp,0($27) +lda $sp,-64($sp) +.frame $sp,64,$26,48 +.prologue 1 +lda $27,65 +cmplt $16,$27,$23 +bne $23,L.19 +lda $27,90 +cmple $16,$27,$23 +beq $23,L.19 +lda $16,32($16) +L.19: +lda $27,97 +cmplt $16,$27,$23 +bne $23,L.21 +lda $27,122 +cmple $16,$27,$23 +beq $23,L.21 +mov $16,$0 +br L.18 +L.21: +mov $31,$0 +L.18: +lda $sp,64($sp) +ret +.end isletter +.globl lookup +.text +.ent lookup +lookup: +ldgp $gp,0($27) +lda $sp,-80($sp) +.mask 0x4004000,-72 +.frame $sp,80,$26,48 +stq $14,0($sp) +stq $26,8($sp) +stq $16,32($sp) +mov $17,$14 +.prologue 1 +ldq $27,($14) +cmpeq $27,$31,$23 +bne $23,L.24 +ldq $16,-48+80($sp) +ldq $27,($14) +ldq $17,24($27) +jsr $26,strcmp +ldgp $gp,0($26) +stl $0,-60+80($sp) +ldl $27,-60+80($sp) +cmplt $27,$31,$23 +beq $23,L.26 +ldq $16,-48+80($sp) +ldq $27,($14) +lda $17,8($27) +jsr $26,lookup +ldgp $gp,0($26) +mov $0,$27 +br L.23 +L.26: +ldl $27,-60+80($sp) +cmple $27,$31,$23 +bne $23,L.28 +ldq $16,-48+80($sp) +ldq $27,($14) +lda $17,16($27) +jsr $26,lookup +ldgp $gp,0($26) +mov $0,$27 +br L.23 +L.28: +ldq $0,($14) +br L.23 +L.24: +ldl $27,next +lda $25,2000 +cmplt $27,$25,$23 +bne $23,L.30 +lda $16,L.32 +jsr $26,err +ldgp $gp,0($26) +L.30: +ldl $27,next +sll $27,5,$27 +stl $31,words($27) +ldl $27,next +sll $27,5,$27 +stq $31,words+16($27) +stq $31,words+8($27) +ldq $16,-48+80($sp) +jsr $26,strlen +ldgp $gp,0($26) +mov $0,$27 +lda $16,1($27) +jsr $26,malloc +ldgp $gp,0($26) +ldl $25,next +sll $25,5,$25 +stq $0,words+24($25) +ldl $27,next +sll $27,5,$27 +ldq $27,words+24($27) +cmpeq $27,$31,$23 +beq $23,L.36 +lda $16,L.39 +jsr $26,err +ldgp $gp,0($26) +L.36: +ldl $27,next +sll $27,5,$27 +ldq $16,words+24($27) +ldq $17,-48+80($sp) +jsr $26,strcpy +ldgp $gp,0($26) +ldl $27,next +lda $25,1($27) +stl $25,next +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,5,$27 +lda $27,words($27) +stq $27,($14) +mov $27,$0 +L.23: +ldq $14,0($sp) +ldq $26,8($sp) +lda $sp,80($sp) +ret +.end lookup +.globl tprint +.text +.ent tprint +tprint: +ldgp $gp,0($27) +lda $sp,-80($sp) +.mask 0x4004000,-72 +.frame $sp,80,$26,48 +stq $14,0($sp) +stq $26,8($sp) +mov $16,$14 +.prologue 1 +mov $14,$27 +cmpeq $27,$31,$23 +bne $23,L.42 +ldq $16,8($14) +jsr $26,tprint +ldgp $gp,0($26) +lda $16,L.44 +ldl $17,($14) +ldq $18,24($14) +jsr $26,printf +ldgp $gp,0($26) +ldq $16,16($14) +jsr $26,tprint +ldgp $gp,0($26) +L.42: +mov $31,$0 +L.41: +ldq $14,0($sp) +ldq $26,8($sp) +lda $sp,80($sp) +ret +.end tprint +.globl strcmp +.text +.ent strcmp +strcmp: +ldgp $gp,0($27) +lda $sp,-64($sp) +.frame $sp,64,$26,48 +.prologue 1 +br L.47 +L.46: +mov $16,$27 +lda $16,1($27) +ldb $27,($27) +cmpeq $27,$31,$23 +beq $23,L.49 +mov $31,$0 +br L.45 +L.49: +lda $17,1($17) +L.47: +ldb $27,($16) +ldb $25,($17) +cmpeq $27,$25,$23 +bne $23,L.46 +ldb $27,($16) +cmpeq $27,$31,$23 +beq $23,L.51 +lda $0,-1 +br L.45 +L.51: +ldb $27,($17) +cmpeq $27,$31,$23 +beq $23,L.53 +lda $0,1 +br L.45 +L.53: +ldb $27,($16) +ldb $25,($17) +subl $27,$25,$0 +L.45: +lda $sp,64($sp) +ret +.end strcmp +.globl next +.comm next,4 +.globl words +.comm words,64000 +.rdata +.align 0 +L.44: +.byte 37 +.byte 100 +.byte 9 +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 0 +L.39: +.byte 111 +.byte 117 +.byte 116 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 119 +.byte 111 +.byte 114 +.byte 100 +.byte 32 +.byte 115 +.byte 116 +.byte 111 +.byte 114 +.byte 97 +.byte 103 +.byte 101 +.byte 0 +.align 0 +L.32: +.byte 111 +.byte 117 +.byte 116 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 110 +.byte 111 +.byte 100 +.byte 101 +.byte 32 +.byte 115 +.byte 116 +.byte 111 +.byte 114 +.byte 97 +.byte 103 +.byte 101 +.byte 0 +.align 0 +L.6: +.byte 63 +.byte 32 +.byte 37 +.byte 115 +.byte 10 +.byte 0 diff --git a/code/tools/lcc/alpha/osf/tst/yacc.1bk b/code/tools/lcc/alpha/osf/tst/yacc.1bk new file mode 100644 index 0000000..60de9b5 --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/yacc.1bk @@ -0,0 +1,10 @@ +a +b +load +negate +push 5 +c +load +multiply +add +store diff --git a/code/tools/lcc/alpha/osf/tst/yacc.2bk b/code/tools/lcc/alpha/osf/tst/yacc.2bk new file mode 100644 index 0000000..9a4fd61 --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/yacc.2bk @@ -0,0 +1,3 @@ +tst/yacc.c:345: warning: missing return value +tst/yacc.c:349: warning: missing return value +tst/yacc.c:359: warning: missing return value diff --git a/code/tools/lcc/alpha/osf/tst/yacc.sbk b/code/tools/lcc/alpha/osf/tst/yacc.sbk new file mode 100644 index 0000000..d39c8c2 --- /dev/null +++ b/code/tools/lcc/alpha/osf/tst/yacc.sbk @@ -0,0 +1,2402 @@ +.sdata +.globl yyin +.align 3 +yyin: +.quad _iob +.globl yyout +.align 3 +yyout: +.quad _iob+56 +.globl yylex +.text +.text +.ent yylex +yylex: +ldgp $gp,0($27) +lda $sp,-80($sp) +.mask 0x4004000,-72 +.frame $sp,80,$26,48 +stq $14,0($sp) +stq $26,8($sp) +.prologue 1 +br L.5 +L.4: +L.7: +lda $27,-1 +cmplt $14,$27,$23 +bne $23,L.8 +cmple $14,4,$23 +beq $23,L.8 +subl $14,-1,$27 +sll $27,3,$27 +ldq $27,L.19($27) +jmp ($27) +.rdata +.align 3 +L.19: +.quad L.9 +.quad L.10 +.quad L.13 +.quad L.14 +.quad L.9 +.quad L.16 +.text +L.10: +jsr $26,yywrap +ldgp $gp,0($26) +cmpeq $0,$31,$23 +bne $23,L.9 +mov $31,$0 +br L.3 +L.13: +lda $0,257 +br L.3 +L.14: +lda $0,258 +br L.3 +L.16: +lda $27,yytext +ldb $0,($27) +br L.3 +L.8: +ldq $16,yyout +lda $17,L.18 +mov $14,$18 +jsr $26,fprintf +ldgp $gp,0($26) +L.9: +L.5: +jsr $26,yylook +ldgp $gp,0($26) +mov $0,$14 +cmplt $0,$31,$23 +beq $23,L.4 +mov $31,$0 +L.3: +ldq $14,0($sp) +ldq $26,8($sp) +lda $sp,80($sp) +ret +.end yylex +.sdata +.globl yyvstop +.align 2 +yyvstop: +.long 0x0 +.long 0x4 +.long 0x0 +.long 0x3 +.long 0x4 +.long 0x0 +.long 0x2 +.long 0x4 +.long 0x0 +.long 0x1 +.long 0x4 +.long 0x0 +.long 0x2 +.long 0x0 +.long 0x1 +.long 0x0 +.long 0x0 +.globl yycrank +.align 0 +yycrank: +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x1 +.byte 0x3 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x1 +.byte 0x4 +.byte 0x1 +.byte 0x3 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x1 +.byte 0x5 +.byte 0x5 +.byte 0x7 +.byte 0x5 +.byte 0x7 +.byte 0x5 +.byte 0x7 +.byte 0x5 +.byte 0x7 +.byte 0x5 +.byte 0x7 +.byte 0x5 +.byte 0x7 +.byte 0x5 +.byte 0x7 +.byte 0x5 +.byte 0x7 +.byte 0x5 +.byte 0x7 +.byte 0x5 +.byte 0x7 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x1 +.byte 0x6 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x6 +.byte 0x8 +.byte 0x0 +.byte 0x0 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.globl yysvec +.align 3 +yysvec: +.quad 0x0 +.quad 0x0 +.quad 0x0 +.quad yycrank-2 +.quad 0x0 +.quad 0x0 +.quad yycrank +.quad yysvec+24 +.quad 0x0 +.quad yycrank +.quad 0x0 +.quad yyvstop+4 +.quad yycrank +.quad 0x0 +.quad yyvstop+12 +.quad yycrank+4 +.quad 0x0 +.quad yyvstop+24 +.quad yycrank+38 +.quad 0x0 +.quad yyvstop+36 +.quad yycrank +.quad yysvec+120 +.quad yyvstop+48 +.quad yycrank +.quad yysvec+144 +.quad yyvstop+56 +.quad 0x0 +.quad 0x0 +.quad 0x0 +.globl yytop +.align 3 +yytop: +.quad yycrank+282 +.globl yybgin +.align 3 +yybgin: +.quad yysvec+24 +.globl yymatch +.align 0 +yymatch: +.byte 0 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 9 +.byte 10 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 9 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 48 +.byte 48 +.byte 48 +.byte 48 +.byte 48 +.byte 48 +.byte 48 +.byte 48 +.byte 48 +.byte 48 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 65 +.byte 1 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 0 +.globl yyextra +.align 0 +yyextra: +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.globl yylineno +.align 2 +yylineno: +.long 0x1 +.globl yysptr +.align 3 +yysptr: +.quad yysbuf +.globl yyprevious +.align 2 +yyprevious: +.long 0xa +.globl yylook +.text +.text +.ent yylook +yylook: +ldgp $gp,0($27) +lda $sp,-160($sp) +.mask 0x5007e00,-104 +.frame $sp,160,$26,48 +stq $9,0($sp) +stq $10,8($sp) +stq $11,16($sp) +stq $12,24($sp) +stq $13,32($sp) +stq $14,40($sp) +stq $24,48($sp) +stq $26,56($sp) +.prologue 1 +ldl $27,yymorfg +cmpeq $27,$31,$23 +beq $23,L.35 +lda $11,yytext +br L.36 +L.35: +stl $31,yymorfg +ldl $27,yyleng +lda $11,yytext($27) +L.36: +L.37: +lda $13,yylstate +ldq $27,yybgin +mov $27,$14 +stq $27,yyestate +ldl $27,yyprevious +cmpeq $27,10,$23 +beq $23,L.41 +lda $14,24($14) +L.41: +L.43: +ldq $12,($14) +mov $12,$27 +lda $25,yycrank +cmpeq $27,$25,$23 +beq $23,L.47 +ldq $27,8($14) +stq $27,-64+160($sp) +ldq $27,-64+160($sp) +cmpeq $27,$31,$23 +beq $23,L.49 +br L.94 +L.49: +ldq $27,-64+160($sp) +ldq $27,($27) +lda $25,yycrank +cmpeq $27,$25,$23 +beq $23,L.51 +br L.94 +L.51: +L.47: +mov $11,$27 +stq $27,-88+160($sp) +lda $11,1($27) +ldq $25,yysptr +lda $22,yysbuf +cmpule $25,$22,$23 +bne $23,L.61 +ldq $25,yysptr +lda $25,-1($25) +stq $25,yysptr +ldb $25,($25) +stl $25,-76+160($sp) +br L.62 +L.61: +ldq $25,yyin +ldl $22,($25) +subl $22,1,$22 +stl $22,($25) +cmplt $22,$31,$23 +beq $23,L.63 +ldq $16,yyin +jsr $26,_filbuf +ldgp $gp,0($26) +mov $0,$27 +stl $27,-80+160($sp) +br L.64 +L.63: +ldq $27,yyin +lda $27,8($27) +ldq $25,($27) +lda $22,1($25) +stq $22,($27) +ldbu $27,($25) +stl $27,-80+160($sp) +L.64: +ldl $27,-80+160($sp) +stl $27,-76+160($sp) +L.62: +ldl $27,-76+160($sp) +stl $27,yytchar +cmpeq $27,10,$23 +beq $23,L.59 +ldl $27,yylineno +lda $27,1($27) +stl $27,yylineno +ldl $27,yytchar +stl $27,-72+160($sp) +br L.60 +L.59: +ldl $27,yytchar +stl $27,-72+160($sp) +L.60: +ldl $27,-72+160($sp) +lda $25,-1 +cmpeq $27,$25,$23 +beq $23,L.57 +stl $31,-68+160($sp) +br L.58 +L.57: +ldl $27,yytchar +stl $27,-68+160($sp) +L.58: +ldl $27,-68+160($sp) +mov $27,$10 +ldq $25,-88+160($sp) +stb $27,($25) +L.65: +mov $12,$9 +mov $12,$27 +lda $25,yycrank +cmpule $27,$25,$23 +bne $23,L.66 +sll $10,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,1,$27 +addq $27,$9,$12 +mov $12,$27 +ldq $25,yytop +cmpule $27,$25,$23 +beq $23,L.67 +lda $27,24 +ldb $25,($12) +sll $25,8*(8-4),$25 +sra $25,8*(8-4),$25 +mulq $27,$25,$27 +lda $27,yysvec($27) +mov $14,$25 +cmpeq $27,$25,$23 +beq $23,L.67 +lda $27,yysvec +lda $25,24 +lda $22,1($12) +ldb $22,($22) +sll $22,8*(8-4),$22 +sra $22,8*(8-4),$22 +mulq $25,$22,$25 +lda $25,yysvec($25) +cmpeq $25,$27,$23 +beq $23,L.70 +lda $27,-1($11) +mov $27,$11 +ldb $27,($27) +stl $27,yytchar +ldl $27,yytchar +cmpeq $27,10,$23 +beq $23,L.72 +ldl $27,yylineno +subl $27,1,$27 +stl $27,yylineno +L.72: +ldq $27,yysptr +lda $25,1($27) +stq $25,yysptr +ldl $25,yytchar +stb $25,($27) +br L.94 +L.70: +mov $13,$27 +lda $13,8($27) +lda $25,24 +lda $22,1($12) +ldb $22,($22) +sll $22,8*(8-4),$22 +sra $22,8*(8-4),$22 +mulq $25,$22,$25 +lda $25,yysvec($25) +mov $25,$14 +stq $25,($27) +br L.43 +L.66: +mov $12,$27 +lda $25,yycrank +cmpult $27,$25,$23 +beq $23,L.75 +lda $27,yycrank +mov $12,$25 +subq $27,$25,$27 +divq $27,2,$27 +sll $27,1,$27 +lda $27,yycrank($27) +mov $27,$9 +mov $27,$12 +sll $10,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,1,$27 +addq $27,$12,$12 +mov $12,$27 +ldq $25,yytop +cmpule $27,$25,$23 +beq $23,L.77 +lda $27,24 +ldb $25,($12) +sll $25,8*(8-4),$25 +sra $25,8*(8-4),$25 +mulq $27,$25,$27 +lda $27,yysvec($27) +mov $14,$25 +cmpeq $27,$25,$23 +beq $23,L.77 +lda $27,yysvec +lda $25,24 +lda $22,1($12) +ldb $22,($22) +sll $22,8*(8-4),$22 +sra $22,8*(8-4),$22 +mulq $25,$22,$25 +lda $25,yysvec($25) +cmpeq $25,$27,$23 +beq $23,L.79 +lda $27,-1($11) +mov $27,$11 +ldb $27,($27) +stl $27,yytchar +ldl $27,yytchar +cmpeq $27,10,$23 +beq $23,L.81 +ldl $27,yylineno +subl $27,1,$27 +stl $27,yylineno +L.81: +ldq $27,yysptr +lda $25,1($27) +stq $25,yysptr +ldl $25,yytchar +stb $25,($27) +br L.94 +L.79: +mov $13,$27 +lda $13,8($27) +lda $25,24 +lda $22,1($12) +ldb $22,($22) +sll $22,8*(8-4),$22 +sra $22,8*(8-4),$22 +mulq $25,$22,$25 +lda $25,yysvec($25) +mov $25,$14 +stq $25,($27) +br L.43 +L.77: +lda $27,yymatch($10) +ldb $27,($27) +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,1,$27 +addq $27,$9,$12 +mov $12,$27 +ldq $25,yytop +cmpule $27,$25,$23 +beq $23,L.83 +lda $27,24 +ldb $25,($12) +sll $25,8*(8-4),$25 +sra $25,8*(8-4),$25 +mulq $27,$25,$27 +lda $27,yysvec($27) +mov $14,$25 +cmpeq $27,$25,$23 +beq $23,L.83 +lda $27,yysvec +lda $25,24 +lda $22,1($12) +ldb $22,($22) +sll $22,8*(8-4),$22 +sra $22,8*(8-4),$22 +mulq $25,$22,$25 +lda $25,yysvec($25) +cmpeq $25,$27,$23 +beq $23,L.85 +lda $27,-1($11) +mov $27,$11 +ldb $27,($27) +stl $27,yytchar +ldl $27,yytchar +cmpeq $27,10,$23 +beq $23,L.87 +ldl $27,yylineno +subl $27,1,$27 +stl $27,yylineno +L.87: +ldq $27,yysptr +lda $25,1($27) +stq $25,yysptr +ldl $25,yytchar +stb $25,($27) +br L.94 +L.85: +mov $13,$27 +lda $13,8($27) +lda $25,24 +lda $22,1($12) +ldb $22,($22) +sll $22,8*(8-4),$22 +sra $22,8*(8-4),$22 +mulq $25,$22,$25 +lda $25,yysvec($25) +mov $25,$14 +stq $25,($27) +br L.43 +L.83: +L.75: +L.67: +ldq $27,8($14) +mov $27,$14 +cmpeq $27,$31,$23 +bne $23,L.89 +ldq $27,($14) +mov $27,$12 +lda $25,yycrank +cmpeq $27,$25,$23 +bne $23,L.89 +br L.65 +L.89: +lda $27,-1($11) +mov $27,$11 +ldb $27,($27) +stl $27,yytchar +ldl $27,yytchar +cmpeq $27,10,$23 +beq $23,L.91 +ldl $27,yylineno +subl $27,1,$27 +stl $27,yylineno +L.91: +ldq $27,yysptr +lda $25,1($27) +stq $25,yysptr +ldl $25,yytchar +stb $25,($27) +br L.94 +L.93: +mov $11,$27 +lda $11,-1($27) +stb $31,($27) +ldq $27,($13) +mov $31,$25 +mov $27,$22 +cmpeq $22,$25,$23 +bne $23,L.96 +ldq $27,16($27) +stq $27,yyfnd +cmpeq $27,$25,$23 +bne $23,L.96 +ldq $27,yyfnd +ldl $27,($27) +cmple $27,$31,$23 +bne $23,L.96 +stq $13,yyolsp +ldq $27,yyfnd +ldl $27,($27) +lda $27,yyextra($27) +ldb $27,($27) +cmpeq $27,$31,$23 +bne $23,L.98 +br L.101 +L.100: +lda $13,-8($13) +mov $11,$27 +lda $11,-1($27) +ldb $27,($27) +stl $27,yytchar +ldl $27,yytchar +cmpeq $27,10,$23 +beq $23,L.103 +ldl $27,yylineno +subl $27,1,$27 +stl $27,yylineno +L.103: +ldq $27,yysptr +lda $25,1($27) +stq $25,yysptr +ldl $25,yytchar +stb $25,($27) +L.101: +ldq $27,($13) +ldq $16,16($27) +ldq $27,yyfnd +ldl $27,($27) +negl $27,$17 +jsr $26,yyback +ldgp $gp,0($26) +cmpeq $0,1,$23 +bne $23,L.105 +mov $13,$27 +lda $25,yylstate +cmpule $27,$25,$23 +beq $23,L.100 +L.105: +L.98: +ldb $27,($11) +stl $27,yyprevious +stq $13,yylsp +lda $27,yytext +mov $11,$25 +subq $25,$27,$27 +lda $27,1($27) +stl $27,yyleng +ldl $27,yyleng +stb $31,yytext($27) +ldq $27,yyfnd +lda $25,4($27) +stq $25,yyfnd +ldl $0,($27) +br L.34 +L.96: +ldb $27,($11) +stl $27,yytchar +ldl $27,yytchar +cmpeq $27,10,$23 +beq $23,L.106 +ldl $27,yylineno +subl $27,1,$27 +stl $27,yylineno +L.106: +ldq $27,yysptr +lda $25,1($27) +stq $25,yysptr +ldl $25,yytchar +stb $25,($27) +L.94: +mov $13,$27 +lda $13,-8($27) +lda $25,yylstate +cmpule $27,$25,$23 +beq $23,L.93 +lda $27,yytext +ldb $27,($27) +cmpeq $27,$31,$23 +beq $23,L.108 +lda $27,yysbuf +stq $27,yysptr +mov $31,$0 +br L.34 +L.108: +ldq $27,yysptr +lda $25,yysbuf +cmpule $27,$25,$23 +bne $23,L.118 +ldq $27,yysptr +lda $27,-1($27) +stq $27,yysptr +ldb $27,($27) +stl $27,-76+160($sp) +br L.119 +L.118: +ldq $27,yyin +ldl $25,($27) +subl $25,1,$25 +stl $25,($27) +cmplt $25,$31,$23 +beq $23,L.120 +ldq $16,yyin +jsr $26,_filbuf +ldgp $gp,0($26) +mov $0,$27 +stl $27,-80+160($sp) +br L.121 +L.120: +ldq $27,yyin +lda $27,8($27) +ldq $25,($27) +lda $22,1($25) +stq $22,($27) +ldbu $27,($25) +stl $27,-80+160($sp) +L.121: +ldl $27,-80+160($sp) +stl $27,-76+160($sp) +L.119: +ldl $27,-76+160($sp) +stl $27,yytchar +cmpeq $27,10,$23 +beq $23,L.116 +ldl $27,yylineno +lda $27,1($27) +stl $27,yylineno +ldl $27,yytchar +stl $27,-72+160($sp) +br L.117 +L.116: +ldl $27,yytchar +stl $27,-72+160($sp) +L.117: +ldl $27,-72+160($sp) +lda $25,-1 +cmpeq $27,$25,$23 +beq $23,L.114 +stl $31,-68+160($sp) +br L.115 +L.114: +ldl $27,yytchar +stl $27,-68+160($sp) +L.115: +ldl $27,-68+160($sp) +stb $27,yytext +sll $27,8*(8-1),$27 +sra $27,8*(8-1),$27 +stl $27,yyprevious +ldl $27,yyprevious +cmple $27,$31,$23 +bne $23,L.122 +ldq $27,yyout +ldl $25,($27) +subl $25,1,$25 +stl $25,($27) +cmplt $25,$31,$23 +beq $23,L.125 +ldl $27,yyprevious +and $27,(1<<(8*1))-1,$27 +mov $27,$16 +ldq $17,yyout +jsr $26,_flsbuf +ldgp $gp,0($26) +br L.126 +L.125: +ldq $27,yyout +lda $27,8($27) +ldq $25,($27) +lda $22,1($25) +stq $22,($27) +ldl $27,yyprevious +stb $27,($25) +L.126: +L.122: +lda $11,yytext +br L.37 +L.34: +ldq $9,0($sp) +ldq $10,8($sp) +ldq $11,16($sp) +ldq $12,24($sp) +ldq $13,32($sp) +ldq $14,40($sp) +ldq $24,48($sp) +ldq $26,56($sp) +lda $sp,160($sp) +ret +.end yylook +.globl yyback +.text +.ent yyback +yyback: +ldgp $gp,0($27) +lda $sp,-64($sp) +.frame $sp,64,$26,48 +.prologue 1 +mov $16,$27 +cmpeq $27,$31,$23 +beq $23,L.131 +mov $31,$0 +br L.127 +L.130: +mov $16,$27 +lda $16,4($27) +ldl $27,($27) +cmpeq $27,$17,$23 +beq $23,L.133 +lda $0,1 +br L.127 +L.133: +L.131: +ldl $27,($16) +cmpeq $27,$31,$23 +beq $23,L.130 +mov $31,$0 +L.127: +lda $sp,64($sp) +ret +.end yyback +.globl yyinput +.text +.ent yyinput +yyinput: +ldgp $gp,0($27) +lda $sp,-96($sp) +.mask 0x4007800,-64 +.frame $sp,96,$26,48 +stq $11,0($sp) +stq $12,8($sp) +stq $13,16($sp) +stq $14,24($sp) +stq $26,32($sp) +.prologue 1 +ldq $27,yysptr +lda $25,yysbuf +cmpule $27,$25,$23 +bne $23,L.144 +ldq $27,yysptr +lda $27,-1($27) +stq $27,yysptr +ldb $12,($27) +br L.145 +L.144: +ldq $27,yyin +ldl $25,($27) +subl $25,1,$25 +stl $25,($27) +cmplt $25,$31,$23 +beq $23,L.146 +ldq $16,yyin +jsr $26,_filbuf +ldgp $gp,0($26) +mov $0,$27 +mov $27,$11 +br L.147 +L.146: +ldq $27,yyin +lda $27,8($27) +ldq $25,($27) +lda $22,1($25) +stq $22,($27) +ldbu $11,($25) +L.147: +mov $11,$12 +L.145: +stl $12,yytchar +cmpeq $12,10,$23 +beq $23,L.142 +ldl $27,yylineno +lda $27,1($27) +stl $27,yylineno +ldl $13,yytchar +br L.143 +L.142: +ldl $13,yytchar +L.143: +lda $27,-1 +cmpeq $13,$27,$23 +beq $23,L.140 +mov $31,$14 +br L.141 +L.140: +ldl $14,yytchar +L.141: +mov $14,$0 +L.135: +ldq $11,0($sp) +ldq $12,8($sp) +ldq $13,16($sp) +ldq $14,24($sp) +ldq $26,32($sp) +lda $sp,96($sp) +ret +.end yyinput +.globl yyoutput +.text +.ent yyoutput +yyoutput: +ldgp $gp,0($27) +lda $sp,-80($sp) +.mask 0x5000000,-72 +.frame $sp,80,$26,48 +stq $24,0($sp) +stq $26,8($sp) +stq $16,32($sp) +.prologue 1 +ldq $27,yyout +ldl $25,($27) +subl $25,1,$25 +stl $25,($27) +cmplt $25,$31,$23 +beq $23,L.150 +ldl $27,-48+80($sp) +and $27,(1<<(8*1))-1,$27 +mov $27,$16 +ldq $17,yyout +jsr $26,_flsbuf +ldgp $gp,0($26) +br L.151 +L.150: +ldq $27,yyout +lda $27,8($27) +ldq $25,($27) +lda $22,1($25) +stq $22,($27) +ldl $27,-48+80($sp) +stb $27,($25) +L.151: +mov $31,$0 +L.148: +ldq $24,0($sp) +ldq $26,8($sp) +lda $sp,80($sp) +ret +.end yyoutput +.globl yyunput +.text +.ent yyunput +yyunput: +ldgp $gp,0($27) +lda $sp,-80($sp) +.mask 0x5000000,-72 +.frame $sp,80,$26,48 +stq $24,0($sp) +stq $26,8($sp) +.prologue 1 +stl $16,yytchar +ldl $27,yytchar +cmpeq $27,10,$23 +beq $23,L.153 +ldl $27,yylineno +subl $27,1,$27 +stl $27,yylineno +L.153: +ldq $27,yysptr +lda $25,1($27) +stq $25,yysptr +ldl $25,yytchar +stb $25,($27) +mov $31,$0 +L.152: +ldq $24,0($sp) +ldq $26,8($sp) +lda $sp,80($sp) +ret +.end yyunput +.globl main +.text +.ent main +main: +ldgp $gp,0($27) +lda $sp,-64($sp) +.mask 0x4000000,-64 +.frame $sp,64,$26,48 +stq $26,0($sp) +.prologue 1 +jsr $26,yyparse +ldgp $gp,0($26) +mov $31,$0 +L.155: +ldq $26,0($sp) +lda $sp,64($sp) +ret +.end main +.globl yyerror +.text +.ent yyerror +yyerror: +ldgp $gp,0($27) +lda $sp,-64($sp) +.mask 0x4000000,-64 +.frame $sp,64,$26,48 +stq $26,0($sp) +stq $16,16($sp) +.prologue 1 +lda $16,L.157 +ldq $17,-48+64($sp) +jsr $26,printf +ldgp $gp,0($26) +mov $31,$0 +L.156: +ldq $26,0($sp) +lda $sp,64($sp) +ret +.end yyerror +.sdata +.globl yyexca +.align 1 +yyexca: +.word 0xffff +.word 0x1 +.word 0x0 +.word 0xffff +.word 0xfffe +.word 0x0 +.globl yyact +.align 1 +yyact: +.word 0xc +.word 0x2 +.word 0x9 +.word 0x8 +.word 0x11 +.word 0xb +.word 0x19 +.word 0x11 +.word 0xf +.word 0x12 +.word 0x10 +.word 0xa +.word 0x12 +.word 0x11 +.word 0xf +.word 0x7 +.word 0x10 +.word 0xd +.word 0x12 +.word 0x5 +.word 0x3 +.word 0x1 +.word 0x0 +.word 0x13 +.word 0x14 +.word 0x0 +.word 0x0 +.word 0x15 +.word 0x16 +.word 0x17 +.word 0x18 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x6 +.word 0xe +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x4 +.word 0x6 +.globl yypact +.align 1 +yypact: +.word 0xfc18 +.word 0xfff7 +.word 0xfc18 +.word 0x5 +.word 0xfff9 +.word 0xffc5 +.word 0xfc18 +.word 0xfc18 +.word 0xfc18 +.word 0xffd8 +.word 0xffe3 +.word 0xffd8 +.word 0xffd8 +.word 0xfc18 +.word 0xfc18 +.word 0xffd8 +.word 0xffd8 +.word 0xffd8 +.word 0xffd8 +.word 0xffda +.word 0xffdd +.word 0xffda +.word 0xffda +.word 0xfc18 +.word 0xfc18 +.word 0xfc18 +.globl yypgo +.align 1 +yypgo: +.word 0x0 +.word 0x15 +.word 0x14 +.word 0x11 +.word 0xb +.globl yyr1 +.align 1 +yyr1: +.word 0x0 +.word 0x1 +.word 0x1 +.word 0x1 +.word 0x1 +.word 0x2 +.word 0x4 +.word 0x4 +.word 0x4 +.word 0x4 +.word 0x4 +.word 0x4 +.word 0x4 +.word 0x4 +.word 0x3 +.globl yyr2 +.align 1 +yyr2: +.word 0x0 +.word 0x0 +.word 0x2 +.word 0x3 +.word 0x3 +.word 0x3 +.word 0x3 +.word 0x3 +.word 0x3 +.word 0x3 +.word 0x2 +.word 0x3 +.word 0x1 +.word 0x1 +.word 0x1 +.globl yychk +.align 1 +yychk: +.word 0xfc18 +.word 0xffff +.word 0xa +.word 0xfffe +.word 0x100 +.word 0xfffd +.word 0x101 +.word 0xa +.word 0xa +.word 0x3d +.word 0xfffc +.word 0x2d +.word 0x28 +.word 0xfffd +.word 0x102 +.word 0x2b +.word 0x2d +.word 0x2a +.word 0x2f +.word 0xfffc +.word 0xfffc +.word 0xfffc +.word 0xfffc +.word 0xfffc +.word 0xfffc +.word 0x29 +.globl yydef +.align 1 +yydef: +.word 0x1 +.word 0xfffe +.word 0x2 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0xe +.word 0x3 +.word 0x4 +.word 0x0 +.word 0x5 +.word 0x0 +.word 0x0 +.word 0xc +.word 0xd +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0xa +.word 0x0 +.word 0x6 +.word 0x7 +.word 0x8 +.word 0x9 +.word 0xb +.globl yychar +.align 2 +yychar: +.long 0xffffffff +.globl yynerrs +.align 2 +yynerrs: +.long 0x0 +.globl yyerrflag +.align 1 +yyerrflag: +.word 0x0 +.globl yyparse +.text +.text +.ent yyparse +yyparse: +ldgp $gp,0($27) +lda $sp,-432($sp) +.mask 0x5007e00,-376 +.frame $sp,432,$26,48 +stq $9,0($sp) +stq $10,8($sp) +stq $11,16($sp) +stq $12,24($sp) +stq $13,32($sp) +stq $14,40($sp) +stq $24,48($sp) +stq $26,56($sp) +.prologue 1 +mov $31,$27 +mov $27,$13 +lda $25,-1 +stl $25,yychar +stl $31,yynerrs +stw $27,yyerrflag +lda $12,-360+432($sp) +lda $10,yyv-4 +L.161: +lda $27,2($12) +mov $27,$12 +lda $25,-58+432($sp) +cmpule $27,$25,$23 +bne $23,L.162 +lda $16,L.165 +jsr $26,yyerror +ldgp $gp,0($26) +lda $0,1 +br L.158 +L.162: +stw $13,($12) +lda $10,4($10) +ldl $27,yyval +stl $27,($10) +L.166: +sll $13,8*(8-2),$27 +sra $27,8*(8-2),$27 +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,1,$27 +lda $27,yypact($27) +ldw $11,($27) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +lda $25,-1000 +cmple $27,$25,$23 +beq $23,L.167 +br L.169 +L.167: +ldl $27,yychar +cmplt $27,$31,$23 +beq $23,L.170 +jsr $26,yylex +ldgp $gp,0($26) +stl $0,yychar +cmplt $0,$31,$23 +beq $23,L.172 +stl $31,yychar +L.172: +L.170: +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +ldl $25,yychar +addl $27,$25,$27 +mov $27,$11 +sll $27,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmplt $27,$31,$23 +bne $23,L.176 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +lda $25,249 +cmplt $27,$25,$23 +bne $23,L.174 +L.176: +br L.169 +L.174: +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,1,$27 +lda $27,yyact($27) +ldw $27,($27) +mov $27,$11 +sll $27,8*(8-2),$27 +sra $27,8*(8-2),$27 +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,1,$27 +lda $27,yychk($27) +ldw $27,($27) +ldl $25,yychar +cmpeq $27,$25,$23 +beq $23,L.177 +lda $27,-1 +stl $27,yychar +ldl $27,yylval +stl $27,yyval +mov $11,$13 +lda $27,yyerrflag +ldw $27,($27) +cmple $27,$31,$23 +bne $23,L.161 +lda $27,yyerrflag +ldw $27,($27) +subl $27,1,$27 +stw $27,yyerrflag +br L.161 +L.177: +L.169: +sll $13,8*(8-2),$27 +sra $27,8*(8-2),$27 +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,1,$27 +lda $27,yydef($27) +ldw $27,($27) +mov $27,$11 +sll $27,8*(8-2),$27 +sra $27,8*(8-2),$27 +lda $25,-2 +cmpeq $27,$25,$23 +beq $23,L.181 +ldl $27,yychar +cmplt $27,$31,$23 +beq $23,L.183 +jsr $26,yylex +ldgp $gp,0($26) +stl $0,yychar +cmplt $0,$31,$23 +beq $23,L.185 +stl $31,yychar +L.185: +L.183: +lda $9,yyexca +br L.190 +L.187: +L.188: +lda $9,4($9) +L.190: +ldw $27,($9) +lda $25,-1 +cmpeq $27,$25,$23 +beq $23,L.187 +lda $27,2($9) +ldw $27,($27) +sll $13,8*(8-2),$25 +sra $25,8*(8-2),$25 +cmpeq $27,$25,$23 +beq $23,L.187 +br L.192 +L.191: +ldw $27,($9) +ldl $25,yychar +cmpeq $27,$25,$23 +beq $23,L.194 +br L.193 +L.194: +L.192: +lda $27,4($9) +mov $27,$9 +ldw $27,($27) +cmplt $27,$31,$23 +beq $23,L.191 +L.193: +lda $27,2($9) +ldw $27,($27) +mov $27,$11 +sll $27,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmplt $27,$31,$23 +beq $23,L.196 +mov $31,$0 +br L.158 +L.196: +L.181: +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmpeq $27,$31,$23 +beq $23,L.198 +lda $27,yyerrflag +ldw $27,($27) +stl $27,-364+432($sp) +ldl $27,-364+432($sp) +cmplt $27,$31,$23 +bne $23,L.200 +cmple $27,3,$23 +beq $23,L.200 +sll $27,3,$27 +ldq $27,L.216($27) +jmp ($27) +.rdata +.align 3 +L.216: +.quad L.203 +.quad L.206 +.quad L.206 +.quad L.213 +.text +L.203: +lda $16,L.204 +jsr $26,yyerror +ldgp $gp,0($26) +L.205: +ldl $27,yynerrs +lda $27,1($27) +stl $27,yynerrs +L.206: +lda $27,3 +stw $27,yyerrflag +br L.208 +L.207: +ldw $27,($12) +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,1,$27 +lda $27,yypact($27) +ldw $27,($27) +lda $27,256($27) +mov $27,$11 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +cmplt $27,$31,$23 +bne $23,L.210 +lda $25,249 +cmplt $27,$25,$23 +beq $23,L.210 +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,1,$27 +lda $27,yyact($27) +ldw $27,($27) +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,1,$27 +lda $27,yychk($27) +ldw $27,($27) +lda $25,256 +cmpeq $27,$25,$23 +beq $23,L.210 +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,1,$27 +lda $27,yyact($27) +ldw $13,($27) +br L.161 +L.210: +ldw $27,($12) +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,1,$27 +lda $27,yypact($27) +ldw $11,($27) +lda $12,-2($12) +lda $10,-4($10) +L.208: +mov $12,$27 +lda $25,-358+432($sp) +cmpult $27,$25,$23 +beq $23,L.207 +L.212: +lda $0,1 +br L.158 +L.213: +ldl $27,yychar +cmpeq $27,$31,$23 +beq $23,L.214 +br L.212 +L.214: +lda $27,-1 +stl $27,yychar +br L.166 +L.200: +L.198: +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,1,$27 +lda $25,yyr2($27) +ldw $22,($25) +sll $22,8*(8-4),$22 +sra $22,8*(8-4),$22 +sll $22,1,$22 +subq $12,$22,$12 +mov $10,$14 +ldw $25,($25) +sll $25,8*(8-4),$25 +sra $25,8*(8-4),$25 +sll $25,2,$25 +subq $10,$25,$10 +ldl $25,4($10) +stl $25,yyval +stw $11,-360+432($sp) +lda $27,yyr1($27) +ldw $11,($27) +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,1,$27 +lda $27,yypgo($27) +ldw $27,($27) +ldw $25,($12) +addl $27,$25,$27 +lda $27,1($27) +stw $27,-58+432($sp) +lda $27,-58+432($sp) +ldw $27,($27) +lda $25,249 +cmplt $27,$25,$23 +beq $23,L.219 +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,1,$27 +lda $27,yyact($27) +ldw $27,($27) +mov $27,$13 +sll $27,8*(8-2),$27 +sra $27,8*(8-2),$27 +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,1,$27 +lda $27,yychk($27) +ldw $27,($27) +sll $11,8*(8-2),$25 +sra $25,8*(8-2),$25 +negl $25,$25 +cmpeq $27,$25,$23 +bne $23,L.217 +L.219: +sll $11,8*(8-2),$27 +sra $27,8*(8-2),$27 +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,1,$27 +lda $27,yypgo($27) +ldw $27,($27) +sll $27,8*(8-4),$27 +sra $27,8*(8-4),$27 +sll $27,1,$27 +lda $27,yyact($27) +ldw $13,($27) +L.217: +lda $27,-360+432($sp) +ldw $27,($27) +stl $27,-364+432($sp) +ldl $27,-364+432($sp) +cmplt $27,4,$23 +bne $23,L.161 +cmple $27,14,$23 +beq $23,L.161 +subl $27,4,$27 +sll $27,3,$27 +ldq $27,L.241($27) +jmp ($27) +.rdata +.align 3 +L.241: +.quad L.223 +.quad L.224 +.quad L.226 +.quad L.228 +.quad L.230 +.quad L.232 +.quad L.234 +.quad L.161 +.quad L.236 +.quad L.238 +.quad L.240 +.text +L.223: +stw $31,yyerrflag +br L.161 +L.224: +lda $16,L.225 +jsr $26,printf +ldgp $gp,0($26) +br L.161 +L.226: +lda $16,L.227 +jsr $26,printf +ldgp $gp,0($26) +br L.161 +L.228: +lda $16,L.229 +jsr $26,printf +ldgp $gp,0($26) +br L.161 +L.230: +lda $16,L.231 +jsr $26,printf +ldgp $gp,0($26) +br L.161 +L.232: +lda $16,L.233 +jsr $26,printf +ldgp $gp,0($26) +br L.161 +L.234: +lda $16,L.235 +jsr $26,printf +ldgp $gp,0($26) +br L.161 +L.236: +lda $16,L.237 +jsr $26,printf +ldgp $gp,0($26) +br L.161 +L.238: +lda $16,L.239 +lda $17,yytext +jsr $26,printf +ldgp $gp,0($26) +br L.161 +L.240: +lda $16,L.157 +lda $17,yytext +jsr $26,printf +ldgp $gp,0($26) +br L.161 +L.158: +ldq $9,0($sp) +ldq $10,8($sp) +ldq $11,16($sp) +ldq $12,24($sp) +ldq $13,32($sp) +ldq $14,40($sp) +ldq $24,48($sp) +ldq $26,56($sp) +lda $sp,432($sp) +ret +.end yyparse +.globl yywrap +.text +.ent yywrap +yywrap: +ldgp $gp,0($27) +lda $sp,-64($sp) +.frame $sp,64,$26,48 +.prologue 1 +lda $0,1 +L.242: +lda $sp,64($sp) +ret +.end yywrap +.globl yyv +.comm yyv,600 +.globl yyfnd +.comm yyfnd,8 +.globl yyolsp +.comm yyolsp,8 +.globl yylsp +.comm yylsp,8 +.globl yylstate +.comm yylstate,1600 +.globl yyestate +.comm yyestate,8 +.globl yytchar +.comm yytchar,4 +.globl yysbuf +.comm yysbuf,200 +.globl yymorfg +.comm yymorfg,4 +.globl yytext +.comm yytext,200 +.globl yyleng +.comm yyleng,4 +.extern _iob 0 +.globl yyval +.comm yyval,4 +.globl yylval +.comm yylval,4 +.rdata +.align 0 +L.239: +.byte 112 +.byte 117 +.byte 115 +.byte 104 +.byte 32 +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 0 +L.237: +.byte 108 +.byte 111 +.byte 97 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.235: +.byte 110 +.byte 101 +.byte 103 +.byte 97 +.byte 116 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.233: +.byte 100 +.byte 105 +.byte 118 +.byte 105 +.byte 100 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.231: +.byte 109 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 121 +.byte 10 +.byte 0 +.align 0 +L.229: +.byte 110 +.byte 101 +.byte 103 +.byte 97 +.byte 116 +.byte 101 +.byte 10 +.byte 97 +.byte 100 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.227: +.byte 97 +.byte 100 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.225: +.byte 115 +.byte 116 +.byte 111 +.byte 114 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.204: +.byte 115 +.byte 121 +.byte 110 +.byte 116 +.byte 97 +.byte 120 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 0 +.align 0 +L.165: +.byte 121 +.byte 97 +.byte 99 +.byte 99 +.byte 32 +.byte 115 +.byte 116 +.byte 97 +.byte 99 +.byte 107 +.byte 32 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 0 +.align 0 +L.157: +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 0 +L.18: +.byte 98 +.byte 97 +.byte 100 +.byte 32 +.byte 115 +.byte 119 +.byte 105 +.byte 116 +.byte 99 +.byte 104 +.byte 32 +.byte 121 +.byte 121 +.byte 108 +.byte 111 +.byte 111 +.byte 107 +.byte 32 +.byte 37 +.byte 100 +.byte 0 diff --git a/code/tools/lcc/bin/lcc.exe b/code/tools/lcc/bin/lcc.exe new file mode 100644 index 0000000..4e52b30 Binary files /dev/null and b/code/tools/lcc/bin/lcc.exe differ diff --git a/code/tools/lcc/bin/q3cpp.exe b/code/tools/lcc/bin/q3cpp.exe new file mode 100644 index 0000000..e03aee0 Binary files /dev/null and b/code/tools/lcc/bin/q3cpp.exe differ diff --git a/code/tools/lcc/bin/q3rcc.exe b/code/tools/lcc/bin/q3rcc.exe new file mode 100644 index 0000000..f545d5d Binary files /dev/null and b/code/tools/lcc/bin/q3rcc.exe differ diff --git a/code/tools/lcc/buildnt.bat b/code/tools/lcc/buildnt.bat new file mode 100644 index 0000000..16dc72f --- /dev/null +++ b/code/tools/lcc/buildnt.bat @@ -0,0 +1,3 @@ +call vcvars32 +set BUILDDIR=bin +nmake -f makefile.nt all diff --git a/code/tools/lcc/buildnt.sh b/code/tools/lcc/buildnt.sh new file mode 100644 index 0000000..665d5ff --- /dev/null +++ b/code/tools/lcc/buildnt.sh @@ -0,0 +1,4 @@ +#!/bin/sh +export BUILDDIR=.\\out +mkdir out +nmake -f makefile.nt all diff --git a/code/tools/lcc/cpp/cpp.c b/code/tools/lcc/cpp/cpp.c new file mode 100644 index 0000000..6739e4d --- /dev/null +++ b/code/tools/lcc/cpp/cpp.c @@ -0,0 +1,322 @@ +#include +#include +#include +#include +#include +#include "cpp.h" + +char rcsid[] = "cpp.c - faked rcsid"; + +#define OUTS 16384 +char outbuf[OUTS]; +char *outp = outbuf; +Source *cursource; +int nerrs; +struct token nltoken = { NL, 0, 0, 0, 1, (uchar*)"\n" }; +char *curtime; +int incdepth; +int ifdepth; +int ifsatisfied[NIF]; +int skipping; + + +int +main(int argc, char **argv) +{ + Tokenrow tr; + time_t t; + char ebuf[BUFSIZ]; + + setbuf(stderr, ebuf); + t = time(NULL); + curtime = ctime(&t); + maketokenrow(3, &tr); + expandlex(); + setup(argc, argv); + fixlex(); + iniths(); + genline(); + process(&tr); + flushout(); + fflush(stderr); + exit(nerrs > 0); + return 0; +} + +void +process(Tokenrow *trp) +{ + int anymacros = 0; + + for (;;) { + if (trp->tp >= trp->lp) { + trp->tp = trp->lp = trp->bp; + outp = outbuf; + anymacros |= gettokens(trp, 1); + trp->tp = trp->bp; + } + if (trp->tp->type == END) { + if (--incdepth>=0) { + if (cursource->ifdepth) + error(ERROR, + "Unterminated conditional in #include"); + unsetsource(); + cursource->line += cursource->lineinc; + trp->tp = trp->lp; + genline(); + continue; + } + if (ifdepth) + error(ERROR, "Unterminated #if/#ifdef/#ifndef"); + break; + } + if (trp->tp->type==SHARP) { + trp->tp += 1; + control(trp); + } else if (!skipping && anymacros) + expandrow(trp, NULL); + if (skipping) + setempty(trp); + puttokens(trp); + anymacros = 0; + cursource->line += cursource->lineinc; + if (cursource->lineinc>1) { + genline(); + } + } +} + +void +control(Tokenrow *trp) +{ + Nlist *np; + Token *tp; + + tp = trp->tp; + if (tp->type!=NAME) { + if (tp->type==NUMBER) + goto kline; + if (tp->type != NL) + error(ERROR, "Unidentifiable control line"); + return; /* else empty line */ + } + if ((np = lookup(tp, 0))==NULL || ((np->flag&ISKW)==0 && !skipping)) { + error(WARNING, "Unknown preprocessor control %t", tp); + return; + } + if (skipping) { + switch (np->val) { + case KENDIF: + if (--ifdepthifdepth; + setempty(trp); + return; + + case KIFDEF: + case KIFNDEF: + case KIF: + if (++ifdepth >= NIF) + error(FATAL, "#if too deeply nested"); + ++cursource->ifdepth; + return; + + case KELIF: + case KELSE: + if (ifdepth<=skipping) + break; + return; + + default: + return; + } + } + switch (np->val) { + case KDEFINE: + dodefine(trp); + break; + + case KUNDEF: + tp += 1; + if (tp->type!=NAME || trp->lp - trp->bp != 4) { + error(ERROR, "Syntax error in #undef"); + break; + } + if ((np = lookup(tp, 0)) != NULL) + np->flag &= ~ISDEFINED; + break; + + case KPRAGMA: + return; + + case KIFDEF: + case KIFNDEF: + case KIF: + if (++ifdepth >= NIF) + error(FATAL, "#if too deeply nested"); + ++cursource->ifdepth; + ifsatisfied[ifdepth] = 0; + if (eval(trp, np->val)) + ifsatisfied[ifdepth] = 1; + else + skipping = ifdepth; + break; + + case KELIF: + if (ifdepth==0) { + error(ERROR, "#elif with no #if"); + return; + } + if (ifsatisfied[ifdepth]==2) + error(ERROR, "#elif after #else"); + if (eval(trp, np->val)) { + if (ifsatisfied[ifdepth]) + skipping = ifdepth; + else { + skipping = 0; + ifsatisfied[ifdepth] = 1; + } + } else + skipping = ifdepth; + break; + + case KELSE: + if (ifdepth==0 || cursource->ifdepth==0) { + error(ERROR, "#else with no #if"); + return; + } + if (ifsatisfied[ifdepth]==2) + error(ERROR, "#else after #else"); + if (trp->lp - trp->bp != 3) + error(ERROR, "Syntax error in #else"); + skipping = ifsatisfied[ifdepth]? ifdepth: 0; + ifsatisfied[ifdepth] = 2; + break; + + case KENDIF: + if (ifdepth==0 || cursource->ifdepth==0) { + error(ERROR, "#endif with no #if"); + return; + } + --ifdepth; + --cursource->ifdepth; + if (trp->lp - trp->bp != 3) + error(WARNING, "Syntax error in #endif"); + break; + + case KERROR: + trp->tp = tp+1; + error(WARNING, "#error directive: %r", trp); + break; + + case KLINE: + trp->tp = tp+1; + expandrow(trp, ""); + tp = trp->bp+2; + kline: + if (tp+1>=trp->lp || tp->type!=NUMBER || tp+3lp + || ((tp+3==trp->lp && ((tp+1)->type!=STRING))||*(tp+1)->t=='L')){ + error(ERROR, "Syntax error in #line"); + return; + } + cursource->line = atol((char*)tp->t)-1; + if (cursource->line<0 || cursource->line>=32768) + error(WARNING, "#line specifies number out of range"); + tp = tp+1; + if (tp+1lp) + cursource->filename=(char*)newstring(tp->t+1,tp->len-2,0); + return; + + case KDEFINED: + error(ERROR, "Bad syntax for control line"); + break; + + case KINCLUDE: + doinclude(trp); + trp->lp = trp->bp; + return; + + case KEVAL: + eval(trp, np->val); + break; + + default: + error(ERROR, "Preprocessor control `%t' not yet implemented", tp); + break; + } + setempty(trp); + return; +} + +void * +domalloc(int size) +{ + void *p = malloc(size); + + if (p==NULL) + error(FATAL, "Out of memory from malloc"); + return p; +} + +void +dofree(void *p) +{ + free(p); +} + +void +error(enum errtype type, char *string, ...) +{ + va_list ap; + char *cp, *ep; + Token *tp; + Tokenrow *trp; + Source *s; + int i; + + fprintf(stderr, "cpp: "); + for (s=cursource; s; s=s->next) + if (*s->filename) + fprintf(stderr, "%s:%d ", s->filename, s->line); + va_start(ap, string); + for (ep=string; *ep; ep++) { + if (*ep=='%') { + switch (*++ep) { + + case 's': + cp = va_arg(ap, char *); + fprintf(stderr, "%s", cp); + break; + case 'd': + i = va_arg(ap, int); + fprintf(stderr, "%d", i); + break; + case 't': + tp = va_arg(ap, Token *); + fprintf(stderr, "%.*s", tp->len, tp->t); + break; + + case 'r': + trp = va_arg(ap, Tokenrow *); + for (tp=trp->tp; tplp&&tp->type!=NL; tp++) { + if (tp>trp->tp && tp->wslen) + fputc(' ', stderr); + fprintf(stderr, "%.*s", tp->len, tp->t); + } + break; + + default: + fputc(*ep, stderr); + break; + } + } else + fputc(*ep, stderr); + } + va_end(ap); + fputc('\n', stderr); + if (type==FATAL) + exit(1); + if (type!=WARNING) + nerrs = 1; + fflush(stderr); +} diff --git a/code/tools/lcc/cpp/cpp.h b/code/tools/lcc/cpp/cpp.h new file mode 100644 index 0000000..d72f24a --- /dev/null +++ b/code/tools/lcc/cpp/cpp.h @@ -0,0 +1,163 @@ +#define INS 32768 /* input buffer */ +#define OBS 4096 /* outbut buffer */ +#define NARG 32 /* Max number arguments to a macro */ +#define NINCLUDE 32 /* Max number of include directories (-I) */ +#define NIF 32 /* depth of nesting of #if */ +#ifndef EOF +#define EOF (-1) +#endif +#ifndef NULL +#define NULL 0 +#endif + +#ifndef __alpha +typedef unsigned char uchar; +#endif + +enum toktype { END, UNCLASS, NAME, NUMBER, STRING, CCON, NL, WS, DSHARP, + EQ, NEQ, LEQ, GEQ, LSH, RSH, LAND, LOR, PPLUS, MMINUS, + ARROW, SBRA, SKET, LP, RP, DOT, AND, STAR, PLUS, MINUS, + TILDE, NOT, SLASH, PCT, LT, GT, CIRC, OR, QUEST, + COLON, ASGN, COMMA, SHARP, SEMIC, CBRA, CKET, + ASPLUS, ASMINUS, ASSTAR, ASSLASH, ASPCT, ASCIRC, ASLSH, + ASRSH, ASOR, ASAND, ELLIPS, + DSHARP1, NAME1, DEFINED, UMINUS }; + +enum kwtype { KIF, KIFDEF, KIFNDEF, KELIF, KELSE, KENDIF, KINCLUDE, KDEFINE, + KUNDEF, KLINE, KERROR, KPRAGMA, KDEFINED, + KLINENO, KFILE, KDATE, KTIME, KSTDC, KEVAL }; + +#define ISDEFINED 01 /* has #defined value */ +#define ISKW 02 /* is PP keyword */ +#define ISUNCHANGE 04 /* can't be #defined in PP */ +#define ISMAC 010 /* builtin macro, e.g. __LINE__ */ + +#define EOB 0xFE /* sentinel for end of input buffer */ +#define EOFC 0xFD /* sentinel for end of input file */ +#define XPWS 1 /* token flag: white space to assure token sep. */ + +typedef struct token { + unsigned char type; + unsigned char flag; + unsigned short hideset; + unsigned int wslen; + unsigned int len; + uchar *t; +} Token; + +typedef struct tokenrow { + Token *tp; /* current one to scan */ + Token *bp; /* base (allocated value) */ + Token *lp; /* last+1 token used */ + int max; /* number allocated */ +} Tokenrow; + +typedef struct source { + char *filename; /* name of file of the source */ + int line; /* current line number */ + int lineinc; /* adjustment for \\n lines */ + uchar *inb; /* input buffer */ + uchar *inp; /* input pointer */ + uchar *inl; /* end of input */ + int fd; /* input source */ + int ifdepth; /* conditional nesting in include */ + struct source *next; /* stack for #include */ +} Source; + +typedef struct nlist { + struct nlist *next; + uchar *name; + int len; + Tokenrow *vp; /* value as macro */ + Tokenrow *ap; /* list of argument names, if any */ + char val; /* value as preprocessor name */ + char flag; /* is defined, is pp name */ +} Nlist; + +typedef struct includelist { + char deleted; + char always; + char *file; +} Includelist; + +#define new(t) (t *)domalloc(sizeof(t)) +#define quicklook(a,b) (namebit[(a)&077] & (1<<((b)&037))) +#define quickset(a,b) namebit[(a)&077] |= (1<<((b)&037)) +extern unsigned long namebit[077+1]; + +enum errtype { WARNING, ERROR, FATAL }; + +void expandlex(void); +void fixlex(void); +void setup(int, char **); +int gettokens(Tokenrow *, int); +int comparetokens(Tokenrow *, Tokenrow *); +Source *setsource(char *, int, char *); +void unsetsource(void); +void puttokens(Tokenrow *); +void process(Tokenrow *); +void *domalloc(int); +void dofree(void *); +void error(enum errtype, char *, ...); +void flushout(void); +int fillbuf(Source *); +int trigraph(Source *); +int foldline(Source *); +Nlist *lookup(Token *, int); +void control(Tokenrow *); +void dodefine(Tokenrow *); +void doadefine(Tokenrow *, int); +void doinclude(Tokenrow *); +void doif(Tokenrow *, enum kwtype); +void expand(Tokenrow *, Nlist *); +void builtin(Tokenrow *, int); +int gatherargs(Tokenrow *, Tokenrow **, int *); +void substargs(Nlist *, Tokenrow *, Tokenrow **); +void expandrow(Tokenrow *, char *); +void maketokenrow(int, Tokenrow *); +Tokenrow *copytokenrow(Tokenrow *, Tokenrow *); +Token *growtokenrow(Tokenrow *); +Tokenrow *normtokenrow(Tokenrow *); +void adjustrow(Tokenrow *, int); +void movetokenrow(Tokenrow *, Tokenrow *); +void insertrow(Tokenrow *, int, Tokenrow *); +void peektokens(Tokenrow *, char *); +void doconcat(Tokenrow *); +Tokenrow *stringify(Tokenrow *); +int lookuparg(Nlist *, Token *); +long eval(Tokenrow *, int); +void genline(void); +void setempty(Tokenrow *); +void makespace(Tokenrow *); +char *outnum(char *, int); +int digit(int); +uchar *newstring(uchar *, int, int); +int checkhideset(int, Nlist *); +void prhideset(int); +int newhideset(int, Nlist *); +int unionhideset(int, int); +void iniths(void); +void setobjname(char *); +#define rowlen(tokrow) ((tokrow)->lp - (tokrow)->bp) + +extern char *outp; +extern Token nltoken; +extern Source *cursource; +extern char *curtime; +extern int incdepth; +extern int ifdepth; +extern int ifsatisfied[NIF]; +extern int Mflag; +extern int skipping; +extern int verbose; +extern int Cplusplus; +extern Nlist *kwdefined; +extern Includelist includelist[NINCLUDE]; +extern char wd[]; + +extern int creat(char *, int); +extern int open(char *, int); +extern int close(int); +extern int dup2(int, int); +extern int write(int, char *, size_t); +extern int read(int, char *, size_t); diff --git a/code/tools/lcc/cpp/eval.c b/code/tools/lcc/cpp/eval.c new file mode 100644 index 0000000..7061eff --- /dev/null +++ b/code/tools/lcc/cpp/eval.c @@ -0,0 +1,520 @@ +#include +#include +#include "cpp.h" + +#define NSTAK 32 +#define SGN 0 +#define UNS 1 +#define UND 2 + +#define UNSMARK 0x1000 + +struct value { + long val; + int type; +}; + +/* conversion types */ +#define RELAT 1 +#define ARITH 2 +#define LOGIC 3 +#define SPCL 4 +#define SHIFT 5 +#define UNARY 6 + +/* operator priority, arity, and conversion type, indexed by tokentype */ +struct pri { + char pri; + char arity; + char ctype; +} priority[] = { + { 0, 0, 0 }, /* END */ + { 0, 0, 0 }, /* UNCLASS */ + { 0, 0, 0 }, /* NAME */ + { 0, 0, 0 }, /* NUMBER */ + { 0, 0, 0 }, /* STRING */ + { 0, 0, 0 }, /* CCON */ + { 0, 0, 0 }, /* NL */ + { 0, 0, 0 }, /* WS */ + { 0, 0, 0 }, /* DSHARP */ + { 11, 2, RELAT }, /* EQ */ + { 11, 2, RELAT }, /* NEQ */ + { 12, 2, RELAT }, /* LEQ */ + { 12, 2, RELAT }, /* GEQ */ + { 13, 2, SHIFT }, /* LSH */ + { 13, 2, SHIFT }, /* RSH */ + { 7, 2, LOGIC }, /* LAND */ + { 6, 2, LOGIC }, /* LOR */ + { 0, 0, 0 }, /* PPLUS */ + { 0, 0, 0 }, /* MMINUS */ + { 0, 0, 0 }, /* ARROW */ + { 0, 0, 0 }, /* SBRA */ + { 0, 0, 0 }, /* SKET */ + { 3, 0, 0 }, /* LP */ + { 3, 0, 0 }, /* RP */ + { 0, 0, 0 }, /* DOT */ + { 10, 2, ARITH }, /* AND */ + { 15, 2, ARITH }, /* STAR */ + { 14, 2, ARITH }, /* PLUS */ + { 14, 2, ARITH }, /* MINUS */ + { 16, 1, UNARY }, /* TILDE */ + { 16, 1, UNARY }, /* NOT */ + { 15, 2, ARITH }, /* SLASH */ + { 15, 2, ARITH }, /* PCT */ + { 12, 2, RELAT }, /* LT */ + { 12, 2, RELAT }, /* GT */ + { 9, 2, ARITH }, /* CIRC */ + { 8, 2, ARITH }, /* OR */ + { 5, 2, SPCL }, /* QUEST */ + { 5, 2, SPCL }, /* COLON */ + { 0, 0, 0 }, /* ASGN */ + { 4, 2, 0 }, /* COMMA */ + { 0, 0, 0 }, /* SHARP */ + { 0, 0, 0 }, /* SEMIC */ + { 0, 0, 0 }, /* CBRA */ + { 0, 0, 0 }, /* CKET */ + { 0, 0, 0 }, /* ASPLUS */ + { 0, 0, 0 }, /* ASMINUS */ + { 0, 0, 0 }, /* ASSTAR */ + { 0, 0, 0 }, /* ASSLASH */ + { 0, 0, 0 }, /* ASPCT */ + { 0, 0, 0 }, /* ASCIRC */ + { 0, 0, 0 }, /* ASLSH */ + { 0, 0, 0 }, /* ASRSH */ + { 0, 0, 0 }, /* ASOR */ + { 0, 0, 0 }, /* ASAND */ + { 0, 0, 0 }, /* ELLIPS */ + { 0, 0, 0 }, /* DSHARP1 */ + { 0, 0, 0 }, /* NAME1 */ + { 16, 1, UNARY }, /* DEFINED */ + { 16, 0, UNARY }, /* UMINUS */ +}; + +int evalop(struct pri); +struct value tokval(Token *); +struct value vals[NSTAK], *vp; +enum toktype ops[NSTAK], *op; + +/* + * Evaluate an #if #elif #ifdef #ifndef line. trp->tp points to the keyword. + */ +long +eval(Tokenrow *trp, int kw) +{ + Token *tp; + Nlist *np; + int ntok, rand; + + trp->tp++; + if (kw==KIFDEF || kw==KIFNDEF) { + if (trp->lp - trp->bp != 4 || trp->tp->type!=NAME) { + error(ERROR, "Syntax error in #ifdef/#ifndef"); + return 0; + } + np = lookup(trp->tp, 0); + return (kw==KIFDEF) == (np && np->flag&(ISDEFINED|ISMAC)); + } + ntok = trp->tp - trp->bp; + kwdefined->val = KDEFINED; /* activate special meaning of defined */ + expandrow(trp, ""); + kwdefined->val = NAME; + vp = vals; + op = ops; + *op++ = END; + for (rand=0, tp = trp->bp+ntok; tp < trp->lp; tp++) { + switch(tp->type) { + case WS: + case NL: + continue; + + /* nilary */ + case NAME: + case NAME1: + case NUMBER: + case CCON: + case STRING: + if (rand) + goto syntax; + *vp++ = tokval(tp); + rand = 1; + continue; + + /* unary */ + case DEFINED: + case TILDE: + case NOT: + if (rand) + goto syntax; + *op++ = tp->type; + continue; + + /* unary-binary */ + case PLUS: case MINUS: case STAR: case AND: + if (rand==0) { + if (tp->type==MINUS) + *op++ = UMINUS; + if (tp->type==STAR || tp->type==AND) { + error(ERROR, "Illegal operator * or & in #if/#elsif"); + return 0; + } + continue; + } + /* flow through */ + + /* plain binary */ + case EQ: case NEQ: case LEQ: case GEQ: case LSH: case RSH: + case LAND: case LOR: case SLASH: case PCT: + case LT: case GT: case CIRC: case OR: case QUEST: + case COLON: case COMMA: + if (rand==0) + goto syntax; + if (evalop(priority[tp->type])!=0) + return 0; + *op++ = tp->type; + rand = 0; + continue; + + case LP: + if (rand) + goto syntax; + *op++ = LP; + continue; + + case RP: + if (!rand) + goto syntax; + if (evalop(priority[RP])!=0) + return 0; + if (op<=ops || op[-1]!=LP) { + goto syntax; + } + op--; + continue; + + default: + error(ERROR,"Bad operator (%t) in #if/#elsif", tp); + return 0; + } + } + if (rand==0) + goto syntax; + if (evalop(priority[END])!=0) + return 0; + if (op!=&ops[1] || vp!=&vals[1]) { + error(ERROR, "Botch in #if/#elsif"); + return 0; + } + if (vals[0].type==UND) + error(ERROR, "Undefined expression value"); + return vals[0].val; +syntax: + error(ERROR, "Syntax error in #if/#elsif"); + return 0; +} + +int +evalop(struct pri pri) +{ + struct value v1, v2; + long rv1, rv2; + int rtype, oper; + + rv2=0; + rtype=0; + while (pri.pri < priority[op[-1]].pri) { + oper = *--op; + if (priority[oper].arity==2) { + v2 = *--vp; + rv2 = v2.val; + } + v1 = *--vp; + rv1 = v1.val; +/*lint -e574 -e644 */ + switch (priority[oper].ctype) { + case 0: + default: + error(WARNING, "Syntax error in #if/#endif"); + return 1; + case ARITH: + case RELAT: + if (v1.type==UNS || v2.type==UNS) + rtype = UNS; + else + rtype = SGN; + if (v1.type==UND || v2.type==UND) + rtype = UND; + if (priority[oper].ctype==RELAT && rtype==UNS) { + oper |= UNSMARK; + rtype = SGN; + } + break; + case SHIFT: + if (v1.type==UND || v2.type==UND) + rtype = UND; + else + rtype = v1.type; + if (rtype==UNS) + oper |= UNSMARK; + break; + case UNARY: + rtype = v1.type; + break; + case LOGIC: + case SPCL: + break; + } + switch (oper) { + case EQ: case EQ|UNSMARK: + rv1 = rv1==rv2; break; + case NEQ: case NEQ|UNSMARK: + rv1 = rv1!=rv2; break; + case LEQ: + rv1 = rv1<=rv2; break; + case GEQ: + rv1 = rv1>=rv2; break; + case LT: + rv1 = rv1rv2; break; + case LEQ|UNSMARK: + rv1 = (unsigned long)rv1<=rv2; break; + case GEQ|UNSMARK: + rv1 = (unsigned long)rv1>=rv2; break; + case LT|UNSMARK: + rv1 = (unsigned long)rv1rv2; break; + case LSH: + rv1 <<= rv2; break; + case LSH|UNSMARK: + rv1 = (unsigned long)rv1<>= rv2; break; + case RSH|UNSMARK: + rv1 = (unsigned long)rv1>>rv2; break; + case LAND: + rtype = UND; + if (v1.type==UND) + break; + if (rv1!=0) { + if (v2.type==UND) + break; + rv1 = rv2!=0; + } else + rv1 = 0; + rtype = SGN; + break; + case LOR: + rtype = UND; + if (v1.type==UND) + break; + if (rv1==0) { + if (v2.type==UND) + break; + rv1 = rv2!=0; + } else + rv1 = 1; + rtype = SGN; + break; + case AND: + rv1 &= rv2; break; + case STAR: + rv1 *= rv2; break; + case PLUS: + rv1 += rv2; break; + case MINUS: + rv1 -= rv2; break; + case UMINUS: + if (v1.type==UND) + rtype = UND; + rv1 = -rv1; break; + case OR: + rv1 |= rv2; break; + case CIRC: + rv1 ^= rv2; break; + case TILDE: + rv1 = ~rv1; break; + case NOT: + rv1 = !rv1; if (rtype!=UND) rtype = SGN; break; + case SLASH: + if (rv2==0) { + rtype = UND; + break; + } + if (rtype==UNS) + rv1 /= (unsigned long)rv2; + else + rv1 /= rv2; + break; + case PCT: + if (rv2==0) { + rtype = UND; + break; + } + if (rtype==UNS) + rv1 %= (unsigned long)rv2; + else + rv1 %= rv2; + break; + case COLON: + if (op[-1] != QUEST) + error(ERROR, "Bad ?: in #if/endif"); + else { + op--; + if ((--vp)->val==0) + v1 = v2; + rtype = v1.type; + rv1 = v1.val; + } + break; + case DEFINED: + break; + default: + error(ERROR, "Eval botch (unknown operator)"); + return 1; + } +/*lint +e574 +e644 */ + v1.val = rv1; + v1.type = rtype; + *vp++ = v1; + } + return 0; +} + +struct value +tokval(Token *tp) +{ + struct value v; + Nlist *np; + int i, base, c; + unsigned long n; + uchar *p; + + v.type = SGN; + v.val = 0; + switch (tp->type) { + + case NAME: + v.val = 0; + break; + + case NAME1: + if ((np = lookup(tp, 0)) != NULL && np->flag&(ISDEFINED|ISMAC)) + v.val = 1; + break; + + case NUMBER: + n = 0; + base = 10; + p = tp->t; + c = p[tp->len]; + p[tp->len] = '\0'; + if (*p=='0') { + base = 8; + if (p[1]=='x' || p[1]=='X') { + base = 16; + p++; + } + p++; + } + for (;; p++) { + if ((i = digit(*p)) < 0) + break; + if (i>=base) + error(WARNING, + "Bad digit in number %t", tp); + n *= base; + n += i; + } + if (n>=0x80000000 && base!=10) + v.type = UNS; + for (; *p; p++) { + if (*p=='u' || *p=='U') + v.type = UNS; + else if (*p=='l' || *p=='L') + ; + else { + error(ERROR, + "Bad number %t in #if/#elsif", tp); + break; + } + } + v.val = n; + tp->t[tp->len] = c; + break; + + case CCON: + n = 0; + p = tp->t; + if (*p=='L') { + p += 1; + error(WARNING, "Wide char constant value undefined"); + } + p += 1; + if (*p=='\\') { + p += 1; + if ((i = digit(*p))>=0 && i<=7) { + n = i; + p += 1; + if ((i = digit(*p))>=0 && i<=7) { + p += 1; + n <<= 3; + n += i; + if ((i = digit(*p))>=0 && i<=7) { + p += 1; + n <<= 3; + n += i; + } + } + } else if (*p=='x') { + p += 1; + while ((i = digit(*p))>=0 && i<=15) { + p += 1; + n <<= 4; + n += i; + } + } else { + static char cvcon[] + = "b\bf\fn\nr\rt\tv\v''\"\"??\\\\"; + for (i=0; i=sizeof(cvcon)) + error(WARNING, + "Undefined escape in character constant"); + } + } else if (*p=='\'') + error(ERROR, "Empty character constant"); + else + n = *p++; + if (*p!='\'') + error(WARNING, "Multibyte character constant undefined"); + else if (n>127) + error(WARNING, "Character constant taken as not signed"); + v.val = n; + break; + + case STRING: + error(ERROR, "String in #if/#elsif"); + break; + } + return v; +} + +int +digit(int i) +{ + if ('0'<=i && i<='9') + i -= '0'; + else if ('a'<=i && i<='f') + i -= 'a'-10; + else if ('A'<=i && i<='F') + i -= 'A'-10; + else + i = -1; + return i; +} diff --git a/code/tools/lcc/cpp/getopt.c b/code/tools/lcc/cpp/getopt.c new file mode 100644 index 0000000..abcb35f --- /dev/null +++ b/code/tools/lcc/cpp/getopt.c @@ -0,0 +1,53 @@ +#include +#include +#define EPR fprintf(stderr, +#define ERR(str, chr) if(opterr){EPR "%s%c\n", str, chr);} +int opterr = 1; +int optind = 1; +int optopt; +char *optarg; + +int +getopt (int argc, char *const argv[], const char *opts) +{ + static int sp = 1; + int c; + char *cp; + + if (sp == 1) { + if (optind >= argc || + argv[optind][0] != '-' || argv[optind][1] == '\0') + return -1; + else if (strcmp(argv[optind], "--") == 0) { + optind++; + return -1; + } + } + optopt = c = argv[optind][sp]; + if (c == ':' || (cp=strchr(opts, c)) == 0) { + ERR (": illegal option -- ", c); + if (argv[optind][++sp] == '\0') { + optind++; + sp = 1; + } + return '?'; + } + if (*++cp == ':') { + if (argv[optind][sp+1] != '\0') + optarg = &argv[optind++][sp+1]; + else if (++optind >= argc) { + ERR (": option requires an argument -- ", c); + sp = 1; + return '?'; + } else + optarg = argv[optind++]; + sp = 1; + } else { + if (argv[optind][++sp] == '\0') { + sp = 1; + optind++; + } + optarg = 0; + } + return c; +} diff --git a/code/tools/lcc/cpp/hideset.c b/code/tools/lcc/cpp/hideset.c new file mode 100644 index 0000000..bd2540d --- /dev/null +++ b/code/tools/lcc/cpp/hideset.c @@ -0,0 +1,112 @@ +#include +#include +#include +#include "cpp.h" + +/* + * A hideset is a null-terminated array of Nlist pointers. + * They are referred to by indices in the hidesets array. + * Hideset 0 is empty. + */ + +#define HSSIZ 32 +typedef Nlist **Hideset; +Hideset *hidesets; +int nhidesets = 0; +int maxhidesets = 3; +int inserths(Hideset, Hideset, Nlist *); + +/* + * Test for membership in a hideset + */ +int +checkhideset(int hs, Nlist *np) +{ + Hideset hsp; + + if (hs>=nhidesets) + abort(); + for (hsp = hidesets[hs]; *hsp; hsp++) { + if (*hsp == np) + return 1; + } + return 0; +} + +/* + * Return the (possibly new) hideset obtained by adding np to hs. + */ +int +newhideset(int hs, Nlist *np) +{ + int i, len; + Nlist *nhs[HSSIZ+3]; + Hideset hs1, hs2; + + len = inserths(nhs, hidesets[hs], np); + for (i=0; i=HSSIZ) + return hs; + if (nhidesets >= maxhidesets) { + maxhidesets = 3*maxhidesets/2+1; + hidesets = (Hideset *)realloc(hidesets, (sizeof (Hideset *))*maxhidesets); + if (hidesets == NULL) + error(FATAL, "Out of memory from realloc"); + } + hs1 = (Hideset)domalloc(len*sizeof(Hideset)); + memmove(hs1, nhs, len*sizeof(Hideset)); + hidesets[nhidesets] = hs1; + return nhidesets++; +} + +int +inserths(Hideset dhs, Hideset shs, Nlist *np) +{ + Hideset odhs = dhs; + + while (*shs && *shs < np) + *dhs++ = *shs++; + if (*shs != np) + *dhs++ = np; + do { + *dhs++ = *shs; + } while (*shs++); + return dhs - odhs; +} + +/* + * Hideset union + */ +int +unionhideset(int hs1, int hs2) +{ + Hideset hp; + + for (hp = hidesets[hs2]; *hp; hp++) + hs1 = newhideset(hs1, *hp); + return hs1; +} + +void +iniths(void) +{ + hidesets = (Hideset *)domalloc(maxhidesets*sizeof(Hideset *)); + hidesets[0] = (Hideset)domalloc(sizeof(Hideset)); + *hidesets[0] = NULL; + nhidesets++; +} + +void +prhideset(int hs) +{ + Hideset np; + + for (np = hidesets[hs]; *np; np++) { + fprintf(stderr, (char*)(*np)->name, (*np)->len); + fprintf(stderr, " "); + } +} diff --git a/code/tools/lcc/cpp/include.c b/code/tools/lcc/cpp/include.c new file mode 100644 index 0000000..b3757e8 --- /dev/null +++ b/code/tools/lcc/cpp/include.c @@ -0,0 +1,122 @@ +#include +#include +#include "cpp.h" + +Includelist includelist[NINCLUDE]; + +extern char *objname; + +void +doinclude(Tokenrow *trp) +{ + char fname[256], iname[256]; + Includelist *ip; + int angled, len, fd, i; + + trp->tp += 1; + if (trp->tp>=trp->lp) + goto syntax; + if (trp->tp->type!=STRING && trp->tp->type!=LT) { + len = trp->tp - trp->bp; + expandrow(trp, ""); + trp->tp = trp->bp+len; + } + if (trp->tp->type==STRING) { + len = trp->tp->len-2; + if (len > sizeof(fname) - 1) + len = sizeof(fname) - 1; + strncpy(fname, (char*)trp->tp->t+1, len); + angled = 0; + } else if (trp->tp->type==LT) { + len = 0; + trp->tp++; + while (trp->tp->type!=GT) { + if (trp->tp>trp->lp || len+trp->tp->len+2 >= sizeof(fname)) + goto syntax; + strncpy(fname+len, (char*)trp->tp->t, trp->tp->len); + len += trp->tp->len; + trp->tp++; + } + angled = 1; + } else + goto syntax; + trp->tp += 2; + if (trp->tp < trp->lp || len==0) + goto syntax; + fname[len] = '\0'; + if (fname[0]=='/') { + fd = open(fname, 0); + strcpy(iname, fname); + } else for (fd = -1,i=NINCLUDE-1; i>=0; i--) { + ip = &includelist[i]; + if (ip->file==NULL || ip->deleted || (angled && ip->always==0)) + continue; + if (strlen(fname)+strlen(ip->file)+2 > sizeof(iname)) + continue; + strcpy(iname, ip->file); + strcat(iname, "/"); + strcat(iname, fname); + if ((fd = open(iname, 0)) >= 0) + break; + } + if ( Mflag>1 || (!angled&&Mflag==1) ) { + write(1,objname,strlen(objname)); + write(1,iname,strlen(iname)); + write(1,"\n",1); + } + if (fd >= 0) { + if (++incdepth > 10) + error(FATAL, "#include too deeply nested"); + setsource((char*)newstring((uchar*)iname, strlen(iname), 0), fd, NULL); + genline(); + } else { + trp->tp = trp->bp+2; + error(ERROR, "Could not find include file %r", trp); + } + return; +syntax: + error(ERROR, "Syntax error in #include"); + return; +} + +/* + * Generate a line directive for cursource + */ +void +genline(void) +{ + static Token ta = { UNCLASS }; + static Tokenrow tr = { &ta, &ta, &ta+1, 1 }; + uchar *p; + + ta.t = p = (uchar*)outp; + strcpy((char*)p, "#line "); + p += sizeof("#line ")-1; + p = (uchar*)outnum((char*)p, cursource->line); + *p++ = ' '; *p++ = '"'; + if (cursource->filename[0]!='/' && wd[0]) { + strcpy((char*)p, wd); + p += strlen(wd); + *p++ = '/'; + } + strcpy((char*)p, cursource->filename); + p += strlen((char*)p); + *p++ = '"'; *p++ = '\n'; + ta.len = (char*)p-outp; + outp = (char*)p; + tr.tp = tr.bp; + puttokens(&tr); +} + +void +setobjname(char *f) +{ + int n = strlen(f); + objname = (char*)domalloc(n+5); + strcpy(objname,f); + if(objname[n-2]=='.'){ + strcpy(objname+n-1,"$O: "); + }else{ + strcpy(objname+n,"$O: "); + } +} diff --git a/code/tools/lcc/cpp/lex.c b/code/tools/lcc/cpp/lex.c new file mode 100644 index 0000000..8030354 --- /dev/null +++ b/code/tools/lcc/cpp/lex.c @@ -0,0 +1,580 @@ +#include +#include +#include +#include "cpp.h" + +/* + * lexical FSM encoding + * when in state state, and one of the characters + * in ch arrives, enter nextstate. + * States >= S_SELF are either final, or at least require special action. + * In 'fsm' there is a line for each state X charset X nextstate. + * List chars that overwrite previous entries later (e.g. C_ALPH + * can be overridden by '_' by a later entry; and C_XX is the + * the universal set, and should always be first. + * States above S_SELF are represented in the big table as negative values. + * S_SELF and S_SELFB encode the resulting token type in the upper bits. + * These actions differ in that S_SELF doesn't have a lookahead char, + * S_SELFB does. + * + * The encoding is blown out into a big table for time-efficiency. + * Entries have + * nextstate: 6 bits; ?\ marker: 1 bit; tokentype: 9 bits. + */ + +#define MAXSTATE 32 +#define ACT(tok,act) ((tok<<7)+act) +#define QBSBIT 0100 +#define GETACT(st) (st>>7)&0x1ff + +/* character classes */ +#define C_WS 1 +#define C_ALPH 2 +#define C_NUM 3 +#define C_EOF 4 +#define C_XX 5 + +enum state { + START=0, NUM1, NUM2, NUM3, ID1, ST1, ST2, ST3, COM1, COM2, COM3, COM4, + CC1, CC2, WS1, PLUS1, MINUS1, STAR1, SLASH1, PCT1, SHARP1, + CIRC1, GT1, GT2, LT1, LT2, OR1, AND1, ASG1, NOT1, DOTS1, + S_SELF=MAXSTATE, S_SELFB, S_EOF, S_NL, S_EOFSTR, + S_STNL, S_COMNL, S_EOFCOM, S_COMMENT, S_EOB, S_WS, S_NAME +}; + +int tottok; +int tokkind[256]; +struct fsm { + int state; /* if in this state */ + uchar ch[4]; /* and see one of these characters */ + int nextstate; /* enter this state if +ve */ +}; + +/*const*/ struct fsm fsm[] = { + /* start state */ + {START, { C_XX }, ACT(UNCLASS,S_SELF)}, + {START, { ' ', '\t', '\v' }, WS1}, + {START, { C_NUM }, NUM1}, + {START, { '.' }, NUM3}, + {START, { C_ALPH }, ID1}, + {START, { 'L' }, ST1}, + {START, { '"' }, ST2}, + {START, { '\'' }, CC1}, + {START, { '/' }, COM1}, + {START, { EOFC }, S_EOF}, + {START, { '\n' }, S_NL}, + {START, { '-' }, MINUS1}, + {START, { '+' }, PLUS1}, + {START, { '<' }, LT1}, + {START, { '>' }, GT1}, + {START, { '=' }, ASG1}, + {START, { '!' }, NOT1}, + {START, { '&' }, AND1}, + {START, { '|' }, OR1}, + {START, { '#' }, SHARP1}, + {START, { '%' }, PCT1}, + {START, { '[' }, ACT(SBRA,S_SELF)}, + {START, { ']' }, ACT(SKET,S_SELF)}, + {START, { '(' }, ACT(LP,S_SELF)}, + {START, { ')' }, ACT(RP,S_SELF)}, + {START, { '*' }, STAR1}, + {START, { ',' }, ACT(COMMA,S_SELF)}, + {START, { '?' }, ACT(QUEST,S_SELF)}, + {START, { ':' }, ACT(COLON,S_SELF)}, + {START, { ';' }, ACT(SEMIC,S_SELF)}, + {START, { '{' }, ACT(CBRA,S_SELF)}, + {START, { '}' }, ACT(CKET,S_SELF)}, + {START, { '~' }, ACT(TILDE,S_SELF)}, + {START, { '^' }, CIRC1}, + + /* saw a digit */ + {NUM1, { C_XX }, ACT(NUMBER,S_SELFB)}, + {NUM1, { C_NUM, C_ALPH, '.' }, NUM1}, + {NUM1, { 'E', 'e' }, NUM2}, + {NUM1, { '_' }, ACT(NUMBER,S_SELFB)}, + + /* saw possible start of exponent, digits-e */ + {NUM2, { C_XX }, ACT(NUMBER,S_SELFB)}, + {NUM2, { '+', '-' }, NUM1}, + {NUM2, { C_NUM, C_ALPH }, NUM1}, + {NUM2, { '_' }, ACT(NUMBER,S_SELFB)}, + + /* saw a '.', which could be a number or an operator */ + {NUM3, { C_XX }, ACT(DOT,S_SELFB)}, + {NUM3, { '.' }, DOTS1}, + {NUM3, { C_NUM }, NUM1}, + + {DOTS1, { C_XX }, ACT(UNCLASS, S_SELFB)}, + {DOTS1, { C_NUM }, NUM1}, + {DOTS1, { '.' }, ACT(ELLIPS, S_SELF)}, + + /* saw a letter or _ */ + {ID1, { C_XX }, ACT(NAME,S_NAME)}, + {ID1, { C_ALPH, C_NUM }, ID1}, + + /* saw L (start of wide string?) */ + {ST1, { C_XX }, ACT(NAME,S_NAME)}, + {ST1, { C_ALPH, C_NUM }, ID1}, + {ST1, { '"' }, ST2}, + {ST1, { '\'' }, CC1}, + + /* saw " beginning string */ + {ST2, { C_XX }, ST2}, + {ST2, { '"' }, ACT(STRING, S_SELF)}, + {ST2, { '\\' }, ST3}, + {ST2, { '\n' }, S_STNL}, + {ST2, { EOFC }, S_EOFSTR}, + + /* saw \ in string */ + {ST3, { C_XX }, ST2}, + {ST3, { '\n' }, S_STNL}, + {ST3, { EOFC }, S_EOFSTR}, + + /* saw ' beginning character const */ + {CC1, { C_XX }, CC1}, + {CC1, { '\'' }, ACT(CCON, S_SELF)}, + {CC1, { '\\' }, CC2}, + {CC1, { '\n' }, S_STNL}, + {CC1, { EOFC }, S_EOFSTR}, + + /* saw \ in ccon */ + {CC2, { C_XX }, CC1}, + {CC2, { '\n' }, S_STNL}, + {CC2, { EOFC }, S_EOFSTR}, + + /* saw /, perhaps start of comment */ + {COM1, { C_XX }, ACT(SLASH, S_SELFB)}, + {COM1, { '=' }, ACT(ASSLASH, S_SELF)}, + {COM1, { '*' }, COM2}, + {COM1, { '/' }, COM4}, + + /* saw / then *, start of comment */ + {COM2, { C_XX }, COM2}, + {COM2, { '\n' }, S_COMNL}, + {COM2, { '*' }, COM3}, + {COM2, { EOFC }, S_EOFCOM}, + + /* saw the * possibly ending a comment */ + {COM3, { C_XX }, COM2}, + {COM3, { '\n' }, S_COMNL}, + {COM3, { '*' }, COM3}, + {COM3, { '/' }, S_COMMENT}, + + /* // comment */ + {COM4, { C_XX }, COM4}, + {COM4, { '\n' }, S_NL}, + {COM4, { EOFC }, S_EOFCOM}, + + /* saw white space, eat it up */ + {WS1, { C_XX }, S_WS}, + {WS1, { ' ', '\t', '\v' }, WS1}, + + /* saw -, check --, -=, -> */ + {MINUS1, { C_XX }, ACT(MINUS, S_SELFB)}, + {MINUS1, { '-' }, ACT(MMINUS, S_SELF)}, + {MINUS1, { '=' }, ACT(ASMINUS,S_SELF)}, + {MINUS1, { '>' }, ACT(ARROW,S_SELF)}, + + /* saw +, check ++, += */ + {PLUS1, { C_XX }, ACT(PLUS, S_SELFB)}, + {PLUS1, { '+' }, ACT(PPLUS, S_SELF)}, + {PLUS1, { '=' }, ACT(ASPLUS, S_SELF)}, + + /* saw <, check <<, <<=, <= */ + {LT1, { C_XX }, ACT(LT, S_SELFB)}, + {LT1, { '<' }, LT2}, + {LT1, { '=' }, ACT(LEQ, S_SELF)}, + {LT2, { C_XX }, ACT(LSH, S_SELFB)}, + {LT2, { '=' }, ACT(ASLSH, S_SELF)}, + + /* saw >, check >>, >>=, >= */ + {GT1, { C_XX }, ACT(GT, S_SELFB)}, + {GT1, { '>' }, GT2}, + {GT1, { '=' }, ACT(GEQ, S_SELF)}, + {GT2, { C_XX }, ACT(RSH, S_SELFB)}, + {GT2, { '=' }, ACT(ASRSH, S_SELF)}, + + /* = */ + {ASG1, { C_XX }, ACT(ASGN, S_SELFB)}, + {ASG1, { '=' }, ACT(EQ, S_SELF)}, + + /* ! */ + {NOT1, { C_XX }, ACT(NOT, S_SELFB)}, + {NOT1, { '=' }, ACT(NEQ, S_SELF)}, + + /* & */ + {AND1, { C_XX }, ACT(AND, S_SELFB)}, + {AND1, { '&' }, ACT(LAND, S_SELF)}, + {AND1, { '=' }, ACT(ASAND, S_SELF)}, + + /* | */ + {OR1, { C_XX }, ACT(OR, S_SELFB)}, + {OR1, { '|' }, ACT(LOR, S_SELF)}, + {OR1, { '=' }, ACT(ASOR, S_SELF)}, + + /* # */ + {SHARP1, { C_XX }, ACT(SHARP, S_SELFB)}, + {SHARP1, { '#' }, ACT(DSHARP, S_SELF)}, + + /* % */ + {PCT1, { C_XX }, ACT(PCT, S_SELFB)}, + {PCT1, { '=' }, ACT(ASPCT, S_SELF)}, + + /* * */ + {STAR1, { C_XX }, ACT(STAR, S_SELFB)}, + {STAR1, { '=' }, ACT(ASSTAR, S_SELF)}, + + /* ^ */ + {CIRC1, { C_XX }, ACT(CIRC, S_SELFB)}, + {CIRC1, { '=' }, ACT(ASCIRC, S_SELF)}, + + {-1} +}; + +/* first index is char, second is state */ +/* increase #states to power of 2 to encourage use of shift */ +short bigfsm[256][MAXSTATE]; + +void +expandlex(void) +{ + /*const*/ struct fsm *fp; + int i, j, nstate; + + for (fp = fsm; fp->state>=0; fp++) { + for (i=0; fp->ch[i]; i++) { + nstate = fp->nextstate; + if (nstate >= S_SELF) + nstate = ~nstate; + switch (fp->ch[i]) { + + case C_XX: /* random characters */ + for (j=0; j<256; j++) + bigfsm[j][fp->state] = nstate; + continue; + case C_ALPH: + for (j=0; j<=256; j++) + if (('a'<=j&&j<='z') || ('A'<=j&&j<='Z') + || j=='_') + bigfsm[j][fp->state] = nstate; + continue; + case C_NUM: + for (j='0'; j<='9'; j++) + bigfsm[j][fp->state] = nstate; + continue; + default: + bigfsm[fp->ch[i]][fp->state] = nstate; + } + } + } + /* install special cases for ? (trigraphs), \ (splicing), runes, and EOB */ + for (i=0; i0) + bigfsm[j][i] = ~bigfsm[j][i]; + bigfsm[j][i] &= ~QBSBIT; + } + bigfsm[EOB][i] = ~S_EOB; + if (bigfsm[EOFC][i]>=0) + bigfsm[EOFC][i] = ~S_EOF; + } +} + +void +fixlex(void) +{ + /* do C++ comments? */ + if (Cplusplus==0) + bigfsm['/'][COM1] = bigfsm['x'][COM1]; +} + +/* + * fill in a row of tokens from input, terminated by NL or END + * First token is put at trp->lp. + * Reset is non-zero when the input buffer can be "rewound." + * The value is a flag indicating that possible macros have + * been seen in the row. + */ +int +gettokens(Tokenrow *trp, int reset) +{ + register int c, state, oldstate; + register uchar *ip; + register Token *tp, *maxp; + int runelen; + Source *s = cursource; + int nmac = 0; + + tp = trp->lp; + ip = s->inp; + if (reset) { + s->lineinc = 0; + if (ip>=s->inl) { /* nothing in buffer */ + s->inl = s->inb; + fillbuf(s); + ip = s->inp = s->inb; + } else if (ip >= s->inb+(3*INS/4)) { + memmove(s->inb, ip, 4+s->inl-ip); + s->inl = s->inb+(s->inl-ip); + ip = s->inp = s->inb; + } + } + maxp = &trp->bp[trp->max]; + runelen = 1; + for (;;) { + continue2: + if (tp>=maxp) { + trp->lp = tp; + tp = growtokenrow(trp); + maxp = &trp->bp[trp->max]; + } + tp->type = UNCLASS; + tp->hideset = 0; + tp->t = ip; + tp->wslen = 0; + tp->flag = 0; + state = START; + for (;;) { + oldstate = state; + c = *ip; + if ((state = bigfsm[c][state]) >= 0) { + ip += runelen; + runelen = 1; + continue; + } + state = ~state; + reswitch: + switch (state&0177) { + case S_SELF: + ip += runelen; + runelen = 1; + case S_SELFB: + tp->type = GETACT(state); + tp->len = ip - tp->t; + tp++; + goto continue2; + + case S_NAME: /* like S_SELFB but with nmac check */ + tp->type = NAME; + tp->len = ip - tp->t; + nmac |= quicklook(tp->t[0], tp->len>1?tp->t[1]:0); + tp++; + goto continue2; + + case S_WS: + tp->wslen = ip - tp->t; + tp->t = ip; + state = START; + continue; + + default: + if ((state&QBSBIT)==0) { + ip += runelen; + runelen = 1; + continue; + } + state &= ~QBSBIT; + s->inp = ip; + if (c=='?') { /* check trigraph */ + if (trigraph(s)) { + state = oldstate; + continue; + } + goto reswitch; + } + if (c=='\\') { /* line-folding */ + if (foldline(s)) { + s->lineinc++; + state = oldstate; + continue; + } + goto reswitch; + } + error(WARNING, "Lexical botch in cpp"); + ip += runelen; + runelen = 1; + continue; + + case S_EOB: + s->inp = ip; + fillbuf(cursource); + state = oldstate; + continue; + + case S_EOF: + tp->type = END; + tp->len = 0; + s->inp = ip; + if (tp!=trp->bp && (tp-1)->type!=NL && cursource->fd!=-1) + error(WARNING,"No newline at end of file"); + trp->lp = tp+1; + return nmac; + + case S_STNL: + error(ERROR, "Unterminated string or char const"); + case S_NL: + tp->t = ip; + tp->type = NL; + tp->len = 1; + tp->wslen = 0; + s->lineinc++; + s->inp = ip+1; + trp->lp = tp+1; + return nmac; + + case S_EOFSTR: + error(FATAL, "EOF in string or char constant"); + break; + + case S_COMNL: + s->lineinc++; + state = COM2; + ip += runelen; + runelen = 1; + if (ip >= s->inb+(7*INS/8)) { /* very long comment */ + memmove(tp->t, ip, 4+s->inl-ip); + s->inl -= ip-tp->t; + ip = tp->t+1; + } + continue; + + case S_EOFCOM: + error(WARNING, "EOF inside comment"); + --ip; + case S_COMMENT: + ++ip; + tp->t = ip; + tp->t[-1] = ' '; + tp->wslen = 1; + state = START; + continue; + } + break; + } + ip += runelen; + runelen = 1; + tp->len = ip - tp->t; + tp++; + } +} + +/* have seen ?; handle the trigraph it starts (if any) else 0 */ +int +trigraph(Source *s) +{ + int c; + + while (s->inp+2 >= s->inl && fillbuf(s)!=EOF) + ; + if (s->inp[1]!='?') + return 0; + c = 0; + switch(s->inp[2]) { + case '=': + c = '#'; break; + case '(': + c = '['; break; + case '/': + c = '\\'; break; + case ')': + c = ']'; break; + case '\'': + c = '^'; break; + case '<': + c = '{'; break; + case '!': + c = '|'; break; + case '>': + c = '}'; break; + case '-': + c = '~'; break; + } + if (c) { + *s->inp = c; + memmove(s->inp+1, s->inp+3, s->inl-s->inp+2); + s->inl -= 2; + } + return c; +} + +int +foldline(Source *s) +{ + while (s->inp+1 >= s->inl && fillbuf(s)!=EOF) + ; + if (s->inp[1] == '\n') { + memmove(s->inp, s->inp+2, s->inl-s->inp+3); + s->inl -= 2; + return 1; + } + return 0; +} + +int +fillbuf(Source *s) +{ + int n, nr; + + nr = INS/8; + if ((char *)s->inl+nr > (char *)s->inb+INS) + error(FATAL, "Input buffer overflow"); + if (s->fd<0 || (n=read(s->fd, (char *)s->inl, INS/8)) <= 0) + n = 0; + if ((*s->inp&0xff) == EOB) /* sentinel character appears in input */ + *s->inp = EOFC; + s->inl += n; + s->inl[0] = s->inl[1]= s->inl[2]= s->inl[3] = EOB; + if (n==0) { + s->inl[0] = s->inl[1]= s->inl[2]= s->inl[3] = EOFC; + return EOF; + } + return 0; +} + +/* + * Push down to new source of characters. + * If fd>0 and str==NULL, then from a file `name'; + * if fd==-1 and str, then from the string. + */ +Source * +setsource(char *name, int fd, char *str) +{ + Source *s = new(Source); + int len; + + s->line = 1; + s->lineinc = 0; + s->fd = fd; + s->filename = name; + s->next = cursource; + s->ifdepth = 0; + cursource = s; + /* slop at right for EOB */ + if (str) { + len = strlen(str); + s->inb = domalloc(len+4); + s->inp = s->inb; + strncpy((char *)s->inp, str, len); + } else { + s->inb = domalloc(INS+4); + s->inp = s->inb; + len = 0; + } + s->inl = s->inp+len; + s->inl[0] = s->inl[1] = EOB; + return s; +} + +void +unsetsource(void) +{ + Source *s = cursource; + + if (s->fd>=0) { + close(s->fd); + dofree(s->inb); + } + cursource = s->next; + dofree(s); +} diff --git a/code/tools/lcc/cpp/macro.c b/code/tools/lcc/cpp/macro.c new file mode 100644 index 0000000..49d1129 --- /dev/null +++ b/code/tools/lcc/cpp/macro.c @@ -0,0 +1,515 @@ +#include +#include +#include +#include "cpp.h" + +/* + * do a macro definition. tp points to the name being defined in the line + */ +void +dodefine(Tokenrow *trp) +{ + Token *tp; + Nlist *np; + Tokenrow *def, *args; + + tp = trp->tp+1; + if (tp>=trp->lp || tp->type!=NAME) { + error(ERROR, "#defined token is not a name"); + return; + } + np = lookup(tp, 1); + if (np->flag&ISUNCHANGE) { + error(ERROR, "#defined token %t can't be redefined", tp); + return; + } + /* collect arguments */ + tp += 1; + args = NULL; + if (tplp && tp->type==LP && tp->wslen==0) { + /* macro with args */ + int narg = 0; + tp += 1; + args = new(Tokenrow); + maketokenrow(2, args); + if (tp->type!=RP) { + int err = 0; + for (;;) { + Token *atp; + if (tp->type!=NAME) { + err++; + break; + } + if (narg>=args->max) + growtokenrow(args); + for (atp=args->bp; atplp; atp++) + if (atp->len==tp->len + && strncmp((char*)atp->t, (char*)tp->t, tp->len)==0) + error(ERROR, "Duplicate macro argument"); + *args->lp++ = *tp; + narg++; + tp += 1; + if (tp->type==RP) + break; + if (tp->type!=COMMA) { + err++; + break; + } + tp += 1; + } + if (err) { + error(ERROR, "Syntax error in macro parameters"); + return; + } + } + tp += 1; + } + trp->tp = tp; + if (((trp->lp)-1)->type==NL) + trp->lp -= 1; + def = normtokenrow(trp); + if (np->flag&ISDEFINED) { + if (comparetokens(def, np->vp) + || (np->ap==NULL) != (args==NULL) + || (np->ap && comparetokens(args, np->ap))) + error(ERROR, "Macro redefinition of %t", trp->bp+2); + } + if (args) { + Tokenrow *tap; + tap = normtokenrow(args); + dofree(args->bp); + args = tap; + } + np->ap = args; + np->vp = def; + np->flag |= ISDEFINED; +} + +/* + * Definition received via -D or -U + */ +void +doadefine(Tokenrow *trp, int type) +{ + Nlist *np; + static Token onetoken[1] = {{ NUMBER, 0, 0, 0, 1, (uchar*)"1" }}; + static Tokenrow onetr = { onetoken, onetoken, onetoken+1, 1 }; + + trp->tp = trp->bp; + if (type=='U') { + if (trp->lp-trp->tp != 2 || trp->tp->type!=NAME) + goto syntax; + if ((np = lookup(trp->tp, 0)) == NULL) + return; + np->flag &= ~ISDEFINED; + return; + } + if (trp->tp >= trp->lp || trp->tp->type!=NAME) + goto syntax; + np = lookup(trp->tp, 1); + np->flag |= ISDEFINED; + trp->tp += 1; + if (trp->tp >= trp->lp || trp->tp->type==END) { + np->vp = &onetr; + return; + } + if (trp->tp->type!=ASGN) + goto syntax; + trp->tp += 1; + if ((trp->lp-1)->type == END) + trp->lp -= 1; + np->vp = normtokenrow(trp); + return; +syntax: + error(FATAL, "Illegal -D or -U argument %r", trp); +} + +/* + * Do macro expansion in a row of tokens. + * Flag is NULL if more input can be gathered. + */ +void +expandrow(Tokenrow *trp, char *flag) +{ + Token *tp; + Nlist *np; + + if (flag) + setsource(flag, -1, ""); + for (tp = trp->tp; tplp; ) { + if (tp->type!=NAME + || quicklook(tp->t[0], tp->len>1?tp->t[1]:0)==0 + || (np = lookup(tp, 0))==NULL + || (np->flag&(ISDEFINED|ISMAC))==0 + || (tp->hideset && checkhideset(tp->hideset, np))) { + tp++; + continue; + } + trp->tp = tp; + if (np->val==KDEFINED) { + tp->type = DEFINED; + if ((tp+1)lp && (tp+1)->type==NAME) + (tp+1)->type = NAME1; + else if ((tp+3)lp && (tp+1)->type==LP + && (tp+2)->type==NAME && (tp+3)->type==RP) + (tp+2)->type = NAME1; + else + error(ERROR, "Incorrect syntax for `defined'"); + tp++; + continue; + } + if (np->flag&ISMAC) + builtin(trp, np->val); + else { + expand(trp, np); + } + tp = trp->tp; + } + if (flag) + unsetsource(); +} + +/* + * Expand the macro whose name is np, at token trp->tp, in the tokenrow. + * Return trp->tp at the first token next to be expanded + * (ordinarily the beginning of the expansion) + */ +void +expand(Tokenrow *trp, Nlist *np) +{ + Tokenrow ntr; + int ntokc, narg, i; + Token *tp; + Tokenrow *atr[NARG+1]; + int hs; + + copytokenrow(&ntr, np->vp); /* copy macro value */ + if (np->ap==NULL) /* parameterless */ + ntokc = 1; + else { + ntokc = gatherargs(trp, atr, &narg); + if (narg<0) { /* not actually a call (no '(') */ + trp->tp++; + return; + } + if (narg != rowlen(np->ap)) { + error(ERROR, "Disagreement in number of macro arguments"); + trp->tp->hideset = newhideset(trp->tp->hideset, np); + trp->tp += ntokc; + return; + } + substargs(np, &ntr, atr); /* put args into replacement */ + for (i=0; ibp); + dofree(atr[i]); + } + } + doconcat(&ntr); /* execute ## operators */ + hs = newhideset(trp->tp->hideset, np); + for (tp=ntr.bp; tptype==NAME) { + if (tp->hideset==0) + tp->hideset = hs; + else + tp->hideset = unionhideset(tp->hideset, hs); + } + } + ntr.tp = ntr.bp; + insertrow(trp, ntokc, &ntr); + trp->tp -= rowlen(&ntr); + dofree(ntr.bp); + return; +} + +/* + * Gather an arglist, starting in trp with tp pointing at the macro name. + * Return total number of tokens passed, stash number of args found. + * trp->tp is not changed relative to the tokenrow. + */ +int +gatherargs(Tokenrow *trp, Tokenrow **atr, int *narg) +{ + int parens = 1; + int ntok = 0; + Token *bp, *lp; + Tokenrow ttr; + int ntokp; + int needspace; + + *narg = -1; /* means that there is no macro call */ + /* look for the ( */ + for (;;) { + trp->tp++; + ntok++; + if (trp->tp >= trp->lp) { + gettokens(trp, 0); + if ((trp->lp-1)->type==END) { + trp->lp -= 1; + trp->tp -= ntok; + return ntok; + } + } + if (trp->tp->type==LP) + break; + if (trp->tp->type!=NL) + return ntok; + } + *narg = 0; + ntok++; + ntokp = ntok; + trp->tp++; + /* search for the terminating ), possibly extending the row */ + needspace = 0; + while (parens>0) { + if (trp->tp >= trp->lp) + gettokens(trp, 0); + if (needspace) { + needspace = 0; + makespace(trp); + } + if (trp->tp->type==END) { + trp->lp -= 1; + trp->tp -= ntok; + error(ERROR, "EOF in macro arglist"); + return ntok; + } + if (trp->tp->type==NL) { + trp->tp += 1; + adjustrow(trp, -1); + trp->tp -= 1; + makespace(trp); + needspace = 1; + continue; + } + if (trp->tp->type==LP) + parens++; + else if (trp->tp->type==RP) + parens--; + trp->tp++; + ntok++; + } + trp->tp -= ntok; + /* Now trp->tp won't move underneath us */ + lp = bp = trp->tp+ntokp; + for (; parens>=0; lp++) { + if (lp->type == LP) { + parens++; + continue; + } + if (lp->type==RP) + parens--; + if (lp->type==DSHARP) + lp->type = DSHARP1; /* ## not special in arg */ + if ((lp->type==COMMA && parens==0) || (parens<0 && (lp-1)->type!=LP)) { + if (*narg>=NARG-1) + error(FATAL, "Sorry, too many macro arguments"); + ttr.bp = ttr.tp = bp; + ttr.lp = lp; + atr[(*narg)++] = normtokenrow(&ttr); + bp = lp+1; + } + } + return ntok; +} + +/* + * substitute the argument list into the replacement string + * This would be simple except for ## and # + */ +void +substargs(Nlist *np, Tokenrow *rtr, Tokenrow **atr) +{ + Tokenrow tatr; + Token *tp; + int ntok, argno; + + for (rtr->tp=rtr->bp; rtr->tplp; ) { + if (rtr->tp->type==SHARP) { /* string operator */ + tp = rtr->tp; + rtr->tp += 1; + if ((argno = lookuparg(np, rtr->tp))<0) { + error(ERROR, "# not followed by macro parameter"); + continue; + } + ntok = 1 + (rtr->tp - tp); + rtr->tp = tp; + insertrow(rtr, ntok, stringify(atr[argno])); + continue; + } + if (rtr->tp->type==NAME + && (argno = lookuparg(np, rtr->tp)) >= 0) { + if ((rtr->tp+1)->type==DSHARP + || (rtr->tp!=rtr->bp && (rtr->tp-1)->type==DSHARP)) + insertrow(rtr, 1, atr[argno]); + else { + copytokenrow(&tatr, atr[argno]); + expandrow(&tatr, ""); + insertrow(rtr, 1, &tatr); + dofree(tatr.bp); + } + continue; + } + rtr->tp++; + } +} + +/* + * Evaluate the ## operators in a tokenrow + */ +void +doconcat(Tokenrow *trp) +{ + Token *ltp, *ntp; + Tokenrow ntr; + int len; + + for (trp->tp=trp->bp; trp->tplp; trp->tp++) { + if (trp->tp->type==DSHARP1) + trp->tp->type = DSHARP; + else if (trp->tp->type==DSHARP) { + char tt[128]; + ltp = trp->tp-1; + ntp = trp->tp+1; + if (ltpbp || ntp>=trp->lp) { + error(ERROR, "## occurs at border of replacement"); + continue; + } + len = ltp->len + ntp->len; + strncpy((char*)tt, (char*)ltp->t, ltp->len); + strncpy((char*)tt+ltp->len, (char*)ntp->t, ntp->len); + tt[len] = '\0'; + setsource("<##>", -1, tt); + maketokenrow(3, &ntr); + gettokens(&ntr, 1); + unsetsource(); + if (ntr.lp-ntr.bp!=2 || ntr.bp->type==UNCLASS) + error(WARNING, "Bad token %r produced by ##", &ntr); + ntr.lp = ntr.bp+1; + trp->tp = ltp; + makespace(&ntr); + insertrow(trp, (ntp-ltp)+1, &ntr); + dofree(ntr.bp); + trp->tp--; + } + } +} + +/* + * tp is a potential parameter name of macro mac; + * look it up in mac's arglist, and if found, return the + * corresponding index in the argname array. Return -1 if not found. + */ +int +lookuparg(Nlist *mac, Token *tp) +{ + Token *ap; + + if (tp->type!=NAME || mac->ap==NULL) + return -1; + for (ap=mac->ap->bp; apap->lp; ap++) { + if (ap->len==tp->len && strncmp((char*)ap->t,(char*)tp->t,ap->len)==0) + return ap - mac->ap->bp; + } + return -1; +} + +/* + * Return a quoted version of the tokenrow (from # arg) + */ +#define STRLEN 512 +Tokenrow * +stringify(Tokenrow *vp) +{ + static Token t = { STRING }; + static Tokenrow tr = { &t, &t, &t+1, 1 }; + Token *tp; + uchar s[STRLEN]; + uchar *sp = s, *cp; + int i, instring; + + *sp++ = '"'; + for (tp = vp->bp; tp < vp->lp; tp++) { + instring = tp->type==STRING || tp->type==CCON; + if (sp+2*tp->len >= &s[STRLEN-10]) { + error(ERROR, "Stringified macro arg is too long"); + break; + } + if (tp->wslen && (tp->flag&XPWS)==0) + *sp++ = ' '; + for (i=0, cp=tp->t; ilen; i++) { + if (instring && (*cp=='"' || *cp=='\\')) + *sp++ = '\\'; + *sp++ = *cp++; + } + } + *sp++ = '"'; + *sp = '\0'; + sp = s; + t.len = strlen((char*)sp); + t.t = newstring(sp, t.len, 0); + return &tr; +} + +/* + * expand a builtin name + */ +void +builtin(Tokenrow *trp, int biname) +{ + char *op; + Token *tp; + Source *s; + + tp = trp->tp; + trp->tp++; + /* need to find the real source */ + s = cursource; + while (s && s->fd==-1) + s = s->next; + if (s==NULL) + s = cursource; + /* most are strings */ + tp->type = STRING; + if (tp->wslen) { + *outp++ = ' '; + tp->wslen = 1; + } + op = outp; + *op++ = '"'; + switch (biname) { + + case KLINENO: + tp->type = NUMBER; + op = outnum(op-1, s->line); + break; + + case KFILE: { + char *src = s->filename; + while ((*op++ = *src++) != 0) + if (src[-1] == '\\') + *op++ = '\\'; + op--; + break; + } + + case KDATE: + strncpy(op, curtime+4, 7); + strncpy(op+7, curtime+20, 4); + op += 11; + break; + + case KTIME: + strncpy(op, curtime+11, 8); + op += 8; + break; + + default: + error(ERROR, "cpp botch: unknown internal macro"); + return; + } + if (tp->type==STRING) + *op++ = '"'; + tp->t = (uchar*)outp; + tp->len = op - outp; + outp = op; +} diff --git a/code/tools/lcc/cpp/nlist.c b/code/tools/lcc/cpp/nlist.c new file mode 100644 index 0000000..d857dfa --- /dev/null +++ b/code/tools/lcc/cpp/nlist.c @@ -0,0 +1,104 @@ +#include +#include +#include +#include "cpp.h" + +extern int getopt(int, char *const *, const char *); +extern char *optarg; +extern int optind; +extern int verbose; +extern int Cplusplus; +Nlist *kwdefined; +char wd[128]; + +#define NLSIZE 128 + +static Nlist *nlist[NLSIZE]; + +struct kwtab { + char *kw; + int val; + int flag; +} kwtab[] = { + {"if", KIF, ISKW}, + {"ifdef", KIFDEF, ISKW}, + {"ifndef", KIFNDEF, ISKW}, + {"elif", KELIF, ISKW}, + {"else", KELSE, ISKW}, + {"endif", KENDIF, ISKW}, + {"include", KINCLUDE, ISKW}, + {"define", KDEFINE, ISKW}, + {"undef", KUNDEF, ISKW}, + {"line", KLINE, ISKW}, + {"error", KERROR, ISKW}, + {"pragma", KPRAGMA, ISKW}, + {"eval", KEVAL, ISKW}, + {"defined", KDEFINED, ISDEFINED+ISUNCHANGE}, + {"__LINE__", KLINENO, ISMAC+ISUNCHANGE}, + {"__FILE__", KFILE, ISMAC+ISUNCHANGE}, + {"__DATE__", KDATE, ISMAC+ISUNCHANGE}, + {"__TIME__", KTIME, ISMAC+ISUNCHANGE}, + {"__STDC__", KSTDC, ISUNCHANGE}, + {NULL} +}; + +unsigned long namebit[077+1]; +Nlist *np; + +void +setup_kwtab(void) +{ + struct kwtab *kp; + Nlist *np; + Token t; + static Token deftoken[1] = {{ NAME, 0, 0, 0, 7, (uchar*)"defined" }}; + static Tokenrow deftr = { deftoken, deftoken, deftoken+1, 1 }; + + for (kp=kwtab; kp->kw; kp++) { + t.t = (uchar*)kp->kw; + t.len = strlen(kp->kw); + np = lookup(&t, 1); + np->flag = kp->flag; + np->val = kp->val; + if (np->val == KDEFINED) { + kwdefined = np; + np->val = NAME; + np->vp = &deftr; + np->ap = 0; + } + } +} + +Nlist * +lookup(Token *tp, int install) +{ + unsigned int h; + Nlist *np; + uchar *cp, *cpe; + + h = 0; + for (cp=tp->t, cpe=cp+tp->len; cpt==*np->name && tp->len==np->len + && strncmp((char*)tp->t, (char*)np->name, tp->len)==0) + return np; + np = np->next; + } + if (install) { + np = new(Nlist); + np->vp = NULL; + np->ap = NULL; + np->flag = 0; + np->val = 0; + np->len = tp->len; + np->name = newstring(tp->t, tp->len, 0); + np->next = nlist[h]; + nlist[h] = np; + quickset(tp->t[0], tp->len>1? tp->t[1]:0); + return np; + } + return NULL; +} diff --git a/code/tools/lcc/cpp/tokens.c b/code/tools/lcc/cpp/tokens.c new file mode 100644 index 0000000..147569b --- /dev/null +++ b/code/tools/lcc/cpp/tokens.c @@ -0,0 +1,370 @@ +#include +#include +#include +#include "cpp.h" + +static char wbuf[2*OBS]; +static char *wbp = wbuf; + +/* + * 1 for tokens that don't need whitespace when they get inserted + * by macro expansion + */ +static const char wstab[] = { + 0, /* END */ + 0, /* UNCLASS */ + 0, /* NAME */ + 0, /* NUMBER */ + 0, /* STRING */ + 0, /* CCON */ + 1, /* NL */ + 0, /* WS */ + 0, /* DSHARP */ + 0, /* EQ */ + 0, /* NEQ */ + 0, /* LEQ */ + 0, /* GEQ */ + 0, /* LSH */ + 0, /* RSH */ + 0, /* LAND */ + 0, /* LOR */ + 0, /* PPLUS */ + 0, /* MMINUS */ + 0, /* ARROW */ + 1, /* SBRA */ + 1, /* SKET */ + 1, /* LP */ + 1, /* RP */ + 0, /* DOT */ + 0, /* AND */ + 0, /* STAR */ + 0, /* PLUS */ + 0, /* MINUS */ + 0, /* TILDE */ + 0, /* NOT */ + 0, /* SLASH */ + 0, /* PCT */ + 0, /* LT */ + 0, /* GT */ + 0, /* CIRC */ + 0, /* OR */ + 0, /* QUEST */ + 0, /* COLON */ + 0, /* ASGN */ + 1, /* COMMA */ + 0, /* SHARP */ + 1, /* SEMIC */ + 1, /* CBRA */ + 1, /* CKET */ + 0, /* ASPLUS */ + 0, /* ASMINUS */ + 0, /* ASSTAR */ + 0, /* ASSLASH */ + 0, /* ASPCT */ + 0, /* ASCIRC */ + 0, /* ASLSH */ + 0, /* ASRSH */ + 0, /* ASOR */ + 0, /* ASAND */ + 0, /* ELLIPS */ + 0, /* DSHARP1 */ + 0, /* NAME1 */ + 0, /* DEFINED */ + 0, /* UMINUS */ +}; + +void +maketokenrow(int size, Tokenrow *trp) +{ + trp->max = size; + if (size>0) + trp->bp = (Token *)domalloc(size*sizeof(Token)); + else + trp->bp = NULL; + trp->tp = trp->bp; + trp->lp = trp->bp; +} + +Token * +growtokenrow(Tokenrow *trp) +{ + int ncur = trp->tp - trp->bp; + int nlast = trp->lp - trp->bp; + + trp->max = 3*trp->max/2 + 1; + trp->bp = (Token *)realloc(trp->bp, trp->max*sizeof(Token)); + if (trp->bp == NULL) + error(FATAL, "Out of memory from realloc"); + trp->lp = &trp->bp[nlast]; + trp->tp = &trp->bp[ncur]; + return trp->lp; +} + +/* + * Compare a row of tokens, ignoring the content of WS; return !=0 if different + */ +int +comparetokens(Tokenrow *tr1, Tokenrow *tr2) +{ + Token *tp1, *tp2; + + tp1 = tr1->tp; + tp2 = tr2->tp; + if (tr1->lp-tp1 != tr2->lp-tp2) + return 1; + for (; tp1lp ; tp1++, tp2++) { + if (tp1->type != tp2->type + || (tp1->wslen==0) != (tp2->wslen==0) + || tp1->len != tp2->len + || strncmp((char*)tp1->t, (char*)tp2->t, tp1->len)!=0) + return 1; + } + return 0; +} + +/* + * replace ntok tokens starting at dtr->tp with the contents of str. + * tp ends up pointing just beyond the replacement. + * Canonical whitespace is assured on each side. + */ +void +insertrow(Tokenrow *dtr, int ntok, Tokenrow *str) +{ + int nrtok = rowlen(str); + + dtr->tp += ntok; + adjustrow(dtr, nrtok-ntok); + dtr->tp -= ntok; + movetokenrow(dtr, str); + makespace(dtr); + dtr->tp += nrtok; + makespace(dtr); +} + +/* + * make sure there is WS before trp->tp, if tokens might merge in the output + */ +void +makespace(Tokenrow *trp) +{ + uchar *tt; + Token *tp = trp->tp; + + if (tp >= trp->lp) + return; + if (tp->wslen) { + if (tp->flag&XPWS + && (wstab[tp->type] || (trp->tp>trp->bp && wstab[(tp-1)->type]))) { + tp->wslen = 0; + return; + } + tp->t[-1] = ' '; + return; + } + if (wstab[tp->type] || (trp->tp>trp->bp && wstab[(tp-1)->type])) + return; + tt = newstring(tp->t, tp->len, 1); + *tt++ = ' '; + tp->t = tt; + tp->wslen = 1; + tp->flag |= XPWS; +} + +/* + * Copy an entire tokenrow into another, at tp. + * It is assumed that there is enough space. + * Not strictly conforming. + */ +void +movetokenrow(Tokenrow *dtr, Tokenrow *str) +{ + int nby; + + /* nby = sizeof(Token) * (str->lp - str->bp); */ + nby = (char *)str->lp - (char *)str->bp; + memmove(dtr->tp, str->bp, nby); +} + +/* + * Move the tokens in a row, starting at tr->tp, rightward by nt tokens; + * nt may be negative (left move). + * The row may need to be grown. + * Non-strictly conforming because of the (char *), but easily fixed + */ +void +adjustrow(Tokenrow *trp, int nt) +{ + int nby, size; + + if (nt==0) + return; + size = (trp->lp - trp->bp) + nt; + while (size > trp->max) + growtokenrow(trp); + /* nby = sizeof(Token) * (trp->lp - trp->tp); */ + nby = (char *)trp->lp - (char *)trp->tp; + if (nby) + memmove(trp->tp+nt, trp->tp, nby); + trp->lp += nt; +} + +/* + * Copy a row of tokens into the destination holder, allocating + * the space for the contents. Return the destination. + */ +Tokenrow * +copytokenrow(Tokenrow *dtr, Tokenrow *str) +{ + int len = rowlen(str); + + maketokenrow(len, dtr); + movetokenrow(dtr, str); + dtr->lp += len; + return dtr; +} + +/* + * Produce a copy of a row of tokens. Start at trp->tp. + * The value strings are copied as well. The first token + * has WS available. + */ +Tokenrow * +normtokenrow(Tokenrow *trp) +{ + Token *tp; + Tokenrow *ntrp = new(Tokenrow); + int len; + + len = trp->lp - trp->tp; + if (len<=0) + len = 1; + maketokenrow(len, ntrp); + for (tp=trp->tp; tp < trp->lp; tp++) { + *ntrp->lp = *tp; + if (tp->len) { + ntrp->lp->t = newstring(tp->t, tp->len, 1); + *ntrp->lp->t++ = ' '; + if (tp->wslen) + ntrp->lp->wslen = 1; + } + ntrp->lp++; + } + if (ntrp->lp > ntrp->bp) + ntrp->bp->wslen = 0; + return ntrp; +} + +/* + * Debugging + */ +void +peektokens(Tokenrow *trp, char *str) +{ + Token *tp; + + tp = trp->tp; + flushout(); + if (str) + fprintf(stderr, "%s ", str); + if (tpbp || tp>trp->lp) + fprintf(stderr, "(tp offset %d) ", tp-trp->bp); + for (tp=trp->bp; tplp && tpbp+32; tp++) { + if (tp->type!=NL) { + int c = tp->t[tp->len]; + tp->t[tp->len] = 0; + fprintf(stderr, "%s", tp->t); + tp->t[tp->len] = c; + } + if (tp->type==NAME) { + fprintf(stderr, tp==trp->tp?"{*":"{"); + prhideset(tp->hideset); + fprintf(stderr, "} "); + } else + fprintf(stderr, tp==trp->tp?"{%x*} ":"{%x} ", tp->type); + } + fprintf(stderr, "\n"); + fflush(stderr); +} + +void +puttokens(Tokenrow *trp) +{ + Token *tp; + int len; + uchar *p; + + if (verbose) + peektokens(trp, ""); + tp = trp->bp; + for (; tplp; tp++) { + len = tp->len+tp->wslen; + p = tp->t-tp->wslen; + while (tplp-1 && p+len == (tp+1)->t - (tp+1)->wslen) { + tp++; + len += tp->wslen+tp->len; + } + if (len>OBS/2) { /* handle giant token */ + if (wbp > wbuf) + write(1, wbuf, wbp-wbuf); + write(1, (char *)p, len); + wbp = wbuf; + } else { + memcpy(wbp, p, len); + wbp += len; + } + if (wbp >= &wbuf[OBS]) { + write(1, wbuf, OBS); + if (wbp > &wbuf[OBS]) + memcpy(wbuf, wbuf+OBS, wbp - &wbuf[OBS]); + wbp -= OBS; + } + } + trp->tp = tp; + if (cursource->fd==0) + flushout(); +} + +void +flushout(void) +{ + if (wbp>wbuf) { + write(1, wbuf, wbp-wbuf); + wbp = wbuf; + } +} + +/* + * turn a row into just a newline + */ +void +setempty(Tokenrow *trp) +{ + trp->tp = trp->bp; + trp->lp = trp->bp+1; + *trp->bp = nltoken; +} + +/* + * generate a number + */ +char * +outnum(char *p, int n) +{ + if (n>=10) + p = outnum(p, n/10); + *p++ = n%10 + '0'; + return p; +} + +/* + * allocate and initialize a new string from s, of length l, at offset o + * Null terminated. + */ +uchar * +newstring(uchar *s, int l, int o) +{ + uchar *ns = (uchar *)domalloc(l+o+1); + + ns[l+o] = '\0'; + return (uchar*)strncpy((char*)ns+o, (char*)s, l) - o; +} diff --git a/code/tools/lcc/cpp/unix.c b/code/tools/lcc/cpp/unix.c new file mode 100644 index 0000000..a845a60 --- /dev/null +++ b/code/tools/lcc/cpp/unix.c @@ -0,0 +1,116 @@ +#include +#include +#include +#include +#include "cpp.h" + +extern int getopt(int, char *const *, const char *); +extern char *optarg, rcsid[]; +extern int optind; +int verbose; +int Mflag; /* only print active include files */ +char *objname; /* "src.$O: " */ +int Cplusplus = 1; + +void +setup(int argc, char **argv) +{ + int c, fd, i; + char *fp, *dp; + Tokenrow tr; + extern void setup_kwtab(void); + + setup_kwtab(); + while ((c = getopt(argc, argv, "MNOVv+I:D:U:F:lg")) != -1) + switch (c) { + case 'N': + for (i=0; i=0; i--) { + if (includelist[i].file==NULL) { + includelist[i].always = 1; + includelist[i].file = optarg; + break; + } + } + if (i<0) + error(FATAL, "Too many -I directives"); + break; + case 'D': + case 'U': + setsource("", -1, optarg); + maketokenrow(3, &tr); + gettokens(&tr, 1); + doadefine(&tr, c); + unsetsource(); + break; + case 'M': + Mflag++; + break; + case 'v': + fprintf(stderr, "%s %s\n", argv[0], rcsid); + break; + case 'V': + verbose++; + break; + case '+': + Cplusplus++; + break; + default: + break; + } + dp = "."; + fp = ""; + fd = 0; + if (optind + + + + +The lcc 4.1 Code-Generation Interface + + + + +

The lcc 4.1 Code-Generation Interface

+ +

Christopher +W. Fraser and David R. Hanson, Microsoft Research

+ +

Contents

+ + +
  • Introduction
  • +
  • 5.1 Type Metrics
  • +
  • 5.3 Symbols
  • +
  • 5.5 Dag Operators
  • +
  • 5.6 Interface Flags
  • +
  • 5.8 Definitions
  • +
  • 5.9 Constants
  • +
  • 5.12 Upcalls
  • +
    + +

    Introduction

    + +

    Version 4.1 is the latest release of lcc, the ANSI C compiler described in +our book A Retargetable C Compiler: Design and Implementation +(Addison-Wesley, 1995, ISBN 0-8053-1670-1). This document summarizes the differences +between the 4.1 code-generation interface and the 3.x interface described in Chap. 5 of A +Retargetable C Compiler.

    + +

    Previous versions of lcc supported only three sizes of integers, two sizes of floats, +and insisted that pointers fit in unsigned integers (see Sec. 5.1 of A Retargetable +C Compiler). These assumptions simplified the compiler, and were suitable for +32-bit architectures. But on 64-bit architectures, such as the DEC ALPHA, it's natural to +have four sizes of integers and perhaps three sizes of floats, and on 16-bit +architectures, 32-bit pointers don't fit in unsigned integers. Also, the 3.x constaints +limited the use of lcc's back ends for other languages, such as Java.

    + +

    Version 4.x removes all of these restrictions: It supports any number of sizes for +integers and floats, and the size of pointers need not be related to the size of any of +the integer types. The major changes in the code-generation interface are: + +

      +
    • The number of type suffixes has been reduced to 6.
    • +
    • Dag operators are composed of a generic operator, a type suffix, and a size.
    • +
    • Unsigned variants of several operators have been added.
    • +
    • Several interface functions have new signatures.
    • +
    + +

    In addition, version 4.x is written in ANSI C and uses the standard I/O library and +other standard C functions.

    + +

    The sections below parallel the subsections of Chap. 5 of A Retargetable C +Compiler and summarize the differences between the 3.x and 4.x code-generation +interface. Unaffected subsections are omitted. Page citations refer to pages in A +Retargetable C Compiler.

    + +

    5.1 Type Metrics

    + +

    There are now 10 metrics in an interface record:

    + +
    Metrics charmetric;
    +Metrics shortmetric;
    +Metrics intmetric;
    +Metrics longmetric;
    +Metrics longlongmetric;
    +Metrics floatmetric;
    +Metrics doublemetric;
    +Metrics longdoublemetric;
    +Metrics ptrmetric;
    +Metrics structmetric;
    + +

    Each of these specifies the size and alignment of the corresponding type. ptrmetric +describes all pointers.

    + +

    5.3 Symbols

    + +

    The actual value of a constant is stored in the u.c.v field of a symbol, +which holds a Value:

    + +
    typedef union value {
    +	long i;
    +	unsigned long u;
    +	long double d;
    +	void *p;
    +	void (*g)(void);
    +} Value;
    + +

    The value is stored in the appropriate field according to its type, which is given by +the symbol's type field.

    + +

    5.5 Dag Operators

    + +

    The op field a of node structure holds a dag operator, which +consists of a generic operator, a type suffix, and a size indicator. The type suffixes +are:

    + +
    enum {
    +	F=FLOAT,
    +	I=INT,
    +	U=UNSIGNED,
    +	P=POINTER,
    +	V=VOID,
    +	B=STRUCT
    +};
    +
    +#define sizeop(n) ((n)<<10)
    + +

    Given a generic operator o, a type suffix t, and a size s, +a type- and size-specific operator is formed by o+t+sizeop(s). For example, ADD+F+sizeop(4) +forms the operator ADDF4, which denotes the sum of two 4-byte floats. +Similarly, ADD+F+sizeop(8) forms ADDF8, which denotes 8-byte +floating addition. In the 3.x code-generation interface, ADDF and ADDD +denoted these operations. There was no size indicator in the 3.x operators because the +type suffix supplied both a type and a size.

    + +

    Table 5.1 lists each generic operator, its valid type suffixes, and the number of kids +and syms that it uses; multiple values for kids indicate +type-specific variants. The notations in the syms column give the number +of syms values and a one-letter code that suggests their uses: 1V indicates +that syms[0] points to a symbol for a variable, 1C indicates that syms[0] +is a constant, and 1L indicates that syms[0] is a label. For 1S, syms[0] +is a constant whose value is a size in bytes; 2S adds syms[1], which is a +constant whose value is an alignment. For most operators, the type suffix and size +indicator denote the type and size of operation to perform and the type and size of the +result.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Table 5.1|Node Operators.
    symskidsOperatorType SuffixesSizesOperation
    1V0ADDRF...P..paddress of a parameter
    1V0ADDRG...P..paddress of a global
    1V0ADDRL...P..paddress of a local
    1C0CNSTFIUP..fdx csilh pconstant
    |
    1BCOM.IU...ilhbitwise complement
    1S1CVFFI....fdx ilhconvert from float
    1S1CVIFIU...fdx csilh csilhpconvert from signed integer
    1S1CVP..U..pconvert from pointer
    1S1CVU.IUP..csilh pconvert from unsigned integer
    1INDIRFIUP.Bfdx csilh pfetch
    1NEGFI....fdx ilhnegation
    |
    2ADDFIUP..fdx ilh ilhp paddition
    2BAND.IU...ilhbitwise AND
    2BOR.IU...ilhbitwise inclusive OR
    2BXOR.IU...ilhbitwise exclusive OR
    2DIVFIU...fdx ilhdivision
    2LSH.IU...ilhleft shift
    2MOD.IU...ilhmodulus
    2MULFIU...fdx ilhmultiplication
    2RSH.IU...ilhright shift
    2SUBFIUP..fdx ilh ilhp psubtraction
    |
    2S2ASGNFIUP.Bfdx csilh passignment
    1L2EQFIU...fdx ilh ilhpjump if equal
    1L2GEFIU...fdx ilh ilhpjump if greater than or equal
    1L2GTFIU...fdx ilh ilhpjump if greater than
    1L2LEFIU...fdx ilh ilhpjump if less than or equal
    1L2LTFIU...fdx ilh ilhpjump if less than
    1L2NEFIU...fdx ilh ilhpjump if not equal
    2S1ARGFIUP.Bfdx ilh pargument
    11 or 2CALLFIUPVBfdx ilh pfunction call
    1RETFIUPV.fdx ilh preturn from function
    |
    1JUMP....V.unconditional jump
    1L0LABEL....V.label definition
    + +

    The entries in the Sizes column indicate sizes of the operators that +back ends must implement. Letters denote the size of float (f), double (d), long double +(x), character (c), short integer (s), integer (i), long integer (l), "long +long" integer (h) , and pointer (p). These sizes are separated into sets for each +type suffix, except that a single set is used for both I and U when the set for I is +identical to the set for U.

    + +

    The actual values for the size indicators, fdxcsilhp, depend on the target. A +specification like ADDFf denotes the operator ADD+F+sizeop(f), +where "f" is replaced by a target-dependent value, e.g., ADDF4 and ADDF8. +For example, back ends must implement the following CVI and MUL +operators.

    + +
    +

    CVIFf CVIFd CVIFx
    + CVIIc CVIIs CVIIi CVIIl CVIIh
    + CVIUc CVIUs CVIUi CVIUl CVIUh + CVIUp
    +
    + MULFf MULFd MULFx
    + MULIi MULIl MULIh
    + MULUi MULUl MULUh

    +
    + +

    On most platforms, there are fewer than three sizes of floats and six sizes of +integers, and pointers are usually the same size as one of the integers. And lcc doesn't +support the "long long" type, so h is not currently used. So the set of +platform-specific operators is usually smaller than the list above suggests. For example, +the X86, SPARC, and MIPS back ends implement the following CVI and MUL +operators.

    + +
    +

    CVIF4 CVIF8
    + CVII1 CVII2 CVII4
    + CVIU1 CVIU2 CVIU4
    +
    + MULF4 MULF8
    + MULI4
    + MULU4

    +
    + +

    The set of operators is thus target-dependent; for example, ADDI8 appears +only if the target supports an 8-byte integer type. ops.c is +a program that, given a set of sizes, prints the required operators and their values, +e.g.,

    + +
    +
    % ops c=1 s=2 i=4 l=4 h=4 f=4 d=8 x=8 p=4
    +...
    + CVIF4=4225 CVIF8=8321
    + CVII1=1157 CVII2=2181 CVII4=4229
    + CVIU1=1158 CVIU2=2182 CVIU4=4230
    +...
    + MULF4=4561 MULF8=8657
    + MULI4=4565
    + MULU4=4566
    +...
    +131 operators
    +
    + +

    The type suffix for a conversion operator denotes the type of the result and the size +indicator gives the size of the result. For example, CVUI4 converts an +unsigned (U) to a 4-byte signed integer (I4). The syms[0] +field points to a symbol-table entry for a integer constant that gives the size of the +source operand. For example, if syms[0] in a CVUI4 points to a +symbol-table entry for 2, the conversion widens a 2-byte unsigned integer to a 4-byte +signed integer. Conversions that widen unsigned integers zero-extend; those that widen +signed integers sign-extend.

    + +

    The front end composes conversions between types T1 and T2 +by widening T1 to it's "supertype", if necessary, converting +that result to T2's supertype, then narrowing the result to T2, +if necessary. The following table lists the supertypes; omitted entries are their own +supertypes.

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Type|Supertype
    signed charint
    signed shortint
    unsigned charint, if sizeof (char) < sizeof (int)
    + unsigned, otherwise
    unsigned shortint, if sizeof (short) < sizeof (int)
    + unsigned, otherwise
    void *an unsigned type as large as a pointer
    +
    + +

    Pointers are converted to an unsigned type of the same size, even when that type is not +one of the integer types.

    + +

    For example, the front end converts a signed short to a float by first converting it to +an int and then to a float. It converts an unsigned short to an int with a single CVUIi +conversion, when shorts are smaller than ints.

    + +

    There are now signed and unsigned variants of ASGN, INDIR, BCOM, +BOR, BXOR, BAND, ARG, CALL, +and RET to simplify code generation on platforms that use different +instructions or register set for signed and unsigned operations. Likewise there are now +pointer variants of ASGN, INDIR, ARG, CALL, +and RET.

    + +

    5.6 Interface Flags

    + +
    unsigned unsigned_char:1;
    + +

    tells the front end whether plain characters are signed or unsigned. If it's zero, char +is a signed type; otherwise, char is an unsigned type.

    + +

    All the interface flags can be set by command-line options, e.g., -Wf-unsigned_char=1 +causes plain characters to be unsigned.

    + +

    5.8 Definitions

    + +

    The front end announces local variables by calling

    + +
    void (*local)(Symbol);
    + +

    It announces temporaries likewise; these have the symbol's temporary flag +set, which indicates that the symbol will be used only in the next call to gen. +If a temporary's u.t.cse field is nonnull, it points to the node that +computes the value assigned to the temporary; see page 346.

    + +

    The front end calls

    + +
    void (*address)(Symbol p, Symbol q, long n);
    + +

    to initialize q to a symbol that represents an address of the form x+n, +where x is the address represented by p and the long integer n +is positive or negative.

    + +

    5.9 Constants

    + +

    The interface function

    + +
    void (*defconst)(int suffix, int size, Value v);
    + +

    initializes constants. defconst emits directives to define a cell and initialize it to +a constant value. v is the constant value, suffix identifies the type of the value, and +size is the size of the value in bytes. The value of suffix indicates which field of v +holds the value, as shown in the following table.

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    suffix|v Field|size
    Fv.dfloat, double, long double
    Iv.isigned char, signed short, signed int, signed long
    Uv.uunsigned char, unsigned short, unsigned int, unsigned long
    Pv.pvoid *
    +
    + +

    defconst must narrow v.x when size is less than sizeof +v.x; e.g., to emit an unsigned char, defconst should emit (unsigned +char)v.i.

    + +

    5.12 Upcalls

    + +

    lcc 4.x uses standard I/O and its I/O functions have been changed accordingly. lcc +reads input from the standard input, emits code to the standard output, and writes +diagnostics to the standard error output. It uses freopen to redirect these +streams to explicit files, when necessary.

    + +

    bp, outflush, and outs have been eliminated.

    + +
    extern void fprint(FILE *f, const char *fmt, ...);
    +extern void  print(const char *fmt, ...);
    + +

    print formatted data to file f (fprint) or the standard +output (print). These functions are like standard C's printf and +fprintf, but support only some of the standard conversion specifiers and do +not support flags, precision, and field-width specifications. They support the following +new conversion specifiers in addition to those described on page 99.

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Specifiers|Corresponding printf Specifiers
    %c%c
    %d %D%d %ld
    %u %U%u %lu
    %x %X%x %lx
    %f %e %g%e %f %g
    %pConverts the corresponding void * argument to unsigned long and prints it with the printf + %#x specifier or just %x when the argument is null.
    %IPrints the number of spaces given by the corresponding argument.
    +
    + +
    #define generic(op)  ((op)&0x3F0)
    +#define specific(op) ((op)&0x3FF)
    + +

    generic(op) returns the generic variant of op; that is, +without its type suffix and size indicator. specific(op) returns the +type-specific variant of op; that is, without its size indicator.

    + +

    newconst has been replaced by

    + +
    extern Symbol intconst(int n);
    + +

    which installs the integer constant n in the symbol table, if necessary, +and returns a pointer to the symbol-table entry.

    + +
    + +
    + Chris Fraser / cwfraser@microsoft.com
    + David Hanson / drh@microsoft.com
    + $Revision: 145 $ $Date: 2001-10-17 16:53:10 -0500 (Wed, 17 Oct 2001) $ +
    + + diff --git a/code/tools/lcc/doc/bprint.1 b/code/tools/lcc/doc/bprint.1 new file mode 100644 index 0000000..8cf9971 --- /dev/null +++ b/code/tools/lcc/doc/bprint.1 @@ -0,0 +1,83 @@ +.\" $Id: bprint.1 145 2001-10-17 21:53:10Z timo $ +.TH BPRINT 1 "local \- $Date: 2001-10-17 16:53:10 -0500 (Wed, 17 Oct 2001) $" +.SH NAME +bprint \- expression profiler +.SH SYNOPSIS +.B bprint +[ +.I option ... +] +[ +.I file ... +] +.SH DESCRIPTION +.I bprint +produces on the standard output a listing of the programs compiled by +.I lcc +with the +.B \-b +option. +Executing an +.B a.out +so compiled appends profiling data to +.BR prof.out . +The first token of each expression in the listing is preceded +by the number of times it was executed +enclosed in angle brackets as determined from the data in +.BR prof.out . +.I bprint +interprets the following options. +.TP +.B \-c +Compress the +.B prof.out +file, which otherwise grows with every execution of +.BR a.out . +.TP +.B \-b +Print an annotated listing as described above. +.TP +.B \-n +Include line numbers in the listing. +.TP +.B \-f +Print only the number of invocations of each function. +A second +.B \-f +summarizes call sites instead of callers. +.TP +.BI \-I \*Sdir +specifies additional directories in which to seek +files given in +.B prof.out +that do not begin with `/'. +.PP +If any file names are given, only the requested data for those files are printed +in the order presented. +If no options are given, +.B \-b +is assumed. +.SH FILES +.PP +.ta \w'$LCCDIR/liblcc.{a,lib}XX'u +.nf +prof.out profiling data +$LCCDIR/liblcc.{a,lib} \fIlcc\fP-specific library +.SH "SEE ALSO" +.IR lcc (1), +.IR prof (1) +.SH BUGS +Macros and comments can confuse +.I bprint +because it uses post-expansion source coordinates +to annotate pre-expansion source files. +If +.I bprint +sees that it's about to print a statement count +.I inside +a number or identifier, it moves the count to just +.I before +the token. +.PP +Can't cope with an ill-formed +.BR prof.out . diff --git a/code/tools/lcc/doc/bprint.pdf b/code/tools/lcc/doc/bprint.pdf new file mode 100644 index 0000000..1b11963 Binary files /dev/null and b/code/tools/lcc/doc/bprint.pdf differ diff --git a/code/tools/lcc/doc/install.html b/code/tools/lcc/doc/install.html new file mode 100644 index 0000000..3cc59a8 --- /dev/null +++ b/code/tools/lcc/doc/install.html @@ -0,0 +1,796 @@ + + + + + +Installing lcc + + + + +

    Installing lcc

    + +

    Christopher +W. Fraser and David R. Hanson, Microsoft Research

    + +

    Contents

    + + +
  • Introduction
  • +
  • Installation on UNIX
  • +
  • Building the Driver
  • +
  • Building the Compiler and Accessories
  • +
  • Installation on Windows NT 4.0 and Windows 95/98
  • +
  • Reporting Bugs
  • +
  • Keeping in Touch
  • +
    + +

    Introduction

    + +

    lcc is the ANSI C compiler +described in our book A Retargetable C Compiler: Design and Implementation +(Addison-Wesley, 1995, ISBN 0-8053-1670-1).

    + +

    If you're installing lcc on a UNIX system, read the remainder of this section and +continue with the next section. If you're installing lcc on a Windows NT 4.0 or Windows +95/98 system, and you intend only to use lcc, you can run the InstallShield executable, +which installs the binaries and the documentation. If you want to modify lcc or rebuild +it from the source files, you need the complete distribution, and +you should read the rest of the section, the following three sections, and the Windows NT/95/98 section.

    + +

    Extract the distribution into its own directory. All non-absolute paths below are +relative to this directory. The distribution holds the following subdirectories.

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    srcsource code
    etcdriver, accessories
    libruntime library source code
    cpppreprocessor source code
    lburgcode-generator generator source code
    docthis document, man pages
    include/*/*include files
    tsttest suite
    alpha/*/tstALPHA test outputs
    mips/*/tstMIPS test outputs
    sparc/*/tstSPARC test outputs
    x86/*/tstX86 test outputs
    +
    + +

    doc/install.html is the HTML file for this document. doc/4.html +describes the internal differences between lcc 3.x and 4.1.

    + +

    The installation makefile is designed so that lcc can be installed from a read-only +file system or directory, which is common in networked environments, so the distribution +can be unloaded on a central file server. You will need an existing ANSI/ISO C +compiler to build and install lcc.

    + +

    Installation on UNIX

    + +

    The compilation components (the preprocessor, include files, and compiler proper, etc.) +are installed in a single build directory. On multi-platform systems supported by +a central file server, it's common to store the build directory in a location specific to +the platform and to the version of lcc, and to point a symbolic link to this location. For +example,

    + +
    +
    % ln -s /usr/local/lib/lcc-4.1/sparc-solaris /usr/local/lib/lcc
    +
    + +

    points /usr/local/lib/lcc to a build directory for lcc version 4.1 on the +SPARC under Solaris. Links into /usr/local/lib are created for the programs lcc +and bprint. Thus, a new distribution can be installed by building it in its +own build directory and changing one symbolic link to point to that directory. If these +conventions or their equivalents are followed, the host-specific parts of the driver +program, lcc, can be used unmodified.

    + +

    Installation on a UNIX system involves the following steps. Below, the build directory +is referred to as BUILDDIR. + +

      +
    1. Create the build directory, using a version- and platform-specific naming convention as + suggested above, and record the name of this directory in the BUILDDIR + environment variable:
      +
      % setenv BUILDDIR /usr/local/lib/lcc-4.1/sparc-solaris
      +% mkdir -p $BUILDDIR
      +
      +

      Here and below, commands assume the C shell. Also, you'll need a version of mkdir + that supports the -p option, which creates intermediate directories as + necessary.

      +
    2. +
    3. Copy the man pages to the repository for local man pages, e.g.,
      +
      % cp doc/*.1 /usr/local/man/man1
      +
      +

      Some users copy the man pages to the build directory and create the appropriate + symbolic links, e.g.,

      +
      +
      % cp doc/*.1 $BUILDDIR
      +% ln -s $BUILDDIR/*.1 /usr/local/man/man1
      +
      +
    4. +
    5. Platform-specific include files are in directories named include/target/os. + Create the include directory in the build directory, and copy the include hierarchy for + your platform to this directory, e.g.,
      +
      % mkdir $BUILDDIR/include
      +% cp -p -R include/sparc/solaris/* $BUILDDIR/include
      +
      +

      Again, some users create a symbolic link to the appropriate directory in the + distribution instead of copying the include files. For example, at Princeton, the + distributions are stored under /proj/pkg/lcc, so the included files are + "installed" by creating one symbolic link:

      +
      +
      % ln -s /proj/pkg/lcc/4.1/include/sparc/solaris $BUILDDIR/include
      +
      +

      If you're installing lcc on Linux, you must also plant a symbolic link named gcc + to gcc's library directory, because lcc uses gcc's C preprocessor and most of gcc's header + files:

      +
      +
      % ln -s /usr/lib/gcc-lib/i486-linux/2.7.2.2 $BUILDDIR/gcc
      +
      +

      The library directory shown above may be different on your Linux machine; to determine + the correct directory, browse /usr/lib/gcc-lib, or execute

      +
      +
      % cc -v tst/8q.c
      +
      +

      and examine the diagnostic output. Make sure that $BUILDDIR/gcc/cpp and $BUILDDIR/gcc/include + point to, respectively, gcc's C preprocessor and header files. On Linux, lcc looks for + include files in $BUILDDIR/include, $BUILDDIR/gcc/include, and /usr/include, + in that order; see Building the Driver and etc/linux.c for details.

      +
    6. +
    7. The makefile includes the file named by the CUSTOM + macro; the default is custom.mk, and an empty custom.mk is + included in the distribution. If desired, prepare a site-specification customization file + and define CUSTOM to the path of that file when invoking make in steps 5 and + 6, e.g.,
      +
      make CUSTOM=/users/drh/solaris.mk
      +
      +

      You can, for example, use customization files to record site-specific values for macros + instead of using environment variables, and to record targets for the steps in this list.

      +
    8. +
    9. Build the host-specific driver, creating a custom host-specific part, if necessary. See Building the Driver.
    10. +
    11. Build the preprocessor, compiler proper, library, and other accessories. See Building the Compiler.
    12. +
    13. Plant symbolic links to the build directory and to the installed programs, e.g.,
      +
      % ln -s $BUILDDIR /usr/local/lib/lcc
      +% ln -s /usr/local/lib/{lcc,bprint} /usr/local/bin
      +
      +

      Some users copy bprint and lcc into /usr/local/bin + instead of creating symbolic links. The advantange of creating the links for lcc + and bprint as shown is that, once established, they point indirectly to + whatever /usr/local/lib/lcc points to; installing a new version of lcc, say, + 4.2, can be done by changing /usr/local/lib/lcc to point to the 4.2 build + directory.

      +
    14. +
    + +

    Building the Driver

    + +

    The preprocessor, compiler, assembler, and loader are invoked by a driver program, lcc, +which is similar to cc on most systems. It's described in the man page doc/lcc.1. +The driver is built by combining the host-independent part, etc/lcc.c, +with a small host-specific part. Distributed host-specific parts are named etc/os.c, +where os is the name of the operating system for the host on which lcc +is being installed. If you're following the installations conventions described above, you +can probably use one of the host-specific parts unmodified; otherwise, pick one that is +closely related to your platform, copy it to whatever.c, and edit it +as described below. You should not have to edit etc/lcc.c.

    + +

    We'll use etc/solaris.c as an example in +describing how the host-specific part works. This example illustrates all the important +features. Make sure you have the environment variable BUILDDIR set correctly, +and build the driver with a make command, e.g.,

    + +
    +
    % make HOSTFILE=etc/solaris.c lcc
    +cc -g -c -DTEMPDIR=\"/tmp\" -o /usr/local/lib/lcc-4.1/sparc-solaris/lcc.o etc/lcc.c
    +cc -g -c -o /usr/local/lib/lcc-4.1/sparc-solaris/host.o etc/solaris.c
    +cc -g -o /usr/local/lib/lcc-4.1/sparc-solaris/lcc /usr/local/lib/lcc-4.1/sparc-solaris/lcc.o /usr/local/lib/lcc-4.1/sparc-solaris/host.o
    +
    + +

    The symbolic name HOSTFILE specifies the path to the host-specific part, +either one in the distribution or whatever.c. Some versions of make +may require the -e option in order to read the environment.

    + +

    Here's etc/solaris.c:

    + +
    +
    /* Sparcs running Solaris 2.5.1 at CS Dept., Princeton University */
    +
    +#include <string.h>
    +
    +static char rcsid[] = "$ Id: solaris.c,v 1.10 1998/09/14 20:36:33 drh Exp $";
    +
    +#ifndef LCCDIR
    +#define LCCDIR "/usr/local/lib/lcc/"
    +#endif
    +#ifndef SUNDIR
    +#define SUNDIR "/opt/SUNWspro/SC4.2/lib/"
    +#endif
    +
    +char *suffixes[] = { ".c", ".i", ".s", ".o", ".out", 0 };
    +char inputs[256] = "";
    +char *cpp[] = { LCCDIR "cpp",
    +	"-D__STDC__=1", "-Dsparc", "-D__sparc__", "-Dsun", "-D__sun__", "-Dunix",
    +	"$1", "$2", "$3", 0 };
    +char *include[] = { "-I" LCCDIR "include", "-I/usr/local/include",
    +	"-I/usr/include", 0 };
    +char *com[] = { LCCDIR "rcc", "-target=sparc/solaris",
    +	"$1", "$2", "$3", 0 };
    +char *as[] = { "/usr/ccs/bin/as", "-Qy", "-s", "-o", "$3", "$1", "$2", 0 };
    +char *ld[] = { "/usr/ccs/bin/ld", "-o", "$3", "$1",
    +	SUNDIR "crti.o", SUNDIR "crt1.o",
    +	SUNDIR "values-xa.o", "$2", "",
    +	"-Y", "P," SUNDIR ":/usr/ccs/lib:/usr/lib", "-Qy",
    +	"-L" LCCDIR, "-llcc", "-lm", "-lc", SUNDIR "crtn.o", 0 };
    +
    +extern char *concat(char *, char *);
    +
    +int option(char *arg) {
    +	if (strncmp(arg, "-lccdir=", 8) == 0) {
    +		cpp[0] = concat(&arg[8], "/cpp");
    +		include[0] = concat("-I", concat(&arg[8], "/include"));
    +		ld[12] = concat("-L", &arg[8]);
    +		com[0] = concat(&arg[8], "/rcc");
    +	} else if (strcmp(arg, "-p") == 0) {
    +		ld[5] = SUNDIR "mcrt1.o";
    +		ld[10] = "P," SUNDIR "libp:/usr/ccs/lib/libp:/usr/lib/libp:"
    +			 SUNDIR ":/usr/ccs/lib:/usr/lib";
    +	} else if (strcmp(arg, "-b") == 0)
    +		;
    +	else if (strncmp(arg, "-ld=", 4) == 0)
    +		ld[0] = &arg[4];
    +	else
    +		return 0;
    +	return 1;
    +}
    +
    + +

    LCCDIR defaults to "/usr/local/lib/lcc/" unless +it's defined by a -D option as part of CFLAGS in the make +command, e.g.,

    + +
    +
    % make HOSTFILE=etc/solaris.c CFLAGS='-DLCCDIR=\"/v/lib/lcc/\"' lcc
    +
    + +

    Note the trailing slash; SUNDIR is provided so you can use etc/solaris.c +even if you have a different version of the Sun Pro compiler suite. If you're using the +gcc compiler tools instead of the Sun Pro tools, see etc/gcc-solaris.c.

    + +

    Most of the host-specific code is platform-specific data and templates for the commands +that invoke the preprocessor, compiler, assembler, and loader. The suffixes +array lists the file name suffixes for C source files, preprocessed source files, assembly +language source files, object files, and executable files. suffixes must be +terminated with a null pointer, as shown above. The initialization of suffixes +in etc/solaris.c are the typical ones for UNIX +systems. Each element of suffixes is actually a list of suffixes, separated +by semicolons; etc/win32.c holds an example:

    + +
    +
    char *suffixes[] = { ".c;.C", ".i;.I", ".asm;.ASM;.s;.S", ".obj;.OBJ", ".exe", 0 };
    +
    + +

    When a list is given, the first suffix is used whenever lcc needs to generate a file +name. For example, with etc/win32.c, lcc emits +the generated assembly code into .asm files.

    + +

    The inputs array holds a null-terminated string of directories separated +by colons or semicolons. These are used as the default value of LCCINPUTS, if +the environment variable LCCINPUTS is not set; see the man +page.

    + +

    Each command template is an array of pointers to strings terminated with a null +pointer; the strings are full path names of commands, arguments, or argument placeholders, +which are described below. Commands are executed in a child process, and templates can +contain multiple commands by separating commands with newlines. The driver runs each +command in a new process.

    + +

    The cpp array gives the command for running lcc's preprocessor, cpp. +Literal arguments specified in templates, e.g., "-Dsparc" in the cpp +command above, are passed to the command as given.

    + +

    The strings "$1", "$2", and "$3" +in templates are placeholders for lists of arguments that are substituted in a +copy of the template before the command is executed. $1 is replaced by the options +specified by the user; for the preprocessor, this list always contains at least -D__LCC__. +$2 is replaced by the input files, and $3 is replaced +by the output file.

    + +

    Zero-length arguments after replacement are removed from the argument list before the +command is invoked. So, for example, if the preprocessor is invoked without an output +file, "$3" becomes "", which is removed from +the final argument list.

    + +

    The include array is a list of -I options that specify which +directives should be searched to satisfy include directives. These directories are +searched in the order given. The first directory should be the one to which the ANSI +header files were copied as described in UNIX or Windows +installation instructions. The driver adds these options to cpp's arguments +when it invokes the preprocessor, except when -N is specified.

    + +

    com gives the command for invoking the compiler. This template can appear +as shown above in a custom host-specific part, but the option -target=sparc/solaris +should be edited to the target/os for your platform. If com[1] +includes the string "win32", the driver assumes it's running on +Windows. lcc can generate code for all of the target/os +combinations listed in the file src/bind.c. The -target option +specifies the default combination. The driver's -Wf option can be used to +specify other combinations; the man page elaborates.

    + +

    as gives the command for invoking the assembler. On Linux, you must be +running at least version 2.8.1 of the GNU assembler; earlier versions mis-assemble some +instructions emitted by lcc.

    + +

    ld gives the command for invoking the loader. For the other commands, the +list $2 contains a single file; for ld, $2 contains +all ".o" files and libraries, and $3 is a.out, unless +the -o option is specified. As suggested in the code above, ld +must also specify the appropriate startup code and default libraries, including the lcc +library, liblcc.a.

    + +

    The option function is described below; the minimal option +function just returns 0.

    + +

    You can test lcc with the options -v -v to display the +commands that would be executed, e.g.,

    + +
    +
    % $BUILDDIR/lcc -v -v foo.c baz.c mylib.a -lX11
    +/usr/local/lib/lcc-4.1/lcc $ Id: solaris.c,v 1.10 1998/09/14 20:36:33 drh Exp $
    +foo.c:
    +/usr/local/lib/lcc/cpp -D__STDC__=1 -Dsparc -D__sparc__ -Dsun -D__sun__ -Dunix -D__LCC__ -I/usr/local/lib/lcc/include -I/usr/local/include -I/usr/include foo.c /tmp/lcc266290.i
    +/usr/local/lib/lcc/rcc -target=sparc/solaris -v /tmp/lcc266290.i /tmp/lcc266291.
    +s
    +/usr/ccs/bin/as -Qy -s -o /tmp/lcc266292.o /tmp/lcc266291.s
    +baz.c:
    +/usr/local/lib/lcc/cpp -D__STDC__=1 -Dsparc -D__sparc__ -Dsun -D__sun__ -Dunix -D__LCC__ -I/usr/local/lib/lcc/include -I/usr/local/include -I/usr/include baz.c /tmp/lcc266290.i
    +/usr/local/lib/lcc/rcc -target=sparc/solaris -v /tmp/lcc266290.i /tmp/lcc266291.s
    +/usr/ccs/bin/as -Qy -s -o /tmp/lcc266293.o /tmp/lcc266291.s
    +/usr/ccs/bin/ld -o a.out /opt/SUNWspro/SC4.2/lib/crti.o /opt/SUNWspro/SC4.2/lib/crt1.o /opt/SUNWspro/SC4.2/lib/values-xa.o /tmp/lcc266292.o /tmp/lcc266293.o mylib.a -lX11 -Y P,/opt/SUNWspro/SC4.2/lib/:/usr/ccs/lib:/usr/lib -Qy -L/usr/local/lib/lcc/ -llcc -lm -lc /opt/SUNWspro/SC4.2/lib/crtn.o
    +rm /tmp/lcc266293.o /tmp/lcc266290.i /tmp/lcc266291.s /tmp/lcc266292.o
    +
    + +

    As the output shows, lcc places temporary files in /tmp; if +any of the environment variables TMP, TEMP, and TMPDIR +are set, they override this default (in the order shown) as does the -tempdir=dir +option. The default can be changed by defining TEMPDIR in CFLAGS +when building the driver.

    + +

    The option function is called for the options -Wo, -g, +-p, -pg, and -b because these compiler options +might also affect the loader's arguments. For these options, the driver calls option(arg) +to give the host-specific code an opportunity to edit the ld command, if +necessary. option can change ld, if necessary, and return 1 to +announce its acceptance of the option. If the option is unsupported, option +should return 0.

    + +

    For example, in response to -g, the option function shown +above accepts the option but does nothing else, because the ld and as +commands don't need to be modified on the SPARC. -g will also be added to the +compiler's options by the host-independent part of the driver. The -p causes option +to change the name of the startup code and changed the list of libraries. The -b +option turns on lcc's per-expression profiling, the code for which is in liblcc.a, +so option need no nothing.

    + +

    On SPARCs, the driver also recognizes -Bstatic and -Bdynamic +as linker options. The driver recognizes but ignores "-target name" +option.

    + +

    The option -Woarg causes the driver to pass arg to option. +Such options have no other effect; this mechanism is provided to support system-specific +options that affect the commands executed by the driver. As illustrated above, +host-specific parts should support the -Wo-lccdir=dir option, which +causes lcc's compilation components to be found in dir, because this option is +used by the test scripts, and because the driver simulates a -Wo-lccdir +option with the value of the environment variable LCCDIR, if it's defined. +The code above rebuilds the paths to the include files, preprocessor, compiler, and +library by calling concat, which is defined in etc/lcc.c.

    + +

    Building the Compiler and Accessories

    + +

    To build the rest of compilation components make sure BUILDDIR is set +appropriately and type "make all". This command builds librcc.a +(the compiler's private library), rcc (the compiler proper), lburg +(the code-generator generator), cpp (the preprocessor), liblcc.a +(the runtime library), and bprint (the profile printer), all in BUILDDIR. +There may be warnings, but there should be no errors. If you're using an ANSI/ISO compiler +other than cc, specify its name with the CC= option, e.g., +"make CC=gcc all". If you're running on a DEC ALPHA, use "make +CC='cc -std1' all"; the -std1 option is essential on the ALPHA. +If you're on a DEC 5000 running Ultrix 4.3, use "make CC=c89 all".

    + +

    Once rcc is built with the host C compiler, run the test suite to verify +that rcc is working correctly. If any of the steps below fail, contact us +(see Reporting Bugs). The commands in the makefile run the +shell script src/run.sh on each C program in the test suite, tst/*.c. +It uses the driver, $BUILDDIR/lcc, so you must have the driver in the build +directory before testing rcc. The target/os +combination is read from the variable TARGET, which must be specified when +invoking make:

    + +
    +
    % make TARGET=sparc/solaris test
    +mkdir -p /usr/local/lib/lcc-4.1/sparc-solaris/sparc/solaris/tst
    +/usr/local/lib/lcc-4.1/sparc-solaris/rcc -target=sparc/solaris /usr/local/lib/lcc-4.1/sparc-solaris/sparc/solaris/tst/8q.s:
    +/usr/local/lib/lcc-4.1/sparc-solaris/rcc -target=sparc/solaris /usr/local/lib/lcc-4.1/sparc-solaris/sparc/solaris/tst/array.s:
    +/usr/local/lib/lcc-4.1/sparc-solaris/rcc -target=sparc/solaris /usr/local/lib/lcc-4.1/sparc-solaris/sparc/solaris/tst/cf.s:
    +/usr/local/lib/lcc-4.1/sparc-solaris/rcc -target=sparc/solaris /usr/local/lib/lcc-4.1/sparc-solaris/sparc/solaris/tst/cq.s:
    +/usr/local/lib/lcc-4.1/sparc-solaris/rcc -target=sparc/solaris /usr/local/lib/lcc-4.1/sparc-solaris/sparc/solaris/tst/cvt.s:
    +/usr/local/lib/lcc-4.1/sparc-solaris/rcc -target=sparc/solaris /usr/local/lib/lcc-4.1/sparc-solaris/sparc/solaris/tst/fields.s:
    +/usr/local/lib/lcc-4.1/sparc-solaris/rcc -target=sparc/solaris /usr/local/lib/lcc-4.1/sparc-solaris/sparc/solaris/tst/front.s:
    +/usr/local/lib/lcc-4.1/sparc-solaris/rcc -target=sparc/solaris /usr/local/lib/lcc-4.1/sparc-solaris/sparc/solaris/tst/incr.s:
    +/usr/local/lib/lcc-4.1/sparc-solaris/rcc -target=sparc/solaris /usr/local/lib/lcc-4.1/sparc-solaris/sparc/solaris/tst/init.s:
    +/usr/local/lib/lcc-4.1/sparc-solaris/rcc -target=sparc/solaris /usr/local/lib/lcc-4.1/sparc-solaris/sparc/solaris/tst/limits.s:
    +/usr/local/lib/lcc-4.1/sparc-solaris/rcc -target=sparc/solaris /usr/local/lib/lcc-4.1/sparc-solaris/sparc/solaris/tst/paranoia.s:
    +/usr/local/lib/lcc-4.1/sparc-solaris/rcc -target=sparc/solaris /usr/local/lib/lcc-4.1/sparc-solaris/sparc/solaris/tst/sort.s:
    +/usr/local/lib/lcc-4.1/sparc-solaris/rcc -target=sparc/solaris /usr/local/lib/lcc-4.1/sparc-solaris/sparc/solaris/tst/spill.s:
    +/usr/local/lib/lcc-4.1/sparc-solaris/rcc -target=sparc/solaris /usr/local/lib/lcc-4.1/sparc-solaris/sparc/solaris/tst/stdarg.s:
    +/usr/local/lib/lcc-4.1/sparc-solaris/rcc -target=sparc/solaris /usr/local/lib/lcc-4.1/sparc-solaris/sparc/solaris/tst/struct.s:
    +/usr/local/lib/lcc-4.1/sparc-solaris/rcc -target=sparc/solaris /usr/local/lib/lcc-4.1/sparc-solaris/sparc/solaris/tst/switch.s:
    +/usr/local/lib/lcc-4.1/sparc-solaris/rcc -target=sparc/solaris /usr/local/lib/lcc-4.1/sparc-solaris/sparc/solaris/tst/wf1.s:
    +/usr/local/lib/lcc-4.1/sparc-solaris/rcc -target=sparc/solaris /usr/local/lib/lcc-4.1/sparc-solaris/sparc/solaris/tst/yacc.s:
    +
    + +

    Each line in the output above is of the form

    + +
    +

    $BUILDDIR/rcc -target=target/os$BUILDDIR/target/os/X.s:

    +
    + +

    where X is the base name of the C program X.c in the +test suite. This output identifies the compiler and the target, e.g., "$BUILDDIR/rcc +is generating code for a sparc running the solaris operating +system."

    + +

    For each program in the test suite, src/run.sh compiles the program, drops +the generated assembly language code in BUILDDIR/target/os, +and uses diff to compare the generated assembly code with the expected code +(the code expected for tst/8q.c on the SPARC under Solaris is in sparc/solaris/tst/8q.sbk, +etc.). If there are differences, the script executes the generated code with the input +given in tst (the input for tst/8q.c is in tst/8q.0, +etc.) and compares the output with the expected output (the expected output from tst/8q.c +on the SPARC under Solaris is in sparc/solaris/tst/8q.1bk, etc.). The script +also compares the diagnostics from the compiler with the expected diagnostics.

    + +

    On some systems, there may be a few differences between the generated code and the +expected code. These differences occur because the expected code is generated by cross +compilation and the least significant bits of some floating-point constants differ from +those bits in constants generated on your system. On Linux, there may be differences +because of differences in the header files between our system and yours. There should be +no differences in the output from executing the test programs.

    + +

    Next, run the "triple test", which builds rcc using itself:

    + +
    +
    % make triple
    +/usr/local/lib/lcc-4.1/sparc-solaris/lcc -o /usr/local/lib/lcc-4.1/sparc-solaris/1rcc -d0.6 -Wo-lccdir=/usr/local/lib/lcc-4.1/sparc-solaris -B/usr/local/lib/lcc-4.1/sparc-solaris/  -Isrc src/*.c
    +src/alloc.c:
    +...
    +src/x86.c:
    +/usr/local/lib/lcc-4.1/sparc-solaris/lcc -o /usr/local/lib/lcc-4.1/sparc-solaris/1rcc -d0.6 -Wo-lccdir=/usr/local/lib/lcc-4.1/sparc-solaris -B/usr/local/lib/lcc-4.1/sparc-solaris/  -Isrc src/*.c
    +src/alloc.c:
    +...
    +src/x86.c:
    +strip /usr/local/lib/lcc-4.1/sparc-solaris/[12]rcc
    +dd if=/usr/local/lib/lcc-4.1/sparc-solaris/1rcc of=/usr/local/lib/lcc-4.1/sparc-solaris/rcc1 bs=512 skip=1
    +769+1 records in
    +769+1 records out
    +dd if=/usr/local/lib/lcc-4.1/sparc-solaris/2rcc of=/usr/local/lib/lcc-4.1/sparc-solaris/rcc2 bs=512 skip=1
    +769+1 records in
    +769+1 records out
    +if cmp /usr/local/lib/lcc-4.1/sparc-solaris/rcc[12]; then \
    +        mv /usr/local/lib/lcc-4.1/sparc-solaris/2rcc /usr/local/lib/lcc-4.1/sparc-solaris/rcc; \
    +        rm -f /usr/local/lib/lcc-4.1/sparc-solaris/1rcc /usr/local/lib/lcc-4.1/sparc-solaris/rcc[12]; fi
    +
    + +

    This command builds rcc twice; once using the rcc built by cc +and again using the rcc built by lcc. The resulting binaries are +compared. They should be identical, as shown at the end of the output above. If they +aren't, our compiler is generating incorrect code; contact us.

    + +

    The final version of rcc should also pass the test suite; that is, the +output from

    + +
    +
    % make TARGET=sparc/solaris test
    +
    + +

    should be identical to that from the previous make test.

    + +

    The command "make clean" cleans up, but does not remove rcc, +etc., and "make clobber" cleans up and removes lcc, rcc, +and the other accessories. Test directories under BUILDDIR are not +removed; you'll need to remove these by hand, e.g.,

    + +
    +
    % rm -fr $BUILDDIR/sparc
    +
    + +

    The code generators for the other targets can be tested by specifying the desired target/os +and setting an environment variable that controls what src/run.sh does. For +example, to test the MIPS code generator, type

    + +
    +
    % setenv REMOTEHOST noexecute
    +% make TARGET=mips/irix test
    +
    + +

    As above, src/run.sh compares the MIPS code generated with what's +expected. There should be no differences. Setting REMOTEHOST to noexecute +suppresses the assembly and execution of the generated code. If you set REMOTEHOST +to the name of a MIPS machine to which you can rlogin, src/run.sh +will rcp the generated code to that machine and execute it there, if +necessary. See src/run.sh for the details.

    + +

    You can use lcc as a cross compiler. The options -S and -Wf-target=target/os +generate assembly code for the specified target, which is any of those listed in the file src/bind.c. +For example,

    + +
    +
    % lcc -Wf-target=mips/irix -S tst/8q.c
    +
    + +

    generates MIPS code for tst/8q.c in 8q.s.

    + +

    lcc can also generate code for a "symbolic" target. This target is used +routinely in front-end development, and its output is a printable representation of the +input program, e.g., the dags constructed by the front end are printed, and other +interface functions print their arguments. You can specify this target with the option -Wf-target=symbolic. +For example,

    + +
    +
    % lcc -Wf-target=symbolic -S tst/8q.c
    +
    + +

    generates symbolic output for tst/8q.c in 8q.s. Adding -Wf-html +causes the symbolic target to emit HTML instead of plain text. Finally, the option -Wf-target=null +specifies the "null" target for which lcc emits nothing and thus only checks the +syntax and semantics of its input files.

    + +

    Installation on Windows NT 4.0 or Windows 95/98

    + +

    On Windows NT 4.0 and Windows 95/98, lcc is designed to work with Microsoft's Visual +C++ 5.0 (VC) and Microsoft's Assembler, MASM 6.11d. It uses the VC header files, +libraries, and command-line tools, and it uses MASM to assemble the code it generates. If +you have MASM 6.11, make sure you upgrade to 6.11d, +because earlier 6.11 releases do not generate correct COFF object files.

    + +

    Building the distribution components from the ground up requires Microsoft's Visual +C/C++ 5.0 compiler, Microsoft's make, nmake, and the standard Windows command +interpreter. makefile.nt is written to use only nmake. +As on UNIX systems, the compilation components are installed in a single build +directory, and the top-level programs, lcc.exe and bprint.exe, +are installed in a directory on the PATH. If the conventions used below are followed, the +Windows-specific parts of the driver program, lcc.exe, can be used +unmodified.

    + +

    Building from the source distribution on a Windows system involves the following steps. +Below, the build directory is referred to as BUILDDIR, and the distribution +is in \dist\lcc\4.1. + +

      +
    1. Create the build directory, perhaps using a version- and platform-specific naming + convention as suggested in Installation on UNIX, and record + the name of this directory in the BUILDDIR environment variable:
      +
      C:\dist\lcc\4.1>set BUILDDIR=\progra~1\lcc\4.1\bin
      +C:\dist\lcc\4.1>mkdir %BUILDDIR%
      +
      +

      The default build, or installation, directory is \Program Files\lcc\4.1\bin, + but the nmake commands require that you use the corresponding 8.3 file name, progra~1, + instead of Program Files.

      +
    2. +
    3. etc\win32.c is the Windows-specific part of + the driver. It assumes that environment variable include gives the locations + of the VC header files and that the linker (link.exe) and the assembler (ml.exe) + are on the PATH. It also assumes that the macro LCCDIR gives the build + directory. If necessary, revise a copy of etc\win32.c + to reflect the conventions on your computer (see Building the Driver), + then build the driver, specifying the default temporary directory, if necessary:
      +
      C:\dist\lcc\4.1>nmake -f makefile.nt TEMPDIR=\\temp HOSTFILE=etc/win32.c lcc
      +...
      +        cl -nologo -Zi -MLd -Fd\progra~1\lcc\4.1\bin\ -c -DTEMPDIR=\"\\temp\" -Fo\progra~1\lcc\4.1\bin\lcc.obj etc/lcc.c
      +lcc.c
      +        cl -nologo -Zi -MLd -Fd\progra~1\lcc\4.1\bin\ -c -Fo\progra~1\lcc\4.1\bin\host.obj etc/win32.c
      +win32.c
      +        cl -nologo -Zi -MLd -Fd\progra~1\lcc\4.1\bin\ -Fe\progra~1\lcc\4.1\bin\lcc.exe \progra~1\lcc\4.1\bin\lcc.obj \progra~1\lcc\4.1\bin\host.obj
      +
      +

      If you make a copy of etc\win32.c, specify the path of the copy as the + value of HOSTFILE. For example, if you copy etc\win32.c to BUILDDIR + and edit it, use the command

      +
      +
      C:\dist\lcc\4.1>nmake -f makefile.nt TEMPDIR=\\temp HOSTFILE=%BUILDDIR%\win32.c lcc
      +
      +
    4. +
    5. Build the preprocessor, compiler proper, library, and other accessories (see Building the Compiler):
      +
      C:\dist\lcc\4.1>nmake -f makefile.nt all
      +
      +

      This command uses the VC command-line tools cl and lib to + build bprint.exe, cpp.exe, lburg.exe, liblcc.lib, + librcc.lib, and rcc.exe, all in BUILDDIR. There may + be some warnings, but there should be no warnings.

      +
    6. +
    7. Create a test directory and run the test suite:
      +
      C:\dist\lcc\4.1>mkdir %BUILDDIR%\x86\win32\tst
      +C:\dist\lcc\4.1>nmake -f makefile.nt test
      +
      +

      This command compiles each program in tst, compares the generated + assembly code and diagnostics with the expected assembly code and diagnostics, executes + the program, and compares the output with the expected output (using fc). For + example, when the nmake command compiles tst\8q.c, + it leaves the generated assembly code and diagnostic output in %BUILDDIR%\x86\win32\tst\8q.s + and %BUILDDIR%\x86\win32\tst\8q.2, and it compares them with the expected + results in x86\win32\tst\8q.sbk. It builds the executable program in %BUILDDIR%\x86\win32\tst\8q.exe, + runs it, and redirects the output to %BUILDDIR%\x86\win32\tst\8q.1, which it + compares with x86\win32\tst\8q.1bk. The output from this step is voluminous, + but there should be no differences and no errors.

      +
    8. +
    9. Run the "triple" test, which compiles rcc with itself and + verifies the results:
      +
      C:\dist\lcc\4.1>nmake -f makefile.nt triple
      +...
      +\progra~1\lcc\4.1\bin\x86.c:
      + Assembling: C:/TEMP/lcc2001.asm
      +        fc /b \progra~1\lcc\4.1\bin\1rcc.exe \progra~1\lcc\4.1\bin\2rcc.exe
      +Comparing files \progra~1\lcc\4.1\bin\1rcc.exe and \progra~1\lcc\4.1\bin\2RCC.EXE
      +00000088: B4 D5
      +
      +

      This command builds rcc twice; once using the rcc built by VC + and again using the rcc built by lcc. The resulting binaries are + compared using fc. They should be identical, except for one or two bytes of + timestamp data, as shown at the end of the output above. If they aren't, our compiler is + generating incorrect code; contact us.

      +
    10. +
    11. Copy lcc.exe and bprint.exe to a directory on your PATH, e.g.,
      +
      C:\dist\lcc\4.1>copy %BUILDDIR%\lcc.exe \bin
      +        1 file(s) copied.
      +
      +C:\dist\lcc\4.1>copy %BUILDDIR%\bprint.exe \bin
      +        1 file(s) copied.
      +
      +
    12. +
    13. Finally, clean up:
      +
      C:\dist\lcc\4.1>nmake -f makefile.nt clean
      +
      +

      This command removes the derived files in BUILDDIR, but does not remove rcc.exe, + etc.; "nmake -f makefile.nt clobber" cleans up and removes all + executables and libraries. Test directories under BUILDDIR are not + removed; you'll need to remove these by hand, e.g.,

      +
      +
      C:\dist\lcc\4.1>rmdir %BUILDDIR%\x86 /s
      +\progra~1\lcc\4.1\bin\x86, Are you sure (Y/N)? y
      +
      +
    14. +
    + +

    Reporting Bugs

    + +

    lcc is a large, complex program. We find and repair errors routinely. If you think that +you've found a error, follow the steps below, which are adapted from the instructions in +Chapter 1 of A Retargetable C Compiler: Design and Implementation. + +

      +
    1. If you don't have a source file that displays the error, create one. Most errors are + exposed when programmers try to compile a program they think is valid, so you probably + have a demonstration program already.
    2. +
    3. Preprocess the source file and capture the preprocessor output. Discard the original + code.
    4. +
    5. Prune your source code until it can be pruned no more without sending the error into + hiding. We prune most error demonstrations to fewer than five lines.
    6. +
    7. Confirm that the source file displays the error with the distributed version of + lcc. If you've changed lcc and the error appears only in your version, then you'll have to + chase the error yourself, even if it turns out to be our fault, because we can't work on + your code.
    8. +
    9. Annotate your code with comments that explain why you think that lcc is wrong. If lcc + dies with an assertion failure, please tell us where it died. If lcc crashes, please + report the last part of the call chain if you can. If lcc is rejecting a program you think + is valid, please tell us why you think it's valid, and include supporting page numbers in + the ANSI Standard, Appendix A in The C Programming Language, or the + appropriate section in C: A Reference Manual, 4th edition by S. B. Harbison + and G. L. Steele, Jr. (Prentice Hall, 1995). If lcc silently generates incorrect code for + some construct, please include the corrupt assembly code in the comments and flag the + incorrect instructions if you can.
    10. +
    11. Confirm that your error hasn't been fixed already. The latest version of lcc is always + available for anonymous ftp from ftp.cs.princeton.edu in pub/lcc. A README file there gives + acquistion details, and the LOG file reports what errors + were fixed and when they were fixed. If you report a error that's been fixed, you might + get a canned reply.
    12. +
    13. Send your program by electronic mail to lcc-bugs@cs.princeton.edu. Please + send only valid C programs; put all remarks in C comments so that we can process reports + semiautomatically.
    14. +
    + +

    Keeping in Touch

    + +

    There is an lcc mailing list for general information about lcc. To be added to the +list, send a message with the 1-line body

    + +
    +
    subscribe lcc
    +
    + +

    to majordomo@cs.princeton.edu. This line must appear in the message body; +"Subject:" lines are ignored. To learn more about mailing lists served by majordomo, +send a message with the 1-word body "help" to majordomo@cs.princeton.edu. +Mail sent to lcc@cs.princeton.edu is forwarded to everyone on the mailing +list.

    + +

    There is also an lcc-bugs mailing list for reporting bugs; subscribe to it +by sending a message with the 1-line body

    + +
    +
    subscribe lcc-bugs
    +
    + +

    to majordomo@cs.princeton.edu. Mail addressed to lcc-bugs@cs.princeton.edu +is forwarded to everyone on this list.

    + +
    + +
    + Chris Fraser / cwfraser@microsoft.com
    + David Hanson / drh@microsoft.com
    + $Revision: 145 $ $Date: 2001-10-17 16:53:10 -0500 (Wed, 17 Oct 2001) $ +
    + + diff --git a/code/tools/lcc/doc/lcc.1 b/code/tools/lcc/doc/lcc.1 new file mode 100644 index 0000000..fe91bca --- /dev/null +++ b/code/tools/lcc/doc/lcc.1 @@ -0,0 +1,605 @@ +.\" $Id: lcc.1 145 2001-10-17 21:53:10Z timo $ +.TH LCC 1 "local \- $Date: 2001-10-17 16:53:10 -0500 (Wed, 17 Oct 2001) $" +.SH NAME +lcc \- ANSI C compiler +.SH SYNOPSIS +.B lcc +[ +.I option +| +.I file +]... +.br +.SH DESCRIPTION +.PP +.I lcc +is an ANSI C compiler for a variety of platforms. +.PP +Arguments whose names end with `.c' (plus `.C' under Windows) are taken to be +C source programs; they are preprocessed, compiled, and +each object program is left on the file +whose name is that of the source with `.o' (UNIX) or `.obj' (Windows) +substituted for the extension. +Arguments whose names end with `.i' are treated similarly, +except they are not preprocessed. +In the same way, +arguments ending with `.s' (plus `.S', `.asm', and `.ASM', under Windows) +are taken to be assembly source programs +and are assembled, producing an object file. +If there are no arguments, +.I lcc +summarizes its options on the standard error. +.PP +.I lcc +deletes an object file if and only if exactly one +source file is mentioned and no other file +(source, object, library) or +.B \-l +option is mentioned. +.PP +If the environment variable +.B LCCINPUTS +is set, +.I lcc +assumes it gives a semicolon- or colon-separated list of directories in which to +look for source and object files whose names do not begin with `/'. +These directories are also added to the list of directories +searched for libraries. +If +.B LCCINPUTS +is defined, it must contain `.' in order for the current directory +to be searched for input files. +.PP +.I lcc +uses ANSI standard header files (see `FILES' below). +Include files not found in the ANSI header files +are taken from the normal default include areas, +which usually includes +.BR /usr/include . +Under Windows, if the environment variable +.B include +is defined, it gives a semicolon-separated list of directories in which to search for +header files. +.PP +.I lcc +interprets the following options; unrecognized options are +taken as loader options (see +.IR ld (1)) +unless +.BR \-c , +.BR \-S , +or +.B \-E +precedes them. +Except for +.BR \-l , +all options are processed before any of the files +and apply to all of the files. +Applicable options are passed to each compilation phase in the order given. +.TP +.B \-c +Suppress the loading phase of the compilation, and force +an object file to be produced even if only one program is compiled. +.TP +.B \-g +Produce additional symbol table information for the local debuggers. +.I lcc +warns when +.B \-g +is unsupported. +.TP +.BI \-Wf\-g n , x +Set the debugging level to +.I n +and emit source code as comments into the generated assembly code; +.I x +must be the assembly language comment character. +If +.I n +is omitted, it defaults to 1, which is similar to +.BR \-g . +Omitting +.BI , x +just sets the debugging level to +.IR n . +.TP +.B \-w +Suppress warning diagnostics, such as those +announcing unreferenced statics, locals, and parameters. +The line +.I +#pragma ref id +simulates a reference to the variable +.IR id . +.TP +.BI \-d n +Generate jump tables for switches whose density is at least +.IR n , +a floating point constant between zero and one. +The default is 0.5. +.TP +.B \-A +Warns about +declarations and casts of function types without prototypes, +assignments between pointers to ints and pointers to enums, and +conversions from pointers to smaller integral types. +A second +.B \-A +warns about +unrecognized control lines, +nonANSI language extensions and source characters in literals, +unreferenced variables and static functions, +declaring arrays of incomplete types, +and exceeding +.I some +ANSI environmental limits, like more than 257 cases in switches. +It also arranges for duplicate global definitions in separately compiled +files to cause loader errors. +.TP +.B \-P +Writes declarations for all defined globals on standard error. +Function declarations include prototypes; +editing this output can simplify conversion to ANSI C. +This output may not correspond to the input when +there are several typedefs for the same type. +.TP +.B \-n +Arrange for the compiler to produce code +that tests for dereferencing zero pointers. +The code reports the offending file and line number and calls +.IR abort (3). +.TP +.B \-O +is ignored. +.TP +.B \-S +Compile the named C programs, and leave the +assembler-language output on corresponding files suffixed `.s' or `.asm'. +.TP +.B \-E +Run only the preprocessor on the named C programs +and unsuffixed file arguments, +and send the result to the standard output. +.TP +.BI \-o " output" +Name the output file +.IR output . +If +.B \-c +or +.B \-S +is specified and there is exactly one source file, +this option names the object or assembly file, respectively. +Otherwise, this option names the final executable +file generated by the loader, and `a.out' (UNIX) or `a.exe' (Windows) is left undisturbed. +.I lcc +warns if +.B \-o +and +.B \-c +or +.B \-S +are given with more than one source file and ignores the +.B \-o +option. +.TP +.BI \-D name=def +Define the +.I name +to the preprocessor, as if by `#define'. +If +.I =def +is omitted, the name is defined as "1". +.TP +.BI \-U name +Remove any initial definition of +.IR name . +.TP +.BI \-I dir +`#include' files +whose names do not begin with `/' are always +sought first in the directory of the +.I file +arguments, then in directories named in +.B \-I +options, then in directories on a standard list. +.TP +.B \-N +Do not search +.I any +of the standard directories for `#include' files. +Only those directories specified by subsequent explicit +.B \-I +options will be searched, in the order given. +.TP +.BI \-B str +Use the compiler +.BI "" str rcc +instead of the default version. +Note that +.I str +often requires a trailing slash. +On Sparcs only, +.B \-Bstatic +and +.BI \-Bdynamic +are passed to the loader; see +.IR ld (1). +.TP +.BI \-Wo\-lccdir= dir +Find the preprocessor, compiler proper, and include directory +in the directory +.I dir/ +or +.I +dir\\. +If the environment variable +.B LCCDIR +is defined, it gives this directory. +.I lcc +warns when this option is unsupported. +.TP +.B \-Wf-unsigned_char=1 +.br +.ns +.TP +.B \-Wf-unsigned_char=0 +makes plain +.B char +an unsigned (1) or signed (0) type; by default, +.B char +is signed. +.TP +.B \-Wf\-wchar_t=unsigned_char +.br +.ns +.TP +.B \-Wf\-wchar_t=unsigned_short +.br +.ns +.TP +.B \-Wf\-wchar_t=unsigned_int +Makes wide characters the type indicated; by default, +wide characters are unsigned short ints, and +.B wchar_t +is a typedef for unsigned short defined in stddef.h. +The definition for +.B wchar_t +in stddef.h must correspond to the type specified. +.TP +.B \-v +Print commands as they are executed; some of the executed +programs are directed to print their version numbers. +More than one occurrence of +.B \-v +causes the commands to be printed, but +.I not +executed. +.TP +.BR \-help " or " \-? +Print a message on the standard error summarizing +.IR lcc 's +options and giving the values of the environment variables +.B LCCINPUTS +and +.BR LCCDIR , +if they are defined. +Under Windows, the values of +.B include +and +.B lib +are also given, if they are defined. +.TP +.B \-b +Produce code that counts the number of times each expression is executed. +If loading takes place, arrange for a +.B prof.out +file to be written when the object program terminates. +A listing annotated with execution counts can then be generated with +.IR bprint (1). +.I lcc +warns when +.B \-b +is unsupported. +.B \-Wf\-C +is similar, but counts only the number of function calls. +.TP +.B \-p +Produce code that counts the number of times each function is called. +If loading takes place, replace the standard startup +function by one that automatically calls +.IR monitor (3) +at the start and arranges to write a +.B mon.out +file when the object program terminates normally. +An execution profile can then be generated with +.IR prof (1). +.I lcc +warns when +.B \-p +is unsupported. +.TP +.B \-pg +Causes the compiler to produce counting code like +.BR \-p , +but invokes a run-time recording mechanism that keeps more +extensive statistics and produces a +.B gmon.out +file at normal termination. +Also, a profiling library is searched, in lieu of the standard C library. +An execution profile can then be generated with +.IR gprof (1). +.I lcc +warns when +.B \-pg +is unsupported. +.TP +.BI \-t name +.br +.ns +.TP +.BI \-t +Produce code to print the name of the function, an activation number, +and the name and value of each argument at function entry. +At function exit, produce code to print +the name of the function, the activation number, and the return value. +By default, +.I printf +does the printing; if +.I name +appears, it does. +For null +.I char* +values, "(null)" is printed. +.BI \-target +.I name +is accepted, but ignored. +.TP +.BI \-tempdir= dir +Store temporary files in the directory +.I dir/ +or +.I +dir\\. +The default is usually +.BR /tmp . +.TP +.BI \-W xarg +pass argument +.I arg +to the program indicated by +.IR x ; +.I x +can be one of +.BR p , +.BR f , +.BR a , +or +.BR l , +which refer, respectively, to the preprocessor, the compiler proper, +the assembler, and the loader. +.I arg +is passed as given; if a +.B \- +is expected, it must be given explicitly. +.BI \-Wo arg +specifies a system-specific option, +.IR arg . +.PP +Other arguments +are taken to be either loader option arguments, or C-compatible +object programs, typically produced by an earlier +.I lcc +run, or perhaps libraries of C-compatible routines. +Duplicate object files are ignored. +These programs, together with the results of any +compilations specified, are loaded (in the order +given) to produce an executable program with name +.BR a.out +(UNIX) or +.BR a.exe +(Windows). +.PP +.I lcc +assigns the most frequently referenced scalar parameters and +locals to registers whenever possible. +For each block, +explicit register declarations are obeyed first; +remaining registers are assigned to automatic locals if they +are `referenced' at least 3 times. +Each top-level occurrence of an identifier +counts as 1 reference. Occurrences in a loop, +either of the then/else arms of an if statement, or a case +in a switch statement each count, respectively, as 10, 1/2, or 1/10 references. +These values are adjusted accordingly for nested control structures. +.B \-Wf\-a +causes +.I lcc +to read a +.B prof.out +file from a previous execution and to use the data therein +to compute reference counts (see +.BR \-b ). +.PP +.I lcc +is a cross compiler; +.BI \-Wf\-target= target/os +causes +.I lcc +to generate code for +.I target +running the operating system denoted by +.IR os . +The supported +.I target/os +combinations may include +.PP +.RS +.ta \w'sparc/solarisxx'u +.nf +alpha/osf ALPHA, OSF 3.2 +mips/irix big-endian MIPS, IRIX 5.2 +mips/ultrix little-endian MIPS, ULTRIX 4.3 +sparc/solaris SPARC, Solaris 2.3 +x86/win32 x86, Windows NT 4.0/Windows 95/98 +x86/linux x86, Linux +symbolic text rendition of the generated code +null no output +.fi +.RE +.PP +For +.BR \-Wf\-target=symbolic , +the option +.B \-Wf-html +causes the text rendition to be emitted as HTML. +.B +.SH LIMITATIONS +.PP +.I lcc +accepts the C programming language +as described in the ANSI standard. +If +.I lcc +is used with the GNU C preprocessor, the +.B \-Wp\-trigraphs +option is required to enable trigraph sequences. +.PP +Plain int bit fields are signed. +Bit fields are aligned like unsigned integers but are otherwise laid out +as by most standard C compilers. +Some compilers, such as the GNU C compiler, +may choose other, incompatible layouts. +.PP +Likewise, calling conventions are intended to be compatible with +the host C compiler, +except possibly for passing and returning structures. +Specifically, +.I lcc +passes and returns structures like host ANSI C compilers +on most targets, but some older host C compilers use different conventions. +Consequently, calls to/from such functions compiled with +older C compilers may not work. +Calling a function that returns +a structure without declaring it as such violates +the ANSI standard and may cause a fault. +.SH FILES +.PP +The file names listed below are +.IR typical , +but vary among installations; installation-dependent variants +can be displayed by running +.I lcc +with the +.B \-v +option. +.PP +.RS +.ta \w'$LCCDIR/liblcc.{a,lib}XX'u +.nf +file.{c,C} input file +file.{s,asm} assembly-language file +file.{o,obj} object file +a.{out,exe} loaded output +/tmp/lcc* temporary files +$LCCDIR/cpp preprocessor +$LCCDIR/rcc compiler +$LCCDIR/liblcc.{a,lib} \fIlcc\fP-specific library +/lib/crt0.o runtime startup (UNIX) +/lib/[gm]crt0.o startups for profiling (UNIX) +/lib/libc.a standard library (UNIX) +$LCCDIR/include ANSI standard headers +/usr/local/include local headers +/usr/include traditional headers +prof.out file produced for \fIbprint\fR(1) +mon.out file produced for \fIprof\fR(1) +gmon.out file produced for \fIgprof\fR(1) +.fi +.RE +.PP +.I lcc +predefines the macro +.B __LCC__ +on all systems. +It may also predefine some installation-dependent symbols; option +.B \-v +exposes them. +.SH "SEE ALSO" +.PP +C. W. Fraser and D. R. Hanson, +.I A Retargetable C Compiler: Design and Implementation, +Addison-Wesley, 1995. ISBN 0-8053-1670-1. +.PP +The World-Wide Web page at http://www.cs.princeton.edu/software/lcc/. +.PP +S. P. Harbison and G. L. Steele, Jr., +.I C: A Reference Manual, +4th ed., Prentice-Hall, 1995. +.PP +B. W. Kernighan and D. M. Ritchie, +.I The C Programming Language, +2nd ed., Prentice-Hall, 1988. +.PP +American National Standards Inst., +.I American National Standard for Information Systems\(emProgramming +.IR Language\(emC , +ANSI X3.159-1989, New York, 1990. +.br +.SH BUGS +Mail bug reports along with the shortest preprocessed program +that exposes them and the details reported by +.IR lcc 's +.B \-v +option to lcc-bugs@princeton.edu. The WWW page at +URL http://www.cs.princeton.edu/software/lcc/ +includes detailed instructions for reporting bugs. +.PP +The ANSI standard headers conform to the specifications in +the Standard, which may be too restrictive for some applications, +but necessary for portability. +Functions given in the ANSI headers may be missing from +some local C libraries (e.g., wide-character functions) +or may not correspond exactly to the local versions; +for example, the ANSI standard +stdio.h +specifies that +.IR printf , +.IR fprintf , +and +.I sprintf +return the number of characters written to the file or array, +but some existing libraries don't implement this convention. +.PP +On the MIPS and SPARC, old-style variadic functions must use +varargs.h +from MIPS or Sun. New-style is recommended. +.PP +With +.BR \-b , +files compiled +.I without +.B \-b +may cause +.I bprint +to print erroneous call graphs. +For example, if +.B f +calls +.B g +calls +.B h +and +.B f +and +.B h +are compiled with +.BR \-b , +but +.B g +is not, +.B bprint +will report that +.B f +called +.BR h . +The total number of calls is correct, however. diff --git a/code/tools/lcc/doc/lcc.pdf b/code/tools/lcc/doc/lcc.pdf new file mode 100644 index 0000000..6134de6 Binary files /dev/null and b/code/tools/lcc/doc/lcc.pdf differ diff --git a/code/tools/lcc/etc/bprint.c b/code/tools/lcc/etc/bprint.c new file mode 100644 index 0000000..fd073ab --- /dev/null +++ b/code/tools/lcc/etc/bprint.c @@ -0,0 +1,475 @@ +#include +#include +#include +#include +#include + +/* bprint [ -c | -Idir... | -f | -b | -n ] [ file... ] + * annotate listings of files with prof.out data + */ + + +#define NDIRS (sizeof dirs/sizeof dirs[0] - 1) +#define NEW(p,a) ((p) = alloc(sizeof *(p))) +#define newarray(m,n,a) alloc((m)*(n)) +#define NELEMS(a) ((int)(sizeof (a)/sizeof ((a)[0]))) + +#define MAXTOKEN 64 + +struct count { /* count data: */ + int x, y; /* source coordinate */ + int count; /* associated execution count */ +}; + +char *progname; +int number; +char *dirs[20]; +int fcount; + +struct file { /* per-file prof.out data: */ + struct file *link; /* link to next file */ + char *name; /* file name */ + int size; /* size of counts[] */ + int count; /* counts[0..count-1] hold valid data */ + struct count *counts; /* count data */ + struct func { /* function data: */ + struct func *link; /* link to next function */ + char *name; /* function name */ + struct count count; /* total number of calls */ + struct caller { /* caller data: */ + struct caller *link; /* link to next caller */ + char *name; /* caller's name */ + char *file; /* call site: file, x, y */ + int x, y; + int count; /* number of calls from this site */ + } *callers; + } *funcs; /* list of functions */ +} *filelist; +FILE *fp; + +extern int process(char *); +extern int findfunc(char *, char *); +extern int findcount(char *, int, int); + +void *alloc(unsigned); +char *string(char *); +int process(char *); +void emitdata(char *); +void printfile(struct file *, int); +void printfuncs(struct file *, int); + +/* alloc - allocate n bytes or die */ +void *alloc(unsigned n) { + void *new = malloc(n); + + assert(new); + return new; +} + +/* emitdata - write prof.out data to file */ +void emitdata(char *file) { + FILE *fp; + + if ((fp = fopen(file, "w"))) { + struct file *p; + for (p = filelist; p; p = p->link) { + int i; + struct func *q; + struct caller *r; + fprintf(fp, "1\n%s\n", p->name); + for (i = 0, q = p->funcs; q; i++, q = q->link) + if ((r = q->callers)) + for (i--; r; r = r->link) + i++; + fprintf(fp, "%d\n", i); + for (q = p->funcs; q; q = q->link) + if (q->count.count == 0 || !q->callers) + fprintf(fp, "%s 1 %d %d %d ? ? 0 0\n", q->name, q->count.x, + q->count.y, q->count.count); + else + for (r = q->callers; r; r = r->link) + fprintf(fp, "%s 1 %d %d %d %s %s %d %d\n", q->name, q->count.x, + q->count.y, r->count, r->name, r->file, r->x, r->y); + fprintf(fp, "%d\n", p->count); + for (i = 0; i < p->count; i++) + fprintf(fp, "1 %d %d %d\n", p->counts[i].x, + p->counts[i].y, p->counts[i].count); + } + fclose(fp); + } else + fprintf(stderr, "%s: can't create `%s'\n", progname, file); +} + +/* openfile - open name for reading, searching -I directories */ +FILE *openfile(char *name) { + int i; + FILE *fp; + + if (*name != '/') + for (i = 0; dirs[i]; i++) { + char buf[200]; + sprintf(buf, "%s/%s", dirs[i], name); + if ((fp = fopen(buf, "r"))) + return fp; + } + return fopen(name, "r"); +} + +/* printfile - print annotated listing for p */ +void printfile(struct file *p, int nf) { + int lineno; + FILE *fp; + char *s, buf[512]; + struct count *u = p->counts, *r, *uend; + + if (u == 0 || p->count <= 0) + return; + uend = &p->counts[p->count]; + if ((fp = openfile(p->name)) == NULL) { + fprintf(stderr, "%s: can't open `%s'\n", progname, p->name); + return; + } + if (nf) + printf("%s%s:\n\n", nf == 1 ? "" : "\f", p->name); + for (lineno = 1; fgets(buf, sizeof buf, fp); lineno++) { + if (number) + printf("%d\t", lineno); + while (u < uend && u->y < lineno) + u++; + for (s = buf; *s; ) { + char *t = s + 1; + while (u < uend && u->y == lineno && u->x < s - buf) + u++; + if (isalnum(*s) || *s == '_') + while (isalnum(*t) || *t == '_') + t++; + while (u < uend && u->y == lineno && u->x < t - buf) { + printf("<%d>", u->count); + for (r = u++; u < uend && u->x == r->x && u->y == r->y && u->count == r->count; u++) + ; + } + while (s < t) + putchar(*s++); + } + if (*s) + printf("%s", s); + } + fclose(fp); +} + +/* printfuncs - summarize data for functions in p */ +void printfuncs(struct file *p, int nf) { + struct func *q; + + if (nf) + printf("%s:\n", p->name); + for (q = p->funcs; q; q = q->link) + if (fcount <= 1 || q->count.count == 0 || !q->callers) + printf("%d\t%s\n", q->count.count, q->name); + else { + struct caller *r; + for (r = q->callers; r; r = r->link) + printf("%d\t%s\tfrom %s\tin %s:%d.%d\n", r->count, q->name, r->name, + r->file, r->y, r->x + 1); + } + +} + +/* string - save a copy of str, if necessary */ +char *string(char *str) { + static struct string { struct string *link; char str[1]; } *list; + struct string *p; + + for (p = list; p; p = p->link) + if (strcmp(p->str, str) == 0) + return p->str; + p = (struct string *)alloc(strlen(str) + sizeof *p); + strcpy(p->str, str); + p->link = list; + list = p; + return p->str; +} +/* acaller - add caller and site (file,x,y) to callee's callers list */ +static void acaller(char *caller, char *file, int x, int y, int count, struct func *callee) { + struct caller *q; + + assert(callee); + for (q = callee->callers; q && (caller != q->name + || file != q->file || x != q->x || y != q->y); q = q->link) + ; + if (!q) { + struct caller **r; + NEW(q, PERM); + q->name = caller; + q->file = file; + q->x = x; + q->y = y; + q->count = 0; + for (r = &callee->callers; *r && (strcmp(q->name, (*r)->name) > 0 + || strcmp(q->file, (*r)->file) > 0 || q->y > (*r)->y || q->y > (*r)->y); r = &(*r)->link) + ; + q->link = *r; + *r = q; + } + q->count += count; +} + +/* compare - return <0, 0, >0 if ab, resp. */ +static int compare(struct count *a, struct count *b) { + if (a->y == b->y) + return a->x - b->x; + return a->y - b->y; +} + +/* findfile - return file name's file list entry, or 0 */ +static struct file *findfile(char *name) { + struct file *p; + + for (p = filelist; p; p = p->link) + if (p->name == name) + return p; + return 0; +} + +/* afunction - add function name and its data to file's function list */ +static struct func *afunction(char *name, char *file, int x, int y, int count) { + struct file *p = findfile(file); + struct func *q; + + assert(p); + for (q = p->funcs; q && name != q->name; q = q->link) + ; + if (!q) { + struct func **r; + NEW(q, PERM); + q->name = name; + q->count.x = x; + q->count.y = y; + q->count.count = 0; + q->callers = 0; + for (r = &p->funcs; *r && compare(&q->count, &(*r)->count) > 0; r = &(*r)->link) + ; + q->link = *r; + *r = q; + } + q->count.count += count; + return q; +} + +/* apoint - append execution point i to file's data */ +static void apoint(int i, char *file, int x, int y, int count) { + struct file *p = findfile(file); + + assert(p); + if (i >= p->size) { + int j; + if (p->size == 0) { + p->size = i >= 200 ? 2*i : 200; + p->counts = newarray(p->size, sizeof *p->counts, PERM); + } else { + struct count *new; + p->size = 2*i; + new = newarray(p->size, sizeof *new, PERM); + for (j = 0; j < p->count; j++) + new[j] = p->counts[j]; + p->counts = new; + } + for (j = p->count; j < p->size; j++) { + static struct count z; + p->counts[j] = z; + } + } + p->counts[i].x = x; + p->counts[i].y = y; + p->counts[i].count += count; + if (i >= p->count) + p->count = i + 1; +} + +/* findcount - return count associated with (file,x,y) or -1 */ +int findcount(char *file, int x, int y) { + static struct file *cursor; + + if (cursor == 0 || cursor->name != file) + cursor = findfile(file); + if (cursor) { + int l, u; + struct count *c = cursor->counts; + for (l = 0, u = cursor->count - 1; l <= u; ) { + int k = (l + u)/2; + if (c[k].y > y || (c[k].y == y && c[k].x > x)) + u = k - 1; + else if (c[k].y < y || (c[k].y == y && c[k].x < x)) + l = k + 1; + else + return c[k].count; + } + } + return -1; +} + +/* findfunc - return count associated with function name in file or -1 */ +int findfunc(char *name, char *file) { + static struct file *cursor; + + if (cursor == 0 || cursor->name != file) + cursor = findfile(file); + if (cursor) { + struct func *p; + for (p = cursor->funcs; p; p = p->link) + if (p->name == name) + return p->count.count; + } + return -1; +} + +/* getd - read a nonnegative number */ +static int getd(void) { + int c, n = 0; + + while ((c = getc(fp)) != EOF && (c == ' ' || c == '\n' || c == '\t')) + ; + if (c >= '0' && c <= '9') { + do + n = 10*n + (c - '0'); + while ((c = getc(fp)) >= '0' && c <= '9'); + return n; + } + return -1; +} + +/* getstr - read a string */ +static char *getstr(void) { + int c; + char buf[MAXTOKEN], *s = buf; + + while ((c = getc(fp)) != EOF && c != ' ' && c != '\n' && c != '\t') + if (s - buf < (int)sizeof buf - 2) + *s++ = c; + *s = 0; + return s == buf ? (char *)0 : string(buf); +} + +/* gather - read prof.out data from fd */ +static int gather(void) { + int i, nfiles, nfuncs, npoints; + char *files[64]; + + if ((nfiles = getd()) < 0) + return 0; + assert(nfiles < NELEMS(files)); + for (i = 0; i < nfiles; i++) { + if ((files[i] = getstr()) == 0) + return -1; + if (!findfile(files[i])) { + struct file *new; + NEW(new, PERM); + new->name = files[i]; + new->size = new->count = 0; + new->counts = 0; + new->funcs = 0; + new->link = filelist; + filelist = new; + } + } + if ((nfuncs = getd()) < 0) + return -1; + for (i = 0; i < nfuncs; i++) { + struct func *q; + char *name, *file; + int f, x, y, count; + if ((name = getstr()) == 0 || (f = getd()) <= 0 + || (x = getd()) < 0 || (y = getd()) < 0 || (count = getd()) < 0) + return -1; + q = afunction(name, files[f-1], x, y, count); + if ((name = getstr()) == 0 || (file = getstr()) == 0 + || (x = getd()) < 0 || (y = getd()) < 0) + return -1; + if (*name != '?') + acaller(name, file, x, y, count, q); + } + if ((npoints = getd()) < 0) + return -1; + for (i = 0; i < npoints; i++) { + int f, x, y, count; + if ((f = getd()) < 0 || (x = getd()) < 0 || (y = getd()) < 0 + || (count = getd()) < 0) + return -1; + if (f) + apoint(i, files[f-1], x, y, count); + } + return 1; +} + +/* process - read prof.out data from file */ +int process(char *file) { + int more; + + if ((fp = fopen(file, "r")) != NULL) { + struct file *p; + while ((more = gather()) > 0) + ; + fclose(fp); + if (more < 0) + return more; + for (p = filelist; p; p = p->link) + qsort(p->counts, p->count, sizeof *p->counts, + (int (*)(const void *, const void *)) + compare); + + return 1; + } + return 0; +} +int main(int argc, char *argv[]) { + int i; + struct file *p; + void (*f)(struct file *, int) = printfile; + + progname = argv[0]; + if ((i = process("prof.out")) <= 0) { + fprintf(stderr, "%s: can't %s `%s'\n", progname, + i == 0 ? "open" : "interpret", "prof.out"); + exit(1); + } + for (i = 1; i < argc && *argv[i] == '-'; i++) + if (strcmp(argv[i], "-c") == 0) { + emitdata("prof.out"); + exit(0); + } else if (strcmp(argv[i], "-b") == 0) + f = printfile; + else if (strcmp(argv[i], "-f") == 0) { + fcount++; + f = printfuncs; + } else if (strcmp(argv[i], "-n") == 0) + number++; + else if (strncmp(argv[i], "-I", 2) == 0) { + int j; + for (j = 0; j < NDIRS && dirs[j]; j++) + ; + if (j < NDIRS) + dirs[j] = &argv[i][2]; + else + fprintf(stderr, "%s: too many -I options\n", progname); + } else { + fprintf(stderr, "usage: %s [ -c | -b | -n | -f | -Idir... ] [ file... ]\n", progname); + exit(1); + } + for (p = filelist; p; p = p->link) + qsort(p->counts, p->count, sizeof *p->counts, + (int (*)(const void *, const void *))compare); + if (i < argc) { + int nf = i < argc - 1 ? 1 : 0; + for ( ; i < argc; i++, nf ? nf++ : 0) + if ((p = findfile(string(argv[i])))) + (*f)(p, nf); + else + fprintf(stderr, "%s: no data for `%s'\n", progname, argv[i]); + } else { + int nf = filelist && filelist->link ? 1 : 0; + for (p = filelist; p; p = p->link, nf ? nf++ : 0) + (*f)(p, nf); + } + return 0; +} + diff --git a/code/tools/lcc/etc/gcc-solaris.c b/code/tools/lcc/etc/gcc-solaris.c new file mode 100644 index 0000000..24b6cd4 --- /dev/null +++ b/code/tools/lcc/etc/gcc-solaris.c @@ -0,0 +1,50 @@ +/* SPARCs running Solaris 2.5.1 w/GCC tools + at CS Dept., Princeton University */ + +#include + + +#ifndef LCCDIR +#define LCCDIR "/usr/local/lib/lcc/" +#endif +#ifndef GCCDIR +#define GCCDIR "/usr/local/gnu/bin/" +#endif +#ifndef GCCLIB +#define GCCLIB "/usr/local/gnu/lib/gcc-lib/sparc-sun-solaris2.5/2.7.2/" +#endif + +char *suffixes[] = { ".c", ".i", ".s", ".o", ".out", 0 }; +char inputs[256] = ""; +char *cpp[] = { LCCDIR "cpp", + "-D__STDC__=1", "-Dsparc", "-D__sparc__", "-Dsun", "-D__sun__", "-Dunix", + "$1", "$2", "$3", 0 }; +char *include[] = { "-I" LCCDIR "include", "-I/usr/local/include", + "-I" GCCLIB "include", "-I/usr/include", 0 }; +char *com[] = { LCCDIR "rcc", "-target=sparc/solaris", + "$1", "$2", "$3", 0 }; +char *as[] = { GCCDIR "as", "-f", "-o", "$3", "$1", "$2", 0 }; +char *ld[] = { GCCDIR "ld", "-o", "$3", "$1", + GCCLIB "crti.o", GCCLIB "crt1.o", + GCCLIB "crtbegin.o", "$2", "", "", "-L" LCCDIR, "-llcc", + "-L" GCCLIB, "-lgcc", "-lm", "-lc", "", + GCCLIB "crtend.o", GCCLIB "crtn.o", 0 }; + +extern char *concat(char *, char *); + +int option(char *arg) { + if (strncmp(arg, "-lccdir=", 8) == 0) { + cpp[0] = concat(&arg[8], "/cpp"); + include[0] = concat("-I", concat(&arg[8], "/include")); + ld[10] = concat("-L", &arg[8]); + com[0] = concat(&arg[8], "/rcc"); + } else if (strcmp(arg, "-g") == 0) + ; + else if (strcmp(arg, "-pg") == 0) { + ld[8] = GCCLIB "gmon.o"; + } else if (strcmp(arg, "-b") == 0) + ; + else + return 0; + return 1; +} diff --git a/code/tools/lcc/etc/irix.c b/code/tools/lcc/etc/irix.c new file mode 100644 index 0000000..1b123e2 --- /dev/null +++ b/code/tools/lcc/etc/irix.c @@ -0,0 +1,64 @@ +/* SGI big endian MIPSes running IRIX 5.2 at CS Dept., Princeton University */ + +#include + + +#ifndef LCCDIR +#define LCCDIR "/usr/local/lib/lcc/" +#endif + +char *suffixes[] = { ".c", ".i", ".s", ".o", ".out", 0 }; +char inputs[256] = ""; +char *cpp[] = { LCCDIR "cpp", "-D__STDC__=1", + "-DLANGUAGE_C", + "-DMIPSEB", + "-DSYSTYPE_SVR4", + "-D_CFE", + "-D_LANGUAGE_C", + "-D_MIPSEB", + "-D_MIPS_FPSET=16", + "-D_MIPS_ISA=_MIPS_ISA_MIPS1", + "-D_MIPS_SIM=_MIPS_SIM_ABI32", + "-D_MIPS_SZINT=32", + "-D_MIPS_SZLONG=32", + "-D_MIPS_SZPTR=32", + "-D_SGI_SOURCE", + "-D_SVR4_SOURCE", + "-D_SYSTYPE_SVR4", + "-D__host_mips", + "-D__mips=1", + "-D__sgi", + "-D__unix", + "-Dhost_mips", + "-Dmips", + "-Dsgi", + "-Dunix", + "$1", "$2", "$3", 0 }; +char *com[] = { LCCDIR "rcc", "-target=mips/irix", "$1", "$2", "$3", "", 0 }; +char *include[] = { "-I" LCCDIR "include", "-I/usr/local/include", + "-I/usr/include", 0 }; +char *as[] = { "/usr/bin/as", "-o", "$3", "$1", "-nocpp", "-KPIC", "$2", 0 }; +char *ld[] = { "/usr/bin/ld", "-require_dynamic_link", "_rld_new_interface", + "-elf", "-_SYSTYPE_SVR4", "-Wx,-G", "0", "-g0", "-KPIC", "-dont_warn_unused", + "-o", "$3", "/usr/lib/crt1.o", "-L/usr/local/lib", + "$1", "$2", "", "-L" LCCDIR, "-llcc", "-lc", "-lm", "/usr/lib/crtn.o", 0 +}; + +extern char *concat(char *, char *); + +int option(char *arg) { + if (strncmp(arg, "-lccdir=", 8) == 0) { + cpp[0] = concat(&arg[8], "/cpp"); + include[0] = concat("-I", concat(&arg[8], "/include")); + com[0] = concat(&arg[8], "/rcc"); + ld[17] = concat("-L", &arg[8]); + } else if (strcmp(arg, "-g") == 0) + ; + else if (strcmp(arg, "-p") == 0) + ld[12] = "/usr/lib/mcrt1.o"; + else if (strcmp(arg, "-b") == 0) + ; + else + return 0; + return 1; +} diff --git a/code/tools/lcc/etc/lcc.c b/code/tools/lcc/etc/lcc.c new file mode 100644 index 0000000..89706df --- /dev/null +++ b/code/tools/lcc/etc/lcc.c @@ -0,0 +1,799 @@ +/* + * lcc [ option ]... [ file | -llib ]... + * front end for the ANSI C compiler + */ +static char rcsid[] = "Id: dummy rcsid"; + +#include +#include +#include +#include +#include +#include +#include +#include + +#ifndef TEMPDIR +#define TEMPDIR "/tmp" +#endif + +typedef struct list *List; +struct list { /* circular list nodes: */ + char *str; /* option or file name */ + List link; /* next list element */ +}; + +static void *alloc(int); +static List append(char *,List); +extern char *basepath(char *); +static int callsys(char *[]); +extern char *concat(char *, char *); +static int compile(char *, char *); +static void compose(char *[], List, List, List); +static void error(char *, char *); +static char *exists(char *); +static char *first(char *); +static int filename(char *, char *); +static List find(char *, List); +static void help(void); +static void initinputs(void); +static void interrupt(int); +static void opt(char *); +static List path2list(const char *); +extern int main(int, char *[]); +extern char *replace(const char *, int, int); +static void rm(List); +extern char *strsave(const char *); +extern char *stringf(const char *, ...); +extern int suffix(char *, char *[], int); +extern char *tempname(char *); + +extern int getpid(void); + +extern char *cpp[], *include[], *com[], *as[],*ld[], inputs[], *suffixes[]; +extern int option(char *); + +static int errcnt; /* number of errors */ +static int Eflag; /* -E specified */ +static int Sflag; /* -S specified */ +static int cflag; /* -c specified */ +static int verbose; /* incremented for each -v */ +static List llist[2]; /* loader files, flags */ +static List alist; /* assembler flags */ +static List clist; /* compiler flags */ +static List plist; /* preprocessor flags */ +static List ilist; /* list of additional includes from LCCINPUTS */ +static List rmlist; /* list of files to remove */ +static char *outfile; /* ld output file or -[cS] object file */ +static int ac; /* argument count */ +static char **av; /* argument vector */ +char *tempdir = TEMPDIR; /* directory for temporary files */ +static char *progname; +static List lccinputs; /* list of input directories */ + +int main(int argc, char *argv[]) { + int i, j, nf; + + progname = argv[0]; + ac = argc + 50; + av = alloc(ac*sizeof(char *)); + if (signal(SIGINT, SIG_IGN) != SIG_IGN) + signal(SIGINT, interrupt); + if (signal(SIGTERM, SIG_IGN) != SIG_IGN) + signal(SIGTERM, interrupt); +#ifdef SIGHUP + if (signal(SIGHUP, SIG_IGN) != SIG_IGN) + signal(SIGHUP, interrupt); +#endif + if (getenv("TMP")) + tempdir = getenv("TMP"); + else if (getenv("TEMP")) + tempdir = getenv("TEMP"); + else if (getenv("TMPDIR")) + tempdir = getenv("TMPDIR"); + assert(tempdir); + i = strlen(tempdir); + for (; (i > 0 && tempdir[i-1] == '/') || tempdir[i-1] == '\\'; i--) + tempdir[i-1] = '\0'; + if (argc <= 1) { + help(); + exit(0); + } + plist = append("-D__LCC__", 0); + initinputs(); + if (getenv("LCCDIR")) + option(stringf("-lccdir=%s", getenv("LCCDIR"))); + for (nf = 0, i = j = 1; i < argc; i++) { + if (strcmp(argv[i], "-o") == 0) { + if (++i < argc) { + if (suffix(argv[i], suffixes, 2) >= 0) { + error("-o would overwrite %s", argv[i]); + exit(8); + } + outfile = argv[i]; + continue; + } else { + error("unrecognized option `%s'", argv[i-1]); + exit(8); + } + } else if (strcmp(argv[i], "-target") == 0) { + if (argv[i+1] && *argv[i+1] != '-') + i++; + continue; + } else if (*argv[i] == '-' && argv[i][1] != 'l') { + opt(argv[i]); + continue; + } else if (*argv[i] != '-' && suffix(argv[i], suffixes, 3) >= 0) + nf++; + argv[j++] = argv[i]; + } + if ((cflag || Sflag) && outfile && nf != 1) { + fprintf(stderr, "%s: -o %s ignored\n", progname, outfile); + outfile = 0; + } + argv[j] = 0; + for (i = 0; include[i]; i++) + plist = append(include[i], plist); + if (ilist) { + List b = ilist; + do { + b = b->link; + plist = append(b->str, plist); + } while (b != ilist); + } + ilist = 0; + for (i = 1; argv[i]; i++) + if (*argv[i] == '-') + opt(argv[i]); + else { + char *name = exists(argv[i]); + if (name) { + if (strcmp(name, argv[i]) != 0 + || (nf > 1 && suffix(name, suffixes, 3) >= 0)) + fprintf(stderr, "%s:\n", name); + filename(name, 0); + } else + error("can't find `%s'", argv[i]); + } + if (errcnt == 0 && !Eflag && !Sflag && !cflag && llist[1]) { + compose(ld, llist[0], llist[1], + append(outfile ? outfile : concat("a", first(suffixes[4])), 0)); + if (callsys(av)) + errcnt++; + } + rm(rmlist); + return errcnt ? EXIT_FAILURE : EXIT_SUCCESS; +} + +/* alloc - allocate n bytes or die */ +static void *alloc(int n) { + static char *avail, *limit; + + n = (n + sizeof(char *) - 1)&~(sizeof(char *) - 1); + if (n >= limit - avail) { + avail = malloc(n + 4*1024); + assert(avail); + limit = avail + n + 4*1024; + } + avail += n; + return avail - n; +} + +/* append - append a node with string str onto list, return new list */ +static List append(char *str, List list) { + List p = alloc(sizeof *p); + + p->str = str; + if (list) { + p->link = list->link; + list->link = p; + } else + p->link = p; + return p; +} + +/* basepath - return base name for name, e.g. /usr/drh/foo.c => foo */ +char *basepath(char *name) { + char *s, *b, *t = 0; + + for (b = s = name; *s; s++) + if (*s == '/' || *s == '\\') { + b = s + 1; + t = 0; + } else if (*s == '.') + t = s; + s = strsave(b); + if (t) + s[t-b] = 0; + return s; +} + +#ifdef WIN32 +#include +#else +#define _P_WAIT 0 +extern int fork(void); +extern int wait(int *); + +static int _spawnvp(int mode, const char *cmdname, char *argv[]) { + int pid, n, status; + + switch (pid = fork()) { + case -1: + fprintf(stderr, "%s: no more processes\n", progname); + return 100; + case 0: + // TTimo removing hardcoded paths, searching in $PATH + execvp(cmdname, argv); + fprintf(stderr, "%s: ", progname); + perror(cmdname); + fflush(stdout); + exit(100); + } + while ((n = wait(&status)) != pid && n != -1) + ; + if (n == -1) + status = -1; + if (status&0377) { + fprintf(stderr, "%s: fatal error in %s\n", progname, cmdname); + status |= 0400; + } + return (status>>8)&0377; +} +#endif + +/* callsys - execute the command described by av[0...], return status */ +static int callsys(char **av) { + int i, status = 0; + static char **argv; + static int argc; + + for (i = 0; av[i] != NULL; i++) + ; + if (i + 1 > argc) { + argc = i + 1; + if (argv == NULL) + argv = malloc(argc*sizeof *argv); + else + argv = realloc(argv, argc*sizeof *argv); + assert(argv); + } + for (i = 0; status == 0 && av[i] != NULL; ) { + int j = 0; + char *s = NULL; + for ( ; av[i] != NULL && (s = strchr(av[i], '\n')) == NULL; i++) + argv[j++] = av[i]; + if (s != NULL) { + if (s > av[i]) + argv[j++] = stringf("%.*s", s - av[i], av[i]); + if (s[1] != '\0') + av[i] = s + 1; + else + i++; + } + argv[j] = NULL; + if (verbose > 0) { + int k; + fprintf(stderr, "%s", argv[0]); + for (k = 1; argv[k] != NULL; k++) + fprintf(stderr, " %s", argv[k]); + fprintf(stderr, "\n"); + } + if (verbose < 2) +#ifndef WIN32 + status = _spawnvp(_P_WAIT, argv[0], argv); +#else + status = _spawnvp(_P_WAIT, argv[0], (const char* const*)argv); +#endif + if (status == -1) { + fprintf(stderr, "%s: ", progname); + perror(argv[0]); + } + } + return status; +} + +/* concat - return concatenation of strings s1 and s2 */ +char *concat(char *s1, char *s2) { + int n = strlen(s1); + char *s = alloc(n + strlen(s2) + 1); + + strcpy(s, s1); + strcpy(s + n, s2); + return s; +} + +/* compile - compile src into dst, return status */ +static int compile(char *src, char *dst) { + compose(com, clist, append(src, 0), append(dst, 0)); + return callsys(av); +} + +/* compose - compose cmd into av substituting a, b, c for $1, $2, $3, resp. */ +static void compose(char *cmd[], List a, List b, List c) { + int i, j; + List lists[3]; + + lists[0] = a; + lists[1] = b; + lists[2] = c; + for (i = j = 0; cmd[i]; i++) { + char *s = strchr(cmd[i], '$'); + if (s && isdigit(s[1])) { + int k = s[1] - '0'; + assert(k >=1 && k <= 3); + if ((b = lists[k-1])) { + b = b->link; + av[j] = alloc(strlen(cmd[i]) + strlen(b->str) - 1); + strncpy(av[j], cmd[i], s - cmd[i]); + av[j][s-cmd[i]] = '\0'; + strcat(av[j], b->str); + strcat(av[j++], s + 2); + while (b != lists[k-1]) { + b = b->link; + assert(j < ac); + av[j++] = b->str; + }; + } + } else if (*cmd[i]) { + assert(j < ac); + av[j++] = cmd[i]; + } + } + av[j] = NULL; +} + +/* error - issue error msg according to fmt, bump error count */ +static void error(char *fmt, char *msg) { + fprintf(stderr, "%s: ", progname); + fprintf(stderr, fmt, msg); + fprintf(stderr, "\n"); + errcnt++; +} + +/* exists - if `name' readable return its path name or return null */ +static char *exists(char *name) { + List b; + + if ( (name[0] == '/' || name[0] == '\\' || name[2] == ':') + && access(name, 4) == 0) + return name; + if (!(name[0] == '/' || name[0] == '\\' || name[2] == ':') + && (b = lccinputs)) + do { + b = b->link; + if (b->str[0]) { + char buf[1024]; + sprintf(buf, "%s/%s", b->str, name); + if (access(buf, 4) == 0) + return strsave(buf); + } else if (access(name, 4) == 0) + return name; + } while (b != lccinputs); + if (verbose > 1) + return name; + return 0; +} + +/* first - return first component in semicolon separated list */ +static char *first(char *list) { + char *s = strchr(list, ';'); + + if (s) { + char buf[1024]; + strncpy(buf, list, s-list); + buf[s-list] = '\0'; + return strsave(buf); + } else + return list; +} + +/* filename - process file name argument `name', return status */ +static int filename(char *name, char *base) { + int status = 0; + static char *stemp, *itemp; + + if (base == 0) + base = basepath(name); + switch (suffix(name, suffixes, 4)) { + case 0: /* C source files */ + compose(cpp, plist, append(name, 0), 0); + if (Eflag) { + status = callsys(av); + break; + } + if (itemp == NULL) + itemp = tempname(first(suffixes[1])); + compose(cpp, plist, append(name, 0), append(itemp, 0)); + status = callsys(av); + if (status == 0) + return filename(itemp, base); + break; + case 1: /* preprocessed source files */ + if (Eflag) + break; + if (Sflag) + status = compile(name, outfile ? outfile : concat(base, first(suffixes[2]))); + else if ((status = compile(name, stemp?stemp:(stemp=tempname(first(suffixes[2]))))) == 0) + return filename(stemp, base); + break; + case 2: /* assembly language files */ + if (Eflag) + break; + if (!Sflag) { + char *ofile; + if (cflag && outfile) + ofile = outfile; + else if (cflag) + ofile = concat(base, first(suffixes[3])); + else + ofile = tempname(first(suffixes[3])); + compose(as, alist, append(name, 0), append(ofile, 0)); + status = callsys(av); + if (!find(ofile, llist[1])) + llist[1] = append(ofile, llist[1]); + } + break; + case 3: /* object files */ + if (!find(name, llist[1])) + llist[1] = append(name, llist[1]); + break; + default: + if (Eflag) { + compose(cpp, plist, append(name, 0), 0); + status = callsys(av); + } + llist[1] = append(name, llist[1]); + break; + } + if (status) + errcnt++; + return status; +} + +/* find - find 1st occurrence of str in list, return list node or 0 */ +static List find(char *str, List list) { + List b; + + if ((b = list)) + do { + if (strcmp(str, b->str) == 0) + return b; + } while ((b = b->link) != list); + return 0; +} + +/* help - print help message */ +static void help(void) { + static char *msgs[] = { +"", " [ option | file ]...\n", +" except for -l, options are processed left-to-right before files\n", +" unrecognized options are taken to be linker options\n", +"-A warn about nonANSI usage; 2nd -A warns more\n", +"-b emit expression-level profiling code; see bprint(1)\n", +#ifdef sparc +"-Bstatic -Bdynamic specify static or dynamic libraries\n", +#endif +"-Bdir/ use the compiler named `dir/rcc'\n", +"-c compile only\n", +"-dn set switch statement density to `n'\n", +"-Dname -Dname=def define the preprocessor symbol `name'\n", +"-E run only the preprocessor on the named C programs and unsuffixed files\n", +"-g produce symbol table information for debuggers\n", +"-help or -? print this message\n", +"-Idir add `dir' to the beginning of the list of #include directories\n", +"-lx search library `x'\n", +"-N do not search the standard directories for #include files\n", +"-n emit code to check for dereferencing zero pointers\n", +"-O is ignored\n", +"-o file leave the output in `file'\n", +"-P print ANSI-style declarations for globals\n", +"-p -pg emit profiling code; see prof(1) and gprof(1)\n", +"-S compile to assembly language\n", +#ifdef linux +"-static specify static libraries (default is dynamic)\n", +#endif +"-t -tname emit function tracing calls to printf or to `name'\n", +"-target name is ignored\n", +"-tempdir=dir place temporary files in `dir/'", "\n" +"-Uname undefine the preprocessor symbol `name'\n", +"-v show commands as they are executed; 2nd -v suppresses execution\n", +"-w suppress warnings\n", +"-Woarg specify system-specific `arg'\n", +"-W[pfal]arg pass `arg' to the preprocessor, compiler, assembler, or linker\n", + 0 }; + int i; + char *s; + + msgs[0] = progname; + for (i = 0; msgs[i]; i++) { + fprintf(stderr, "%s", msgs[i]); + if (strncmp("-tempdir", msgs[i], 8) == 0 && tempdir) + fprintf(stderr, "; default=%s", tempdir); + } +#define xx(v) if ((s = getenv(#v))) fprintf(stderr, #v "=%s\n", s) + xx(LCCINPUTS); + xx(LCCDIR); +#ifdef WIN32 + xx(include); + xx(lib); +#endif +#undef xx +} + +/* initinputs - if LCCINPUTS or include is defined, use them to initialize various lists */ +static void initinputs(void) { + char *s = getenv("LCCINPUTS"); + List b; +#ifdef WIN32 + List list; +#endif + + if (s == 0 || (s = inputs)[0] == 0) + s = "."; + if (s) { + lccinputs = path2list(s); + if ((b = lccinputs)) + do { + b = b->link; + if (strcmp(b->str, ".") != 0) { + ilist = append(concat("-I", b->str), ilist); + if (strstr(com[1], "win32") == NULL) + llist[0] = append(concat("-L", b->str), llist[0]); + } else + b->str = ""; + } while (b != lccinputs); + } +#ifdef WIN32 + if ((list = b = path2list(getenv("include")))) + do { + b = b->link; + ilist = append(stringf("-I\"%s\"", b->str), ilist); + } while (b != list); +#endif +} + +/* interrupt - catch interrupt signals */ +static void interrupt(int n) { + rm(rmlist); + exit(n = 100); +} + +/* opt - process option in arg */ +static void opt(char *arg) { + switch (arg[1]) { /* multi-character options */ + case 'W': /* -Wxarg */ + if (arg[2] && arg[3]) + switch (arg[2]) { + case 'o': + if (option(&arg[3])) + return; + break; + case 'p': + plist = append(&arg[3], plist); + return; + case 'f': + if (strcmp(&arg[3], "-C") || option("-b")) { + clist = append(&arg[3], clist); + return; + } + break; /* and fall thru */ + case 'a': + alist = append(&arg[3], alist); + return; + case 'l': + llist[0] = append(&arg[3], llist[0]); + return; + } + fprintf(stderr, "%s: %s ignored\n", progname, arg); + return; + case 'd': /* -dn */ + arg[1] = 's'; + clist = append(arg, clist); + return; + case 't': /* -t -tname -tempdir=dir */ + if (strncmp(arg, "-tempdir=", 9) == 0) + tempdir = arg + 9; + else + clist = append(arg, clist); + return; + case 'p': /* -p -pg */ + if (option(arg)) + clist = append(arg, clist); + else + fprintf(stderr, "%s: %s ignored\n", progname, arg); + return; + case 'D': /* -Dname -Dname=def */ + case 'U': /* -Uname */ + case 'I': /* -Idir */ + plist = append(arg, plist); + return; + case 'B': /* -Bdir -Bstatic -Bdynamic */ +#ifdef sparc + if (strcmp(arg, "-Bstatic") == 0 || strcmp(arg, "-Bdynamic") == 0) + llist[1] = append(arg, llist[1]); + else +#endif + { + static char *path; + if (path) + error("-B overwrites earlier option", 0); + path = arg + 2; + if (strstr(com[1], "win32") != NULL) + com[0] = concat(replace(path, '/', '\\'), concat("rcc", first(suffixes[4]))); + else + com[0] = concat(path, "rcc"); + if (path[0] == 0) + error("missing directory in -B option", 0); + } + return; + case 'h': + if (strcmp(arg, "-help") == 0) { + static int printed = 0; + case '?': + if (!printed) + help(); + printed = 1; + return; + } +#ifdef linux + case 's': + if (strcmp(arg,"-static") == 0) { + if (!option(arg)) + fprintf(stderr, "%s: %s ignored\n", progname, arg); + return; + } +#endif + } + if (arg[2] == 0) + switch (arg[1]) { /* single-character options */ + case 'S': + Sflag++; + return; + case 'O': + fprintf(stderr, "%s: %s ignored\n", progname, arg); + return; + case 'A': case 'n': case 'w': case 'P': + clist = append(arg, clist); + return; + case 'g': case 'b': + if (option(arg)) + clist = append(arg[1] == 'g' ? "-g2" : arg, clist); + else + fprintf(stderr, "%s: %s ignored\n", progname, arg); + return; + case 'G': + if (option(arg)) { + clist = append("-g3", clist); + llist[0] = append("-N", llist[0]); + } else + fprintf(stderr, "%s: %s ignored\n", progname, arg); + return; + case 'E': + Eflag++; + return; + case 'c': + cflag++; + return; + case 'N': + if (strcmp(basepath(cpp[0]), "gcc-cpp") == 0) + plist = append("-nostdinc", plist); + include[0] = 0; + ilist = 0; + return; + case 'v': + if (verbose++ == 0) { + if (strcmp(basepath(cpp[0]), "gcc-cpp") == 0) + plist = append(arg, plist); + clist = append(arg, clist); + fprintf(stderr, "%s %s\n", progname, rcsid); + } + return; + } + if (cflag || Sflag || Eflag) + fprintf(stderr, "%s: %s ignored\n", progname, arg); + else + llist[1] = append(arg, llist[1]); +} + +/* path2list - convert a colon- or semicolon-separated list to a list */ +static List path2list(const char *path) { + List list = NULL; + char sep = ':'; + + if (path == NULL) + return NULL; + if (strchr(path, ';')) + sep = ';'; + while (*path) { + char *p, buf[512]; + if ((p = strchr(path, sep))) { + assert(p - path < sizeof buf); + strncpy(buf, path, p - path); + buf[p-path] = '\0'; + } else { + assert(strlen(path) < sizeof buf); + strcpy(buf, path); + } + if (!find(buf, list)) + list = append(strsave(buf), list); + if (p == 0) + break; + path = p + 1; + } + return list; +} + +/* replace - copy str, then replace occurrences of from with to, return the copy */ +char *replace(const char *str, int from, int to) { + char *s = strsave(str), *p = s; + + for ( ; (p = strchr(p, from)) != NULL; p++) + *p = to; + return s; +} + +/* rm - remove files in list */ +static void rm(List list) { + if (list) { + List b = list; + if (verbose) + fprintf(stderr, "rm"); + do { + if (verbose) + fprintf(stderr, " %s", b->str); + if (verbose < 2) + remove(b->str); + } while ((b = b->link) != list); + if (verbose) + fprintf(stderr, "\n"); + } +} + +/* strsave - return a saved copy of string str */ +char *strsave(const char *str) { + return strcpy(alloc(strlen(str)+1), str); +} + +/* stringf - format and return a string */ +char *stringf(const char *fmt, ...) { + char buf[1024]; + va_list ap; + int n; + + va_start(ap, fmt); + n = vsprintf(buf, fmt, ap); + va_end(ap); + return strsave(buf); +} + +/* suffix - if one of tails[0..n-1] holds a proper suffix of name, return its index */ +int suffix(char *name, char *tails[], int n) { + int i, len = strlen(name); + + for (i = 0; i < n; i++) { + char *s = tails[i], *t; + for ( ; (t = strchr(s, ';')); s = t + 1) { + int m = t - s; + if (len > m && strncmp(&name[len-m], s, m) == 0) + return i; + } + if (*s) { + int m = strlen(s); + if (len > m && strncmp(&name[len-m], s, m) == 0) + return i; + } + } + return -1; +} + +/* tempname - generate a temporary file name in tempdir with given suffix */ +char *tempname(char *suffix) { + static int n; + char *name = stringf("%s/lcc%d%d%s", tempdir, getpid(), n++, suffix); + + if (strstr(com[1], "win32") != NULL) + name = replace(name, '/', '\\'); + rmlist = append(name, rmlist); + return name; +} diff --git a/code/tools/lcc/etc/linux.c b/code/tools/lcc/etc/linux.c new file mode 100644 index 0000000..bf50025 --- /dev/null +++ b/code/tools/lcc/etc/linux.c @@ -0,0 +1,72 @@ +/* x86s running Linux */ + +#include + +/* +TTimo - 10-18-2001 +our binaries are named q3lcc q3rcc and q3cpp +removed hardcoded paths +removed __linux__ preprocessor define (confuses the preprocessor, we are doing bytecode!) +*/ + +#ifndef LCCDIR +#define LCCDIR "" +//#define LCCDIR "/usr/local/lib/lcc/" +#endif + +char *suffixes[] = { ".c", ".i", ".asm", ".o", ".out", 0 }; +char inputs[256] = ""; +// TTimo experimental: do not compile with the __linux__ define, we are doing bytecode! +char *cpp[] = { LCCDIR "q3cpp", + "-U__GNUC__", "-D_POSIX_SOURCE", "-D__STDC__=1", "-D__STRICT_ANSI__", + "-Dunix", "-Di386", "-Dlinux", + "-D__unix__", "-D__i386__", "-D__signed__=signed", + "$1", "$2", "$3", 0 }; +char *include[] = {"-I" LCCDIR "include", "-I" LCCDIR "gcc/include", "-I/usr/include", + "-I" SYSTEM "include", 0 }; +char *com[] = {LCCDIR "q3rcc", "-target=bytecode", "$1", "$2", "$3", 0 }; +char *as[] = { "/usr/bin/as", "-o", "$3", "$1", "$2", 0 }; +// NOTE TTimo I don't think we have any use with the native linkage +// our target is always bytecode.. +char *ld[] = { + /* 0 */ "/usr/bin/ld", "-m", "elf_i386", "-dynamic-linker", + /* 4 */ "/lib/ld-linux.so.2", "-o", "$3", + /* 7 */ "/usr/lib/crt1.o", "/usr/lib/crti.o", + /* 9 */ SYSTEM "crtbegin.o", + "$1", "$2", + /* 12 */ "-L" LCCDIR, + /* 13 */ "-llcc", + /* 14 */ "-L" LCCDIR "/gcc", "-lgcc", "-lc", "-lm", + /* 18 */ "", + /* 19 */ SYSTEM "crtend.o", "/usr/lib/crtn.o", + /* 20 */ "-L" SYSTEM, + 0 }; + +extern char *concat(char *, char *); + +int option(char *arg) { + if (strncmp(arg, "-lccdir=", 8) == 0) { + cpp[0] = concat(&arg[8], "/gcc/cpp"); + include[0] = concat("-I", concat(&arg[8], "/include")); + include[1] = concat("-I", concat(&arg[8], "/gcc/include")); + ld[9] = concat(&arg[8], "/gcc/crtbegin.o"); + ld[12] = concat("-L", &arg[8]); + ld[14] = concat("-L", concat(&arg[8], "/gcc")); + ld[19] = concat(&arg[8], "/gcc/crtend.o"); + com[0] = concat(&arg[8], "/rcc"); + } else if (strcmp(arg, "-p") == 0 || strcmp(arg, "-pg") == 0) { + ld[7] = "/usr/lib/gcrt1.o"; + ld[18] = "-lgmon"; + } else if (strcmp(arg, "-b") == 0) + ; + else if (strcmp(arg, "-g") == 0) + ; + else if (strncmp(arg, "-ld=", 4) == 0) + ld[0] = &arg[4]; + else if (strcmp(arg, "-static") == 0) { + ld[3] = "-static"; + ld[4] = ""; + } else + return 0; + return 1; +} diff --git a/code/tools/lcc/etc/ops.c b/code/tools/lcc/etc/ops.c new file mode 100644 index 0000000..39d2357 --- /dev/null +++ b/code/tools/lcc/etc/ops.c @@ -0,0 +1,190 @@ +#include "c.h" + +/* ops [ {csilhfdxp}=n ]... + * prints lcc dag operator set for a given set of type sizes. + */ + + +static char list[] = { 'c', 's', 'i', 'l', 'h', 'f', 'd', 'x', 'p', 0 }; +static int sizes[] = { 1, 2, 4, 4, 8, 4, 8, 16, 8 }; + +static int doop(int op, int type, const char *sz, const char *opname) { + int count = 0; + static int last; + + if (op == LOAD) + return 0; + if (last != 0 && last != op) + printf("\n"); + last = op; + if (type == B || type == V) { + printf(" %s=%d", opname, op + type); + count++; + } else { + int i, done = 0; + const char *s; + for (i = 0; sz[i] != '\0' && (s = strchr(list, sz[i])) != NULL; i++) { + int n = sizes[s-list]; + if ((done&(1< 0 && (s = strchr(list, c)) != NULL) + sizes[s-list] = n; + else { + fprintf(stderr, "usage: %s [ {csilhfdxp}=n ]...\n", argv[0]); + exit(EXIT_FAILURE); + } + } +#define gop(x,n) +#define op(x,t,s) count += doop(x,t,#s,#x #t); +gop(CNST,1) + op(CNST,F,fdx) + op(CNST,I,csilh) + op(CNST,P,p) + op(CNST,U,csilh) +gop(ARG,2) + op(ARG,B,-) + op(ARG,F,fdx) + op(ARG,I,ilh) + op(ARG,P,p) + op(ARG,U,ilh) +gop(ASGN,3) + op(ASGN,B,-) + op(ASGN,F,fdx) + op(ASGN,I,csilh) + op(ASGN,P,p) + op(ASGN,U,csilh) +gop(INDIR,4) + op(INDIR,B,-) + op(INDIR,F,fdx) + op(INDIR,I,csilh) + op(INDIR,P,p) + op(INDIR,U,csilh) +gop(CVF,7) + op(CVF,F,fdx) + op(CVF,I,ilh) +gop(CVI,8) + op(CVI,F,fdx) + op(CVI,I,csilh) + op(CVI,U,csilhp) +gop(CVP,9) + op(CVP,U,p) +gop(CVU,11) + op(CVU,I,csilh) + op(CVU,P,p) + op(CVU,U,csilh) +gop(NEG,12) + op(NEG,F,fdx) + op(NEG,I,ilh) +gop(CALL,13) + op(CALL,B,-) + op(CALL,F,fdx) + op(CALL,I,ilh) + op(CALL,P,p) + op(CALL,U,ilh) + op(CALL,V,-) +gop(RET,15) + op(RET,F,fdx) + op(RET,I,ilh) + op(RET,P,p) + op(RET,U,ilh) + op(RET,V,-) +gop(ADDRG,16) + op(ADDRG,P,p) +gop(ADDRF,17) + op(ADDRF,P,p) +gop(ADDRL,18) + op(ADDRL,P,p) +gop(ADD,19) + op(ADD,F,fdx) + op(ADD,I,ilh) + op(ADD,P,p) + op(ADD,U,ilhp) +gop(SUB,20) + op(SUB,F,fdx) + op(SUB,I,ilh) + op(SUB,P,p) + op(SUB,U,ilhp) +gop(LSH,21) + op(LSH,I,ilh) + op(LSH,U,ilh) +gop(MOD,22) + op(MOD,I,ilh) + op(MOD,U,ilh) +gop(RSH,23) + op(RSH,I,ilh) + op(RSH,U,ilh) +gop(BAND,24) + op(BAND,I,ilh) + op(BAND,U,ilh) +gop(BCOM,25) + op(BCOM,I,ilh) + op(BCOM,U,ilh) +gop(BOR,26) + op(BOR,I,ilh) + op(BOR,U,ilh) +gop(BXOR,27) + op(BXOR,I,ilh) + op(BXOR,U,ilh) +gop(DIV,28) + op(DIV,F,fdx) + op(DIV,I,ilh) + op(DIV,U,ilh) +gop(MUL,29) + op(MUL,F,fdx) + op(MUL,I,ilh) + op(MUL,U,ilh) +gop(EQ,30) + op(EQ,F,fdx) + op(EQ,I,ilh) + op(EQ,U,ilhp) +gop(GE,31) + op(GE,F,fdx) + op(GE,I,ilh) + op(GE,U,ilhp) +gop(GT,32) + op(GT,F,fdx) + op(GT,I,ilh) + op(GT,U,ilhp) +gop(LE,33) + op(LE,F,fdx) + op(LE,I,ilh) + op(LE,U,ilhp) +gop(LT,34) + op(LT,F,fdx) + op(LT,I,ilh) + op(LT,U,ilhp) +gop(NE,35) + op(NE,F,fdx) + op(NE,I,ilh) + op(NE,U,ilhp) +gop(JUMP,36) + op(JUMP,V,-) +gop(LABEL,37) + op(LABEL,V,-) +gop(LOAD,14) + op(LOAD,B,-) + op(LOAD,F,fdx) + op(LOAD,I,csilh) + op(LOAD,P,p) + op(LOAD,U,csilhp) +#undef gop +#undef op + fprintf(stderr, "%d operators\n", count); + return EXIT_SUCCESS; +} diff --git a/code/tools/lcc/etc/osf.c b/code/tools/lcc/etc/osf.c new file mode 100644 index 0000000..3f1d686 --- /dev/null +++ b/code/tools/lcc/etc/osf.c @@ -0,0 +1,53 @@ +/* DEC ALPHAs running OSF/1 V3.2A (Rev. 17) at Princeton University */ + +#include + + +#ifndef LCCDIR +#define LCCDIR "/usr/local/lib/lcc/" +#endif + +char *suffixes[] = { ".c", ".i", ".s", ".o", ".out", 0 }; +char inputs[256] = ""; +char *cpp[] = { + LCCDIR "cpp", "-D__STDC__=1", + "-DLANGUAGE_C", "-D__LANGUAGE_C__", + "-D_unix", "-D__unix__", "-D_osf", "-D__osf__", "-Dunix", + "-Dalpha", "-D_alpha", "-D__alpha", + "-D__SYSTYPE_BSD", "-D_SYSTYPE_BSD", + "$1", "$2", "$3", 0 }; +char *com[] = { LCCDIR "rcc", "-target=alpha/osf", "$1", "$2", "$3", "", 0 }; +char *include[] = { "-I" LCCDIR "include", "-I/usr/local/include", + "-I/usr/include", 0 }; +char *as[] = { "/bin/as", "-o", "$3", "", "$1", "-nocpp", "$2", 0 }; +char *ld[] = { "/usr/bin/ld", "-o", "$3", "/usr/lib/cmplrs/cc/crt0.o", + "$1", "$2", "", "", "-L" LCCDIR, "-llcc", "-lm", "-lc", 0 }; + +extern char *concat(char *, char *); +extern int access(const char *, int); + +int option(char *arg) { + if (strncmp(arg, "-lccdir=", 8) == 0) { + cpp[0] = concat(&arg[8], "/cpp"); + include[0] = concat("-I", concat(&arg[8], "/include")); + com[0] = concat(&arg[8], "/rcc"); + ld[8] = concat("-L", &arg[8]); + } else if (strcmp(arg, "-g4") == 0 + && access("/u/drh/lib/alpha/rcc", 4) == 0 + && access("/u/drh/book/cdb/alpha/osf/cdbld", 4) == 0) { + com[0] = "/u/drh/lib/alpha/rcc"; + com[5] = "-g4"; + ld[0] = "/u/drh/book/cdb/alpha/osf/cdbld"; + ld[1] = "-o"; + ld[2] = "$3"; + ld[3] = "$1"; + ld[4] = "$2"; + ld[5] = 0; + } else if (strcmp(arg, "-g") == 0) + return 1; + else if (strcmp(arg, "-b") == 0) + ; + else + return 0; + return 1; +} diff --git a/code/tools/lcc/etc/solaris.c b/code/tools/lcc/etc/solaris.c new file mode 100644 index 0000000..1cd755e --- /dev/null +++ b/code/tools/lcc/etc/solaris.c @@ -0,0 +1,50 @@ +/* SPARCs running Solaris 2.5.1 at CS Dept., Princeton University */ + +#include + + +#ifndef LCCDIR +#define LCCDIR "/usr/local/lib/lcc/" +#endif +#ifndef SUNDIR +#define SUNDIR "/opt/SUNWspro/SC4.2/lib/" +#endif + +char *suffixes[] = { ".c", ".i", ".s", ".o", ".out", 0 }; +char inputs[256] = ""; +char *cpp[] = { LCCDIR "cpp", + "-D__STDC__=1", "-Dsparc", "-D__sparc__", "-Dsun", "-D__sun__", "-Dunix", + "$1", "$2", "$3", 0 }; +char *include[] = { "-I" LCCDIR "include", "-I/usr/local/include", + "-I/usr/include", 0 }; +char *com[] = { LCCDIR "rcc", "-target=sparc/solaris", + "$1", "$2", "$3", 0 }; +char *as[] = { "/usr/ccs/bin/as", "-Qy", "-s", "-o", "$3", "$1", "$2", 0 }; +char *ld[] = { "/usr/ccs/bin/ld", "-o", "$3", "$1", + SUNDIR "crti.o", SUNDIR "crt1.o", + SUNDIR "values-xa.o", "$2", "", + "-Y", "P," SUNDIR ":/usr/ccs/lib:/usr/lib", "-Qy", + "-L" LCCDIR, "-llcc", "-lm", "-lc", SUNDIR "crtn.o", 0 }; + +extern char *concat(char *, char *); + +int option(char *arg) { + if (strncmp(arg, "-lccdir=", 8) == 0) { + cpp[0] = concat(&arg[8], "/cpp"); + include[0] = concat("-I", concat(&arg[8], "/include")); + ld[12] = concat("-L", &arg[8]); + com[0] = concat(&arg[8], "/rcc"); + } else if (strcmp(arg, "-g") == 0) + ; + else if (strcmp(arg, "-p") == 0) { + ld[5] = SUNDIR "mcrt1.o"; + ld[10] = "P," SUNDIR "libp:/usr/ccs/lib/libp:/usr/lib/libp:" + SUNDIR ":/usr/ccs/lib:/usr/lib"; + } else if (strcmp(arg, "-b") == 0) + ; + else if (strncmp(arg, "-ld=", 4) == 0) + ld[0] = &arg[4]; + else + return 0; + return 1; +} diff --git a/code/tools/lcc/etc/win32.c b/code/tools/lcc/etc/win32.c new file mode 100644 index 0000000..4b316dc --- /dev/null +++ b/code/tools/lcc/etc/win32.c @@ -0,0 +1,43 @@ +/* x86s running MS Windows NT 4.0 */ + +#include + + +#ifndef LCCDIR +// JDC #define LCCDIR "\\progra~1\\lcc\\4.1\\bin\\" +//#define LCCDIR "\\quake3\\source\\lcc\\bin\\" // JDC +// TTimo: q3cpp q3rcc & no hardcoded paths +#define LCCDIR "" +#endif + +char *suffixes[] = { ".c;.C", ".i;.I", ".asm;.ASM;.s;.S", ".obj;.OBJ", ".exe", 0 }; +char inputs[256] = ""; +char *cpp[] = { LCCDIR "q3cpp", "-D__STDC__=1", "-Dwin32", "-D_WIN32", "-D_M_IX86", + "$1", "$2", "$3", 0 }; +char *include[] = { "-I" LCCDIR "include", 0 }; +char *com[] = { LCCDIR "q3rcc", "-target=x86/win32", "$1", "$2", "$3", 0 }; +char *as[] = { "ml", "-nologo", "-c", "-Cp", "-coff", "-Fo$3", "$1", "$2", 0 }; +char *ld[] = { "link", "-nologo", + "-align:0x1000", "-subsystem:console", "-entry:mainCRTStartup", + "$2", "-OUT:$3", "$1", LCCDIR "liblcc.lib", "libc.lib", "kernel32.lib", 0 }; + +extern char *concat(char *, char *); +extern char *replace(const char *, int, int); + +int option(char *arg) { + if (strncmp(arg, "-lccdir=", 8) == 0) { + arg = replace(arg + 8, '/', '\\'); + if (arg[strlen(arg)-1] == '\\') + arg[strlen(arg)-1] = '\0'; + cpp[0] = concat(arg, "\\cpp.exe"); + include[0] = concat("-I", concat(arg, "\\include")); + com[0] = concat(arg, "\\rcc.exe"); + ld[8] = concat(arg, "\\liblcc.lib"); + } else if (strcmp(arg, "-b") == 0) + ; + else if (strncmp(arg, "-ld=", 4) == 0) + ld[0] = &arg[4]; + else + return 0; + return 1; +} diff --git a/code/tools/lcc/include/alpha/osf/assert.h b/code/tools/lcc/include/alpha/osf/assert.h new file mode 100644 index 0000000..ee0b0bf --- /dev/null +++ b/code/tools/lcc/include/alpha/osf/assert.h @@ -0,0 +1,14 @@ +#ifndef __ASSERT +#define __ASSERT + +void assert(int); + +#endif /* __ASSERT */ + +#undef assert +#ifdef NDEBUG +#define assert(ignore) ((void)0) +#else +extern void __assert(char *, char *, unsigned); +#define assert(e) ((void)((e)||(__assert(#e, __FILE__, __LINE__),0))) +#endif /* NDEBUG */ diff --git a/code/tools/lcc/include/alpha/osf/ctype.h b/code/tools/lcc/include/alpha/osf/ctype.h new file mode 100644 index 0000000..02e0131 --- /dev/null +++ b/code/tools/lcc/include/alpha/osf/ctype.h @@ -0,0 +1,25 @@ +#ifndef __CTYPE +#define __CTYPE + +extern int isalnum(int); +extern int isalpha(int); +extern int iscntrl(int); +extern int isdigit(int); +extern int isgraph(int); +extern int islower(int); +extern int isprint(int); +extern int ispunct(int); +extern int isspace(int); +extern int isupper(int); +extern int isxdigit(int); +extern int tolower(int); +extern int toupper(int); + +#define __U 01 +#define __L 02 +#define __N 04 +#define __S 010 +#define __P 020 +#define __C 040 + +#endif /* __CTYPE */ diff --git a/code/tools/lcc/include/alpha/osf/errno.h b/code/tools/lcc/include/alpha/osf/errno.h new file mode 100644 index 0000000..c914e05 --- /dev/null +++ b/code/tools/lcc/include/alpha/osf/errno.h @@ -0,0 +1,8 @@ +#ifndef __ERRNO +#define __ERRNO + +#define EDOM 33 +#define ERANGE 34 +extern int errno; + +#endif /* __ERRNO */ diff --git a/code/tools/lcc/include/alpha/osf/float.h b/code/tools/lcc/include/alpha/osf/float.h new file mode 100644 index 0000000..a3e1eb5 --- /dev/null +++ b/code/tools/lcc/include/alpha/osf/float.h @@ -0,0 +1,37 @@ +#ifndef __FLOAT +#define __FLOAT + +#define FLT_ROUNDS 1 +#define FLT_RADIX 2 + +#define FLT_DIG 6 +#define FLT_EPSILON 1.19209289550781250000e-07 +#define FLT_MANT_DIG 24 +#define FLT_MAX 3.40282346638528860000e+38 +#define FLT_MAX_10_EXP 38 +#define FLT_MAX_EXP 128 +#define FLT_MIN 1.17549435082228750000e-38 +#define FLT_MIN_10_EXP -37 +#define FLT_MIN_EXP -125 + +#define DBL_DIG 15 +#define DBL_EPSILON 2.22044604925031310000e-16 +#define DBL_MANT_DIG 53 +#define DBL_MAX 1.79769313486231570000e+308 +#define DBL_MAX_10_EXP 308 +#define DBL_MAX_EXP 1024 +#define DBL_MIN 2.22507385850720140000e-308 +#define DBL_MIN_10_EXP -307 +#define DBL_MIN_EXP -1021 + +#define LDBL_MANT_DIG DBL_MANT_DIG +#define LDBL_EPSILON DBL_EPSILON +#define LDBL_DIG DBL_DIG +#define LDBL_MIN_EXP DBL_MIN_EXP +#define LDBL_MIN DBL_MIN +#define LDBL_MIN_10_EXP DBL_MIN_10_EXP +#define LDBL_MAX_EXP DBL_MAX_EXP +#define LDBL_MAX DBL_MAX +#define LDBL_MAX_10_EXP DBL_MAX_10_EXP + +#endif /* __FLOAT */ diff --git a/code/tools/lcc/include/alpha/osf/limits.h b/code/tools/lcc/include/alpha/osf/limits.h new file mode 100644 index 0000000..4b4122b --- /dev/null +++ b/code/tools/lcc/include/alpha/osf/limits.h @@ -0,0 +1,24 @@ +#ifndef __LIMITS +#define __LIMITS + +#define CHAR_BIT 8 +#define MB_LEN_MAX 1 + +#define UCHAR_MAX 0xff +#define USHRT_MAX 0xffff +#define UINT_MAX (~0U) +#define ULONG_MAX (~0UL) + +#define CHAR_MAX SCHAR_MAX +#define SCHAR_MAX 0x7f +#define SHRT_MAX 0x7fff +#define INT_MAX 0x7fffffff +#define LONG_MAX 0x7fffffffffffffffL + +#define CHAR_MIN SCHAR_MIN +#define SCHAR_MIN (-SCHAR_MAX-1) +#define SHRT_MIN (-SHRT_MAX-1) +#define INT_MIN (-INT_MAX-1) +#define LONG_MIN (-LONG_MAX-1) + +#endif /* __LIMITS */ diff --git a/code/tools/lcc/include/alpha/osf/locale.h b/code/tools/lcc/include/alpha/osf/locale.h new file mode 100644 index 0000000..acce293 --- /dev/null +++ b/code/tools/lcc/include/alpha/osf/locale.h @@ -0,0 +1,36 @@ +#ifndef __LOCALE +#define __LOCALE + +#define LC_ALL 0 +#define LC_COLLATE 1 +#define LC_CTYPE 2 +#define LC_MONETARY 3 +#define LC_NUMERIC 4 +#define LC_TIME 5 +#define NULL 0 + +struct lconv { + char *decimal_point; + char *thousands_sep; + char *grouping; + char *int_curr_symbol; + char *currency_symbol; + char *mon_decimal_point; + char *mon_thousands_sep; + char *mon_grouping; + char *positive_sign; + char *negative_sign; + char int_frac_digits; + char frac_digits; + char p_cs_precedes; + char p_sep_by_space; + char n_cs_precedes; + char n_sep_by_space; + char p_sign_posn; + char n_sign_posn; +}; + +char *setlocale(int, const char *); +struct lconv *localeconv(void); + +#endif /* __LOCALE */ diff --git a/code/tools/lcc/include/alpha/osf/math.h b/code/tools/lcc/include/alpha/osf/math.h new file mode 100644 index 0000000..d2a31f4 --- /dev/null +++ b/code/tools/lcc/include/alpha/osf/math.h @@ -0,0 +1,29 @@ +#ifndef __MATH +#define __MATH + +#define HUGE_VAL 1.79769313486231570000e+308 + +extern double acos(double); +extern double asin(double); +extern double atan(double); +extern double atan2(double, double); +extern double cos(double); +extern double sin(double); +extern double tan(double); +extern double cosh(double); +extern double sinh(double); +extern double tanh(double); +extern double exp(double); +extern double frexp(double, int *); +extern double ldexp(double, int); +extern double log(double); +extern double log10(double); +extern double modf(double, double *); +extern double pow(double, double); +extern double sqrt(double); +extern double ceil(double); +extern double fabs(double); +extern double floor(double); +extern double fmod(double, double); + +#endif /* __MATH */ diff --git a/code/tools/lcc/include/alpha/osf/setjmp.h b/code/tools/lcc/include/alpha/osf/setjmp.h new file mode 100644 index 0000000..48caf9e --- /dev/null +++ b/code/tools/lcc/include/alpha/osf/setjmp.h @@ -0,0 +1,10 @@ +#ifndef __SETJMP +#define __SETJMP + + + +typedef int jmp_buf[35+1+48]; +int setjmp(jmp_buf); +void longjmp(jmp_buf, int); + +#endif /* __SETJMP */ diff --git a/code/tools/lcc/include/alpha/osf/signal.h b/code/tools/lcc/include/alpha/osf/signal.h new file mode 100644 index 0000000..c208a6b --- /dev/null +++ b/code/tools/lcc/include/alpha/osf/signal.h @@ -0,0 +1,20 @@ +#ifndef __SIGNAL +#define __SIGNAL + +typedef int sig_atomic_t; + +#define SIG_DFL ((void (*)(int))0) +#define SIG_ERR ((void (*)(int))-1) +#define SIG_IGN ((void (*)(int))1) + +#define SIGABRT 6 +#define SIGFPE 8 +#define SIGILL 4 +#define SIGINT 2 +#define SIGSEGV 11 +#define SIGTERM 15 + +void (*signal(int, void (*)(int)))(int); +int raise(int); + +#endif /* __SIGNAL */ diff --git a/code/tools/lcc/include/alpha/osf/stdarg.h b/code/tools/lcc/include/alpha/osf/stdarg.h new file mode 100644 index 0000000..a05c92b --- /dev/null +++ b/code/tools/lcc/include/alpha/osf/stdarg.h @@ -0,0 +1,28 @@ +#ifndef __STDARG +#define __STDARG + +#if !defined(_VA_LIST) +#define _VA_LIST +typedef struct { + char *_a0; /* pointer to first homed integer arg */ + int _offset; /* byte offset of next param */ + float _tmp; +} __va_list; +#endif +typedef __va_list va_list; + +#define va_start(list, start) ((void)( \ + (list)._a0 = (__typecode(__firstarg)==1 ? \ + (char*)&__firstarg+48 : (char *)&__firstarg), \ + (list)._offset = (__typecode(start)==1 ? \ + (char*)&start+56 : (char *)&start+8)-(list)._a0)) +#define va_arg(list, mode) (*(mode *)( \ + (list)._offset += (int)((sizeof(mode)+7)&~7), \ + (__typecode(mode)==1 && sizeof(mode)==4) ? \ + ((list)._tmp = (float)*(double *)((list)._a0 + (list)._offset - \ + ((list)._offset <= 48 ? 56 : 8))), (char *)&(list)._tmp : \ + (__typecode(mode)==1 && (list)._offset <= 48) ? \ + (list)._a0 + (list)._offset - 56 : \ + (list)._a0 + (list)._offset - (int)((sizeof(mode)+7)&~7))) +#define va_end(list) ((void)0) +#endif diff --git a/code/tools/lcc/include/alpha/osf/stddef.h b/code/tools/lcc/include/alpha/osf/stddef.h new file mode 100644 index 0000000..4e87e1c --- /dev/null +++ b/code/tools/lcc/include/alpha/osf/stddef.h @@ -0,0 +1,22 @@ +#ifndef __STDDEF +#define __STDDEF + + +#define NULL 0 +#define offsetof(ty,mem) ((size_t)((char*)&((ty*)0)->mem - (char*)0)) + +typedef long ptrdiff_t; + +#if !defined(_SIZE_T) && !defined(_SIZE_T_) +#define _SIZE_T +#define _SIZE_T_ +typedef unsigned long size_t; +#endif + +#if !defined(_WCHAR_T) && !defined(_WCHAR_T_) +#define _WCHAR_T +#define _WCHAR_T_ +typedef unsigned short wchar_t; +#endif + +#endif /* __STDDEF */ diff --git a/code/tools/lcc/include/alpha/osf/stdio.h b/code/tools/lcc/include/alpha/osf/stdio.h new file mode 100644 index 0000000..216bec7 --- /dev/null +++ b/code/tools/lcc/include/alpha/osf/stdio.h @@ -0,0 +1,113 @@ +#ifndef __STDIO +#define __STDIO + +#define _IOFBF 0 +#define _IOLBF 0200 +#define _IONBF 04 +#define BUFSIZ 8192 +#define EOF (-1) + +typedef struct _iobuf { + int _cnt; + unsigned char *_ptr; + unsigned char *_base; + int _bufsiz; + short _flag; + short _file; + char *__newbase; + void *_lock; + unsigned char *_bufendp; +} FILE; +extern FILE _iob[]; +#define FILENAME_MAX 255 +#define FOPEN_MAX 64 + +#if !defined(_FPOS_T) && !defined(_FPOS_T_) +#define _FPOS_T +#define _FPOS_T_ +typedef long fpos_t; +#endif + +#define L_tmpnam 21 +#define NULL 0 +#define SEEK_CUR 1 +#define SEEK_END 2 +#define SEEK_SET 0 + +#if !defined(_SIZE_T) && !defined(_SIZE_T_) +#define _SIZE_T +#define _SIZE_T_ +typedef unsigned long size_t; +#endif + +#if !defined(_VA_LIST) +#define _VA_LIST +typedef struct { + char *_a0; /* pointer to first homed integer arg */ + int _offset; /* byte offset of next param */ + float _tmp; +} __va_list; +#endif + +#define stderr (&_iob[2]) +#define stdin (&_iob[0]) +#define stdout (&_iob[1]) +#define TMP_MAX 16384 + +extern int remove(const char *); +extern int rename(const char *, const char *); +extern FILE *tmpfile(void); +extern char *tmpnam(char *); +extern int fclose(FILE *); +extern int fflush(FILE *); +extern FILE *fopen(const char *, const char *); +extern FILE *freopen(const char *, const char *, FILE *); +extern void setbuf(FILE *, char *); +extern int setvbuf(FILE *, char *, int, size_t); +extern int fprintf(FILE *, const char *, ...); +extern int fscanf(FILE *, const char *, ...); +extern int printf(const char *, ...); +extern int scanf(const char *, ...); +extern int sprintf(char *, const char *, ...); +extern int sscanf(const char *, const char *, ...); +extern int vfprintf(FILE *, const char *, __va_list); +extern int vprintf(const char *, __va_list); +extern int vsprintf(char *, const char *, __va_list); +extern int fgetc(FILE *); +extern char *fgets(char *, int, FILE *); +extern int fputc(int, FILE *); +extern int fputs(const char *, FILE *); +extern int getc(FILE *); +extern int getchar(void); +extern char *gets(char *); +extern int putc(int, FILE *); +extern int putchar(int); +extern int puts(const char *); +extern int ungetc(int, FILE *); +extern size_t fread(void *, size_t, size_t, FILE *); +extern size_t fwrite(const void *, size_t, size_t, FILE *); +extern int fgetpos(FILE *, fpos_t *); +extern int fseek(FILE *, long int, int); +extern int fsetpos(FILE *, const fpos_t *); +extern long int ftell(FILE *); +extern void rewind(FILE *); +extern void clearerr(FILE *); +extern int feof(FILE *); +extern int ferror(FILE *); +extern void perror(const char *); + +#define _IOEOF 020 +#define _IOERR 040 + +#define getc(p) (--(p)->_cnt < 0 ? _filbuf(p) : (int) *(p)->_ptr++) +#define putc(x, p) (--(p)->_cnt < 0 ? \ + _flsbuf((unsigned char) (x), p) : \ + (int) (*(p)->_ptr++ = (unsigned char) (x))) +extern int _filbuf(FILE *), _flsbuf(unsigned, FILE *); +#define feof(p) ((p)->_flag&_IOEOF) +#define ferror(p) ((p)->_flag&_IOERR) +#define clearerr(p) ((p)->_flag &= ~(_IOERR|_IOEOF)) +#define getchar() getc(stdin) +#define putchar(x) putc((x),stdout) + +#endif /* __STDIO */ diff --git a/code/tools/lcc/include/alpha/osf/stdlib.h b/code/tools/lcc/include/alpha/osf/stdlib.h new file mode 100644 index 0000000..ac1204c --- /dev/null +++ b/code/tools/lcc/include/alpha/osf/stdlib.h @@ -0,0 +1,54 @@ +#ifndef __STDLIB +#define __STDLIB + +#define EXIT_FAILURE 1 +#define EXIT_SUCCESS 0 +#define MB_CUR_MAX 1 +#define NULL 0 +#define RAND_MAX 32767 + +typedef struct { int quot, rem; } div_t; +typedef struct { long quot, rem; } ldiv_t; + +#if !defined(_SIZE_T) && !defined(_SIZE_T_) +#define _SIZE_T +#define _SIZE_T_ +typedef unsigned long size_t; +#endif + +#if !defined(_WCHAR_T) && !defined(_WCHAR_T_) +#define _WCHAR_T +#define _WCHAR_T_ +typedef unsigned char wchar_t; +#endif + +extern double atof(const char *); +extern int atoi(const char *); +extern long int atol(const char *); +extern double strtod(const char *, char **); +extern long int strtol(const char *, char **, int); +extern unsigned long int strtoul(const char *, char **, int); +extern int rand(void); +extern void srand(unsigned int); +extern void *calloc(size_t, size_t); +extern void free(void *); +extern void *malloc(size_t); +extern void *realloc(void *, size_t); +extern void abort(void); +extern int atexit(void (*)(void)); +extern void exit(int); +extern char *getenv(const char *); +extern int system(const char *); +extern void *bsearch(const void *, const void *, size_t, size_t, int (*)(const void *, const void *)); +extern void qsort(void *, size_t, size_t, int (*)(const void *, const void *)); +extern int abs(int); +extern div_t div(int, int); +extern long int labs(long int); +extern ldiv_t ldiv(long int, long int); +extern int mblen(const char *, size_t); +extern int mbtowc(wchar_t *, const char *, size_t); +extern int wctomb(char *, wchar_t); +extern size_t mbstowcs(wchar_t *, const char *, size_t); +extern size_t wcstombs(char *, const wchar_t *, size_t); + +#endif /* __STDLIB */ diff --git a/code/tools/lcc/include/alpha/osf/string.h b/code/tools/lcc/include/alpha/osf/string.h new file mode 100644 index 0000000..8432820 --- /dev/null +++ b/code/tools/lcc/include/alpha/osf/string.h @@ -0,0 +1,35 @@ +#ifndef __STRING +#define __STRING + +#define NULL 0 + +#if !defined(_SIZE_T) && !defined(_SIZE_T_) +#define _SIZE_T +#define _SIZE_T_ +typedef unsigned long size_t; +#endif + +void *memcpy(void *, const void *, size_t); +void *memmove(void *, const void *, size_t); +char *strcpy(char *, const char *); +char *strncpy(char *, const char *, size_t); +char *strcat(char *, const char *); +char *strncat(char *, const char *, size_t); +int memcmp(const void *, const void *, size_t); +int strcmp(const char *, const char *); +int strcoll(const char *, const char *); +int strncmp(const char *, const char *, size_t); +size_t strxfrm(char *, const char *, size_t); +void *memchr(const void *, int, size_t); +char *strchr(const char *, int); +size_t strcspn(const char *, const char *); +char *strpbrk(const char *, const char *); +char *strrchr(const char *, int); +size_t strspn(const char *, const char *); +char *strstr(const char *, const char *); +char *strtok(char *, const char *); +void *memset(void *, int, size_t); +char *strerror(int); +size_t strlen(const char *); + +#endif /* __STRING */ diff --git a/code/tools/lcc/include/alpha/osf/time.h b/code/tools/lcc/include/alpha/osf/time.h new file mode 100644 index 0000000..a855400 --- /dev/null +++ b/code/tools/lcc/include/alpha/osf/time.h @@ -0,0 +1,50 @@ +#ifndef __TIME +#define __TIME + +#define CLOCKS_PER_SEC 1000000 +#ifndef NULL +#define NULL 0 +#endif + +#if !defined(_CLOCK_T) && !defined(_CLOCK_T_) +#define _CLOCK_T +#define _CLOCK_T_ +typedef long clock_t; +#endif + +#if !defined(_TIME_T) && !defined(_TIME_T_) +#define _TIME_T +#define _TIME_T_ +typedef long time_t; +#endif + +#if !defined(_SIZE_T) && !defined(_SIZE_T_) +#define _SIZE_T +#define _SIZE_T_ +typedef unsigned long size_t; +#endif + +struct tm { + int tm_sec; + int tm_min; + int tm_hour; + int tm_mday; + int tm_mon; + int tm_year; + int tm_wday; + int tm_yday; + int tm_isdst; +long __tm_gmtoff; + char *__tm_zone; +}; +extern clock_t clock(void); +extern double difftime(time_t, time_t); +extern time_t mktime(struct tm *); +extern time_t time(time_t *); +extern char *asctime(const struct tm *); +extern char *ctime(const time_t *); +extern struct tm *gmtime(const time_t *); +extern struct tm *localtime(const time_t *); +extern size_t strftime(char *, size_t, const char *, const struct tm *); + +#endif /* __TIME */ diff --git a/code/tools/lcc/include/mips/irix/assert.h b/code/tools/lcc/include/mips/irix/assert.h new file mode 100644 index 0000000..04b0e3a --- /dev/null +++ b/code/tools/lcc/include/mips/irix/assert.h @@ -0,0 +1,14 @@ +#ifndef __ASSERT +#define __ASSERT + +void assert(int); + +#endif /* __ASSERT */ + +#undef assert +#ifdef NDEBUG +#define assert(ignore) ((void)0) +#else +extern int _assert(char *, char *, unsigned); +#define assert(e) ((void)((e)||_assert(#e, __FILE__, __LINE__))) +#endif /* NDEBUG */ diff --git a/code/tools/lcc/include/mips/irix/ctype.h b/code/tools/lcc/include/mips/irix/ctype.h new file mode 100644 index 0000000..2a43440 --- /dev/null +++ b/code/tools/lcc/include/mips/irix/ctype.h @@ -0,0 +1,40 @@ +#ifndef __CTYPE +#define __CTYPE + +extern int isalnum(int); +extern int isalpha(int); +extern int iscntrl(int); +extern int isdigit(int); +extern int isgraph(int); +extern int islower(int); +extern int isprint(int); +extern int ispunct(int); +extern int isspace(int); +extern int isupper(int); +extern int isxdigit(int); +extern int tolower(int); +extern int toupper(int); + +#define __U 01 +#define __L 02 +#define __N 04 +#define __S 010 +#define __P 020 +#define __C 040 +#define __B 0100 +#define __X 0200 + +extern unsigned char _ctype[]; +#define isalnum(c) ((_ctype+1)[c]&(__U|__L|__N)) +#define isalpha(c) ((_ctype+1)[c]&(__U|__L)) +#define iscntrl(c) ((_ctype+1)[c]&__C) +#define isdigit(c) ((_ctype+1)[c]&__N) +#define isgraph(c) ((_ctype+1)[c]&(__P|__U|__L|__N)) +#define islower(c) ((_ctype+1)[c]&__L) +#define isprint(c) ((_ctype+1)[c]&(__P|__U|__L|__N|__B)) +#define ispunct(c) ((_ctype+1)[c]&__P) +#define isspace(c) ((_ctype+1)[c]&__S) +#define isupper(c) ((_ctype+1)[c]&__U) +#define isxdigit(c) ((_ctype+1)[c]&__X) + +#endif /* __CTYPE */ diff --git a/code/tools/lcc/include/mips/irix/errno.h b/code/tools/lcc/include/mips/irix/errno.h new file mode 100644 index 0000000..c914e05 --- /dev/null +++ b/code/tools/lcc/include/mips/irix/errno.h @@ -0,0 +1,8 @@ +#ifndef __ERRNO +#define __ERRNO + +#define EDOM 33 +#define ERANGE 34 +extern int errno; + +#endif /* __ERRNO */ diff --git a/code/tools/lcc/include/mips/irix/float.h b/code/tools/lcc/include/mips/irix/float.h new file mode 100644 index 0000000..a3e1eb5 --- /dev/null +++ b/code/tools/lcc/include/mips/irix/float.h @@ -0,0 +1,37 @@ +#ifndef __FLOAT +#define __FLOAT + +#define FLT_ROUNDS 1 +#define FLT_RADIX 2 + +#define FLT_DIG 6 +#define FLT_EPSILON 1.19209289550781250000e-07 +#define FLT_MANT_DIG 24 +#define FLT_MAX 3.40282346638528860000e+38 +#define FLT_MAX_10_EXP 38 +#define FLT_MAX_EXP 128 +#define FLT_MIN 1.17549435082228750000e-38 +#define FLT_MIN_10_EXP -37 +#define FLT_MIN_EXP -125 + +#define DBL_DIG 15 +#define DBL_EPSILON 2.22044604925031310000e-16 +#define DBL_MANT_DIG 53 +#define DBL_MAX 1.79769313486231570000e+308 +#define DBL_MAX_10_EXP 308 +#define DBL_MAX_EXP 1024 +#define DBL_MIN 2.22507385850720140000e-308 +#define DBL_MIN_10_EXP -307 +#define DBL_MIN_EXP -1021 + +#define LDBL_MANT_DIG DBL_MANT_DIG +#define LDBL_EPSILON DBL_EPSILON +#define LDBL_DIG DBL_DIG +#define LDBL_MIN_EXP DBL_MIN_EXP +#define LDBL_MIN DBL_MIN +#define LDBL_MIN_10_EXP DBL_MIN_10_EXP +#define LDBL_MAX_EXP DBL_MAX_EXP +#define LDBL_MAX DBL_MAX +#define LDBL_MAX_10_EXP DBL_MAX_10_EXP + +#endif /* __FLOAT */ diff --git a/code/tools/lcc/include/mips/irix/limits.h b/code/tools/lcc/include/mips/irix/limits.h new file mode 100644 index 0000000..30944a5 --- /dev/null +++ b/code/tools/lcc/include/mips/irix/limits.h @@ -0,0 +1,24 @@ +#ifndef __LIMITS +#define __LIMITS + +#define CHAR_BIT 8 +#define MB_LEN_MAX 1 + +#define UCHAR_MAX 0xff +#define USHRT_MAX 0xffff +#define UINT_MAX (~0U) +#define ULONG_MAX (~0UL) + +#define CHAR_MAX SCHAR_MAX +#define SCHAR_MAX 0x7f +#define SHRT_MAX 0x7fff +#define INT_MAX 0x7fffffff +#define LONG_MAX 0x7fffffffL + +#define CHAR_MIN SCHAR_MIN +#define SCHAR_MIN (-SCHAR_MAX-1) +#define SHRT_MIN (-SHRT_MAX-1) +#define INT_MIN (-INT_MAX-1) +#define LONG_MIN (-LONG_MAX-1) + +#endif /* __LIMITS */ diff --git a/code/tools/lcc/include/mips/irix/locale.h b/code/tools/lcc/include/mips/irix/locale.h new file mode 100644 index 0000000..acce293 --- /dev/null +++ b/code/tools/lcc/include/mips/irix/locale.h @@ -0,0 +1,36 @@ +#ifndef __LOCALE +#define __LOCALE + +#define LC_ALL 0 +#define LC_COLLATE 1 +#define LC_CTYPE 2 +#define LC_MONETARY 3 +#define LC_NUMERIC 4 +#define LC_TIME 5 +#define NULL 0 + +struct lconv { + char *decimal_point; + char *thousands_sep; + char *grouping; + char *int_curr_symbol; + char *currency_symbol; + char *mon_decimal_point; + char *mon_thousands_sep; + char *mon_grouping; + char *positive_sign; + char *negative_sign; + char int_frac_digits; + char frac_digits; + char p_cs_precedes; + char p_sep_by_space; + char n_cs_precedes; + char n_sep_by_space; + char p_sign_posn; + char n_sign_posn; +}; + +char *setlocale(int, const char *); +struct lconv *localeconv(void); + +#endif /* __LOCALE */ diff --git a/code/tools/lcc/include/mips/irix/math.h b/code/tools/lcc/include/mips/irix/math.h new file mode 100644 index 0000000..d2a31f4 --- /dev/null +++ b/code/tools/lcc/include/mips/irix/math.h @@ -0,0 +1,29 @@ +#ifndef __MATH +#define __MATH + +#define HUGE_VAL 1.79769313486231570000e+308 + +extern double acos(double); +extern double asin(double); +extern double atan(double); +extern double atan2(double, double); +extern double cos(double); +extern double sin(double); +extern double tan(double); +extern double cosh(double); +extern double sinh(double); +extern double tanh(double); +extern double exp(double); +extern double frexp(double, int *); +extern double ldexp(double, int); +extern double log(double); +extern double log10(double); +extern double modf(double, double *); +extern double pow(double, double); +extern double sqrt(double); +extern double ceil(double); +extern double fabs(double); +extern double floor(double); +extern double fmod(double, double); + +#endif /* __MATH */ diff --git a/code/tools/lcc/include/mips/irix/setjmp.h b/code/tools/lcc/include/mips/irix/setjmp.h new file mode 100644 index 0000000..384a1ca --- /dev/null +++ b/code/tools/lcc/include/mips/irix/setjmp.h @@ -0,0 +1,10 @@ +#ifndef __SETJMP +#define __SETJMP + + + +typedef int jmp_buf[28]; +int setjmp(jmp_buf); +void longjmp(jmp_buf, int); + +#endif /* __SETJMP */ diff --git a/code/tools/lcc/include/mips/irix/signal.h b/code/tools/lcc/include/mips/irix/signal.h new file mode 100644 index 0000000..c208a6b --- /dev/null +++ b/code/tools/lcc/include/mips/irix/signal.h @@ -0,0 +1,20 @@ +#ifndef __SIGNAL +#define __SIGNAL + +typedef int sig_atomic_t; + +#define SIG_DFL ((void (*)(int))0) +#define SIG_ERR ((void (*)(int))-1) +#define SIG_IGN ((void (*)(int))1) + +#define SIGABRT 6 +#define SIGFPE 8 +#define SIGILL 4 +#define SIGINT 2 +#define SIGSEGV 11 +#define SIGTERM 15 + +void (*signal(int, void (*)(int)))(int); +int raise(int); + +#endif /* __SIGNAL */ diff --git a/code/tools/lcc/include/mips/irix/stdarg.h b/code/tools/lcc/include/mips/irix/stdarg.h new file mode 100644 index 0000000..594db32 --- /dev/null +++ b/code/tools/lcc/include/mips/irix/stdarg.h @@ -0,0 +1,22 @@ +#ifndef __STDARG +#define __STDARG + +#if !defined(_VA_LIST) +#define _VA_LIST +typedef char *__va_list; +#endif +typedef __va_list va_list; + +#define va_start(list, start) ((void)((list) = (sizeof(start)<4 ? \ + (char *)((int *)&(start)+1) : (char *)(&(start)+1)))) +#define __va_arg(list, mode, n) \ + (*(mode *)(&(list += ((sizeof(mode)+n)&~n))[-(int)((sizeof(mode)+n)&~n)])) +#define _bigendian_va_arg(list, mode, n) (\ + sizeof(mode)==1 ? *(mode *)(&(list += 4)[-1]) : \ + sizeof(mode)==2 ? *(mode *)(&(list += 4)[-2]) : __va_arg(list, mode, n)) +#define _littleendian_va_arg(list, mode, n) __va_arg(list, mode, n) +#define va_end(list) ((void)0) +#define va_arg(list, mode) (sizeof(mode)==8 ? \ + *(mode *)(&(list = (char*)(((int)list + 15)&~7U))[-8]) : \ + _bigendian_va_arg(list, mode, 3U)) +#endif diff --git a/code/tools/lcc/include/mips/irix/stddef.h b/code/tools/lcc/include/mips/irix/stddef.h new file mode 100644 index 0000000..4e87e1c --- /dev/null +++ b/code/tools/lcc/include/mips/irix/stddef.h @@ -0,0 +1,22 @@ +#ifndef __STDDEF +#define __STDDEF + + +#define NULL 0 +#define offsetof(ty,mem) ((size_t)((char*)&((ty*)0)->mem - (char*)0)) + +typedef long ptrdiff_t; + +#if !defined(_SIZE_T) && !defined(_SIZE_T_) +#define _SIZE_T +#define _SIZE_T_ +typedef unsigned long size_t; +#endif + +#if !defined(_WCHAR_T) && !defined(_WCHAR_T_) +#define _WCHAR_T +#define _WCHAR_T_ +typedef unsigned short wchar_t; +#endif + +#endif /* __STDDEF */ diff --git a/code/tools/lcc/include/mips/irix/stdio.h b/code/tools/lcc/include/mips/irix/stdio.h new file mode 100644 index 0000000..2668465 --- /dev/null +++ b/code/tools/lcc/include/mips/irix/stdio.h @@ -0,0 +1,103 @@ +#ifndef __STDIO +#define __STDIO + +#define _IOFBF 0 +#define _IOLBF 0100 +#define _IONBF 04 +#define BUFSIZ 1024 +#define EOF (-1) + +extern struct _iobuf { + int _cnt; + unsigned char *_ptr; + unsigned char *_base; + char _flag; + char _file; +} _iob[]; +#define FILE struct _iobuf +#define FILENAME_MAX 256 +#define FOPEN_MAX 100 + +#if !defined(_FPOS_T) && !defined(_FPOS_T_) +#define _FPOS_T +#define _FPOS_T_ +typedef long fpos_t; +#endif + +#define L_tmpnam 25 +#define NULL 0 +#define SEEK_CUR 1 +#define SEEK_END 2 +#define SEEK_SET 0 + +#if !defined(_SIZE_T) && !defined(_SIZE_T_) +#define _SIZE_T +#define _SIZE_T_ +typedef unsigned long size_t; +#endif + +#if !defined(_VA_LIST) +#define _VA_LIST +typedef char *__va_list; +#endif + +#define stderr (&_iob[2]) +#define stdin (&_iob[0]) +#define stdout (&_iob[1]) +#define TMP_MAX 17576 + +extern int remove(const char *); +extern int rename(const char *, const char *); +extern FILE *tmpfile(void); +extern char *tmpnam(char *); +extern int fclose(FILE *); +extern int fflush(FILE *); +extern FILE *fopen(const char *, const char *); +extern FILE *freopen(const char *, const char *, FILE *); +extern void setbuf(FILE *, char *); +extern int setvbuf(FILE *, char *, int, size_t); +extern int fprintf(FILE *, const char *, ...); +extern int fscanf(FILE *, const char *, ...); +extern int printf(const char *, ...); +extern int scanf(const char *, ...); +extern int sprintf(char *, const char *, ...); +extern int sscanf(const char *, const char *, ...); +extern int vfprintf(FILE *, const char *, __va_list); +extern int vprintf(const char *, __va_list); +extern int vsprintf(char *, const char *, __va_list); +extern int fgetc(FILE *); +extern char *fgets(char *, int, FILE *); +extern int fputc(int, FILE *); +extern int fputs(const char *, FILE *); +extern int getc(FILE *); +extern int getchar(void); +extern char *gets(char *); +extern int putc(int, FILE *); +extern int putchar(int); +extern int puts(const char *); +extern int ungetc(int, FILE *); +extern size_t fread(void *, size_t, size_t, FILE *); +extern size_t fwrite(const void *, size_t, size_t, FILE *); +extern int fgetpos(FILE *, fpos_t *); +extern int fseek(FILE *, long int, int); +extern int fsetpos(FILE *, const fpos_t *); +extern long int ftell(FILE *); +extern void rewind(FILE *); +extern void clearerr(FILE *); +extern int feof(FILE *); +extern int ferror(FILE *); +extern void perror(const char *); + +#define _IOEOF 020 +#define _IOERR 040 + +#define getc(p) (--(p)->_cnt < 0 ? _filbuf(p) : (int) *(p)->_ptr++) +#define putc(x, p) (--(p)->_cnt < 0 ? _flsbuf((unsigned char) (x), p) : (int) (*(p)->_ptr++ = (unsigned char) (x))) +extern int _filbuf(FILE *), _flsbuf(unsigned, FILE *); +#define feof(p) ((p)->_flag&_IOEOF) +#define ferror(p) ((p)->_flag&_IOERR) +#define clearerr(p) ((p)->_flag &= ~(_IOERR|_IOEOF)) +#define getchar() getc(stdin) +#define putchar(x) putc((x),stdout) + +#endif /* __STDIO */ diff --git a/code/tools/lcc/include/mips/irix/stdlib.h b/code/tools/lcc/include/mips/irix/stdlib.h new file mode 100644 index 0000000..ac1204c --- /dev/null +++ b/code/tools/lcc/include/mips/irix/stdlib.h @@ -0,0 +1,54 @@ +#ifndef __STDLIB +#define __STDLIB + +#define EXIT_FAILURE 1 +#define EXIT_SUCCESS 0 +#define MB_CUR_MAX 1 +#define NULL 0 +#define RAND_MAX 32767 + +typedef struct { int quot, rem; } div_t; +typedef struct { long quot, rem; } ldiv_t; + +#if !defined(_SIZE_T) && !defined(_SIZE_T_) +#define _SIZE_T +#define _SIZE_T_ +typedef unsigned long size_t; +#endif + +#if !defined(_WCHAR_T) && !defined(_WCHAR_T_) +#define _WCHAR_T +#define _WCHAR_T_ +typedef unsigned char wchar_t; +#endif + +extern double atof(const char *); +extern int atoi(const char *); +extern long int atol(const char *); +extern double strtod(const char *, char **); +extern long int strtol(const char *, char **, int); +extern unsigned long int strtoul(const char *, char **, int); +extern int rand(void); +extern void srand(unsigned int); +extern void *calloc(size_t, size_t); +extern void free(void *); +extern void *malloc(size_t); +extern void *realloc(void *, size_t); +extern void abort(void); +extern int atexit(void (*)(void)); +extern void exit(int); +extern char *getenv(const char *); +extern int system(const char *); +extern void *bsearch(const void *, const void *, size_t, size_t, int (*)(const void *, const void *)); +extern void qsort(void *, size_t, size_t, int (*)(const void *, const void *)); +extern int abs(int); +extern div_t div(int, int); +extern long int labs(long int); +extern ldiv_t ldiv(long int, long int); +extern int mblen(const char *, size_t); +extern int mbtowc(wchar_t *, const char *, size_t); +extern int wctomb(char *, wchar_t); +extern size_t mbstowcs(wchar_t *, const char *, size_t); +extern size_t wcstombs(char *, const wchar_t *, size_t); + +#endif /* __STDLIB */ diff --git a/code/tools/lcc/include/mips/irix/string.h b/code/tools/lcc/include/mips/irix/string.h new file mode 100644 index 0000000..8432820 --- /dev/null +++ b/code/tools/lcc/include/mips/irix/string.h @@ -0,0 +1,35 @@ +#ifndef __STRING +#define __STRING + +#define NULL 0 + +#if !defined(_SIZE_T) && !defined(_SIZE_T_) +#define _SIZE_T +#define _SIZE_T_ +typedef unsigned long size_t; +#endif + +void *memcpy(void *, const void *, size_t); +void *memmove(void *, const void *, size_t); +char *strcpy(char *, const char *); +char *strncpy(char *, const char *, size_t); +char *strcat(char *, const char *); +char *strncat(char *, const char *, size_t); +int memcmp(const void *, const void *, size_t); +int strcmp(const char *, const char *); +int strcoll(const char *, const char *); +int strncmp(const char *, const char *, size_t); +size_t strxfrm(char *, const char *, size_t); +void *memchr(const void *, int, size_t); +char *strchr(const char *, int); +size_t strcspn(const char *, const char *); +char *strpbrk(const char *, const char *); +char *strrchr(const char *, int); +size_t strspn(const char *, const char *); +char *strstr(const char *, const char *); +char *strtok(char *, const char *); +void *memset(void *, int, size_t); +char *strerror(int); +size_t strlen(const char *); + +#endif /* __STRING */ diff --git a/code/tools/lcc/include/mips/irix/time.h b/code/tools/lcc/include/mips/irix/time.h new file mode 100644 index 0000000..07d8b41 --- /dev/null +++ b/code/tools/lcc/include/mips/irix/time.h @@ -0,0 +1,48 @@ +#ifndef __TIME +#define __TIME + +#define CLOCKS_PER_SEC 1000000 +#ifndef NULL +#define NULL 0 +#endif + +#if !defined(_CLOCK_T) && !defined(_CLOCK_T_) +#define _CLOCK_T +#define _CLOCK_T_ +typedef long clock_t; +#endif + +#if !defined(_TIME_T) && !defined(_TIME_T_) +#define _TIME_T +#define _TIME_T_ +typedef long time_t; +#endif + +#if !defined(_SIZE_T) && !defined(_SIZE_T_) +#define _SIZE_T +#define _SIZE_T_ +typedef unsigned long size_t; +#endif + +struct tm { + int tm_sec; + int tm_min; + int tm_hour; + int tm_mday; + int tm_mon; + int tm_year; + int tm_wday; + int tm_yday; + int tm_isdst; +}; +extern clock_t clock(void); +extern double difftime(time_t, time_t); +extern time_t mktime(struct tm *); +extern time_t time(time_t *); +extern char *asctime(const struct tm *); +extern char *ctime(const time_t *); +extern struct tm *gmtime(const time_t *); +extern struct tm *localtime(const time_t *); +extern size_t strftime(char *, size_t, const char *, const struct tm *); + +#endif /* __TIME */ diff --git a/code/tools/lcc/include/sparc/solaris/assert.h b/code/tools/lcc/include/sparc/solaris/assert.h new file mode 100644 index 0000000..ee0b0bf --- /dev/null +++ b/code/tools/lcc/include/sparc/solaris/assert.h @@ -0,0 +1,14 @@ +#ifndef __ASSERT +#define __ASSERT + +void assert(int); + +#endif /* __ASSERT */ + +#undef assert +#ifdef NDEBUG +#define assert(ignore) ((void)0) +#else +extern void __assert(char *, char *, unsigned); +#define assert(e) ((void)((e)||(__assert(#e, __FILE__, __LINE__),0))) +#endif /* NDEBUG */ diff --git a/code/tools/lcc/include/sparc/solaris/ctype.h b/code/tools/lcc/include/sparc/solaris/ctype.h new file mode 100644 index 0000000..b25b2a4 --- /dev/null +++ b/code/tools/lcc/include/sparc/solaris/ctype.h @@ -0,0 +1,46 @@ +#ifndef __CTYPE +#define __CTYPE + +extern int isalnum(int); +extern int isalpha(int); +extern int iscntrl(int); +extern int isdigit(int); +extern int isgraph(int); +extern int islower(int); +extern int isprint(int); +extern int ispunct(int); +extern int isspace(int); +extern int isupper(int); +extern int isxdigit(int); +extern int tolower(int); +extern int toupper(int); + +#define __U 01 +#define __L 02 +#define __N 04 +#define __S 010 +#define __P 020 +#define __C 040 +#define _U 01 +#define _L 02 +#define _N 04 +#define _S 010 +#define _P 020 +#define _C 040 +#define _B 0100 +#define _X 0200 + +extern unsigned char __ctype[]; +#define isalpha(c) ((__ctype + 1)[c] & (_U | _L)) +#define isupper(c) ((__ctype + 1)[c] & _U) +#define islower(c) ((__ctype + 1)[c] & _L) +#define isdigit(c) ((__ctype + 1)[c] & _N) +#define isxdigit(c) ((__ctype + 1)[c] & _X) +#define isalnum(c) ((__ctype + 1)[c] & (_U | _L | _N)) +#define isspace(c) ((__ctype + 1)[c] & _S) +#define ispunct(c) ((__ctype + 1)[c] & _P) +#define isprint(c) ((__ctype + 1)[c] & (_P | _U | _L | _N | _B)) +#define isgraph(c) ((__ctype + 1)[c] & (_P | _U | _L | _N)) +#define iscntrl(c) ((__ctype + 1)[c] & _C) + +#endif /* __CTYPE */ diff --git a/code/tools/lcc/include/sparc/solaris/errno.h b/code/tools/lcc/include/sparc/solaris/errno.h new file mode 100644 index 0000000..c914e05 --- /dev/null +++ b/code/tools/lcc/include/sparc/solaris/errno.h @@ -0,0 +1,8 @@ +#ifndef __ERRNO +#define __ERRNO + +#define EDOM 33 +#define ERANGE 34 +extern int errno; + +#endif /* __ERRNO */ diff --git a/code/tools/lcc/include/sparc/solaris/float.h b/code/tools/lcc/include/sparc/solaris/float.h new file mode 100644 index 0000000..a3e1eb5 --- /dev/null +++ b/code/tools/lcc/include/sparc/solaris/float.h @@ -0,0 +1,37 @@ +#ifndef __FLOAT +#define __FLOAT + +#define FLT_ROUNDS 1 +#define FLT_RADIX 2 + +#define FLT_DIG 6 +#define FLT_EPSILON 1.19209289550781250000e-07 +#define FLT_MANT_DIG 24 +#define FLT_MAX 3.40282346638528860000e+38 +#define FLT_MAX_10_EXP 38 +#define FLT_MAX_EXP 128 +#define FLT_MIN 1.17549435082228750000e-38 +#define FLT_MIN_10_EXP -37 +#define FLT_MIN_EXP -125 + +#define DBL_DIG 15 +#define DBL_EPSILON 2.22044604925031310000e-16 +#define DBL_MANT_DIG 53 +#define DBL_MAX 1.79769313486231570000e+308 +#define DBL_MAX_10_EXP 308 +#define DBL_MAX_EXP 1024 +#define DBL_MIN 2.22507385850720140000e-308 +#define DBL_MIN_10_EXP -307 +#define DBL_MIN_EXP -1021 + +#define LDBL_MANT_DIG DBL_MANT_DIG +#define LDBL_EPSILON DBL_EPSILON +#define LDBL_DIG DBL_DIG +#define LDBL_MIN_EXP DBL_MIN_EXP +#define LDBL_MIN DBL_MIN +#define LDBL_MIN_10_EXP DBL_MIN_10_EXP +#define LDBL_MAX_EXP DBL_MAX_EXP +#define LDBL_MAX DBL_MAX +#define LDBL_MAX_10_EXP DBL_MAX_10_EXP + +#endif /* __FLOAT */ diff --git a/code/tools/lcc/include/sparc/solaris/limits.h b/code/tools/lcc/include/sparc/solaris/limits.h new file mode 100644 index 0000000..30944a5 --- /dev/null +++ b/code/tools/lcc/include/sparc/solaris/limits.h @@ -0,0 +1,24 @@ +#ifndef __LIMITS +#define __LIMITS + +#define CHAR_BIT 8 +#define MB_LEN_MAX 1 + +#define UCHAR_MAX 0xff +#define USHRT_MAX 0xffff +#define UINT_MAX (~0U) +#define ULONG_MAX (~0UL) + +#define CHAR_MAX SCHAR_MAX +#define SCHAR_MAX 0x7f +#define SHRT_MAX 0x7fff +#define INT_MAX 0x7fffffff +#define LONG_MAX 0x7fffffffL + +#define CHAR_MIN SCHAR_MIN +#define SCHAR_MIN (-SCHAR_MAX-1) +#define SHRT_MIN (-SHRT_MAX-1) +#define INT_MIN (-INT_MAX-1) +#define LONG_MIN (-LONG_MAX-1) + +#endif /* __LIMITS */ diff --git a/code/tools/lcc/include/sparc/solaris/locale.h b/code/tools/lcc/include/sparc/solaris/locale.h new file mode 100644 index 0000000..acce293 --- /dev/null +++ b/code/tools/lcc/include/sparc/solaris/locale.h @@ -0,0 +1,36 @@ +#ifndef __LOCALE +#define __LOCALE + +#define LC_ALL 0 +#define LC_COLLATE 1 +#define LC_CTYPE 2 +#define LC_MONETARY 3 +#define LC_NUMERIC 4 +#define LC_TIME 5 +#define NULL 0 + +struct lconv { + char *decimal_point; + char *thousands_sep; + char *grouping; + char *int_curr_symbol; + char *currency_symbol; + char *mon_decimal_point; + char *mon_thousands_sep; + char *mon_grouping; + char *positive_sign; + char *negative_sign; + char int_frac_digits; + char frac_digits; + char p_cs_precedes; + char p_sep_by_space; + char n_cs_precedes; + char n_sep_by_space; + char p_sign_posn; + char n_sign_posn; +}; + +char *setlocale(int, const char *); +struct lconv *localeconv(void); + +#endif /* __LOCALE */ diff --git a/code/tools/lcc/include/sparc/solaris/math.h b/code/tools/lcc/include/sparc/solaris/math.h new file mode 100644 index 0000000..93b8bdc --- /dev/null +++ b/code/tools/lcc/include/sparc/solaris/math.h @@ -0,0 +1,30 @@ +#ifndef __MATH +#define __MATH + +extern double infinity(void); +#define HUGE_VAL (infinity()) + +extern double acos(double); +extern double asin(double); +extern double atan(double); +extern double atan2(double, double); +extern double cos(double); +extern double sin(double); +extern double tan(double); +extern double cosh(double); +extern double sinh(double); +extern double tanh(double); +extern double exp(double); +extern double frexp(double, int *); +extern double ldexp(double, int); +extern double log(double); +extern double log10(double); +extern double modf(double, double *); +extern double pow(double, double); +extern double sqrt(double); +extern double ceil(double); +extern double fabs(double); +extern double floor(double); +extern double fmod(double, double); + +#endif /* __MATH */ diff --git a/code/tools/lcc/include/sparc/solaris/setjmp.h b/code/tools/lcc/include/sparc/solaris/setjmp.h new file mode 100644 index 0000000..c5a063b --- /dev/null +++ b/code/tools/lcc/include/sparc/solaris/setjmp.h @@ -0,0 +1,10 @@ +#ifndef __SETJMP +#define __SETJMP + + + +typedef int jmp_buf[12]; +int setjmp(jmp_buf); +void longjmp(jmp_buf, int); + +#endif /* __SETJMP */ diff --git a/code/tools/lcc/include/sparc/solaris/signal.h b/code/tools/lcc/include/sparc/solaris/signal.h new file mode 100644 index 0000000..c208a6b --- /dev/null +++ b/code/tools/lcc/include/sparc/solaris/signal.h @@ -0,0 +1,20 @@ +#ifndef __SIGNAL +#define __SIGNAL + +typedef int sig_atomic_t; + +#define SIG_DFL ((void (*)(int))0) +#define SIG_ERR ((void (*)(int))-1) +#define SIG_IGN ((void (*)(int))1) + +#define SIGABRT 6 +#define SIGFPE 8 +#define SIGILL 4 +#define SIGINT 2 +#define SIGSEGV 11 +#define SIGTERM 15 + +void (*signal(int, void (*)(int)))(int); +int raise(int); + +#endif /* __SIGNAL */ diff --git a/code/tools/lcc/include/sparc/solaris/stdarg.h b/code/tools/lcc/include/sparc/solaris/stdarg.h new file mode 100644 index 0000000..5a99f45 --- /dev/null +++ b/code/tools/lcc/include/sparc/solaris/stdarg.h @@ -0,0 +1,22 @@ +#ifndef __STDARG +#define __STDARG + +#if !defined(_VA_LIST) +#define _VA_LIST +typedef char *__va_list; +#endif +typedef __va_list va_list; + +#define va_start(list, start) ((void)((list) = (sizeof(start)<4 ? \ + (char *)((int *)&(start)+1) : (char *)(&(start)+1)))) +#define __va_arg(list, mode, n) \ + (*(mode *)(&(list += ((sizeof(mode)+n)&~n))[-(int)((sizeof(mode)+n)&~n)])) +#define _bigendian_va_arg(list, mode, n) (\ + sizeof(mode)==1 ? *(mode *)(&(list += 4)[-1]) : \ + sizeof(mode)==2 ? *(mode *)(&(list += 4)[-2]) : __va_arg(list, mode, n)) +#define _littleendian_va_arg(list, mode, n) __va_arg(list, mode, n) +#define va_end(list) ((void)0) +#define va_arg(list, mode) (sizeof(mode)>8 ? \ + **(mode **)(&(list += 4)[-4]) : \ + _bigendian_va_arg(list, mode, 3U)) +#endif diff --git a/code/tools/lcc/include/sparc/solaris/stddef.h b/code/tools/lcc/include/sparc/solaris/stddef.h new file mode 100644 index 0000000..4e87e1c --- /dev/null +++ b/code/tools/lcc/include/sparc/solaris/stddef.h @@ -0,0 +1,22 @@ +#ifndef __STDDEF +#define __STDDEF + + +#define NULL 0 +#define offsetof(ty,mem) ((size_t)((char*)&((ty*)0)->mem - (char*)0)) + +typedef long ptrdiff_t; + +#if !defined(_SIZE_T) && !defined(_SIZE_T_) +#define _SIZE_T +#define _SIZE_T_ +typedef unsigned long size_t; +#endif + +#if !defined(_WCHAR_T) && !defined(_WCHAR_T_) +#define _WCHAR_T +#define _WCHAR_T_ +typedef unsigned short wchar_t; +#endif + +#endif /* __STDDEF */ diff --git a/code/tools/lcc/include/sparc/solaris/stdio.h b/code/tools/lcc/include/sparc/solaris/stdio.h new file mode 100644 index 0000000..b0e3232 --- /dev/null +++ b/code/tools/lcc/include/sparc/solaris/stdio.h @@ -0,0 +1,104 @@ +#ifndef __STDIO +#define __STDIO + +#define _IOFBF 0 +#define _IOLBF 0100 +#define _IONBF 04 +#define BUFSIZ 1024 +#define EOF (-1) + +typedef struct { + int _cnt; + unsigned char *_ptr; + unsigned char *_base; + unsigned char _flag; + unsigned char _file; +} FILE; +extern FILE __iob[]; +#define FILENAME_MAX 1024 +#define FOPEN_MAX 20 + +#if !defined(_FPOS_T) && !defined(_FPOS_T_) +#define _FPOS_T +#define _FPOS_T_ +typedef long fpos_t; +#endif + +#define L_tmpnam 25 +#define NULL 0 +#define SEEK_CUR 1 +#define SEEK_END 2 +#define SEEK_SET 0 + +#if !defined(_SIZE_T) && !defined(_SIZE_T_) +#define _SIZE_T +#define _SIZE_T_ +typedef unsigned long size_t; +#endif + +#if !defined(_VA_LIST) +#define _VA_LIST +typedef char *__va_list; +#endif + +#define stderr (&__iob[2]) +#define stdin (&__iob[0]) +#define stdout (&__iob[1]) +#define TMP_MAX 17576 + +extern int remove(const char *); +extern int rename(const char *, const char *); +extern FILE *tmpfile(void); +extern char *tmpnam(char *); +extern int fclose(FILE *); +extern int fflush(FILE *); +extern FILE *fopen(const char *, const char *); +extern FILE *freopen(const char *, const char *, FILE *); +extern void setbuf(FILE *, char *); +extern int setvbuf(FILE *, char *, int, size_t); +extern int fprintf(FILE *, const char *, ...); +extern int fscanf(FILE *, const char *, ...); +extern int printf(const char *, ...); +extern int scanf(const char *, ...); +extern int sprintf(char *, const char *, ...); +extern int sscanf(const char *, const char *, ...); +extern int vfprintf(FILE *, const char *, __va_list); +extern int vprintf(const char *, __va_list); +extern int vsprintf(char *, const char *, __va_list); +extern int fgetc(FILE *); +extern char *fgets(char *, int, FILE *); +extern int fputc(int, FILE *); +extern int fputs(const char *, FILE *); +extern int getc(FILE *); +extern int getchar(void); +extern char *gets(char *); +extern int putc(int, FILE *); +extern int putchar(int); +extern int puts(const char *); +extern int ungetc(int, FILE *); +extern size_t fread(void *, size_t, size_t, FILE *); +extern size_t fwrite(const void *, size_t, size_t, FILE *); +extern int fgetpos(FILE *, fpos_t *); +extern int fseek(FILE *, long int, int); +extern int fsetpos(FILE *, const fpos_t *); +extern long int ftell(FILE *); +extern void rewind(FILE *); +extern void clearerr(FILE *); +extern int feof(FILE *); +extern int ferror(FILE *); +extern void perror(const char *); + +#define _IOEOF 020 +#define _IOERR 040 + +#define getc(p) (--(p)->_cnt < 0 ? __filbuf(p) : (int)*(p)->_ptr++) +#define putc(x, p) (--(p)->_cnt < 0 ? __flsbuf((unsigned char) (x), (p)) \ + : (int)(*(p)->_ptr++ = (x))) +extern int __filbuf(FILE *), __flsbuf(unsigned, FILE *); +#define feof(p) ((p)->_flag&_IOEOF) +#define ferror(p) ((p)->_flag&_IOERR) +#define clearerr(p) ((p)->_flag &= ~(_IOERR|_IOEOF)) +#define getchar() getc(stdin) +#define putchar(x) putc((x),stdout) + +#endif /* __STDIO */ diff --git a/code/tools/lcc/include/sparc/solaris/stdlib.h b/code/tools/lcc/include/sparc/solaris/stdlib.h new file mode 100644 index 0000000..ac1204c --- /dev/null +++ b/code/tools/lcc/include/sparc/solaris/stdlib.h @@ -0,0 +1,54 @@ +#ifndef __STDLIB +#define __STDLIB + +#define EXIT_FAILURE 1 +#define EXIT_SUCCESS 0 +#define MB_CUR_MAX 1 +#define NULL 0 +#define RAND_MAX 32767 + +typedef struct { int quot, rem; } div_t; +typedef struct { long quot, rem; } ldiv_t; + +#if !defined(_SIZE_T) && !defined(_SIZE_T_) +#define _SIZE_T +#define _SIZE_T_ +typedef unsigned long size_t; +#endif + +#if !defined(_WCHAR_T) && !defined(_WCHAR_T_) +#define _WCHAR_T +#define _WCHAR_T_ +typedef unsigned char wchar_t; +#endif + +extern double atof(const char *); +extern int atoi(const char *); +extern long int atol(const char *); +extern double strtod(const char *, char **); +extern long int strtol(const char *, char **, int); +extern unsigned long int strtoul(const char *, char **, int); +extern int rand(void); +extern void srand(unsigned int); +extern void *calloc(size_t, size_t); +extern void free(void *); +extern void *malloc(size_t); +extern void *realloc(void *, size_t); +extern void abort(void); +extern int atexit(void (*)(void)); +extern void exit(int); +extern char *getenv(const char *); +extern int system(const char *); +extern void *bsearch(const void *, const void *, size_t, size_t, int (*)(const void *, const void *)); +extern void qsort(void *, size_t, size_t, int (*)(const void *, const void *)); +extern int abs(int); +extern div_t div(int, int); +extern long int labs(long int); +extern ldiv_t ldiv(long int, long int); +extern int mblen(const char *, size_t); +extern int mbtowc(wchar_t *, const char *, size_t); +extern int wctomb(char *, wchar_t); +extern size_t mbstowcs(wchar_t *, const char *, size_t); +extern size_t wcstombs(char *, const wchar_t *, size_t); + +#endif /* __STDLIB */ diff --git a/code/tools/lcc/include/sparc/solaris/string.h b/code/tools/lcc/include/sparc/solaris/string.h new file mode 100644 index 0000000..8432820 --- /dev/null +++ b/code/tools/lcc/include/sparc/solaris/string.h @@ -0,0 +1,35 @@ +#ifndef __STRING +#define __STRING + +#define NULL 0 + +#if !defined(_SIZE_T) && !defined(_SIZE_T_) +#define _SIZE_T +#define _SIZE_T_ +typedef unsigned long size_t; +#endif + +void *memcpy(void *, const void *, size_t); +void *memmove(void *, const void *, size_t); +char *strcpy(char *, const char *); +char *strncpy(char *, const char *, size_t); +char *strcat(char *, const char *); +char *strncat(char *, const char *, size_t); +int memcmp(const void *, const void *, size_t); +int strcmp(const char *, const char *); +int strcoll(const char *, const char *); +int strncmp(const char *, const char *, size_t); +size_t strxfrm(char *, const char *, size_t); +void *memchr(const void *, int, size_t); +char *strchr(const char *, int); +size_t strcspn(const char *, const char *); +char *strpbrk(const char *, const char *); +char *strrchr(const char *, int); +size_t strspn(const char *, const char *); +char *strstr(const char *, const char *); +char *strtok(char *, const char *); +void *memset(void *, int, size_t); +char *strerror(int); +size_t strlen(const char *); + +#endif /* __STRING */ diff --git a/code/tools/lcc/include/sparc/solaris/time.h b/code/tools/lcc/include/sparc/solaris/time.h new file mode 100644 index 0000000..07d8b41 --- /dev/null +++ b/code/tools/lcc/include/sparc/solaris/time.h @@ -0,0 +1,48 @@ +#ifndef __TIME +#define __TIME + +#define CLOCKS_PER_SEC 1000000 +#ifndef NULL +#define NULL 0 +#endif + +#if !defined(_CLOCK_T) && !defined(_CLOCK_T_) +#define _CLOCK_T +#define _CLOCK_T_ +typedef long clock_t; +#endif + +#if !defined(_TIME_T) && !defined(_TIME_T_) +#define _TIME_T +#define _TIME_T_ +typedef long time_t; +#endif + +#if !defined(_SIZE_T) && !defined(_SIZE_T_) +#define _SIZE_T +#define _SIZE_T_ +typedef unsigned long size_t; +#endif + +struct tm { + int tm_sec; + int tm_min; + int tm_hour; + int tm_mday; + int tm_mon; + int tm_year; + int tm_wday; + int tm_yday; + int tm_isdst; +}; +extern clock_t clock(void); +extern double difftime(time_t, time_t); +extern time_t mktime(struct tm *); +extern time_t time(time_t *); +extern char *asctime(const struct tm *); +extern char *ctime(const time_t *); +extern struct tm *gmtime(const time_t *); +extern struct tm *localtime(const time_t *); +extern size_t strftime(char *, size_t, const char *, const struct tm *); + +#endif /* __TIME */ diff --git a/code/tools/lcc/include/x86/linux/assert.h b/code/tools/lcc/include/x86/linux/assert.h new file mode 100644 index 0000000..04b0e3a --- /dev/null +++ b/code/tools/lcc/include/x86/linux/assert.h @@ -0,0 +1,14 @@ +#ifndef __ASSERT +#define __ASSERT + +void assert(int); + +#endif /* __ASSERT */ + +#undef assert +#ifdef NDEBUG +#define assert(ignore) ((void)0) +#else +extern int _assert(char *, char *, unsigned); +#define assert(e) ((void)((e)||_assert(#e, __FILE__, __LINE__))) +#endif /* NDEBUG */ diff --git a/code/tools/lcc/include/x86/linux/float.h b/code/tools/lcc/include/x86/linux/float.h new file mode 100644 index 0000000..fde462b --- /dev/null +++ b/code/tools/lcc/include/x86/linux/float.h @@ -0,0 +1,37 @@ +#ifndef __FLOAT +#define __FLOAT + +#define FLT_ROUNDS (__flt_rounds()) +#define FLT_RADIX 2 + +#define FLT_DIG 6 +#define FLT_EPSILON 1.19209289550781250000e-07 +#define FLT_MANT_DIG 24 +#define FLT_MAX 3.40282346638528860000e+38 +#define FLT_MAX_10_EXP 38 +#define FLT_MAX_EXP 128 +#define FLT_MIN 1.17549435082228750000e-38 +#define FLT_MIN_10_EXP -37 +#define FLT_MIN_EXP -125 + +#define DBL_DIG 15 +#define DBL_EPSILON 2.22044604925031310000e-16 +#define DBL_MANT_DIG 53 +#define DBL_MAX 1.79769313486231570000e+308 +#define DBL_MAX_10_EXP 308 +#define DBL_MAX_EXP 1024 +#define DBL_MIN 2.22507385850720140000e-308 +#define DBL_MIN_10_EXP -307 +#define DBL_MIN_EXP -1021 + +#define LDBL_MANT_DIG DBL_MANT_DIG +#define LDBL_EPSILON DBL_EPSILON +#define LDBL_DIG DBL_DIG +#define LDBL_MIN_EXP DBL_MIN_EXP +#define LDBL_MIN DBL_MIN +#define LDBL_MIN_10_EXP DBL_MIN_10_EXP +#define LDBL_MAX_EXP DBL_MAX_EXP +#define LDBL_MAX DBL_MAX +#define LDBL_MAX_10_EXP DBL_MAX_10_EXP + +#endif /* __FLOAT */ diff --git a/code/tools/lcc/include/x86/linux/stdarg.h b/code/tools/lcc/include/x86/linux/stdarg.h new file mode 100644 index 0000000..a68f1a9 --- /dev/null +++ b/code/tools/lcc/include/x86/linux/stdarg.h @@ -0,0 +1,21 @@ +#ifndef __STDARG +#define __STDARG + +#if !defined(_VA_LIST) +#define _VA_LIST +typedef char *__va_list; +#endif +typedef __va_list va_list; + +#define va_start(list, start) ((void)((list) = (sizeof(start)<4 ? \ + (char *)((int *)&(start)+1) : (char *)(&(start)+1)))) +#define __va_arg(list, mode, n) \ + (*(mode *)(&(list += ((sizeof(mode)+n)&~n))[-(int)((sizeof(mode)+n)&~n)])) +#define _bigendian_va_arg(list, mode, n) (\ + sizeof(mode)==1 ? *(mode *)(&(list += 4)[-1]) : \ + sizeof(mode)==2 ? *(mode *)(&(list += 4)[-2]) : __va_arg(list, mode, n)) +#define _littleendian_va_arg(list, mode, n) __va_arg(list, mode, n) +#define va_end(list) ((void)0) +#define va_arg(list, mode) _littleendian_va_arg(list, mode, 3U) +typedef void *__gnuc_va_list; +#endif diff --git a/code/tools/lcc/lburg/gram.c b/code/tools/lcc/lburg/gram.c new file mode 100644 index 0000000..a1cc890 --- /dev/null +++ b/code/tools/lcc/lburg/gram.c @@ -0,0 +1,682 @@ +#if defined(__STDC__) || defined(__cplusplus) +#define YYCONST const +#define YYPARAMS(x) x +#define YYDEFUN(name, arglist, args) name(args) +#define YYAND , +#define YYPTR void * +#else +#define YYCONST +#define YYPARAMS(x) () +#define YYDEFUN(name, arglist, args) name arglist args; +#define YYAND ; +#define YYPTR char * +#endif +#ifndef lint +YYCONST static char yysccsid[] = "@(#)yaccpar 1.8 (Berkeley +Cygnus.28) 01/20/91"; +#endif +#define YYBYACC 1 +#ifndef YYDONT_INCLUDE_STDIO +#include +#endif +//#ifdef __cplusplus TA stdlib.h applies to C too +#include /* for malloc/realloc/free */ +//#endif +#line 2 "lburg/gram.y" +#include +#include "lburg.h" +/*lint -e616 -e527 -e652 -esym(552,yynerrs) -esym(563,yynewstate,yyerrlab) */ +static int yylineno = 0; +#line 8 "lburg/gram.y" +typedef union { + int n; + char *string; + Tree tree; +} YYSTYPE; +#line 37 "y.tab.c" +#define TERMINAL 257 +#define START 258 +#define PPERCENT 259 +#define ID 260 +#define TEMPLATE 261 +#define CODE 262 +#define INT 263 +#define YYERRCODE 256 +static YYCONST short yylhs[] = { -1, + 0, 0, 4, 4, 6, 6, 6, 6, 7, 7, + 5, 5, 5, 5, 1, 3, 3, 3, 2, +}; +static YYCONST short yylen[] = { 2, + 3, 1, 0, 2, 3, 3, 1, 2, 0, 4, + 0, 7, 2, 3, 1, 1, 4, 6, 1, +}; +static YYCONST short yydefred[] = { 3, + 0, 0, 0, 9, 0, 11, 7, 4, 8, 0, + 15, 0, 0, 0, 5, 6, 0, 13, 0, 0, + 14, 0, 10, 0, 0, 0, 0, 0, 19, 0, + 17, 0, 12, 0, 18, +}; +static YYCONST short yydgoto[] = { 1, + 12, 30, 25, 2, 13, 8, 10, +}; +static YYCONST short yysindex[] = { 0, + 0, -4, -2, 0, -250, 0, 0, 0, 0, -9, + 0, 1, -10, -49, 0, 0, 3, 0, -44, -248, + 0, -244, 0, -22, -242, -244, -245, -37, 0, 10, + 0, -244, 0, -20, 0, +}; +static YYCONST short yyrindex[] = { 0, + 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -39, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, +}; +static YYCONST short yygindex[] = { 0, + 11, 0, -23, 0, 0, 0, 0, +}; +#define YYTABLESIZE 255 +static YYCONST short yytable[] = { 18, + 15, 16, 28, 31, 16, 7, 32, 9, 34, 11, + 16, 20, 21, 22, 23, 24, 29, 26, 27, 33, + 35, 2, 1, 19, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 17, 0, 0, 0, 11, + 14, 3, 4, 5, 6, +}; +static YYCONST short yycheck[] = { 10, + 10, 41, 26, 41, 44, 10, 44, 10, 32, 260, + 10, 61, 10, 58, 263, 260, 262, 40, 261, 10, + 41, 0, 0, 13, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 261, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 256, -1, -1, -1, 260, + 260, 256, 257, 258, 259, +}; +#define YYFINAL 1 +#ifndef YYDEBUG +#define YYDEBUG 0 +#endif +#define YYMAXTOKEN 263 +#if YYDEBUG +static YYCONST char *YYCONST yyname[] = { +"end-of-file",0,0,0,0,0,0,0,0,0,"'\\n'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,"'('","')'",0,0,"','",0,0,0,0,0,0,0,0,0,0,0,0,0,"':'",0,0, +"'='",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +"TERMINAL","START","PPERCENT","ID","TEMPLATE","CODE","INT", +}; +static YYCONST char *YYCONST yyrule[] = { +"$accept : spec", +"spec : decls PPERCENT rules", +"spec : decls", +"decls :", +"decls : decls decl", +"decl : TERMINAL blist '\\n'", +"decl : START nonterm '\\n'", +"decl : '\\n'", +"decl : error '\\n'", +"blist :", +"blist : blist ID '=' INT", +"rules :", +"rules : rules nonterm ':' tree TEMPLATE cost '\\n'", +"rules : rules '\\n'", +"rules : rules error '\\n'", +"nonterm : ID", +"tree : ID", +"tree : ID '(' tree ')'", +"tree : ID '(' tree ',' tree ')'", +"cost : CODE", +}; +#endif +#define YYLEX yylex() +#define YYEMPTY -1 +#define yyclearin (yychar=(YYEMPTY)) +#define yyerrok (yyerrflag=0) +#ifndef YYINITDEPTH +#define YYINITDEPTH 200 +#endif +#ifdef YYSTACKSIZE +#ifndef YYMAXDEPTH +#define YYMAXDEPTH YYSTACKSIZE +#endif +#else +#ifdef YYMAXDEPTH +#define YYSTACKSIZE YYMAXDEPTH +#else +#define YYSTACKSIZE 500 +#define YYMAXDEPTH 500 +#endif +#endif +#ifndef YYMAXSTACKSIZE +#define YYMAXSTACKSIZE 10000 +#endif +int yydebug; +int yynerrs; +int yyerrflag; +int yychar; +YYSTYPE yyval; +YYSTYPE yylval; +static short *yyss; +static YYSTYPE *yyvs; +static int yystacksize; +#define yyfree(x) free(x) +extern int yylex(); + +static YYPTR +YYDEFUN (yymalloc, (bytes), unsigned bytes) +{ + YYPTR ptr = (YYPTR) malloc (bytes); + if (ptr != 0) return (ptr); + yyerror ("yyparse: memory exhausted"); + return (0); +} + +static YYPTR +YYDEFUN (yyrealloc, (old, bytes), YYPTR old YYAND unsigned bytes) +{ + YYPTR ptr = (YYPTR) realloc (old, bytes); + if (ptr != 0) return (ptr); + yyerror ("yyparse: memory exhausted"); + return (0); +} + +static int +#ifdef __GNUC__ +inline +#endif +yygrow () +{ +#if YYDEBUG + int old_stacksize = yystacksize; +#endif + short *new_yyss; + YYSTYPE *new_yyvs; + + if (yystacksize == YYMAXSTACKSIZE) + return (1); + yystacksize += (yystacksize + 1 ) / 2; + if (yystacksize > YYMAXSTACKSIZE) + yystacksize = YYMAXSTACKSIZE; +#if YYDEBUG + if (yydebug) + printf("yydebug: growing stack size from %d to %d\n", + old_stacksize, yystacksize); +#endif + new_yyss = (short *) yyrealloc ((char *)yyss, yystacksize * sizeof (short)); + if (new_yyss == 0) + return (1); + new_yyvs = (YYSTYPE *) yyrealloc ((char *)yyvs, yystacksize * sizeof (YYSTYPE)); + if (new_yyvs == 0) + { + yyfree (new_yyss); + return (1); + } + yyss = new_yyss; + yyvs = new_yyvs; + return (0); +} +#line 60 "lburg/gram.y" +#include +#include +#include +#include +#include + +int errcnt = 0; +FILE *infp = NULL; +FILE *outfp = NULL; +static char buf[BUFSIZ], *bp = buf; +static int ppercent = 0; +static int code = 0; + +static int get(void) { + if (*bp == 0) { + bp = buf; + *bp = 0; + if (fgets(buf, sizeof buf, infp) == NULL) + return EOF; + yylineno++; + while (buf[0] == '%' && buf[1] == '{' && buf[2] == '\n') { + for (;;) { + if (fgets(buf, sizeof buf, infp) == NULL) { + yywarn("unterminated %{...%}\n"); + return EOF; + } + yylineno++; + if (strcmp(buf, "%}\n") == 0) + break; + fputs(buf, outfp); + } + if (fgets(buf, sizeof buf, infp) == NULL) + return EOF; + yylineno++; + } + } + return *bp++; +} + +void yyerror(char *fmt, ...) { + va_list ap; + + va_start(ap, fmt); + if (yylineno > 0) + fprintf(stderr, "line %d: ", yylineno); + vfprintf(stderr, fmt, ap); + if (fmt[strlen(fmt)-1] != '\n') + fprintf(stderr, "\n"); + errcnt++; + va_end(ap); +} + +int yylex(void) { + int c; + + if (code) { + char *p; + bp += strspn(bp, " \t\f"); + p = strchr(bp, '\n'); + if (p == NULL) + p = strchr(bp, '\n'); + while (p > bp && isspace(p[-1])) + p--; + yylval.string = alloc(p - bp + 1); + strncpy(yylval.string, bp, p - bp); + yylval.string[p - bp] = 0; + bp = p; + code--; + return CODE; + } + while ((c = get()) != EOF) { + switch (c) { + case ' ': case '\f': case '\t': + continue; + case '\n': + case '(': case ')': case ',': + case ':': case '=': + return c; + } + if (c == '%' && *bp == '%') { + bp++; + return ppercent++ ? 0 : PPERCENT; + } else if (c == '%' && strncmp(bp, "term", 4) == 0 + && isspace(bp[4])) { + bp += 4; + return TERMINAL; + } else if (c == '%' && strncmp(bp, "start", 5) == 0 + && isspace(bp[5])) { + bp += 5; + return START; + } else if (c == '"') { + char *p = strchr(bp, '"'); + if (p == NULL) { + yyerror("missing \" in assembler template\n"); + p = strchr(bp, '\n'); + if (p == NULL) + p = strchr(bp, '\0'); + } + assert(p); + yylval.string = alloc(p - bp + 1); + strncpy(yylval.string, bp, p - bp); + yylval.string[p - bp] = 0; + bp = *p == '"' ? p + 1 : p; + code++; + return TEMPLATE; + } else if (isdigit(c)) { + int n = 0; + do { + int d = c - '0'; + if (n > (INT_MAX - d)/10) + yyerror("integer greater than %d\n", INT_MAX); + else + n = 10*n + d; + c = get(); + } while (c != EOF && isdigit(c)); + bp--; + yylval.n = n; + return INT; + } else if (isalpha(c)) { + char *p = bp - 1; + while (isalpha(*bp) || isdigit(*bp) || *bp == '_') + bp++; + yylval.string = alloc(bp - p + 1); + strncpy(yylval.string, p, bp - p); + yylval.string[bp - p] = 0; + return ID; + } else if (isprint(c)) + yyerror("invalid character `%c'\n", c); + else + yyerror("invalid character `\\%03o'\n", (unsigned char)c); + } + return 0; +} + +void yywarn(char *fmt, ...) { + va_list ap; + + va_start(ap, fmt); + if (yylineno > 0) + fprintf(stderr, "line %d: ", yylineno); + fprintf(stderr, "warning: "); + vfprintf(stderr, fmt, ap); +} +#line 403 "y.tab.c" +#define YYABORT goto yyabort +#define YYACCEPT goto yyaccept +#define YYERROR goto yyerrlab + +#if YYDEBUG +#ifdef __cplusplus +extern "C" char *getenv(); +#else +extern char *getenv(); +#endif +#endif + +int +yyparse() +{ + register int yym, yyn, yystate; + register YYSTYPE *yyvsp; + register short *yyssp; + short *yysse; +#if YYDEBUG + register YYCONST char *yys; + + if (yys = getenv("YYDEBUG")) + { + yyn = *yys; + if (yyn >= '0' && yyn <= '9') + yydebug = yyn - '0'; + } +#endif + + yynerrs = 0; + yyerrflag = 0; + yychar = (-1); + + if (yyss == 0) + { + yyss = (short *) yymalloc (YYSTACKSIZE * sizeof (short)); + if (yyss == 0) + goto yyabort; + yyvs = (YYSTYPE *) yymalloc (YYSTACKSIZE * sizeof (YYSTYPE)); + if (yyvs == 0) + { + yyfree (yyss); + goto yyabort; + } + yystacksize = YYSTACKSIZE; + } + yysse = yyss + yystacksize - 1; + yyssp = yyss; + yyvsp = yyvs; + *yyssp = yystate = 0; + goto yyloop; + +yypush_lex: + yyval = yylval; + yystate = yytable[yyn]; +yypush: + if (yyssp >= yysse) + { + int depth = yyssp - yyss; + if (yygrow() != 0) + goto yyoverflow; + yysse = yyss + yystacksize -1; + yyssp = depth + yyss; + yyvsp = depth + yyvs; + } + *++yyssp = yystate; + *++yyvsp = yyval; + +yyloop: + if ((yyn = yydefred[yystate])) goto yyreduce; + yyn = yysindex[yystate]; + if (yychar < 0) + { + if ((yychar = yylex()) < 0) yychar = 0; +#if YYDEBUG + if (yydebug) + { + yys = 0; + if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; + if (!yys) yys = "illegal-symbol"; + printf("yydebug: state %d, reading %d (%s)\n", yystate, + yychar, yys); + } +#endif + } + if (yyn != 0 + && ((yyn += yychar), ((unsigned)yyn <= (unsigned)YYTABLESIZE)) + && yycheck[yyn] == yychar) + { +#if YYDEBUG + if (yydebug) + printf("yydebug: state %d, shifting to state %d\n", + yystate, yytable[yyn]); +#endif + if (yyerrflag > 0) --yyerrflag; + yychar = (-1); + goto yypush_lex; + } + yyn = yyrindex[yystate]; + if (yyn != 0 + && ((yyn += yychar), ((unsigned)yyn <= (unsigned)YYTABLESIZE)) + && yycheck[yyn] == yychar) + { + yyn = yytable[yyn]; + goto yyreduce; + } + if (yyerrflag) goto yyinrecovery; +#ifdef lint + goto yynewerror; +yynewerror: +#endif + yyerror("syntax error"); +#ifdef lint + goto yyerrlab; +yyerrlab: +#endif + ++yynerrs; +yyinrecovery: + if (yyerrflag < 3) + { + yyerrflag = 3; + for (;;) + { + yyn = yysindex[*yyssp]; + if (yyn != 0 + && ((yyn += YYERRCODE), ((unsigned)yyn <= (unsigned)YYTABLESIZE)) + && yycheck[yyn] == YYERRCODE) + { +#if YYDEBUG + if (yydebug) + printf("yydebug: state %d, error recovery shifting\ + to state %d\n", *yyssp, yytable[yyn]); +#endif + goto yypush_lex; + } + else + { +#if YYDEBUG + if (yydebug) + printf("yydebug: error recovery discarding state %d\n", + *yyssp); +#endif + if (yyssp <= yyss) goto yyabort; + --yyssp; + --yyvsp; + } + } + } + else + { + if (yychar == 0) goto yyabort; +#if YYDEBUG + if (yydebug) + { + yys = 0; + if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; + if (!yys) yys = "illegal-symbol"; + printf("yydebug: state %d, error recovery discards token %d (%s)\n", + yystate, yychar, yys); + } +#endif + yychar = (-1); + goto yyloop; + } +yyreduce: +#if YYDEBUG + if (yydebug) + printf("yydebug: state %d, reducing by rule %d (%s)\n", + yystate, yyn, yyrule[yyn]); +#endif + yym = yylen[yyn]; + yyval = yyvsp[1-yym]; + switch (yyn) + { +case 1: +#line 22 "lburg/gram.y" +{ yylineno = 0; } +break; +case 2: +#line 23 "lburg/gram.y" +{ yylineno = 0; } +break; +case 6: +#line 31 "lburg/gram.y" +{ + if (nonterm(yyvsp[-1].string)->number != 1) + yyerror("redeclaration of the start symbol\n"); + } +break; +case 8: +#line 36 "lburg/gram.y" +{ yyerrok; } +break; +case 10: +#line 40 "lburg/gram.y" +{ term(yyvsp[-2].string, yyvsp[0].n); } +break; +case 12: +#line 44 "lburg/gram.y" +{ rule(yyvsp[-5].string, yyvsp[-3].tree, yyvsp[-2].string, yyvsp[-1].string); } +break; +case 14: +#line 46 "lburg/gram.y" +{ yyerrok; } +break; +case 15: +#line 49 "lburg/gram.y" +{ nonterm(yyval.string = yyvsp[0].string); } +break; +case 16: +#line 52 "lburg/gram.y" +{ yyval.tree = tree(yyvsp[0].string, 0, 0); } +break; +case 17: +#line 53 "lburg/gram.y" +{ yyval.tree = tree(yyvsp[-3].string, yyvsp[-1].tree, 0); } +break; +case 18: +#line 54 "lburg/gram.y" +{ yyval.tree = tree(yyvsp[-5].string, yyvsp[-3].tree, yyvsp[-1].tree); } +break; +case 19: +#line 57 "lburg/gram.y" +{ if (*yyvsp[0].string == 0) yyval.string = "0"; } +break; +#line 630 "y.tab.c" + } + yyssp -= yym; + yyvsp -= yym; + yym = yylhs[yyn]; + yystate = *yyssp; + if (yystate == 0 && yym == 0) + { +#if YYDEBUG + if (yydebug) + printf("yydebug: after reduction, shifting from state 0 to\ + state %d\n", YYFINAL); +#endif + yystate = YYFINAL; + *++yyssp = YYFINAL; + *++yyvsp = yyval; + if (yychar < 0) + { + if ((yychar = yylex()) < 0) yychar = 0; +#if YYDEBUG + if (yydebug) + { + yys = 0; + if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; + if (!yys) yys = "illegal-symbol"; + printf("yydebug: state %d, reading %d (%s)\n", + YYFINAL, yychar, yys); + } +#endif + } + if (yychar == 0) goto yyaccept; + goto yyloop; + } + yyn = yygindex[yym]; + if (yyn != 0 + && ((yyn += yystate), ((unsigned)yyn <= (unsigned)YYTABLESIZE)) + && yycheck[yyn] == yystate) + yystate = yytable[yyn]; + else + yystate = yydgoto[yym]; +#if YYDEBUG + if (yydebug) + printf("yydebug: after reduction, shifting from state %d \ +to state %d\n", *yyssp, yystate); +#endif + goto yypush; +yyoverflow: + yyerror("yacc stack overflow"); +yyabort: + return (1); +yyaccept: + return (0); +} diff --git a/code/tools/lcc/lburg/gram.y b/code/tools/lcc/lburg/gram.y new file mode 100644 index 0000000..1ecd8a9 --- /dev/null +++ b/code/tools/lcc/lburg/gram.y @@ -0,0 +1,202 @@ +%{ +#include +#include "lburg.h" +static char rcsid[] = "$Id: gram.y 145 2001-10-17 21:53:10Z timo $"; +/*lint -e616 -e527 -e652 -esym(552,yynerrs) -esym(563,yynewstate,yyerrlab) */ +static int yylineno = 0; +%} +%union { + int n; + char *string; + Tree tree; +} +%term TERMINAL +%term START +%term PPERCENT + +%token ID TEMPLATE CODE +%token INT +%type nonterm cost +%type tree +%% +spec : decls PPERCENT rules { yylineno = 0; } + | decls { yylineno = 0; } + ; + +decls : /* lambda */ + | decls decl + ; + +decl : TERMINAL blist '\n' + | START nonterm '\n' { + if (nonterm($2)->number != 1) + yyerror("redeclaration of the start symbol\n"); + } + | '\n' + | error '\n' { yyerrok; } + ; + +blist : /* lambda */ + | blist ID '=' INT { term($2, $4); } + ; + +rules : /* lambda */ + | rules nonterm ':' tree TEMPLATE cost '\n' { rule($2, $4, $5, $6); } + | rules '\n' + | rules error '\n' { yyerrok; } + ; + +nonterm : ID { nonterm($$ = $1); } + ; + +tree : ID { $$ = tree($1, 0, 0); } + | ID '(' tree ')' { $$ = tree($1, $3, 0); } + | ID '(' tree ',' tree ')' { $$ = tree($1, $3, $5); } + ; + +cost : CODE { if (*$1 == 0) $$ = "0"; } + ; +%% +#include +#include +#include +#include +#include + +int errcnt = 0; +FILE *infp = NULL; +FILE *outfp = NULL; +static char buf[BUFSIZ], *bp = buf; +static int ppercent = 0; +static int code = 0; + +static int get(void) { + if (*bp == 0) { + bp = buf; + *bp = 0; + if (fgets(buf, sizeof buf, infp) == NULL) + return EOF; + yylineno++; + while (buf[0] == '%' && buf[1] == '{' && buf[2] == '\n') { + for (;;) { + if (fgets(buf, sizeof buf, infp) == NULL) { + yywarn("unterminated %{...%}\n"); + return EOF; + } + yylineno++; + if (strcmp(buf, "%}\n") == 0) + break; + fputs(buf, outfp); + } + if (fgets(buf, sizeof buf, infp) == NULL) + return EOF; + yylineno++; + } + } + return *bp++; +} + +void yyerror(char *fmt, ...) { + va_list ap; + + va_start(ap, fmt); + if (yylineno > 0) + fprintf(stderr, "line %d: ", yylineno); + vfprintf(stderr, fmt, ap); + if (fmt[strlen(fmt)-1] != '\n') + fprintf(stderr, "\n"); + errcnt++; + va_end(ap); +} + +int yylex(void) { + int c; + + if (code) { + char *p; + bp += strspn(bp, " \t\f"); + p = strchr(bp, '\n'); + if (p == NULL) + p = strchr(bp, '\n'); + while (p > bp && isspace(p[-1])) + p--; + yylval.string = alloc(p - bp + 1); + strncpy(yylval.string, bp, p - bp); + yylval.string[p - bp] = 0; + bp = p; + code--; + return CODE; + } + while ((c = get()) != EOF) { + switch (c) { + case ' ': case '\f': case '\t': + continue; + case '\n': + case '(': case ')': case ',': + case ':': case '=': + return c; + } + if (c == '%' && *bp == '%') { + bp++; + return ppercent++ ? 0 : PPERCENT; + } else if (c == '%' && strncmp(bp, "term", 4) == 0 + && isspace(bp[4])) { + bp += 4; + return TERMINAL; + } else if (c == '%' && strncmp(bp, "start", 5) == 0 + && isspace(bp[5])) { + bp += 5; + return START; + } else if (c == '"') { + char *p = strchr(bp, '"'); + if (p == NULL) { + yyerror("missing \" in assembler template\n"); + p = strchr(bp, '\n'); + if (p == NULL) + p = strchr(bp, '\0'); + } + assert(p); + yylval.string = alloc(p - bp + 1); + strncpy(yylval.string, bp, p - bp); + yylval.string[p - bp] = 0; + bp = *p == '"' ? p + 1 : p; + code++; + return TEMPLATE; + } else if (isdigit(c)) { + int n = 0; + do { + int d = c - '0'; + if (n > (INT_MAX - d)/10) + yyerror("integer greater than %d\n", INT_MAX); + else + n = 10*n + d; + c = get(); + } while (c != EOF && isdigit(c)); + bp--; + yylval.n = n; + return INT; + } else if (isalpha(c)) { + char *p = bp - 1; + while (isalpha(*bp) || isdigit(*bp) || *bp == '_') + bp++; + yylval.string = alloc(bp - p + 1); + strncpy(yylval.string, p, bp - p); + yylval.string[bp - p] = 0; + return ID; + } else if (isprint(c)) + yyerror("invalid character `%c'\n", c); + else + yyerror("invalid character `\\%03o'\n", (unsigned char)c); + } + return 0; +} + +void yywarn(char *fmt, ...) { + va_list ap; + + va_start(ap, fmt); + if (yylineno > 0) + fprintf(stderr, "line %d: ", yylineno); + fprintf(stderr, "warning: "); + vfprintf(stderr, fmt, ap); +} diff --git a/code/tools/lcc/lburg/lburg.1 b/code/tools/lcc/lburg/lburg.1 new file mode 100644 index 0000000..8cf7250 --- /dev/null +++ b/code/tools/lcc/lburg/lburg.1 @@ -0,0 +1,179 @@ +.TH LBURG 1 "local \- 11/30/94" +.\" $Id: lburg.1 145 2001-10-17 21:53:10Z timo $ +.SH NAME +lburg \- lcc's code-generator generator +.SH SYNOPSIS +.B lburg +[ +.I option +]... +[ [ +.I input +] +.I output +] +.br +.SH DESCRIPTION +.PP +.I lburg +reads an lcc-style BURG specification from +.I input +and writes a pattern-matching code generator to +.IR output . +If +.I input +is `\-' or is omitted, +.I lburg +reads the standard input; +If +.I output +is `\-' or is omitted, +.I lburg +writes to the standard output. +.PP +.I lburg +accepts specifications that conform to the following EBNF grammar. +Terminals are enclosed in single quotes or are +given in uppercase, all other symbols are nonterminals or English phrases, +{X} denotes zero or more instances of X, and [X] denotes an optional X. +.PP +.nf +.RS +.ft CW +spec: `%{' configuration `%}' { dcl } `%%' { rule } + [ `%%' C code ] + +dcl: `%start' nonterm + `%term' { ID `=' INT } + +rule: nonterm `:' tree template [ C expression ] + +tree: term `(' tree `,' tree `)' + term `(' tree `)' + term + nonterm + +nonterm: ID + +template: `"' { any character except double quote } `"' +.RE +.fi +.PP +Specifications are structurally similar to +.IR yacc 's. +Text between +`\f(CW%{\fP' +and +`\f(CW%}\fP' +is called the configuration section; there may be several such segments. +All are concatenated and copied verbatim into the head of the output. +Text after the second +`\f(CW%%\fP', +if any, is also copied verbatim into the output, at the end. +.PP +Specifications consist of declarations, a +`\f(CW%%\fP' +separator, and rules. +Input is line-oriented; each declaration and rule must appear on a separate line, +and declarations must begin in column 1. +Declarations declare terminals \(em the operators in subject +trees \(em and associate a unique, positive external symbol +number with each one. +Nonterminals are declared by their presence +on the left side of rules. The +\f(CW%start\fP +declaration optionally declares a nonterminal as the start symbol. +In the grammar above, +\f(CWterm\fP +and +\f(CWnonterm\fP +denote identifiers that are terminals and nonterminals. +.PP +Rules define tree patterns in a fully parenthesized prefix +form. Every nonterminal denotes a tree. +Each operator has a fixed +arity, which is inferred from the rules in which it is used. +A chain rule is a rule whose pattern is another nonterminal. +If no start symbol is declared, the nonterminal defined by the first rule is used. +.PP +Each rule ends with an expression that computes the cost of matching +that rule; omitted costs +default to zero. Costs of chain rules must be constants. +.PP +The configuration section configures the output +for the trees being parsed and the client's environment. +As shown, this section must define +\f(CWNODEPTR_TYPE\fP +to be a visible typedef symbol for a pointer to a +node in the subject tree. +The labeller invokes +\f(CWOP_LABEL(p)\fP, +\f(CWLEFT\_CHILD(p)\fP, and +\f(CWRIGHT\_CHILD(p)\fP +to read the operator and children from the node pointed to by \f(CWp\fP. +If the configuration section defines these operations as macros, they are implemented in-line; +otherwise, they must be implemented as functions. +.PP +The matcher +computes and stores a single integral state in each node of the subject tree. +The configuration section must define a macro +\f(CWSTATE_LABEL(p)\fP +to access the state field of the node pointed to +by \f(CWp\fP. It must be large enough to hold a pointer, and +a macro is required because it is used as an lvalue. +.PP +.SH OPTIONS +.TP +.BI \-p \ prefix +.br +.ns +.TP +.BI \-p prefix +Use +.I prefix +as the disambiquating prefix for visible names and fields. +The default is `\f(CW_\fP'. +.TP +.B \-T +Arrange for +.sp +.nf +.ft CW + void _trace(NODEPTR_TYPE p, int eruleno, + int cost, int bestcost); +.sp +.fi +.ft R +to be called at each successful match. +\f(CWp\fP +identifies the node and +\f(CWeruleno\fP +identifies the matching rule; the rules are numbered +beginning at 1 in the order they appear in the input. +\f(CWcost\fP +is the cost of the match and +\f(CWbestcost\fP +is the cost of the best previous match. The current match +wins only if +\f(CWcost\fP +is less than \f(CWbestcost\fP. +32767 represents the infinite cost of no previous match. +\f(CW_trace\fP must be declared in the configuration section. +.SH "SEE ALSO" +.IR lcc (1) +.PP +C. W. Fraser and D. R. Hanson, +.IR A Retargetable C Compiler: Design and Implementation , +Benjamin/Cummings, Redwood City, CA, 1995, +ISBN 0-8053-1670-1. Chapter 14. +.PP +C. W. Fraser, D. R. Hanson and T. A. Proebsting, +`Engineering a simple, efficient code generator generator,' +.I +ACM Letters on Programming Languages and Systems +.BR 1 , +3 (Sep. 1992), 213-226. +.br +.SH BUGS +Mail bug reports along with the shortest input +that exposes them to drh@cs.princeton.edu. diff --git a/code/tools/lcc/lburg/lburg.c b/code/tools/lcc/lburg/lburg.c new file mode 100644 index 0000000..c43c96a --- /dev/null +++ b/code/tools/lcc/lburg/lburg.c @@ -0,0 +1,671 @@ +#include +#include +#include +#include +#include +#include +#include +#include "lburg.h" + +static char rcsid[] = "lburg.c - faked rcsid"; + +static char *prefix = ""; +static int Tflag = 0; +static int ntnumber = 0; +static Nonterm start = 0; +static Term terms; +static Nonterm nts; +static Rule rules; +static int nrules; +static struct block { + struct block *link; +} *memlist; /* list of allocated blocks */ + +static char *stringf(char *fmt, ...); +static void print(char *fmt, ...); +static void ckreach(Nonterm p); +static void emitclosure(Nonterm nts); +static void emitcost(Tree t, char *v); +static void emitdefs(Nonterm nts, int ntnumber); +static void emitheader(void); +static void emitkids(Rule rules, int nrules); +static void emitnts(Rule rules, int nrules); +static void emitrecalc(char *pre, Term root, Term kid); +static void emitrecord(char *pre, Rule r, char *c, int cost); +static void emitrule(Nonterm nts); +static void emitlabel(Term terms, Nonterm start, int ntnumber); +static void emitstring(Rule rules); +static void emitstruct(Nonterm nts, int ntnumber); +static void emittest(Tree t, char *v, char *suffix); + +int main(int argc, char *argv[]) { + int c, i; + Nonterm p; + + for (i = 1; i < argc; i++) + if (strcmp(argv[i], "-T") == 0) + Tflag = 1; + else if (strncmp(argv[i], "-p", 2) == 0 && argv[i][2]) + prefix = &argv[i][2]; + else if (strncmp(argv[i], "-p", 2) == 0 && i + 1 < argc) + prefix = argv[++i]; + else if (*argv[i] == '-' && argv[i][1]) { + yyerror("usage: %s [-T | -p prefix]... [ [ input ] output ] \n", + argv[0]); + exit(1); + } else if (infp == NULL) { + if (strcmp(argv[i], "-") == 0) + infp = stdin; + else if ((infp = fopen(argv[i], "r")) == NULL) { + yyerror("%s: can't read `%s'\n", argv[0], argv[i]); + exit(1); + } + } else if (outfp == NULL) { + if (strcmp(argv[i], "-") == 0) + outfp = stdout; + if ((outfp = fopen(argv[i], "w")) == NULL) { + yyerror("%s: can't write `%s'\n", argv[0], argv[i]); + exit(1); + } + } + if (infp == NULL) + infp = stdin; + if (outfp == NULL) + outfp = stdout; + yyparse(); + if (start) + ckreach(start); + for (p = nts; p; p = p->link) { + if (p->rules == NULL) + yyerror("undefined nonterminal `%s'\n", p->name); + if (!p->reached) + yyerror("can't reach nonterminal `%s'\n", p->name); + } + emitheader(); + emitdefs(nts, ntnumber); + emitstruct(nts, ntnumber); + emitnts(rules, nrules); + emitstring(rules); + emitrule(nts); + emitclosure(nts); + if (start) + emitlabel(terms, start, ntnumber); + emitkids(rules, nrules); + if (!feof(infp)) + while ((c = getc(infp)) != EOF) + putc(c, outfp); + while (memlist) { /* for purify */ + struct block *q = memlist->link; + free(memlist); + memlist = q; + } + return errcnt > 0; +} + +/* alloc - allocate nbytes or issue fatal error */ +void *alloc(int nbytes) { + struct block *p = calloc(1, sizeof *p + nbytes); + + if (p == NULL) { + yyerror("out of memory\n"); + exit(1); + } + p->link = memlist; + memlist = p; + return p + 1; +} + +/* stringf - format and save a string */ +static char *stringf(char *fmt, ...) { + va_list ap; + char buf[512]; + + va_start(ap, fmt); + vsprintf(buf, fmt, ap); + va_end(ap); + return strcpy(alloc(strlen(buf) + 1), buf); +} + +struct entry { + union { + char *name; + struct term t; + struct nonterm nt; + } sym; + struct entry *link; +} *table[211]; +#define HASHSIZE (sizeof table/sizeof table[0]) + +/* hash - return hash number for str */ +static unsigned hash(char *str) { + unsigned h = 0; + + while (*str) + h = (h<<1) + *str++; + return h; +} + +/* lookup - lookup symbol name */ +static void *lookup(char *name) { + struct entry *p = table[hash(name)%HASHSIZE]; + + for ( ; p; p = p->link) + if (strcmp(name, p->sym.name) == 0) + return &p->sym; + return 0; +} + +/* install - install symbol name */ +static void *install(char *name) { + struct entry *p = alloc(sizeof *p); + int i = hash(name)%HASHSIZE; + + p->sym.name = name; + p->link = table[i]; + table[i] = p; + return &p->sym; +} + +/* nonterm - create a new terminal id, if necessary */ +Nonterm nonterm(char *id) { + Nonterm p = lookup(id), *q = &nts; + + if (p && p->kind == NONTERM) + return p; + if (p && p->kind == TERM) + yyerror("`%s' is a terminal\n", id); + p = install(id); + p->kind = NONTERM; + p->number = ++ntnumber; + if (p->number == 1) + start = p; + while (*q && (*q)->number < p->number) + q = &(*q)->link; + assert(*q == 0 || (*q)->number != p->number); + p->link = *q; + *q = p; + return p; +} + +/* term - create a new terminal id with external symbol number esn */ +Term term(char *id, int esn) { + Term p = lookup(id), *q = &terms; + + if (p) + yyerror("redefinition of terminal `%s'\n", id); + else + p = install(id); + p->kind = TERM; + p->esn = esn; + p->arity = -1; + while (*q && (*q)->esn < p->esn) + q = &(*q)->link; + if (*q && (*q)->esn == p->esn) + yyerror("duplicate external symbol number `%s=%d'\n", + p->name, p->esn); + p->link = *q; + *q = p; + return p; +} + +/* tree - create & initialize a tree node with the given fields */ +Tree tree(char *id, Tree left, Tree right) { + Tree t = alloc(sizeof *t); + Term p = lookup(id); + int arity = 0; + + if (left && right) + arity = 2; + else if (left) + arity = 1; + if (p == NULL && arity > 0) { + yyerror("undefined terminal `%s'\n", id); + p = term(id, -1); + } else if (p == NULL && arity == 0) + p = (Term)nonterm(id); + else if (p && p->kind == NONTERM && arity > 0) { + yyerror("`%s' is a nonterminal\n", id); + p = term(id, -1); + } + if (p->kind == TERM && p->arity == -1) + p->arity = arity; + if (p->kind == TERM && arity != p->arity) + yyerror("inconsistent arity for terminal `%s'\n", id); + t->op = p; + t->nterms = p->kind == TERM; + if ((t->left = left) != NULL) + t->nterms += left->nterms; + if ((t->right = right) != NULL) + t->nterms += right->nterms; + return t; +} + +/* rule - create & initialize a rule with the given fields */ +Rule rule(char *id, Tree pattern, char *template, char *code) { + Rule r = alloc(sizeof *r), *q; + Term p = pattern->op; + char *end; + + r->lhs = nonterm(id); + r->packed = ++r->lhs->lhscount; + for (q = &r->lhs->rules; *q; q = &(*q)->decode) + ; + *q = r; + r->pattern = pattern; + r->ern = ++nrules; + r->template = template; + r->code = code; + r->cost = strtol(code, &end, 10); + if (*end) { + r->cost = -1; + r->code = stringf("(%s)", code); + } + if (p->kind == TERM) { + for (q = &p->rules; *q; q = &(*q)->next) + ; + *q = r; + } else if (pattern->left == NULL && pattern->right == NULL) { + Nonterm p = pattern->op; + r->chain = p->chain; + p->chain = r; + if (r->cost == -1) + yyerror("illegal nonconstant cost `%s'\n", code); + } + for (q = &rules; *q; q = &(*q)->link) + ; + r->link = *q; + *q = r; + return r; +} + +/* print - formatted output */ +static void print(char *fmt, ...) { + va_list ap; + + va_start(ap, fmt); + for ( ; *fmt; fmt++) + if (*fmt == '%') + switch (*++fmt) { + case 'd': fprintf(outfp, "%d", va_arg(ap, int)); break; + case 's': fputs(va_arg(ap, char *), outfp); break; + case 'P': fprintf(outfp, "%s_", prefix); break; + case 'T': { + Tree t = va_arg(ap, Tree); + print("%S", t->op); + if (t->left && t->right) + print("(%T,%T)", t->left, t->right); + else if (t->left) + print("(%T)", t->left); + break; + } + case 'R': { + Rule r = va_arg(ap, Rule); + print("%S: %T", r->lhs, r->pattern); + break; + } + case 'S': fputs(va_arg(ap, Term)->name, outfp); break; + case '1': case '2': case '3': case '4': case '5': { + int n = *fmt - '0'; + while (n-- > 0) + putc('\t', outfp); + break; + } + default: putc(*fmt, outfp); break; + } + else + putc(*fmt, outfp); + va_end(ap); +} + +/* reach - mark all nonterminals in tree t as reachable */ +static void reach(Tree t) { + Nonterm p = t->op; + + if (p->kind == NONTERM) + if (!p->reached) + ckreach(p); + if (t->left) + reach(t->left); + if (t->right) + reach(t->right); +} + +/* ckreach - mark all nonterminals reachable from p */ +static void ckreach(Nonterm p) { + Rule r; + + p->reached = 1; + for (r = p->rules; r; r = r->decode) + reach(r->pattern); +} + +/* emitcase - emit one case in function state */ +static void emitcase(Term p, int ntnumber) { + Rule r; + + print("%1case %d: /* %S */\n", p->esn, p); + switch (p->arity) { + case 0: case -1: + break; + case 1: + print("%2%Plabel(LEFT_CHILD(a));\n"); + break; + case 2: + print("%2%Plabel(LEFT_CHILD(a));\n"); + print("%2%Plabel(RIGHT_CHILD(a));\n"); + break; + default: assert(0); + } + for (r = p->rules; r; r = r->next) { + char *indent = "\t\t\0"; + switch (p->arity) { + case 0: case -1: + print("%2/* %R */\n", r); + if (r->cost == -1) { + print("%2c = %s;\n", r->code); + emitrecord("\t\t", r, "c", 0); + } else + emitrecord("\t\t", r, r->code, 0); + break; + case 1: + if (r->pattern->nterms > 1) { + print("%2if (%1/* %R */\n", r); + emittest(r->pattern->left, "LEFT_CHILD(a)", " "); + print("%2) {\n"); + indent = "\t\t\t"; + } else + print("%2/* %R */\n", r); + if (r->pattern->nterms == 2 && r->pattern->left + && r->pattern->right == NULL) + emitrecalc(indent, r->pattern->op, r->pattern->left->op); + print("%sc = ", indent); + emitcost(r->pattern->left, "LEFT_CHILD(a)"); + print("%s;\n", r->code); + emitrecord(indent, r, "c", 0); + if (indent[2]) + print("%2}\n"); + break; + case 2: + if (r->pattern->nterms > 1) { + print("%2if (%1/* %R */\n", r); + emittest(r->pattern->left, "LEFT_CHILD(a)", + r->pattern->right->nterms ? " && " : " "); + emittest(r->pattern->right, "RIGHT_CHILD(a)", " "); + print("%2) {\n"); + indent = "\t\t\t"; + } else + print("%2/* %R */\n", r); + print("%sc = ", indent); + emitcost(r->pattern->left, "LEFT_CHILD(a)"); + emitcost(r->pattern->right, "RIGHT_CHILD(a)"); + print("%s;\n", r->code); + emitrecord(indent, r, "c", 0); + if (indent[2]) + print("%2}\n"); + break; + default: assert(0); + } + } + print("%2break;\n"); +} + +/* emitclosure - emit the closure functions */ +static void emitclosure(Nonterm nts) { + Nonterm p; + + for (p = nts; p; p = p->link) + if (p->chain) + print("static void %Pclosure_%S(NODEPTR_TYPE, int);\n", p); + print("\n"); + for (p = nts; p; p = p->link) + if (p->chain) { + Rule r; + print("static void %Pclosure_%S(NODEPTR_TYPE a, int c) {\n" +"%1struct %Pstate *p = STATE_LABEL(a);\n", p); + for (r = p->chain; r; r = r->chain) + emitrecord("\t", r, "c", r->cost); + print("}\n\n"); + } +} + +/* emitcost - emit cost computation for tree t */ +static void emitcost(Tree t, char *v) { + Nonterm p = t->op; + + if (p->kind == TERM) { + if (t->left) + emitcost(t->left, stringf("LEFT_CHILD(%s)", v)); + if (t->right) + emitcost(t->right, stringf("RIGHT_CHILD(%s)", v)); + } else + print("((struct %Pstate *)(%s->x.state))->cost[%P%S_NT] + ", v, p); +} + +/* emitdefs - emit nonterminal defines and data structures */ +static void emitdefs(Nonterm nts, int ntnumber) { + Nonterm p; + + for (p = nts; p; p = p->link) + print("#define %P%S_NT %d\n", p, p->number); + print("\n"); + print("static char *%Pntname[] = {\n%10,\n"); + for (p = nts; p; p = p->link) + print("%1\"%S\",\n", p); + print("%10\n};\n\n"); +} + +/* emitheader - emit initial definitions */ +static void emitheader(void) { + time_t timer = time(NULL); + + print("/*\ngenerated at %sby %s\n*/\n", ctime(&timer), rcsid); + print("static void %Pkids(NODEPTR_TYPE, int, NODEPTR_TYPE[]);\n"); + print("static void %Plabel(NODEPTR_TYPE);\n"); + print("static int %Prule(void*, int);\n\n"); +} + +/* computekids - compute paths to kids in tree t */ +static char *computekids(Tree t, char *v, char *bp, int *ip) { + Term p = t->op; + + if (p->kind == NONTERM) { + sprintf(bp, "\t\tkids[%d] = %s;\n", (*ip)++, v); + bp += strlen(bp); + } else if (p->arity > 0) { + bp = computekids(t->left, stringf("LEFT_CHILD(%s)", v), bp, ip); + if (p->arity == 2) + bp = computekids(t->right, stringf("RIGHT_CHILD(%s)", v), bp, ip); + } + return bp; +} + +/* emitkids - emit _kids */ +static void emitkids(Rule rules, int nrules) { + int i; + Rule r, *rc = alloc((nrules + 1 + 1)*sizeof *rc); + char **str = alloc((nrules + 1 + 1)*sizeof *str); + + for (i = 0, r = rules; r; r = r->link) { + int j = 0; + char buf[1024], *bp = buf; + *computekids(r->pattern, "p", bp, &j) = 0; + for (j = 0; str[j] && strcmp(str[j], buf); j++) + ; + if (str[j] == NULL) + str[j] = strcpy(alloc(strlen(buf) + 1), buf); + r->kids = rc[j]; + rc[j] = r; + } + print("static void %Pkids(NODEPTR_TYPE p, int eruleno, NODEPTR_TYPE kids[]) {\n" +"%1if (!p)\n%2fatal(\"%Pkids\", \"Null tree\\n\", 0);\n" +"%1if (!kids)\n%2fatal(\"%Pkids\", \"Null kids\\n\", 0);\n" +"%1switch (eruleno) {\n"); + for (i = 0; (r = rc[i]) != NULL; i++) { + for ( ; r; r = r->kids) + print("%1case %d: /* %R */\n", r->ern, r); + print("%s%2break;\n", str[i]); + } + print("%1default:\n%2fatal(\"%Pkids\", \"Bad rule number %%d\\n\", eruleno);\n%1}\n}\n\n"); +} + +/* emitlabel - emit label function */ +static void emitlabel(Term terms, Nonterm start, int ntnumber) { + int i; + Term p; + + print("static void %Plabel(NODEPTR_TYPE a) {\n%1int c;\n" +"%1struct %Pstate *p;\n\n" +"%1if (!a)\n%2fatal(\"%Plabel\", \"Null tree\\n\", 0);\n"); + print("%1STATE_LABEL(a) = p = allocate(sizeof *p, FUNC);\n" +"%1p->rule._stmt = 0;\n"); + for (i = 1; i <= ntnumber; i++) + print("%1p->cost[%d] =\n", i); + print("%20x7fff;\n%1switch (OP_LABEL(a)) {\n"); + for (p = terms; p; p = p->link) + emitcase(p, ntnumber); + print("%1default:\n" +"%2fatal(\"%Plabel\", \"Bad terminal %%d\\n\", OP_LABEL(a));\n%1}\n}\n\n"); +} + +/* computents - fill in bp with _nts vector for tree t */ +static char *computents(Tree t, char *bp) { + if (t) { + Nonterm p = t->op; + if (p->kind == NONTERM) { + sprintf(bp, "%s_%s_NT, ", prefix, p->name); + bp += strlen(bp); + } else + bp = computents(t->right, computents(t->left, bp)); + } + return bp; +} + +/* emitnts - emit _nts ragged array */ +static void emitnts(Rule rules, int nrules) { + Rule r; + int i, j, *nts = alloc((nrules + 1)*sizeof *nts); + char **str = alloc((nrules + 1)*sizeof *str); + + for (i = 0, r = rules; r; r = r->link) { + char buf[1024]; + *computents(r->pattern, buf) = 0; + for (j = 0; str[j] && strcmp(str[j], buf); j++) + ; + if (str[j] == NULL) { + print("static short %Pnts_%d[] = { %s0 };\n", j, buf); + str[j] = strcpy(alloc(strlen(buf) + 1), buf); + } + nts[i++] = j; + } + print("\nstatic short *%Pnts[] = {\n"); + for (i = j = 0, r = rules; r; r = r->link) { + for ( ; j < r->ern; j++) + print("%10,%1/* %d */\n", j); + print("%1%Pnts_%d,%1/* %d */\n", nts[i++], j++); + } + print("};\n\n"); +} + +/* emitrecalc - emit code that tests for recalculation of INDIR?(VREGP) */ +static void emitrecalc(char *pre, Term root, Term kid) { + if (root->kind == TERM && strncmp(root->name, "INDIR", 5) == 0 + && kid->kind == TERM && strcmp(kid->name, "VREGP" ) == 0) { + Nonterm p; + print("%sif (mayrecalc(a)) {\n", pre); + print("%s%1struct %Pstate *q = a->syms[RX]->u.t.cse->x.state;\n", pre); + for (p = nts; p; p = p->link) { + print("%s%1if (q->cost[%P%S_NT] == 0) {\n", pre, p); + print("%s%2p->cost[%P%S_NT] = 0;\n", pre, p); + print("%s%2p->rule.%P%S = q->rule.%P%S;\n", pre, p, p); + print("%s%1}\n", pre); + } + print("%s}\n", pre); + } +} + +/* emitrecord - emit code that tests for a winning match of rule r */ +static void emitrecord(char *pre, Rule r, char *c, int cost) { + if (Tflag) + print("%s%Ptrace(a, %d, %s + %d, p->cost[%P%S_NT]);\n", + pre, r->ern, c, cost, r->lhs); + print("%sif (", pre); + print("%s + %d < p->cost[%P%S_NT]) {\n" +"%s%1p->cost[%P%S_NT] = %s + %d;\n%s%1p->rule.%P%S = %d;\n", + c, cost, r->lhs, pre, r->lhs, c, cost, pre, r->lhs, + r->packed); + if (r->lhs->chain) + print("%s%1%Pclosure_%S(a, %s + %d);\n", pre, r->lhs, c, cost); + print("%s}\n", pre); +} + +/* emitrule - emit decoding vectors and _rule */ +static void emitrule(Nonterm nts) { + Nonterm p; + + for (p = nts; p; p = p->link) { + Rule r; + print("static short %Pdecode_%S[] = {\n%10,\n", p); + for (r = p->rules; r; r = r->decode) + print("%1%d,\n", r->ern); + print("};\n\n"); + } + print("static int %Prule(void *state, int goalnt) {\n" +"%1if (goalnt < 1 || goalnt > %d)\n%2fatal(\"%Prule\", \"Bad goal nonterminal %%d\\n\", goalnt);\n" +"%1if (!state)\n%2return 0;\n%1switch (goalnt) {\n", ntnumber); + for (p = nts; p; p = p->link) + print("%1case %P%S_NT:" +"%1return %Pdecode_%S[((struct %Pstate *)state)->rule.%P%S];\n", p, p, p); + print("%1default:\n%2fatal(\"%Prule\", \"Bad goal nonterminal %%d\\n\", goalnt);\n%2return 0;\n%1}\n}\n\n"); +} + +/* emitstring - emit arrays of templates, instruction flags, and rules */ +static void emitstring(Rule rules) { + Rule r; + + print("static char *%Ptemplates[] = {\n"); + print("/* 0 */%10,\n"); + for (r = rules; r; r = r->link) + print("/* %d */%1\"%s\",%1/* %R */\n", r->ern, r->template, r); + print("};\n"); + print("\nstatic char %Pisinstruction[] = {\n"); + print("/* 0 */%10,\n"); + for (r = rules; r; r = r->link) { + int len = strlen(r->template); + print("/* %d */%1%d,%1/* %s */\n", r->ern, + len >= 2 && r->template[len-2] == '\\' && r->template[len-1] == 'n', + r->template); + } + print("};\n"); + print("\nstatic char *%Pstring[] = {\n"); + print("/* 0 */%10,\n"); + for (r = rules; r; r = r->link) + print("/* %d */%1\"%R\",\n", r->ern, r); + print("};\n\n"); +} + +/* emitstruct - emit the definition of the state structure */ +static void emitstruct(Nonterm nts, int ntnumber) { + print("struct %Pstate {\n%1short cost[%d];\n%1struct {\n", ntnumber + 1); + for ( ; nts; nts = nts->link) { + int n = 1, m = nts->lhscount; + while ((m >>= 1) != 0) + n++; + print("%2unsigned int %P%S:%d;\n", nts, n); + } + print("%1} rule;\n};\n\n"); +} + +/* emittest - emit clause for testing a match */ +static void emittest(Tree t, char *v, char *suffix) { + Term p = t->op; + + if (p->kind == TERM) { + print("%3%s->op == %d%s/* %S */\n", v, p->esn, + t->nterms > 1 ? " && " : suffix, p); + if (t->left) + emittest(t->left, stringf("LEFT_CHILD(%s)", v), + t->right && t->right->nterms ? " && " : suffix); + if (t->right) + emittest(t->right, stringf("RIGHT_CHILD(%s)", v), suffix); + } +} diff --git a/code/tools/lcc/lburg/lburg.h b/code/tools/lcc/lburg/lburg.h new file mode 100644 index 0000000..b67e802 --- /dev/null +++ b/code/tools/lcc/lburg/lburg.h @@ -0,0 +1,65 @@ +#ifndef BURG_INCLUDED +#define BURG_INCLUDED + +/* iburg.c: */ +extern void *alloc(int nbytes); + +typedef enum { TERM=1, NONTERM } Kind; +typedef struct rule *Rule; +typedef struct term *Term; +struct term { /* terminals: */ + char *name; /* terminal name */ + Kind kind; /* TERM */ + int esn; /* external symbol number */ + int arity; /* operator arity */ + Term link; /* next terminal in esn order */ + Rule rules; /* rules whose pattern starts with term */ +}; + +typedef struct nonterm *Nonterm; +struct nonterm { /* nonterminals: */ + char *name; /* nonterminal name */ + Kind kind; /* NONTERM */ + int number; /* identifying number */ + int lhscount; /* # times nt appears in a rule lhs */ + int reached; /* 1 iff reached from start nonterminal */ + Rule rules; /* rules w/nonterminal on lhs */ + Rule chain; /* chain rules w/nonterminal on rhs */ + Nonterm link; /* next terminal in number order */ +}; +extern Nonterm nonterm(char *id); +extern Term term(char *id, int esn); + +typedef struct tree *Tree; +struct tree { /* tree patterns: */ + void *op; /* a terminal or nonterminal */ + Tree left, right; /* operands */ + int nterms; /* number of terminal nodes in this tree */ +}; +extern Tree tree(char *op, Tree left, Tree right); + +struct rule { /* rules: */ + Nonterm lhs; /* lefthand side nonterminal */ + Tree pattern; /* rule pattern */ + int ern; /* external rule number */ + int packed; /* packed external rule number */ + int cost; /* cost, if a constant */ + char *code; /* cost, if an expression */ + char *template; /* assembler template */ + Rule link; /* next rule in ern order */ + Rule next; /* next rule with same pattern root */ + Rule chain; /* next chain rule with same rhs */ + Rule decode; /* next rule with same lhs */ + Rule kids; /* next rule with same _kids pattern */ +}; +extern Rule rule(char *id, Tree pattern, char *template, char *code); + +/* gram.y: */ +void yyerror(char *fmt, ...); +int yyparse(void); +void yywarn(char *fmt, ...); +extern int errcnt; +extern FILE *infp; +extern FILE *outfp; + +#endif diff --git a/code/tools/lcc/lib/assert.c b/code/tools/lcc/lib/assert.c new file mode 100644 index 0000000..10958a8 --- /dev/null +++ b/code/tools/lcc/lib/assert.c @@ -0,0 +1,15 @@ +#include +#include + + +int _assert(char *e, char *file, int line) { + fprintf(stderr, "assertion failed:"); + if (e) + fprintf(stderr, " %s", e); + if (file) + fprintf(stderr, " file %s", file); + fprintf(stderr, " line %d\n", line); + fflush(stderr); + abort(); + return 0; +} diff --git a/code/tools/lcc/lib/bbexit.c b/code/tools/lcc/lib/bbexit.c new file mode 100644 index 0000000..6dff067 --- /dev/null +++ b/code/tools/lcc/lib/bbexit.c @@ -0,0 +1,123 @@ +#include +#include + + +struct callsite { + char *file, *name; + union coordinate { + struct { unsigned int index:6,x:10,y:16; } be; + struct { unsigned int y:16,x:10,index:6; } le; + unsigned int coord; + } u; +} *_caller; + +static struct _bbdata { + struct _bbdata *link; + unsigned npoints, *counts; + union coordinate *coords; + char **files; + struct func { + struct func *link; + struct caller { + struct caller *link; + struct callsite *caller; + unsigned count; + } *callers; + char *name; + union coordinate src; + } *funcs; +} tail, *_bblist = &tail; + +static void unpack(unsigned int coord, int *index, int *x, int *y) { + static union { int x; char endian; } little = { 1 }; + union coordinate u; + + u.coord = coord; + if (little.endian) { + *index = u.le.index; + *x = u.le.x; + *y = u.le.y; + } else { + *index = u.be.index; + *x = u.be.x; + *y = u.be.y; + } +} + +static void profout(struct _bbdata *p, FILE *fp) { + int i, index, x, y; + struct func *f; + struct caller *q; + + for (i = 0; p->files[i]; i++) + ; + fprintf(fp, "%d\n", i); + for (i = 0; p->files[i]; i++) + fprintf(fp, "%s\n", p->files[i]); + for (i = 0, f = p->funcs; f; i++, f = f->link) + if ((q = f->callers)) + for (i--; q; q = q->link) + i++; + fprintf(fp, "%d\n", i); + for (f = p->funcs; f; f = f->link) { + int n = 0; + for (q = f->callers; q; n += q->count, q = q->link) { + unpack(f->src.coord, &index, &x, &y); + fprintf(fp, "%s %d %d %d %d", f->name, index, x, y, q->count); + if (q->caller) { + unpack(q->caller->u.coord, &index, &x, &y); + fprintf(fp, " %s %s %d %d\n", q->caller->name, q->caller->file, x, y); + } else + fprintf(fp, " ? ? 0 0\n"); + } + if (n == 0) { + unpack(f->src.coord, &index, &x, &y); + fprintf(fp, "%s %d %d %d 0 ? ? 0 0\n", f->name, index, x, y); + } + } + fprintf(fp, "%d\n", p->npoints); + for (i = 0; i < p->npoints; i++) { + unpack(p->coords[i].coord, &index, &x, &y); + fprintf(fp, "%d %d %d %d\n", index, x, y, p->counts[i]); + } +} + +static void bbexit(void) { + FILE *fp; + + if (_bblist != &tail && (fp = fopen("prof.out", "a"))) { + for ( ; _bblist != &tail; _bblist = _bblist->link) + profout(_bblist, fp); + fclose(fp); + } +} + +void _epilogue(struct func *callee) { + _caller = 0; +} + +void _prologue(struct func *callee, struct _bbdata *yylink) { + static struct caller callers[4096]; + static int next; + struct caller *p; + + if (!yylink->link) { + yylink->link = _bblist; + _bblist = yylink; + if (next == 0) + atexit(bbexit); + } + for (p = callee->callers; p; p = p->link) + if (p->caller == _caller) { + p->count++; + break; + } + if (!p && next < sizeof callers/sizeof callers[0]) { + p = &callers[next++]; + p->caller = _caller; + p->count = 1; + p->link = callee->callers; + callee->callers = p; + } + _caller = 0; +} diff --git a/code/tools/lcc/lib/yynull.c b/code/tools/lcc/lib/yynull.c new file mode 100644 index 0000000..7dbc968 --- /dev/null +++ b/code/tools/lcc/lib/yynull.c @@ -0,0 +1,12 @@ +#include +#include + + +void _YYnull(char *file, int line) { + fprintf(stderr, "null pointer dereferenced:"); + if (file) + fprintf(stderr, " file %s,", file); + fprintf(stderr, " line %d\n", line); + fflush(stderr); + abort(); +} diff --git a/code/tools/lcc/makefile b/code/tools/lcc/makefile new file mode 100644 index 0000000..26efed4 --- /dev/null +++ b/code/tools/lcc/makefile @@ -0,0 +1,307 @@ +# $Id: makefile 145 2001-10-17 21:53:10Z timo $ +HOSTFILE=etc/linux.c +TEMPDIR=/tmp +A=.a +O=.o +E= +CC=gcc +CFLAGS=-O2 -Wall -fno-strict-aliasing +LDFLAGS= +LD=gcc +AR=ar ruv +RANLIB=ranlib +DIFF=diff +RM=rm -f +RMDIR=rmdir +BUILDDIR=build +TSTDIR=$(BUILDDIR)/$(TARGET)/tst +B=$(BUILDDIR)/ +T=$(TSTDIR)/ + +# $Id: makefile 145 2001-10-17 21:53:10Z timo $ + +what: + -@echo make all q3rcc lburg q3cpp q3lcc bprint liblcc triple clean clobber + +makedirs: + @if [ ! -d $(B) ];then mkdir $(B);fi + @if [ ! -d $(T) ];then mkdir $(T);fi + +all:: q3rcc lburg q3cpp q3lcc bprint liblcc + +q3rcc: makedirs $Bq3rcc$E +lburg: makedirs $Blburg$E +q3cpp: makedirs $Bq3cpp$E +q3lcc: makedirs $Bq3lcc$E +bprint: makedirs $Bbprint$E +liblcc: makedirs $Bliblcc$A + +RCCOBJS=$Balloc$O \ + $Bbind$O \ + $Bdag$O \ + $Bdagcheck$O \ + $Bdecl$O \ + $Benode$O \ + $Berror$O \ + $Bexpr$O \ + $Bevent$O \ + $Binit$O \ + $Binits$O \ + $Binput$O \ + $Blex$O \ + $Blist$O \ + $Bmain$O \ + $Boutput$O \ + $Bprof$O \ + $Bprofio$O \ + $Bsimp$O \ + $Bstmt$O \ + $Bstring$O \ + $Bsym$O \ + $Btrace$O \ + $Btree$O \ + $Btypes$O \ + $Bnull$O \ + $Bsymbolic$O \ + $Bgen$O \ + $Bbytecode$O + +$Bq3rcc$E:: $Bmain$O $Blibrcc$A $(EXTRAOBJS) + $(LD) $(LDFLAGS) -o $@ $Bmain$O $(EXTRAOBJS) $Blibrcc$A $(EXTRALIBS) + +$Blibrcc$A: $(RCCOBJS) + $(AR) $@ $(RCCOBJS); $(RANLIB) $@ || true + +$(RCCOBJS): src/c.h src/token.h src/config.h + +$Balloc$O: src/alloc.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/alloc.c +$Bbind$O: src/bind.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/bind.c +$Bdag$O: src/dag.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/dag.c +$Bdecl$O: src/decl.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/decl.c +$Benode$O: src/enode.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/enode.c +$Berror$O: src/error.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/error.c +$Bevent$O: src/event.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/event.c +$Bexpr$O: src/expr.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/expr.c +$Bgen$O: src/gen.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/gen.c +$Binit$O: src/init.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/init.c +$Binits$O: src/inits.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/inits.c +$Binput$O: src/input.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/input.c +$Blex$O: src/lex.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/lex.c +$Blist$O: src/list.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/list.c +$Bmain$O: src/main.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/main.c +$Bnull$O: src/null.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/null.c +$Boutput$O: src/output.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/output.c +$Bprof$O: src/prof.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/prof.c +$Bprofio$O: src/profio.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/profio.c +$Bsimp$O: src/simp.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/simp.c +$Bstmt$O: src/stmt.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/stmt.c +$Bstring$O: src/string.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/string.c +$Bsym$O: src/sym.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/sym.c +$Bsymbolic$O: src/symbolic.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/symbolic.c +$Bbytecode$O: src/bytecode.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/bytecode.c +$Btrace$O: src/trace.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/trace.c +$Btree$O: src/tree.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/tree.c +$Btypes$O: src/types.c; $(CC) $(CFLAGS) -c -Isrc -o $@ src/types.c +$Bstab$O: src/stab.c src/stab.h; $(CC) $(CFLAGS) -c -Isrc -o $@ src/stab.c + +$Bdagcheck$O: $Bdagcheck.c; $(CC) $(CFLAGS) -c -Isrc -o $@ $Bdagcheck.c +$Balpha$O: $Balpha.c; $(CC) $(CFLAGS) -c -Isrc -o $@ $Balpha.c +$Bmips$O: $Bmips.c; $(CC) $(CFLAGS) -c -Isrc -o $@ $Bmips.c +$Bsparc$O: $Bsparc.c; $(CC) $(CFLAGS) -c -Isrc -o $@ $Bsparc.c +$Bx86$O: $Bx86.c; $(CC) $(CFLAGS) -c -Isrc -o $@ $Bx86.c +$Bx86linux$O: $Bx86linux.c; $(CC) $(CFLAGS) -c -Isrc -o $@ $Bx86linux.c + +$Bdagcheck.c: $Blburg$E src/dagcheck.md; $Blburg src/dagcheck.md $@ +$Balpha.c: $Blburg$E src/alpha.md; $Blburg src/alpha.md $@ +$Bmips.c: $Blburg$E src/mips.md; $Blburg src/mips.md $@ +$Bsparc.c: $Blburg$E src/sparc.md; $Blburg src/sparc.md $@ +$Bx86.c: $Blburg$E src/x86.md; $Blburg src/x86.md $@ +$Bx86linux.c: $Blburg$E src/x86linux.md; $Blburg src/x86linux.md $@ + +$Bq3rcc.h: src/rcc.asdl; $(ASDL_HOME)/bin/asdlGen --c -d $B src/rcc.asdl +$Bq3rcc$O: $Brcc.h; $(CC) $(CFLAGS) -c -Isrc -I$B -I$(ASDL_HOME)/include/asdlGen -o $@ $Brcc.c +$Basdl$O: src/asdl.c $Brcc.h src/c.h; $(CC) $(CFLAGS) -c -Isrc -I$B -I$(ASDL_HOME)/include/asdlGen -o $@ src/asdl.c +$Bpass2$O: src/pass2.c $Brcc.h src/c.h; $(CC) $(CFLAGS) -c -Isrc -I$B -I$(ASDL_HOME)/include/asdlGen -o $@ src/pass2.c +$B2html$O: src/2html.c $Brcc.h src/c.h; $(CC) $(CFLAGS) -c -Isrc -I$B -I$(ASDL_HOME)/include/asdlGen -o $@ src/2html.c + +$Bpass2$E: $Bpass2$O $(EXTRAOBJS) $Blibrcc$A; $(LD) $(LDFLAGS) -o $@ $Bpass2$O $(EXTRAOBJS) $Blibrcc$A $(EXTRALIBS) +$B2html$E: $B2html$O $Bq3rcc$O; $(LD) $(LDFLAGS) -o $@ $B2html$O $Bq3rcc$O $(EXTRALIBS) + +$Bbprint$E: $Bbprint$O; $(LD) $(LDFLAGS) -o $@ $Bbprint$O + +$Bbprint$O: etc/bprint.c; $(CC) $(CFLAGS) -c -Isrc -o $@ etc/bprint.c + +$Bq3lcc$E: $Bq3lcc$O $Bhost$O; $(LD) $(LDFLAGS) -o $@ $Bq3lcc$O $Bhost$O + +SYSTEM=$(shell cc -print-search-dirs | head -n 1 | cut -b 10-) + +$Bq3lcc$O: etc/lcc.c; $(CC) $(CFLAGS) -c -DTEMPDIR=\"$(TEMPDIR)\" -o $@ etc/lcc.c +$Bhost$O: $(HOSTFILE); $(CC) $(CFLAGS) -c -DSYSTEM=\"$(SYSTEM)\" -o $@ $(HOSTFILE) + +LIBOBJS=$Bassert$O $Bbbexit$O $Byynull$O + +$Bliblcc$A: $(LIBOBJS); $(AR) $@ $Bassert$O $Bbbexit$O $Byynull$O; $(RANLIB) $@ || true + +$Bassert$O: lib/assert.c; $(CC) $(CFLAGS) -c -o $@ lib/assert.c +$Byynull$O: lib/yynull.c; $(CC) $(CFLAGS) -c -o $@ lib/yynull.c +$Bbbexit$O: lib/bbexit.c; $(CC) $(CFLAGS) -c -o $@ lib/bbexit.c + +$Blburg$E: $Blburg$O $Bgram$O; $(LD) $(LDFLAGS) -o $@ $Blburg$O $Bgram$O + +$Blburg$O $Bgram$O: lburg/lburg.h + +$Blburg$O: lburg/lburg.c; $(CC) $(CFLAGS) -c -Ilburg -o $@ lburg/lburg.c +$Bgram$O: lburg/gram.c; $(CC) $(CFLAGS) -c -Ilburg -o $@ lburg/gram.c + +CPPOBJS=$Bq3cpp$O $Blexer$O $Bnlist$O $Btokens$O $Bmacro$O $Beval$O \ + $Binclude$O $Bhideset$O $Bgetopt$O $Bunix$O + +$Bq3cpp$E: $(CPPOBJS) + $(LD) $(LDFLAGS) -o $@ $(CPPOBJS) + +$(CPPOBJS): cpp/cpp.h + +$Bq3cpp$O: cpp/cpp.c; $(CC) $(CFLAGS) -c -Icpp -o $@ cpp/cpp.c +$Blexer$O: cpp/lex.c; $(CC) $(CFLAGS) -c -Icpp -o $@ cpp/lex.c +$Bnlist$O: cpp/nlist.c; $(CC) $(CFLAGS) -c -Icpp -o $@ cpp/nlist.c +$Btokens$O: cpp/tokens.c; $(CC) $(CFLAGS) -c -Icpp -o $@ cpp/tokens.c +$Bmacro$O: cpp/macro.c; $(CC) $(CFLAGS) -c -Icpp -o $@ cpp/macro.c +$Beval$O: cpp/eval.c; $(CC) $(CFLAGS) -c -Icpp -o $@ cpp/eval.c +$Binclude$O: cpp/include.c; $(CC) $(CFLAGS) -c -Icpp -o $@ cpp/include.c +$Bhideset$O: cpp/hideset.c; $(CC) $(CFLAGS) -c -Icpp -o $@ cpp/hideset.c +$Bgetopt$O: cpp/getopt.c; $(CC) $(CFLAGS) -c -Icpp -o $@ cpp/getopt.c +$Bunix$O: cpp/unix.c; $(CC) $(CFLAGS) -c -Icpp -o $@ cpp/unix.c + +test: $T8q.s \ + $Tarray.s \ + $Tcf.s \ + $Tcq.s \ + $Tcvt.s \ + $Tfields.s \ + $Tfront.s \ + $Tincr.s \ + $Tinit.s \ + $Tlimits.s \ + $Tparanoia.s \ + $Tsort.s \ + $Tspill.s \ + $Tstdarg.s \ + $Tstruct.s \ + $Tswitch.s \ + $Twf1.s \ + $Tyacc.s + +$T8q.s: tst/8q.c tst/8q.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ +$Tarray.s: tst/array.c tst/array.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ +$Tcf.s: tst/cf.c tst/cf.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ +$Tcq.s: tst/cq.c tst/cq.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ +$Tcvt.s: tst/cvt.c tst/cvt.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ +$Tfields.s: tst/fields.c tst/fields.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ +$Tfront.s: tst/front.c tst/front.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ +$Tincr.s: tst/incr.c tst/incr.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ +$Tinit.s: tst/init.c tst/init.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ +$Tlimits.s: tst/limits.c tst/limits.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ +$Tparanoia.s: tst/paranoia.c tst/paranoia.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ +$Tsort.s: tst/sort.c tst/sort.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ +$Tspill.s: tst/spill.c tst/spill.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ +$Tstdarg.s: tst/stdarg.c tst/stdarg.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ +$Tstruct.s: tst/struct.c tst/struct.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ +$Tswitch.s: tst/switch.c tst/switch.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ +$Twf1.s: tst/wf1.c tst/wf1.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ +$Tyacc.s: tst/yacc.c tst/yacc.0 all; @env BUILDDIR=$(BUILDDIR) TSTDIR=$(TSTDIR) src/run.sh $@ + +testclean: + $(RM) $T8q$E $T8q.s $T8q.2 $T8q.1 + $(RM) $Tarray$E $Tarray.s $Tarray.2 $Tarray.1 + $(RM) $Tcf$E $Tcf.s $Tcf.2 $Tcf.1 + $(RM) $Tcq$E $Tcq.s $Tcq.2 $Tcq.1 + $(RM) $Tcvt$E $Tcvt.s $Tcvt.2 $Tcvt.1 + $(RM) $Tfields$E $Tfields.s $Tfields.2 $Tfields.1 + $(RM) $Tfront$E $Tfront.s $Tfront.2 $Tfront.1 + $(RM) $Tincr$E $Tincr.s $Tincr.2 $Tincr.1 + $(RM) $Tinit$E $Tinit.s $Tinit.2 $Tinit.1 + $(RM) $Tlimits$E $Tlimits.s $Tlimits.2 $Tlimits.1 + $(RM) $Tparanoia$E $Tparanoia.s $Tparanoia.2 $Tparanoia.1 + $(RM) $Tsort$E $Tsort.s $Tsort.2 $Tsort.1 + $(RM) $Tspill$E $Tspill.s $Tspill.2 $Tspill.1 + $(RM) $Tstdarg$E $Tstdarg.s $Tstdarg.2 $Tstdarg.1 + $(RM) $Tstruct$E $Tstruct.s $Tstruct.2 $Tstruct.1 + $(RM) $Tswitch$E $Tswitch.s $Tswitch.2 $Tswitch.1 + $(RM) $Twf1$E $Twf1.s $Twf1.2 $Twf1.1 + $(RM) $Tyacc$E $Tyacc.s $Tyacc.2 $Tyacc.1 + +install:: all + install -d /usr/local/lib/lcc + install -d /usr/local/lib/lcc/gcc + install $Bq3lcc$E /usr/local/bin + install $Bq3cpp$E /usr/local/lib/lcc/gcc + install $Bq3rcc$E /usr/local/lib/lcc + install $Bliblcc$A /usr/local/lib/lcc + install $Blibrcc$A /usr/local/lib/lcc + +uninstall:: + $(RM) /usr/local/lib/lcc/librcc$A + $(RM) /usr/local/lib/lcc/liblcc$A + $(RM) /usr/local/lib/lcc/q3rcc$E + $(RM) /usr/local/lib/lcc/gcc/q3cpp$E + $(RM) /usr/local/bin/lcc$E + $(RMDIR) /usr/local/lib/lcc/gcc + $(RMDIR) /usr/local/lib/lcc + +clean:: testclean + $(RM) $B*$O + $(RM) $Bdagcheck.c $Balpha.c $Bmips.c $Bx86.c $Bsparc.c $Bx86linux.c $Bgram.c + $(RM) $Brcc.c $Brcc.h + $(RM) $Brcc1$E $Brcc1$E $B1rcc$E $B2rcc$E + $(RM) $B*.ilk + +clobber:: clean + $(RM) $Bq3rcc$E $B2html$E $Bpass2$E $Blburg$E $Bq3cpp$E $Bq3lcc$E $Bbprint$E $B*$A + $(RM) $B*.pdb $B*.pch + +RCCSRCS=src/alloc.c \ + src/bind.c \ + src/dag.c \ + src/decl.c \ + src/enode.c \ + src/error.c \ + src/expr.c \ + src/event.c \ + src/init.c \ + src/inits.c \ + src/input.c \ + src/lex.c \ + src/list.c \ + src/main.c \ + src/output.c \ + src/prof.c \ + src/profio.c \ + src/simp.c \ + src/stmt.c \ + src/string.c \ + src/sym.c \ + src/trace.c \ + src/tree.c \ + src/types.c \ + src/null.c \ + src/symbolic.c \ + src/bytecode.c \ + src/gen.c \ + src/stab.c \ + $Bdagcheck.c \ + $Balpha.c \ + $Bmips.c \ + $Bsparc.c \ + $Bx86linux.c \ + $Bx86.c + +C=$Bq3lcc -A -d0.6 -Wo-lccdir=$(BUILDDIR) -Isrc -I$(BUILDDIR) +triple: $Bq3rcc$E $Bq3lcc$E $Bq3cpp$E + $C -o $B1rcc$E -B$B $(RCCSRCS) + $C -o $B2rcc$E -B$B1 $(RCCSRCS) + strip $B1rcc$E $B2rcc$E + dd if=$B1rcc$E of=$Brcc1$E bs=512 skip=1 + dd if=$B2rcc$E of=$Brcc2$E bs=512 skip=1 + if cmp $Brcc1$E $Brcc2$E; then \ + mv $B2rcc$E $Bq3rcc$E; \ + $(RM) $B1rcc$E $Bq3rcc[12]$E; fi diff --git a/code/tools/lcc/makefile.nt b/code/tools/lcc/makefile.nt new file mode 100644 index 0000000..7508dc4 --- /dev/null +++ b/code/tools/lcc/makefile.nt @@ -0,0 +1,383 @@ +# $Id: makefile.nt 314 2002-10-05 17:07:57Z timo $ +HOSTFILE=etc/win32.c +TARGET=x86\win32 +TEMPDIR=\\temp +A=.lib +O=.obj +E=.exe +CC=cl -nologo +CFLAGS=-DWIN32 -Zi -MLd -Fd$(BUILDDIR)^\ +LD=cl -nologo +LDFLAGS=-Zi -MLd -Fd$(BUILDDIR)^\ +B=$(BUILDDIR)^\ +T=$B$(TARGET)\tst^\ +C=$Blcc -Wo-lccdir=$(BUILDDIR) -Wf-target=$(TARGET) -I$B$(TARGET)/include +# $Id: makefile.nt 314 2002-10-05 17:07:57Z timo $ + +what: + -@echo make all q3rcc lburg q3cpp lcc bprint liblcc triple clean clobber + +all:: q3rcc lburg q3cpp lcc bprint liblcc + +q3rcc: $Bq3rcc$E +lburg: $Blburg$E +q3cpp: $Bq3cpp$E +lcc: $Blcc$E +bprint: $Bbprint$E +liblcc: $Bliblcc$A + +RCCOBJS=$Balloc$O \ + $Bbind$O \ + $Bdag$O \ + $Bdagcheck$O \ + $Bdecl$O \ + $Benode$O \ + $Berror$O \ + $Bexpr$O \ + $Bevent$O \ + $Binit$O \ + $Binits$O \ + $Binput$O \ + $Blex$O \ + $Blist$O \ + $Bmain$O \ + $Boutput$O \ + $Bprof$O \ + $Bprofio$O \ + $Bsimp$O \ + $Bstmt$O \ + $Bstring$O \ + $Bsym$O \ + $Btrace$O \ + $Btree$O \ + $Btypes$O \ + $Bnull$O \ + $Bsymbolic$O \ + $Bgen$O \ + $Bbytecode$O \ + $Balpha$O \ + $Bmips$O \ + $Bsparc$O \ + $Bstab$O \ + $Bx86$O \ + $Bx86linux$O + +$Bq3rcc$E:: $Bmain$O $Blibrcc$A $(EXTRAOBJS) + $(LD) $(LDFLAGS) -Fe$@ $Bmain$O $(EXTRAOBJS) $Blibrcc$A $(EXTRALIBS) + +$Blibrcc$A: $(RCCOBJS) + lib -out:$@ $(RCCOBJS) + +$(RCCOBJS): src/c.h src/token.h src/config.h + +$Balloc$O: src/alloc.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/alloc.c +$Bbind$O: src/bind.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/bind.c +$Bdag$O: src/dag.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/dag.c +$Bdecl$O: src/decl.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/decl.c +$Benode$O: src/enode.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/enode.c +$Berror$O: src/error.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/error.c +$Bevent$O: src/event.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/event.c +$Bexpr$O: src/expr.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/expr.c +$Bgen$O: src/gen.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/gen.c +$Binit$O: src/init.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/init.c +$Binits$O: src/inits.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/inits.c +$Binput$O: src/input.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/input.c +$Blex$O: src/lex.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/lex.c +$Blist$O: src/list.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/list.c +$Bmain$O: src/main.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/main.c +$Bnull$O: src/null.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/null.c +$Boutput$O: src/output.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/output.c +$Bprof$O: src/prof.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/prof.c +$Bprofio$O: src/profio.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/profio.c +$Bsimp$O: src/simp.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/simp.c +$Bstmt$O: src/stmt.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/stmt.c +$Bstring$O: src/string.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/string.c +$Bsym$O: src/sym.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/sym.c +$Bsymbolic$O: src/symbolic.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/symbolic.c +$Bbytecode$O: src/bytecode.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/bytecode.c +$Btrace$O: src/trace.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/trace.c +$Btree$O: src/tree.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/tree.c +$Btypes$O: src/types.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/types.c +$Bstab$O: src/stab.c src/stab.h; $(CC) $(CFLAGS) -c -Isrc -Fo$@ src/stab.c + +$Bdagcheck$O: $Bdagcheck.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ $Bdagcheck.c +$Balpha$O: $Balpha.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ $Balpha.c +$Bmips$O: $Bmips.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ $Bmips.c +$Bsparc$O: $Bsparc.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ $Bsparc.c +$Bx86$O: $Bx86.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ $Bx86.c +$Bx86linux$O: $Bx86linux.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ $Bx86linux.c + +$Bdagcheck.c: $Blburg$E src/dagcheck.md; $Blburg src/dagcheck.md $@ +$Balpha.c: $Blburg$E src/alpha.md; $Blburg src/alpha.md $@ +$Bmips.c: $Blburg$E src/mips.md; $Blburg src/mips.md $@ +$Bsparc.c: $Blburg$E src/sparc.md; $Blburg src/sparc.md $@ +$Bx86.c: $Blburg$E src/x86.md; $Blburg src/x86.md $@ +$Bx86linux.c: $Blburg$E src/x86linux.md; $Blburg src/x86linux.md $@ + +$Brcc.h: src/rcc.asdl; $(ASDL_HOME)/bin/asdlGen --c -d $B src/rcc.asdl +$Brcc$O: $Brcc.h; $(CC) $(CFLAGS) -c -Isrc -I$B -I$(ASDL_HOME)/include/asdlGen -Fo$@ $Brcc.c +$Basdl$O: src/asdl.c $Brcc.h src/c.h; $(CC) $(CFLAGS) -c -Isrc -I$B -I$(ASDL_HOME)/include/asdlGen -Fo$@ src/asdl.c +$Bpass2$O: src/pass2.c $Brcc.h src/c.h; $(CC) $(CFLAGS) -c -Isrc -I$B -I$(ASDL_HOME)/include/asdlGen -Fo$@ src/pass2.c +$B2html$O: src/2html.c $Brcc.h src/c.h; $(CC) $(CFLAGS) -c -Isrc -I$B -I$(ASDL_HOME)/include/asdlGen -Fo$@ src/2html.c + +$Bpass2$E: $Bpass2$O $(EXTRAOBJS) $Blibrcc$A; $(LD) $(LDFLAGS) -Fe$@ $Bpass2$O $(EXTRAOBJS) $Blibrcc$A $(EXTRALIBS) +$B2html$E: $B2html$O $Brcc$O; $(LD) $(LDFLAGS) -Fe$@ $B2html$O $Brcc$O $(EXTRALIBS) + +$Bbprint$E: $Bbprint$O; $(LD) $(LDFLAGS) -Fe$@ $Bbprint$O + +$Bbprint$O: etc/bprint.c; $(CC) $(CFLAGS) -c -Isrc -Fo$@ etc/bprint.c + +$Blcc$E: $Blcc$O $Bhost$O; $(LD) $(LDFLAGS) -Fe$@ $Blcc$O $Bhost$O + +$Blcc$O: etc/lcc.c; $(CC) $(CFLAGS) -c -DTEMPDIR=\"$(TEMPDIR)\" -Fo$@ etc/lcc.c +$Bhost$O: $(HOSTFILE); $(CC) $(CFLAGS) -c -Fo$@ $(HOSTFILE) + +LIBOBJS=$Bassert$O $Bbbexit$O $Byynull$O + +$Bliblcc$A: $(LIBOBJS); lib -out:$@ $Bassert$O $Bbbexit$O $Byynull$O + +$Bassert$O: lib/assert.c; $(CC) -c -Fo$@ lib/assert.c +$Byynull$O: lib/yynull.c; $(CC) -c -Fo$@ lib/yynull.c +$Bbbexit$O: lib/bbexit.c; $(CC) -c -Fo$@ lib/bbexit.c + +$Blburg$E: $Blburg$O $Bgram$O; $(LD) $(LDFLAGS) -Fe$@ $Blburg$O $Bgram$O + +$Blburg$O $Bgram$O: lburg/lburg.h + +$Blburg$O: lburg/lburg.c; $(CC) $(CFLAGS) -c -Ilburg -Fo$@ lburg/lburg.c +$Bgram$O: lburg/gram.c; $(CC) $(CFLAGS) -c -Ilburg -Fo$@ lburg/gram.c + +CPPOBJS=$Bcpp$O $Blexer$O $Bnlist$O $Btokens$O $Bmacro$O $Beval$O \ + $Binclude$O $Bhideset$O $Bgetopt$O $Bunix$O + +$Bq3cpp$E: $(CPPOBJS) + $(LD) $(LDFLAGS) -Fe$@ $(CPPOBJS) + +$(CPPOBJS): cpp/cpp.h + +$Bcpp$O: cpp/cpp.c; $(CC) $(CFLAGS) -c -Icpp -Fo$@ cpp/cpp.c +$Blexer$O: cpp/lex.c; $(CC) $(CFLAGS) -c -Icpp -Fo$@ cpp/lex.c +$Bnlist$O: cpp/nlist.c; $(CC) $(CFLAGS) -c -Icpp -Fo$@ cpp/nlist.c +$Btokens$O: cpp/tokens.c; $(CC) $(CFLAGS) -c -Icpp -Fo$@ cpp/tokens.c +$Bmacro$O: cpp/macro.c; $(CC) $(CFLAGS) -c -Icpp -Fo$@ cpp/macro.c +$Beval$O: cpp/eval.c; $(CC) $(CFLAGS) -c -Icpp -Fo$@ cpp/eval.c +$Binclude$O: cpp/include.c; $(CC) $(CFLAGS) -c -Icpp -Fo$@ cpp/include.c +$Bhideset$O: cpp/hideset.c; $(CC) $(CFLAGS) -c -Icpp -Fo$@ cpp/hideset.c +$Bgetopt$O: cpp/getopt.c; $(CC) $(CFLAGS) -c -Icpp -Fo$@ cpp/getopt.c +$Bunix$O: cpp/unix.c; $(CC) $(CFLAGS) -c -Icpp -Fo$@ cpp/unix.c + +test: $T8q.s \ + $Tarray.s \ + $Tcf.s \ + $Tcq.s \ + $Tcvt.s \ + $Tfields.s \ + $Tfront.s \ + $Tincr.s \ + $Tinit.s \ + $Tlimits.s \ + $Tparanoia.s \ + $Tsort.s \ + $Tspill.s \ + $Tstdarg.s \ + $Tstruct.s \ + $Tswitch.s \ + $Twf1.s \ + $Tyacc.s + +$T8q.s: tst\8q.c tst\8q.0 all + -$C -S -Wf-errout=$T8q.2 -o $T8q.s tst/8q.c + fc $(TARGET)\tst\8q.sbk $T8q.s + fc $(TARGET)\tst\8q.2bk $T8q.2 + $C -o $T8q$E $T8q.s + -$T8q$E $T8q.1 + fc $(TARGET)\tst\8q.1bk $T8q.1 +$Tarray.s: tst\array.c tst\array.0 all + -$C -S -Wf-errout=$Tarray.2 -o $Tarray.s tst/array.c + fc $(TARGET)\tst\array.sbk $Tarray.s + fc $(TARGET)\tst\array.2bk $Tarray.2 + $C -o $Tarray$E $Tarray.s + -$Tarray$E $Tarray.1 + fc $(TARGET)\tst\array.1bk $Tarray.1 +$Tcf.s: tst\cf.c tst\cf.0 all + -$C -S -Wf-errout=$Tcf.2 -o $Tcf.s tst/cf.c + fc $(TARGET)\tst\cf.sbk $Tcf.s + fc $(TARGET)\tst\cf.2bk $Tcf.2 + $C -o $Tcf$E $Tcf.s + -$Tcf$E $Tcf.1 + fc $(TARGET)\tst\cf.1bk $Tcf.1 +$Tcq.s: tst\cq.c tst\cq.0 all + -$C -S -Wf-errout=$Tcq.2 -o $Tcq.s tst/cq.c + fc $(TARGET)\tst\cq.sbk $Tcq.s + fc $(TARGET)\tst\cq.2bk $Tcq.2 + $C -o $Tcq$E $Tcq.s + -$Tcq$E $Tcq.1 + fc $(TARGET)\tst\cq.1bk $Tcq.1 +$Tcvt.s: tst\cvt.c tst\cvt.0 all + -$C -S -Wf-errout=$Tcvt.2 -o $Tcvt.s tst/cvt.c + fc $(TARGET)\tst\cvt.sbk $Tcvt.s + fc $(TARGET)\tst\cvt.2bk $Tcvt.2 + $C -o $Tcvt$E $Tcvt.s + -$Tcvt$E $Tcvt.1 + fc $(TARGET)\tst\cvt.1bk $Tcvt.1 +$Tfields.s: tst\fields.c tst\fields.0 all + -$C -S -Wf-errout=$Tfields.2 -o $Tfields.s tst/fields.c + fc $(TARGET)\tst\fields.sbk $Tfields.s + fc $(TARGET)\tst\fields.2bk $Tfields.2 + $C -o $Tfields$E $Tfields.s + -$Tfields$E $Tfields.1 + fc $(TARGET)\tst\fields.1bk $Tfields.1 +$Tfront.s: tst\front.c tst\front.0 all + -$C -S -Wf-errout=$Tfront.2 -o $Tfront.s tst/front.c + fc $(TARGET)\tst\front.sbk $Tfront.s + fc $(TARGET)\tst\front.2bk $Tfront.2 +$Tincr.s: tst\incr.c tst\incr.0 all + -$C -S -Wf-errout=$Tincr.2 -o $Tincr.s tst/incr.c + fc $(TARGET)\tst\incr.sbk $Tincr.s + fc $(TARGET)\tst\incr.2bk $Tincr.2 + $C -o $Tincr$E $Tincr.s + -$Tincr$E $Tincr.1 + fc $(TARGET)\tst\incr.1bk $Tincr.1 +$Tinit.s: tst\init.c tst\init.0 all + -$C -S -Wf-errout=$Tinit.2 -o $Tinit.s tst/init.c + fc $(TARGET)\tst\init.sbk $Tinit.s + fc $(TARGET)\tst\init.2bk $Tinit.2 + $C -o $Tinit$E $Tinit.s + -$Tinit$E $Tinit.1 + fc $(TARGET)\tst\init.1bk $Tinit.1 +$Tlimits.s: tst\limits.c tst\limits.0 all + -$C -S -Wf-errout=$Tlimits.2 -o $Tlimits.s tst/limits.c + fc $(TARGET)\tst\limits.sbk $Tlimits.s + fc $(TARGET)\tst\limits.2bk $Tlimits.2 + $C -o $Tlimits$E $Tlimits.s + -$Tlimits$E $Tlimits.1 + fc $(TARGET)\tst\limits.1bk $Tlimits.1 +$Tparanoia.s: tst\paranoia.c tst\paranoia.0 all + -$C -S -Wf-errout=$Tparanoia.2 -o $Tparanoia.s tst/paranoia.c + fc $(TARGET)\tst\paranoia.sbk $Tparanoia.s + fc $(TARGET)\tst\paranoia.2bk $Tparanoia.2 + $C -o $Tparanoia$E $Tparanoia.s + -$Tparanoia$E $Tparanoia.1 + fc $(TARGET)\tst\paranoia.1bk $Tparanoia.1 +$Tsort.s: tst\sort.c tst\sort.0 all + -$C -S -Wf-errout=$Tsort.2 -o $Tsort.s tst/sort.c + fc $(TARGET)\tst\sort.sbk $Tsort.s + fc $(TARGET)\tst\sort.2bk $Tsort.2 + $C -o $Tsort$E $Tsort.s + -$Tsort$E $Tsort.1 + fc $(TARGET)\tst\sort.1bk $Tsort.1 +$Tspill.s: tst\spill.c tst\spill.0 all + -$C -S -Wf-errout=$Tspill.2 -o $Tspill.s tst/spill.c + fc $(TARGET)\tst\spill.sbk $Tspill.s + fc $(TARGET)\tst\spill.2bk $Tspill.2 + $C -o $Tspill$E $Tspill.s + -$Tspill$E $Tspill.1 + fc $(TARGET)\tst\spill.1bk $Tspill.1 +$Tstdarg.s: tst\stdarg.c tst\stdarg.0 all + -$C -S -Wf-errout=$Tstdarg.2 -o $Tstdarg.s tst/stdarg.c + fc $(TARGET)\tst\stdarg.sbk $Tstdarg.s + fc $(TARGET)\tst\stdarg.2bk $Tstdarg.2 + $C -o $Tstdarg$E $Tstdarg.s + -$Tstdarg$E $Tstdarg.1 + fc $(TARGET)\tst\stdarg.1bk $Tstdarg.1 +$Tstruct.s: tst\struct.c tst\struct.0 all + -$C -S -Wf-errout=$Tstruct.2 -o $Tstruct.s tst/struct.c + fc $(TARGET)\tst\struct.sbk $Tstruct.s + fc $(TARGET)\tst\struct.2bk $Tstruct.2 + $C -o $Tstruct$E $Tstruct.s + -$Tstruct$E $Tstruct.1 + fc $(TARGET)\tst\struct.1bk $Tstruct.1 +$Tswitch.s: tst\switch.c tst\switch.0 all + -$C -S -Wf-errout=$Tswitch.2 -o $Tswitch.s tst/switch.c + fc $(TARGET)\tst\switch.sbk $Tswitch.s + fc $(TARGET)\tst\switch.2bk $Tswitch.2 + $C -o $Tswitch$E $Tswitch.s + -$Tswitch$E $Tswitch.1 + fc $(TARGET)\tst\switch.1bk $Tswitch.1 +$Twf1.s: tst\wf1.c tst\wf1.0 all + -$C -S -Wf-errout=$Twf1.2 -o $Twf1.s tst/wf1.c + fc $(TARGET)\tst\wf1.sbk $Twf1.s + fc $(TARGET)\tst\wf1.2bk $Twf1.2 + $C -o $Twf1$E $Twf1.s + -$Twf1$E $Twf1.1 + fc $(TARGET)\tst\wf1.1bk $Twf1.1 +$Tyacc.s: tst\yacc.c tst\yacc.0 all + -$C -S -Wf-errout=$Tyacc.2 -o $Tyacc.s tst/yacc.c + fc $(TARGET)\tst\yacc.sbk $Tyacc.s + fc $(TARGET)\tst\yacc.2bk $Tyacc.2 + $C -o $Tyacc$E $Tyacc.s + -$Tyacc$E $Tyacc.1 + fc $(TARGET)\tst\yacc.1bk $Tyacc.1 + +testclean: + -del /q $T8q$E $T8q.s $T8q.2 $T8q.1 + -del /q $Tarray$E $Tarray.s $Tarray.2 $Tarray.1 + -del /q $Tcf$E $Tcf.s $Tcf.2 $Tcf.1 + -del /q $Tcq$E $Tcq.s $Tcq.2 $Tcq.1 + -del /q $Tcvt$E $Tcvt.s $Tcvt.2 $Tcvt.1 + -del /q $Tfields$E $Tfields.s $Tfields.2 $Tfields.1 + -del /q $Tfront$E $Tfront.s $Tfront.2 $Tfront.1 + -del /q $Tincr$E $Tincr.s $Tincr.2 $Tincr.1 + -del /q $Tinit$E $Tinit.s $Tinit.2 $Tinit.1 + -del /q $Tlimits$E $Tlimits.s $Tlimits.2 $Tlimits.1 + -del /q $Tparanoia$E $Tparanoia.s $Tparanoia.2 $Tparanoia.1 + -del /q $Tsort$E $Tsort.s $Tsort.2 $Tsort.1 + -del /q $Tspill$E $Tspill.s $Tspill.2 $Tspill.1 + -del /q $Tstdarg$E $Tstdarg.s $Tstdarg.2 $Tstdarg.1 + -del /q $Tstruct$E $Tstruct.s $Tstruct.2 $Tstruct.1 + -del /q $Tswitch$E $Tswitch.s $Tswitch.2 $Tswitch.1 + -del /q $Twf1$E $Twf1.s $Twf1.2 $Twf1.1 + -del /q $Tyacc$E $Tyacc.s $Tyacc.2 $Tyacc.1 + +clean:: testclean + -del /q $B*$O + -del /q $Bdagcheck.c $Balpha.c $Bmips.c $Bx86.c $Bsparc.c $Bx86linux.c $Bgram.c + -del /q $Brcc.c $Brcc.h + -del /q $Bq3rcc1$E $Brcc1$E $B1rcc$E $B2rcc$E + -del /q $B*.ilk + +clobber:: clean + -del /q $Bq3rcc$E $B2html$E $Bpass2$E $Blburg$E $Bq3cpp$E $Blcc$E $Bbprint$E $B*$A + -del /q $B*.pdb $B*.pch + +RCCSRCS=src/alloc.c \ + src/bind.c \ + src/dag.c \ + src/decl.c \ + src/enode.c \ + src/error.c \ + src/expr.c \ + src/event.c \ + src/init.c \ + src/inits.c \ + src/input.c \ + src/lex.c \ + src/list.c \ + src/main.c \ + src/output.c \ + src/prof.c \ + src/profio.c \ + src/simp.c \ + src/stmt.c \ + src/string.c \ + src/sym.c \ + src/trace.c \ + src/tree.c \ + src/types.c \ + src/null.c \ + src/symbolic.c \ + src/bytecode.c \ + src/gen.c \ + src/stab.c \ + $Bdagcheck.c \ + $Balpha.c \ + $Bmips.c \ + $Bsparc.c \ + $Bx86linux.c \ + $Bx86.c + +C=$Blcc -A -d0.6 -Wo-lccdir=$(BUILDDIR) -Isrc -I$(BUILDDIR) +triple: $Bq3rcc$E $Blcc$E $Bq3cpp$E + $C -o $B1rcc$E -B$B $(RCCSRCS) + $C -o $B2rcc$E -B$B1 $(RCCSRCS) + fc /b $B1rcc$E $B2rcc$E diff --git a/code/tools/lcc/mips/irix/tst/8q.1bk b/code/tools/lcc/mips/irix/tst/8q.1bk new file mode 100644 index 0000000..7ed6437 --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/8q.1bk @@ -0,0 +1,92 @@ +1 5 8 6 3 7 2 4 +1 6 8 3 7 4 2 5 +1 7 4 6 8 2 5 3 +1 7 5 8 2 4 6 3 +2 4 6 8 3 1 7 5 +2 5 7 1 3 8 6 4 +2 5 7 4 1 8 6 3 +2 6 1 7 4 8 3 5 +2 6 8 3 1 4 7 5 +2 7 3 6 8 5 1 4 +2 7 5 8 1 4 6 3 +2 8 6 1 3 5 7 4 +3 1 7 5 8 2 4 6 +3 5 2 8 1 7 4 6 +3 5 2 8 6 4 7 1 +3 5 7 1 4 2 8 6 +3 5 8 4 1 7 2 6 +3 6 2 5 8 1 7 4 +3 6 2 7 1 4 8 5 +3 6 2 7 5 1 8 4 +3 6 4 1 8 5 7 2 +3 6 4 2 8 5 7 1 +3 6 8 1 4 7 5 2 +3 6 8 1 5 7 2 4 +3 6 8 2 4 1 7 5 +3 7 2 8 5 1 4 6 +3 7 2 8 6 4 1 5 +3 8 4 7 1 6 2 5 +4 1 5 8 2 7 3 6 +4 1 5 8 6 3 7 2 +4 2 5 8 6 1 3 7 +4 2 7 3 6 8 1 5 +4 2 7 3 6 8 5 1 +4 2 7 5 1 8 6 3 +4 2 8 5 7 1 3 6 +4 2 8 6 1 3 5 7 +4 6 1 5 2 8 3 7 +4 6 8 2 7 1 3 5 +4 6 8 3 1 7 5 2 +4 7 1 8 5 2 6 3 +4 7 3 8 2 5 1 6 +4 7 5 2 6 1 3 8 +4 7 5 3 1 6 8 2 +4 8 1 3 6 2 7 5 +4 8 1 5 7 2 6 3 +4 8 5 3 1 7 2 6 +5 1 4 6 8 2 7 3 +5 1 8 4 2 7 3 6 +5 1 8 6 3 7 2 4 +5 2 4 6 8 3 1 7 +5 2 4 7 3 8 6 1 +5 2 6 1 7 4 8 3 +5 2 8 1 4 7 3 6 +5 3 1 6 8 2 4 7 +5 3 1 7 2 8 6 4 +5 3 8 4 7 1 6 2 +5 7 1 3 8 6 4 2 +5 7 1 4 2 8 6 3 +5 7 2 4 8 1 3 6 +5 7 2 6 3 1 4 8 +5 7 2 6 3 1 8 4 +5 7 4 1 3 8 6 2 +5 8 4 1 3 6 2 7 +5 8 4 1 7 2 6 3 +6 1 5 2 8 3 7 4 +6 2 7 1 3 5 8 4 +6 2 7 1 4 8 5 3 +6 3 1 7 5 8 2 4 +6 3 1 8 4 2 7 5 +6 3 1 8 5 2 4 7 +6 3 5 7 1 4 2 8 +6 3 5 8 1 4 2 7 +6 3 7 2 4 8 1 5 +6 3 7 2 8 5 1 4 +6 3 7 4 1 8 2 5 +6 4 1 5 8 2 7 3 +6 4 2 8 5 7 1 3 +6 4 7 1 3 5 2 8 +6 4 7 1 8 2 5 3 +6 8 2 4 1 7 5 3 +7 1 3 8 6 4 2 5 +7 2 4 1 8 5 3 6 +7 2 6 3 1 4 8 5 +7 3 1 6 8 5 2 4 +7 3 8 2 5 1 6 4 +7 4 2 5 8 1 3 6 +7 4 2 8 6 1 3 5 +7 5 3 1 6 8 2 4 +8 2 4 1 7 5 3 6 +8 2 5 3 1 7 4 6 +8 3 1 6 2 5 7 4 +8 4 1 3 6 2 7 5 diff --git a/code/tools/lcc/mips/irix/tst/8q.2bk b/code/tools/lcc/mips/irix/tst/8q.2bk new file mode 100644 index 0000000..d4dc0ed --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/8q.2bk @@ -0,0 +1,2 @@ +tst/8q.c:30: warning: missing return value +tst/8q.c:39: warning: missing return value diff --git a/code/tools/lcc/mips/irix/tst/8q.sbk b/code/tools/lcc/mips/irix/tst/8q.sbk new file mode 100644 index 0000000..9e5d75f --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/8q.sbk @@ -0,0 +1,169 @@ +.set reorder +.globl main +.text +.text +.align 2 +.ent main +main: +.frame $sp,32,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-32 +.mask 0xc2000000,-8 +.cprestore 16 +sw $30,20($sp) +sw $31,24($sp) +move $30,$0 +L.2: +sll $24,$30,2 +la $15,1 +sw $15,down($24) +sw $15,up($24) +L.3: +la $30,1($30) +la $24,15 +blt $30,$24,L.2 +move $30,$0 +L.6: +sll $24,$30,2 +la $15,1 +sw $15,rows($24) +L.7: +la $30,1($30) +la $24,8 +blt $30,$24,L.6 +move $4,$0 +jal queens +move $2,$0 +L.1: +lw $25,16($sp) +lw $30,20($sp) +lw $31,24($sp) +addu $sp,$sp,32 +j $31 +.end main +.globl queens +.text +.align 2 +.ent queens +queens: +.frame $sp,32,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-32 +.mask 0xc2800000,-4 +sw $23,16($sp) +.cprestore 20 +sw $30,24($sp) +sw $31,28($sp) +move $30,$4 +move $23,$0 +L.11: +sll $15,$23,2 +lw $15,rows($15) +beq $15,$0,L.15 +subu $15,$23,$30 +sll $15,$15,2 +lw $15,up+28($15) +beq $15,$0,L.15 +addu $15,$23,$30 +sll $15,$15,2 +lw $15,down($15) +beq $15,$0,L.15 +addu $15,$23,$30 +sll $15,$15,2 +sw $0,down($15) +subu $15,$23,$30 +sll $15,$15,2 +sw $0,up+28($15) +sll $15,$23,2 +sw $0,rows($15) +sll $24,$30,2 +sw $23,x($24) +la $24,7 +bne $30,$24,L.19 +jal print +b L.20 +L.19: +la $4,1($30) +jal queens +L.20: +la $24,1 +addu $15,$23,$30 +sll $15,$15,2 +sw $24,down($15) +subu $15,$23,$30 +sll $15,$15,2 +sw $24,up+28($15) +sll $15,$23,2 +sw $24,rows($15) +L.15: +L.12: +la $23,1($23) +la $24,8 +blt $23,$24,L.11 +move $2,$0 +L.10: +lw $23,16($sp) +lw $25,20($sp) +lw $30,24($sp) +lw $31,28($sp) +addu $sp,$sp,32 +j $31 +.end queens +.globl print +.text +.align 2 +.ent print +print: +.frame $sp,32,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-32 +.mask 0xc2000000,-8 +.cprestore 16 +sw $30,20($sp) +sw $31,24($sp) +move $30,$0 +L.23: +la $4,L.27 +sll $24,$30,2 +lw $24,x($24) +la $5,49($24) +jal printf +L.24: +la $30,1($30) +la $24,8 +blt $30,$24,L.23 +la $4,L.28 +jal printf +move $2,$0 +L.22: +lw $25,16($sp) +lw $30,20($sp) +lw $31,24($sp) +addu $sp,$sp,32 +j $31 +.end print +.globl x +.comm x,32 +.globl rows +.comm rows,32 +.globl down +.comm down,60 +.globl up +.comm up,60 +.rdata +.align 0 +L.28: +.byte 10 +.byte 0 +.align 0 +L.27: +.byte 37 +.byte 99 +.byte 32 +.byte 0 diff --git a/code/tools/lcc/mips/irix/tst/array.1bk b/code/tools/lcc/mips/irix/tst/array.1bk new file mode 100644 index 0000000..4d3817c --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/array.1bk @@ -0,0 +1,4 @@ + 0 1 2 3 1000 1001 1002 1003 2000 2001 2002 2003 + 0 1 2 3 1000 1001 1002 1003 2000 2001 2002 2003 + 0 1 2 3 1000 1001 1002 1003 2000 2001 2002 2003 + 0 1 2 3 1000 1001 1002 1003 2000 2001 2002 2003 diff --git a/code/tools/lcc/mips/irix/tst/array.2bk b/code/tools/lcc/mips/irix/tst/array.2bk new file mode 100644 index 0000000..c8cf31e --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/array.2bk @@ -0,0 +1,2 @@ +tst/array.c:33: warning: missing return value +tst/array.c:48: warning: missing return value diff --git a/code/tools/lcc/mips/irix/tst/array.sbk b/code/tools/lcc/mips/irix/tst/array.sbk new file mode 100644 index 0000000..ef5edd9 --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/array.sbk @@ -0,0 +1,235 @@ +.set reorder +.globl main +.text +.text +.align 2 +.ent main +main: +.frame $sp,88,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-88 +.mask 0xc2c00000,-56 +sw $22,16($sp) +sw $23,20($sp) +.cprestore 24 +sw $30,28($sp) +sw $31,32($sp) +move $23,$0 +L.2: +move $30,$0 +L.6: +sll $24,$30,2 +sll $15,$23,4 +la $15,x($15) +addu $24,$24,$15 +la $15,1000 +mul $15,$15,$23 +addu $15,$15,$30 +sw $15,($24) +L.7: +la $30,1($30) +la $24,4 +blt $30,$24,L.6 +sll $24,$23,2 +sll $15,$23,4 +la $15,x($15) +sw $15,y($24) +L.3: +la $23,1($23) +la $24,3 +blt $23,$24,L.2 +jal f +move $23,$0 +L.10: +sll $24,$23,4 +la $15,-48+88($sp) +addu $24,$24,$15 +move $22,$24 +sll $15,$23,2 +sw $24,y($15) +move $30,$0 +L.14: +sll $24,$30,2 +addu $15,$24,$22 +sll $14,$23,4 +la $14,x($14) +addu $24,$24,$14 +lw $24,($24) +sw $24,($15) +L.15: +la $30,1($30) +la $24,4 +blt $30,$24,L.14 +L.11: +la $23,1($23) +la $24,3 +blt $23,$24,L.10 +la $4,-48+88($sp) +la $5,y +jal g +move $2,$0 +L.1: +lw $22,16($sp) +lw $23,20($sp) +lw $25,24($sp) +lw $30,28($sp) +lw $31,32($sp) +addu $sp,$sp,88 +j $31 +.end main +.globl f +.text +.align 2 +.ent f +f: +.frame $sp,32,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-32 +.mask 0xc2800000,-4 +sw $23,16($sp) +.cprestore 20 +sw $30,24($sp) +sw $31,28($sp) +move $23,$0 +L.19: +move $30,$0 +L.23: +la $4,L.27 +sll $24,$30,2 +sll $15,$23,4 +la $15,x($15) +addu $24,$24,$15 +lw $5,($24) +jal printf +L.24: +la $30,1($30) +la $24,4 +blt $30,$24,L.23 +L.20: +la $23,1($23) +la $24,3 +blt $23,$24,L.19 +la $4,L.28 +jal printf +move $23,$0 +L.29: +move $30,$0 +L.33: +la $4,L.27 +sll $24,$30,2 +sll $15,$23,2 +lw $15,y($15) +addu $24,$24,$15 +lw $5,($24) +jal printf +L.34: +la $30,1($30) +la $24,4 +blt $30,$24,L.33 +L.30: +la $23,1($23) +la $24,3 +blt $23,$24,L.29 +la $4,L.28 +jal printf +move $2,$0 +L.18: +lw $23,16($sp) +lw $25,20($sp) +lw $30,24($sp) +lw $31,28($sp) +addu $sp,$sp,32 +j $31 +.end f +.globl g +.text +.align 2 +.ent g +g: +.frame $sp,40,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-40 +.mask 0xc2e00000,-4 +sw $21,16($sp) +sw $22,20($sp) +sw $23,24($sp) +.cprestore 28 +sw $30,32($sp) +sw $31,36($sp) +move $30,$4 +move $23,$5 +move $21,$0 +L.38: +move $22,$0 +L.42: +la $4,L.27 +sll $24,$22,2 +sll $15,$21,4 +addu $15,$15,$30 +addu $24,$24,$15 +lw $5,($24) +jal printf +L.43: +la $22,1($22) +la $24,4 +blt $22,$24,L.42 +L.39: +la $21,1($21) +la $24,3 +blt $21,$24,L.38 +la $4,L.28 +jal printf +move $21,$0 +L.46: +move $22,$0 +L.50: +la $4,L.27 +sll $24,$22,2 +sll $15,$21,2 +addu $15,$15,$23 +lw $15,($15) +addu $24,$24,$15 +lw $5,($24) +jal printf +L.51: +la $22,1($22) +la $24,4 +blt $22,$24,L.50 +L.47: +la $21,1($21) +la $24,3 +blt $21,$24,L.46 +la $4,L.28 +jal printf +move $2,$0 +L.37: +lw $21,16($sp) +lw $22,20($sp) +lw $23,24($sp) +lw $25,28($sp) +lw $30,32($sp) +lw $31,36($sp) +addu $sp,$sp,40 +j $31 +.end g +.globl y +.comm y,12 +.globl x +.comm x,48 +.rdata +.align 0 +L.28: +.byte 10 +.byte 0 +.align 0 +L.27: +.byte 32 +.byte 37 +.byte 100 +.byte 0 diff --git a/code/tools/lcc/mips/irix/tst/cf.1bk b/code/tools/lcc/mips/irix/tst/cf.1bk new file mode 100644 index 0000000..9e331c5 --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/cf.1bk @@ -0,0 +1,51 @@ +char freq +011 8.1 +012 6.1 +040 11.9 +! 0.2 +" 1.5 +% 0.6 +& 0.4 +' 0.4 +( 2.9 +) 2.9 +* 0.8 ++ 1.3 +, 1.3 +- 0.4 +. 0.6 +/ 1.0 +0 2.5 +1 1.9 +2 0.6 +3 0.2 +7 0.4 +8 0.2 +; 3.8 +< 0.8 += 2.7 +> 0.2 +[ 1.5 +\ 0.8 +] 1.5 +a 3.1 +c 4.4 +e 2.3 +f 6.0 +g 1.3 +h 1.0 +i 5.0 +l 1.0 +m 0.2 +n 3.3 +o 2.1 +p 1.0 +q 0.4 +r 4.2 +s 0.6 +t 3.8 +u 1.2 +v 0.6 +w 0.2 +{ 0.6 +} 0.6 diff --git a/code/tools/lcc/mips/irix/tst/cf.2bk b/code/tools/lcc/mips/irix/tst/cf.2bk new file mode 100644 index 0000000..e69de29 diff --git a/code/tools/lcc/mips/irix/tst/cf.sbk b/code/tools/lcc/mips/irix/tst/cf.sbk new file mode 100644 index 0000000..89fdaf8 --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/cf.sbk @@ -0,0 +1,153 @@ +.set reorder +.globl main +.text +.text +.align 2 +.ent main +main: +.frame $sp,48,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-48 +.fmask 0xc0000000,-32 +.mask 0xc2c00000,-8 +s.d $f30,16($sp) +sw $22,24($sp) +sw $23,28($sp) +.cprestore 32 +sw $30,36($sp) +sw $31,40($sp) +sw $4,48($sp) +sw $5,52($sp) +lw $24,0+48($sp) +la $15,1 +bgt $24,$15,L.2 +l.s $f30,L.4 +b L.3 +L.2: +lw $24,4+48($sp) +lw $4,4($24) +jal atof +l.s $f16,L.5 +div.s $f30,$f0,$f16 +L.3: +move $30,$0 +L.6: +move $24,$30 +la $30,1($24) +sll $24,$24,2 +l.s $f18,L.4 +s.s $f18,f($24) +L.7: +la $24,127 +ble $30,$24,L.6 +move $23,$0 +b L.11 +L.10: +sll $24,$22,2 +la $24,f($24) +l.s $f18,($24) +l.s $f16,L.13 +add.s $f18,$f18,$f16 +s.s $f18,($24) +la $23,1($23) +L.11: +jal getchar +move $22,$2 +la $15,-1 +bne $2,$15,L.10 +la $4,L.14 +jal printf +move $30,$0 +L.15: +sll $24,$30,2 +l.s $f18,f($24) +l.s $f16,L.4 +c.eq.s $f18,$f16; bc1t L.19 +mtc1 $23,$f16; cvt.s.w $f16,$f16 +div.s $f18,$f18,$f16 +c.lt.s $f18,$f30; bc1t L.19 +la $24,32 +bgt $30,$24,L.21 +la $4,L.23 +move $5,$30 +jal printf +b L.22 +L.21: +la $4,L.24 +move $5,$30 +jal printf +L.22: +la $4,L.25 +l.s $f18,L.5 +sll $24,$30,2 +l.s $f16,f($24) +mul.s $f18,$f18,$f16 +mtc1 $23,$f16; cvt.s.w $f16,$f16 +div.s $f18,$f18,$f16 +cvt.d.s $f18,$f18 +mfc1.d $6,$f18 +jal printf +L.19: +L.16: +la $30,1($30) +la $24,127 +ble $30,$24,L.15 +move $2,$0 +L.1: +l.d $f30,16($sp) +lw $22,24($sp) +lw $23,28($sp) +lw $25,32($sp) +lw $30,36($sp) +lw $31,40($sp) +addu $sp,$sp,48 +j $31 +.end main +.globl f +.comm f,512 +.rdata +.align 0 +L.25: +.byte 9 +.byte 37 +.byte 46 +.byte 49 +.byte 102 +.byte 10 +.byte 0 +.align 0 +L.24: +.byte 37 +.byte 99 +.byte 0 +.align 0 +L.23: +.byte 37 +.byte 48 +.byte 51 +.byte 111 +.byte 0 +.align 0 +L.14: +.byte 99 +.byte 104 +.byte 97 +.byte 114 +.byte 9 +.byte 102 +.byte 114 +.byte 101 +.byte 113 +.byte 10 +.byte 0 +.align 2 +L.13: +.word 0x3f800000 +.align 2 +L.5: +.word 0x42c80000 +.align 2 +L.4: +.word 0x0 diff --git a/code/tools/lcc/mips/irix/tst/cq.1bk b/code/tools/lcc/mips/irix/tst/cq.1bk new file mode 100644 index 0000000..ec956b7 --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/cq.1bk @@ -0,0 +1,48 @@ +Section s22 returned 0. +Decimal and octal/hex constants sometimes give + different results when assigned to longs. +Decimal and octal/hex constants sometimes give + different results when assigned to longs. +Section s241 returned 0. +Section s243 returned 0. +Section s244 returned 0. +Section s25 returned 0. + 8 bits in chars. + 32 bits in ints. + 16 bits in shorts. + 32 bits in longs. + 32 bits in unsigneds. + 32 bits in floats. + 64 bits in doubles. +1.192093e-07 is the least number that can be added to 1. (float). +2.220446e-16 is the least number that can be added to 1. (double). +Section s26 returned 0. +Section s4 returned 0. +Section s61 returned 0. +Section s626 returned 0. +Section s71 returned 0. +Section s72 returned 0. +Section s757 returned 0. +Section s7813 returned 0. +Section s714 returned 0. +Section s715 returned 0. +Register count for char is unreliable. +Register count for pointer is unreliable. +Register count for int is unreliable. +Section s81 returned 0. +Section s84 returned 0. +char alignment: 1 +short alignment: 2 +int alignment: 4 +long alignment: 4 +unsigned alignment: 4 +float alignment: 4 +double alignment: 8 +Sign extension in fields +Be especially careful with 1-bit fields! +Section s85 returned 0. +Section s86 returned 0. +Section s88 returned 0. +Section s9 returned 0. + +No errors detected. diff --git a/code/tools/lcc/mips/irix/tst/cq.2bk b/code/tools/lcc/mips/irix/tst/cq.2bk new file mode 100644 index 0000000..7c6ba5e --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/cq.2bk @@ -0,0 +1,25 @@ +tst/cq.c:394: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:394: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:394: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:395: warning: overflow in constant `4294967296' +tst/cq.c:395: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:395: warning: overflow in constant `040000000000' +tst/cq.c:395: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:395: warning: overflow in constant `0x100000000' +tst/cq.c:395: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:396: warning: overflow in constant `68719476735' +tst/cq.c:396: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:396: warning: overflow in constant `0777777777777' +tst/cq.c:396: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:396: warning: overflow in constant `0xfffffffff' +tst/cq.c:396: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:397: warning: overflow in constant `68719476736' +tst/cq.c:397: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:397: warning: overflow in constant `01000000000000' +tst/cq.c:397: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:397: warning: overflow in constant `0x1000000000' +tst/cq.c:397: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:533: warning: missing return value +tst/cq.c:1169: warning: missing return value +tst/cq.c:5294: warning: unreachable code +tst/cq.c:5303: warning: missing return value diff --git a/code/tools/lcc/mips/irix/tst/cq.sbk b/code/tools/lcc/mips/irix/tst/cq.sbk new file mode 100644 index 0000000..bc4e80e --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/cq.sbk @@ -0,0 +1,13620 @@ +.set reorder +.data +.align 2 +L.2: +.word s22 +.word s241 +.word s243 +.word s244 +.word s25 +.word s26 +.word s4 +.word s61 +.word s626 +.word s71 +.word s72 +.word s757 +.word s7813 +.word s714 +.word s715 +.word s81 +.word s84 +.word s85 +.word s86 +.word s88 +.word s9 +.lcomm L.3,68 +.lcomm L.4,4 +.globl main +.text +.text +.align 2 +.ent main +main: +.frame $sp,32,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-32 +.mask 0xc2000000,-8 +.cprestore 16 +sw $30,20($sp) +sw $31,24($sp) +sw $4,32($sp) +sw $5,36($sp) +la $24,1 +sw $24,L.3+36 +la $24,1 +sw $24,L.3+40 +la $24,1 +sw $24,L.3+44 +la $24,1 +sw $24,L.3+48 +la $24,L.3 +sw $24,L.4 +move $30,$0 +b L.12 +L.9: +lw $4,L.4 +sll $24,$30,2 +lw $25,L.2($24) +jal $25 +sw $2,L.3+52 +lw $24,L.3+56 +lw $15,L.3+52 +addu $24,$24,$15 +sw $24,L.3+56 +lw $24,L.3+36 +beq $24,$0,L.17 +la $4,L.20 +la $5,L.3+60 +lw $6,L.3+52 +jal printf +L.17: +L.10: +la $30,1($30) +L.12: +move $24,$30 +la $15,21 +bltu $24,$15,L.9 +lw $24,L.3+56 +bne $24,$0,L.23 +la $4,L.26 +jal printf +b L.24 +L.23: +la $4,L.27 +jal printf +L.24: +move $2,$0 +L.1: +lw $25,16($sp) +lw $30,20($sp) +lw $31,24($sp) +addu $sp,$sp,32 +j $31 +.end main +.data +.align 0 +L.29: +.byte 115 +.byte 50 +.byte 50 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.sdata +.align 0 +L.30: +.byte 115 +.byte 50 +.byte 50 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s22 +.text +.text +.align 2 +.ent s22 +s22: +.frame $sp,56,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-56 +.mask 0xc2e00000,-20 +sw $21,16($sp) +sw $22,20($sp) +sw $23,24($sp) +.cprestore 28 +sw $30,32($sp) +sw $31,36($sp) +sw $4,56($sp) +move $22,$0 +la $30,L.30 +lw $24,0+56($sp) +la $23,60($24) +L.31: +L.32: +move $24,$23 +la $23,1($24) +move $15,$30 +la $30,1($15) +lb $15,($15) +sb $15,($24) +sll $24,$15,8*(4-1); sra $24,$24,8*(4-1) +bne $24,$0,L.31 +la $21,1 +la $24,2 +sw $24,-8+56($sp) +la $24,3 +sw $24,-12+56($sp) +la $24,4 +sw $24,-4+56($sp) +lw $24,-8+56($sp) +addu $24,$21,$24 +lw $15,-12+56($sp) +addu $24,$24,$15 +lw $15,-4+56($sp) +addu $24,$24,$15 +la $15,10 +beq $24,$15,L.34 +la $22,1($22) +lw $24,0+56($sp) +lw $24,44($24) +beq $24,$0,L.36 +la $4,L.29 +la $5,1 +jal printf +L.36: +L.34: +la $24,2 +sw $24,-16+56($sp) +lw $24,-16+56($sp) +bne $24,$21,L.38 +la $22,4($22) +lw $24,0+56($sp) +lw $24,44($24) +beq $24,$0,L.40 +la $4,L.29 +la $5,4 +jal printf +L.40: +L.38: +move $2,$22 +L.28: +lw $21,16($sp) +lw $22,20($sp) +lw $23,24($sp) +lw $25,28($sp) +lw $30,32($sp) +lw $31,36($sp) +addu $sp,$sp,56 +j $31 +.end s22 +.data +.align 0 +L.43: +.byte 115 +.byte 50 +.byte 52 +.byte 49 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.sdata +.align 0 +L.44: +.byte 115 +.byte 50 +.byte 52 +.byte 49 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.data +.align 2 +L.45: +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x6 +.word 0x0 +.word 0x8 +.word 0x0 +.word 0xc +.word 0x0 +.word 0x10 +.word 0x0 +.word 0x12 +.word 0x0 +.word 0x14 +.word 0x0 +.word 0x18 +.word 0x0 +.word 0x1c +.word 0x0 +.word 0x1e +.word 0x0 +.word 0x20 +.word 0x0 +.word 0x24 +.globl s241 +.text +.text +.align 2 +.ent s241 +s241: +.frame $sp,520,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-520 +.mask 0xc2f00000,-480 +sw $20,16($sp) +sw $21,20($sp) +sw $22,24($sp) +sw $23,28($sp) +.cprestore 32 +sw $30,36($sp) +sw $31,40($sp) +move $30,$4 +move $20,$0 +sw $0,-472+520($sp) +la $22,L.44 +la $21,60($30) +L.46: +L.47: +move $24,$21 +la $21,1($24) +move $15,$22 +la $22,1($15) +lb $15,($15) +sb $15,($24) +sll $24,$15,8*(4-1); sra $24,$24,8*(4-1) +bne $24,$0,L.46 +b L.49 +la $20,1($20) +lw $24,44($30) +beq $24,$0,L.51 +la $4,L.43 +la $5,1 +jal printf +L.51: +L.49: +b L.53 +la $20,2($20) +lw $24,44($30) +beq $24,$0,L.55 +la $4,L.43 +la $5,2 +jal printf +L.55: +L.53: +b L.57 +la $20,4($20) +lw $24,44($30) +beq $24,$0,L.59 +la $4,L.43 +la $5,4 +jal printf +L.59: +L.57: +b L.61 +la $20,8($20) +lw $24,44($30) +beq $24,$0,L.63 +la $4,L.43 +la $5,8 +jal printf +L.63: +L.61: +move $23,$0 +L.65: +sll $24,$23,2 +sw $23,L.45($24) +L.66: +la $23,1($23) +la $24,17 +blt $23,$24,L.65 +la $23,18 +L.69: +sll $24,$23,2 +la $24,L.45($24) +sw $24,-476+520($sp) +lw $4,($24) +jal pow2 +lw $15,-476+520($sp) +sw $2,($15) +sll $24,$23,2 +lw $15,L.45($24) +subu $15,$15,1 +sw $15,L.45-4($24) +la $23,2($23) +L.70: +la $24,39 +blt $23,$24,L.69 +sw $0,-156+520($sp) +sw $0,-312+520($sp) +sw $0,-468+520($sp) +la $24,1 +sw $24,-152+520($sp) +la $24,1 +sw $24,-308+520($sp) +la $24,1 +sw $24,-464+520($sp) +la $24,2 +sw $24,-148+520($sp) +la $24,2 +sw $24,-304+520($sp) +la $24,2 +sw $24,-460+520($sp) +la $24,3 +sw $24,-144+520($sp) +la $24,3 +sw $24,-300+520($sp) +la $24,3 +sw $24,-456+520($sp) +la $24,4 +sw $24,-140+520($sp) +la $24,4 +sw $24,-296+520($sp) +la $24,4 +sw $24,-452+520($sp) +la $24,5 +sw $24,-136+520($sp) +la $24,5 +sw $24,-292+520($sp) +la $24,5 +sw $24,-448+520($sp) +la $24,6 +sw $24,-132+520($sp) +la $24,6 +sw $24,-288+520($sp) +la $24,6 +sw $24,-444+520($sp) +la $24,7 +sw $24,-128+520($sp) +la $24,7 +sw $24,-284+520($sp) +la $24,7 +sw $24,-440+520($sp) +la $24,8 +sw $24,-124+520($sp) +la $24,8 +sw $24,-280+520($sp) +la $24,8 +sw $24,-436+520($sp) +la $24,9 +sw $24,-120+520($sp) +la $24,9 +sw $24,-276+520($sp) +la $24,9 +sw $24,-432+520($sp) +la $24,10 +sw $24,-116+520($sp) +la $24,10 +sw $24,-272+520($sp) +la $24,10 +sw $24,-428+520($sp) +la $24,11 +sw $24,-112+520($sp) +la $24,11 +sw $24,-268+520($sp) +la $24,11 +sw $24,-424+520($sp) +la $24,12 +sw $24,-108+520($sp) +la $24,12 +sw $24,-264+520($sp) +la $24,12 +sw $24,-420+520($sp) +la $24,13 +sw $24,-104+520($sp) +la $24,13 +sw $24,-260+520($sp) +la $24,13 +sw $24,-416+520($sp) +la $24,14 +sw $24,-100+520($sp) +la $24,14 +sw $24,-256+520($sp) +la $24,14 +sw $24,-412+520($sp) +la $24,15 +sw $24,-96+520($sp) +la $24,15 +sw $24,-252+520($sp) +la $24,15 +sw $24,-408+520($sp) +la $24,16 +sw $24,-92+520($sp) +la $24,16 +sw $24,-248+520($sp) +la $24,16 +sw $24,-404+520($sp) +la $24,63 +sw $24,-88+520($sp) +la $24,63 +sw $24,-244+520($sp) +la $24,63 +sw $24,-400+520($sp) +la $24,64 +sw $24,-84+520($sp) +la $24,64 +sw $24,-240+520($sp) +la $24,64 +sw $24,-396+520($sp) +la $24,255 +sw $24,-80+520($sp) +la $24,255 +sw $24,-236+520($sp) +la $24,255 +sw $24,-392+520($sp) +la $24,256 +sw $24,-76+520($sp) +la $24,256 +sw $24,-232+520($sp) +la $24,256 +sw $24,-388+520($sp) +la $24,4095 +sw $24,-72+520($sp) +la $24,4095 +sw $24,-228+520($sp) +la $24,4095 +sw $24,-384+520($sp) +la $24,4096 +sw $24,-68+520($sp) +la $24,4096 +sw $24,-224+520($sp) +la $24,4096 +sw $24,-380+520($sp) +la $24,65535 +sw $24,-64+520($sp) +la $24,65535 +sw $24,-220+520($sp) +la $24,65535 +sw $24,-376+520($sp) +la $24,65536 +sw $24,-60+520($sp) +la $24,65536 +sw $24,-216+520($sp) +la $24,65536 +sw $24,-372+520($sp) +la $24,262143 +sw $24,-56+520($sp) +la $24,262143 +sw $24,-212+520($sp) +la $24,262143 +sw $24,-368+520($sp) +la $24,262144 +sw $24,-52+520($sp) +la $24,262144 +sw $24,-208+520($sp) +la $24,262144 +sw $24,-364+520($sp) +la $24,1048575 +sw $24,-48+520($sp) +la $24,1048575 +sw $24,-204+520($sp) +la $24,1048575 +sw $24,-360+520($sp) +la $24,1048576 +sw $24,-44+520($sp) +la $24,1048576 +sw $24,-200+520($sp) +la $24,1048576 +sw $24,-356+520($sp) +la $24,16777215 +sw $24,-40+520($sp) +la $24,16777215 +sw $24,-196+520($sp) +la $24,16777215 +sw $24,-352+520($sp) +la $24,16777216 +sw $24,-36+520($sp) +la $24,16777216 +sw $24,-192+520($sp) +la $24,16777216 +sw $24,-348+520($sp) +la $24,268435455 +sw $24,-32+520($sp) +la $24,268435455 +sw $24,-188+520($sp) +la $24,268435455 +sw $24,-344+520($sp) +la $24,268435456 +sw $24,-28+520($sp) +la $24,268435456 +sw $24,-184+520($sp) +la $24,268435456 +sw $24,-340+520($sp) +la $24,1073741823 +sw $24,-24+520($sp) +la $24,1073741823 +sw $24,-180+520($sp) +la $24,1073741823 +sw $24,-336+520($sp) +la $24,1073741824 +sw $24,-20+520($sp) +la $24,1073741824 +sw $24,-176+520($sp) +la $24,1073741824 +sw $24,-332+520($sp) +la $24,0xffffffff +sw $24,-16+520($sp) +la $24,0xffffffff +sw $24,-172+520($sp) +la $24,0xffffffff +sw $24,-328+520($sp) +la $24,0xffffffff +sw $24,-12+520($sp) +la $24,0xffffffff +sw $24,-168+520($sp) +la $24,0xffffffff +sw $24,-324+520($sp) +la $24,0xffffffff +sw $24,-8+520($sp) +la $24,0xffffffff +sw $24,-164+520($sp) +la $24,0xffffffff +sw $24,-320+520($sp) +la $24,0xffffffff +sw $24,-4+520($sp) +la $24,0xffffffff +sw $24,-160+520($sp) +la $24,0xffffffff +sw $24,-316+520($sp) +move $23,$0 +L.188: +sll $24,$23,2 +la $15,-156+520($sp) +addu $15,$24,$15 +lw $15,($15) +lw $14,L.45($24) +bne $14,$15,L.195 +la $14,-312+520($sp) +addu $14,$24,$14 +lw $14,($14) +bne $15,$14,L.195 +la $15,-468+520($sp) +addu $24,$24,$15 +lw $24,($24) +beq $14,$24,L.192 +L.195: +lw $24,40($30) +beq $24,$0,L.196 +la $4,L.198 +jal printf +la $4,L.199 +jal printf +L.196: +L.192: +L.189: +la $23,1($23) +la $24,39 +blt $23,$24,L.188 +lw $24,-472+520($sp) +beq $24,$0,L.200 +la $20,16 +L.200: +move $2,$20 +L.42: +lw $20,16($sp) +lw $21,20($sp) +lw $22,24($sp) +lw $23,28($sp) +lw $25,32($sp) +lw $30,36($sp) +lw $31,40($sp) +addu $sp,$sp,520 +j $31 +.end s241 +.globl pow2 +.text +.align 2 +.ent pow2 +pow2: +.frame $sp,8,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-8 +.mask 0x40000000,-8 +sw $30,0($sp) +la $30,1 +b L.204 +L.203: +sll $30,$30,1 +L.204: +move $24,$4 +subu $4,$24,1 +bne $24,$0,L.203 +move $2,$30 +L.202: +lw $30,0($sp) +addu $sp,$sp,8 +j $31 +.end pow2 +.data +.align 0 +L.207: +.byte 115 +.byte 50 +.byte 52 +.byte 51 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.sdata +.align 0 +L.208: +.byte 115 +.byte 50 +.byte 52 +.byte 51 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s243 +.text +.text +.align 2 +.ent s243 +s243: +.frame $sp,296,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-296 +.mask 0xc2c00000,-264 +sw $22,16($sp) +sw $23,20($sp) +.cprestore 24 +sw $30,28($sp) +sw $31,32($sp) +sw $4,296($sp) +move $22,$0 +la $30,L.208 +lw $24,0+296($sp) +la $23,60($24) +L.209: +L.210: +move $24,$23 +la $23,1($24) +move $15,$30 +la $30,1($15) +lb $15,($15) +sb $15,($24) +sll $24,$15,8*(4-1); sra $24,$24,8*(4-1) +bne $24,$0,L.209 +la $4,-256+296($sp) +jal zerofill +la $24,1 +sb $24,-159+296($sp) +la $24,1 +sb $24,-191+296($sp) +la $24,1 +sb $24,-130+296($sp) +la $24,1 +sb $24,-208+296($sp) +la $24,1 +sb $24,-158+296($sp) +la $24,1 +sb $24,-190+296($sp) +la $24,1 +sb $24,-223+296($sp) +la $24,1 +sb $24,-207+296($sp) +la $24,1 +sb $24,-157+296($sp) +la $24,1 +sb $24,-189+296($sp) +la $24,1 +sb $24,-222+296($sp) +la $24,1 +sb $24,-206+296($sp) +la $24,1 +sb $24,-156+296($sp) +la $24,1 +sb $24,-188+296($sp) +la $24,1 +sb $24,-221+296($sp) +la $24,1 +sb $24,-205+296($sp) +la $24,1 +sb $24,-155+296($sp) +la $24,1 +sb $24,-187+296($sp) +la $24,1 +sb $24,-219+296($sp) +la $24,1 +sb $24,-204+296($sp) +la $24,1 +sb $24,-154+296($sp) +la $24,1 +sb $24,-186+296($sp) +la $24,1 +sb $24,-218+296($sp) +la $24,1 +sb $24,-203+296($sp) +la $24,1 +sb $24,-153+296($sp) +la $24,1 +sb $24,-185+296($sp) +la $24,1 +sb $24,-216+296($sp) +la $24,1 +sb $24,-202+296($sp) +la $24,1 +sb $24,-152+296($sp) +la $24,1 +sb $24,-184+296($sp) +la $24,1 +sb $24,-215+296($sp) +la $24,1 +sb $24,-201+296($sp) +la $24,1 +sb $24,-151+296($sp) +la $24,1 +sb $24,-183+296($sp) +la $24,1 +sb $24,-161+296($sp) +la $24,1 +sb $24,-200+296($sp) +la $24,1 +sb $24,-150+296($sp) +la $24,1 +sb $24,-182+296($sp) +la $24,1 +sb $24,-195+296($sp) +la $24,1 +sb $24,-199+296($sp) +la $24,1 +sb $24,-149+296($sp) +la $24,1 +sb $24,-181+296($sp) +la $24,1 +sb $24,-211+296($sp) +la $24,1 +sb $24,-148+296($sp) +la $24,1 +sb $24,-180+296($sp) +la $24,1 +sb $24,-162+296($sp) +la $24,1 +sb $24,-147+296($sp) +la $24,1 +sb $24,-179+296($sp) +la $24,1 +sb $24,-132+296($sp) +la $24,1 +sb $24,-246+296($sp) +la $24,1 +sb $24,-146+296($sp) +la $24,1 +sb $24,-178+296($sp) +la $24,1 +sb $24,-247+296($sp) +la $24,1 +sb $24,-145+296($sp) +la $24,1 +sb $24,-177+296($sp) +la $24,1 +sb $24,-133+296($sp) +la $24,1 +sb $24,-248+296($sp) +la $24,1 +sb $24,-144+296($sp) +la $24,1 +sb $24,-176+296($sp) +la $24,1 +sb $24,-131+296($sp) +la $24,1 +sb $24,-243+296($sp) +la $24,1 +sb $24,-143+296($sp) +la $24,1 +sb $24,-175+296($sp) +la $24,1 +sb $24,-165+296($sp) +la $24,1 +sb $24,-244+296($sp) +la $24,1 +sb $24,-142+296($sp) +la $24,1 +sb $24,-174+296($sp) +la $24,1 +sb $24,-163+296($sp) +la $24,1 +sb $24,-141+296($sp) +la $24,1 +sb $24,-173+296($sp) +la $24,1 +sb $24,-213+296($sp) +la $24,1 +sb $24,-164+296($sp) +la $24,1 +sb $24,-140+296($sp) +la $24,1 +sb $24,-172+296($sp) +la $24,1 +sb $24,-197+296($sp) +la $24,1 +sb $24,-217+296($sp) +la $24,1 +sb $24,-139+296($sp) +la $24,1 +sb $24,-171+296($sp) +la $24,1 +sb $24,-214+296($sp) +la $24,1 +sb $24,-138+296($sp) +la $24,1 +sb $24,-170+296($sp) +la $24,1 +sb $24,-198+296($sp) +la $24,1 +sb $24,-256+296($sp) +sb $24,-137+296($sp) +la $24,1 +sb $24,-169+296($sp) +la $24,1 +sb $24,-196+296($sp) +la $24,1 +sb $24,-224+296($sp) +la $24,1 +sb $24,-136+296($sp) +la $24,1 +sb $24,-168+296($sp) +la $24,1 +sb $24,-194+296($sp) +la $24,1 +sb $24,-135+296($sp) +la $24,1 +sb $24,-167+296($sp) +la $24,1 +sb $24,-212+296($sp) +la $24,1 +sb $24,-134+296($sp) +la $24,1 +sb $24,-166+296($sp) +la $24,1 +sb $24,-210+296($sp) +la $24,1 +sb $24,-193+296($sp) +la $24,1 +sb $24,-209+296($sp) +la $4,-256+296($sp) +jal sumof +la $15,98 +beq $2,$15,L.309 +la $22,1($22) +lw $24,0+296($sp) +lw $24,44($24) +beq $24,$0,L.311 +la $4,L.207 +la $5,1 +jal printf +L.311: +L.309: +b L.313 +la $22,8($22) +lw $24,0+296($sp) +lw $24,44($24) +beq $24,$0,L.315 +la $4,L.207 +la $5,8 +jal printf +L.315: +L.313: +move $2,$22 +L.206: +lw $22,16($sp) +lw $23,20($sp) +lw $25,24($sp) +lw $30,28($sp) +lw $31,32($sp) +addu $sp,$sp,296 +j $31 +.end s243 +.globl zerofill +.text +.align 2 +.ent zerofill +zerofill: +.frame $sp,8,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-8 +.mask 0x40000000,-8 +sw $30,0($sp) +move $30,$0 +L.318: +move $24,$4 +la $4,1($24) +sb $0,($24) +L.319: +la $30,1($30) +la $24,256 +blt $30,$24,L.318 +move $2,$0 +L.317: +lw $30,0($sp) +addu $sp,$sp,8 +j $31 +.end zerofill +.globl sumof +.text +.align 2 +.ent sumof +sumof: +.frame $sp,16,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-16 +.mask 0x40c00000,-8 +sw $22,0($sp) +sw $23,4($sp) +sw $30,8($sp) +move $22,$4 +move $30,$0 +move $23,$0 +L.323: +move $24,$22 +la $22,1($24) +lb $24,($24) +addu $30,$30,$24 +L.324: +la $23,1($23) +la $24,256 +blt $23,$24,L.323 +move $2,$30 +L.322: +lw $22,0($sp) +lw $23,4($sp) +lw $30,8($sp) +addu $sp,$sp,16 +j $31 +.end sumof +.data +.align 0 +L.328: +.byte 115 +.byte 50 +.byte 52 +.byte 52 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.sdata +.align 0 +L.329: +.byte 115 +.byte 50 +.byte 52 +.byte 52 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s244 +.text +.text +.align 2 +.ent s244 +s244: +.frame $sp,112,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-112 +.mask 0xc2f00000,-72 +sw $20,16($sp) +sw $21,20($sp) +sw $22,24($sp) +sw $23,28($sp) +.cprestore 32 +sw $30,36($sp) +sw $31,40($sp) +sw $4,112($sp) +la $23,L.329 +lw $24,0+112($sp) +la $22,60($24) +L.330: +L.331: +move $24,$22 +la $22,1($24) +move $15,$23 +la $23,1($15) +lb $15,($15) +sb $15,($24) +sll $24,$15,8*(4-1); sra $24,$24,8*(4-1) +bne $24,$0,L.330 +move $20,$0 +move $21,$0 +l.d $f18,L.333 +s.d $f18,-64+112($sp) +s.d $f18,-56+112($sp) +l.d $f18,L.333 +s.d $f18,-48+112($sp) +l.d $f18,L.333 +s.d $f18,-40+112($sp) +l.d $f18,L.333 +s.d $f18,-32+112($sp) +l.d $f18,L.333 +s.d $f18,-24+112($sp) +l.d $f18,L.333 +s.d $f18,-16+112($sp) +l.d $f18,L.333 +s.d $f18,-8+112($sp) +move $21,$0 +move $30,$0 +L.341: +sll $24,$30,3 +la $15,-64+112($sp) +addu $15,$24,$15 +l.d $f18,($15) +la $15,-56+112($sp) +addu $24,$24,$15 +l.d $f16,($24) +c.eq.d $f18,$f16; bc1t L.345 +la $21,1 +L.345: +L.342: +la $30,1($30) +la $24,7 +blt $30,$24,L.341 +beq $21,$0,L.348 +lw $24,0+112($sp) +lw $24,44($24) +beq $24,$0,L.350 +la $4,L.328 +la $5,1 +jal printf +L.350: +la $20,1($20) +L.348: +b L.352 +lw $24,0+112($sp) +lw $24,44($24) +beq $24,$0,L.354 +la $4,L.328 +la $5,2 +jal printf +L.354: +la $20,2($20) +L.352: +move $2,$20 +L.327: +lw $20,16($sp) +lw $21,20($sp) +lw $22,24($sp) +lw $23,28($sp) +lw $25,32($sp) +lw $30,36($sp) +lw $31,40($sp) +addu $sp,$sp,112 +j $31 +.end s244 +.data +.align 0 +L.357: +.byte 115 +.byte 50 +.byte 53 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.sdata +.align 0 +L.358: +.byte 115 +.byte 50 +.byte 53 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s25 +.text +.text +.align 2 +.ent s25 +s25: +.frame $sp,56,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-56 +.mask 0xc2fe0000,-4 +sw $17,16($sp) +sw $18,20($sp) +sw $19,24($sp) +sw $20,28($sp) +sw $21,32($sp) +sw $22,36($sp) +sw $23,40($sp) +.cprestore 44 +sw $30,48($sp) +sw $31,52($sp) +move $30,$4 +la $20,L.358 +la $19,60($30) +L.359: +L.360: +move $24,$19 +la $19,1($24) +move $15,$20 +la $20,1($15) +lb $15,($15) +sb $15,($24) +sll $24,$15,8*(4-1); sra $24,$24,8*(4-1) +bne $24,$0,L.359 +move $18,$0 +la $22,L.362 +lb $24,1($22) +lb $15,($22) +bne $15,$24,L.366 +lb $15,2($22) +bne $24,$15,L.366 +la $24,46 +beq $15,$24,L.363 +L.366: +la $18,1($18) +lw $24,44($30) +beq $24,$0,L.367 +la $4,L.357 +la $5,1 +jal printf +L.367: +L.363: +lb $24,3($22) +beq $24,$0,L.369 +la $18,4($18) +lw $24,44($30) +beq $24,$0,L.371 +la $4,L.357 +la $5,4 +jal printf +L.371: +L.369: +lb $24,L.375+1 +la $15,34 +beq $24,$15,L.373 +la $18,8($18) +lw $24,44($30) +beq $24,$0,L.377 +la $4,L.357 +la $5,8 +jal printf +L.377: +L.373: +la $22,L.379 +lb $24,($22) +la $15,10 +bne $24,$15,L.387 +lb $24,1($22) +la $15,9 +bne $24,$15,L.387 +lb $24,2($22) +la $15,8 +bne $24,$15,L.387 +lb $24,3($22) +la $15,13 +bne $24,$15,L.387 +lb $24,4($22) +la $15,12 +bne $24,$15,L.387 +lb $24,5($22) +la $15,92 +bne $24,$15,L.387 +lb $24,6($22) +la $15,39 +beq $24,$15,L.380 +L.387: +la $18,16($18) +lw $24,44($30) +beq $24,$0,L.388 +la $4,L.357 +la $5,16 +jal printf +L.388: +L.380: +la $24,L.390 +move $21,$24 +move $22,$24 +move $17,$0 +move $23,$0 +b L.394 +L.391: +addu $24,$23,$22 +lb $24,($24) +addu $15,$23,$21 +lb $15,($15) +beq $24,$15,L.395 +la $17,1 +L.395: +L.392: +la $23,1($23) +L.394: +move $24,$23 +la $15,7 +bltu $24,$15,L.391 +beq $17,$0,L.397 +la $18,32($18) +lw $24,44($30) +beq $24,$0,L.399 +la $4,L.357 +la $5,32 +jal printf +L.399: +L.397: +move $2,$18 +L.356: +lw $17,16($sp) +lw $18,20($sp) +lw $19,24($sp) +lw $20,28($sp) +lw $21,32($sp) +lw $22,36($sp) +lw $23,40($sp) +lw $25,44($sp) +lw $30,48($sp) +lw $31,52($sp) +addu $sp,$sp,56 +j $31 +.end s25 +.sdata +.align 0 +L.402: +.byte 115 +.byte 50 +.byte 54 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.data +.align 0 +L.403: +.byte 37 +.byte 51 +.byte 100 +.byte 32 +.byte 98 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 105 +.byte 110 +.byte 32 +.byte 37 +.byte 115 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.data +.align 0 +L.404: +.byte 37 +.byte 101 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 108 +.byte 101 +.byte 97 +.byte 115 +.byte 116 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 99 +.byte 97 +.byte 110 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 97 +.byte 100 +.byte 100 +.byte 101 +.byte 100 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 49 +.byte 46 +.byte 32 +.byte 40 +.byte 37 +.byte 115 +.byte 41 +.byte 46 +.byte 10 +.byte 0 +.globl s26 +.text +.text +.align 2 +.ent s26 +s26: +.frame $sp,96,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-96 +.fmask 0xffc00000,-40 +.mask 0xc2f00000,-8 +s.d $f22,24($sp) +s.d $f24,32($sp) +s.d $f26,40($sp) +s.d $f28,48($sp) +s.d $f30,56($sp) +sw $20,64($sp) +sw $21,68($sp) +sw $22,72($sp) +sw $23,76($sp) +.cprestore 80 +sw $30,84($sp) +sw $31,88($sp) +move $30,$4 +la $22,L.402 +la $21,60($30) +L.405: +L.406: +move $24,$21 +la $21,1($24) +move $15,$22 +la $22,1($15) +lb $15,($15) +sb $15,($24) +sll $24,$15,8*(4-1); sra $24,$24,8*(4-1) +bne $24,$0,L.405 +sw $0,($30) +move $20,$0 +la $23,1 +b L.409 +L.408: +sll $24,$23,8*(4-1); sra $24,$24,8*(4-1) +sll $24,$24,1 +move $23,$24 +lw $24,($30) +la $24,1($24) +sw $24,($30) +L.409: +sll $24,$20,8*(4-1); sra $24,$24,8*(4-1) +sll $15,$23,8*(4-1); sra $15,$15,8*(4-1) +bne $24,$15,L.408 +lw $24,($30) +sll $24,$24,2 +sw $24,4($30) +lw $24,($30) +sll $24,$24,1 +sw $24,8($30) +lw $24,($30) +sll $24,$24,2 +sw $24,12($30) +lw $24,($30) +sll $24,$24,2 +sw $24,16($30) +lw $24,($30) +sll $24,$24,2 +sw $24,20($30) +lw $24,($30) +sll $24,$24,3 +sw $24,24($30) +l.s $f18,L.411 +mov.s $f26,$f18 +mov.s $f30,$f18 +l.s $f28,L.412 +b L.414 +L.413: +add.s $f28,$f26,$f30 +cvt.d.s $f18,$f30 +l.d $f16,L.416 +div.d $f18,$f18,$f16 +cvt.s.d $f30,$f18 +L.414: +c.eq.s $f28,$f26; bc1f L.413 +l.d $f18,L.417 +cvt.d.s $f16,$f30 +mul.d $f18,$f18,$f16 +cvt.s.d $f18,$f18 +s.s $f18,28($30) +l.d $f22,L.418 +l.s $f30,L.411 +l.d $f24,L.419 +b L.421 +L.420: +cvt.d.s $f18,$f30 +add.d $f24,$f22,$f18 +l.d $f16,L.416 +div.d $f18,$f18,$f16 +cvt.s.d $f30,$f18 +L.421: +c.eq.d $f24,$f22; bc1f L.420 +l.d $f18,L.417 +cvt.d.s $f16,$f30 +mul.d $f18,$f18,$f16 +cvt.s.d $f18,$f18 +s.s $f18,32($30) +lw $24,40($30) +beq $24,$0,L.423 +la $4,L.403 +lw $5,($30) +la $6,L.425 +jal printf +la $4,L.403 +lw $5,4($30) +la $6,L.426 +jal printf +la $4,L.403 +lw $5,8($30) +la $6,L.427 +jal printf +la $4,L.403 +lw $5,12($30) +la $6,L.428 +jal printf +la $4,L.403 +lw $5,16($30) +la $6,L.429 +jal printf +la $4,L.403 +lw $5,20($30) +la $6,L.430 +jal printf +la $4,L.403 +lw $5,24($30) +la $6,L.431 +jal printf +la $4,L.404 +l.s $f18,28($30) +cvt.d.s $f18,$f18 +mfc1.d $6,$f18 +la $24,L.430 +sw $24,16($sp) +jal printf +la $4,L.404 +l.s $f18,32($30) +cvt.d.s $f18,$f18 +mfc1.d $6,$f18 +la $24,L.431 +sw $24,16($sp) +jal printf +L.423: +move $2,$0 +L.401: +l.d $f22,24($sp) +l.d $f24,32($sp) +l.d $f26,40($sp) +l.d $f28,48($sp) +l.d $f30,56($sp) +lw $20,64($sp) +lw $21,68($sp) +lw $22,72($sp) +lw $23,76($sp) +lw $25,80($sp) +lw $30,84($sp) +lw $31,88($sp) +addu $sp,$sp,96 +j $31 +.end s26 +.data +.align 0 +L.433: +.byte 115 +.byte 52 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.sdata +.align 0 +L.434: +.byte 115 +.byte 52 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s4 +.text +.text +.align 2 +.ent s4 +s4: +.frame $sp,72,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-72 +.mask 0xc2fc0000,-24 +sw $18,16($sp) +sw $19,20($sp) +sw $20,24($sp) +sw $21,28($sp) +sw $22,32($sp) +sw $23,36($sp) +.cprestore 40 +sw $30,44($sp) +sw $31,48($sp) +move $30,$4 +move $18,$0 +la $20,L.434 +la $19,60($30) +L.435: +L.436: +move $24,$19 +la $19,1($24) +move $15,$20 +la $20,1($15) +lb $15,($15) +sb $15,($24) +sll $24,$15,8*(4-1); sra $24,$24,8*(4-1) +bne $24,$0,L.435 +move $23,$0 +L.438: +move $4,$23 +jal svtest +move $24,$2 +sw $24,-16+72($sp) +jal zero +lw $15,-16+72($sp) +beq $15,$2,L.442 +la $18,1 +lw $24,44($30) +beq $24,$0,L.444 +la $4,L.433 +la $5,1 +jal printf +L.444: +L.442: +L.439: +la $23,1($23) +la $24,3 +blt $23,$24,L.438 +jal setev +jal testev +beq $2,$0,L.446 +la $18,2($18) +lw $24,44($30) +beq $24,$0,L.448 +la $4,L.433 +la $5,2 +jal printf +L.448: +L.446: +b L.450 +la $18,4($18) +lw $24,44($30) +beq $24,$0,L.452 +la $4,L.433 +la $5,4 +jal printf +L.452: +L.450: +la $22,0xffffffff +la $21,1 +move $23,$0 +b L.457 +L.454: +and $21,$21,$22 +srl $22,$22,1 +L.455: +la $23,1($23) +L.457: +move $24,$23 +lw $15,($30) +sll $15,$15,2 +bltu $24,$15,L.454 +la $24,1 +bne $21,$24,L.460 +beq $22,$0,L.458 +L.460: +la $18,8($18) +lw $24,44($30) +beq $24,$0,L.461 +la $4,L.433 +la $5,8 +jal printf +L.461: +L.458: +move $2,$18 +L.432: +lw $18,16($sp) +lw $19,20($sp) +lw $20,24($sp) +lw $21,28($sp) +lw $22,32($sp) +lw $23,36($sp) +lw $25,40($sp) +lw $30,44($sp) +lw $31,48($sp) +addu $sp,$sp,72 +j $31 +.end s4 +.lcomm L.464,4 +.globl svtest +.text +.text +.align 2 +.ent svtest +svtest: +.frame $sp,8,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-8 +beq $4,$0,L.467 +la $24,1 +beq $4,$24,L.468 +la $24,2 +beq $4,$24,L.471 +b L.465 +L.467: +la $24,1978 +sw $24,L.464 +sw $0,-4+8($sp) +b L.466 +L.468: +lw $24,L.464 +la $15,1978 +beq $24,$15,L.469 +la $24,1 +sw $24,-4+8($sp) +b L.466 +L.469: +la $24,1929 +sw $24,L.464 +sw $0,-4+8($sp) +b L.466 +L.471: +lw $24,L.464 +la $15,1929 +beq $24,$15,L.472 +la $24,1 +sw $24,-4+8($sp) +b L.466 +L.472: +sw $0,-4+8($sp) +L.465: +L.466: +lw $2,-4+8($sp) +L.463: +addu $sp,$sp,8 +j $31 +.end svtest +.lcomm L.475,4 +.globl zero +.text +.text +.align 2 +.ent zero +zero: +.frame $sp,8,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-8 +la $24,2 +sw $24,L.475 +sw $0,-4+8($sp) +lw $2,-4+8($sp) +L.474: +addu $sp,$sp,8 +j $31 +.end zero +.globl testev +.text +.align 2 +.ent testev +testev: +.frame $sp,0,$31 +.set noreorder +.cpload $25 +.set reorder +lw $24,extvar +la $15,1066 +beq $24,$15,L.477 +la $2,1 +b L.476 +L.477: +move $2,$0 +L.476: +j $31 +.end testev +.data +.align 0 +L.480: +.byte 115 +.byte 54 +.byte 49 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.sdata +.align 0 +L.481: +.byte 115 +.byte 54 +.byte 49 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.data +.align 0 +L.482: +.byte 65 +.byte 66 +.byte 67 +.byte 68 +.byte 69 +.byte 70 +.byte 71 +.byte 72 +.byte 73 +.byte 74 +.byte 75 +.byte 76 +.byte 77 +.byte 78 +.byte 79 +.byte 80 +.byte 81 +.byte 82 +.byte 83 +.byte 84 +.byte 85 +.byte 86 +.byte 87 +.byte 88 +.byte 89 +.byte 90 +.byte 0 +.data +.align 0 +L.483: +.byte 97 +.byte 98 +.byte 99 +.byte 100 +.byte 101 +.byte 102 +.byte 103 +.byte 104 +.byte 105 +.byte 106 +.byte 107 +.byte 108 +.byte 109 +.byte 110 +.byte 111 +.byte 112 +.byte 113 +.byte 114 +.byte 115 +.byte 116 +.byte 117 +.byte 118 +.byte 119 +.byte 120 +.byte 121 +.byte 122 +.byte 0 +.data +.align 0 +L.484: +.byte 48 +.byte 49 +.byte 50 +.byte 51 +.byte 52 +.byte 53 +.byte 54 +.byte 55 +.byte 56 +.byte 57 +.byte 0 +.data +.align 0 +L.485: +.byte 126 +.byte 33 +.byte 34 +.byte 35 +.byte 37 +.byte 38 +.byte 40 +.byte 41 +.byte 95 +.byte 61 +.byte 45 +.byte 94 +.byte 124 +.byte 123 +.byte 125 +.byte 91 +.byte 93 +.byte 43 +.byte 59 +.byte 42 +.byte 58 +.byte 60 +.byte 62 +.byte 44 +.byte 46 +.byte 63 +.byte 47 +.byte 0 +.data +.align 0 +L.486: +.byte 10 +.byte 9 +.byte 8 +.byte 13 +.byte 12 +.byte 92 +.byte 39 +.byte 0 +.data +.align 0 +L.487: +.byte 32 +.byte 0 +.byte 0 +.globl s61 +.text +.text +.align 2 +.ent s61 +s61: +.frame $sp,88,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-88 +.mask 0xc2fe0000,-36 +sw $17,16($sp) +sw $18,20($sp) +sw $19,24($sp) +sw $20,28($sp) +sw $21,32($sp) +sw $22,36($sp) +sw $23,40($sp) +.cprestore 44 +sw $30,48($sp) +sw $31,52($sp) +sw $4,88($sp) +la $22,L.481 +lw $24,0+88($sp) +la $21,60($24) +move $19,$0 +L.488: +L.489: +move $24,$21 +la $21,1($24) +move $15,$22 +la $22,1($15) +lb $15,($15) +sb $15,($24) +sll $24,$15,8*(4-1); sra $24,$24,8*(4-1) +bne $24,$0,L.488 +la $24,-19 +sh $24,-26+88($sp) +lh $24,-26+88($sp) +sw $24,-32+88($sp) +lw $24,-32+88($sp) +la $15,-19 +beq $24,$15,L.491 +la $19,1($19) +lw $24,0+88($sp) +lw $24,44($24) +beq $24,$0,L.493 +la $4,L.480 +la $5,1 +jal printf +L.493: +L.491: +la $24,L.482 +sw $24,-24+88($sp) +la $24,L.483 +sw $24,-20+88($sp) +la $24,L.484 +sw $24,-16+88($sp) +la $24,L.485 +sw $24,-12+88($sp) +la $24,L.486 +sw $24,-8+88($sp) +la $24,L.487 +sw $24,-4+88($sp) +move $23,$0 +move $30,$0 +b L.505 +L.504: +sll $24,$30,2 +la $15,-24+88($sp) +addu $24,$24,$15 +lw $15,($24) +la $14,1($15) +sw $14,($24) +lb $24,($15) +bge $24,$0,L.507 +la $23,1 +L.507: +L.505: +sll $24,$30,2 +la $15,-24+88($sp) +addu $24,$24,$15 +lw $24,($24) +lb $24,($24) +bne $24,$0,L.504 +L.501: +la $30,1($30) +la $24,6 +blt $30,$24,L.505 +beq $23,$0,L.509 +la $19,2($19) +lw $24,0+88($sp) +lw $24,44($24) +beq $24,$0,L.511 +la $4,L.480 +la $5,2 +jal printf +L.511: +L.509: +la $20,1048579 +move $18,$20 +move $17,$20 +sll $24,$18,8*(4-2); sra $24,$24,8*(4-2) +beq $24,$20,L.516 +la $15,3 +bne $24,$15,L.515 +L.516: +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +beq $24,$20,L.513 +la $15,3 +beq $24,$15,L.513 +L.515: +la $19,8($19) +lw $24,0+88($sp) +lw $24,44($24) +beq $24,$0,L.517 +la $4,L.480 +la $5,8 +jal printf +L.517: +L.513: +move $2,$19 +L.479: +lw $17,16($sp) +lw $18,20($sp) +lw $19,24($sp) +lw $20,28($sp) +lw $21,32($sp) +lw $22,36($sp) +lw $23,40($sp) +lw $25,44($sp) +lw $30,48($sp) +lw $31,52($sp) +addu $sp,$sp,88 +j $31 +.end s61 +.data +.align 0 +L.520: +.byte 115 +.byte 54 +.byte 50 +.byte 54 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.sdata +.align 0 +L.521: +.byte 115 +.byte 54 +.byte 50 +.byte 54 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s626 +.text +.text +.align 2 +.ent s626 +s626: +.frame $sp,152,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-152 +.fmask 0xff000000,-112 +.mask 0xc2ff0000,-64 +s.d $f24,16($sp) +s.d $f26,24($sp) +s.d $f28,32($sp) +s.d $f30,40($sp) +sw $16,48($sp) +sw $17,52($sp) +sw $18,56($sp) +sw $19,60($sp) +sw $20,64($sp) +sw $21,68($sp) +sw $22,72($sp) +sw $23,76($sp) +.cprestore 80 +sw $30,84($sp) +sw $31,88($sp) +move $30,$4 +la $20,L.521 +la $19,60($30) +sw $0,-52+152($sp) +L.522: +L.523: +move $24,$19 +la $19,1($24) +move $15,$20 +la $20,1($15) +lb $15,($15) +sb $15,($24) +sll $24,$15,8*(4-1); sra $24,$24,8*(4-1) +bne $24,$0,L.522 +l.s $f30,L.411 +la $24,1 +move $18,$24 +move $22,$24 +move $23,$0 +b L.528 +L.525: +l.s $f18,L.529 +mul.s $f30,$f18,$f30 +sll $24,$22,1 +or $22,$24,$18 +L.526: +la $23,1($23) +L.528: +lw $24,12($30) +subu $24,$24,2 +blt $23,$24,L.525 +mtc1 $22,$f18; cvt.s.w $f18,$f18 +s.s $f18,-60+152($sp) +l.s $f18,-60+152($sp) +sub.s $f18,$f30,$f18 +div.s $f30,$f18,$f30 +cvt.d.s $f18,$f30 +l.d $f16,L.416 +l.s $f10,28($30) +cvt.d.s $f10,$f10 +mul.d $f16,$f16,$f10 +c.le.d $f18,$f16; bc1t L.530 +lw $24,-52+152($sp) +la $24,2($24) +sw $24,-52+152($sp) +lw $24,44($30) +beq $24,$0,L.532 +la $4,L.520 +la $5,2 +jal printf +L.532: +L.530: +la $16,125 +la $24,125 +sh $24,-30+152($sp) +la $24,125 +sw $24,-36+152($sp) +la $24,15625 +sw $24,-44+152($sp) +la $24,125 +sw $24,-40+152($sp) +la $24,15625 +sw $24,-48+152($sp) +la $17,125 +la $24,15625 +sw $24,-56+152($sp) +l.s $f26,L.534 +l.d $f24,L.535 +l.d $f28,L.536 +move $23,$0 +L.537: +la $24,-28+152($sp) +addu $24,$23,$24 +sb $0,($24) +L.538: +la $23,1($23) +la $24,28 +blt $23,$24,L.537 +sll $24,$16,8*(4-1); sra $24,$24,8*(4-1) +mul $24,$24,$24 +lw $15,-44+152($sp) +beq $24,$15,L.541 +la $24,1 +sb $24,-28+152($sp) +L.541: +lh $24,-30+152($sp) +sll $15,$16,8*(4-1); sra $15,$15,8*(4-1) +mul $24,$24,$15 +lw $15,-44+152($sp) +beq $24,$15,L.543 +la $24,1 +sb $24,-27+152($sp) +L.543: +lh $24,-30+152($sp) +mul $24,$24,$24 +lw $15,-44+152($sp) +beq $24,$15,L.546 +la $24,1 +sb $24,-26+152($sp) +L.546: +lw $24,-36+152($sp) +sll $15,$16,8*(4-1); sra $15,$15,8*(4-1) +mul $24,$24,$15 +lw $15,-44+152($sp) +beq $24,$15,L.549 +la $24,1 +sb $24,-25+152($sp) +L.549: +lw $24,-36+152($sp) +lh $15,-30+152($sp) +mul $24,$24,$15 +lw $15,-44+152($sp) +beq $24,$15,L.552 +la $24,1 +sb $24,-24+152($sp) +L.552: +lw $24,-36+152($sp) +mul $24,$24,$24 +lw $15,-44+152($sp) +beq $24,$15,L.555 +la $24,1 +sb $24,-23+152($sp) +L.555: +lw $24,-40+152($sp) +sll $15,$16,8*(4-1); sra $15,$15,8*(4-1) +mul $24,$24,$15 +lw $15,-48+152($sp) +beq $24,$15,L.558 +la $24,1 +sb $24,-22+152($sp) +L.558: +lw $24,-40+152($sp) +lh $15,-30+152($sp) +mul $24,$24,$15 +lw $15,-48+152($sp) +beq $24,$15,L.561 +la $24,1 +sb $24,-21+152($sp) +L.561: +lw $24,-40+152($sp) +lw $15,-36+152($sp) +mul $24,$24,$15 +lw $15,-48+152($sp) +beq $24,$15,L.564 +la $24,1 +sb $24,-20+152($sp) +L.564: +lw $24,-40+152($sp) +mul $24,$24,$24 +lw $15,-48+152($sp) +beq $24,$15,L.567 +la $24,1 +sb $24,-19+152($sp) +L.567: +sll $24,$16,8*(4-1); sra $24,$24,8*(4-1) +mul $24,$17,$24 +lw $15,-56+152($sp) +beq $24,$15,L.570 +la $24,1 +sb $24,-18+152($sp) +L.570: +lh $24,-30+152($sp) +mul $24,$17,$24 +lw $15,-56+152($sp) +beq $24,$15,L.573 +la $24,1 +sb $24,-17+152($sp) +L.573: +lw $24,-36+152($sp) +mul $24,$17,$24 +lw $15,-56+152($sp) +beq $24,$15,L.576 +la $24,1 +sb $24,-16+152($sp) +L.576: +move $24,$17 +lw $15,-40+152($sp) +mul $24,$24,$15 +lw $15,-48+152($sp) +beq $24,$15,L.579 +la $24,1 +sb $24,-15+152($sp) +L.579: +mul $24,$17,$17 +lw $15,-56+152($sp) +beq $24,$15,L.582 +la $24,1 +sb $24,-14+152($sp) +L.582: +sll $24,$16,8*(4-1); sra $24,$24,8*(4-1) +mtc1 $24,$f18; cvt.s.w $f18,$f18 +mul.s $f18,$f26,$f18 +cvt.d.s $f18,$f18 +c.eq.d $f18,$f28; bc1t L.585 +la $24,1 +sb $24,-13+152($sp) +L.585: +lh $24,-30+152($sp) +mtc1 $24,$f18; cvt.s.w $f18,$f18 +mul.s $f18,$f26,$f18 +cvt.d.s $f18,$f18 +c.eq.d $f18,$f28; bc1t L.588 +la $24,1 +sb $24,-12+152($sp) +L.588: +lw $24,-36+152($sp) +mtc1 $24,$f18; cvt.s.w $f18,$f18 +mul.s $f18,$f26,$f18 +cvt.d.s $f18,$f18 +c.eq.d $f18,$f28; bc1t L.591 +la $24,1 +sb $24,-11+152($sp) +L.591: +lw $24,-40+152($sp) +l.d $f18,L.596 +srl $15,$24,1 +mtc1 $15,$f16; cvt.d.w $f16,$f16 +mul.d $f18,$f18,$f16 +and $24,$24,1 +mtc1 $24,$f16; cvt.d.w $f16,$f16 +add.d $f18,$f18,$f16 +cvt.s.d $f18,$f18 +mul.s $f18,$f26,$f18 +cvt.d.s $f18,$f18 +c.eq.d $f18,$f28; bc1t L.594 +la $24,1 +sb $24,-10+152($sp) +L.594: +mtc1 $17,$f18; cvt.s.w $f18,$f18 +mul.s $f18,$f26,$f18 +cvt.d.s $f18,$f18 +c.eq.d $f18,$f28; bc1t L.598 +la $24,1 +sb $24,-9+152($sp) +L.598: +mul.s $f18,$f26,$f26 +cvt.d.s $f18,$f18 +c.eq.d $f18,$f28; bc1t L.601 +la $24,1 +sb $24,-8+152($sp) +L.601: +sll $24,$16,8*(4-1); sra $24,$24,8*(4-1) +mtc1 $24,$f18; cvt.d.w $f18,$f18 +mul.d $f18,$f24,$f18 +c.eq.d $f18,$f28; bc1t L.604 +la $24,1 +sb $24,-7+152($sp) +L.604: +lh $24,-30+152($sp) +mtc1 $24,$f18; cvt.d.w $f18,$f18 +mul.d $f18,$f24,$f18 +c.eq.d $f18,$f28; bc1t L.607 +la $24,1 +sb $24,-6+152($sp) +L.607: +lw $24,-36+152($sp) +mtc1 $24,$f18; cvt.d.w $f18,$f18 +mul.d $f18,$f24,$f18 +c.eq.d $f18,$f28; bc1t L.610 +la $24,1 +sb $24,-5+152($sp) +L.610: +lw $24,-40+152($sp) +l.d $f18,L.596 +srl $15,$24,1 +mtc1 $15,$f16; cvt.d.w $f16,$f16 +mul.d $f18,$f18,$f16 +and $24,$24,1 +mtc1 $24,$f16; cvt.d.w $f16,$f16 +add.d $f18,$f18,$f16 +mul.d $f18,$f24,$f18 +c.eq.d $f18,$f28; bc1t L.613 +la $24,1 +sb $24,-4+152($sp) +L.613: +mtc1 $17,$f18; cvt.d.w $f18,$f18 +mul.d $f18,$f24,$f18 +c.eq.d $f18,$f28; bc1t L.616 +la $24,1 +sb $24,-3+152($sp) +L.616: +cvt.d.s $f18,$f26 +mul.d $f18,$f24,$f18 +c.eq.d $f18,$f28; bc1t L.619 +la $24,1 +sb $24,-2+152($sp) +L.619: +mul.d $f18,$f24,$f24 +c.eq.d $f18,$f28; bc1t L.622 +la $24,1 +sb $24,-1+152($sp) +L.622: +move $21,$0 +move $23,$0 +L.625: +sll $24,$21,8*(4-1); sra $24,$24,8*(4-1) +la $15,-28+152($sp) +addu $15,$23,$15 +lb $15,($15) +addu $24,$24,$15 +move $21,$24 +L.626: +la $23,1($23) +la $24,28 +blt $23,$24,L.625 +sll $24,$21,8*(4-1); sra $24,$24,8*(4-1) +beq $24,$0,L.629 +lw $24,-52+152($sp) +la $24,4($24) +sw $24,-52+152($sp) +lw $24,44($30) +beq $24,$0,L.631 +la $4,L.520 +la $5,4 +jal printf +la $4,L.633 +jal printf +move $23,$0 +L.634: +la $4,L.638 +la $24,-28+152($sp) +addu $24,$23,$24 +lb $5,($24) +jal printf +L.635: +la $23,1($23) +la $24,28 +blt $23,$24,L.634 +la $4,L.639 +jal printf +L.631: +L.629: +la $17,32768 +move $24,$17 +la $15,0x8000 +bleu $24,$15,L.640 +lw $24,-52+152($sp) +la $24,8($24) +sw $24,-52+152($sp) +lw $24,44($30) +beq $24,$0,L.642 +la $4,L.520 +la $5,8 +jal printf +L.642: +L.640: +lw $2,-52+152($sp) +L.519: +l.d $f24,16($sp) +l.d $f26,24($sp) +l.d $f28,32($sp) +l.d $f30,40($sp) +lw $16,48($sp) +lw $17,52($sp) +lw $18,56($sp) +lw $19,60($sp) +lw $20,64($sp) +lw $21,68($sp) +lw $22,72($sp) +lw $23,76($sp) +lw $25,80($sp) +lw $30,84($sp) +lw $31,88($sp) +addu $sp,$sp,152 +j $31 +.end s626 +.data +.align 0 +L.645: +.byte 115 +.byte 55 +.byte 49 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.sdata +.align 0 +L.646: +.byte 115 +.byte 55 +.byte 49 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.sdata +.align 0 +L.647: +.byte 0x71 +.globl s71 +.text +.text +.align 2 +.ent s71 +s71: +.frame $sp,96,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-96 +.mask 0xc2f00000,-56 +sw $20,16($sp) +sw $21,20($sp) +sw $22,24($sp) +sw $23,28($sp) +.cprestore 32 +sw $30,36($sp) +sw $31,40($sp) +move $30,$4 +la $23,L.646 +la $22,60($30) +move $21,$0 +L.648: +L.649: +move $24,$22 +la $22,1($24) +move $15,$23 +la $23,1($15) +lb $15,($15) +sb $15,($24) +sll $24,$15,8*(4-1); sra $24,$24,8*(4-1) +bne $24,$0,L.648 +lb $24,L.653 +lb $15,L.647 +beq $24,$15,L.651 +la $21,1($21) +lw $24,44($30) +beq $24,$0,L.654 +la $4,L.645 +la $5,1 +jal printf +L.654: +L.651: +b L.656 +la $21,2($21) +lw $24,44($30) +beq $24,$0,L.658 +la $4,L.645 +la $5,2 +jal printf +L.658: +L.656: +la $24,1942 +sw $24,-20+96($sp) +lw $24,-20+96($sp) +la $15,1942 +bne $24,$15,L.666 +lw $24,-20+96($sp) +lw $15,-20+96($sp) +beq $24,$15,L.661 +L.666: +la $21,4($21) +lw $24,44($30) +beq $24,$0,L.667 +la $4,L.645 +la $5,4 +jal printf +L.667: +L.661: +la $4,-5 +jal McCarthy +la $15,91 +beq $2,$15,L.669 +la $21,8($21) +lw $24,44($30) +beq $24,$0,L.671 +la $4,L.645 +la $5,8 +jal printf +L.671: +L.669: +la $20,2 +la $24,3 +sw $24,-44+96($sp) +la $24,-44+96($sp) +sw $24,-48+96($sp) +move $4,$20 +lw $5,-48+96($sp) +jal clobber +la $24,2 +bne $20,$24,L.675 +lw $15,-44+96($sp) +beq $15,$24,L.673 +L.675: +la $21,16($21) +lw $24,44($30) +beq $24,$0,L.676 +la $4,L.645 +la $5,16 +jal printf +L.676: +L.673: +l.s $f18,32($30) +c.eq.s $f18,$f18; bc1t L.678 +la $21,32($21) +lw $24,44($30) +beq $24,$0,L.680 +la $4,L.645 +la $5,32 +jal printf +L.680: +L.678: +move $2,$21 +L.644: +lw $20,16($sp) +lw $21,20($sp) +lw $22,24($sp) +lw $23,28($sp) +lw $25,32($sp) +lw $30,36($sp) +lw $31,40($sp) +addu $sp,$sp,96 +j $31 +.end s71 +.globl McCarthy +.text +.align 2 +.ent McCarthy +McCarthy: +.frame $sp,24,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-24 +.mask 0x82000000,-4 +.cprestore 16 +sw $31,20($sp) +sw $4,24($sp) +lw $24,0+24($sp) +la $15,100 +ble $24,$15,L.683 +lw $24,0+24($sp) +subu $2,$24,10 +b L.682 +L.683: +lw $24,0+24($sp) +la $4,11($24) +jal McCarthy +move $24,$2 +move $4,$24 +jal McCarthy +move $24,$2 +L.682: +lw $25,16($sp) +lw $31,20($sp) +addu $sp,$sp,24 +j $31 +.end McCarthy +.globl clobber +.text +.align 2 +.ent clobber +clobber: +.frame $sp,0,$31 +.set noreorder +.cpload $25 +.set reorder +la $4,3 +la $24,2 +sw $24,($5) +move $2,$0 +L.685: +j $31 +.end clobber +.data +.align 0 +L.687: +.byte 76 +.byte 111 +.byte 99 +.byte 97 +.byte 108 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 32 +.byte 37 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.data +.align 0 +L.688: +.byte 115 +.byte 55 +.byte 49 +.byte 52 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.sdata +.align 0 +L.689: +.byte 115 +.byte 55 +.byte 49 +.byte 52 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s714 +.text +.text +.align 2 +.ent s714 +s714: +.frame $sp,160,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-160 +.fmask 0xff000000,-120 +.mask 0xc2ff0000,-72 +s.d $f24,16($sp) +s.d $f26,24($sp) +s.d $f28,32($sp) +s.d $f30,40($sp) +sw $16,48($sp) +sw $17,52($sp) +sw $18,56($sp) +sw $19,60($sp) +sw $20,64($sp) +sw $21,68($sp) +sw $22,72($sp) +sw $23,76($sp) +.cprestore 80 +sw $30,84($sp) +sw $31,88($sp) +sw $4,160($sp) +la $24,L.689 +sw $24,-16+160($sp) +lw $24,0+160($sp) +la $15,60($24) +sw $15,-20+160($sp) +sw $0,-24+160($sp) +move $23,$0 +lw $30,48($24) +L.690: +L.691: +lw $24,-20+160($sp) +la $15,1($24) +sw $15,-20+160($sp) +lw $15,-16+160($sp) +la $14,1($15) +sw $14,-16+160($sp) +lb $15,($15) +sb $15,($24) +sll $24,$15,8*(4-1); sra $24,$24,8*(4-1) +bne $24,$0,L.690 +la $22,5 +la $17,2 +move $22,$17 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,2 +beq $24,$15,L.693 +la $23,1 +beq $30,$0,L.695 +la $4,L.687 +move $5,$23 +jal printf +L.695: +L.693: +la $22,5 +la $16,2 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,2 +beq $24,$15,L.697 +la $23,2 +beq $30,$0,L.699 +la $4,L.687 +move $5,$23 +jal printf +L.699: +L.697: +la $22,5 +la $24,2 +sw $24,-4+160($sp) +lw $15,-4+160($sp) +move $22,$15 +sll $15,$22,8*(4-1); sra $15,$15,8*(4-1) +beq $15,$24,L.701 +la $23,3 +beq $30,$0,L.703 +la $4,L.687 +move $5,$23 +jal printf +L.703: +L.701: +la $22,5 +la $24,2 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,2 +beq $24,$15,L.705 +la $23,4 +beq $30,$0,L.707 +la $4,L.687 +move $5,$23 +jal printf +L.707: +L.705: +la $22,5 +la $24,2 +sw $24,-12+160($sp) +lw $24,-12+160($sp) +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,2 +beq $24,$15,L.709 +la $23,5 +beq $30,$0,L.711 +la $4,L.687 +move $5,$23 +jal printf +L.711: +L.709: +la $22,5 +l.s $f26,L.529 +trunc.w.s $f2,$f26,$24; mfc1 $24,$f2 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,2 +beq $24,$15,L.713 +la $23,6 +beq $30,$0,L.715 +la $4,L.687 +move $5,$23 +jal printf +L.715: +L.713: +la $22,5 +l.d $f24,L.416 +trunc.w.d $f2,$f24,$24; mfc1 $24,$f2 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,2 +beq $24,$15,L.717 +la $23,7 +beq $30,$0,L.719 +la $4,L.687 +move $5,$23 +jal printf +L.719: +L.717: +la $21,5 +la $17,2 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,2 +beq $24,$15,L.721 +la $23,8 +beq $30,$0,L.723 +la $4,L.687 +move $5,$23 +jal printf +L.723: +L.721: +la $21,5 +la $16,2 +move $21,$16 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,2 +beq $24,$15,L.725 +la $23,9 +beq $30,$0,L.727 +la $4,L.687 +move $5,$23 +jal printf +L.727: +L.725: +la $21,5 +la $24,2 +sw $24,-4+160($sp) +lw $15,-4+160($sp) +move $21,$15 +sll $15,$21,8*(4-2); sra $15,$15,8*(4-2) +beq $15,$24,L.729 +la $23,10 +beq $30,$0,L.731 +la $4,L.687 +move $5,$23 +jal printf +L.731: +L.729: +la $21,5 +la $24,2 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,2 +beq $24,$15,L.733 +la $23,11 +beq $30,$0,L.735 +la $4,L.687 +move $5,$23 +jal printf +L.735: +L.733: +la $21,5 +la $24,2 +sw $24,-12+160($sp) +lw $24,-12+160($sp) +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,2 +beq $24,$15,L.737 +la $23,12 +beq $30,$0,L.739 +la $4,L.687 +move $5,$23 +jal printf +L.739: +L.737: +la $21,5 +l.s $f26,L.529 +trunc.w.s $f2,$f26,$24; mfc1 $24,$f2 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,2 +beq $24,$15,L.741 +la $23,13 +beq $30,$0,L.743 +la $4,L.687 +move $5,$23 +jal printf +L.743: +L.741: +la $21,5 +l.d $f24,L.416 +trunc.w.d $f2,$f24,$24; mfc1 $24,$f2 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,2 +beq $24,$15,L.745 +la $23,14 +beq $30,$0,L.747 +la $4,L.687 +move $5,$23 +jal printf +L.747: +L.745: +la $20,5 +la $17,2 +sll $20,$17,8*(4-1); sra $20,$20,8*(4-1) +la $24,2 +beq $20,$24,L.749 +la $23,15 +beq $30,$0,L.751 +la $4,L.687 +move $5,$23 +jal printf +L.751: +L.749: +la $20,5 +la $16,2 +sll $20,$16,8*(4-2); sra $20,$20,8*(4-2) +la $24,2 +beq $20,$24,L.753 +la $23,16 +beq $30,$0,L.755 +la $4,L.687 +move $5,$23 +jal printf +L.755: +L.753: +la $20,5 +la $24,2 +sw $24,-4+160($sp) +lw $20,-4+160($sp) +beq $20,$24,L.757 +la $23,17 +beq $30,$0,L.759 +la $4,L.687 +move $5,$23 +jal printf +L.759: +L.757: +la $20,5 +la $24,2 +sw $24,-8+160($sp) +lw $20,-8+160($sp) +la $24,2 +beq $20,$24,L.761 +la $23,18 +beq $30,$0,L.763 +la $4,L.687 +move $5,$23 +jal printf +L.763: +L.761: +la $20,5 +la $24,2 +sw $24,-12+160($sp) +lw $24,-12+160($sp) +move $20,$24 +la $24,2 +beq $20,$24,L.765 +la $23,19 +beq $30,$0,L.767 +la $4,L.687 +move $5,$23 +jal printf +L.767: +L.765: +la $20,5 +l.s $f26,L.529 +trunc.w.s $f2,$f26,$20; mfc1 $20,$f2 +la $24,2 +beq $20,$24,L.769 +la $23,20 +beq $30,$0,L.771 +la $4,L.687 +move $5,$23 +jal printf +L.771: +L.769: +la $20,5 +l.d $f24,L.416 +trunc.w.d $f2,$f24,$20; mfc1 $20,$f2 +la $24,2 +beq $20,$24,L.773 +la $23,21 +beq $30,$0,L.775 +la $4,L.687 +move $5,$23 +jal printf +L.775: +L.773: +la $19,5 +la $17,2 +sll $19,$17,8*(4-1); sra $19,$19,8*(4-1) +la $24,2 +beq $19,$24,L.777 +la $23,22 +beq $30,$0,L.779 +la $4,L.687 +move $5,$23 +jal printf +L.779: +L.777: +la $19,5 +la $16,2 +sll $19,$16,8*(4-2); sra $19,$19,8*(4-2) +la $24,2 +beq $19,$24,L.781 +la $23,23 +beq $30,$0,L.783 +la $4,L.687 +move $5,$23 +jal printf +L.783: +L.781: +la $19,5 +la $24,2 +sw $24,-4+160($sp) +lw $19,-4+160($sp) +la $24,2 +beq $19,$24,L.785 +la $23,24 +beq $30,$0,L.787 +la $4,L.687 +move $5,$23 +jal printf +L.787: +L.785: +la $19,5 +la $24,2 +sw $24,-8+160($sp) +lw $19,-8+160($sp) +beq $19,$24,L.789 +la $23,25 +beq $30,$0,L.791 +la $4,L.687 +move $5,$23 +jal printf +L.791: +L.789: +la $19,5 +la $24,2 +sw $24,-12+160($sp) +lw $24,-12+160($sp) +move $19,$24 +la $24,2 +beq $19,$24,L.793 +la $23,26 +beq $30,$0,L.795 +la $4,L.687 +move $5,$23 +jal printf +L.795: +L.793: +la $19,5 +l.s $f26,L.529 +trunc.w.s $f2,$f26,$19; mfc1 $19,$f2 +la $24,2 +beq $19,$24,L.797 +la $23,27 +beq $30,$0,L.799 +la $4,L.687 +move $5,$23 +jal printf +L.799: +L.797: +la $19,5 +l.d $f24,L.416 +trunc.w.d $f2,$f24,$19; mfc1 $19,$f2 +la $24,2 +beq $19,$24,L.801 +la $23,28 +beq $30,$0,L.803 +la $4,L.687 +move $5,$23 +jal printf +L.803: +L.801: +la $18,5 +la $17,2 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +move $18,$24 +la $24,2 +beq $18,$24,L.805 +la $23,29 +beq $30,$0,L.807 +la $4,L.687 +move $5,$23 +jal printf +L.807: +L.805: +la $18,5 +la $16,2 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +move $18,$24 +la $24,2 +beq $18,$24,L.809 +la $23,30 +beq $30,$0,L.811 +la $4,L.687 +move $5,$23 +jal printf +L.811: +L.809: +la $18,5 +la $24,2 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +move $18,$24 +la $24,2 +beq $18,$24,L.813 +la $23,31 +beq $30,$0,L.815 +la $4,L.687 +move $5,$23 +jal printf +L.815: +L.813: +la $18,5 +la $24,2 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +move $18,$24 +la $24,2 +beq $18,$24,L.817 +la $23,32 +beq $30,$0,L.819 +la $4,L.687 +move $5,$23 +jal printf +L.819: +L.817: +la $18,5 +la $24,2 +sw $24,-12+160($sp) +lw $18,-12+160($sp) +beq $18,$24,L.821 +la $23,33 +beq $30,$0,L.823 +la $4,L.687 +move $5,$23 +jal printf +L.823: +L.821: +la $18,5 +l.s $f26,L.529 +l.s $f18,L.828 +c.lt.s $f26,$f18; bc1t L.826 +sub.s $f18,$f26,$f18 +trunc.w.s $f2,$f18,$24; mfc1 $24,$f2 +la $24,0x80000000($24) +sw $24,-28+160($sp) +b L.827 +L.826: +trunc.w.s $f2,$f26,$24; mfc1 $24,$f2 +sw $24,-28+160($sp) +L.827: +lw $18,-28+160($sp) +la $24,2 +beq $18,$24,L.829 +la $23,34 +beq $30,$0,L.831 +la $4,L.687 +move $5,$23 +jal printf +L.831: +L.829: +la $18,5 +l.d $f24,L.416 +l.d $f18,L.836 +c.lt.d $f24,$f18; bc1t L.834 +sub.d $f18,$f24,$f18 +trunc.w.d $f2,$f18,$24; mfc1 $24,$f2 +la $24,0x80000000($24) +sw $24,-32+160($sp) +b L.835 +L.834: +trunc.w.d $f2,$f24,$24; mfc1 $24,$f2 +sw $24,-32+160($sp) +L.835: +lw $18,-32+160($sp) +la $24,2 +beq $18,$24,L.837 +la $23,35 +beq $30,$0,L.839 +la $4,L.687 +move $5,$23 +jal printf +L.839: +L.837: +l.s $f30,L.841 +la $17,2 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +mtc1 $24,$f30; cvt.s.w $f30,$f30 +l.s $f18,L.529 +c.eq.s $f30,$f18; bc1t L.842 +la $23,36 +beq $30,$0,L.844 +la $4,L.687 +move $5,$23 +jal printf +L.844: +L.842: +l.s $f30,L.841 +la $16,2 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +mtc1 $24,$f30; cvt.s.w $f30,$f30 +l.s $f18,L.529 +c.eq.s $f30,$f18; bc1t L.846 +la $23,37 +beq $30,$0,L.848 +la $4,L.687 +move $5,$23 +jal printf +L.848: +L.846: +l.s $f30,L.841 +la $24,2 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +mtc1 $24,$f30; cvt.s.w $f30,$f30 +l.s $f18,L.529 +c.eq.s $f30,$f18; bc1t L.850 +la $23,38 +beq $30,$0,L.852 +la $4,L.687 +move $5,$23 +jal printf +L.852: +L.850: +l.s $f30,L.841 +la $24,2 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +mtc1 $24,$f30; cvt.s.w $f30,$f30 +l.s $f18,L.529 +c.eq.s $f30,$f18; bc1t L.854 +la $23,39 +beq $30,$0,L.856 +la $4,L.687 +move $5,$23 +jal printf +L.856: +L.854: +l.s $f30,L.841 +la $24,2 +sw $24,-12+160($sp) +lw $24,-12+160($sp) +l.d $f18,L.596 +srl $15,$24,1 +mtc1 $15,$f16; cvt.d.w $f16,$f16 +mul.d $f18,$f18,$f16 +and $24,$24,1 +mtc1 $24,$f16; cvt.d.w $f16,$f16 +add.d $f18,$f18,$f16 +cvt.s.d $f30,$f18 +l.s $f18,L.529 +c.eq.s $f30,$f18; bc1t L.858 +la $23,40 +beq $30,$0,L.860 +la $4,L.687 +move $5,$23 +jal printf +L.860: +L.858: +l.s $f30,L.841 +l.s $f18,L.529 +mov.s $f26,$f18 +mov.s $f30,$f26 +c.eq.s $f30,$f18; bc1t L.862 +la $23,41 +beq $30,$0,L.864 +la $4,L.687 +move $5,$23 +jal printf +L.864: +L.862: +l.s $f30,L.841 +l.d $f24,L.416 +cvt.s.d $f30,$f24 +l.s $f18,L.529 +c.eq.s $f30,$f18; bc1t L.866 +la $23,42 +beq $30,$0,L.868 +la $4,L.687 +move $5,$23 +jal printf +L.868: +L.866: +l.d $f28,L.870 +la $17,2 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +mtc1 $24,$f28; cvt.d.w $f28,$f28 +l.d $f18,L.416 +c.eq.d $f28,$f18; bc1t L.871 +la $23,43 +beq $30,$0,L.873 +la $4,L.687 +move $5,$23 +jal printf +L.873: +L.871: +l.d $f28,L.870 +la $16,2 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +mtc1 $24,$f28; cvt.d.w $f28,$f28 +l.d $f18,L.416 +c.eq.d $f28,$f18; bc1t L.875 +la $23,44 +beq $30,$0,L.877 +la $4,L.687 +move $5,$23 +jal printf +L.877: +L.875: +l.d $f28,L.870 +la $24,2 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +mtc1 $24,$f28; cvt.d.w $f28,$f28 +l.d $f18,L.416 +c.eq.d $f28,$f18; bc1t L.879 +la $23,45 +beq $30,$0,L.881 +la $4,L.687 +move $5,$23 +jal printf +L.881: +L.879: +l.d $f28,L.870 +la $24,2 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +mtc1 $24,$f28; cvt.d.w $f28,$f28 +l.d $f18,L.416 +c.eq.d $f28,$f18; bc1t L.883 +la $23,46 +beq $30,$0,L.885 +la $4,L.687 +move $5,$23 +jal printf +L.885: +L.883: +l.d $f28,L.870 +la $24,2 +sw $24,-12+160($sp) +lw $24,-12+160($sp) +l.d $f18,L.596 +srl $15,$24,1 +mtc1 $15,$f16; cvt.d.w $f16,$f16 +mul.d $f18,$f18,$f16 +and $24,$24,1 +mtc1 $24,$f16; cvt.d.w $f16,$f16 +add.d $f28,$f18,$f16 +l.d $f18,L.416 +c.eq.d $f28,$f18; bc1t L.887 +la $23,47 +beq $30,$0,L.889 +la $4,L.687 +move $5,$23 +jal printf +L.889: +L.887: +l.d $f28,L.870 +l.s $f26,L.529 +cvt.d.s $f28,$f26 +l.d $f18,L.416 +c.eq.d $f28,$f18; bc1t L.891 +la $23,48 +beq $30,$0,L.893 +la $4,L.687 +move $5,$23 +jal printf +L.893: +L.891: +l.d $f28,L.870 +l.d $f18,L.416 +mov.d $f24,$f18 +mov.d $f28,$f24 +c.eq.d $f28,$f18; bc1t L.895 +la $23,49 +beq $30,$0,L.897 +la $4,L.687 +move $5,$23 +jal printf +L.897: +L.895: +la $22,5 +la $17,2 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +sll $15,$17,8*(4-1); sra $15,$15,8*(4-1) +addu $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,7 +beq $24,$15,L.899 +la $23,50 +beq $30,$0,L.901 +la $4,L.687 +move $5,$23 +jal printf +L.901: +L.899: +la $22,5 +la $16,2 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +sll $15,$16,8*(4-2); sra $15,$15,8*(4-2) +addu $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,7 +beq $24,$15,L.903 +la $23,51 +beq $30,$0,L.905 +la $4,L.687 +move $5,$23 +jal printf +L.905: +L.903: +la $22,5 +la $24,2 +sw $24,-4+160($sp) +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +lw $15,-4+160($sp) +addu $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,7 +beq $24,$15,L.907 +la $23,52 +beq $30,$0,L.909 +la $4,L.687 +move $5,$23 +jal printf +L.909: +L.907: +la $22,5 +la $24,2 +sw $24,-8+160($sp) +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +lw $15,-8+160($sp) +addu $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,7 +beq $24,$15,L.911 +la $23,53 +beq $30,$0,L.913 +la $4,L.687 +move $5,$23 +jal printf +L.913: +L.911: +la $22,5 +la $24,2 +sw $24,-12+160($sp) +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +lw $15,-12+160($sp) +addu $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,7 +beq $24,$15,L.915 +la $23,54 +beq $30,$0,L.917 +la $4,L.687 +move $5,$23 +jal printf +L.917: +L.915: +la $22,5 +l.s $f26,L.529 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +mtc1 $24,$f18; cvt.s.w $f18,$f18 +add.s $f18,$f18,$f26 +trunc.w.s $f2,$f18,$24; mfc1 $24,$f2 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,7 +beq $24,$15,L.919 +la $23,55 +beq $30,$0,L.921 +la $4,L.687 +move $5,$23 +jal printf +L.921: +L.919: +la $22,5 +l.d $f24,L.416 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +mtc1 $24,$f18; cvt.d.w $f18,$f18 +add.d $f18,$f18,$f24 +trunc.w.d $f2,$f18,$24; mfc1 $24,$f2 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,7 +beq $24,$15,L.923 +la $23,56 +beq $30,$0,L.925 +la $4,L.687 +move $5,$23 +jal printf +L.925: +L.923: +la $21,5 +la $17,2 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +sll $15,$17,8*(4-1); sra $15,$15,8*(4-1) +addu $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,7 +beq $24,$15,L.927 +la $23,57 +beq $30,$0,L.929 +la $4,L.687 +move $5,$23 +jal printf +L.929: +L.927: +la $21,5 +la $16,2 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +sll $15,$16,8*(4-2); sra $15,$15,8*(4-2) +addu $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,7 +beq $24,$15,L.931 +la $23,58 +beq $30,$0,L.933 +la $4,L.687 +move $5,$23 +jal printf +L.933: +L.931: +la $21,5 +la $24,2 +sw $24,-4+160($sp) +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +lw $15,-4+160($sp) +addu $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,7 +beq $24,$15,L.935 +la $23,59 +beq $30,$0,L.937 +la $4,L.687 +move $5,$23 +jal printf +L.937: +L.935: +la $21,5 +la $24,2 +sw $24,-8+160($sp) +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +lw $15,-8+160($sp) +addu $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,7 +beq $24,$15,L.939 +la $23,60 +beq $30,$0,L.941 +la $4,L.687 +move $5,$23 +jal printf +L.941: +L.939: +la $21,5 +la $24,2 +sw $24,-12+160($sp) +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +lw $15,-12+160($sp) +addu $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,7 +beq $24,$15,L.943 +la $23,61 +beq $30,$0,L.945 +la $4,L.687 +move $5,$23 +jal printf +L.945: +L.943: +la $21,5 +l.s $f26,L.529 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +mtc1 $24,$f18; cvt.s.w $f18,$f18 +add.s $f18,$f18,$f26 +trunc.w.s $f2,$f18,$24; mfc1 $24,$f2 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,7 +beq $24,$15,L.947 +la $23,62 +beq $30,$0,L.949 +la $4,L.687 +move $5,$23 +jal printf +L.949: +L.947: +la $21,5 +l.d $f24,L.416 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +mtc1 $24,$f18; cvt.d.w $f18,$f18 +add.d $f18,$f18,$f24 +trunc.w.d $f2,$f18,$24; mfc1 $24,$f2 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,7 +beq $24,$15,L.951 +la $23,63 +beq $30,$0,L.953 +la $4,L.687 +move $5,$23 +jal printf +L.953: +L.951: +la $20,5 +la $17,2 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +addu $20,$20,$24 +la $24,7 +beq $20,$24,L.955 +la $23,64 +beq $30,$0,L.957 +la $4,L.687 +move $5,$23 +jal printf +L.957: +L.955: +la $20,5 +la $16,2 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +addu $20,$20,$24 +la $24,7 +beq $20,$24,L.959 +la $23,65 +beq $30,$0,L.961 +la $4,L.687 +move $5,$23 +jal printf +L.961: +L.959: +la $20,5 +la $24,2 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +addu $20,$20,$24 +la $24,7 +beq $20,$24,L.963 +la $23,66 +beq $30,$0,L.965 +la $4,L.687 +move $5,$23 +jal printf +L.965: +L.963: +la $20,5 +la $24,2 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +addu $20,$20,$24 +la $24,7 +beq $20,$24,L.967 +la $23,67 +beq $30,$0,L.969 +la $4,L.687 +move $5,$23 +jal printf +L.969: +L.967: +la $20,5 +la $24,2 +sw $24,-12+160($sp) +move $24,$20 +lw $15,-12+160($sp) +addu $24,$24,$15 +move $20,$24 +la $24,7 +beq $20,$24,L.971 +la $23,68 +beq $30,$0,L.973 +la $4,L.687 +move $5,$23 +jal printf +L.973: +L.971: +la $20,5 +l.s $f26,L.529 +mtc1 $20,$f18; cvt.s.w $f18,$f18 +add.s $f18,$f18,$f26 +trunc.w.s $f2,$f18,$20; mfc1 $20,$f2 +la $24,7 +beq $20,$24,L.975 +la $23,69 +beq $30,$0,L.977 +la $4,L.687 +move $5,$23 +jal printf +L.977: +L.975: +la $20,5 +l.d $f24,L.416 +mtc1 $20,$f18; cvt.d.w $f18,$f18 +add.d $f18,$f18,$f24 +trunc.w.d $f2,$f18,$20; mfc1 $20,$f2 +la $24,7 +beq $20,$24,L.979 +la $23,70 +beq $30,$0,L.981 +la $4,L.687 +move $5,$23 +jal printf +L.981: +L.979: +la $19,5 +la $17,2 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +addu $19,$19,$24 +la $24,7 +beq $19,$24,L.983 +la $23,71 +beq $30,$0,L.985 +la $4,L.687 +move $5,$23 +jal printf +L.985: +L.983: +la $19,5 +la $16,2 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +addu $19,$19,$24 +la $24,7 +beq $19,$24,L.987 +la $23,72 +beq $30,$0,L.989 +la $4,L.687 +move $5,$23 +jal printf +L.989: +L.987: +la $19,5 +la $24,2 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +addu $19,$19,$24 +la $24,7 +beq $19,$24,L.991 +la $23,73 +beq $30,$0,L.993 +la $4,L.687 +move $5,$23 +jal printf +L.993: +L.991: +la $19,5 +la $24,2 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +addu $19,$19,$24 +la $24,7 +beq $19,$24,L.995 +la $23,74 +beq $30,$0,L.997 +la $4,L.687 +move $5,$23 +jal printf +L.997: +L.995: +la $19,5 +la $24,2 +sw $24,-12+160($sp) +move $24,$19 +lw $15,-12+160($sp) +addu $24,$24,$15 +move $19,$24 +la $24,7 +beq $19,$24,L.999 +la $23,75 +beq $30,$0,L.1001 +la $4,L.687 +move $5,$23 +jal printf +L.1001: +L.999: +la $19,5 +l.s $f26,L.529 +mtc1 $19,$f18; cvt.s.w $f18,$f18 +add.s $f18,$f18,$f26 +trunc.w.s $f2,$f18,$19; mfc1 $19,$f2 +la $24,7 +beq $19,$24,L.1003 +la $23,76 +beq $30,$0,L.1005 +la $4,L.687 +move $5,$23 +jal printf +L.1005: +L.1003: +la $19,5 +l.d $f24,L.416 +mtc1 $19,$f18; cvt.d.w $f18,$f18 +add.d $f18,$f18,$f24 +trunc.w.d $f2,$f18,$19; mfc1 $19,$f2 +la $24,7 +beq $19,$24,L.1007 +la $23,77 +beq $30,$0,L.1009 +la $4,L.687 +move $5,$23 +jal printf +L.1009: +L.1007: +la $18,5 +la $17,2 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +addu $18,$18,$24 +la $24,7 +beq $18,$24,L.1011 +la $23,78 +beq $30,$0,L.1013 +la $4,L.687 +move $5,$23 +jal printf +L.1013: +L.1011: +la $18,5 +la $16,2 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +addu $18,$18,$24 +la $24,7 +beq $18,$24,L.1015 +la $23,79 +beq $30,$0,L.1017 +la $4,L.687 +move $5,$23 +jal printf +L.1017: +L.1015: +la $18,5 +la $24,2 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +addu $18,$18,$24 +la $24,7 +beq $18,$24,L.1019 +la $23,80 +beq $30,$0,L.1021 +la $4,L.687 +move $5,$23 +jal printf +L.1021: +L.1019: +la $18,5 +la $24,2 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +addu $18,$18,$24 +la $24,7 +beq $18,$24,L.1023 +la $23,81 +beq $30,$0,L.1025 +la $4,L.687 +move $5,$23 +jal printf +L.1025: +L.1023: +la $18,5 +la $24,2 +sw $24,-12+160($sp) +lw $24,-12+160($sp) +addu $18,$18,$24 +la $24,7 +beq $18,$24,L.1027 +la $23,82 +beq $30,$0,L.1029 +la $4,L.687 +move $5,$23 +jal printf +L.1029: +L.1027: +la $18,5 +l.s $f26,L.529 +l.d $f18,L.596 +srl $24,$18,1 +mtc1 $24,$f16; cvt.d.w $f16,$f16 +mul.d $f18,$f18,$f16 +and $24,$18,1 +mtc1 $24,$f16; cvt.d.w $f16,$f16 +add.d $f18,$f18,$f16 +cvt.s.d $f18,$f18 +add.s $f18,$f18,$f26 +l.s $f16,L.828 +c.lt.s $f18,$f16; bc1t L.1032 +sub.s $f16,$f18,$f16 +trunc.w.s $f2,$f16,$24; mfc1 $24,$f2 +la $24,0x80000000($24) +sw $24,-36+160($sp) +b L.1033 +L.1032: +trunc.w.s $f2,$f18,$24; mfc1 $24,$f2 +sw $24,-36+160($sp) +L.1033: +lw $18,-36+160($sp) +la $24,7 +beq $18,$24,L.1034 +la $23,83 +beq $30,$0,L.1036 +la $4,L.687 +move $5,$23 +jal printf +L.1036: +L.1034: +la $18,5 +l.d $f24,L.416 +l.d $f18,L.596 +srl $24,$18,1 +mtc1 $24,$f16; cvt.d.w $f16,$f16 +mul.d $f18,$f18,$f16 +and $24,$18,1 +mtc1 $24,$f16; cvt.d.w $f16,$f16 +add.d $f18,$f18,$f16 +add.d $f18,$f18,$f24 +l.d $f16,L.836 +c.lt.d $f18,$f16; bc1t L.1039 +sub.d $f16,$f18,$f16 +trunc.w.d $f2,$f16,$24; mfc1 $24,$f2 +la $24,0x80000000($24) +sw $24,-40+160($sp) +b L.1040 +L.1039: +trunc.w.d $f2,$f18,$24; mfc1 $24,$f2 +sw $24,-40+160($sp) +L.1040: +lw $18,-40+160($sp) +la $24,7 +beq $18,$24,L.1041 +la $23,84 +beq $30,$0,L.1043 +la $4,L.687 +move $5,$23 +jal printf +L.1043: +L.1041: +l.s $f30,L.841 +la $17,2 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +mtc1 $24,$f18; cvt.s.w $f18,$f18 +add.s $f30,$f30,$f18 +l.s $f18,L.1047 +c.eq.s $f30,$f18; bc1t L.1045 +la $23,85 +beq $30,$0,L.1048 +la $4,L.687 +move $5,$23 +jal printf +L.1048: +L.1045: +l.s $f30,L.841 +la $16,2 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +mtc1 $24,$f18; cvt.s.w $f18,$f18 +add.s $f30,$f30,$f18 +l.s $f18,L.1047 +c.eq.s $f30,$f18; bc1t L.1050 +la $23,86 +beq $30,$0,L.1052 +la $4,L.687 +move $5,$23 +jal printf +L.1052: +L.1050: +l.s $f30,L.841 +la $24,2 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +mtc1 $24,$f18; cvt.s.w $f18,$f18 +add.s $f30,$f30,$f18 +l.s $f18,L.1047 +c.eq.s $f30,$f18; bc1t L.1054 +la $23,87 +beq $30,$0,L.1056 +la $4,L.687 +move $5,$23 +jal printf +L.1056: +L.1054: +l.s $f30,L.841 +la $24,2 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +mtc1 $24,$f18; cvt.s.w $f18,$f18 +add.s $f30,$f30,$f18 +l.s $f18,L.1047 +c.eq.s $f30,$f18; bc1t L.1058 +la $23,88 +beq $30,$0,L.1060 +la $4,L.687 +move $5,$23 +jal printf +L.1060: +L.1058: +l.s $f30,L.841 +la $24,2 +sw $24,-12+160($sp) +lw $24,-12+160($sp) +l.d $f18,L.596 +srl $15,$24,1 +mtc1 $15,$f16; cvt.d.w $f16,$f16 +mul.d $f18,$f18,$f16 +and $24,$24,1 +mtc1 $24,$f16; cvt.d.w $f16,$f16 +add.d $f18,$f18,$f16 +cvt.s.d $f18,$f18 +add.s $f30,$f30,$f18 +l.s $f18,L.1047 +c.eq.s $f30,$f18; bc1t L.1062 +la $23,89 +beq $30,$0,L.1064 +la $4,L.687 +move $5,$23 +jal printf +L.1064: +L.1062: +l.s $f30,L.841 +l.s $f26,L.529 +add.s $f30,$f30,$f26 +l.s $f18,L.1047 +c.eq.s $f30,$f18; bc1t L.1066 +la $23,90 +beq $30,$0,L.1068 +la $4,L.687 +move $5,$23 +jal printf +L.1068: +L.1066: +l.s $f30,L.841 +l.d $f24,L.416 +cvt.d.s $f18,$f30 +add.d $f18,$f18,$f24 +cvt.s.d $f30,$f18 +l.s $f18,L.1047 +c.eq.s $f30,$f18; bc1t L.1070 +la $23,91 +beq $30,$0,L.1072 +la $4,L.687 +move $5,$23 +jal printf +L.1072: +L.1070: +l.d $f28,L.870 +la $17,2 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +mtc1 $24,$f18; cvt.d.w $f18,$f18 +add.d $f28,$f28,$f18 +l.d $f18,L.1076 +c.eq.d $f28,$f18; bc1t L.1074 +la $23,92 +beq $30,$0,L.1077 +la $4,L.687 +move $5,$23 +jal printf +L.1077: +L.1074: +l.d $f28,L.870 +la $16,2 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +mtc1 $24,$f18; cvt.d.w $f18,$f18 +add.d $f28,$f28,$f18 +l.d $f18,L.1076 +c.eq.d $f28,$f18; bc1t L.1079 +la $23,93 +beq $30,$0,L.1081 +la $4,L.687 +move $5,$23 +jal printf +L.1081: +L.1079: +l.d $f28,L.870 +la $24,2 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +mtc1 $24,$f18; cvt.d.w $f18,$f18 +add.d $f28,$f28,$f18 +l.d $f18,L.1076 +c.eq.d $f28,$f18; bc1t L.1083 +la $23,94 +beq $30,$0,L.1085 +la $4,L.687 +move $5,$23 +jal printf +L.1085: +L.1083: +l.d $f28,L.870 +la $24,2 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +mtc1 $24,$f18; cvt.d.w $f18,$f18 +add.d $f28,$f28,$f18 +l.d $f18,L.1076 +c.eq.d $f28,$f18; bc1t L.1087 +la $23,95 +beq $30,$0,L.1089 +la $4,L.687 +move $5,$23 +jal printf +L.1089: +L.1087: +l.d $f28,L.870 +la $24,2 +sw $24,-12+160($sp) +lw $24,-12+160($sp) +l.d $f18,L.596 +srl $15,$24,1 +mtc1 $15,$f16; cvt.d.w $f16,$f16 +mul.d $f18,$f18,$f16 +and $24,$24,1 +mtc1 $24,$f16; cvt.d.w $f16,$f16 +add.d $f18,$f18,$f16 +add.d $f28,$f28,$f18 +l.d $f18,L.1076 +c.eq.d $f28,$f18; bc1t L.1091 +la $23,96 +beq $30,$0,L.1093 +la $4,L.687 +move $5,$23 +jal printf +L.1093: +L.1091: +l.d $f28,L.870 +l.s $f26,L.529 +cvt.d.s $f18,$f26 +add.d $f28,$f28,$f18 +l.d $f18,L.1076 +c.eq.d $f28,$f18; bc1t L.1095 +la $23,97 +beq $30,$0,L.1097 +la $4,L.687 +move $5,$23 +jal printf +L.1097: +L.1095: +l.d $f28,L.870 +l.d $f24,L.416 +add.d $f28,$f28,$f24 +l.d $f18,L.1076 +c.eq.d $f28,$f18; bc1t L.1099 +la $23,98 +beq $30,$0,L.1101 +la $4,L.687 +move $5,$23 +jal printf +L.1101: +L.1099: +la $22,5 +la $17,2 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +sll $15,$17,8*(4-1); sra $15,$15,8*(4-1) +subu $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,3 +beq $24,$15,L.1103 +la $23,99 +beq $30,$0,L.1105 +la $4,L.687 +move $5,$23 +jal printf +L.1105: +L.1103: +la $22,5 +la $16,2 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +sll $15,$16,8*(4-2); sra $15,$15,8*(4-2) +subu $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,3 +beq $24,$15,L.1107 +la $23,100 +beq $30,$0,L.1109 +la $4,L.687 +move $5,$23 +jal printf +L.1109: +L.1107: +la $22,5 +la $24,2 +sw $24,-4+160($sp) +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +lw $15,-4+160($sp) +subu $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,3 +beq $24,$15,L.1111 +la $23,101 +beq $30,$0,L.1113 +la $4,L.687 +move $5,$23 +jal printf +L.1113: +L.1111: +la $22,5 +la $24,2 +sw $24,-8+160($sp) +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +lw $15,-8+160($sp) +subu $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,3 +beq $24,$15,L.1115 +la $23,102 +beq $30,$0,L.1117 +la $4,L.687 +move $5,$23 +jal printf +L.1117: +L.1115: +la $22,5 +la $24,2 +sw $24,-12+160($sp) +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +lw $15,-12+160($sp) +subu $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,3 +beq $24,$15,L.1119 +la $23,103 +beq $30,$0,L.1121 +la $4,L.687 +move $5,$23 +jal printf +L.1121: +L.1119: +la $22,5 +l.s $f26,L.529 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +mtc1 $24,$f18; cvt.s.w $f18,$f18 +sub.s $f18,$f18,$f26 +trunc.w.s $f2,$f18,$24; mfc1 $24,$f2 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,3 +beq $24,$15,L.1123 +la $23,104 +beq $30,$0,L.1125 +la $4,L.687 +move $5,$23 +jal printf +L.1125: +L.1123: +la $22,5 +l.d $f24,L.416 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +mtc1 $24,$f18; cvt.d.w $f18,$f18 +sub.d $f18,$f18,$f24 +trunc.w.d $f2,$f18,$24; mfc1 $24,$f2 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,3 +beq $24,$15,L.1127 +la $23,105 +beq $30,$0,L.1129 +la $4,L.687 +move $5,$23 +jal printf +L.1129: +L.1127: +la $21,5 +la $17,2 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +sll $15,$17,8*(4-1); sra $15,$15,8*(4-1) +subu $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,3 +beq $24,$15,L.1131 +la $23,106 +beq $30,$0,L.1133 +la $4,L.687 +move $5,$23 +jal printf +L.1133: +L.1131: +la $21,5 +la $16,2 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +sll $15,$16,8*(4-2); sra $15,$15,8*(4-2) +subu $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,3 +beq $24,$15,L.1135 +la $23,107 +beq $30,$0,L.1137 +la $4,L.687 +move $5,$23 +jal printf +L.1137: +L.1135: +la $21,5 +la $24,2 +sw $24,-4+160($sp) +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +lw $15,-4+160($sp) +subu $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,3 +beq $24,$15,L.1139 +la $23,108 +beq $30,$0,L.1141 +la $4,L.687 +move $5,$23 +jal printf +L.1141: +L.1139: +la $21,5 +la $24,2 +sw $24,-8+160($sp) +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +lw $15,-8+160($sp) +subu $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,3 +beq $24,$15,L.1143 +la $23,109 +beq $30,$0,L.1145 +la $4,L.687 +move $5,$23 +jal printf +L.1145: +L.1143: +la $21,5 +la $24,2 +sw $24,-12+160($sp) +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +lw $15,-12+160($sp) +subu $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,3 +beq $24,$15,L.1147 +la $23,110 +beq $30,$0,L.1149 +la $4,L.687 +move $5,$23 +jal printf +L.1149: +L.1147: +la $21,5 +l.s $f26,L.529 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +mtc1 $24,$f18; cvt.s.w $f18,$f18 +sub.s $f18,$f18,$f26 +trunc.w.s $f2,$f18,$24; mfc1 $24,$f2 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,3 +beq $24,$15,L.1151 +la $23,111 +beq $30,$0,L.1153 +la $4,L.687 +move $5,$23 +jal printf +L.1153: +L.1151: +la $21,5 +l.d $f24,L.416 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +mtc1 $24,$f18; cvt.d.w $f18,$f18 +sub.d $f18,$f18,$f24 +trunc.w.d $f2,$f18,$24; mfc1 $24,$f2 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,3 +beq $24,$15,L.1155 +la $23,112 +beq $30,$0,L.1157 +la $4,L.687 +move $5,$23 +jal printf +L.1157: +L.1155: +la $20,5 +la $17,2 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +subu $20,$20,$24 +la $24,3 +beq $20,$24,L.1159 +la $23,113 +beq $30,$0,L.1161 +la $4,L.687 +move $5,$23 +jal printf +L.1161: +L.1159: +la $20,5 +la $16,2 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +subu $20,$20,$24 +la $24,3 +beq $20,$24,L.1163 +la $23,114 +beq $30,$0,L.1165 +la $4,L.687 +move $5,$23 +jal printf +L.1165: +L.1163: +la $20,5 +la $24,2 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +subu $20,$20,$24 +la $24,3 +beq $20,$24,L.1167 +la $23,115 +beq $30,$0,L.1169 +la $4,L.687 +move $5,$23 +jal printf +L.1169: +L.1167: +la $20,5 +la $24,2 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +subu $20,$20,$24 +la $24,3 +beq $20,$24,L.1171 +la $23,116 +beq $30,$0,L.1173 +la $4,L.687 +move $5,$23 +jal printf +L.1173: +L.1171: +la $20,5 +la $24,2 +sw $24,-12+160($sp) +move $24,$20 +lw $15,-12+160($sp) +subu $24,$24,$15 +move $20,$24 +la $24,3 +beq $20,$24,L.1175 +la $23,117 +beq $30,$0,L.1177 +la $4,L.687 +move $5,$23 +jal printf +L.1177: +L.1175: +la $20,5 +l.s $f26,L.529 +mtc1 $20,$f18; cvt.s.w $f18,$f18 +sub.s $f18,$f18,$f26 +trunc.w.s $f2,$f18,$20; mfc1 $20,$f2 +la $24,3 +beq $20,$24,L.1179 +la $23,118 +beq $30,$0,L.1181 +la $4,L.687 +move $5,$23 +jal printf +L.1181: +L.1179: +la $20,5 +l.d $f24,L.416 +mtc1 $20,$f18; cvt.d.w $f18,$f18 +sub.d $f18,$f18,$f24 +trunc.w.d $f2,$f18,$20; mfc1 $20,$f2 +la $24,3 +beq $20,$24,L.1183 +la $23,119 +beq $30,$0,L.1185 +la $4,L.687 +move $5,$23 +jal printf +L.1185: +L.1183: +la $19,5 +la $17,2 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +subu $19,$19,$24 +la $24,3 +beq $19,$24,L.1187 +la $23,120 +beq $30,$0,L.1189 +la $4,L.687 +move $5,$23 +jal printf +L.1189: +L.1187: +la $19,5 +la $16,2 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +subu $19,$19,$24 +la $24,3 +beq $19,$24,L.1191 +la $23,121 +beq $30,$0,L.1193 +la $4,L.687 +move $5,$23 +jal printf +L.1193: +L.1191: +la $19,5 +la $24,2 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +subu $19,$19,$24 +la $24,3 +beq $19,$24,L.1195 +la $23,122 +beq $30,$0,L.1197 +la $4,L.687 +move $5,$23 +jal printf +L.1197: +L.1195: +la $19,5 +la $24,2 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +subu $19,$19,$24 +la $24,3 +beq $19,$24,L.1199 +la $23,123 +beq $30,$0,L.1201 +la $4,L.687 +move $5,$23 +jal printf +L.1201: +L.1199: +la $19,5 +la $24,2 +sw $24,-12+160($sp) +move $24,$19 +lw $15,-12+160($sp) +subu $24,$24,$15 +move $19,$24 +la $24,3 +beq $19,$24,L.1203 +la $23,124 +beq $30,$0,L.1205 +la $4,L.687 +move $5,$23 +jal printf +L.1205: +L.1203: +la $19,5 +l.s $f26,L.529 +mtc1 $19,$f18; cvt.s.w $f18,$f18 +sub.s $f18,$f18,$f26 +trunc.w.s $f2,$f18,$19; mfc1 $19,$f2 +la $24,3 +beq $19,$24,L.1207 +la $23,125 +beq $30,$0,L.1209 +la $4,L.687 +move $5,$23 +jal printf +L.1209: +L.1207: +la $19,5 +l.d $f24,L.416 +mtc1 $19,$f18; cvt.d.w $f18,$f18 +sub.d $f18,$f18,$f24 +trunc.w.d $f2,$f18,$19; mfc1 $19,$f2 +la $24,3 +beq $19,$24,L.1211 +la $23,126 +beq $30,$0,L.1213 +la $4,L.687 +move $5,$23 +jal printf +L.1213: +L.1211: +la $18,5 +la $17,2 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +subu $18,$18,$24 +la $24,3 +beq $18,$24,L.1215 +la $23,127 +beq $30,$0,L.1217 +la $4,L.687 +move $5,$23 +jal printf +L.1217: +L.1215: +la $18,5 +la $16,2 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +subu $18,$18,$24 +la $24,3 +beq $18,$24,L.1219 +la $23,128 +beq $30,$0,L.1221 +la $4,L.687 +move $5,$23 +jal printf +L.1221: +L.1219: +la $18,5 +la $24,2 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +subu $18,$18,$24 +la $24,3 +beq $18,$24,L.1223 +la $23,129 +beq $30,$0,L.1225 +la $4,L.687 +move $5,$23 +jal printf +L.1225: +L.1223: +la $18,5 +la $24,2 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +subu $18,$18,$24 +la $24,3 +beq $18,$24,L.1227 +la $23,130 +beq $30,$0,L.1229 +la $4,L.687 +move $5,$23 +jal printf +L.1229: +L.1227: +la $18,5 +la $24,2 +sw $24,-12+160($sp) +lw $24,-12+160($sp) +subu $18,$18,$24 +la $24,3 +beq $18,$24,L.1231 +la $23,131 +beq $30,$0,L.1233 +la $4,L.687 +move $5,$23 +jal printf +L.1233: +L.1231: +la $18,5 +l.s $f26,L.529 +l.d $f18,L.596 +srl $24,$18,1 +mtc1 $24,$f16; cvt.d.w $f16,$f16 +mul.d $f18,$f18,$f16 +and $24,$18,1 +mtc1 $24,$f16; cvt.d.w $f16,$f16 +add.d $f18,$f18,$f16 +cvt.s.d $f18,$f18 +sub.s $f18,$f18,$f26 +l.s $f16,L.828 +c.lt.s $f18,$f16; bc1t L.1236 +sub.s $f16,$f18,$f16 +trunc.w.s $f2,$f16,$24; mfc1 $24,$f2 +la $24,0x80000000($24) +sw $24,-44+160($sp) +b L.1237 +L.1236: +trunc.w.s $f2,$f18,$24; mfc1 $24,$f2 +sw $24,-44+160($sp) +L.1237: +lw $18,-44+160($sp) +la $24,3 +beq $18,$24,L.1238 +la $23,132 +beq $30,$0,L.1240 +la $4,L.687 +move $5,$23 +jal printf +L.1240: +L.1238: +la $18,5 +l.d $f24,L.416 +l.d $f18,L.596 +srl $24,$18,1 +mtc1 $24,$f16; cvt.d.w $f16,$f16 +mul.d $f18,$f18,$f16 +and $24,$18,1 +mtc1 $24,$f16; cvt.d.w $f16,$f16 +add.d $f18,$f18,$f16 +sub.d $f18,$f18,$f24 +l.d $f16,L.836 +c.lt.d $f18,$f16; bc1t L.1243 +sub.d $f16,$f18,$f16 +trunc.w.d $f2,$f16,$24; mfc1 $24,$f2 +la $24,0x80000000($24) +sw $24,-48+160($sp) +b L.1244 +L.1243: +trunc.w.d $f2,$f18,$24; mfc1 $24,$f2 +sw $24,-48+160($sp) +L.1244: +lw $18,-48+160($sp) +la $24,3 +beq $18,$24,L.1245 +la $23,133 +beq $30,$0,L.1247 +la $4,L.687 +move $5,$23 +jal printf +L.1247: +L.1245: +l.s $f30,L.841 +la $17,2 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +mtc1 $24,$f18; cvt.s.w $f18,$f18 +sub.s $f30,$f30,$f18 +l.s $f18,L.1251 +c.eq.s $f30,$f18; bc1t L.1249 +la $23,134 +beq $30,$0,L.1252 +la $4,L.687 +move $5,$23 +jal printf +L.1252: +L.1249: +l.s $f30,L.841 +la $16,2 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +mtc1 $24,$f18; cvt.s.w $f18,$f18 +sub.s $f30,$f30,$f18 +l.s $f18,L.1251 +c.eq.s $f30,$f18; bc1t L.1254 +la $23,135 +beq $30,$0,L.1256 +la $4,L.687 +move $5,$23 +jal printf +L.1256: +L.1254: +l.s $f30,L.841 +la $24,2 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +mtc1 $24,$f18; cvt.s.w $f18,$f18 +sub.s $f30,$f30,$f18 +l.s $f18,L.1251 +c.eq.s $f30,$f18; bc1t L.1258 +la $23,136 +beq $30,$0,L.1260 +la $4,L.687 +move $5,$23 +jal printf +L.1260: +L.1258: +l.s $f30,L.841 +la $24,2 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +mtc1 $24,$f18; cvt.s.w $f18,$f18 +sub.s $f30,$f30,$f18 +l.s $f18,L.1251 +c.eq.s $f30,$f18; bc1t L.1262 +la $23,137 +beq $30,$0,L.1264 +la $4,L.687 +move $5,$23 +jal printf +L.1264: +L.1262: +l.s $f30,L.841 +la $24,2 +sw $24,-12+160($sp) +lw $24,-12+160($sp) +l.d $f18,L.596 +srl $15,$24,1 +mtc1 $15,$f16; cvt.d.w $f16,$f16 +mul.d $f18,$f18,$f16 +and $24,$24,1 +mtc1 $24,$f16; cvt.d.w $f16,$f16 +add.d $f18,$f18,$f16 +cvt.s.d $f18,$f18 +sub.s $f30,$f30,$f18 +l.s $f18,L.1251 +c.eq.s $f30,$f18; bc1t L.1266 +la $23,138 +beq $30,$0,L.1268 +la $4,L.687 +move $5,$23 +jal printf +L.1268: +L.1266: +l.s $f30,L.841 +l.s $f26,L.529 +sub.s $f30,$f30,$f26 +l.s $f18,L.1251 +c.eq.s $f30,$f18; bc1t L.1270 +la $23,139 +beq $30,$0,L.1272 +la $4,L.687 +move $5,$23 +jal printf +L.1272: +L.1270: +l.s $f30,L.841 +l.d $f24,L.416 +cvt.d.s $f18,$f30 +sub.d $f18,$f18,$f24 +cvt.s.d $f30,$f18 +l.s $f18,L.1251 +c.eq.s $f30,$f18; bc1t L.1274 +la $23,140 +beq $30,$0,L.1276 +la $4,L.687 +move $5,$23 +jal printf +L.1276: +L.1274: +l.d $f28,L.870 +la $17,2 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +mtc1 $24,$f18; cvt.d.w $f18,$f18 +sub.d $f28,$f28,$f18 +l.d $f18,L.1280 +c.eq.d $f28,$f18; bc1t L.1278 +la $23,141 +beq $30,$0,L.1281 +la $4,L.687 +move $5,$23 +jal printf +L.1281: +L.1278: +l.d $f28,L.870 +la $16,2 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +mtc1 $24,$f18; cvt.d.w $f18,$f18 +sub.d $f28,$f28,$f18 +l.d $f18,L.1280 +c.eq.d $f28,$f18; bc1t L.1283 +la $23,142 +beq $30,$0,L.1285 +la $4,L.687 +move $5,$23 +jal printf +L.1285: +L.1283: +l.d $f28,L.870 +la $24,2 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +mtc1 $24,$f18; cvt.d.w $f18,$f18 +sub.d $f28,$f28,$f18 +l.d $f18,L.1280 +c.eq.d $f28,$f18; bc1t L.1287 +la $23,143 +beq $30,$0,L.1289 +la $4,L.687 +move $5,$23 +jal printf +L.1289: +L.1287: +l.d $f28,L.870 +la $24,2 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +mtc1 $24,$f18; cvt.d.w $f18,$f18 +sub.d $f28,$f28,$f18 +l.d $f18,L.1280 +c.eq.d $f28,$f18; bc1t L.1291 +la $23,144 +beq $30,$0,L.1293 +la $4,L.687 +move $5,$23 +jal printf +L.1293: +L.1291: +l.d $f28,L.870 +la $24,2 +sw $24,-12+160($sp) +lw $24,-12+160($sp) +l.d $f18,L.596 +srl $15,$24,1 +mtc1 $15,$f16; cvt.d.w $f16,$f16 +mul.d $f18,$f18,$f16 +and $24,$24,1 +mtc1 $24,$f16; cvt.d.w $f16,$f16 +add.d $f18,$f18,$f16 +sub.d $f28,$f28,$f18 +l.d $f18,L.1280 +c.eq.d $f28,$f18; bc1t L.1295 +la $23,145 +beq $30,$0,L.1297 +la $4,L.687 +move $5,$23 +jal printf +L.1297: +L.1295: +l.d $f28,L.870 +l.s $f26,L.529 +cvt.d.s $f18,$f26 +sub.d $f28,$f28,$f18 +l.d $f18,L.1280 +c.eq.d $f28,$f18; bc1t L.1299 +la $23,146 +beq $30,$0,L.1301 +la $4,L.687 +move $5,$23 +jal printf +L.1301: +L.1299: +l.d $f28,L.870 +l.d $f24,L.416 +sub.d $f28,$f28,$f24 +l.d $f18,L.1280 +c.eq.d $f28,$f18; bc1t L.1303 +la $23,147 +beq $30,$0,L.1305 +la $4,L.687 +move $5,$23 +jal printf +L.1305: +L.1303: +la $22,5 +la $17,2 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +sll $15,$17,8*(4-1); sra $15,$15,8*(4-1) +mul $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,10 +beq $24,$15,L.1307 +la $23,148 +beq $30,$0,L.1309 +la $4,L.687 +move $5,$23 +jal printf +L.1309: +L.1307: +la $22,5 +la $16,2 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +sll $15,$16,8*(4-2); sra $15,$15,8*(4-2) +mul $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,10 +beq $24,$15,L.1311 +la $23,149 +beq $30,$0,L.1313 +la $4,L.687 +move $5,$23 +jal printf +L.1313: +L.1311: +la $22,5 +la $24,2 +sw $24,-4+160($sp) +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +lw $15,-4+160($sp) +mul $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,10 +beq $24,$15,L.1315 +la $23,150 +beq $30,$0,L.1317 +la $4,L.687 +move $5,$23 +jal printf +L.1317: +L.1315: +la $22,5 +la $24,2 +sw $24,-8+160($sp) +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +lw $15,-8+160($sp) +mul $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,10 +beq $24,$15,L.1319 +la $23,151 +beq $30,$0,L.1321 +la $4,L.687 +move $5,$23 +jal printf +L.1321: +L.1319: +la $22,5 +la $24,2 +sw $24,-12+160($sp) +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +lw $15,-12+160($sp) +mul $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,10 +beq $24,$15,L.1323 +la $23,152 +beq $30,$0,L.1325 +la $4,L.687 +move $5,$23 +jal printf +L.1325: +L.1323: +la $22,5 +l.s $f26,L.529 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +mtc1 $24,$f18; cvt.s.w $f18,$f18 +mul.s $f18,$f18,$f26 +trunc.w.s $f2,$f18,$24; mfc1 $24,$f2 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,10 +beq $24,$15,L.1327 +la $23,153 +beq $30,$0,L.1329 +la $4,L.687 +move $5,$23 +jal printf +L.1329: +L.1327: +la $22,5 +l.d $f24,L.416 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +mtc1 $24,$f18; cvt.d.w $f18,$f18 +mul.d $f18,$f18,$f24 +trunc.w.d $f2,$f18,$24; mfc1 $24,$f2 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,10 +beq $24,$15,L.1331 +la $23,154 +beq $30,$0,L.1333 +la $4,L.687 +move $5,$23 +jal printf +L.1333: +L.1331: +la $21,5 +la $17,2 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +sll $15,$17,8*(4-1); sra $15,$15,8*(4-1) +mul $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,10 +beq $24,$15,L.1335 +la $23,155 +beq $30,$0,L.1337 +la $4,L.687 +move $5,$23 +jal printf +L.1337: +L.1335: +la $21,5 +la $16,2 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +sll $15,$16,8*(4-2); sra $15,$15,8*(4-2) +mul $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,10 +beq $24,$15,L.1339 +la $23,156 +beq $30,$0,L.1341 +la $4,L.687 +move $5,$23 +jal printf +L.1341: +L.1339: +la $21,5 +la $24,2 +sw $24,-4+160($sp) +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +lw $15,-4+160($sp) +mul $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,10 +beq $24,$15,L.1343 +la $23,157 +beq $30,$0,L.1345 +la $4,L.687 +move $5,$23 +jal printf +L.1345: +L.1343: +la $21,5 +la $24,2 +sw $24,-8+160($sp) +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +lw $15,-8+160($sp) +mul $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,10 +beq $24,$15,L.1347 +la $23,158 +beq $30,$0,L.1349 +la $4,L.687 +move $5,$23 +jal printf +L.1349: +L.1347: +la $21,5 +la $24,2 +sw $24,-12+160($sp) +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +lw $15,-12+160($sp) +mul $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,10 +beq $24,$15,L.1351 +la $23,159 +beq $30,$0,L.1353 +la $4,L.687 +move $5,$23 +jal printf +L.1353: +L.1351: +la $21,5 +l.s $f26,L.529 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +mtc1 $24,$f18; cvt.s.w $f18,$f18 +mul.s $f18,$f18,$f26 +trunc.w.s $f2,$f18,$24; mfc1 $24,$f2 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,10 +beq $24,$15,L.1355 +la $23,160 +beq $30,$0,L.1357 +la $4,L.687 +move $5,$23 +jal printf +L.1357: +L.1355: +la $21,5 +l.d $f24,L.416 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +mtc1 $24,$f18; cvt.d.w $f18,$f18 +mul.d $f18,$f18,$f24 +trunc.w.d $f2,$f18,$24; mfc1 $24,$f2 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,10 +beq $24,$15,L.1359 +la $23,161 +beq $30,$0,L.1361 +la $4,L.687 +move $5,$23 +jal printf +L.1361: +L.1359: +la $20,5 +la $17,2 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +mul $20,$20,$24 +la $24,10 +beq $20,$24,L.1363 +la $23,162 +beq $30,$0,L.1365 +la $4,L.687 +move $5,$23 +jal printf +L.1365: +L.1363: +la $20,5 +la $16,2 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +mul $20,$20,$24 +la $24,10 +beq $20,$24,L.1367 +la $23,163 +beq $30,$0,L.1369 +la $4,L.687 +move $5,$23 +jal printf +L.1369: +L.1367: +la $20,5 +la $24,2 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +mul $20,$20,$24 +la $24,10 +beq $20,$24,L.1371 +la $23,164 +beq $30,$0,L.1373 +la $4,L.687 +move $5,$23 +jal printf +L.1373: +L.1371: +la $20,5 +la $24,2 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +mul $20,$20,$24 +la $24,10 +beq $20,$24,L.1375 +la $23,165 +beq $30,$0,L.1377 +la $4,L.687 +move $5,$23 +jal printf +L.1377: +L.1375: +la $20,5 +la $24,2 +sw $24,-12+160($sp) +move $24,$20 +lw $15,-12+160($sp) +mul $24,$24,$15 +move $20,$24 +la $24,10 +beq $20,$24,L.1379 +la $23,166 +beq $30,$0,L.1381 +la $4,L.687 +move $5,$23 +jal printf +L.1381: +L.1379: +la $20,5 +l.s $f26,L.529 +mtc1 $20,$f18; cvt.s.w $f18,$f18 +mul.s $f18,$f18,$f26 +trunc.w.s $f2,$f18,$20; mfc1 $20,$f2 +la $24,10 +beq $20,$24,L.1383 +la $23,167 +beq $30,$0,L.1385 +la $4,L.687 +move $5,$23 +jal printf +L.1385: +L.1383: +la $20,5 +l.d $f24,L.416 +mtc1 $20,$f18; cvt.d.w $f18,$f18 +mul.d $f18,$f18,$f24 +trunc.w.d $f2,$f18,$20; mfc1 $20,$f2 +la $24,10 +beq $20,$24,L.1387 +la $23,168 +beq $30,$0,L.1389 +la $4,L.687 +move $5,$23 +jal printf +L.1389: +L.1387: +la $19,5 +la $17,2 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +mul $19,$19,$24 +la $24,10 +beq $19,$24,L.1391 +la $23,169 +beq $30,$0,L.1393 +la $4,L.687 +move $5,$23 +jal printf +L.1393: +L.1391: +la $19,5 +la $16,2 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +mul $19,$19,$24 +la $24,10 +beq $19,$24,L.1395 +la $23,170 +beq $30,$0,L.1397 +la $4,L.687 +move $5,$23 +jal printf +L.1397: +L.1395: +la $19,5 +la $24,2 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +mul $19,$19,$24 +la $24,10 +beq $19,$24,L.1399 +la $23,171 +beq $30,$0,L.1401 +la $4,L.687 +move $5,$23 +jal printf +L.1401: +L.1399: +la $19,5 +la $24,2 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +mul $19,$19,$24 +la $24,10 +beq $19,$24,L.1403 +la $23,172 +beq $30,$0,L.1405 +la $4,L.687 +move $5,$23 +jal printf +L.1405: +L.1403: +la $19,5 +la $24,2 +sw $24,-12+160($sp) +move $24,$19 +lw $15,-12+160($sp) +mul $24,$24,$15 +move $19,$24 +la $24,10 +beq $19,$24,L.1407 +la $23,173 +beq $30,$0,L.1409 +la $4,L.687 +move $5,$23 +jal printf +L.1409: +L.1407: +la $19,5 +l.s $f26,L.529 +mtc1 $19,$f18; cvt.s.w $f18,$f18 +mul.s $f18,$f18,$f26 +trunc.w.s $f2,$f18,$19; mfc1 $19,$f2 +la $24,10 +beq $19,$24,L.1411 +la $23,174 +beq $30,$0,L.1413 +la $4,L.687 +move $5,$23 +jal printf +L.1413: +L.1411: +la $19,5 +l.d $f24,L.416 +mtc1 $19,$f18; cvt.d.w $f18,$f18 +mul.d $f18,$f18,$f24 +trunc.w.d $f2,$f18,$19; mfc1 $19,$f2 +la $24,10 +beq $19,$24,L.1415 +la $23,175 +beq $30,$0,L.1417 +la $4,L.687 +move $5,$23 +jal printf +L.1417: +L.1415: +la $18,5 +la $17,2 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +mul $18,$18,$24 +la $24,10 +beq $18,$24,L.1419 +la $23,176 +beq $30,$0,L.1421 +la $4,L.687 +move $5,$23 +jal printf +L.1421: +L.1419: +la $18,5 +la $16,2 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +mul $18,$18,$24 +la $24,10 +beq $18,$24,L.1423 +la $23,177 +beq $30,$0,L.1425 +la $4,L.687 +move $5,$23 +jal printf +L.1425: +L.1423: +la $18,5 +la $24,2 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +mul $18,$18,$24 +la $24,10 +beq $18,$24,L.1427 +la $23,178 +beq $30,$0,L.1429 +la $4,L.687 +move $5,$23 +jal printf +L.1429: +L.1427: +la $18,5 +la $24,2 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +mul $18,$18,$24 +la $24,10 +beq $18,$24,L.1431 +la $23,179 +beq $30,$0,L.1433 +la $4,L.687 +move $5,$23 +jal printf +L.1433: +L.1431: +la $18,5 +la $24,2 +sw $24,-12+160($sp) +lw $24,-12+160($sp) +mul $18,$18,$24 +la $24,10 +beq $18,$24,L.1435 +la $23,180 +beq $30,$0,L.1437 +la $4,L.687 +move $5,$23 +jal printf +L.1437: +L.1435: +la $18,5 +l.s $f26,L.529 +l.d $f18,L.596 +srl $24,$18,1 +mtc1 $24,$f16; cvt.d.w $f16,$f16 +mul.d $f18,$f18,$f16 +and $24,$18,1 +mtc1 $24,$f16; cvt.d.w $f16,$f16 +add.d $f18,$f18,$f16 +cvt.s.d $f18,$f18 +mul.s $f18,$f18,$f26 +l.s $f16,L.828 +c.lt.s $f18,$f16; bc1t L.1440 +sub.s $f16,$f18,$f16 +trunc.w.s $f2,$f16,$24; mfc1 $24,$f2 +la $24,0x80000000($24) +sw $24,-52+160($sp) +b L.1441 +L.1440: +trunc.w.s $f2,$f18,$24; mfc1 $24,$f2 +sw $24,-52+160($sp) +L.1441: +lw $18,-52+160($sp) +la $24,10 +beq $18,$24,L.1442 +la $23,181 +beq $30,$0,L.1444 +la $4,L.687 +move $5,$23 +jal printf +L.1444: +L.1442: +la $18,5 +l.d $f24,L.416 +l.d $f18,L.596 +srl $24,$18,1 +mtc1 $24,$f16; cvt.d.w $f16,$f16 +mul.d $f18,$f18,$f16 +and $24,$18,1 +mtc1 $24,$f16; cvt.d.w $f16,$f16 +add.d $f18,$f18,$f16 +mul.d $f18,$f18,$f24 +l.d $f16,L.836 +c.lt.d $f18,$f16; bc1t L.1447 +sub.d $f16,$f18,$f16 +trunc.w.d $f2,$f16,$24; mfc1 $24,$f2 +la $24,0x80000000($24) +sw $24,-56+160($sp) +b L.1448 +L.1447: +trunc.w.d $f2,$f18,$24; mfc1 $24,$f2 +sw $24,-56+160($sp) +L.1448: +lw $18,-56+160($sp) +la $24,10 +beq $18,$24,L.1449 +la $23,182 +beq $30,$0,L.1451 +la $4,L.687 +move $5,$23 +jal printf +L.1451: +L.1449: +l.s $f30,L.841 +la $17,2 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +mtc1 $24,$f18; cvt.s.w $f18,$f18 +mul.s $f30,$f30,$f18 +l.s $f18,L.1455 +c.eq.s $f30,$f18; bc1t L.1453 +la $23,183 +beq $30,$0,L.1456 +la $4,L.687 +move $5,$23 +jal printf +L.1456: +L.1453: +l.s $f30,L.841 +la $16,2 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +mtc1 $24,$f18; cvt.s.w $f18,$f18 +mul.s $f30,$f30,$f18 +l.s $f18,L.1455 +c.eq.s $f30,$f18; bc1t L.1458 +la $23,184 +beq $30,$0,L.1460 +la $4,L.687 +move $5,$23 +jal printf +L.1460: +L.1458: +l.s $f30,L.841 +la $24,2 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +mtc1 $24,$f18; cvt.s.w $f18,$f18 +mul.s $f30,$f30,$f18 +l.s $f18,L.1455 +c.eq.s $f30,$f18; bc1t L.1462 +la $23,185 +beq $30,$0,L.1464 +la $4,L.687 +move $5,$23 +jal printf +L.1464: +L.1462: +l.s $f30,L.841 +la $24,2 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +mtc1 $24,$f18; cvt.s.w $f18,$f18 +mul.s $f30,$f30,$f18 +l.s $f18,L.1455 +c.eq.s $f30,$f18; bc1t L.1466 +la $23,186 +beq $30,$0,L.1468 +la $4,L.687 +move $5,$23 +jal printf +L.1468: +L.1466: +l.s $f30,L.841 +la $24,2 +sw $24,-12+160($sp) +lw $24,-12+160($sp) +l.d $f18,L.596 +srl $15,$24,1 +mtc1 $15,$f16; cvt.d.w $f16,$f16 +mul.d $f18,$f18,$f16 +and $24,$24,1 +mtc1 $24,$f16; cvt.d.w $f16,$f16 +add.d $f18,$f18,$f16 +cvt.s.d $f18,$f18 +mul.s $f30,$f30,$f18 +l.s $f18,L.1455 +c.eq.s $f30,$f18; bc1t L.1470 +la $23,187 +beq $30,$0,L.1472 +la $4,L.687 +move $5,$23 +jal printf +L.1472: +L.1470: +l.s $f30,L.841 +l.s $f26,L.529 +mul.s $f30,$f30,$f26 +l.s $f18,L.1455 +c.eq.s $f30,$f18; bc1t L.1474 +la $23,188 +beq $30,$0,L.1476 +la $4,L.687 +move $5,$23 +jal printf +L.1476: +L.1474: +l.s $f30,L.841 +l.d $f24,L.416 +cvt.d.s $f18,$f30 +mul.d $f18,$f18,$f24 +cvt.s.d $f30,$f18 +l.s $f18,L.1455 +c.eq.s $f30,$f18; bc1t L.1478 +la $23,189 +beq $30,$0,L.1480 +la $4,L.687 +move $5,$23 +jal printf +L.1480: +L.1478: +l.d $f28,L.870 +la $17,2 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +mtc1 $24,$f18; cvt.d.w $f18,$f18 +mul.d $f28,$f28,$f18 +l.d $f18,L.1484 +c.eq.d $f28,$f18; bc1t L.1482 +la $23,190 +beq $30,$0,L.1485 +la $4,L.687 +move $5,$23 +jal printf +L.1485: +L.1482: +l.d $f28,L.870 +la $16,2 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +mtc1 $24,$f18; cvt.d.w $f18,$f18 +mul.d $f28,$f28,$f18 +l.d $f18,L.1484 +c.eq.d $f28,$f18; bc1t L.1487 +la $23,191 +beq $30,$0,L.1489 +la $4,L.687 +move $5,$23 +jal printf +L.1489: +L.1487: +l.d $f28,L.870 +la $24,2 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +mtc1 $24,$f18; cvt.d.w $f18,$f18 +mul.d $f28,$f28,$f18 +l.d $f18,L.1484 +c.eq.d $f28,$f18; bc1t L.1491 +la $23,192 +beq $30,$0,L.1493 +la $4,L.687 +move $5,$23 +jal printf +L.1493: +L.1491: +l.d $f28,L.870 +la $24,2 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +mtc1 $24,$f18; cvt.d.w $f18,$f18 +mul.d $f28,$f28,$f18 +l.d $f18,L.1484 +c.eq.d $f28,$f18; bc1t L.1495 +la $23,193 +beq $30,$0,L.1497 +la $4,L.687 +move $5,$23 +jal printf +L.1497: +L.1495: +l.d $f28,L.870 +la $24,2 +sw $24,-12+160($sp) +lw $24,-12+160($sp) +l.d $f18,L.596 +srl $15,$24,1 +mtc1 $15,$f16; cvt.d.w $f16,$f16 +mul.d $f18,$f18,$f16 +and $24,$24,1 +mtc1 $24,$f16; cvt.d.w $f16,$f16 +add.d $f18,$f18,$f16 +mul.d $f28,$f28,$f18 +l.d $f18,L.1484 +c.eq.d $f28,$f18; bc1t L.1499 +la $23,194 +beq $30,$0,L.1501 +la $4,L.687 +move $5,$23 +jal printf +L.1501: +L.1499: +l.d $f28,L.870 +l.s $f26,L.529 +cvt.d.s $f18,$f26 +mul.d $f28,$f28,$f18 +l.d $f18,L.1484 +c.eq.d $f28,$f18; bc1t L.1503 +la $23,195 +beq $30,$0,L.1505 +la $4,L.687 +move $5,$23 +jal printf +L.1505: +L.1503: +l.d $f28,L.870 +l.d $f24,L.416 +mul.d $f28,$f28,$f24 +l.d $f18,L.1484 +c.eq.d $f28,$f18; bc1t L.1507 +la $23,196 +beq $30,$0,L.1509 +la $4,L.687 +move $5,$23 +jal printf +L.1509: +L.1507: +la $22,5 +la $17,2 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +sll $15,$17,8*(4-1); sra $15,$15,8*(4-1) +div $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,2 +beq $24,$15,L.1511 +la $23,197 +beq $30,$0,L.1513 +la $4,L.687 +move $5,$23 +jal printf +L.1513: +L.1511: +la $22,5 +la $16,2 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +sll $15,$16,8*(4-2); sra $15,$15,8*(4-2) +div $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,2 +beq $24,$15,L.1515 +la $23,198 +beq $30,$0,L.1517 +la $4,L.687 +move $5,$23 +jal printf +L.1517: +L.1515: +la $22,5 +la $24,2 +sw $24,-4+160($sp) +sll $15,$22,8*(4-1); sra $15,$15,8*(4-1) +lw $14,-4+160($sp) +div $15,$15,$14 +move $22,$15 +sll $15,$22,8*(4-1); sra $15,$15,8*(4-1) +beq $15,$24,L.1519 +la $23,199 +beq $30,$0,L.1521 +la $4,L.687 +move $5,$23 +jal printf +L.1521: +L.1519: +la $22,5 +la $24,2 +sw $24,-8+160($sp) +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +lw $15,-8+160($sp) +div $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,2 +beq $24,$15,L.1523 +la $23,200 +beq $30,$0,L.1525 +la $4,L.687 +move $5,$23 +jal printf +L.1525: +L.1523: +la $22,5 +la $24,2 +sw $24,-12+160($sp) +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +lw $15,-12+160($sp) +divu $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,2 +beq $24,$15,L.1527 +la $23,201 +beq $30,$0,L.1529 +la $4,L.687 +move $5,$23 +jal printf +L.1529: +L.1527: +la $22,5 +l.s $f26,L.529 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +mtc1 $24,$f18; cvt.s.w $f18,$f18 +div.s $f18,$f18,$f26 +trunc.w.s $f2,$f18,$24; mfc1 $24,$f2 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,2 +beq $24,$15,L.1531 +la $23,202 +beq $30,$0,L.1533 +la $4,L.687 +move $5,$23 +jal printf +L.1533: +L.1531: +la $22,5 +l.d $f24,L.416 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +mtc1 $24,$f18; cvt.d.w $f18,$f18 +div.d $f18,$f18,$f24 +trunc.w.d $f2,$f18,$24; mfc1 $24,$f2 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,2 +beq $24,$15,L.1535 +la $23,203 +beq $30,$0,L.1537 +la $4,L.687 +move $5,$23 +jal printf +L.1537: +L.1535: +la $21,5 +la $17,2 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +sll $15,$17,8*(4-1); sra $15,$15,8*(4-1) +div $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,2 +beq $24,$15,L.1539 +la $23,204 +beq $30,$0,L.1541 +la $4,L.687 +move $5,$23 +jal printf +L.1541: +L.1539: +la $21,5 +la $16,2 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +sll $15,$16,8*(4-2); sra $15,$15,8*(4-2) +div $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,2 +beq $24,$15,L.1543 +la $23,205 +beq $30,$0,L.1545 +la $4,L.687 +move $5,$23 +jal printf +L.1545: +L.1543: +la $21,5 +la $24,2 +sw $24,-4+160($sp) +sll $15,$21,8*(4-2); sra $15,$15,8*(4-2) +lw $14,-4+160($sp) +div $15,$15,$14 +move $21,$15 +sll $15,$21,8*(4-2); sra $15,$15,8*(4-2) +beq $15,$24,L.1547 +la $23,206 +beq $30,$0,L.1549 +la $4,L.687 +move $5,$23 +jal printf +L.1549: +L.1547: +la $21,5 +la $24,2 +sw $24,-8+160($sp) +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +lw $15,-8+160($sp) +div $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,2 +beq $24,$15,L.1551 +la $23,207 +beq $30,$0,L.1553 +la $4,L.687 +move $5,$23 +jal printf +L.1553: +L.1551: +la $21,5 +la $24,2 +sw $24,-12+160($sp) +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +lw $15,-12+160($sp) +divu $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,2 +beq $24,$15,L.1555 +la $23,208 +beq $30,$0,L.1557 +la $4,L.687 +move $5,$23 +jal printf +L.1557: +L.1555: +la $21,5 +l.s $f26,L.529 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +mtc1 $24,$f18; cvt.s.w $f18,$f18 +div.s $f18,$f18,$f26 +trunc.w.s $f2,$f18,$24; mfc1 $24,$f2 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,2 +beq $24,$15,L.1559 +la $23,209 +beq $30,$0,L.1561 +la $4,L.687 +move $5,$23 +jal printf +L.1561: +L.1559: +la $21,5 +l.d $f24,L.416 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +mtc1 $24,$f18; cvt.d.w $f18,$f18 +div.d $f18,$f18,$f24 +trunc.w.d $f2,$f18,$24; mfc1 $24,$f2 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,2 +beq $24,$15,L.1563 +la $23,210 +beq $30,$0,L.1565 +la $4,L.687 +move $5,$23 +jal printf +L.1565: +L.1563: +la $20,5 +la $17,2 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +div $20,$20,$24 +la $24,2 +beq $20,$24,L.1567 +la $23,211 +beq $30,$0,L.1569 +la $4,L.687 +move $5,$23 +jal printf +L.1569: +L.1567: +la $20,5 +la $16,2 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +div $20,$20,$24 +la $24,2 +beq $20,$24,L.1571 +la $23,212 +beq $30,$0,L.1573 +la $4,L.687 +move $5,$23 +jal printf +L.1573: +L.1571: +la $20,5 +la $24,2 +sw $24,-4+160($sp) +lw $15,-4+160($sp) +div $20,$20,$15 +beq $20,$24,L.1575 +la $23,213 +beq $30,$0,L.1577 +la $4,L.687 +move $5,$23 +jal printf +L.1577: +L.1575: +la $20,5 +la $24,2 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +div $20,$20,$24 +la $24,2 +beq $20,$24,L.1579 +la $23,214 +beq $30,$0,L.1581 +la $4,L.687 +move $5,$23 +jal printf +L.1581: +L.1579: +la $20,5 +la $24,2 +sw $24,-12+160($sp) +move $24,$20 +lw $15,-12+160($sp) +divu $24,$24,$15 +move $20,$24 +la $24,2 +beq $20,$24,L.1583 +la $23,215 +beq $30,$0,L.1585 +la $4,L.687 +move $5,$23 +jal printf +L.1585: +L.1583: +la $20,5 +l.s $f26,L.529 +mtc1 $20,$f18; cvt.s.w $f18,$f18 +div.s $f18,$f18,$f26 +trunc.w.s $f2,$f18,$20; mfc1 $20,$f2 +la $24,2 +beq $20,$24,L.1587 +la $23,216 +beq $30,$0,L.1589 +la $4,L.687 +move $5,$23 +jal printf +L.1589: +L.1587: +la $20,5 +l.d $f24,L.416 +mtc1 $20,$f18; cvt.d.w $f18,$f18 +div.d $f18,$f18,$f24 +trunc.w.d $f2,$f18,$20; mfc1 $20,$f2 +la $24,2 +beq $20,$24,L.1591 +la $23,217 +beq $30,$0,L.1593 +la $4,L.687 +move $5,$23 +jal printf +L.1593: +L.1591: +la $19,5 +la $17,2 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +div $19,$19,$24 +la $24,2 +beq $19,$24,L.1595 +la $23,218 +beq $30,$0,L.1597 +la $4,L.687 +move $5,$23 +jal printf +L.1597: +L.1595: +la $19,5 +la $16,2 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +div $19,$19,$24 +la $24,2 +beq $19,$24,L.1599 +la $23,219 +beq $30,$0,L.1601 +la $4,L.687 +move $5,$23 +jal printf +L.1601: +L.1599: +la $19,5 +la $24,2 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +div $19,$19,$24 +la $24,2 +beq $19,$24,L.1603 +la $23,220 +beq $30,$0,L.1605 +la $4,L.687 +move $5,$23 +jal printf +L.1605: +L.1603: +la $19,5 +la $24,2 +sw $24,-8+160($sp) +lw $15,-8+160($sp) +div $19,$19,$15 +beq $19,$24,L.1607 +la $23,221 +beq $30,$0,L.1609 +la $4,L.687 +move $5,$23 +jal printf +L.1609: +L.1607: +la $19,5 +la $24,2 +sw $24,-12+160($sp) +move $24,$19 +lw $15,-12+160($sp) +divu $24,$24,$15 +move $19,$24 +la $24,2 +beq $19,$24,L.1611 +la $23,222 +beq $30,$0,L.1613 +la $4,L.687 +move $5,$23 +jal printf +L.1613: +L.1611: +la $19,5 +l.s $f26,L.529 +mtc1 $19,$f18; cvt.s.w $f18,$f18 +div.s $f18,$f18,$f26 +trunc.w.s $f2,$f18,$19; mfc1 $19,$f2 +la $24,2 +beq $19,$24,L.1615 +la $23,223 +beq $30,$0,L.1617 +la $4,L.687 +move $5,$23 +jal printf +L.1617: +L.1615: +la $19,5 +l.d $f24,L.416 +mtc1 $19,$f18; cvt.d.w $f18,$f18 +div.d $f18,$f18,$f24 +trunc.w.d $f2,$f18,$19; mfc1 $19,$f2 +la $24,2 +beq $19,$24,L.1619 +la $23,224 +beq $30,$0,L.1621 +la $4,L.687 +move $5,$23 +jal printf +L.1621: +L.1619: +la $18,5 +la $17,2 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +divu $18,$18,$24 +la $24,2 +beq $18,$24,L.1623 +la $23,225 +beq $30,$0,L.1625 +la $4,L.687 +move $5,$23 +jal printf +L.1625: +L.1623: +la $18,5 +la $16,2 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +divu $18,$18,$24 +la $24,2 +beq $18,$24,L.1627 +la $23,226 +beq $30,$0,L.1629 +la $4,L.687 +move $5,$23 +jal printf +L.1629: +L.1627: +la $18,5 +la $24,2 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +divu $18,$18,$24 +la $24,2 +beq $18,$24,L.1631 +la $23,227 +beq $30,$0,L.1633 +la $4,L.687 +move $5,$23 +jal printf +L.1633: +L.1631: +la $18,5 +la $24,2 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +divu $18,$18,$24 +la $24,2 +beq $18,$24,L.1635 +la $23,228 +beq $30,$0,L.1637 +la $4,L.687 +move $5,$23 +jal printf +L.1637: +L.1635: +la $18,5 +la $24,2 +sw $24,-12+160($sp) +lw $15,-12+160($sp) +divu $18,$18,$15 +beq $18,$24,L.1639 +la $23,229 +beq $30,$0,L.1641 +la $4,L.687 +move $5,$23 +jal printf +L.1641: +L.1639: +la $18,5 +l.s $f26,L.529 +l.d $f18,L.596 +srl $24,$18,1 +mtc1 $24,$f16; cvt.d.w $f16,$f16 +mul.d $f18,$f18,$f16 +and $24,$18,1 +mtc1 $24,$f16; cvt.d.w $f16,$f16 +add.d $f18,$f18,$f16 +cvt.s.d $f18,$f18 +div.s $f18,$f18,$f26 +l.s $f16,L.828 +c.lt.s $f18,$f16; bc1t L.1644 +sub.s $f16,$f18,$f16 +trunc.w.s $f2,$f16,$24; mfc1 $24,$f2 +la $24,0x80000000($24) +sw $24,-60+160($sp) +b L.1645 +L.1644: +trunc.w.s $f2,$f18,$24; mfc1 $24,$f2 +sw $24,-60+160($sp) +L.1645: +lw $18,-60+160($sp) +la $24,2 +beq $18,$24,L.1646 +la $23,230 +beq $30,$0,L.1648 +la $4,L.687 +move $5,$23 +jal printf +L.1648: +L.1646: +la $18,5 +l.d $f24,L.416 +l.d $f18,L.596 +srl $24,$18,1 +mtc1 $24,$f16; cvt.d.w $f16,$f16 +mul.d $f18,$f18,$f16 +and $24,$18,1 +mtc1 $24,$f16; cvt.d.w $f16,$f16 +add.d $f18,$f18,$f16 +div.d $f18,$f18,$f24 +l.d $f16,L.836 +c.lt.d $f18,$f16; bc1t L.1651 +sub.d $f16,$f18,$f16 +trunc.w.d $f2,$f16,$24; mfc1 $24,$f2 +la $24,0x80000000($24) +sw $24,-64+160($sp) +b L.1652 +L.1651: +trunc.w.d $f2,$f18,$24; mfc1 $24,$f2 +sw $24,-64+160($sp) +L.1652: +lw $18,-64+160($sp) +la $24,2 +beq $18,$24,L.1653 +la $23,231 +beq $30,$0,L.1655 +la $4,L.687 +move $5,$23 +jal printf +L.1655: +L.1653: +l.s $f30,L.841 +la $17,2 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +mtc1 $24,$f18; cvt.s.w $f18,$f18 +div.s $f30,$f30,$f18 +cvt.d.s $f18,$f30 +l.d $f16,L.1659 +c.eq.d $f18,$f16; bc1t L.1657 +la $23,232 +beq $30,$0,L.1660 +la $4,L.687 +move $5,$23 +jal printf +L.1660: +L.1657: +l.s $f30,L.841 +la $16,2 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +mtc1 $24,$f18; cvt.s.w $f18,$f18 +div.s $f30,$f30,$f18 +cvt.d.s $f18,$f30 +l.d $f16,L.1659 +c.eq.d $f18,$f16; bc1t L.1662 +la $23,233 +beq $30,$0,L.1664 +la $4,L.687 +move $5,$23 +jal printf +L.1664: +L.1662: +l.s $f30,L.841 +la $24,2 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +mtc1 $24,$f18; cvt.s.w $f18,$f18 +div.s $f30,$f30,$f18 +cvt.d.s $f18,$f30 +l.d $f16,L.1659 +c.eq.d $f18,$f16; bc1t L.1666 +la $23,234 +beq $30,$0,L.1668 +la $4,L.687 +move $5,$23 +jal printf +L.1668: +L.1666: +l.s $f30,L.841 +la $24,2 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +mtc1 $24,$f18; cvt.s.w $f18,$f18 +div.s $f30,$f30,$f18 +cvt.d.s $f18,$f30 +l.d $f16,L.1659 +c.eq.d $f18,$f16; bc1t L.1670 +la $23,235 +beq $30,$0,L.1672 +la $4,L.687 +move $5,$23 +jal printf +L.1672: +L.1670: +l.s $f30,L.841 +la $24,2 +sw $24,-12+160($sp) +lw $24,-12+160($sp) +l.d $f18,L.596 +srl $15,$24,1 +mtc1 $15,$f16; cvt.d.w $f16,$f16 +mul.d $f18,$f18,$f16 +and $24,$24,1 +mtc1 $24,$f16; cvt.d.w $f16,$f16 +add.d $f18,$f18,$f16 +cvt.s.d $f18,$f18 +div.s $f30,$f30,$f18 +cvt.d.s $f18,$f30 +l.d $f16,L.1659 +c.eq.d $f18,$f16; bc1t L.1674 +la $23,236 +beq $30,$0,L.1676 +la $4,L.687 +move $5,$23 +jal printf +L.1676: +L.1674: +l.s $f30,L.841 +l.s $f26,L.529 +div.s $f30,$f30,$f26 +cvt.d.s $f18,$f30 +l.d $f16,L.1659 +c.eq.d $f18,$f16; bc1t L.1678 +la $23,237 +beq $30,$0,L.1680 +la $4,L.687 +move $5,$23 +jal printf +L.1680: +L.1678: +l.s $f30,L.841 +l.d $f24,L.416 +cvt.d.s $f18,$f30 +div.d $f18,$f18,$f24 +cvt.s.d $f30,$f18 +cvt.d.s $f18,$f30 +l.d $f16,L.1659 +c.eq.d $f18,$f16; bc1t L.1682 +la $23,238 +beq $30,$0,L.1684 +la $4,L.687 +move $5,$23 +jal printf +L.1684: +L.1682: +l.d $f28,L.870 +la $17,2 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +mtc1 $24,$f18; cvt.d.w $f18,$f18 +div.d $f28,$f28,$f18 +l.d $f18,L.1659 +c.eq.d $f28,$f18; bc1t L.1686 +la $23,239 +beq $30,$0,L.1688 +la $4,L.687 +move $5,$23 +jal printf +L.1688: +L.1686: +l.d $f28,L.870 +la $16,2 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +mtc1 $24,$f18; cvt.d.w $f18,$f18 +div.d $f28,$f28,$f18 +l.d $f18,L.1659 +c.eq.d $f28,$f18; bc1t L.1690 +la $23,240 +beq $30,$0,L.1692 +la $4,L.687 +move $5,$23 +jal printf +L.1692: +L.1690: +l.d $f28,L.870 +la $24,2 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +mtc1 $24,$f18; cvt.d.w $f18,$f18 +div.d $f28,$f28,$f18 +l.d $f18,L.1659 +c.eq.d $f28,$f18; bc1t L.1694 +la $23,241 +beq $30,$0,L.1696 +la $4,L.687 +move $5,$23 +jal printf +L.1696: +L.1694: +l.d $f28,L.870 +la $24,2 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +mtc1 $24,$f18; cvt.d.w $f18,$f18 +div.d $f28,$f28,$f18 +l.d $f18,L.1659 +c.eq.d $f28,$f18; bc1t L.1698 +la $23,242 +beq $30,$0,L.1700 +la $4,L.687 +move $5,$23 +jal printf +L.1700: +L.1698: +l.d $f28,L.870 +la $24,2 +sw $24,-12+160($sp) +lw $24,-12+160($sp) +l.d $f18,L.596 +srl $15,$24,1 +mtc1 $15,$f16; cvt.d.w $f16,$f16 +mul.d $f18,$f18,$f16 +and $24,$24,1 +mtc1 $24,$f16; cvt.d.w $f16,$f16 +add.d $f18,$f18,$f16 +div.d $f28,$f28,$f18 +l.d $f18,L.1659 +c.eq.d $f28,$f18; bc1t L.1702 +la $23,243 +beq $30,$0,L.1704 +la $4,L.687 +move $5,$23 +jal printf +L.1704: +L.1702: +l.d $f28,L.870 +l.s $f26,L.529 +cvt.d.s $f18,$f26 +div.d $f28,$f28,$f18 +l.d $f18,L.1659 +c.eq.d $f28,$f18; bc1t L.1706 +la $23,244 +beq $30,$0,L.1708 +la $4,L.687 +move $5,$23 +jal printf +L.1708: +L.1706: +l.d $f28,L.870 +l.d $f24,L.416 +div.d $f28,$f28,$f24 +l.d $f18,L.1659 +c.eq.d $f28,$f18; bc1t L.1710 +la $23,245 +beq $30,$0,L.1712 +la $4,L.687 +move $5,$23 +jal printf +L.1712: +L.1710: +la $22,5 +la $17,2 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +sll $15,$17,8*(4-1); sra $15,$15,8*(4-1) +rem $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,1 +beq $24,$15,L.1714 +la $23,246 +beq $30,$0,L.1716 +la $4,L.687 +move $5,$23 +jal printf +L.1716: +L.1714: +la $22,5 +la $16,2 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +sll $15,$16,8*(4-2); sra $15,$15,8*(4-2) +rem $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,1 +beq $24,$15,L.1718 +la $23,247 +beq $30,$0,L.1720 +la $4,L.687 +move $5,$23 +jal printf +L.1720: +L.1718: +la $22,5 +la $24,2 +sw $24,-4+160($sp) +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +lw $15,-4+160($sp) +rem $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,1 +beq $24,$15,L.1722 +la $23,248 +beq $30,$0,L.1724 +la $4,L.687 +move $5,$23 +jal printf +L.1724: +L.1722: +la $22,5 +la $24,2 +sw $24,-8+160($sp) +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +lw $15,-8+160($sp) +rem $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,1 +beq $24,$15,L.1726 +la $23,249 +beq $30,$0,L.1728 +la $4,L.687 +move $5,$23 +jal printf +L.1728: +L.1726: +la $22,5 +la $24,2 +sw $24,-12+160($sp) +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +lw $15,-12+160($sp) +remu $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,1 +beq $24,$15,L.1730 +la $23,250 +beq $30,$0,L.1732 +la $4,L.687 +move $5,$23 +jal printf +L.1732: +L.1730: +la $21,5 +la $17,2 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +sll $15,$17,8*(4-1); sra $15,$15,8*(4-1) +rem $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,1 +beq $24,$15,L.1734 +la $23,251 +beq $30,$0,L.1736 +la $4,L.687 +move $5,$23 +jal printf +L.1736: +L.1734: +la $21,5 +la $16,2 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +sll $15,$16,8*(4-2); sra $15,$15,8*(4-2) +rem $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,1 +beq $24,$15,L.1738 +la $23,252 +beq $30,$0,L.1740 +la $4,L.687 +move $5,$23 +jal printf +L.1740: +L.1738: +la $21,5 +la $24,2 +sw $24,-4+160($sp) +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +lw $15,-4+160($sp) +rem $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,1 +beq $24,$15,L.1742 +la $23,253 +beq $30,$0,L.1744 +la $4,L.687 +move $5,$23 +jal printf +L.1744: +L.1742: +la $21,5 +la $24,2 +sw $24,-8+160($sp) +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +lw $15,-8+160($sp) +rem $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,1 +beq $24,$15,L.1746 +la $23,254 +beq $30,$0,L.1748 +la $4,L.687 +move $5,$23 +jal printf +L.1748: +L.1746: +la $21,5 +la $24,2 +sw $24,-12+160($sp) +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +lw $15,-12+160($sp) +remu $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,1 +beq $24,$15,L.1750 +la $23,255 +beq $30,$0,L.1752 +la $4,L.687 +move $5,$23 +jal printf +L.1752: +L.1750: +la $20,5 +la $17,2 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +rem $20,$20,$24 +la $24,1 +beq $20,$24,L.1754 +la $23,256 +beq $30,$0,L.1756 +la $4,L.687 +move $5,$23 +jal printf +L.1756: +L.1754: +la $20,5 +la $16,2 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +rem $20,$20,$24 +la $24,1 +beq $20,$24,L.1758 +la $23,257 +beq $30,$0,L.1760 +la $4,L.687 +move $5,$23 +jal printf +L.1760: +L.1758: +la $20,5 +la $24,2 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +rem $20,$20,$24 +la $24,1 +beq $20,$24,L.1762 +la $23,258 +beq $30,$0,L.1764 +la $4,L.687 +move $5,$23 +jal printf +L.1764: +L.1762: +la $20,5 +la $24,2 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +rem $20,$20,$24 +la $24,1 +beq $20,$24,L.1766 +la $23,259 +beq $30,$0,L.1768 +la $4,L.687 +move $5,$23 +jal printf +L.1768: +L.1766: +la $20,5 +la $24,2 +sw $24,-12+160($sp) +move $24,$20 +lw $15,-12+160($sp) +remu $24,$24,$15 +move $20,$24 +la $24,1 +beq $20,$24,L.1770 +la $23,260 +beq $30,$0,L.1772 +la $4,L.687 +move $5,$23 +jal printf +L.1772: +L.1770: +la $19,5 +la $17,2 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +rem $19,$19,$24 +la $24,1 +beq $19,$24,L.1774 +la $23,261 +beq $30,$0,L.1776 +la $4,L.687 +move $5,$23 +jal printf +L.1776: +L.1774: +la $19,5 +la $16,2 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +rem $19,$19,$24 +la $24,1 +beq $19,$24,L.1778 +la $23,262 +beq $30,$0,L.1780 +la $4,L.687 +move $5,$23 +jal printf +L.1780: +L.1778: +la $19,5 +la $24,2 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +rem $19,$19,$24 +la $24,1 +beq $19,$24,L.1782 +la $23,263 +beq $30,$0,L.1784 +la $4,L.687 +move $5,$23 +jal printf +L.1784: +L.1782: +la $19,5 +la $24,2 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +rem $19,$19,$24 +la $24,1 +beq $19,$24,L.1786 +la $23,264 +beq $30,$0,L.1788 +la $4,L.687 +move $5,$23 +jal printf +L.1788: +L.1786: +la $19,5 +la $24,2 +sw $24,-12+160($sp) +move $24,$19 +lw $15,-12+160($sp) +remu $24,$24,$15 +move $19,$24 +la $24,1 +beq $19,$24,L.1790 +la $23,265 +beq $30,$0,L.1792 +la $4,L.687 +move $5,$23 +jal printf +L.1792: +L.1790: +la $18,5 +la $17,2 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +remu $18,$18,$24 +la $24,1 +beq $18,$24,L.1794 +la $23,266 +beq $30,$0,L.1796 +la $4,L.687 +move $5,$23 +jal printf +L.1796: +L.1794: +la $18,5 +la $16,2 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +remu $18,$18,$24 +la $24,1 +beq $18,$24,L.1798 +la $23,267 +beq $30,$0,L.1800 +la $4,L.687 +move $5,$23 +jal printf +L.1800: +L.1798: +la $18,5 +la $24,2 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +remu $18,$18,$24 +la $24,1 +beq $18,$24,L.1802 +la $23,268 +beq $30,$0,L.1804 +la $4,L.687 +move $5,$23 +jal printf +L.1804: +L.1802: +la $18,5 +la $24,2 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +remu $18,$18,$24 +la $24,1 +beq $18,$24,L.1806 +la $23,269 +beq $30,$0,L.1808 +la $4,L.687 +move $5,$23 +jal printf +L.1808: +L.1806: +la $18,5 +la $24,2 +sw $24,-12+160($sp) +lw $24,-12+160($sp) +remu $18,$18,$24 +la $24,1 +beq $18,$24,L.1810 +la $23,270 +beq $30,$0,L.1812 +la $4,L.687 +move $5,$23 +jal printf +L.1812: +L.1810: +la $22,5 +la $17,2 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +sll $15,$17,8*(4-1); sra $15,$15,8*(4-1) +sra $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,1 +beq $24,$15,L.1814 +la $23,271 +beq $30,$0,L.1816 +la $4,L.687 +move $5,$23 +jal printf +L.1816: +L.1814: +la $22,5 +la $16,2 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +sll $15,$16,8*(4-2); sra $15,$15,8*(4-2) +sra $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,1 +beq $24,$15,L.1818 +la $23,272 +beq $30,$0,L.1820 +la $4,L.687 +move $5,$23 +jal printf +L.1820: +L.1818: +la $22,5 +la $24,2 +sw $24,-4+160($sp) +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +lw $15,-4+160($sp) +sra $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,1 +beq $24,$15,L.1822 +la $23,273 +beq $30,$0,L.1824 +la $4,L.687 +move $5,$23 +jal printf +L.1824: +L.1822: +la $22,5 +la $24,2 +sw $24,-8+160($sp) +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +lw $15,-8+160($sp) +sra $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,1 +beq $24,$15,L.1826 +la $23,274 +beq $30,$0,L.1828 +la $4,L.687 +move $5,$23 +jal printf +L.1828: +L.1826: +la $22,5 +la $24,2 +sw $24,-12+160($sp) +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +lw $15,-12+160($sp) +sra $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,1 +beq $24,$15,L.1830 +la $23,275 +beq $30,$0,L.1832 +la $4,L.687 +move $5,$23 +jal printf +L.1832: +L.1830: +la $21,5 +la $17,2 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +sll $15,$17,8*(4-1); sra $15,$15,8*(4-1) +sra $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,1 +beq $24,$15,L.1834 +la $23,276 +beq $30,$0,L.1836 +la $4,L.687 +move $5,$23 +jal printf +L.1836: +L.1834: +la $21,5 +la $16,2 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +sll $15,$16,8*(4-2); sra $15,$15,8*(4-2) +sra $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,1 +beq $24,$15,L.1838 +la $23,277 +beq $30,$0,L.1840 +la $4,L.687 +move $5,$23 +jal printf +L.1840: +L.1838: +la $21,5 +la $24,2 +sw $24,-4+160($sp) +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +lw $15,-4+160($sp) +sra $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,1 +beq $24,$15,L.1842 +la $23,278 +beq $30,$0,L.1844 +la $4,L.687 +move $5,$23 +jal printf +L.1844: +L.1842: +la $21,5 +la $24,2 +sw $24,-8+160($sp) +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +lw $15,-8+160($sp) +sra $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,1 +beq $24,$15,L.1846 +la $23,279 +beq $30,$0,L.1848 +la $4,L.687 +move $5,$23 +jal printf +L.1848: +L.1846: +la $21,5 +la $24,2 +sw $24,-12+160($sp) +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +lw $15,-12+160($sp) +sra $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,1 +beq $24,$15,L.1850 +la $23,280 +beq $30,$0,L.1852 +la $4,L.687 +move $5,$23 +jal printf +L.1852: +L.1850: +la $20,5 +la $17,2 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +sra $20,$20,$24 +la $24,1 +beq $20,$24,L.1854 +la $23,281 +beq $30,$0,L.1856 +la $4,L.687 +move $5,$23 +jal printf +L.1856: +L.1854: +la $20,5 +la $16,2 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +sra $20,$20,$24 +la $24,1 +beq $20,$24,L.1858 +la $23,282 +beq $30,$0,L.1860 +la $4,L.687 +move $5,$23 +jal printf +L.1860: +L.1858: +la $20,5 +la $24,2 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +sra $20,$20,$24 +la $24,1 +beq $20,$24,L.1862 +la $23,283 +beq $30,$0,L.1864 +la $4,L.687 +move $5,$23 +jal printf +L.1864: +L.1862: +la $20,5 +la $24,2 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +sra $20,$20,$24 +la $24,1 +beq $20,$24,L.1866 +la $23,284 +beq $30,$0,L.1868 +la $4,L.687 +move $5,$23 +jal printf +L.1868: +L.1866: +la $20,5 +la $24,2 +sw $24,-12+160($sp) +lw $24,-12+160($sp) +sra $20,$20,$24 +la $24,1 +beq $20,$24,L.1870 +la $23,285 +beq $30,$0,L.1872 +la $4,L.687 +move $5,$23 +jal printf +L.1872: +L.1870: +la $19,5 +la $17,2 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +sra $19,$19,$24 +la $24,1 +beq $19,$24,L.1874 +la $23,286 +beq $30,$0,L.1876 +la $4,L.687 +move $5,$23 +jal printf +L.1876: +L.1874: +la $19,5 +la $16,2 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +sra $19,$19,$24 +la $24,1 +beq $19,$24,L.1878 +la $23,287 +beq $30,$0,L.1880 +la $4,L.687 +move $5,$23 +jal printf +L.1880: +L.1878: +la $19,5 +la $24,2 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +sra $19,$19,$24 +la $24,1 +beq $19,$24,L.1882 +la $23,288 +beq $30,$0,L.1884 +la $4,L.687 +move $5,$23 +jal printf +L.1884: +L.1882: +la $19,5 +la $24,2 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +sra $19,$19,$24 +la $24,1 +beq $19,$24,L.1886 +la $23,289 +beq $30,$0,L.1888 +la $4,L.687 +move $5,$23 +jal printf +L.1888: +L.1886: +la $19,5 +la $24,2 +sw $24,-12+160($sp) +lw $24,-12+160($sp) +sra $19,$19,$24 +la $24,1 +beq $19,$24,L.1890 +la $23,290 +beq $30,$0,L.1892 +la $4,L.687 +move $5,$23 +jal printf +L.1892: +L.1890: +la $18,5 +la $17,2 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +srl $18,$18,$24 +la $24,1 +beq $18,$24,L.1894 +la $23,291 +beq $30,$0,L.1896 +la $4,L.687 +move $5,$23 +jal printf +L.1896: +L.1894: +la $18,5 +la $16,2 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +srl $18,$18,$24 +la $24,1 +beq $18,$24,L.1898 +la $23,292 +beq $30,$0,L.1900 +la $4,L.687 +move $5,$23 +jal printf +L.1900: +L.1898: +la $18,5 +la $24,2 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +srl $18,$18,$24 +la $24,1 +beq $18,$24,L.1902 +la $23,293 +beq $30,$0,L.1904 +la $4,L.687 +move $5,$23 +jal printf +L.1904: +L.1902: +la $18,5 +la $24,2 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +srl $18,$18,$24 +la $24,1 +beq $18,$24,L.1906 +la $23,294 +beq $30,$0,L.1908 +la $4,L.687 +move $5,$23 +jal printf +L.1908: +L.1906: +la $18,5 +la $24,2 +sw $24,-12+160($sp) +lw $24,-12+160($sp) +srl $18,$18,$24 +la $24,1 +beq $18,$24,L.1910 +la $23,295 +beq $30,$0,L.1912 +la $4,L.687 +move $5,$23 +jal printf +L.1912: +L.1910: +la $22,5 +la $17,2 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +sll $15,$17,8*(4-1); sra $15,$15,8*(4-1) +sll $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,20 +beq $24,$15,L.1914 +la $23,296 +beq $30,$0,L.1916 +la $4,L.687 +move $5,$23 +jal printf +L.1916: +L.1914: +la $22,5 +la $16,2 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +sll $15,$16,8*(4-2); sra $15,$15,8*(4-2) +sll $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,20 +beq $24,$15,L.1918 +la $23,297 +beq $30,$0,L.1920 +la $4,L.687 +move $5,$23 +jal printf +L.1920: +L.1918: +la $22,5 +la $24,2 +sw $24,-4+160($sp) +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +lw $15,-4+160($sp) +sll $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,20 +beq $24,$15,L.1922 +la $23,298 +beq $30,$0,L.1924 +la $4,L.687 +move $5,$23 +jal printf +L.1924: +L.1922: +la $22,5 +la $24,2 +sw $24,-8+160($sp) +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +lw $15,-8+160($sp) +sll $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,20 +beq $24,$15,L.1926 +la $23,299 +beq $30,$0,L.1928 +la $4,L.687 +move $5,$23 +jal printf +L.1928: +L.1926: +la $22,5 +la $24,2 +sw $24,-12+160($sp) +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +lw $15,-12+160($sp) +sll $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,20 +beq $24,$15,L.1930 +la $23,300 +beq $30,$0,L.1932 +la $4,L.687 +move $5,$23 +jal printf +L.1932: +L.1930: +la $21,5 +la $17,2 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +sll $15,$17,8*(4-1); sra $15,$15,8*(4-1) +sll $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,20 +beq $24,$15,L.1934 +la $23,301 +beq $30,$0,L.1936 +la $4,L.687 +move $5,$23 +jal printf +L.1936: +L.1934: +la $21,5 +la $16,2 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +sll $15,$16,8*(4-2); sra $15,$15,8*(4-2) +sll $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,20 +beq $24,$15,L.1938 +la $23,302 +beq $30,$0,L.1940 +la $4,L.687 +move $5,$23 +jal printf +L.1940: +L.1938: +la $21,5 +la $24,2 +sw $24,-4+160($sp) +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +lw $15,-4+160($sp) +sll $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,20 +beq $24,$15,L.1942 +la $23,303 +beq $30,$0,L.1944 +la $4,L.687 +move $5,$23 +jal printf +L.1944: +L.1942: +la $21,5 +la $24,2 +sw $24,-8+160($sp) +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +lw $15,-8+160($sp) +sll $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,20 +beq $24,$15,L.1946 +la $23,304 +beq $30,$0,L.1948 +la $4,L.687 +move $5,$23 +jal printf +L.1948: +L.1946: +la $21,5 +la $24,2 +sw $24,-12+160($sp) +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +lw $15,-12+160($sp) +sll $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,20 +beq $24,$15,L.1950 +la $23,305 +beq $30,$0,L.1952 +la $4,L.687 +move $5,$23 +jal printf +L.1952: +L.1950: +la $20,5 +la $17,2 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +sll $20,$20,$24 +la $24,20 +beq $20,$24,L.1954 +la $23,306 +beq $30,$0,L.1956 +la $4,L.687 +move $5,$23 +jal printf +L.1956: +L.1954: +la $20,5 +la $16,2 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +sll $20,$20,$24 +la $24,20 +beq $20,$24,L.1958 +la $23,307 +beq $30,$0,L.1960 +la $4,L.687 +move $5,$23 +jal printf +L.1960: +L.1958: +la $20,5 +la $24,2 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +sll $20,$20,$24 +la $24,20 +beq $20,$24,L.1962 +la $23,308 +beq $30,$0,L.1964 +la $4,L.687 +move $5,$23 +jal printf +L.1964: +L.1962: +la $20,5 +la $24,2 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +sll $20,$20,$24 +la $24,20 +beq $20,$24,L.1966 +la $23,309 +beq $30,$0,L.1968 +la $4,L.687 +move $5,$23 +jal printf +L.1968: +L.1966: +la $20,5 +la $24,2 +sw $24,-12+160($sp) +lw $24,-12+160($sp) +sll $20,$20,$24 +la $24,20 +beq $20,$24,L.1970 +la $23,310 +beq $30,$0,L.1972 +la $4,L.687 +move $5,$23 +jal printf +L.1972: +L.1970: +la $19,5 +la $17,2 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +sll $19,$19,$24 +la $24,20 +beq $19,$24,L.1974 +la $23,311 +beq $30,$0,L.1976 +la $4,L.687 +move $5,$23 +jal printf +L.1976: +L.1974: +la $19,5 +la $16,2 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +sll $19,$19,$24 +la $24,20 +beq $19,$24,L.1978 +la $23,312 +beq $30,$0,L.1980 +la $4,L.687 +move $5,$23 +jal printf +L.1980: +L.1978: +la $19,5 +la $24,2 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +sll $19,$19,$24 +la $24,20 +beq $19,$24,L.1982 +la $23,313 +beq $30,$0,L.1984 +la $4,L.687 +move $5,$23 +jal printf +L.1984: +L.1982: +la $19,5 +la $24,2 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +sll $19,$19,$24 +la $24,20 +beq $19,$24,L.1986 +la $23,314 +beq $30,$0,L.1988 +la $4,L.687 +move $5,$23 +jal printf +L.1988: +L.1986: +la $19,5 +la $24,2 +sw $24,-12+160($sp) +lw $24,-12+160($sp) +sll $19,$19,$24 +la $24,20 +beq $19,$24,L.1990 +la $23,315 +beq $30,$0,L.1992 +la $4,L.687 +move $5,$23 +jal printf +L.1992: +L.1990: +la $18,5 +la $17,2 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +sll $18,$18,$24 +la $24,20 +beq $18,$24,L.1994 +la $23,316 +beq $30,$0,L.1996 +la $4,L.687 +move $5,$23 +jal printf +L.1996: +L.1994: +la $18,5 +la $16,2 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +sll $18,$18,$24 +la $24,20 +beq $18,$24,L.1998 +la $23,317 +beq $30,$0,L.2000 +la $4,L.687 +move $5,$23 +jal printf +L.2000: +L.1998: +la $18,5 +la $24,2 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +sll $18,$18,$24 +la $24,20 +beq $18,$24,L.2002 +la $23,318 +beq $30,$0,L.2004 +la $4,L.687 +move $5,$23 +jal printf +L.2004: +L.2002: +la $18,5 +la $24,2 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +sll $18,$18,$24 +la $24,20 +beq $18,$24,L.2006 +la $23,319 +beq $30,$0,L.2008 +la $4,L.687 +move $5,$23 +jal printf +L.2008: +L.2006: +la $18,5 +la $24,2 +sw $24,-12+160($sp) +lw $24,-12+160($sp) +sll $18,$18,$24 +la $24,20 +beq $18,$24,L.2010 +la $23,320 +beq $30,$0,L.2012 +la $4,L.687 +move $5,$23 +jal printf +L.2012: +L.2010: +la $22,12 +la $17,10 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +sll $15,$17,8*(4-1); sra $15,$15,8*(4-1) +and $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,8 +beq $24,$15,L.2014 +la $23,321 +beq $30,$0,L.2016 +la $4,L.687 +move $5,$23 +jal printf +L.2016: +L.2014: +la $22,12 +la $16,10 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +sll $15,$16,8*(4-2); sra $15,$15,8*(4-2) +and $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,8 +beq $24,$15,L.2018 +la $23,322 +beq $30,$0,L.2020 +la $4,L.687 +move $5,$23 +jal printf +L.2020: +L.2018: +la $22,12 +la $24,10 +sw $24,-4+160($sp) +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +lw $15,-4+160($sp) +and $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,8 +beq $24,$15,L.2022 +la $23,323 +beq $30,$0,L.2024 +la $4,L.687 +move $5,$23 +jal printf +L.2024: +L.2022: +la $22,12 +la $24,10 +sw $24,-8+160($sp) +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +lw $15,-8+160($sp) +and $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,8 +beq $24,$15,L.2026 +la $23,324 +beq $30,$0,L.2028 +la $4,L.687 +move $5,$23 +jal printf +L.2028: +L.2026: +la $22,12 +la $24,10 +sw $24,-12+160($sp) +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +lw $15,-12+160($sp) +and $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,8 +beq $24,$15,L.2030 +la $23,325 +beq $30,$0,L.2032 +la $4,L.687 +move $5,$23 +jal printf +L.2032: +L.2030: +la $21,12 +la $17,10 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +sll $15,$17,8*(4-1); sra $15,$15,8*(4-1) +and $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,8 +beq $24,$15,L.2034 +la $23,326 +beq $30,$0,L.2036 +la $4,L.687 +move $5,$23 +jal printf +L.2036: +L.2034: +la $21,12 +la $16,10 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +sll $15,$16,8*(4-2); sra $15,$15,8*(4-2) +and $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,8 +beq $24,$15,L.2038 +la $23,327 +beq $30,$0,L.2040 +la $4,L.687 +move $5,$23 +jal printf +L.2040: +L.2038: +la $21,12 +la $24,10 +sw $24,-4+160($sp) +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +lw $15,-4+160($sp) +and $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,8 +beq $24,$15,L.2042 +la $23,328 +beq $30,$0,L.2044 +la $4,L.687 +move $5,$23 +jal printf +L.2044: +L.2042: +la $21,12 +la $24,10 +sw $24,-8+160($sp) +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +lw $15,-8+160($sp) +and $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,8 +beq $24,$15,L.2046 +la $23,329 +beq $30,$0,L.2048 +la $4,L.687 +move $5,$23 +jal printf +L.2048: +L.2046: +la $21,12 +la $24,10 +sw $24,-12+160($sp) +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +lw $15,-12+160($sp) +and $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,8 +beq $24,$15,L.2050 +la $23,330 +beq $30,$0,L.2052 +la $4,L.687 +move $5,$23 +jal printf +L.2052: +L.2050: +la $20,12 +la $17,10 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +and $20,$20,$24 +la $24,8 +beq $20,$24,L.2054 +la $23,331 +beq $30,$0,L.2056 +la $4,L.687 +move $5,$23 +jal printf +L.2056: +L.2054: +la $20,12 +la $16,10 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +and $20,$20,$24 +la $24,8 +beq $20,$24,L.2058 +la $23,332 +beq $30,$0,L.2060 +la $4,L.687 +move $5,$23 +jal printf +L.2060: +L.2058: +la $20,12 +la $24,10 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +and $20,$20,$24 +la $24,8 +beq $20,$24,L.2062 +la $23,333 +beq $30,$0,L.2064 +la $4,L.687 +move $5,$23 +jal printf +L.2064: +L.2062: +la $20,12 +la $24,10 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +and $20,$20,$24 +la $24,8 +beq $20,$24,L.2066 +la $23,334 +beq $30,$0,L.2068 +la $4,L.687 +move $5,$23 +jal printf +L.2068: +L.2066: +la $20,12 +la $24,10 +sw $24,-12+160($sp) +move $24,$20 +lw $15,-12+160($sp) +and $24,$24,$15 +move $20,$24 +la $24,8 +beq $20,$24,L.2070 +la $23,335 +beq $30,$0,L.2072 +la $4,L.687 +move $5,$23 +jal printf +L.2072: +L.2070: +la $19,12 +la $17,10 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +and $19,$19,$24 +la $24,8 +beq $19,$24,L.2074 +la $23,336 +beq $30,$0,L.2076 +la $4,L.687 +move $5,$23 +jal printf +L.2076: +L.2074: +la $19,12 +la $16,10 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +and $19,$19,$24 +la $24,8 +beq $19,$24,L.2078 +la $23,337 +beq $30,$0,L.2080 +la $4,L.687 +move $5,$23 +jal printf +L.2080: +L.2078: +la $19,12 +la $24,10 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +and $19,$19,$24 +la $24,8 +beq $19,$24,L.2082 +la $23,338 +beq $30,$0,L.2084 +la $4,L.687 +move $5,$23 +jal printf +L.2084: +L.2082: +la $19,12 +la $24,10 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +and $19,$19,$24 +la $24,8 +beq $19,$24,L.2086 +la $23,339 +beq $30,$0,L.2088 +la $4,L.687 +move $5,$23 +jal printf +L.2088: +L.2086: +la $19,12 +la $24,10 +sw $24,-12+160($sp) +move $24,$19 +lw $15,-12+160($sp) +and $24,$24,$15 +move $19,$24 +la $24,8 +beq $19,$24,L.2090 +la $23,340 +beq $30,$0,L.2092 +la $4,L.687 +move $5,$23 +jal printf +L.2092: +L.2090: +la $18,12 +la $17,10 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +and $18,$18,$24 +la $24,8 +beq $18,$24,L.2094 +la $23,341 +beq $30,$0,L.2096 +la $4,L.687 +move $5,$23 +jal printf +L.2096: +L.2094: +la $18,12 +la $16,10 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +and $18,$18,$24 +la $24,8 +beq $18,$24,L.2098 +la $23,342 +beq $30,$0,L.2100 +la $4,L.687 +move $5,$23 +jal printf +L.2100: +L.2098: +la $18,12 +la $24,10 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +and $18,$18,$24 +la $24,8 +beq $18,$24,L.2102 +la $23,343 +beq $30,$0,L.2104 +la $4,L.687 +move $5,$23 +jal printf +L.2104: +L.2102: +la $18,12 +la $24,10 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +and $18,$18,$24 +la $24,8 +beq $18,$24,L.2106 +la $23,344 +beq $30,$0,L.2108 +la $4,L.687 +move $5,$23 +jal printf +L.2108: +L.2106: +la $18,12 +la $24,10 +sw $24,-12+160($sp) +lw $24,-12+160($sp) +and $18,$18,$24 +la $24,8 +beq $18,$24,L.2110 +la $23,345 +beq $30,$0,L.2112 +la $4,L.687 +move $5,$23 +jal printf +L.2112: +L.2110: +la $22,12 +la $17,10 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +sll $15,$17,8*(4-1); sra $15,$15,8*(4-1) +xor $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,6 +beq $24,$15,L.2114 +la $23,346 +beq $30,$0,L.2116 +la $4,L.687 +move $5,$23 +jal printf +L.2116: +L.2114: +la $22,12 +la $16,10 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +sll $15,$16,8*(4-2); sra $15,$15,8*(4-2) +xor $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,6 +beq $24,$15,L.2118 +la $23,347 +beq $30,$0,L.2120 +la $4,L.687 +move $5,$23 +jal printf +L.2120: +L.2118: +la $22,12 +la $24,10 +sw $24,-4+160($sp) +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +lw $15,-4+160($sp) +xor $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,6 +beq $24,$15,L.2122 +la $23,348 +beq $30,$0,L.2124 +la $4,L.687 +move $5,$23 +jal printf +L.2124: +L.2122: +la $22,12 +la $24,10 +sw $24,-8+160($sp) +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +lw $15,-8+160($sp) +xor $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,6 +beq $24,$15,L.2126 +la $23,349 +beq $30,$0,L.2128 +la $4,L.687 +move $5,$23 +jal printf +L.2128: +L.2126: +la $22,12 +la $24,10 +sw $24,-12+160($sp) +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +lw $15,-12+160($sp) +xor $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,6 +beq $24,$15,L.2130 +la $23,350 +beq $30,$0,L.2132 +la $4,L.687 +move $5,$23 +jal printf +L.2132: +L.2130: +la $21,12 +la $17,10 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +sll $15,$17,8*(4-1); sra $15,$15,8*(4-1) +xor $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,6 +beq $24,$15,L.2134 +la $23,351 +beq $30,$0,L.2136 +la $4,L.687 +move $5,$23 +jal printf +L.2136: +L.2134: +la $21,12 +la $16,10 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +sll $15,$16,8*(4-2); sra $15,$15,8*(4-2) +xor $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,6 +beq $24,$15,L.2138 +la $23,352 +beq $30,$0,L.2140 +la $4,L.687 +move $5,$23 +jal printf +L.2140: +L.2138: +la $21,12 +la $24,10 +sw $24,-4+160($sp) +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +lw $15,-4+160($sp) +xor $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,6 +beq $24,$15,L.2142 +la $23,353 +beq $30,$0,L.2144 +la $4,L.687 +move $5,$23 +jal printf +L.2144: +L.2142: +la $21,12 +la $24,10 +sw $24,-8+160($sp) +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +lw $15,-8+160($sp) +xor $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,6 +beq $24,$15,L.2146 +la $23,354 +beq $30,$0,L.2148 +la $4,L.687 +move $5,$23 +jal printf +L.2148: +L.2146: +la $21,12 +la $24,10 +sw $24,-12+160($sp) +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +lw $15,-12+160($sp) +xor $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,6 +beq $24,$15,L.2150 +la $23,355 +beq $30,$0,L.2152 +la $4,L.687 +move $5,$23 +jal printf +L.2152: +L.2150: +la $20,12 +la $17,10 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +xor $20,$20,$24 +la $24,6 +beq $20,$24,L.2154 +la $23,356 +beq $30,$0,L.2156 +la $4,L.687 +move $5,$23 +jal printf +L.2156: +L.2154: +la $20,12 +la $16,10 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +xor $20,$20,$24 +la $24,6 +beq $20,$24,L.2158 +la $23,357 +beq $30,$0,L.2160 +la $4,L.687 +move $5,$23 +jal printf +L.2160: +L.2158: +la $20,12 +la $24,10 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +xor $20,$20,$24 +la $24,6 +beq $20,$24,L.2162 +la $23,358 +beq $30,$0,L.2164 +la $4,L.687 +move $5,$23 +jal printf +L.2164: +L.2162: +la $20,12 +la $24,10 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +xor $20,$20,$24 +la $24,6 +beq $20,$24,L.2166 +la $23,359 +beq $30,$0,L.2168 +la $4,L.687 +move $5,$23 +jal printf +L.2168: +L.2166: +la $20,12 +la $24,10 +sw $24,-12+160($sp) +move $24,$20 +lw $15,-12+160($sp) +xor $24,$24,$15 +move $20,$24 +la $24,6 +beq $20,$24,L.2170 +la $23,360 +beq $30,$0,L.2172 +la $4,L.687 +move $5,$23 +jal printf +L.2172: +L.2170: +la $19,12 +la $17,10 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +xor $19,$19,$24 +la $24,6 +beq $19,$24,L.2174 +la $23,361 +beq $30,$0,L.2176 +la $4,L.687 +move $5,$23 +jal printf +L.2176: +L.2174: +la $19,12 +la $16,10 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +xor $19,$19,$24 +la $24,6 +beq $19,$24,L.2178 +la $23,362 +beq $30,$0,L.2180 +la $4,L.687 +move $5,$23 +jal printf +L.2180: +L.2178: +la $19,12 +la $24,10 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +xor $19,$19,$24 +la $24,6 +beq $19,$24,L.2182 +la $23,363 +beq $30,$0,L.2184 +la $4,L.687 +move $5,$23 +jal printf +L.2184: +L.2182: +la $19,12 +la $24,10 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +xor $19,$19,$24 +la $24,6 +beq $19,$24,L.2186 +la $23,364 +beq $30,$0,L.2188 +la $4,L.687 +move $5,$23 +jal printf +L.2188: +L.2186: +la $19,12 +la $24,10 +sw $24,-12+160($sp) +move $24,$19 +lw $15,-12+160($sp) +xor $24,$24,$15 +move $19,$24 +la $24,6 +beq $19,$24,L.2190 +la $23,365 +beq $30,$0,L.2192 +la $4,L.687 +move $5,$23 +jal printf +L.2192: +L.2190: +la $18,12 +la $17,10 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +xor $18,$18,$24 +la $24,6 +beq $18,$24,L.2194 +la $23,366 +beq $30,$0,L.2196 +la $4,L.687 +move $5,$23 +jal printf +L.2196: +L.2194: +la $18,12 +la $16,10 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +xor $18,$18,$24 +la $24,6 +beq $18,$24,L.2198 +la $23,367 +beq $30,$0,L.2200 +la $4,L.687 +move $5,$23 +jal printf +L.2200: +L.2198: +la $18,12 +la $24,10 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +xor $18,$18,$24 +la $24,6 +beq $18,$24,L.2202 +la $23,368 +beq $30,$0,L.2204 +la $4,L.687 +move $5,$23 +jal printf +L.2204: +L.2202: +la $18,12 +la $24,10 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +xor $18,$18,$24 +la $24,6 +beq $18,$24,L.2206 +la $23,369 +beq $30,$0,L.2208 +la $4,L.687 +move $5,$23 +jal printf +L.2208: +L.2206: +la $18,12 +la $24,10 +sw $24,-12+160($sp) +lw $24,-12+160($sp) +xor $18,$18,$24 +la $24,6 +beq $18,$24,L.2210 +la $23,370 +beq $30,$0,L.2212 +la $4,L.687 +move $5,$23 +jal printf +L.2212: +L.2210: +la $22,12 +la $17,10 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +sll $15,$17,8*(4-1); sra $15,$15,8*(4-1) +or $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,14 +beq $24,$15,L.2214 +la $23,371 +beq $30,$0,L.2216 +la $4,L.687 +move $5,$23 +jal printf +L.2216: +L.2214: +la $22,12 +la $16,10 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +sll $15,$16,8*(4-2); sra $15,$15,8*(4-2) +or $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,14 +beq $24,$15,L.2218 +la $23,372 +beq $30,$0,L.2220 +la $4,L.687 +move $5,$23 +jal printf +L.2220: +L.2218: +la $22,12 +la $24,10 +sw $24,-4+160($sp) +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +lw $15,-4+160($sp) +or $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,14 +beq $24,$15,L.2222 +la $23,373 +beq $30,$0,L.2224 +la $4,L.687 +move $5,$23 +jal printf +L.2224: +L.2222: +la $22,12 +la $24,10 +sw $24,-8+160($sp) +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +lw $15,-8+160($sp) +or $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,14 +beq $24,$15,L.2226 +la $23,374 +beq $30,$0,L.2228 +la $4,L.687 +move $5,$23 +jal printf +L.2228: +L.2226: +la $22,12 +la $24,10 +sw $24,-12+160($sp) +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +lw $15,-12+160($sp) +or $24,$24,$15 +move $22,$24 +sll $24,$22,8*(4-1); sra $24,$24,8*(4-1) +la $15,14 +beq $24,$15,L.2230 +la $23,375 +beq $30,$0,L.2232 +la $4,L.687 +move $5,$23 +jal printf +L.2232: +L.2230: +la $21,12 +la $17,10 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +sll $15,$17,8*(4-1); sra $15,$15,8*(4-1) +or $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,14 +beq $24,$15,L.2234 +la $23,376 +beq $30,$0,L.2236 +la $4,L.687 +move $5,$23 +jal printf +L.2236: +L.2234: +la $21,12 +la $16,10 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +sll $15,$16,8*(4-2); sra $15,$15,8*(4-2) +or $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,14 +beq $24,$15,L.2238 +la $23,377 +beq $30,$0,L.2240 +la $4,L.687 +move $5,$23 +jal printf +L.2240: +L.2238: +la $21,12 +la $24,10 +sw $24,-4+160($sp) +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +lw $15,-4+160($sp) +or $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,14 +beq $24,$15,L.2242 +la $23,378 +beq $30,$0,L.2244 +la $4,L.687 +move $5,$23 +jal printf +L.2244: +L.2242: +la $21,12 +la $24,10 +sw $24,-8+160($sp) +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +lw $15,-8+160($sp) +or $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,14 +beq $24,$15,L.2246 +la $23,379 +beq $30,$0,L.2248 +la $4,L.687 +move $5,$23 +jal printf +L.2248: +L.2246: +la $21,12 +la $24,10 +sw $24,-12+160($sp) +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +lw $15,-12+160($sp) +or $24,$24,$15 +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,14 +beq $24,$15,L.2250 +la $23,380 +beq $30,$0,L.2252 +la $4,L.687 +move $5,$23 +jal printf +L.2252: +L.2250: +la $20,12 +la $17,10 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +or $20,$20,$24 +la $24,14 +beq $20,$24,L.2254 +la $23,381 +beq $30,$0,L.2256 +la $4,L.687 +move $5,$23 +jal printf +L.2256: +L.2254: +la $20,12 +la $16,10 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +or $20,$20,$24 +la $24,14 +beq $20,$24,L.2258 +la $23,382 +beq $30,$0,L.2260 +la $4,L.687 +move $5,$23 +jal printf +L.2260: +L.2258: +la $20,12 +la $24,10 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +or $20,$20,$24 +la $24,14 +beq $20,$24,L.2262 +la $23,383 +beq $30,$0,L.2264 +la $4,L.687 +move $5,$23 +jal printf +L.2264: +L.2262: +la $20,12 +la $24,10 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +or $20,$20,$24 +la $24,14 +beq $20,$24,L.2266 +la $23,384 +beq $30,$0,L.2268 +la $4,L.687 +move $5,$23 +jal printf +L.2268: +L.2266: +la $20,12 +la $24,10 +sw $24,-12+160($sp) +move $24,$20 +lw $15,-12+160($sp) +or $24,$24,$15 +move $20,$24 +la $24,14 +beq $20,$24,L.2270 +la $23,385 +beq $30,$0,L.2272 +la $4,L.687 +move $5,$23 +jal printf +L.2272: +L.2270: +la $19,12 +la $17,10 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +or $19,$19,$24 +la $24,14 +beq $19,$24,L.2274 +la $23,386 +beq $30,$0,L.2276 +la $4,L.687 +move $5,$23 +jal printf +L.2276: +L.2274: +la $19,12 +la $16,10 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +or $19,$19,$24 +la $24,14 +beq $19,$24,L.2278 +la $23,387 +beq $30,$0,L.2280 +la $4,L.687 +move $5,$23 +jal printf +L.2280: +L.2278: +la $19,12 +la $24,10 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +or $19,$19,$24 +la $24,14 +beq $19,$24,L.2282 +la $23,388 +beq $30,$0,L.2284 +la $4,L.687 +move $5,$23 +jal printf +L.2284: +L.2282: +la $19,12 +la $24,10 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +or $19,$19,$24 +la $24,14 +beq $19,$24,L.2286 +la $23,389 +beq $30,$0,L.2288 +la $4,L.687 +move $5,$23 +jal printf +L.2288: +L.2286: +la $19,12 +la $24,10 +sw $24,-12+160($sp) +move $24,$19 +lw $15,-12+160($sp) +or $24,$24,$15 +move $19,$24 +la $24,14 +beq $19,$24,L.2290 +la $23,390 +beq $30,$0,L.2292 +la $4,L.687 +move $5,$23 +jal printf +L.2292: +L.2290: +la $18,12 +la $17,10 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +or $18,$18,$24 +la $24,14 +beq $18,$24,L.2294 +la $23,391 +beq $30,$0,L.2296 +la $4,L.687 +move $5,$23 +jal printf +L.2296: +L.2294: +la $18,12 +la $16,10 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +or $18,$18,$24 +la $24,14 +beq $18,$24,L.2298 +la $23,392 +beq $30,$0,L.2300 +la $4,L.687 +move $5,$23 +jal printf +L.2300: +L.2298: +la $18,12 +la $24,10 +sw $24,-4+160($sp) +lw $24,-4+160($sp) +or $18,$18,$24 +la $24,14 +beq $18,$24,L.2302 +la $23,393 +beq $30,$0,L.2304 +la $4,L.687 +move $5,$23 +jal printf +L.2304: +L.2302: +la $18,12 +la $24,10 +sw $24,-8+160($sp) +lw $24,-8+160($sp) +or $18,$18,$24 +la $24,14 +beq $18,$24,L.2306 +la $23,394 +beq $30,$0,L.2308 +la $4,L.687 +move $5,$23 +jal printf +L.2308: +L.2306: +la $18,12 +la $24,10 +sw $24,-12+160($sp) +lw $24,-12+160($sp) +or $18,$18,$24 +la $24,14 +beq $18,$24,L.2310 +la $23,395 +beq $30,$0,L.2312 +la $4,L.687 +move $5,$23 +jal printf +L.2312: +L.2310: +beq $23,$0,L.2314 +la $24,1 +sw $24,-24+160($sp) +lw $24,0+160($sp) +lw $24,44($24) +beq $24,$0,L.2316 +la $4,L.688 +la $5,1 +jal printf +L.2316: +L.2314: +lw $2,-24+160($sp) +L.686: +l.d $f24,16($sp) +l.d $f26,24($sp) +l.d $f28,32($sp) +l.d $f30,40($sp) +lw $16,48($sp) +lw $17,52($sp) +lw $18,56($sp) +lw $19,60($sp) +lw $20,64($sp) +lw $21,68($sp) +lw $22,72($sp) +lw $23,76($sp) +lw $25,80($sp) +lw $30,84($sp) +lw $31,88($sp) +addu $sp,$sp,160 +j $31 +.end s714 +.data +.align 0 +L.2319: +.byte 115 +.byte 55 +.byte 49 +.byte 53 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.sdata +.align 0 +L.2320: +.byte 115 +.byte 55 +.byte 49 +.byte 53 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s715 +.text +.text +.align 2 +.ent s715 +s715: +.frame $sp,56,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-56 +.mask 0xc2e00000,-20 +sw $21,16($sp) +sw $22,20($sp) +sw $23,24($sp) +.cprestore 28 +sw $30,32($sp) +sw $31,36($sp) +sw $4,56($sp) +sw $0,-12+56($sp) +sw $0,-4+56($sp) +la $30,L.2320 +lw $15,0+56($sp) +la $23,60($15) +move $21,$0 +L.2321: +L.2322: +move $24,$23 +la $23,1($24) +move $15,$30 +la $30,1($15) +lb $15,($15) +sb $15,($24) +sll $24,$15,8*(4-1); sra $24,$24,8*(4-1) +bne $24,$0,L.2321 +la $24,1 +move $22,$24 +la $22,1($22) +la $22,1($22) +la $22,1($22) +la $22,1($22) +la $24,1($22) +move $22,$24 +la $15,6 +beq $24,$15,L.2324 +lw $24,0+56($sp) +lw $24,44($24) +beq $24,$0,L.2326 +la $4,L.2319 +la $5,1 +jal printf +L.2326: +la $21,1($21) +L.2324: +lw $4,-4+56($sp) +la $24,3 +sw $24,-8+56($sp) +lw $24,-8+56($sp) +la $5,2($24) +lw $6,-12+56($sp) +jal s715f +la $15,5 +beq $2,$15,L.2328 +lw $24,0+56($sp) +lw $24,44($24) +beq $24,$0,L.2330 +la $4,L.2319 +la $5,2 +jal printf +L.2330: +la $21,2($21) +L.2328: +move $2,$21 +L.2318: +lw $21,16($sp) +lw $22,20($sp) +lw $23,24($sp) +lw $25,28($sp) +lw $30,32($sp) +lw $31,36($sp) +addu $sp,$sp,56 +j $31 +.end s715 +.globl s715f +.text +.align 2 +.ent s715f +s715f: +.frame $sp,0,$31 +.set noreorder +.cpload $25 +.set reorder +move $2,$5 +L.2332: +j $31 +.end s715f +.data +.align 0 +L.2334: +.byte 115 +.byte 55 +.byte 50 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.sdata +.align 0 +L.2335: +.byte 115 +.byte 55 +.byte 50 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s72 +.text +.text +.align 2 +.ent s72 +s72: +.frame $sp,96,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-96 +.fmask 0xf0000000,-72 +.mask 0xc2ff0000,-24 +s.d $f28,16($sp) +s.d $f30,24($sp) +sw $16,32($sp) +sw $17,36($sp) +sw $18,40($sp) +sw $19,44($sp) +sw $20,48($sp) +sw $21,52($sp) +sw $22,56($sp) +sw $23,60($sp) +.cprestore 64 +sw $30,68($sp) +sw $31,72($sp) +move $30,$4 +la $22,L.2335 +la $21,60($30) +move $19,$0 +L.2336: +L.2337: +move $24,$21 +la $21,1($24) +move $15,$22 +la $22,1($15) +lb $15,($15) +sb $15,($24) +sll $24,$15,8*(4-1); sra $24,$24,8*(4-1) +bne $24,$0,L.2336 +la $24,2 +sw $24,-4+96($sp) +lw $15,-4+96($sp) +beq $15,$24,L.2339 +la $24,1 +la $19,1($19) +la $4,L.2334 +move $5,$24 +jal printf +L.2339: +lw $24,-4+96($sp) +negu $15,$24 +addu $24,$24,$15 +beq $24,$0,L.2341 +la $24,2 +la $19,2($19) +la $4,L.2334 +move $5,$24 +jal printf +L.2341: +sw $0,-4+96($sp) +move $23,$0 +b L.2346 +L.2343: +lw $24,-4+96($sp) +sll $24,$24,1 +or $24,$24,1 +sw $24,-4+96($sp) +L.2344: +la $23,1($23) +L.2346: +lw $24,4($30) +blt $23,$24,L.2343 +lw $24,-4+96($sp) +not $24,$24 +beq $24,$0,L.2347 +la $24,4 +la $19,4($19) +la $4,L.2334 +move $5,$24 +jal printf +L.2347: +la $24,5 +sw $24,-4+96($sp) +lw $24,-4+96($sp) +la $24,1($24) +sw $24,-4+96($sp) +la $15,6 +bne $24,$15,L.2354 +lw $24,-4+96($sp) +subu $24,$24,1 +sw $24,-4+96($sp) +la $14,5 +bne $24,$14,L.2354 +lw $24,-4+96($sp) +la $13,1($24) +sw $13,-4+96($sp) +bne $24,$14,L.2354 +lw $24,-4+96($sp) +subu $13,$24,1 +sw $13,-4+96($sp) +bne $24,$15,L.2354 +lw $24,-4+96($sp) +beq $24,$14,L.2349 +L.2354: +la $24,8 +la $19,8($19) +la $4,L.2334 +move $5,$24 +jal printf +L.2349: +la $17,26 +la $24,26 +sw $24,-8+96($sp) +l.d $f30,L.2355 +la $16,26 +la $24,26 +sw $24,-12+96($sp) +la $18,26 +l.s $f28,L.2356 +move $20,$0 +la $24,26 +sll $15,$16,8*(4-2); sra $15,$15,8*(4-2) +sll $15,$15,8*(4-1); sra $15,$15,8*(4-1) +bne $15,$24,L.2363 +move $15,$18 +sll $15,$15,8*(4-1); sra $15,$15,8*(4-1) +bne $15,$24,L.2363 +lw $15,-8+96($sp) +sll $15,$15,8*(4-1); sra $15,$15,8*(4-1) +bne $15,$24,L.2363 +lw $15,-12+96($sp) +sll $15,$15,8*(4-1); sra $15,$15,8*(4-1) +bne $15,$24,L.2363 +trunc.w.s $f2,$f28,$15; mfc1 $15,$f2 +sll $15,$15,8*(4-1); sra $15,$15,8*(4-1) +bne $15,$24,L.2363 +trunc.w.d $f2,$f30,$15; mfc1 $15,$f2 +sll $15,$15,8*(4-1); sra $15,$15,8*(4-1) +beq $15,$24,L.2357 +L.2363: +la $20,1($20) +L.2357: +la $24,26 +sll $15,$17,8*(4-1); sra $15,$15,8*(4-1) +sll $15,$15,8*(4-2); sra $15,$15,8*(4-2) +bne $15,$24,L.2370 +move $15,$18 +sll $15,$15,8*(4-2); sra $15,$15,8*(4-2) +bne $15,$24,L.2370 +lw $15,-8+96($sp) +sll $15,$15,8*(4-2); sra $15,$15,8*(4-2) +bne $15,$24,L.2370 +lw $15,-12+96($sp) +sll $15,$15,8*(4-2); sra $15,$15,8*(4-2) +bne $15,$24,L.2370 +trunc.w.s $f2,$f28,$15; mfc1 $15,$f2 +sll $15,$15,8*(4-2); sra $15,$15,8*(4-2) +bne $15,$24,L.2370 +trunc.w.d $f2,$f30,$15; mfc1 $15,$f2 +sll $15,$15,8*(4-2); sra $15,$15,8*(4-2) +beq $15,$24,L.2364 +L.2370: +la $20,2($20) +L.2364: +la $24,26 +sll $15,$17,8*(4-1); sra $15,$15,8*(4-1) +bne $15,$24,L.2377 +sll $15,$16,8*(4-2); sra $15,$15,8*(4-2) +bne $15,$24,L.2377 +lw $15,-8+96($sp) +bne $15,$24,L.2377 +lw $15,-12+96($sp) +bne $15,$24,L.2377 +trunc.w.s $f2,$f28,$15; mfc1 $15,$f2 +bne $15,$24,L.2377 +trunc.w.d $f2,$f30,$15; mfc1 $15,$f2 +beq $15,$24,L.2371 +L.2377: +la $20,4($20) +L.2371: +la $24,26 +sll $15,$17,8*(4-1); sra $15,$15,8*(4-1) +bne $15,$24,L.2384 +sll $15,$16,8*(4-2); sra $15,$15,8*(4-2) +bne $15,$24,L.2384 +bne $18,$24,L.2384 +lw $15,-12+96($sp) +bne $15,$24,L.2384 +trunc.w.s $f2,$f28,$15; mfc1 $15,$f2 +bne $15,$24,L.2384 +trunc.w.d $f2,$f30,$15; mfc1 $15,$f2 +beq $15,$24,L.2378 +L.2384: +la $20,8($20) +L.2378: +la $24,26 +sll $15,$17,8*(4-1); sra $15,$15,8*(4-1) +bne $15,$24,L.2393 +sll $15,$16,8*(4-2); sra $15,$15,8*(4-2) +bne $15,$24,L.2393 +move $15,$18 +bne $15,$24,L.2393 +lw $15,-8+96($sp) +bne $15,$24,L.2393 +l.s $f18,L.828 +c.lt.s $f28,$f18; bc1t L.2394 +sub.s $f18,$f28,$f18 +trunc.w.s $f2,$f18,$24; mfc1 $24,$f2 +la $24,0x80000000($24) +sw $24,-16+96($sp) +b L.2395 +L.2394: +trunc.w.s $f2,$f28,$24; mfc1 $24,$f2 +sw $24,-16+96($sp) +L.2395: +lw $24,-16+96($sp) +la $15,26 +bne $24,$15,L.2393 +l.d $f18,L.836 +c.lt.d $f30,$f18; bc1t L.2396 +sub.d $f18,$f30,$f18 +trunc.w.d $f2,$f18,$24; mfc1 $24,$f2 +la $24,0x80000000($24) +sw $24,-20+96($sp) +b L.2397 +L.2396: +trunc.w.d $f2,$f30,$24; mfc1 $24,$f2 +sw $24,-20+96($sp) +L.2397: +lw $24,-20+96($sp) +la $15,26 +beq $24,$15,L.2385 +L.2393: +la $20,16($20) +L.2385: +l.d $f18,L.2355 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +mtc1 $24,$f16; cvt.s.w $f16,$f16 +cvt.d.s $f16,$f16 +c.eq.d $f16,$f18; bc1f L.2404 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +mtc1 $24,$f16; cvt.s.w $f16,$f16 +cvt.d.s $f16,$f16 +c.eq.d $f16,$f18; bc1f L.2404 +mtc1 $18,$f16; cvt.s.w $f16,$f16 +cvt.d.s $f16,$f16 +c.eq.d $f16,$f18; bc1f L.2404 +lw $24,-8+96($sp) +mtc1 $24,$f16; cvt.s.w $f16,$f16 +cvt.d.s $f16,$f16 +c.eq.d $f16,$f18; bc1f L.2404 +lw $24,-12+96($sp) +l.d $f16,L.596 +srl $15,$24,1 +mtc1 $15,$f10; cvt.d.w $f10,$f10 +mul.d $f16,$f16,$f10 +and $24,$24,1 +mtc1 $24,$f10; cvt.d.w $f10,$f10 +add.d $f16,$f16,$f10 +cvt.s.d $f16,$f16 +cvt.d.s $f16,$f16 +c.eq.d $f16,$f18; bc1f L.2404 +cvt.s.d $f16,$f30 +cvt.d.s $f16,$f16 +c.eq.d $f16,$f18; bc1t L.2398 +L.2404: +la $20,32($20) +L.2398: +l.d $f18,L.2355 +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +mtc1 $24,$f16; cvt.d.w $f16,$f16 +c.eq.d $f16,$f18; bc1f L.2411 +sll $24,$16,8*(4-2); sra $24,$24,8*(4-2) +mtc1 $24,$f16; cvt.d.w $f16,$f16 +c.eq.d $f16,$f18; bc1f L.2411 +mtc1 $18,$f16; cvt.d.w $f16,$f16 +c.eq.d $f16,$f18; bc1f L.2411 +lw $24,-8+96($sp) +mtc1 $24,$f16; cvt.d.w $f16,$f16 +c.eq.d $f16,$f18; bc1f L.2411 +lw $24,-12+96($sp) +l.d $f16,L.596 +srl $15,$24,1 +mtc1 $15,$f10; cvt.d.w $f10,$f10 +mul.d $f16,$f16,$f10 +and $24,$24,1 +mtc1 $24,$f10; cvt.d.w $f10,$f10 +add.d $f16,$f16,$f10 +c.eq.d $f16,$f18; bc1f L.2411 +cvt.d.s $f16,$f28 +c.eq.d $f16,$f18; bc1t L.2405 +L.2411: +la $20,64($20) +L.2405: +beq $20,$0,L.2412 +la $24,16 +la $19,16($19) +la $4,L.2334 +move $5,$24 +jal printf +L.2412: +move $2,$19 +L.2333: +l.d $f28,16($sp) +l.d $f30,24($sp) +lw $16,32($sp) +lw $17,36($sp) +lw $18,40($sp) +lw $19,44($sp) +lw $20,48($sp) +lw $21,52($sp) +lw $22,56($sp) +lw $23,60($sp) +lw $25,64($sp) +lw $30,68($sp) +lw $31,72($sp) +addu $sp,$sp,96 +j $31 +.end s72 +.data +.align 0 +L.2415: +.byte 115 +.byte 55 +.byte 53 +.byte 55 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.sdata +.align 0 +L.2416: +.byte 115 +.byte 55 +.byte 53 +.byte 55 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s757 +.text +.text +.align 2 +.ent s757 +s757: +.frame $sp,176,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-176 +.mask 0xc2ff0000,-120 +sw $16,16($sp) +sw $17,20($sp) +sw $18,24($sp) +sw $19,28($sp) +sw $20,32($sp) +sw $21,36($sp) +sw $22,40($sp) +sw $23,44($sp) +.cprestore 48 +sw $30,52($sp) +sw $31,56($sp) +move $30,$4 +la $24,L.2416 +sw $24,-80+176($sp) +la $24,60($30) +sw $24,-84+176($sp) +sw $0,-88+176($sp) +L.2417: +L.2418: +lw $24,-84+176($sp) +la $15,1($24) +sw $15,-84+176($sp) +lw $15,-80+176($sp) +la $14,1($15) +sw $14,-80+176($sp) +lb $15,($15) +sb $15,($24) +sll $24,$15,8*(4-1); sra $24,$24,8*(4-1) +bne $24,$0,L.2417 +la $24,40 +sw $24,-92+176($sp) +lw $24,-92+176($sp) +sll $15,$24,3 +sll $15,$15,2 +la $14,1280 +bne $15,$14,L.2422 +sra $24,$24,3 +sra $24,$24,2 +la $15,1 +beq $24,$15,L.2420 +L.2422: +lw $24,-88+176($sp) +la $24,1($24) +sw $24,-88+176($sp) +lw $24,44($30) +beq $24,$0,L.2423 +la $4,L.2415 +la $5,1 +jal printf +L.2423: +L.2420: +move $19,$0 +sw $0,-68+176($sp) +b L.2428 +L.2425: +la $17,1 +lw $24,16($30) +subu $24,$24,1 +sll $16,$17,$24 +sw $0,-72+176($sp) +lw $24,-72+176($sp) +not $24,$24 +lw $15,-68+176($sp) +srl $14,$24,$15 +sw $14,-76+176($sp) +sll $24,$24,$15 +sw $24,-72+176($sp) +move $18,$0 +b L.2432 +L.2429: +lw $24,-68+176($sp) +bge $18,$24,L.2440 +la $24,1 +sw $24,-100+176($sp) +b L.2441 +L.2440: +sw $0,-100+176($sp) +L.2441: +lw $24,-72+176($sp) +and $24,$17,$24 +bne $24,$0,L.2442 +la $24,1 +sw $24,-104+176($sp) +b L.2443 +L.2442: +sw $0,-104+176($sp) +L.2443: +lw $24,-100+176($sp) +lw $15,-104+176($sp) +bne $24,$15,L.2439 +lw $24,-68+176($sp) +bge $18,$24,L.2444 +la $24,1 +sw $24,-108+176($sp) +b L.2445 +L.2444: +sw $0,-108+176($sp) +L.2445: +lw $24,-76+176($sp) +and $24,$16,$24 +bne $24,$0,L.2446 +la $24,1 +sw $24,-112+176($sp) +b L.2447 +L.2446: +sw $0,-112+176($sp) +L.2447: +lw $24,-108+176($sp) +lw $15,-112+176($sp) +beq $24,$15,L.2433 +L.2439: +la $19,1 +L.2433: +sll $17,$17,1 +srl $16,$16,1 +L.2430: +la $18,1($18) +L.2432: +lw $24,16($30) +blt $18,$24,L.2429 +L.2426: +lw $24,-68+176($sp) +la $24,1($24) +sw $24,-68+176($sp) +L.2428: +lw $24,-68+176($sp) +lw $15,16($30) +blt $24,$15,L.2425 +beq $19,$0,L.2448 +lw $24,-88+176($sp) +la $24,2($24) +sw $24,-88+176($sp) +lw $24,44($30) +beq $24,$0,L.2450 +la $4,L.2415 +la $5,2 +jal printf +L.2450: +L.2448: +la $20,3 +la $21,2 +la $22,1 +bge $20,$21,L.2458 +la $24,1 +sw $24,-104+176($sp) +b L.2459 +L.2458: +sw $0,-104+176($sp) +L.2459: +lw $24,-104+176($sp) +bge $24,$22,L.2456 +la $24,1 +sw $24,-100+176($sp) +b L.2457 +L.2456: +sw $0,-100+176($sp) +L.2457: +lw $24,-100+176($sp) +la $15,1 +beq $24,$15,L.2452 +lw $24,-88+176($sp) +la $24,4($24) +sw $24,-88+176($sp) +lw $24,44($30) +beq $24,$0,L.2460 +la $4,L.2415 +la $5,4 +jal printf +L.2460: +L.2452: +la $24,-60+176($sp) +la $15,-64+176($sp) +bne $24,$15,L.2462 +lw $24,-88+176($sp) +la $24,8($24) +sw $24,-88+176($sp) +lw $24,44($30) +beq $24,$0,L.2465 +la $4,L.2415 +la $5,8 +jal printf +L.2465: +L.2462: +la $24,-60+176($sp) +la $15,-64+176($sp) +bgeu $24,$15,L.2467 +lw $24,40($30) +beq $24,$0,L.2470 +la $4,L.2472 +jal printf +L.2470: +L.2467: +move $19,$0 +move $18,$0 +L.2473: +sll $24,$18,2 +la $15,-64+176($sp) +addu $24,$24,$15 +la $15,1 +sw $15,($24) +L.2474: +la $18,1($18) +la $24,16 +blt $18,$24,L.2473 +sw $0,-60+176($sp) +sw $0,-48+176($sp) +sw $0,-40+176($sp) +sw $0,-36+176($sp) +sw $0,-28+176($sp) +sw $0,-12+176($sp) +move $20,$0 +L.2483: +move $21,$0 +L.2487: +move $22,$0 +L.2491: +move $23,$0 +L.2495: +bge $20,$21,L.2506 +la $24,1 +sw $24,-112+176($sp) +b L.2507 +L.2506: +sw $0,-112+176($sp) +L.2507: +bge $22,$23,L.2508 +la $24,1 +sw $24,-116+176($sp) +b L.2509 +L.2508: +sw $0,-116+176($sp) +L.2509: +lw $24,-112+176($sp) +lw $15,-116+176($sp) +bne $24,$15,L.2504 +la $24,1 +sw $24,-108+176($sp) +b L.2505 +L.2504: +sw $0,-108+176($sp) +L.2505: +lw $24,-108+176($sp) +sll $15,$20,3 +sll $14,$21,2 +addu $15,$15,$14 +sll $14,$22,1 +addu $15,$15,$14 +addu $15,$15,$23 +sll $15,$15,2 +la $14,-64+176($sp) +addu $15,$15,$14 +lw $15,($15) +beq $24,$15,L.2499 +la $19,1 +L.2499: +L.2496: +la $23,1($23) +la $24,2 +blt $23,$24,L.2495 +L.2492: +la $22,1($22) +la $24,2 +blt $22,$24,L.2491 +L.2488: +la $21,1($21) +la $24,2 +blt $21,$24,L.2487 +L.2484: +la $20,1($20) +la $24,2 +blt $20,$24,L.2483 +beq $19,$0,L.2510 +lw $24,-88+176($sp) +la $24,16($24) +sw $24,-88+176($sp) +lw $24,44($30) +beq $24,$0,L.2512 +la $4,L.2415 +la $5,16 +jal printf +L.2512: +L.2510: +sw $0,-96+176($sp) +lw $24,-96+176($sp) +beq $24,$0,L.2514 +lw $24,-88+176($sp) +la $24,32($24) +sw $24,-88+176($sp) +lw $24,44($30) +beq $24,$0,L.2516 +la $4,L.2415 +la $5,32 +jal printf +L.2516: +L.2514: +lw $2,-88+176($sp) +L.2414: +lw $16,16($sp) +lw $17,20($sp) +lw $18,24($sp) +lw $19,28($sp) +lw $20,32($sp) +lw $21,36($sp) +lw $22,40($sp) +lw $23,44($sp) +lw $25,48($sp) +lw $30,52($sp) +lw $31,56($sp) +addu $sp,$sp,176 +j $31 +.end s757 +.data +.align 0 +L.2519: +.byte 76 +.byte 111 +.byte 99 +.byte 97 +.byte 108 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 32 +.byte 37 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.data +.align 0 +L.2520: +.byte 115 +.byte 55 +.byte 56 +.byte 49 +.byte 51 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.sdata +.align 0 +L.2521: +.byte 115 +.byte 55 +.byte 56 +.byte 49 +.byte 51 +.byte 32 +.byte 32 +.byte 0 +.globl s7813 +.text +.text +.align 2 +.ent s7813 +s7813: +.frame $sp,112,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-112 +.mask 0xc2ff0000,-56 +sw $16,16($sp) +sw $17,20($sp) +sw $18,24($sp) +sw $19,28($sp) +sw $20,32($sp) +sw $21,36($sp) +sw $22,40($sp) +sw $23,44($sp) +.cprestore 48 +sw $30,52($sp) +sw $31,56($sp) +sw $4,112($sp) +la $19,L.2521 +lw $24,0+112($sp) +la $18,60($24) +move $23,$0 +move $17,$0 +lw $30,48($24) +L.2522: +L.2523: +move $24,$18 +la $18,1($24) +move $15,$19 +la $19,1($15) +lb $15,($15) +sb $15,($24) +sll $24,$15,8*(4-1); sra $24,$24,8*(4-1) +bne $24,$0,L.2522 +b L.2525 +la $23,1 +beq $30,$0,L.2527 +la $4,L.2519 +move $5,$23 +jal printf +L.2527: +L.2525: +b L.2529 +la $23,2 +beq $30,$0,L.2531 +la $4,L.2519 +move $5,$23 +jal printf +L.2531: +L.2529: +b L.2533 +la $23,3 +beq $30,$0,L.2535 +la $4,L.2519 +move $5,$23 +jal printf +L.2535: +L.2533: +b L.2537 +la $23,4 +beq $30,$0,L.2539 +la $4,L.2519 +move $5,$23 +jal printf +L.2539: +L.2537: +b L.2541 +la $23,5 +beq $30,$0,L.2543 +la $4,L.2519 +move $5,$23 +jal printf +L.2543: +L.2541: +b L.2545 +la $23,6 +beq $30,$0,L.2547 +la $4,L.2519 +move $5,$23 +jal printf +L.2547: +L.2545: +b L.2549 +la $23,7 +beq $30,$0,L.2551 +la $4,L.2519 +move $5,$23 +jal printf +L.2551: +L.2549: +b L.2553 +la $23,8 +beq $30,$0,L.2555 +la $4,L.2519 +move $5,$23 +jal printf +L.2555: +L.2553: +b L.2557 +la $23,9 +beq $30,$0,L.2559 +la $4,L.2519 +move $5,$23 +jal printf +L.2559: +L.2557: +b L.2561 +la $23,10 +beq $30,$0,L.2563 +la $4,L.2519 +move $5,$23 +jal printf +L.2563: +L.2561: +b L.2565 +la $23,11 +beq $30,$0,L.2567 +la $4,L.2519 +move $5,$23 +jal printf +L.2567: +L.2565: +b L.2569 +la $23,12 +beq $30,$0,L.2571 +la $4,L.2519 +move $5,$23 +jal printf +L.2571: +L.2569: +b L.2573 +la $23,13 +beq $30,$0,L.2575 +la $4,L.2519 +move $5,$23 +jal printf +L.2575: +L.2573: +b L.2577 +la $23,14 +beq $30,$0,L.2579 +la $4,L.2519 +move $5,$23 +jal printf +L.2579: +L.2577: +b L.2581 +la $23,15 +beq $30,$0,L.2583 +la $4,L.2519 +move $5,$23 +jal printf +L.2583: +L.2581: +b L.2585 +la $23,16 +beq $30,$0,L.2587 +la $4,L.2519 +move $5,$23 +jal printf +L.2587: +L.2585: +b L.2589 +la $23,17 +beq $30,$0,L.2591 +la $4,L.2519 +move $5,$23 +jal printf +L.2591: +L.2589: +b L.2593 +la $23,18 +beq $30,$0,L.2595 +la $4,L.2519 +move $5,$23 +jal printf +L.2595: +L.2593: +b L.2597 +la $23,16 +beq $30,$0,L.2599 +la $4,L.2519 +move $5,$23 +jal printf +L.2599: +L.2597: +b L.2601 +la $23,20 +beq $30,$0,L.2603 +la $4,L.2519 +move $5,$23 +jal printf +L.2603: +L.2601: +b L.2605 +la $23,21 +beq $30,$0,L.2607 +la $4,L.2519 +move $5,$23 +jal printf +L.2607: +L.2605: +b L.2609 +la $23,22 +beq $30,$0,L.2611 +la $4,L.2519 +move $5,$23 +jal printf +L.2611: +L.2609: +b L.2613 +la $23,23 +beq $30,$0,L.2615 +la $4,L.2519 +move $5,$23 +jal printf +L.2615: +L.2613: +b L.2617 +la $23,24 +beq $30,$0,L.2619 +la $4,L.2519 +move $5,$23 +jal printf +L.2619: +L.2617: +b L.2621 +la $23,25 +beq $30,$0,L.2623 +la $4,L.2519 +move $5,$23 +jal printf +L.2623: +L.2621: +b L.2625 +la $23,26 +beq $30,$0,L.2627 +la $4,L.2519 +move $5,$23 +jal printf +L.2627: +L.2625: +b L.2629 +la $23,27 +beq $30,$0,L.2631 +la $4,L.2519 +move $5,$23 +jal printf +L.2631: +L.2629: +b L.2633 +la $23,28 +beq $30,$0,L.2635 +la $4,L.2519 +move $5,$23 +jal printf +L.2635: +L.2633: +b L.2637 +la $23,26 +beq $30,$0,L.2639 +la $4,L.2519 +move $5,$23 +jal printf +L.2639: +L.2637: +b L.2641 +la $23,30 +beq $30,$0,L.2643 +la $4,L.2519 +move $5,$23 +jal printf +L.2643: +L.2641: +b L.2645 +la $23,31 +beq $30,$0,L.2647 +la $4,L.2519 +move $5,$23 +jal printf +L.2647: +L.2645: +b L.2649 +la $23,32 +beq $30,$0,L.2651 +la $4,L.2519 +move $5,$23 +jal printf +L.2651: +L.2649: +b L.2653 +la $23,33 +beq $30,$0,L.2655 +la $4,L.2519 +move $5,$23 +jal printf +L.2655: +L.2653: +b L.2657 +la $23,34 +beq $30,$0,L.2659 +la $4,L.2519 +move $5,$23 +jal printf +L.2659: +L.2657: +b L.2661 +la $23,35 +beq $30,$0,L.2663 +la $4,L.2519 +move $5,$23 +jal printf +L.2663: +L.2661: +b L.2665 +la $23,36 +beq $30,$0,L.2667 +la $4,L.2519 +move $5,$23 +jal printf +L.2667: +L.2665: +b L.2669 +la $23,37 +beq $30,$0,L.2671 +la $4,L.2519 +move $5,$23 +jal printf +L.2671: +L.2669: +b L.2673 +la $23,38 +beq $30,$0,L.2675 +la $4,L.2519 +move $5,$23 +jal printf +L.2675: +L.2673: +b L.2677 +la $23,39 +beq $30,$0,L.2679 +la $4,L.2519 +move $5,$23 +jal printf +L.2679: +L.2677: +b L.2681 +la $23,40 +beq $30,$0,L.2683 +la $4,L.2519 +move $5,$23 +jal printf +L.2683: +L.2681: +b L.2685 +la $23,41 +beq $30,$0,L.2687 +la $4,L.2519 +move $5,$23 +jal printf +L.2687: +L.2685: +b L.2689 +la $23,42 +beq $30,$0,L.2691 +la $4,L.2519 +move $5,$23 +jal printf +L.2691: +L.2689: +b L.2693 +la $23,43 +beq $30,$0,L.2695 +la $4,L.2519 +move $5,$23 +jal printf +L.2695: +L.2693: +b L.2697 +la $23,44 +beq $30,$0,L.2699 +la $4,L.2519 +move $5,$23 +jal printf +L.2699: +L.2697: +b L.2701 +la $23,45 +beq $30,$0,L.2703 +la $4,L.2519 +move $5,$23 +jal printf +L.2703: +L.2701: +b L.2705 +la $23,46 +beq $30,$0,L.2707 +la $4,L.2519 +move $5,$23 +jal printf +L.2707: +L.2705: +b L.2709 +la $23,47 +beq $30,$0,L.2711 +la $4,L.2519 +move $5,$23 +jal printf +L.2711: +L.2709: +b L.2713 +la $23,48 +beq $30,$0,L.2715 +la $4,L.2519 +move $5,$23 +jal printf +L.2715: +L.2713: +b L.2717 +la $23,49 +beq $30,$0,L.2719 +la $4,L.2519 +move $5,$23 +jal printf +L.2719: +L.2717: +b L.2721 +la $23,50 +beq $30,$0,L.2723 +la $4,L.2519 +move $5,$23 +jal printf +L.2723: +L.2721: +b L.2725 +la $23,51 +beq $30,$0,L.2727 +la $4,L.2519 +move $5,$23 +jal printf +L.2727: +L.2725: +b L.2729 +la $23,52 +beq $30,$0,L.2731 +la $4,L.2519 +move $5,$23 +jal printf +L.2731: +L.2729: +b L.2733 +la $23,53 +beq $30,$0,L.2735 +la $4,L.2519 +move $5,$23 +jal printf +L.2735: +L.2733: +b L.2737 +la $23,54 +beq $30,$0,L.2739 +la $4,L.2519 +move $5,$23 +jal printf +L.2739: +L.2737: +b L.2741 +la $23,55 +beq $30,$0,L.2743 +la $4,L.2519 +move $5,$23 +jal printf +L.2743: +L.2741: +b L.2745 +la $23,56 +beq $30,$0,L.2747 +la $4,L.2519 +move $5,$23 +jal printf +L.2747: +L.2745: +b L.2749 +la $23,57 +beq $30,$0,L.2751 +la $4,L.2519 +move $5,$23 +jal printf +L.2751: +L.2749: +b L.2753 +la $23,58 +beq $30,$0,L.2755 +la $4,L.2519 +move $5,$23 +jal printf +L.2755: +L.2753: +b L.2757 +la $23,56 +beq $30,$0,L.2759 +la $4,L.2519 +move $5,$23 +jal printf +L.2759: +L.2757: +b L.2761 +la $23,60 +beq $30,$0,L.2763 +la $4,L.2519 +move $5,$23 +jal printf +L.2763: +L.2761: +b L.2765 +la $23,61 +beq $30,$0,L.2767 +la $4,L.2519 +move $5,$23 +jal printf +L.2767: +L.2765: +b L.2769 +la $23,62 +beq $30,$0,L.2771 +la $4,L.2519 +move $5,$23 +jal printf +L.2771: +L.2769: +b L.2773 +la $23,63 +beq $30,$0,L.2775 +la $4,L.2519 +move $5,$23 +jal printf +L.2775: +L.2773: +b L.2777 +la $23,64 +beq $30,$0,L.2779 +la $4,L.2519 +move $5,$23 +jal printf +L.2779: +L.2777: +b L.2781 +la $23,65 +beq $30,$0,L.2783 +la $4,L.2519 +move $5,$23 +jal printf +L.2783: +L.2781: +b L.2785 +la $23,66 +beq $30,$0,L.2787 +la $4,L.2519 +move $5,$23 +jal printf +L.2787: +L.2785: +b L.2789 +la $23,67 +beq $30,$0,L.2791 +la $4,L.2519 +move $5,$23 +jal printf +L.2791: +L.2789: +b L.2793 +la $23,68 +beq $30,$0,L.2795 +la $4,L.2519 +move $5,$23 +jal printf +L.2795: +L.2793: +b L.2797 +la $23,69 +beq $30,$0,L.2799 +la $4,L.2519 +move $5,$23 +jal printf +L.2799: +L.2797: +b L.2801 +la $23,70 +beq $30,$0,L.2803 +la $4,L.2519 +move $5,$23 +jal printf +L.2803: +L.2801: +b L.2805 +la $23,71 +beq $30,$0,L.2807 +la $4,L.2519 +move $5,$23 +jal printf +L.2807: +L.2805: +b L.2809 +la $23,72 +beq $30,$0,L.2811 +la $4,L.2519 +move $5,$23 +jal printf +L.2811: +L.2809: +b L.2813 +la $23,73 +beq $30,$0,L.2815 +la $4,L.2519 +move $5,$23 +jal printf +L.2815: +L.2813: +b L.2817 +la $23,74 +beq $30,$0,L.2819 +la $4,L.2519 +move $5,$23 +jal printf +L.2819: +L.2817: +b L.2821 +la $23,75 +beq $30,$0,L.2823 +la $4,L.2519 +move $5,$23 +jal printf +L.2823: +L.2821: +beq $23,$0,L.2825 +lw $24,0+112($sp) +lw $24,44($24) +beq $24,$0,L.2827 +la $4,L.2520 +la $5,1 +jal printf +L.2827: +la $17,1($17) +L.2825: +move $23,$0 +move $21,$0 +move $22,$0 +move $24,$22 +la $22,1($24) +move $15,$0 +beq $24,$15,L.2830 +move $24,$21 +la $21,1($24) +beq $24,$15,L.2830 +la $24,1 +sw $24,-8+112($sp) +b L.2831 +L.2830: +sw $0,-8+112($sp) +L.2831: +lw $20,-8+112($sp) +la $24,1 +beq $22,$24,L.2832 +la $23,1 +beq $30,$0,L.2834 +la $4,L.2519 +move $5,$23 +jal printf +L.2834: +L.2832: +beq $21,$0,L.2836 +la $23,2 +beq $30,$0,L.2838 +la $4,L.2519 +move $5,$23 +jal printf +L.2838: +L.2836: +beq $20,$0,L.2840 +la $23,3 +beq $30,$0,L.2842 +la $4,L.2519 +move $5,$23 +jal printf +L.2842: +L.2840: +beq $22,$0,L.2845 +move $15,$21 +la $21,1($15) +beq $15,$0,L.2845 +la $24,1 +sw $24,-12+112($sp) +b L.2846 +L.2845: +sw $0,-12+112($sp) +L.2846: +lw $20,-12+112($sp) +la $24,1 +beq $22,$24,L.2847 +la $23,4 +beq $30,$0,L.2849 +la $4,L.2519 +move $5,$23 +jal printf +L.2849: +L.2847: +la $24,1 +beq $21,$24,L.2851 +la $23,5 +beq $30,$0,L.2853 +la $4,L.2519 +move $5,$23 +jal printf +L.2853: +L.2851: +beq $20,$0,L.2855 +la $23,6 +beq $30,$0,L.2857 +la $4,L.2519 +move $5,$23 +jal printf +L.2857: +L.2855: +move $24,$22 +subu $22,$24,1 +move $15,$0 +beq $24,$15,L.2860 +beq $21,$15,L.2860 +la $24,1 +sw $24,-16+112($sp) +b L.2861 +L.2860: +sw $0,-16+112($sp) +L.2861: +lw $20,-16+112($sp) +beq $22,$0,L.2862 +la $23,7 +beq $30,$0,L.2864 +la $4,L.2519 +move $5,$23 +jal printf +L.2864: +L.2862: +la $24,1 +beq $21,$24,L.2866 +la $23,8 +beq $30,$0,L.2868 +la $4,L.2519 +move $5,$23 +jal printf +L.2868: +L.2866: +la $24,1 +beq $20,$24,L.2870 +la $23,9 +beq $30,$0,L.2872 +la $4,L.2519 +move $5,$23 +jal printf +L.2872: +L.2870: +beq $22,$0,L.2875 +move $15,$21 +subu $21,$15,1 +beq $15,$0,L.2875 +la $24,1 +sw $24,-20+112($sp) +b L.2876 +L.2875: +sw $0,-20+112($sp) +L.2876: +lw $20,-20+112($sp) +beq $22,$0,L.2877 +la $23,10 +beq $30,$0,L.2879 +la $4,L.2519 +move $5,$23 +jal printf +L.2879: +L.2877: +la $24,1 +beq $21,$24,L.2881 +la $23,11 +beq $30,$0,L.2883 +la $4,L.2519 +move $5,$23 +jal printf +L.2883: +L.2881: +beq $20,$0,L.2885 +la $23,12 +beq $30,$0,L.2887 +la $4,L.2519 +move $5,$23 +jal printf +L.2887: +L.2885: +beq $23,$0,L.2889 +lw $24,0+112($sp) +lw $24,44($24) +beq $24,$0,L.2891 +la $4,L.2520 +la $5,2 +jal printf +L.2891: +la $17,2($17) +L.2889: +move $23,$0 +move $21,$0 +move $22,$0 +move $24,$22 +la $22,1($24) +move $15,$0 +bne $24,$15,L.2896 +beq $21,$15,L.2894 +L.2896: +la $24,1 +sw $24,-24+112($sp) +b L.2895 +L.2894: +sw $0,-24+112($sp) +L.2895: +lw $20,-24+112($sp) +la $24,1 +beq $22,$24,L.2897 +la $23,1 +beq $30,$0,L.2899 +la $4,L.2519 +move $5,$23 +jal printf +L.2899: +L.2897: +beq $21,$0,L.2901 +la $23,2 +beq $30,$0,L.2903 +la $4,L.2519 +move $5,$23 +jal printf +L.2903: +L.2901: +beq $20,$0,L.2905 +la $23,3 +beq $30,$0,L.2907 +la $4,L.2519 +move $5,$23 +jal printf +L.2907: +L.2905: +move $24,$21 +la $21,1($24) +move $15,$0 +bne $24,$15,L.2912 +beq $22,$15,L.2910 +L.2912: +la $24,1 +sw $24,-28+112($sp) +b L.2911 +L.2910: +sw $0,-28+112($sp) +L.2911: +lw $20,-28+112($sp) +la $24,1 +beq $22,$24,L.2913 +la $23,4 +beq $30,$0,L.2915 +la $4,L.2519 +move $5,$23 +jal printf +L.2915: +L.2913: +la $24,1 +beq $21,$24,L.2917 +la $23,5 +beq $30,$0,L.2919 +la $4,L.2519 +move $5,$23 +jal printf +L.2919: +L.2917: +la $24,1 +beq $20,$24,L.2921 +la $23,6 +beq $30,$0,L.2923 +la $4,L.2519 +move $5,$23 +jal printf +L.2923: +L.2921: +move $24,$22 +subu $22,$24,1 +move $15,$0 +bne $24,$15,L.2928 +move $24,$21 +subu $21,$24,1 +beq $24,$15,L.2926 +L.2928: +la $24,1 +sw $24,-32+112($sp) +b L.2927 +L.2926: +sw $0,-32+112($sp) +L.2927: +lw $20,-32+112($sp) +beq $22,$0,L.2929 +la $23,7 +beq $30,$0,L.2931 +la $4,L.2519 +move $5,$23 +jal printf +L.2931: +L.2929: +la $24,1 +beq $21,$24,L.2933 +la $23,8 +beq $30,$0,L.2935 +la $4,L.2519 +move $5,$23 +jal printf +L.2935: +L.2933: +la $24,1 +beq $20,$24,L.2937 +la $23,9 +beq $30,$0,L.2939 +la $4,L.2519 +move $5,$23 +jal printf +L.2939: +L.2937: +move $24,$0 +bne $22,$24,L.2944 +move $15,$21 +subu $21,$15,1 +beq $15,$24,L.2942 +L.2944: +la $24,1 +sw $24,-36+112($sp) +b L.2943 +L.2942: +sw $0,-36+112($sp) +L.2943: +lw $20,-36+112($sp) +beq $22,$0,L.2945 +la $23,10 +beq $30,$0,L.2947 +la $4,L.2519 +move $5,$23 +jal printf +L.2947: +L.2945: +beq $21,$0,L.2949 +la $23,11 +beq $30,$0,L.2951 +la $4,L.2519 +move $5,$23 +jal printf +L.2951: +L.2949: +la $24,1 +beq $20,$24,L.2953 +la $23,12 +beq $30,$0,L.2955 +la $4,L.2519 +move $5,$23 +jal printf +L.2955: +L.2953: +beq $23,$0,L.2957 +lw $24,0+112($sp) +lw $24,44($24) +beq $24,$0,L.2959 +la $4,L.2520 +la $5,4 +jal printf +L.2959: +la $17,4($17) +L.2957: +move $24,$0 +move $21,$24 +move $22,$24 +move $16,$24 +la $15,1 +sw $15,-4+112($sp) +lw $15,-4+112($sp) +beq $15,$24,L.2963 +sw $16,-40+112($sp) +b L.2964 +L.2963: +lw $24,-4+112($sp) +beq $24,$0,L.2965 +move $24,$22 +la $22,1($24) +sw $24,-44+112($sp) +b L.2966 +L.2965: +move $24,$21 +la $21,1($24) +sw $24,-44+112($sp) +L.2966: +lw $24,-44+112($sp) +sw $24,-40+112($sp) +L.2964: +lw $20,-40+112($sp) +bne $20,$0,L.2970 +bne $22,$0,L.2970 +beq $21,$0,L.2967 +L.2970: +lw $24,0+112($sp) +lw $24,44($24) +beq $24,$0,L.2971 +la $4,L.2520 +la $5,8 +jal printf +L.2971: +la $17,8($17) +L.2967: +lw $24,-4+112($sp) +beq $24,$0,L.2978 +sw $16,-48+112($sp) +b L.2979 +L.2978: +la $24,1 +sw $24,-48+112($sp) +L.2979: +lw $15,-48+112($sp) +bne $15,$0,L.2977 +beq $16,$0,L.2980 +la $24,1 +sw $24,-52+112($sp) +b L.2981 +L.2980: +sw $16,-52+112($sp) +L.2981: +lw $24,-52+112($sp) +beq $24,$0,L.2973 +L.2977: +lw $24,0+112($sp) +lw $24,44($24) +beq $24,$0,L.2982 +la $4,L.2520 +la $5,16 +jal printf +L.2982: +la $17,16($17) +L.2973: +move $2,$17 +L.2518: +lw $16,16($sp) +lw $17,20($sp) +lw $18,24($sp) +lw $19,28($sp) +lw $20,32($sp) +lw $21,36($sp) +lw $22,40($sp) +lw $23,44($sp) +lw $25,48($sp) +lw $30,52($sp) +lw $31,56($sp) +addu $sp,$sp,112 +j $31 +.end s7813 +.data +.align 0 +L.2985: +.byte 115 +.byte 56 +.byte 49 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.sdata +.align 0 +L.2986: +.byte 115 +.byte 56 +.byte 49 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.data +.align 0 +L.2987: +.byte 82 +.byte 101 +.byte 103 +.byte 105 +.byte 115 +.byte 116 +.byte 101 +.byte 114 +.byte 32 +.byte 99 +.byte 111 +.byte 117 +.byte 110 +.byte 116 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 37 +.byte 115 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 117 +.byte 110 +.byte 114 +.byte 101 +.byte 108 +.byte 105 +.byte 97 +.byte 98 +.byte 108 +.byte 101 +.byte 46 +.byte 10 +.byte 0 +.data +.align 0 +L.2988: +.byte 37 +.byte 100 +.byte 32 +.byte 114 +.byte 101 +.byte 103 +.byte 105 +.byte 115 +.byte 116 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 97 +.byte 115 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 101 +.byte 100 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 37 +.byte 115 +.byte 32 +.byte 118 +.byte 97 +.byte 114 +.byte 105 +.byte 97 +.byte 98 +.byte 108 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.globl s81 +.text +.text +.align 2 +.ent s81 +s81: +.frame $sp,80,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-80 +.mask 0xc2ff0000,-24 +sw $16,16($sp) +sw $17,20($sp) +sw $18,24($sp) +sw $19,28($sp) +sw $20,32($sp) +sw $21,36($sp) +sw $22,40($sp) +sw $23,44($sp) +.cprestore 48 +sw $30,52($sp) +sw $31,56($sp) +sw $4,80($sp) +sw $0,-20+80($sp) +sw $0,-8+80($sp) +sw $0,-12+80($sp) +sw $0,-16+80($sp) +la $17,L.2986 +lw $24,0+80($sp) +la $16,60($24) +L.2989: +L.2990: +move $24,$16 +la $16,1($24) +move $15,$17 +la $17,1($15) +lb $15,($15) +sb $15,($24) +sll $24,$15,8*(4-1); sra $24,$24,8*(4-1) +bne $24,$0,L.2989 +la $24,1 +sw $24,-4+80($sp) +move $21,$0 +L.2992: +lw $24,-4+80($sp) +move $15,$24 +move $30,$15 +move $20,$15 +la $23,-4+80($sp) +la $19,-4+80($sp) +move $22,$24 +move $18,$24 +sll $24,$30,8*(4-1); sra $24,$24,8*(4-1) +sll $15,$20,8*(4-1); sra $15,$15,8*(4-1) +beq $24,$15,L.2996 +la $24,1 +sw $24,-8+80($sp) +L.2996: +move $24,$23 +move $15,$19 +beq $24,$15,L.2998 +la $24,1 +sw $24,-12+80($sp) +L.2998: +beq $22,$18,L.3000 +la $24,1 +sw $24,-16+80($sp) +L.3000: +lw $24,-4+80($sp) +sll $24,$24,1 +sw $24,-4+80($sp) +L.2993: +la $21,1($21) +la $24,50 +blt $21,$24,L.2992 +lw $24,-8+80($sp) +beq $24,$0,L.3002 +lw $24,-20+80($sp) +la $24,1($24) +sw $24,-20+80($sp) +lw $24,0+80($sp) +lw $24,44($24) +beq $24,$0,L.3004 +la $4,L.2985 +la $5,1 +jal printf +L.3004: +L.3002: +lw $24,-12+80($sp) +beq $24,$0,L.3006 +lw $24,-20+80($sp) +la $24,2($24) +sw $24,-20+80($sp) +lw $24,0+80($sp) +lw $24,44($24) +beq $24,$0,L.3008 +la $4,L.2985 +la $5,2 +jal printf +L.3008: +L.3006: +lw $24,-16+80($sp) +beq $24,$0,L.3010 +lw $24,-20+80($sp) +la $24,4($24) +sw $24,-20+80($sp) +lw $24,0+80($sp) +lw $24,44($24) +beq $24,$0,L.3012 +la $4,L.2985 +la $5,4 +jal printf +L.3012: +L.3010: +jal regc +sw $2,-4+80($sp) +lw $24,0+80($sp) +lw $24,40($24) +beq $24,$0,L.3014 +lw $24,-4+80($sp) +bge $24,$0,L.3016 +la $4,L.2987 +la $5,L.425 +jal printf +b L.3017 +L.3016: +la $4,L.2988 +lw $5,-4+80($sp) +la $6,L.425 +jal printf +L.3017: +L.3014: +jal regp +sw $2,-4+80($sp) +lw $24,0+80($sp) +lw $24,40($24) +beq $24,$0,L.3018 +lw $24,-4+80($sp) +bge $24,$0,L.3020 +la $4,L.2987 +la $5,L.3022 +jal printf +b L.3021 +L.3020: +la $4,L.2988 +lw $5,-4+80($sp) +la $6,L.3022 +jal printf +L.3021: +L.3018: +jal regi +sw $2,-4+80($sp) +lw $24,0+80($sp) +lw $24,40($24) +beq $24,$0,L.3023 +lw $24,-4+80($sp) +bge $24,$0,L.3025 +la $4,L.2987 +la $5,L.426 +jal printf +b L.3026 +L.3025: +la $4,L.2988 +lw $5,-4+80($sp) +la $6,L.426 +jal printf +L.3026: +L.3023: +lw $2,-20+80($sp) +L.2984: +lw $16,16($sp) +lw $17,20($sp) +lw $18,24($sp) +lw $19,28($sp) +lw $20,32($sp) +lw $21,36($sp) +lw $22,40($sp) +lw $23,44($sp) +lw $25,48($sp) +lw $30,52($sp) +lw $31,56($sp) +addu $sp,$sp,80 +j $31 +.end s81 +.globl regc +.text +.align 2 +.ent regc +regc: +.frame $sp,176,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-176 +.mask 0x40ff0000,-144 +sw $16,0($sp) +sw $17,4($sp) +sw $18,8($sp) +sw $19,12($sp) +sw $20,16($sp) +sw $21,20($sp) +sw $22,24($sp) +sw $23,28($sp) +sw $30,32($sp) +sb $0,-130+176($sp) +la $24,1 +sb $24,-109+176($sp) +la $24,2 +sb $24,-110+176($sp) +la $24,3 +sb $24,-111+176($sp) +la $30,4 +la $24,5 +sb $24,-112+176($sp) +la $23,6 +la $24,7 +sb $24,-113+176($sp) +la $22,8 +la $24,9 +sb $24,-114+176($sp) +la $21,10 +la $24,11 +sb $24,-115+176($sp) +la $20,12 +la $24,13 +sb $24,-116+176($sp) +la $19,14 +la $24,15 +sb $24,-117+176($sp) +la $18,16 +la $24,17 +sb $24,-118+176($sp) +la $17,18 +la $24,19 +sb $24,-119+176($sp) +la $16,20 +la $24,21 +sb $24,-120+176($sp) +la $24,22 +sb $24,-1+176($sp) +la $24,23 +sb $24,-121+176($sp) +la $24,24 +sb $24,-2+176($sp) +la $24,25 +sb $24,-122+176($sp) +la $24,26 +sb $24,-3+176($sp) +la $24,27 +sb $24,-123+176($sp) +la $24,28 +sb $24,-4+176($sp) +la $24,29 +sb $24,-124+176($sp) +la $24,30 +sb $24,-5+176($sp) +la $24,31 +sb $24,-125+176($sp) +la $24,32 +sb $24,-6+176($sp) +la $24,33 +sb $24,-126+176($sp) +la $24,34 +sb $24,-7+176($sp) +la $24,35 +sb $24,-127+176($sp) +la $24,36 +sb $24,-128+176($sp) +la $24,37 +sb $24,-129+176($sp) +la $24,38 +sb $24,-131+176($sp) +la $24,-109+176($sp) +la $15,-130+176($sp) +subu $15,$24,$15 +sw $15,-96+176($sp) +la $15,-110+176($sp) +subu $24,$15,$24 +sw $24,-92+176($sp) +la $24,-111+176($sp) +la $15,-110+176($sp) +subu $24,$24,$15 +sw $24,-88+176($sp) +la $24,-112+176($sp) +la $15,-111+176($sp) +subu $24,$24,$15 +sw $24,-84+176($sp) +la $24,-113+176($sp) +la $15,-112+176($sp) +subu $24,$24,$15 +sw $24,-80+176($sp) +la $24,-114+176($sp) +la $15,-113+176($sp) +subu $24,$24,$15 +sw $24,-76+176($sp) +la $24,-115+176($sp) +la $15,-114+176($sp) +subu $24,$24,$15 +sw $24,-72+176($sp) +la $24,-116+176($sp) +la $15,-115+176($sp) +subu $24,$24,$15 +sw $24,-68+176($sp) +la $24,-117+176($sp) +la $15,-116+176($sp) +subu $24,$24,$15 +sw $24,-64+176($sp) +la $24,-118+176($sp) +la $15,-117+176($sp) +subu $24,$24,$15 +sw $24,-60+176($sp) +la $24,-119+176($sp) +la $15,-118+176($sp) +subu $24,$24,$15 +sw $24,-56+176($sp) +la $24,-120+176($sp) +la $15,-119+176($sp) +subu $24,$24,$15 +sw $24,-52+176($sp) +la $24,-121+176($sp) +la $15,-120+176($sp) +subu $24,$24,$15 +sw $24,-48+176($sp) +la $24,-122+176($sp) +la $15,-121+176($sp) +subu $24,$24,$15 +sw $24,-44+176($sp) +la $24,-123+176($sp) +la $15,-122+176($sp) +subu $24,$24,$15 +sw $24,-40+176($sp) +la $24,-124+176($sp) +la $15,-123+176($sp) +subu $24,$24,$15 +sw $24,-36+176($sp) +la $24,-125+176($sp) +la $15,-124+176($sp) +subu $24,$24,$15 +sw $24,-32+176($sp) +la $24,-126+176($sp) +la $15,-125+176($sp) +subu $24,$24,$15 +sw $24,-28+176($sp) +la $24,-127+176($sp) +la $15,-126+176($sp) +subu $24,$24,$15 +sw $24,-24+176($sp) +la $24,-128+176($sp) +la $15,-127+176($sp) +subu $24,$24,$15 +sw $24,-20+176($sp) +la $24,-129+176($sp) +la $15,-128+176($sp) +subu $24,$24,$15 +sw $24,-16+176($sp) +la $24,-131+176($sp) +la $15,-129+176($sp) +subu $24,$24,$15 +sw $24,-12+176($sp) +lw $24,-96+176($sp) +sw $24,-108+176($sp) +la $24,1 +sw $24,-104+176($sp) +sw $0,-100+176($sp) +L.3049: +lw $24,-104+176($sp) +la $15,1 +beq $24,$15,L.3055 +la $15,2 +beq $24,$15,L.3058 +la $15,3 +beq $24,$15,L.3063 +b L.3053 +L.3055: +lw $24,-100+176($sp) +sll $24,$24,2 +la $15,-96+176($sp) +addu $24,$24,$15 +lw $24,($24) +lw $15,-108+176($sp) +beq $24,$15,L.3054 +la $24,2 +lw $15,-100+176($sp) +sll $15,$15,2 +la $14,-96+176($sp) +addu $15,$15,$14 +lw $15,($15) +sw $15,-140+176($sp) +sw $24,-104+176($sp) +la $24,1 +sw $24,-136+176($sp) +b L.3054 +L.3058: +lw $24,-100+176($sp) +sll $24,$24,2 +la $15,-96+176($sp) +addu $24,$24,$15 +lw $24,($24) +lw $15,-108+176($sp) +bne $24,$15,L.3059 +la $24,3 +sw $24,-104+176($sp) +b L.3054 +L.3059: +lw $24,-100+176($sp) +sll $24,$24,2 +la $15,-96+176($sp) +addu $24,$24,$15 +lw $24,($24) +lw $15,-140+176($sp) +bne $24,$15,L.3061 +lw $24,-136+176($sp) +la $24,1($24) +sw $24,-136+176($sp) +b L.3054 +L.3061: +la $24,4 +sw $24,-104+176($sp) +b L.3054 +L.3063: +lw $24,-100+176($sp) +sll $24,$24,2 +la $15,-96+176($sp) +addu $24,$24,$15 +lw $24,($24) +lw $15,-108+176($sp) +beq $24,$15,L.3054 +la $24,4 +sw $24,-104+176($sp) +L.3053: +L.3054: +L.3050: +lw $24,-100+176($sp) +la $24,1($24) +sw $24,-100+176($sp) +lw $24,-100+176($sp) +la $15,22 +blt $24,$15,L.3049 +lw $24,-104+176($sp) +la $15,3 +bne $24,$15,L.3066 +la $24,16 +lw $15,-136+176($sp) +subu $2,$24,$15 +b L.3027 +L.3066: +la $2,-1 +L.3027: +lw $16,0($sp) +lw $17,4($sp) +lw $18,8($sp) +lw $19,12($sp) +lw $20,16($sp) +lw $21,20($sp) +lw $22,24($sp) +lw $23,28($sp) +lw $30,32($sp) +addu $sp,$sp,176 +j $31 +.end regc +.globl regi +.text +.align 2 +.ent regi +regi: +.frame $sp,264,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-264 +.mask 0x40ff0000,-232 +sw $16,0($sp) +sw $17,4($sp) +sw $18,8($sp) +sw $19,12($sp) +sw $20,16($sp) +sw $21,20($sp) +sw $22,24($sp) +sw $23,28($sp) +sw $30,32($sp) +sw $0,-216+264($sp) +la $24,1 +sw $24,-132+264($sp) +la $24,2 +sw $24,-136+264($sp) +la $24,3 +sw $24,-140+264($sp) +la $30,4 +la $24,5 +sw $24,-144+264($sp) +la $23,6 +la $24,7 +sw $24,-148+264($sp) +la $22,8 +la $24,9 +sw $24,-152+264($sp) +la $21,10 +la $24,11 +sw $24,-156+264($sp) +la $20,12 +la $24,13 +sw $24,-160+264($sp) +la $19,14 +la $24,15 +sw $24,-164+264($sp) +la $18,16 +la $24,17 +sw $24,-168+264($sp) +la $17,18 +la $24,19 +sw $24,-172+264($sp) +la $16,20 +la $24,21 +sw $24,-176+264($sp) +la $24,22 +sw $24,-4+264($sp) +la $24,23 +sw $24,-180+264($sp) +la $24,24 +sw $24,-8+264($sp) +la $24,25 +sw $24,-184+264($sp) +la $24,26 +sw $24,-12+264($sp) +la $24,27 +sw $24,-188+264($sp) +la $24,28 +sw $24,-16+264($sp) +la $24,29 +sw $24,-192+264($sp) +la $24,30 +sw $24,-20+264($sp) +la $24,31 +sw $24,-196+264($sp) +la $24,32 +sw $24,-24+264($sp) +la $24,33 +sw $24,-200+264($sp) +la $24,34 +sw $24,-28+264($sp) +la $24,35 +sw $24,-204+264($sp) +la $24,36 +sw $24,-208+264($sp) +la $24,37 +sw $24,-212+264($sp) +la $24,38 +sw $24,-220+264($sp) +la $24,-132+264($sp) +la $15,4 +la $14,-216+264($sp) +subu $14,$24,$14 +div $14,$14,$15 +sw $14,-116+264($sp) +la $14,-136+264($sp) +subu $24,$14,$24 +div $24,$24,$15 +sw $24,-112+264($sp) +la $24,-140+264($sp) +la $15,-136+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-108+264($sp) +la $24,-144+264($sp) +la $15,-140+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-104+264($sp) +la $24,-148+264($sp) +la $15,-144+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-100+264($sp) +la $24,-152+264($sp) +la $15,-148+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-96+264($sp) +la $24,-156+264($sp) +la $15,-152+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-92+264($sp) +la $24,-160+264($sp) +la $15,-156+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-88+264($sp) +la $24,-164+264($sp) +la $15,-160+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-84+264($sp) +la $24,-168+264($sp) +la $15,-164+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-80+264($sp) +la $24,-172+264($sp) +la $15,-168+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-76+264($sp) +la $24,-176+264($sp) +la $15,-172+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-72+264($sp) +la $24,-180+264($sp) +la $15,-176+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-68+264($sp) +la $24,-184+264($sp) +la $15,-180+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-64+264($sp) +la $24,-188+264($sp) +la $15,-184+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-60+264($sp) +la $24,-192+264($sp) +la $15,-188+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-56+264($sp) +la $24,-196+264($sp) +la $15,-192+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-52+264($sp) +la $24,-200+264($sp) +la $15,-196+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-48+264($sp) +la $24,-204+264($sp) +la $15,-200+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-44+264($sp) +la $24,-208+264($sp) +la $15,-204+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-40+264($sp) +la $24,-212+264($sp) +la $15,-208+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-36+264($sp) +la $24,-220+264($sp) +la $15,-212+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-32+264($sp) +lw $24,-116+264($sp) +sw $24,-128+264($sp) +la $24,1 +sw $24,-124+264($sp) +sw $0,-120+264($sp) +L.3090: +lw $24,-124+264($sp) +la $15,1 +beq $24,$15,L.3096 +la $15,2 +beq $24,$15,L.3099 +la $15,3 +beq $24,$15,L.3104 +b L.3094 +L.3096: +lw $24,-120+264($sp) +sll $24,$24,2 +la $15,-116+264($sp) +addu $24,$24,$15 +lw $24,($24) +lw $15,-128+264($sp) +beq $24,$15,L.3095 +la $24,2 +lw $15,-120+264($sp) +sll $15,$15,2 +la $14,-116+264($sp) +addu $15,$15,$14 +lw $15,($15) +sw $15,-228+264($sp) +sw $24,-124+264($sp) +la $24,1 +sw $24,-224+264($sp) +b L.3095 +L.3099: +lw $24,-120+264($sp) +sll $24,$24,2 +la $15,-116+264($sp) +addu $24,$24,$15 +lw $24,($24) +lw $15,-128+264($sp) +bne $24,$15,L.3100 +la $24,3 +sw $24,-124+264($sp) +b L.3095 +L.3100: +lw $24,-120+264($sp) +sll $24,$24,2 +la $15,-116+264($sp) +addu $24,$24,$15 +lw $24,($24) +lw $15,-228+264($sp) +bne $24,$15,L.3102 +lw $24,-224+264($sp) +la $24,1($24) +sw $24,-224+264($sp) +b L.3095 +L.3102: +la $24,4 +sw $24,-124+264($sp) +b L.3095 +L.3104: +lw $24,-120+264($sp) +sll $24,$24,2 +la $15,-116+264($sp) +addu $24,$24,$15 +lw $24,($24) +lw $15,-128+264($sp) +beq $24,$15,L.3095 +la $24,4 +sw $24,-124+264($sp) +L.3094: +L.3095: +L.3091: +lw $24,-120+264($sp) +la $24,1($24) +sw $24,-120+264($sp) +lw $24,-120+264($sp) +la $15,22 +blt $24,$15,L.3090 +lw $24,-124+264($sp) +la $15,3 +bne $24,$15,L.3107 +la $24,16 +lw $15,-224+264($sp) +subu $2,$24,$15 +b L.3068 +L.3107: +la $2,-1 +L.3068: +lw $16,0($sp) +lw $17,4($sp) +lw $18,8($sp) +lw $19,12($sp) +lw $20,16($sp) +lw $21,20($sp) +lw $22,24($sp) +lw $23,28($sp) +lw $30,32($sp) +addu $sp,$sp,264 +j $31 +.end regi +.globl regp +.text +.align 2 +.ent regp +regp: +.frame $sp,264,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-264 +.mask 0x40ff0000,-232 +sw $16,0($sp) +sw $17,4($sp) +sw $18,8($sp) +sw $19,12($sp) +sw $20,16($sp) +sw $21,20($sp) +sw $22,24($sp) +sw $23,28($sp) +sw $30,32($sp) +la $24,-216+264($sp) +sw $24,-216+264($sp) +la $24,-192+264($sp) +sw $24,-192+264($sp) +la $24,-196+264($sp) +sw $24,-196+264($sp) +la $24,-200+264($sp) +sw $24,-200+264($sp) +la $30,-128+264($sp) +la $24,-128+264($sp) +sw $24,-128+264($sp) +la $23,-132+264($sp) +la $24,-132+264($sp) +sw $24,-132+264($sp) +la $22,-136+264($sp) +la $24,-136+264($sp) +sw $24,-136+264($sp) +la $21,-140+264($sp) +la $24,-140+264($sp) +sw $24,-140+264($sp) +la $20,-144+264($sp) +la $24,-144+264($sp) +sw $24,-144+264($sp) +la $19,-148+264($sp) +la $24,-148+264($sp) +sw $24,-148+264($sp) +la $18,-152+264($sp) +la $24,-152+264($sp) +sw $24,-152+264($sp) +la $17,-156+264($sp) +la $24,-156+264($sp) +sw $24,-156+264($sp) +la $16,-160+264($sp) +la $24,-160+264($sp) +sw $24,-160+264($sp) +la $24,-164+264($sp) +sw $24,-4+264($sp) +la $24,-164+264($sp) +sw $24,-164+264($sp) +la $24,-168+264($sp) +sw $24,-8+264($sp) +la $24,-168+264($sp) +sw $24,-168+264($sp) +la $24,-172+264($sp) +sw $24,-12+264($sp) +la $24,-172+264($sp) +sw $24,-172+264($sp) +la $24,-176+264($sp) +sw $24,-16+264($sp) +la $24,-176+264($sp) +sw $24,-176+264($sp) +la $24,-180+264($sp) +sw $24,-20+264($sp) +la $24,-180+264($sp) +sw $24,-180+264($sp) +la $24,-184+264($sp) +sw $24,-24+264($sp) +la $24,-184+264($sp) +sw $24,-184+264($sp) +la $24,-188+264($sp) +sw $24,-28+264($sp) +la $24,-188+264($sp) +sw $24,-188+264($sp) +la $24,-204+264($sp) +sw $24,-204+264($sp) +la $24,-208+264($sp) +sw $24,-208+264($sp) +la $24,-220+264($sp) +sw $24,-220+264($sp) +la $24,-192+264($sp) +la $15,4 +la $14,-216+264($sp) +subu $14,$24,$14 +div $14,$14,$15 +sw $14,-116+264($sp) +la $14,-196+264($sp) +subu $24,$14,$24 +div $24,$24,$15 +sw $24,-112+264($sp) +la $24,-200+264($sp) +la $15,-196+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-108+264($sp) +la $24,-128+264($sp) +la $15,-200+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-104+264($sp) +la $24,-132+264($sp) +la $15,-128+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-100+264($sp) +la $24,-136+264($sp) +la $15,-132+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-96+264($sp) +la $24,-140+264($sp) +la $15,-136+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-92+264($sp) +la $24,-144+264($sp) +la $15,-140+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-88+264($sp) +la $24,-148+264($sp) +la $15,-144+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-84+264($sp) +la $24,-152+264($sp) +la $15,-148+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-80+264($sp) +la $24,-156+264($sp) +la $15,-152+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-76+264($sp) +la $24,-160+264($sp) +la $15,-156+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-72+264($sp) +la $24,-164+264($sp) +la $15,-160+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-68+264($sp) +la $24,-168+264($sp) +la $15,-164+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-64+264($sp) +la $24,-172+264($sp) +la $15,-168+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-60+264($sp) +la $24,-176+264($sp) +la $15,-172+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-56+264($sp) +la $24,-180+264($sp) +la $15,-176+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-52+264($sp) +la $24,-184+264($sp) +la $15,-180+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-48+264($sp) +la $24,-188+264($sp) +la $15,-184+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-44+264($sp) +la $24,-204+264($sp) +la $15,-188+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-40+264($sp) +la $24,-208+264($sp) +la $15,-204+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-36+264($sp) +la $24,-220+264($sp) +la $15,-208+264($sp) +subu $24,$24,$15 +la $15,4 +div $24,$24,$15 +sw $24,-32+264($sp) +lw $24,-116+264($sp) +sw $24,-212+264($sp) +la $24,1 +sw $24,-124+264($sp) +sw $0,-120+264($sp) +L.3131: +lw $24,-124+264($sp) +la $15,1 +beq $24,$15,L.3137 +la $15,2 +beq $24,$15,L.3140 +la $15,3 +beq $24,$15,L.3145 +b L.3135 +L.3137: +lw $24,-120+264($sp) +sll $24,$24,2 +la $15,-116+264($sp) +addu $24,$24,$15 +lw $24,($24) +lw $15,-212+264($sp) +beq $24,$15,L.3136 +la $24,2 +lw $15,-120+264($sp) +sll $15,$15,2 +la $14,-116+264($sp) +addu $15,$15,$14 +lw $15,($15) +sw $15,-228+264($sp) +sw $24,-124+264($sp) +la $24,1 +sw $24,-224+264($sp) +b L.3136 +L.3140: +lw $24,-120+264($sp) +sll $24,$24,2 +la $15,-116+264($sp) +addu $24,$24,$15 +lw $24,($24) +lw $15,-212+264($sp) +bne $24,$15,L.3141 +la $24,3 +sw $24,-124+264($sp) +b L.3136 +L.3141: +lw $24,-120+264($sp) +sll $24,$24,2 +la $15,-116+264($sp) +addu $24,$24,$15 +lw $24,($24) +lw $15,-228+264($sp) +bne $24,$15,L.3143 +lw $24,-224+264($sp) +la $24,1($24) +sw $24,-224+264($sp) +b L.3136 +L.3143: +la $24,4 +sw $24,-124+264($sp) +b L.3136 +L.3145: +lw $24,-120+264($sp) +sll $24,$24,2 +la $15,-116+264($sp) +addu $24,$24,$15 +lw $24,($24) +lw $15,-212+264($sp) +beq $24,$15,L.3136 +la $24,4 +sw $24,-124+264($sp) +L.3135: +L.3136: +L.3132: +lw $24,-120+264($sp) +la $24,1($24) +sw $24,-120+264($sp) +lw $24,-120+264($sp) +la $15,22 +blt $24,$15,L.3131 +lw $24,-124+264($sp) +la $15,3 +bne $24,$15,L.3148 +la $24,16 +lw $15,-224+264($sp) +subu $2,$24,$15 +b L.3109 +L.3148: +la $2,-1 +L.3109: +lw $16,0($sp) +lw $17,4($sp) +lw $18,8($sp) +lw $19,12($sp) +lw $20,16($sp) +lw $21,20($sp) +lw $22,24($sp) +lw $23,28($sp) +lw $30,32($sp) +addu $sp,$sp,264 +j $31 +.end regp +.lcomm L.3151,420 +.data +.align 0 +L.3152: +.byte 115 +.byte 56 +.byte 52 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.sdata +.align 0 +L.3153: +.byte 115 +.byte 56 +.byte 52 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s84 +.text +.text +.align 2 +.ent s84 +s84: +.frame $sp,216,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-216 +.fmask 0xc0000000,-200 +.mask 0xc2fc0000,-160 +s.d $f30,16($sp) +sw $18,24($sp) +sw $19,28($sp) +sw $20,32($sp) +sw $21,36($sp) +sw $22,40($sp) +sw $23,44($sp) +.cprestore 48 +sw $30,52($sp) +sw $31,56($sp) +move $30,$4 +la $20,L.3153 +la $19,60($30) +move $18,$0 +L.3154: +L.3155: +move $24,$19 +la $19,1($24) +move $15,$20 +la $20,1($15) +lb $15,($15) +sb $15,($24) +sll $24,$15,8*(4-1); sra $24,$24,8*(4-1) +bne $24,$0,L.3154 +la $4,3 +jal fip +sw $2,-140+216($sp) +lw $24,-140+216($sp) +lw $24,($24) +la $15,3 +beq $24,$15,L.3157 +lw $24,44($30) +beq $24,$0,L.3159 +la $4,L.3152 +la $5,1 +jal printf +L.3159: +la $18,1($18) +L.3157: +la $24,glork +sw $24,-144+216($sp) +la $4,4 +lw $25,-144+216($sp) +jal $25 +la $15,4 +beq $2,$15,L.3161 +lw $24,44($30) +beq $24,$0,L.3163 +la $4,L.3152 +la $5,2 +jal printf +L.3163: +la $18,2($18) +L.3161: +move $22,$0 +L.3165: +sll $24,$22,2 +la $15,-68+216($sp) +addu $24,$24,$15 +mtc1 $22,$f18; cvt.s.w $f18,$f18 +s.s $f18,($24) +sll $24,$22,2 +la $15,-136+216($sp) +addu $15,$24,$15 +la $14,-68+216($sp) +addu $24,$24,$14 +sw $24,($15) +L.3166: +la $22,1($22) +la $24,17 +blt $22,$24,L.3165 +l.s $f30,L.412 +move $22,$0 +L.3169: +sll $24,$22,2 +la $15,-136+216($sp) +addu $24,$24,$15 +lw $24,($24) +l.s $f18,($24) +add.s $f30,$f30,$f18 +L.3170: +la $22,1($22) +la $24,17 +blt $22,$24,L.3169 +l.s $f18,L.3175 +c.eq.s $f30,$f18; bc1t L.3173 +lw $24,44($30) +beq $24,$0,L.3176 +la $4,L.3152 +la $5,4 +jal printf +L.3176: +la $18,4($18) +L.3173: +move $21,$0 +L.3178: +move $22,$0 +L.3182: +move $23,$0 +L.3186: +sll $24,$23,2 +la $15,28 +mul $15,$15,$22 +la $14,140 +mul $14,$14,$21 +la $14,L.3151($14) +addu $15,$15,$14 +addu $24,$24,$15 +la $15,35 +mul $15,$15,$21 +la $14,7 +mul $14,$14,$22 +addu $15,$15,$14 +addu $15,$15,$23 +sw $15,($24) +L.3187: +la $23,1($23) +la $24,7 +blt $23,$24,L.3186 +L.3183: +la $22,1($22) +la $24,5 +blt $22,$24,L.3182 +L.3179: +la $21,1($21) +la $24,3 +blt $21,$24,L.3178 +la $21,1 +la $22,2 +la $23,3 +la $4,L.3151 +la $5,105 +move $6,$0 +jal array +move $24,$2 +sw $24,-148+216($sp) +la $15,140 +mul $15,$15,$21 +la $4,L.3151($15) +la $15,35 +move $5,$15 +move $6,$15 +jal array +move $24,$2 +sw $24,-152+216($sp) +la $15,28 +mul $15,$15,$22 +la $14,140 +mul $14,$14,$21 +la $14,L.3151($14) +addu $4,$15,$14 +la $5,7 +la $6,49 +jal array +lw $15,-148+216($sp) +lw $14,-152+216($sp) +addu $15,$15,$14 +addu $24,$15,$2 +sll $15,$23,2 +la $14,28 +mul $14,$14,$22 +la $13,140 +mul $13,$13,$21 +la $13,L.3151($13) +addu $14,$14,$13 +addu $15,$15,$14 +lw $15,($15) +addu $24,$24,$15 +subu $24,$24,52 +beq $24,$0,L.3190 +lw $24,44($30) +beq $24,$0,L.3192 +la $4,L.3152 +la $5,8 +jal printf +L.3192: +la $18,8($18) +L.3190: +move $2,$18 +L.3150: +l.d $f30,16($sp) +lw $18,24($sp) +lw $19,28($sp) +lw $20,32($sp) +lw $21,36($sp) +lw $22,40($sp) +lw $23,44($sp) +lw $25,48($sp) +lw $30,52($sp) +lw $31,56($sp) +addu $sp,$sp,216 +j $31 +.end s84 +.globl array +.text +.align 2 +.ent array +array: +.frame $sp,8,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-8 +.mask 0x40000000,-8 +sw $30,0($sp) +move $30,$0 +b L.3198 +L.3195: +sll $24,$30,2 +addu $24,$24,$4 +lw $24,($24) +addu $15,$30,$6 +beq $24,$15,L.3199 +la $2,1 +b L.3194 +L.3199: +L.3196: +la $30,1($30) +L.3198: +blt $30,$5,L.3195 +move $2,$0 +L.3194: +lw $30,0($sp) +addu $sp,$sp,8 +j $31 +.end array +.lcomm L.3202,4 +.globl fip +.text +.text +.align 2 +.ent fip +fip: +.frame $sp,0,$31 +.set noreorder +.cpload $25 +.set reorder +la $24,L.3202 +sw $4,L.3202 +move $2,$24 +L.3201: +j $31 +.end fip +.globl glork +.text +.align 2 +.ent glork +glork: +.frame $sp,0,$31 +.set noreorder +.cpload $25 +.set reorder +move $2,$4 +L.3203: +j $31 +.end glork +.data +.align 0 +L.3205: +.byte 115 +.byte 56 +.byte 53 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.sdata +.align 0 +L.3206: +.byte 115 +.byte 56 +.byte 53 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.data +.align 2 +L.3214: +.word L.425 +.word L.427 +.word L.426 +.word L.428 +.word L.429 +.word L.430 +.word L.431 +.data +.align 0 +L.3215: +.byte 32 +.byte 97 +.byte 108 +.byte 105 +.byte 103 +.byte 110 +.byte 109 +.byte 101 +.byte 110 +.byte 116 +.byte 58 +.byte 32 +.byte 0 +.globl s85 +.text +.text +.align 2 +.ent s85 +s85: +.frame $sp,440,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-440 +.mask 0xc2f00000,-400 +sw $20,16($sp) +sw $21,20($sp) +sw $22,24($sp) +sw $23,28($sp) +.cprestore 32 +sw $30,36($sp) +sw $31,40($sp) +move $30,$4 +la $22,L.3206 +la $21,60($30) +move $20,$0 +L.3219: +L.3220: +move $24,$21 +la $21,1($24) +move $15,$22 +la $22,1($15) +lb $15,($15) +sb $15,($24) +sll $24,$15,8*(4-1); sra $24,$24,8*(4-1) +bne $24,$0,L.3219 +la $15,-284+440($sp) +la $14,-304+440($sp) +subu $15,$15,$14 +ble $15,$0,L.3230 +la $15,-280+440($sp) +la $14,-284+440($sp) +subu $15,$15,$14 +ble $15,$0,L.3230 +la $15,-276+440($sp) +la $14,-280+440($sp) +subu $15,$15,$14 +bgt $15,$0,L.3222 +L.3230: +lw $24,44($30) +beq $24,$0,L.3231 +la $4,L.3205 +la $5,1 +jal printf +L.3231: +la $20,1($20) +L.3222: +la $24,-337+440($sp) +la $15,-338+440($sp) +subu $24,$24,$15 +sw $24,-268+440($sp) +la $24,-340+440($sp) +la $15,-342+440($sp) +subu $24,$24,$15 +sw $24,-264+440($sp) +la $24,-348+440($sp) +la $15,-352+440($sp) +subu $24,$24,$15 +sw $24,-260+440($sp) +la $24,-356+440($sp) +la $15,-360+440($sp) +subu $24,$24,$15 +sw $24,-256+440($sp) +la $24,-364+440($sp) +la $15,-368+440($sp) +subu $24,$24,$15 +sw $24,-252+440($sp) +la $24,-372+440($sp) +la $15,-376+440($sp) +subu $24,$24,$15 +sw $24,-248+440($sp) +la $24,-384+440($sp) +la $15,-392+440($sp) +subu $24,$24,$15 +sw $24,-244+440($sp) +lw $24,40($30) +beq $24,$0,L.3246 +move $23,$0 +L.3248: +la $4,L.3252 +sll $24,$23,2 +lw $5,L.3214($24) +la $6,L.3215 +la $15,-268+440($sp) +addu $24,$24,$15 +lw $7,($24) +jal printf +L.3249: +la $23,1($23) +la $24,7 +blt $23,$24,L.3248 +L.3246: +lw $24,-272+440($sp) +or $24,$24,0x1c000000 +sw $24,-272+440($sp) +lw $24,-272+440($sp) +move $15,$24 +and $15,$15,0x3fffffff +sll $24,$24,3 +sra $24,$24,29 +sll $24,$24,30 +sra $24,$24,30 +sll $24,$24,30 +and $24,$24,0xc0000000 +or $24,$15,$24 +sw $24,-272+440($sp) +lw $24,-272+440($sp) +move $15,$24 +and $15,$15,0xe3ffffff +sra $24,$24,30 +sll $24,$24,29 +sra $24,$24,29 +sll $24,$24,26 +and $24,$24,0x1c000000 +or $24,$15,$24 +sw $24,-272+440($sp) +la $24,3 +lw $15,-272+440($sp) +sll $15,$15,3 +sra $15,$15,29 +beq $15,$24,L.3253 +lw $24,-272+440($sp) +sll $24,$24,3 +sra $24,$24,29 +la $15,-1 +bne $24,$15,L.3255 +lw $24,40($30) +beq $24,$0,L.3256 +la $4,L.3259 +jal printf +b L.3256 +L.3255: +lw $24,44($30) +beq $24,$0,L.3260 +la $4,L.3205 +la $5,2 +jal printf +L.3260: +la $20,2($20) +L.3256: +L.3253: +lw $24,-272+440($sp) +or $24,$24,0x2000000 +sw $24,-272+440($sp) +lw $24,-272+440($sp) +sll $24,$24,6 +sra $24,$24,31 +la $15,1 +beq $24,$15,L.3262 +lw $24,40($30) +beq $24,$0,L.3264 +la $4,L.3266 +jal printf +L.3264: +L.3262: +la $24,-240+440($sp) +subu $24,$24,$24 +bne $24,$0,L.3274 +bne $24,$0,L.3274 +bne $24,$0,L.3274 +bne $24,$0,L.3274 +bne $24,$0,L.3274 +bne $24,$0,L.3274 +beq $24,$0,L.3267 +L.3274: +lw $24,44($30) +beq $24,$0,L.3275 +la $4,L.3205 +la $5,4 +jal printf +L.3275: +la $20,4($20) +L.3267: +b L.3277 +lw $24,44($30) +beq $24,$0,L.3279 +la $4,L.3205 +la $5,8 +jal printf +L.3279: +la $20,8($20) +L.3277: +la $24,-336+440($sp) +sw $24,-276+440($sp) +la $24,2 +sb $24,-336+440($sp) +lw $24,-276+440($sp) +lb $15,($24) +la $15,1($15) +sb $15,($24) +lb $24,-336+440($sp) +la $15,3 +beq $24,$15,L.3283 +lw $24,44($30) +beq $24,$0,L.3285 +la $4,L.3205 +la $5,16 +jal printf +L.3285: +la $20,16($20) +L.3283: +move $2,$20 +L.3204: +lw $20,16($sp) +lw $21,20($sp) +lw $22,24($sp) +lw $23,28($sp) +lw $25,32($sp) +lw $30,36($sp) +lw $31,40($sp) +addu $sp,$sp,440 +j $31 +.end s85 +.data +.align 0 +L.3288: +.byte 115 +.byte 56 +.byte 54 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.sdata +.align 0 +L.3289: +.byte 115 +.byte 56 +.byte 54 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.data +.align 2 +L.3290: +.word 0x1 +.word 0x3 +.word 0x5 +.sdata +.align 2 +L.3291: +.word L.3290+8 +.lcomm L.3293,40 +.data +.align 2 +L.3294: +.word 0x3f800000 +.word 0x40400000 +.word 0x40a00000 +.word 0x40000000 +.word 0x40800000 +.word 0x40c00000 +.word 0x40400000 +.word 0x40a00000 +.word 0x40e00000 +.word 0x0 +.word 0x0 +.word 0x0 +.data +.align 2 +L.3295: +.word 0x3f800000 +.word 0x40400000 +.word 0x40a00000 +.word 0x40000000 +.word 0x40800000 +.word 0x40c00000 +.word 0x40400000 +.word 0x40a00000 +.word 0x40e00000 +.space 12 +.data +.align 2 +L.3296: +.word 0x3f800000 +.word 0x40400000 +.word 0x40a00000 +.word 0x40000000 +.word 0x40800000 +.word 0x40c00000 +.word 0x40400000 +.word 0x40a00000 +.word 0x40e00000 +.space 12 +.data +.align 2 +L.3297: +.word 0x3f800000 +.space 8 +.word 0x40000000 +.space 8 +.word 0x40400000 +.space 8 +.word 0x40800000 +.space 8 +.globl s86 +.text +.text +.align 2 +.ent s86 +s86: +.frame $sp,64,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-64 +.mask 0xc2ff0000,-8 +sw $16,16($sp) +sw $17,20($sp) +sw $18,24($sp) +sw $19,28($sp) +sw $20,32($sp) +sw $21,36($sp) +sw $22,40($sp) +sw $23,44($sp) +.cprestore 48 +sw $30,52($sp) +sw $31,56($sp) +sw $4,64($sp) +lw $24,L.3291 +la $16,-4($24) +jal one +sll $24,$2,2 +addu $30,$24,$16 +la $19,L.3289 +lw $24,0+64($sp) +la $18,60($24) +move $17,$0 +L.3298: +L.3299: +move $24,$18 +la $18,1($24) +move $15,$19 +la $19,1($15) +lb $15,($15) +sb $15,($24) +sll $24,$15,8*(4-1); sra $24,$24,8*(4-1) +bne $24,$0,L.3298 +lw $24,L.3291 +lw $24,($24) +la $15,5 +beq $24,$15,L.3301 +lw $24,0+64($sp) +lw $24,44($24) +beq $24,$0,L.3303 +la $4,L.3288 +la $5,1 +jal printf +L.3303: +la $17,1($17) +L.3301: +lw $24,($16) +la $15,3 +beq $24,$15,L.3305 +lw $24,0+64($sp) +lw $24,44($24) +beq $24,$0,L.3307 +la $4,L.3288 +la $5,2 +jal printf +L.3307: +la $17,2($17) +L.3305: +lw $24,($30) +la $15,5 +beq $24,$15,L.3309 +lw $24,0+64($sp) +lw $24,44($24) +beq $24,$0,L.3311 +la $4,L.3288 +la $5,4 +jal printf +L.3311: +la $17,4($17) +L.3309: +move $20,$0 +move $23,$0 +L.3313: +sll $24,$23,2 +lw $24,L.3293($24) +beq $24,$0,L.3317 +la $20,1 +L.3317: +L.3314: +la $23,1($23) +la $24,10 +blt $23,$24,L.3313 +beq $20,$0,L.3319 +lw $24,0+64($sp) +lw $24,44($24) +beq $24,$0,L.3321 +la $4,L.3288 +la $5,8 +jal printf +L.3321: +la $17,8($17) +L.3319: +move $20,$0 +move $22,$0 +L.3323: +move $23,$0 +L.3327: +la $24,3 +mul $24,$24,$22 +addu $21,$24,$23 +sll $24,$23,2 +la $15,12 +mul $15,$15,$22 +la $14,L.3295($15) +addu $14,$24,$14 +l.s $f18,($14) +la $15,L.3296($15) +addu $24,$24,$15 +l.s $f16,($24) +c.eq.s $f18,$f16; bc1f L.3333 +sll $24,$21,2 +l.s $f16,L.3294($24) +c.eq.s $f18,$f16; bc1t L.3331 +L.3333: +la $20,1 +L.3331: +L.3328: +la $23,1($23) +la $24,3 +blt $23,$24,L.3327 +L.3324: +la $22,1($22) +la $24,4 +blt $22,$24,L.3323 +beq $20,$0,L.3334 +lw $24,0+64($sp) +lw $24,44($24) +beq $24,$0,L.3336 +la $4,L.3288 +la $5,16 +jal printf +L.3336: +la $17,16($17) +L.3334: +move $20,$0 +move $23,$0 +L.3338: +la $24,12 +mul $24,$24,$23 +l.s $f18,L.3297($24) +la $24,1($23) +mtc1 $24,$f16; cvt.s.w $f16,$f16 +c.eq.s $f18,$f16; bc1t L.3342 +la $20,1 +L.3342: +L.3339: +la $23,1($23) +la $24,4 +blt $23,$24,L.3338 +beq $20,$0,L.3344 +lw $24,0+64($sp) +lw $24,44($24) +beq $24,$0,L.3346 +la $4,L.3288 +la $5,32 +jal printf +L.3346: +la $17,32($17) +L.3344: +move $2,$17 +L.3287: +lw $16,16($sp) +lw $17,20($sp) +lw $18,24($sp) +lw $19,28($sp) +lw $20,32($sp) +lw $21,36($sp) +lw $22,40($sp) +lw $23,44($sp) +lw $25,48($sp) +lw $30,52($sp) +lw $31,56($sp) +addu $sp,$sp,64 +j $31 +.end s86 +.globl one +.text +.align 2 +.ent one +one: +.frame $sp,0,$31 +.set noreorder +.cpload $25 +.set reorder +la $2,1 +L.3348: +j $31 +.end one +.data +.align 0 +L.3350: +.byte 115 +.byte 56 +.byte 56 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.sdata +.align 0 +L.3351: +.byte 115 +.byte 56 +.byte 56 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s88 +.text +.text +.align 2 +.ent s88 +s88: +.frame $sp,64,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-64 +.mask 0xc2e00000,-28 +sw $21,16($sp) +sw $22,20($sp) +sw $23,24($sp) +.cprestore 28 +sw $30,32($sp) +sw $31,36($sp) +sw $4,64($sp) +la $30,L.3351 +lw $24,0+64($sp) +la $23,60($24) +move $22,$0 +L.3353: +L.3354: +move $24,$23 +la $23,1($24) +move $15,$30 +la $30,1($15) +lb $15,($15) +sb $15,($24) +sll $24,$15,8*(4-1); sra $24,$24,8*(4-1) +bne $24,$0,L.3353 +b L.3356 +lw $24,0+64($sp) +lw $24,44($24) +beq $24,$0,L.3358 +la $4,L.3350 +la $5,1 +jal printf +L.3358: +la $22,1($22) +L.3356: +la $24,-20+64($sp) +sw $24,metricp +la $24,2 +sw $24,-20+64($sp) +lw $24,metricp +la $15,3 +sw $15,($24) +lw $24,-20+64($sp) +la $15,3 +beq $24,$15,L.3360 +lw $24,0+64($sp) +lw $24,44($24) +beq $24,$0,L.3362 +la $4,L.3350 +la $5,2 +jal printf +L.3362: +la $22,2($22) +L.3360: +l.d $f18,L.419 +s.d $f18,-16+64($sp) +s.d $f18,-8+64($sp) +la $21,-16+64($sp) +l.d $f18,L.418 +s.d $f18,($21) +l.d $f18,L.418 +s.d $f18,8($21) +l.d $f18,-16+64($sp) +l.d $f16,-8+64($sp) +add.d $f18,$f18,$f16 +l.d $f16,L.416 +c.eq.d $f18,$f16; bc1t L.3365 +lw $24,0+64($sp) +lw $24,44($24) +beq $24,$0,L.3368 +la $4,L.3350 +la $5,4 +jal printf +L.3368: +la $22,4($22) +L.3365: +move $2,$22 +L.3349: +lw $21,16($sp) +lw $22,20($sp) +lw $23,24($sp) +lw $25,28($sp) +lw $30,32($sp) +lw $31,36($sp) +addu $sp,$sp,64 +j $31 +.end s88 +.data +.align 0 +L.3371: +.byte 115 +.byte 57 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.sdata +.align 0 +L.3372: +.byte 115 +.byte 57 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s9 +.text +.text +.align 2 +.ent s9 +s9: +.frame $sp,64,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-64 +.mask 0xc2ff0000,-8 +sw $16,16($sp) +sw $17,20($sp) +sw $18,24($sp) +sw $19,28($sp) +sw $20,32($sp) +sw $21,36($sp) +sw $22,40($sp) +sw $23,44($sp) +.cprestore 48 +sw $30,52($sp) +sw $31,56($sp) +sw $4,64($sp) +la $22,L.3372 +lw $24,0+64($sp) +la $21,60($24) +move $20,$0 +L.3373: +L.3374: +move $24,$21 +la $21,1($24) +move $15,$22 +la $22,1($15) +lb $15,($15) +sb $15,($24) +sll $24,$15,8*(4-1); sra $24,$24,8*(4-1) +bne $24,$0,L.3373 +move $23,$0 +move $30,$0 +L.3376: +la $24,2 +move $19,$24 +move $18,$24 +la $24,3 +move $17,$24 +move $16,$24 +la $24,3 +bne $16,$24,L.3382 +beq $17,$24,L.3380 +L.3382: +la $23,1 +L.3380: +la $24,2 +bne $18,$24,L.3385 +beq $19,$24,L.3383 +L.3385: +la $23,1 +L.3383: +L.3377: +la $30,1($30) +la $24,2 +blt $30,$24,L.3376 +beq $23,$0,L.3390 +lw $24,0+64($sp) +lw $24,44($24) +beq $24,$0,L.3388 +la $4,L.3371 +la $5,1 +jal printf +L.3388: +la $20,1($20) +b L.3390 +lw $24,0+64($sp) +lw $24,44($24) +beq $24,$0,L.3391 +la $4,L.3371 +la $5,2 +jal printf +L.3391: +la $20,2($20) +L.3390: +move $2,$20 +L.3370: +lw $16,16($sp) +lw $17,20($sp) +lw $18,24($sp) +lw $19,28($sp) +lw $20,32($sp) +lw $21,36($sp) +lw $22,40($sp) +lw $23,44($sp) +lw $25,48($sp) +lw $30,52($sp) +lw $31,56($sp) +addu $sp,$sp,64 +j $31 +.end s9 +.globl setev +.text +.align 2 +.ent setev +setev: +.frame $sp,0,$31 +.set noreorder +.cpload $25 +.set reorder +la $24,1066 +sw $24,extvar +move $2,$0 +L.3393: +j $31 +.end setev +.globl rfs +.comm rfs,8 +.globl crc +.comm crc,4 +.globl rrc +.comm rrc,4 +.globl flgl +.comm flgl,4 +.globl flgd +.comm flgd,4 +.globl flgm +.comm flgm,4 +.globl flgs +.comm flgs,4 +.globl dprec +.comm dprec,4 +.globl fprec +.comm fprec,4 +.globl dbits +.comm dbits,4 +.globl fbits +.comm fbits,4 +.globl ubits +.comm ubits,4 +.globl lbits +.comm lbits,4 +.globl metricp +.comm metricp,4 +.globl extvar +.comm extvar,4 +.rdata +.align 0 +L.3266: +.byte 66 +.byte 101 +.byte 32 +.byte 101 +.byte 115 +.byte 112 +.byte 101 +.byte 99 +.byte 105 +.byte 97 +.byte 108 +.byte 108 +.byte 121 +.byte 32 +.byte 99 +.byte 97 +.byte 114 +.byte 101 +.byte 102 +.byte 117 +.byte 108 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 49 +.byte 45 +.byte 98 +.byte 105 +.byte 116 +.byte 32 +.byte 102 +.byte 105 +.byte 101 +.byte 108 +.byte 100 +.byte 115 +.byte 33 +.byte 10 +.byte 0 +.align 0 +L.3259: +.byte 83 +.byte 105 +.byte 103 +.byte 110 +.byte 32 +.byte 101 +.byte 120 +.byte 116 +.byte 101 +.byte 110 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 105 +.byte 110 +.byte 32 +.byte 102 +.byte 105 +.byte 101 +.byte 108 +.byte 100 +.byte 115 +.byte 10 +.byte 0 +.align 0 +L.3252: +.byte 37 +.byte 115 +.byte 37 +.byte 115 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 2 +L.3175: +.word 0x43080000 +.align 0 +L.3022: +.byte 112 +.byte 111 +.byte 105 +.byte 110 +.byte 116 +.byte 101 +.byte 114 +.byte 0 +.align 0 +L.2472: +.byte 73 +.byte 110 +.byte 99 +.byte 114 +.byte 101 +.byte 97 +.byte 115 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 97 +.byte 114 +.byte 114 +.byte 97 +.byte 121 +.byte 32 +.byte 101 +.byte 108 +.byte 101 +.byte 109 +.byte 101 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 97 +.byte 115 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 101 +.byte 100 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 100 +.byte 101 +.byte 99 +.byte 114 +.byte 101 +.byte 97 +.byte 115 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 108 +.byte 111 +.byte 99 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 10 +.byte 0 +.align 2 +L.2356: +.word 0x41d00000 +.align 3 +L.2355: +.word 0x403a0000 +.word 0x0 +.align 3 +L.1659: +.word 0x40040000 +.word 0x0 +.align 3 +L.1484: +.word 0x40240000 +.word 0x0 +.align 2 +L.1455: +.word 0x41200000 +.align 3 +L.1280: +.word 0x40080000 +.word 0x0 +.align 2 +L.1251: +.word 0x40400000 +.align 3 +L.1076: +.word 0x401c0000 +.word 0x0 +.align 2 +L.1047: +.word 0x40e00000 +.align 3 +L.870: +.word 0x40140000 +.word 0x0 +.align 2 +L.841: +.word 0x40a00000 +.align 3 +L.836: +.word 0x41e00000 +.word 0x0 +.align 2 +L.828: +.word 0x4f000000 +.align 0 +L.653: +.byte 113 +.byte 117 +.byte 101 +.byte 101 +.byte 112 +.byte 0 +.align 0 +L.639: +.byte 10 +.byte 0 +.align 0 +L.638: +.byte 37 +.byte 100 +.byte 0 +.align 0 +L.633: +.byte 32 +.byte 32 +.byte 32 +.byte 107 +.byte 101 +.byte 121 +.byte 61 +.byte 0 +.align 3 +L.596: +.word 0x40000000 +.word 0x0 +.align 3 +L.536: +.word 0x40ce8480 +.word 0x0 +.align 3 +L.535: +.word 0x405f4000 +.word 0x0 +.align 2 +L.534: +.word 0x42fa0000 +.align 2 +L.529: +.word 0x40000000 +.align 0 +L.431: +.byte 100 +.byte 111 +.byte 117 +.byte 98 +.byte 108 +.byte 101 +.byte 0 +.align 0 +L.430: +.byte 102 +.byte 108 +.byte 111 +.byte 97 +.byte 116 +.byte 0 +.align 0 +L.429: +.byte 117 +.byte 110 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 101 +.byte 100 +.byte 0 +.align 0 +L.428: +.byte 108 +.byte 111 +.byte 110 +.byte 103 +.byte 0 +.align 0 +L.427: +.byte 115 +.byte 104 +.byte 111 +.byte 114 +.byte 116 +.byte 0 +.align 0 +L.426: +.byte 105 +.byte 110 +.byte 116 +.byte 0 +.align 0 +L.425: +.byte 99 +.byte 104 +.byte 97 +.byte 114 +.byte 0 +.align 3 +L.419: +.word 0x0 +.word 0x0 +.align 3 +L.418: +.word 0x3ff00000 +.word 0x0 +.align 3 +L.417: +.word 0x40100000 +.word 0x0 +.align 3 +L.416: +.word 0x40000000 +.word 0x0 +.align 2 +L.412: +.word 0x0 +.align 2 +L.411: +.word 0x3f800000 +.align 0 +L.390: +.byte 113 +.byte 117 +.byte 101 +.byte 101 +.byte 112 +.byte 33 +.byte 0 +.align 0 +L.379: +.byte 10 +.byte 9 +.byte 8 +.byte 13 +.byte 12 +.byte 92 +.byte 39 +.byte 0 +.align 0 +L.375: +.byte 46 +.byte 34 +.byte 46 +.byte 0 +.align 0 +L.362: +.byte 46 +.byte 46 +.byte 46 +.byte 0 +.align 3 +L.333: +.word 0x40938800 +.word 0x0 +.align 0 +L.199: +.byte 32 +.byte 32 +.byte 32 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 101 +.byte 110 +.byte 116 +.byte 32 +.byte 114 +.byte 101 +.byte 115 +.byte 117 +.byte 108 +.byte 116 +.byte 115 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 110 +.byte 32 +.byte 97 +.byte 115 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 101 +.byte 100 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 108 +.byte 111 +.byte 110 +.byte 103 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.198: +.byte 68 +.byte 101 +.byte 99 +.byte 105 +.byte 109 +.byte 97 +.byte 108 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 111 +.byte 99 +.byte 116 +.byte 97 +.byte 108 +.byte 47 +.byte 104 +.byte 101 +.byte 120 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 115 +.byte 116 +.byte 97 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 115 +.byte 111 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 109 +.byte 101 +.byte 115 +.byte 32 +.byte 103 +.byte 105 +.byte 118 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.27: +.byte 10 +.byte 70 +.byte 97 +.byte 105 +.byte 108 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.26: +.byte 10 +.byte 78 +.byte 111 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 115 +.byte 32 +.byte 100 +.byte 101 +.byte 116 +.byte 101 +.byte 99 +.byte 116 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.20: +.byte 83 +.byte 101 +.byte 99 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 37 +.byte 115 +.byte 32 +.byte 114 +.byte 101 +.byte 116 +.byte 117 +.byte 114 +.byte 110 +.byte 101 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 46 +.byte 10 +.byte 0 diff --git a/code/tools/lcc/mips/irix/tst/cvt.1bk b/code/tools/lcc/mips/irix/tst/cvt.1bk new file mode 100644 index 0000000..b28b302 --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/cvt.1bk @@ -0,0 +1,11 @@ +1 1 1 1 1 1 1 1 1.000000 1.000000 1.000000 +2 2 2 2 2 2 2 2 2.000000 2.000000 2.000000 +3 3 3 3 3 3 3 3 3.000000 3.000000 3.000000 +4 4 4 4 4 4 4 4 4.000000 4.000000 4.000000 +5 5 5 5 5 5 5 5 5.000000 5.000000 5.000000 +6 6 6 6 6 6 6 6 6.000000 6.000000 6.000000 +7 7 7 7 7 7 7 7 7.000000 7.000000 7.000000 +8 8 8 8 8 8 8 8 8.000000 8.000000 8.000000 +9 9 9 9 9 9 9 9 9.000000 9.000000 9.000000 +10 10 10 10 10 10 10 10 10.000000 10.000000 10.000000 +11 11 11 11 11 11 11 11 11.000000 11.000000 11.000000 diff --git a/code/tools/lcc/mips/irix/tst/cvt.2bk b/code/tools/lcc/mips/irix/tst/cvt.2bk new file mode 100644 index 0000000..241527d --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/cvt.2bk @@ -0,0 +1,2 @@ +tst/cvt.c:32: warning: conversion from `pointer to void function(void)' to `pointer to void' is compiler dependent +tst/cvt.c:33: warning: conversion from `pointer to void' to `pointer to void function(void)' is compiler dependent diff --git a/code/tools/lcc/mips/irix/tst/cvt.sbk b/code/tools/lcc/mips/irix/tst/cvt.sbk new file mode 100644 index 0000000..216ab8f --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/cvt.sbk @@ -0,0 +1,557 @@ +.set reorder +.globl print +.text +.text +.align 2 +.ent print +print: +.frame $sp,72,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-72 +.mask 0x82000000,-4 +.cprestore 64 +sw $31,68($sp) +la $4,L.2 +lb $5,c +lh $6,s +lw $7,i +lw $24,l +sw $24,16($sp) +lbu $24,C +sw $24,20($sp) +lhu $24,S +sw $24,24($sp) +lw $24,I +sw $24,28($sp) +lw $24,L +sw $24,32($sp) +l.s $f18,f +cvt.d.s $f18,$f18 +s.d $f18,40($sp) +l.d $f18,d +s.d $f18,48($sp) +l.d $f18,D +s.d $f18,56($sp) +jal printf +L.1: +lw $25,64($sp) +lw $31,68($sp) +addu $sp,$sp,72 +j $31 +.end print +.globl main +.text +.align 2 +.ent main +main: +.frame $sp,72,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-72 +.mask 0xc2ff0000,-16 +sw $16,16($sp) +sw $17,20($sp) +sw $18,24($sp) +sw $19,28($sp) +sw $20,32($sp) +sw $21,36($sp) +sw $22,40($sp) +sw $23,44($sp) +.cprestore 48 +sw $30,52($sp) +sw $31,56($sp) +la $24,1 +sb $24,c +lb $24,c +move $15,$24 +sh $15,s +sw $24,i +sw $24,l +move $15,$24 +move $14,$15 +sb $14,C +move $14,$15 +sh $14,S +sw $15,I +sw $15,L +mtc1 $24,$f18; cvt.s.w $f18,$f18 +s.s $f18,f +mtc1 $24,$f18; cvt.d.w $f18,$f18 +s.d $f18,d +s.d $f18,D +jal print +la $24,2 +sh $24,s +lh $24,s +move $15,$24 +sb $15,c +sw $24,i +sw $24,l +move $15,$24 +move $14,$15 +sb $14,C +move $14,$15 +sh $14,S +sw $15,I +sw $15,L +mtc1 $24,$f18; cvt.s.w $f18,$f18 +s.s $f18,f +mtc1 $24,$f18; cvt.d.w $f18,$f18 +s.d $f18,d +s.d $f18,D +jal print +la $24,3 +sw $24,i +lw $24,i +move $15,$24 +sb $15,c +move $15,$24 +sh $15,s +sw $24,l +move $15,$24 +move $14,$15 +sb $14,C +move $14,$15 +sh $14,S +sw $15,I +sw $15,L +mtc1 $24,$f18; cvt.s.w $f18,$f18 +s.s $f18,f +mtc1 $24,$f18; cvt.d.w $f18,$f18 +s.d $f18,d +s.d $f18,D +jal print +la $24,4 +sw $24,l +lw $24,l +move $15,$24 +sb $15,c +move $15,$24 +sh $15,s +sw $24,i +move $15,$24 +move $14,$15 +sb $14,C +move $14,$15 +sh $14,S +sw $15,I +sw $15,L +mtc1 $24,$f18; cvt.s.w $f18,$f18 +s.s $f18,f +mtc1 $24,$f18; cvt.d.w $f18,$f18 +s.d $f18,d +s.d $f18,D +jal print +la $24,5 +sb $24,C +lbu $24,C +move $15,$24 +sb $15,c +move $15,$24 +sh $15,s +sw $24,i +sw $24,l +move $15,$24 +move $14,$15 +sh $14,S +sw $15,I +sw $15,L +mtc1 $24,$f18; cvt.s.w $f18,$f18 +s.s $f18,f +mtc1 $24,$f18; cvt.d.w $f18,$f18 +s.d $f18,d +s.d $f18,D +jal print +la $24,6 +sh $24,S +lhu $24,S +move $15,$24 +sb $15,c +move $15,$24 +sh $15,s +sw $24,i +sw $24,l +move $15,$24 +move $14,$15 +sb $14,C +sw $15,I +sw $15,L +mtc1 $24,$f18; cvt.s.w $f18,$f18 +s.s $f18,f +mtc1 $24,$f18; cvt.d.w $f18,$f18 +s.d $f18,d +s.d $f18,D +jal print +la $24,7 +sw $24,I +lw $24,I +move $14,$24 +sb $14,c +move $14,$24 +sh $14,s +sw $24,i +sw $24,l +move $15,$24 +sb $15,C +move $15,$24 +sh $15,S +sw $24,L +l.d $f18,L.4 +srl $15,$24,1 +mtc1 $15,$f16; cvt.d.w $f16,$f16 +mul.d $f18,$f18,$f16 +and $24,$24,1 +mtc1 $24,$f16; cvt.d.w $f16,$f16 +add.d $f18,$f18,$f16 +cvt.s.d $f16,$f18 +s.s $f16,f +s.d $f18,d +s.d $f18,D +jal print +la $24,8 +sw $24,L +lw $24,L +move $14,$24 +sb $14,c +move $14,$24 +sh $14,s +sw $24,i +sw $24,l +move $15,$24 +sb $15,C +move $15,$24 +sh $15,S +lhu $15,S +sw $15,I +l.d $f18,L.4 +srl $15,$24,1 +mtc1 $15,$f16; cvt.d.w $f16,$f16 +mul.d $f18,$f18,$f16 +and $24,$24,1 +mtc1 $24,$f16; cvt.d.w $f16,$f16 +add.d $f18,$f18,$f16 +cvt.s.d $f16,$f18 +s.s $f16,f +s.d $f18,d +s.d $f18,D +jal print +l.s $f18,L.5 +s.s $f18,f +l.s $f18,f +trunc.w.s $f2,$f18,$24; mfc1 $24,$f2 +move $15,$24 +sb $15,c +move $15,$24 +sh $15,s +sw $24,i +sw $24,l +l.s $f16,L.9 +c.lt.s $f18,$f16; bc1t L.7 +sub.s $f16,$f18,$f16 +trunc.w.s $f2,$f16,$24; mfc1 $24,$f2 +la $30,0x80000000($24) +b L.8 +L.7: +trunc.w.s $f2,$f18,$24; mfc1 $24,$f2 +move $30,$24 +L.8: +move $24,$30 +sb $24,C +l.s $f18,f +l.s $f16,L.9 +c.lt.s $f18,$f16; bc1t L.11 +sub.s $f16,$f18,$f16 +trunc.w.s $f2,$f16,$24; mfc1 $24,$f2 +la $23,0x80000000($24) +b L.12 +L.11: +trunc.w.s $f2,$f18,$24; mfc1 $24,$f2 +move $23,$24 +L.12: +move $24,$23 +sh $24,S +l.s $f18,f +l.s $f16,L.9 +c.lt.s $f18,$f16; bc1t L.14 +sub.s $f16,$f18,$f16 +trunc.w.s $f2,$f16,$24; mfc1 $24,$f2 +la $22,0x80000000($24) +b L.15 +L.14: +trunc.w.s $f2,$f18,$24; mfc1 $24,$f2 +move $22,$24 +L.15: +sw $22,I +l.s $f18,f +l.s $f16,L.9 +c.lt.s $f18,$f16; bc1t L.17 +sub.s $f16,$f18,$f16 +trunc.w.s $f2,$f16,$24; mfc1 $24,$f2 +la $21,0x80000000($24) +b L.18 +L.17: +trunc.w.s $f2,$f18,$24; mfc1 $24,$f2 +move $21,$24 +L.18: +sw $21,L +l.s $f18,f +cvt.d.s $f18,$f18 +s.d $f18,d +s.d $f18,D +jal print +l.d $f18,L.19 +s.d $f18,d +l.d $f18,d +trunc.w.d $f2,$f18,$24; mfc1 $24,$f2 +move $15,$24 +sb $15,c +move $15,$24 +sh $15,s +sw $24,i +sw $24,l +l.d $f16,L.23 +c.lt.d $f18,$f16; bc1t L.21 +sub.d $f16,$f18,$f16 +trunc.w.d $f2,$f16,$24; mfc1 $24,$f2 +la $20,0x80000000($24) +b L.22 +L.21: +trunc.w.d $f2,$f18,$24; mfc1 $24,$f2 +move $20,$24 +L.22: +move $24,$20 +sb $24,C +l.d $f18,d +l.d $f16,L.23 +c.lt.d $f18,$f16; bc1t L.25 +sub.d $f16,$f18,$f16 +trunc.w.d $f2,$f16,$24; mfc1 $24,$f2 +la $19,0x80000000($24) +b L.26 +L.25: +trunc.w.d $f2,$f18,$24; mfc1 $24,$f2 +move $19,$24 +L.26: +move $24,$19 +sh $24,S +l.d $f18,d +l.d $f16,L.23 +c.lt.d $f18,$f16; bc1t L.28 +sub.d $f16,$f18,$f16 +trunc.w.d $f2,$f16,$24; mfc1 $24,$f2 +la $18,0x80000000($24) +b L.29 +L.28: +trunc.w.d $f2,$f18,$24; mfc1 $24,$f2 +move $18,$24 +L.29: +sw $18,I +l.d $f18,d +l.d $f16,L.23 +c.lt.d $f18,$f16; bc1t L.31 +sub.d $f16,$f18,$f16 +trunc.w.d $f2,$f16,$24; mfc1 $24,$f2 +la $17,0x80000000($24) +b L.32 +L.31: +trunc.w.d $f2,$f18,$24; mfc1 $24,$f2 +move $17,$24 +L.32: +sw $17,L +l.d $f18,d +cvt.s.d $f16,$f18 +s.s $f16,f +s.d $f18,D +jal print +l.d $f18,L.33 +s.d $f18,D +l.d $f18,D +trunc.w.d $f2,$f18,$24; mfc1 $24,$f2 +move $15,$24 +sb $15,c +move $15,$24 +sh $15,s +sw $24,i +sw $24,l +l.d $f16,L.37 +c.lt.d $f18,$f16; bc1t L.35 +sub.d $f16,$f18,$f16 +trunc.w.d $f2,$f16,$24; mfc1 $24,$f2 +la $16,0x80000000($24) +b L.36 +L.35: +trunc.w.d $f2,$f18,$24; mfc1 $24,$f2 +move $16,$24 +L.36: +move $24,$16 +sb $24,C +l.d $f18,D +l.d $f16,L.37 +c.lt.d $f18,$f16; bc1t L.39 +sub.d $f16,$f18,$f16 +trunc.w.d $f2,$f16,$24; mfc1 $24,$f2 +la $24,0x80000000($24) +sw $24,-4+72($sp) +b L.40 +L.39: +trunc.w.d $f2,$f18,$24; mfc1 $24,$f2 +sw $24,-4+72($sp) +L.40: +lw $24,-4+72($sp) +sh $24,S +l.d $f18,D +l.d $f16,L.37 +c.lt.d $f18,$f16; bc1t L.42 +sub.d $f16,$f18,$f16 +trunc.w.d $f2,$f16,$24; mfc1 $24,$f2 +la $24,0x80000000($24) +sw $24,-8+72($sp) +b L.43 +L.42: +trunc.w.d $f2,$f18,$24; mfc1 $24,$f2 +sw $24,-8+72($sp) +L.43: +lw $24,-8+72($sp) +sw $24,I +l.d $f18,D +l.d $f16,L.37 +c.lt.d $f18,$f16; bc1t L.45 +sub.d $f16,$f18,$f16 +trunc.w.d $f2,$f16,$24; mfc1 $24,$f2 +la $24,0x80000000($24) +sw $24,-12+72($sp) +b L.46 +L.45: +trunc.w.d $f2,$f18,$24; mfc1 $24,$f2 +sw $24,-12+72($sp) +L.46: +lw $24,-12+72($sp) +sw $24,L +l.d $f18,D +cvt.s.d $f16,$f18 +s.s $f16,f +s.d $f18,d +jal print +sw $0,p +sw $0,p +sw $0,p +sw $0,p +lw $24,P +sw $24,p +sw $0,P +sw $0,P +sw $0,P +sw $0,P +lw $24,p +sw $24,P +move $2,$0 +L.3: +lw $16,16($sp) +lw $17,20($sp) +lw $18,24($sp) +lw $19,28($sp) +lw $20,32($sp) +lw $21,36($sp) +lw $22,40($sp) +lw $23,44($sp) +lw $25,48($sp) +lw $30,52($sp) +lw $31,56($sp) +addu $sp,$sp,72 +j $31 +.end main +.globl P +.comm P,4 +.globl p +.comm p,4 +.globl D +.comm D,8 +.globl d +.comm d,8 +.globl f +.comm f,4 +.globl L +.comm L,4 +.globl I +.comm I,4 +.globl S +.comm S,2 +.globl C +.comm C,1 +.globl l +.comm l,4 +.globl i +.comm i,4 +.globl s +.comm s,2 +.globl c +.comm c,1 +.rdata +.align 3 +L.37: +.word 0x41e00000 +.word 0x0 +.align 3 +L.33: +.word 0x40260000 +.word 0x0 +.align 3 +L.23: +.word 0x41e00000 +.word 0x0 +.align 3 +L.19: +.word 0x40240000 +.word 0x0 +.align 2 +L.9: +.word 0x4f000000 +.align 2 +L.5: +.word 0x41100000 +.align 3 +L.4: +.word 0x40000000 +.word 0x0 +.align 0 +L.2: +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 108 +.byte 100 +.byte 32 +.byte 37 +.byte 117 +.byte 32 +.byte 37 +.byte 117 +.byte 32 +.byte 37 +.byte 117 +.byte 32 +.byte 37 +.byte 108 +.byte 117 +.byte 32 +.byte 37 +.byte 102 +.byte 32 +.byte 37 +.byte 102 +.byte 32 +.byte 37 +.byte 108 +.byte 102 +.byte 10 +.byte 0 diff --git a/code/tools/lcc/mips/irix/tst/fields.1bk b/code/tools/lcc/mips/irix/tst/fields.1bk new file mode 100644 index 0000000..56fdeb9 --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/fields.1bk @@ -0,0 +1,5 @@ +x = 1 2 3 4 -3 6 +y = 3 8 9 +x = 1 2 3 0 0 6 +y = 2 8 16 +p->a = 0x3, p->b = 0xf diff --git a/code/tools/lcc/mips/irix/tst/fields.2bk b/code/tools/lcc/mips/irix/tst/fields.2bk new file mode 100644 index 0000000..51e1736 --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/fields.2bk @@ -0,0 +1,4 @@ +tst/fields.c:6: warning: initializer exceeds bit-field width +tst/fields.c:8: warning: initializer exceeds bit-field width +tst/fields.c:30: warning: missing return value +tst/fields.c:34: warning: missing return value diff --git a/code/tools/lcc/mips/irix/tst/fields.sbk b/code/tools/lcc/mips/irix/tst/fields.sbk new file mode 100644 index 0000000..482486c --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/fields.sbk @@ -0,0 +1,304 @@ +.set reorder +.globl x +.data +.align 2 +x: +.word 0x1 +.byte 0x2 +.space 3 +.byte 0x0 +.byte 0x34 +.space 2 +.byte 0xa +.byte 0x6 +.space 2 +.globl i +.sdata +.align 2 +i: +.word 0x10 +.globl y +.sdata +.align 2 +y: +.byte 0xe0 +.space 3 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x9 +.globl main +.text +.text +.align 2 +.ent main +main: +.frame $sp,40,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-40 +.mask 0x82000000,-8 +.cprestore 28 +sw $31,32($sp) +la $4,L.4 +lw $5,x +lb $6,x+4 +lw $24,x+8 +sra $7,$24,20 +lw $24,x+8 +sll $24,$24,12 +sra $24,$24,28 +sw $24,16($sp) +lw $24,x+12 +sll $24,$24,4 +sra $24,$24,29 +sw $24,20($sp) +lb $24,x+13 +sw $24,24($sp) +jal printf +la $4,L.10 +lw $24,y +srl $15,$24,30 +and $5,$15,3 +srl $24,$24,26 +and $6,$24,15 +lw $7,y+4 +jal printf +lw $24,x+8 +and $24,$24,0xfff0ffff +lw $15,i +sll $15,$15,28 +sra $15,$15,28 +sll $15,$15,16 +and $15,$15,0xf0000 +or $24,$24,$15 +sw $24,x+8 +lw $24,x+12 +and $24,$24,0xf1ffffff +sw $24,x+12 +la $4,L.4 +lw $5,x +lb $6,x+4 +lw $24,x+8 +sra $7,$24,20 +lw $24,x+8 +sll $24,$24,12 +sra $24,$24,28 +sw $24,16($sp) +lw $24,x+12 +sll $24,$24,4 +sra $24,$24,29 +sw $24,20($sp) +lb $24,x+13 +sw $24,24($sp) +jal printf +lw $24,y +and $24,$24,0x3fffffff +or $24,$24,0x80000000 +sw $24,y +lw $24,i +sw $24,y+4 +la $4,L.10 +lw $24,y +srl $15,$24,30 +and $5,$15,3 +srl $24,$24,26 +and $6,$24,15 +lw $7,y+4 +jal printf +la $4,x +jal f2 +move $2,$0 +L.3: +lw $25,28($sp) +lw $31,32($sp) +addu $sp,$sp,40 +j $31 +.end main +.globl f1 +.text +.align 2 +.ent f1 +f1: +.frame $sp,32,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-32 +.mask 0xc2000000,-8 +.cprestore 16 +sw $30,20($sp) +sw $31,24($sp) +move $30,$4 +lw $24,($30) +and $24,$24,0xc3ffffff +sw $24,($30) +lw $24,($30) +and $24,$24,0x3fffffff +and $15,$0,3 +sll $15,$15,30 +and $15,$15,0xc0000000 +or $24,$24,$15 +sw $24,($30) +lw $24,($30) +and $24,$24,0x3c000000 +beq $24,$0,L.22 +la $4,L.24 +jal printf +L.22: +lw $24,($30) +or $24,$24,0xc0000000 +sw $24,($30) +lw $24,($30) +or $24,$24,0x3c000000 +sw $24,($30) +la $4,L.25 +lw $24,($30) +srl $15,$24,30 +and $5,$15,3 +srl $24,$24,26 +and $6,$24,15 +jal printf +move $2,$0 +L.21: +lw $25,16($sp) +lw $30,20($sp) +lw $31,24($sp) +addu $sp,$sp,32 +j $31 +.end f1 +.globl f2 +.text +.align 2 +.ent f2 +f2: +.frame $sp,32,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-32 +.mask 0xc2800000,-4 +sw $23,16($sp) +.cprestore 20 +sw $30,24($sp) +sw $31,28($sp) +move $30,$4 +lw $24,i +bne $24,$0,L.28 +la $23,1 +b L.29 +L.28: +move $23,$0 +L.29: +lw $24,($30) +and $24,$24,0x3fffffff +move $15,$23 +and $15,$15,3 +sll $15,$15,30 +and $15,$15,0xc0000000 +or $24,$24,$15 +sw $24,($30) +move $4,$30 +jal f1 +lw $24,($30) +and $24,$24,0xc3ffffff +move $15,$0 +and $15,$15,15 +sll $15,$15,26 +and $15,$15,0x3c000000 +or $24,$24,$15 +sw $24,($30) +move $2,$0 +L.26: +lw $23,16($sp) +lw $25,20($sp) +lw $30,24($sp) +lw $31,28($sp) +addu $sp,$sp,32 +j $31 +.end f2 +.rdata +.align 0 +L.25: +.byte 112 +.byte 45 +.byte 62 +.byte 97 +.byte 32 +.byte 61 +.byte 32 +.byte 48 +.byte 120 +.byte 37 +.byte 120 +.byte 44 +.byte 32 +.byte 112 +.byte 45 +.byte 62 +.byte 98 +.byte 32 +.byte 61 +.byte 32 +.byte 48 +.byte 120 +.byte 37 +.byte 120 +.byte 10 +.byte 0 +.align 0 +L.24: +.byte 112 +.byte 45 +.byte 62 +.byte 98 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 33 +.byte 10 +.byte 0 +.align 0 +L.10: +.byte 121 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.4: +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 diff --git a/code/tools/lcc/mips/irix/tst/front.2bk b/code/tools/lcc/mips/irix/tst/front.2bk new file mode 100644 index 0000000..bbd390a --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/front.2bk @@ -0,0 +1,29 @@ +tst/front.c:3: warning: missing return value +tst/front.c:10: warning: missing return value +tst/front.c:20: type error in argument 1 to `s'; found `pointer to struct D' expected `pointer to incomplete struct D defined at tst/front.c:14' +tst/front.c:21: warning: missing return value +tst/front.c:32: warning: missing return value +tst/front.c:36: operands of = have illegal types `pointer to int' and `pointer to const int' +tst/front.c:38: warning: missing return value +tst/front.c:62: operands of = have illegal types `pointer to char' and `pointer to const void' +tst/front.c:63: warning: missing return value +tst/front.c:68: warning: missing return value +tst/front.c:69: warning: inconsistent linkage for `yy' previously declared at tst/front.c:68 +tst/front.c:69: warning: missing return value +tst/front.c:71: invalid storage class `static' for `int function goo' +tst/front.c:71: warning: declaration of `goo' does not match previous declaration at tst/front.c:70 +tst/front.c:71: warning: missing return value +tst/front.c:74: warning: declaration of `xr' does not match previous declaration at tst/front.c:72 +tst/front.c:74: warning: missing return value +tst/front.c:81: warning: missing return value +tst/front.c:82: warning: declaration of `ss2' does not match previous declaration at tst/front.c:81 +tst/front.c:84: warning: inconsistent linkage for `ss5' previously declared at tst/front.c:80 +tst/front.c:92: type error in argument 1 to `gx1'; found `pointer to double' expected `double' +tst/front.c:92: warning: missing return value +tst/front.c:95: redeclaration of `hx1' previously declared at tst/front.c:94 +tst/front.c:98: warning: missing return value +tst/front.c:101: conflicting argument declarations for function `gg1' +tst/front.c:101: warning: missing return value +tst/front.c:112: type error in argument 4 to `qsort'; found `pointer to int function(pointer to pointer to char,pointer to pointer to char)' expected `pointer to int function(pointer to const void,pointer to const void)' +tst/front.c:113: warning: missing return value +tst/front.c:120: warning: missing return value diff --git a/code/tools/lcc/mips/irix/tst/front.sbk b/code/tools/lcc/mips/irix/tst/front.sbk new file mode 100644 index 0000000..3cbb41a --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/front.sbk @@ -0,0 +1,416 @@ +.set reorder +.globl main +.text +.text +.align 2 +.ent main +main: +.frame $sp,24,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-24 +.mask 0x82000000,-4 +.cprestore 16 +sw $31,20($sp) +move $4,$0 +jal exit +move $2,$0 +L.1: +lw $25,16($sp) +lw $31,20($sp) +addu $sp,$sp,24 +j $31 +.end main +.globl nested +.text +.align 2 +.ent nested +nested: +.frame $sp,0,$31 +.set noreorder +.cpload $25 +.set reorder +la $24,4 +bge $4,$24,L.6 +la $24,114 +beq $5,$24,L.9 +L.6: +la $24,1 +bne $4,$24,L.8 +la $24,104 +beq $5,$24,L.9 +la $24,105 +beq $5,$24,L.9 +L.8: +la $24,2 +bne $4,$24,L.3 +la $24,111 +beq $5,$24,L.9 +la $24,121 +bne $5,$24,L.3 +L.9: +move $4,$5 +L.3: +move $2,$0 +L.2: +j $31 +.end nested +.globl s +.text +.align 2 +.ent s +s: +.frame $sp,0,$31 +.set noreorder +.cpload $25 +.set reorder +L.10: +j $31 +.end s +.globl Dy +.sdata +.align 2 +Dy: +.word 0x0 +.space 4 +.globl Dz +.sdata +.align 2 +Dz: +.word 0x1 +.space 4 +.globl Dfunc +.text +.text +.align 2 +.ent Dfunc +Dfunc: +.frame $sp,24,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-24 +.mask 0x82000000,-4 +.cprestore 16 +sw $31,20($sp) +lw $25,16($sp) +lw $31,20($sp) +addu $sp,$sp,24 +j $31 +.end Dfunc +.globl f +.text +.align 2 +.ent f +f: +.frame $sp,0,$31 +.set noreorder +.cpload $25 +.set reorder +j $31 +.end f +.globl f1 +.text +.align 2 +.ent f1 +f1: +.frame $sp,0,$31 +.set noreorder +.cpload $25 +.set reorder +j $31 +.end f1 +.globl f2 +.text +.align 2 +.ent f2 +f2: +.frame $sp,24,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-24 +.mask 0x82000000,-4 +.cprestore 16 +sw $31,20($sp) +sw $4,24($sp) +sw $5,28($sp) +lw $25,16($sp) +lw $31,20($sp) +addu $sp,$sp,24 +j $31 +.end f2 +.globl g +.text +.align 2 +.ent g +g: +.frame $sp,24,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-24 +.mask 0x82000000,-4 +.cprestore 16 +sw $31,20($sp) +sw $4,24($sp) +lw $25,16($sp) +lw $31,20($sp) +addu $sp,$sp,24 +j $31 +.end g +.globl h +.text +.align 2 +.ent h +h: +.frame $sp,24,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-24 +.mask 0x82000000,-4 +.cprestore 16 +sw $31,20($sp) +sw $4,24($sp) +lw $25,16($sp) +lw $31,20($sp) +addu $sp,$sp,24 +j $31 +.end h +.globl h1 +.text +.align 2 +.ent h1 +h1: +.frame $sp,24,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-24 +.mask 0x82000000,-4 +.cprestore 16 +sw $31,20($sp) +sw $4,24($sp) +sw $5,28($sp) +lw $25,16($sp) +lw $31,20($sp) +addu $sp,$sp,24 +j $31 +.end h1 +.globl h2 +.text +.align 2 +.ent h2 +h2: +.frame $sp,0,$31 +.set noreorder +.cpload $25 +.set reorder +j $31 +.end h2 +.sdata +.align 2 +L.21: +.word 0x1 +.globl set1 +.text +.text +.align 2 +.ent set1 +set1: +.frame $sp,0,$31 +.set noreorder +.cpload $25 +.set reorder +j $31 +.end set1 +.sdata +.align 2 +L.23: +.word 0x2 +.globl set2 +.text +.text +.align 2 +.ent set2 +set2: +.frame $sp,0,$31 +.set noreorder +.cpload $25 +.set reorder +j $31 +.end set2 +.text +.align 2 +.ent goo +goo: +.frame $sp,0,$31 +.set noreorder +.cpload $25 +.set reorder +j $31 +.end goo +.globl sss +.text +.align 2 +.ent sss +sss: +.frame $sp,0,$31 +.set noreorder +.cpload $25 +.set reorder +j $31 +.end sss +.lcomm L.27,4 +.globl rrr +.text +.text +.align 2 +.ent rrr +rrr: +.frame $sp,0,$31 +.set noreorder +.cpload $25 +.set reorder +j $31 +.end rrr +.globl setstatic +.text +.align 2 +.ent setstatic +setstatic: +.frame $sp,0,$31 +.set noreorder +.cpload $25 +.set reorder +j $31 +.end setstatic +.globl gx1 +.text +.align 2 +.ent gx1 +gx1: +.frame $sp,24,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-24 +.mask 0x82000000,-4 +.cprestore 16 +sw $31,20($sp) +s.d $f12,24($sp) +lw $25,16($sp) +lw $31,20($sp) +addu $sp,$sp,24 +j $31 +.end gx1 +.globl ff1 +.text +.align 2 +.ent ff1 +ff1: +.frame $sp,0,$31 +.set noreorder +.cpload $25 +.set reorder +j $31 +.end ff1 +.globl gg1 +.text +.align 2 +.ent gg1 +gg1: +.frame $sp,0,$31 +.set noreorder +.cpload $25 +.set reorder +j $31 +.end gg1 +.globl hh1 +.text +.align 2 +.ent hh1 +hh1: +.frame $sp,0,$31 +.set noreorder +.cpload $25 +.set reorder +j $31 +.end hh1 +.globl cmp +.text +.align 2 +.ent cmp +cmp: +.frame $sp,24,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-24 +.mask 0x82000000,-4 +.cprestore 16 +sw $31,20($sp) +sw $4,24($sp) +sw $5,28($sp) +lw $25,16($sp) +lw $31,20($sp) +addu $sp,$sp,24 +j $31 +.end cmp +.globl sort +.text +.align 2 +.ent sort +sort: +.frame $sp,24,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-24 +.mask 0x82000000,-4 +.cprestore 16 +sw $31,20($sp) +lw $25,16($sp) +lw $31,20($sp) +addu $sp,$sp,24 +j $31 +.end sort +.globl onearg +.text +.align 2 +.ent onearg +onearg: +.frame $sp,24,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-24 +.mask 0x82000000,-4 +.cprestore 16 +sw $31,20($sp) +lw $25,16($sp) +lw $31,20($sp) +addu $sp,$sp,24 +j $31 +.end onearg +.extern xr 4 +.globl ss4 +.comm ss4,4 +.lcomm ss2,4 +.lcomm ss5,4 +.globl ss3 +.comm ss3,4 +.lcomm ss1,4 +.lcomm yy,4 +.globl z +.comm z,4 +.globl y +.comm y,4 +.globl x +.comm x,4 +.globl b +.comm b,4 +.globl a +.comm a,4 diff --git a/code/tools/lcc/mips/irix/tst/incr.2bk b/code/tools/lcc/mips/irix/tst/incr.2bk new file mode 100644 index 0000000..d9ef13c --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/incr.2bk @@ -0,0 +1,9 @@ +tst/incr.c:1: warning: missing return value +tst/incr.c:6: warning: expression with no effect elided +tst/incr.c:6: warning: expression with no effect elided +tst/incr.c:11: warning: missing return value +tst/incr.c:16: warning: expression with no effect elided +tst/incr.c:16: warning: expression with no effect elided +tst/incr.c:21: warning: missing return value +tst/incr.c:30: warning: missing return value +tst/incr.c:39: warning: missing return value diff --git a/code/tools/lcc/mips/irix/tst/incr.sbk b/code/tools/lcc/mips/irix/tst/incr.sbk new file mode 100644 index 0000000..1fe2edd --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/incr.sbk @@ -0,0 +1,149 @@ +.set reorder +.globl main +.text +.text +.align 2 +.ent main +main: +.frame $sp,0,$31 +.set noreorder +.cpload $25 +.set reorder +move $2,$0 +L.1: +j $31 +.end main +.globl memchar +.text +.align 2 +.ent memchar +memchar: +.frame $sp,8,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-8 +lw $24,-8+8($sp) +la $15,1($24) +sw $15,-8+8($sp) +lb $24,($24) +sb $24,-1+8($sp) +lw $24,-8+8($sp) +la $24,1($24) +sw $24,-8+8($sp) +lb $24,($24) +sb $24,-1+8($sp) +lw $24,-8+8($sp) +la $15,-1($24) +sw $15,-8+8($sp) +lb $24,($24) +sb $24,-1+8($sp) +lw $24,-8+8($sp) +la $24,-1($24) +sw $24,-8+8($sp) +lb $24,($24) +sb $24,-1+8($sp) +move $2,$0 +L.2: +addu $sp,$sp,8 +j $31 +.end memchar +.globl memint +.text +.align 2 +.ent memint +memint: +.frame $sp,8,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-8 +lw $24,-8+8($sp) +la $15,4($24) +sw $15,-8+8($sp) +lw $24,($24) +sw $24,-4+8($sp) +lw $24,-8+8($sp) +la $24,4($24) +sw $24,-8+8($sp) +lw $24,($24) +sw $24,-4+8($sp) +lw $24,-8+8($sp) +la $15,-4($24) +sw $15,-8+8($sp) +lw $24,($24) +sw $24,-4+8($sp) +lw $24,-8+8($sp) +la $24,-4($24) +sw $24,-8+8($sp) +lw $24,($24) +sw $24,-4+8($sp) +move $2,$0 +L.3: +addu $sp,$sp,8 +j $31 +.end memint +.globl regchar +.text +.align 2 +.ent regchar +regchar: +.frame $sp,8,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-8 +.mask 0x40800000,-4 +sw $23,0($sp) +sw $30,4($sp) +move $24,$23 +la $23,1($24) +lb $30,($24) +la $24,1($23) +move $23,$24 +lb $30,($24) +move $24,$23 +la $23,-1($24) +lb $30,($24) +la $24,-1($23) +move $23,$24 +lb $30,($24) +move $2,$0 +L.4: +lw $23,0($sp) +lw $30,4($sp) +addu $sp,$sp,8 +j $31 +.end regchar +.globl regint +.text +.align 2 +.ent regint +regint: +.frame $sp,8,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-8 +.mask 0x40800000,-4 +sw $23,0($sp) +sw $30,4($sp) +move $24,$23 +la $23,4($24) +lw $30,($24) +la $24,4($23) +move $23,$24 +lw $30,($24) +move $24,$23 +la $23,-4($24) +lw $30,($24) +la $24,-4($23) +move $23,$24 +lw $30,($24) +move $2,$0 +L.5: +lw $23,0($sp) +lw $30,4($sp) +addu $sp,$sp,8 +j $31 +.end regint diff --git a/code/tools/lcc/mips/irix/tst/init.1bk b/code/tools/lcc/mips/irix/tst/init.1bk new file mode 100644 index 0000000..77aff09 --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/init.1bk @@ -0,0 +1,16 @@ + 1 2 3 4 + 5 6 + 7 +if +for +else +while +1 2 3 if +4 5 0 for +6 7 8 else +9 10 11 while +1 2 3 if +4 5 0 for +6 7 8 else +9 10 11 while +0 0 0 diff --git a/code/tools/lcc/mips/irix/tst/init.2bk b/code/tools/lcc/mips/irix/tst/init.2bk new file mode 100644 index 0000000..aafe415 --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/init.2bk @@ -0,0 +1,3 @@ +tst/init.c:36: warning: missing return value +tst/init.c:49: warning: missing return value +tst/init.c:59: warning: missing return value diff --git a/code/tools/lcc/mips/irix/tst/init.sbk b/code/tools/lcc/mips/irix/tst/init.sbk new file mode 100644 index 0000000..128feb3 --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/init.sbk @@ -0,0 +1,325 @@ +.set reorder +.globl words +.data +.align 2 +words: +.word 0x1 +.word 0x2 +.word 0x3 +.byte 105 +.byte 102 +.byte 0 +.space 3 +.space 2 +.word 0x4 +.word 0x5 +.space 4 +.byte 102 +.byte 111 +.byte 114 +.space 3 +.space 2 +.word 0x6 +.word 0x7 +.word 0x8 +.byte 101 +.byte 108 +.byte 115 +.byte 101 +.byte 0 +.space 1 +.space 2 +.word 0x9 +.word 0xa +.word 0xb +.byte 119 +.byte 104 +.byte 105 +.byte 108 +.byte 101 +.space 1 +.space 2 +.word 0x0 +.space 8 +.space 8 +.globl wordlist +.sdata +.align 2 +wordlist: +.word words +.globl x +.data +.align 2 +x: +.word 0x1 +.word 0x2 +.word 0x3 +.word 0x4 +.word 0x0 +.word 0x5 +.word 0x6 +.space 12 +.word 0x7 +.space 16 +.globl y +.data +.align 2 +y: +.word x +.word x+20 +.word x+40 +.word 0x0 +.globl main +.text +.text +.align 2 +.ent main +main: +.frame $sp,32,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-32 +.mask 0xc2800000,-4 +sw $23,16($sp) +.cprestore 20 +sw $30,24($sp) +sw $31,28($sp) +move $23,$0 +b L.8 +L.5: +move $30,$0 +b L.12 +L.9: +la $4,L.13 +sll $24,$30,2 +sll $15,$23,2 +lw $15,y($15) +addu $24,$24,$15 +lw $5,($24) +jal printf +L.10: +la $30,1($30) +L.12: +sll $24,$30,2 +sll $15,$23,2 +lw $15,y($15) +addu $24,$24,$15 +lw $24,($24) +bne $24,$0,L.9 +la $4,L.14 +jal printf +L.6: +la $23,1($23) +L.8: +sll $24,$23,2 +lw $24,y($24) +bne $24,$0,L.5 +jal f +lw $4,wordlist +jal g +move $2,$0 +L.4: +lw $23,16($sp) +lw $25,20($sp) +lw $30,24($sp) +lw $31,28($sp) +addu $sp,$sp,32 +j $31 +.end main +.data +.align 2 +L.16: +.word L.17 +.word L.18 +.word L.19 +.word L.20 +.word 0x0 +.globl f +.text +.text +.align 2 +.ent f +f: +.frame $sp,32,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-32 +.mask 0xc2000000,-8 +.cprestore 16 +sw $30,20($sp) +sw $31,24($sp) +la $30,L.16 +b L.24 +L.21: +la $4,L.25 +lw $5,($30) +jal printf +L.22: +la $30,4($30) +L.24: +lw $24,($30) +bne $24,$0,L.21 +move $2,$0 +L.15: +lw $25,16($sp) +lw $30,20($sp) +lw $31,24($sp) +addu $sp,$sp,32 +j $31 +.end f +.globl g +.text +.align 2 +.ent g +g: +.frame $sp,32,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-32 +.mask 0xc2800000,-4 +sw $23,16($sp) +.cprestore 20 +sw $30,24($sp) +sw $31,28($sp) +move $30,$4 +b L.30 +L.27: +move $23,$0 +b L.34 +L.31: +la $4,L.35 +sll $24,$23,2 +addu $24,$24,$30 +lw $5,($24) +jal printf +L.32: +la $23,1($23) +L.34: +move $24,$23 +la $15,3 +bltu $24,$15,L.31 +la $4,L.25 +la $5,12($30) +jal printf +L.28: +la $30,20($30) +L.30: +lw $24,($30) +bne $24,$0,L.27 +jal h +move $2,$0 +L.26: +lw $23,16($sp) +lw $25,20($sp) +lw $30,24($sp) +lw $31,28($sp) +addu $sp,$sp,32 +j $31 +.end g +.globl h +.text +.align 2 +.ent h +h: +.frame $sp,32,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-32 +.mask 0xc2000000,-4 +.cprestore 20 +sw $30,24($sp) +sw $31,28($sp) +move $30,$0 +b L.40 +L.37: +la $4,L.41 +la $24,20 +mul $24,$24,$30 +lw $5,words($24) +lw $6,words+4($24) +lw $7,words+8($24) +la $24,words+12($24) +sw $24,16($sp) +jal printf +L.38: +la $30,1($30) +L.40: +move $24,$30 +la $15,5 +bltu $24,$15,L.37 +move $2,$0 +L.36: +lw $25,20($sp) +lw $30,24($sp) +lw $31,28($sp) +addu $sp,$sp,32 +j $31 +.end h +.rdata +.align 0 +L.41: +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 0 +L.35: +.byte 37 +.byte 100 +.byte 32 +.byte 0 +.align 0 +L.25: +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 0 +L.20: +.byte 119 +.byte 104 +.byte 105 +.byte 108 +.byte 101 +.byte 0 +.align 0 +L.19: +.byte 101 +.byte 108 +.byte 115 +.byte 101 +.byte 0 +.align 0 +L.18: +.byte 102 +.byte 111 +.byte 114 +.byte 0 +.align 0 +L.17: +.byte 105 +.byte 102 +.byte 0 +.align 0 +L.14: +.byte 10 +.byte 0 +.align 0 +L.13: +.byte 32 +.byte 37 +.byte 100 +.byte 0 diff --git a/code/tools/lcc/mips/irix/tst/limits.1bk b/code/tools/lcc/mips/irix/tst/limits.1bk new file mode 100644 index 0000000..9beee8c --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/limits.1bk @@ -0,0 +1,14 @@ +UCHAR_MAX: 000000ff=255 +USHRT_MAX: 0000ffff=65535 +UINT_MAX: ffffffff=-1 +ULONG_MAX: ffffffff=-1 +CHAR_MAX: 0000007f=127 +SCHAR_MAX: 0000007f=127 +SHRT_MAX: 00007fff=32767 +INT_MAX: 7fffffff=2147483647 +LONG_MAX: 7fffffff=2147483647 +CHAR_MIN: ffffff80=-128 +SCHAR_MIN: ffffff80=-128 +SHRT_MIN: ffff8000=-32768 +INT_MIN: 80000000=-2147483648 +LONG_MIN: 80000000=-2147483648 diff --git a/code/tools/lcc/mips/irix/tst/limits.2bk b/code/tools/lcc/mips/irix/tst/limits.2bk new file mode 100644 index 0000000..e69de29 diff --git a/code/tools/lcc/mips/irix/tst/limits.sbk b/code/tools/lcc/mips/irix/tst/limits.sbk new file mode 100644 index 0000000..2392b05 --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/limits.sbk @@ -0,0 +1,396 @@ +.set reorder +.globl main +.text +.text +.align 2 +.ent main +main: +.frame $sp,24,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-24 +.mask 0x82000000,-4 +.cprestore 16 +sw $31,20($sp) +la $4,L.2 +la $24,255 +move $5,$24 +move $6,$24 +jal printf +la $4,L.3 +la $24,65535 +move $5,$24 +move $6,$24 +jal printf +la $4,L.4 +la $24,0xffffffff +move $5,$24 +move $6,$24 +jal printf +la $4,L.5 +la $24,0xffffffff +move $5,$24 +move $6,$24 +jal printf +la $4,L.6 +la $24,127 +move $5,$24 +move $6,$24 +jal printf +la $4,L.7 +la $24,127 +move $5,$24 +move $6,$24 +jal printf +la $4,L.8 +la $24,32767 +move $5,$24 +move $6,$24 +jal printf +la $4,L.9 +la $24,2147483647 +move $5,$24 +move $6,$24 +jal printf +la $4,L.10 +la $24,2147483647 +move $5,$24 +move $6,$24 +jal printf +la $4,L.11 +la $24,-128 +move $5,$24 +move $6,$24 +jal printf +la $4,L.12 +la $24,-128 +move $5,$24 +move $6,$24 +jal printf +la $4,L.13 +la $24,-32768 +move $5,$24 +move $6,$24 +jal printf +la $4,L.14 +la $24,-2147483648 +move $5,$24 +move $6,$24 +jal printf +la $4,L.15 +la $24,-2147483648 +move $5,$24 +move $6,$24 +jal printf +move $2,$0 +L.1: +lw $25,16($sp) +lw $31,20($sp) +addu $sp,$sp,24 +j $31 +.end main +.rdata +.align 0 +L.15: +.byte 76 +.byte 79 +.byte 78 +.byte 71 +.byte 95 +.byte 77 +.byte 73 +.byte 78 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 108 +.byte 120 +.byte 61 +.byte 37 +.byte 108 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.14: +.byte 73 +.byte 78 +.byte 84 +.byte 95 +.byte 77 +.byte 73 +.byte 78 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.13: +.byte 83 +.byte 72 +.byte 82 +.byte 84 +.byte 95 +.byte 77 +.byte 73 +.byte 78 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.12: +.byte 83 +.byte 67 +.byte 72 +.byte 65 +.byte 82 +.byte 95 +.byte 77 +.byte 73 +.byte 78 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.11: +.byte 67 +.byte 72 +.byte 65 +.byte 82 +.byte 95 +.byte 77 +.byte 73 +.byte 78 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.10: +.byte 76 +.byte 79 +.byte 78 +.byte 71 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 108 +.byte 120 +.byte 61 +.byte 37 +.byte 108 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.9: +.byte 73 +.byte 78 +.byte 84 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.8: +.byte 83 +.byte 72 +.byte 82 +.byte 84 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.7: +.byte 83 +.byte 67 +.byte 72 +.byte 65 +.byte 82 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.6: +.byte 67 +.byte 72 +.byte 65 +.byte 82 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.5: +.byte 85 +.byte 76 +.byte 79 +.byte 78 +.byte 71 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 108 +.byte 120 +.byte 61 +.byte 37 +.byte 108 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.4: +.byte 85 +.byte 73 +.byte 78 +.byte 84 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.3: +.byte 85 +.byte 83 +.byte 72 +.byte 82 +.byte 84 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.2: +.byte 85 +.byte 67 +.byte 72 +.byte 65 +.byte 82 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 diff --git a/code/tools/lcc/mips/irix/tst/paranoia.1bk b/code/tools/lcc/mips/irix/tst/paranoia.1bk new file mode 100644 index 0000000..158f649 --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/paranoia.1bk @@ -0,0 +1,178 @@ +Lest this program stop prematurely, i.e. before displaying + + `END OF TEST', + +try to persuade the computer NOT to terminate execution when an +error like Over/Underflow or Division by Zero occurs, but rather +to persevere with a surrogate value after, perhaps, displaying some +warning. If persuasion avails naught, don't despair but run this +program anyway to see how many milestones it passes, and then +amend it to make further progress. + +Answer questions with Y, y, N or n (unless otherwise indicated). + + +Diagnosis resumes after milestone Number 0 Page: 1 + +Users are invited to help debug and augment this program so it will +cope with unanticipated and newly uncovered arithmetic pathologies. + +Please send suggestions and interesting results to + Richard Karpinski + Computer Center U-76 + University of California + San Francisco, CA 94143-0704, USA + +In doing so, please include the following information: + Precision: double; + Version: 10 February 1989; + Computer: + + Compiler: + + Optimization level: + + Other relevant compiler options: + +Diagnosis resumes after milestone Number 1 Page: 2 + +Running this program should reveal these characteristics: + Radix = 1, 2, 4, 8, 10, 16, 100, 256 ... + Precision = number of significant digits carried. + U2 = Radix/Radix^Precision = One Ulp + (OneUlpnit in the Last Place) of 1.000xxx . + U1 = 1/Radix^Precision = One Ulp of numbers a little less than 1.0 . + Adequacy of guard digits for Mult., Div. and Subt. + Whether arithmetic is chopped, correctly rounded, or something else + for Mult., Div., Add/Subt. and Sqrt. + Whether a Sticky Bit used correctly for rounding. + UnderflowThreshold = an underflow threshold. + E0 and PseudoZero tell whether underflow is abrupt, gradual, or fuzzy. + V = an overflow threshold, roughly. + V0 tells, roughly, whether Infinity is represented. + Comparisions are checked for consistency with subtraction + and for contamination with pseudo-zeros. + Sqrt is tested. Y^X is not tested. + Extra-precise subexpressions are revealed but NOT YET tested. + Decimal-Binary conversion is NOT YET tested for accuracy. + +Diagnosis resumes after milestone Number 2 Page: 3 + +The program attempts to discriminate among + FLAWs, like lack of a sticky bit, + Serious DEFECTs, like lack of a guard digit, and + FAILUREs, like 2+2 == 5 . +Failures may confound subsequent diagnoses. + +The diagnostic capabilities of this program go beyond an earlier +program called `MACHAR', which can be found at the end of the +book `Software Manual for the Elementary Functions' (1980) by +W. J. Cody and W. Waite. Although both programs try to discover +the Radix, Precision and range (over/underflow thresholds) +of the arithmetic, this program tries to cope with a wider variety +of pathologies, and to say how well the arithmetic is implemented. + +The program is based upon a conventional radix representation for +floating-point numbers, but also allows logarithmic encoding +as used by certain early WANG machines. + +BASIC version of this program (C) 1983 by Prof. W. M. Kahan; +see source comments for more history. + +Diagnosis resumes after milestone Number 3 Page: 4 + +Program is now RUNNING tests on small integers: +-1, 0, 1/2, 1, 2, 3, 4, 5, 9, 27, 32 & 240 are O.K. + +Searching for Radix and Precision. +Radix = 2.000000 . +Closest relative separation found is U1 = 1.1102230e-16 . + +Recalculating radix and precision + confirms closest relative separation U1 . +Radix confirmed. +The number of significant digits of the Radix is 53.000000 . + +Diagnosis resumes after milestone Number 30 Page: 5 + +Subtraction appears to be normalized, as it should be. +Checking for guard digit in *, /, and -. + *, /, and - appear to have guard digits, as they should. + +Diagnosis resumes after milestone Number 40 Page: 6 + +Checking rounding on multiply, divide and add/subtract. +Multiplication appears to round correctly. +Division appears to round correctly. +Addition/Subtraction appears to round correctly. +Checking for sticky bit. +Sticky bit apparently used correctly. + +Does Multiplication commute? Testing on 20 random pairs. + No failures found in 20 integer pairs. + +Running test of square root(x). +Testing if sqrt(X * X) == X for 20 Integers X. +Test for sqrt monotonicity. +sqrt has passed a test for Monotonicity. +Testing whether sqrt is rounded or chopped. +Square root appears to be correctly rounded. + +Diagnosis resumes after milestone Number 90 Page: 7 + +Testing powers Z^i for small Integers Z and i. +... no discrepancis found. + +Seeking Underflow thresholds UfThold and E0. +Smallest strictly positive number found is E0 = 4.94066e-324 . +Since comparison denies Z = 0, evaluating (Z + Z) / Z should be safe. +What the machine gets for (Z + Z) / Z is 2.00000000000000000e+00 . +This is O.K., provided Over/Underflow has NOT just been signaled. +Underflow is gradual; it incurs Absolute Error = +(roundoff in UfThold) < E0. +The Underflow threshold is 2.22507385850720190e-308, below which +calculation may suffer larger Relative error than merely roundoff. +Since underflow occurs below the threshold +UfThold = (2.00000000000000000e+00) ^ (-1.02200000000000000e+03) +only underflow should afflict the expression + (2.00000000000000000e+00) ^ (-1.02200000000000000e+03); +actually calculating yields: 0.00000000000000000e+00 . +This computed value is O.K. + +Testing X^((X + 1) / (X - 1)) vs. exp(2) = 7.38905609893065220e+00 as X -> 1. +Accuracy seems adequate. +Testing powers Z^Q at four nearly extreme values. + ... no discrepancies found. + + +Diagnosis resumes after milestone Number 160 Page: 8 + +Searching for Overflow threshold: +This may generate an error. +Can `Z = -Y' overflow? +Trying it on Y = -inf . +Seems O.K. +Overflow threshold is V = 1.79769313486231570e+308 . +Overflow saturates at V0 = inf . +No Overflow should be signaled for V * 1 = 1.79769313486231570e+308 + nor for V / 1 = 1.79769313486231570e+308 . +Any overflow signal separating this * from the one +above is a DEFECT. + + +Diagnosis resumes after milestone Number 190 Page: 9 + + +What message and/or values does Division by Zero produce? + Trying to compute 1 / 0 produces ... inf . + + Trying to compute 0 / 0 produces ... nan . + +Diagnosis resumes after milestone Number 220 Page: 10 + + + +No failures, defects nor flaws have been discovered. +Rounding appears to conform to the proposed IEEE standard P754. +The arithmetic diagnosed appears to be Excellent! +END OF TEST. diff --git a/code/tools/lcc/mips/irix/tst/paranoia.2bk b/code/tools/lcc/mips/irix/tst/paranoia.2bk new file mode 100644 index 0000000..2718174 --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/paranoia.2bk @@ -0,0 +1,16 @@ +tst/paranoia.c:1867: warning: missing return value +tst/paranoia.c:1874: warning: missing return value +tst/paranoia.c:1884: warning: missing return value +tst/paranoia.c:1924: warning: missing return value +tst/paranoia.c:1939: warning: missing return value +tst/paranoia.c:1956: warning: missing return value +tst/paranoia.c:1975: warning: missing return value +tst/paranoia.c:1988: warning: missing return value +tst/paranoia.c:1995: warning: missing return value +tst/paranoia.c:2055: warning: missing return value +tst/paranoia.c:2062: warning: missing return value +tst/paranoia.c:2070: warning: missing return value +tst/paranoia.c:2087: warning: missing return value +tst/paranoia.c:2115: warning: missing return value +tst/paranoia.c:2144: warning: missing return value +tst/paranoia.c:2173: warning: missing return value diff --git a/code/tools/lcc/mips/irix/tst/paranoia.sbk b/code/tools/lcc/mips/irix/tst/paranoia.sbk new file mode 100644 index 0000000..6593203 --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/paranoia.sbk @@ -0,0 +1,18657 @@ +.set reorder +.globl Zero +.sdata +.align 3 +Zero: +.word 0x0 +.word 0x0 +.globl Half +.sdata +.align 3 +Half: +.word 0x3fe00000 +.word 0x0 +.globl One +.sdata +.align 3 +One: +.word 0x3ff00000 +.word 0x0 +.globl Two +.sdata +.align 3 +Two: +.word 0x40000000 +.word 0x0 +.globl Three +.sdata +.align 3 +Three: +.word 0x40080000 +.word 0x0 +.globl Four +.sdata +.align 3 +Four: +.word 0x40100000 +.word 0x0 +.globl Five +.sdata +.align 3 +Five: +.word 0x40140000 +.word 0x0 +.globl Eight +.sdata +.align 3 +Eight: +.word 0x40200000 +.word 0x0 +.globl Nine +.sdata +.align 3 +Nine: +.word 0x40220000 +.word 0x0 +.globl TwentySeven +.sdata +.align 3 +TwentySeven: +.word 0x403b0000 +.word 0x0 +.globl ThirtyTwo +.sdata +.align 3 +ThirtyTwo: +.word 0x40400000 +.word 0x0 +.globl TwoForty +.sdata +.align 3 +TwoForty: +.word 0x406e0000 +.word 0x0 +.globl MinusOne +.sdata +.align 3 +MinusOne: +.word 0xbff00000 +.word 0x0 +.globl OneAndHalf +.sdata +.align 3 +OneAndHalf: +.word 0x3ff80000 +.word 0x0 +.globl NoTrials +.sdata +.align 2 +NoTrials: +.word 0x14 +.globl sigfpe +.text +.text +.align 2 +.ent sigfpe +sigfpe: +.frame $sp,24,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-24 +.mask 0x82000000,-4 +.cprestore 16 +sw $31,20($sp) +sw $4,24($sp) +lw $24,fpecount +la $24,1($24) +sw $24,fpecount +la $4,L.2 +jal printf +la $4,_iob+16 +jal fflush +lw $24,sigsave +beq $24,$0,L.4 +la $4,8 +lw $5,sigsave +jal signal +sw $0,sigsave +la $4,ovfl_buf +la $5,1 +jal longjmp +L.4: +jal abort +L.1: +lw $25,16($sp) +lw $31,20($sp) +addu $sp,$sp,24 +j $31 +.end sigfpe +.data +.align 2 +L.757: +.word L.758 +.word L.759 +.word L.760 +.word L.761 +.globl main +.text +.text +.align 2 +.ent main +main: +.frame $sp,240,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-240 +.mask 0xc2ff0000,-168 +sw $16,32($sp) +sw $17,36($sp) +sw $18,40($sp) +sw $19,44($sp) +sw $20,48($sp) +sw $21,52($sp) +sw $22,56($sp) +sw $23,60($sp) +.cprestore 64 +sw $30,68($sp) +sw $31,72($sp) +l.d $f18,L.7 +s.d $f18,Zero +l.d $f18,L.8 +s.d $f18,One +l.d $f18,One +add.d $f16,$f18,$f18 +s.d $f16,Two +l.d $f16,Two +add.d $f10,$f16,$f18 +s.d $f10,Three +l.d $f10,Three +add.d $f8,$f10,$f18 +s.d $f8,Four +l.d $f8,Four +add.d $f6,$f8,$f18 +s.d $f6,Five +add.d $f6,$f8,$f8 +s.d $f6,Eight +mul.d $f6,$f10,$f10 +s.d $f6,Nine +l.d $f6,Nine +mul.d $f6,$f6,$f10 +s.d $f6,TwentySeven +l.d $f6,Eight +mul.d $f6,$f8,$f6 +s.d $f6,ThirtyTwo +l.d $f6,Five +mul.d $f6,$f8,$f6 +mul.d $f10,$f6,$f10 +mul.d $f10,$f10,$f8 +s.d $f10,TwoForty +neg.d $f10,$f18 +s.d $f10,MinusOne +div.d $f16,$f18,$f16 +s.d $f16,Half +l.d $f16,Half +add.d $f18,$f18,$f16 +s.d $f18,OneAndHalf +sw $0,ErrCnt +sw $0,ErrCnt+4 +sw $0,ErrCnt+8 +sw $0,ErrCnt+12 +la $24,1 +sw $24,PageNo +sw $0,Milestone +la $4,8 +la $5,sigfpe +jal signal +jal Instructions +jal Pause +jal Heading +jal Pause +jal Characteristics +jal Pause +jal History +jal Pause +la $24,7 +sw $24,Milestone +la $4,L.12 +jal printf +move $4,$0 +l.d $f18,Zero +add.d $f16,$f18,$f18 +c.eq.d $f16,$f18; bc1f L.15 +l.d $f16,One +sub.d $f10,$f16,$f16 +c.eq.d $f10,$f18; bc1f L.15 +c.le.d $f16,$f18; bc1t L.15 +add.d $f18,$f16,$f16 +l.d $f16,Two +c.eq.d $f18,$f16; bc1f L.15 +la $30,1 +b L.16 +L.15: +move $30,$0 +L.16: +move $5,$30 +la $6,L.14 +jal TstCond +l.d $f18,Zero +neg.d $f18,$f18 +s.d $f18,Z +l.d $f18,Z +l.d $f16,L.7 +c.eq.d $f18,$f16; bc1t L.17 +lw $24,ErrCnt +la $24,1($24) +sw $24,ErrCnt +la $4,L.19 +jal printf +l.d $f18,L.20 +s.d $f18,U1 +l.d $f18,L.8 +s.d $f18,Radix +jal TstPtUf +L.17: +move $4,$0 +l.d $f18,Three +l.d $f16,Two +l.d $f10,One +add.d $f8,$f16,$f10 +c.eq.d $f18,$f8; bc1f L.23 +l.d $f8,Four +add.d $f6,$f18,$f10 +c.eq.d $f8,$f6; bc1f L.23 +l.d $f6,Zero +neg.d $f4,$f16 +mul.d $f16,$f16,$f4 +add.d $f16,$f8,$f16 +c.eq.d $f16,$f6; bc1f L.23 +sub.d $f18,$f8,$f18 +sub.d $f18,$f18,$f10 +c.eq.d $f18,$f6; bc1f L.23 +la $23,1 +b L.24 +L.23: +move $23,$0 +L.24: +move $5,$23 +la $6,L.22 +jal TstCond +l.d $f18,MinusOne +s.d $f18,-8+240($sp) +l.d $f16,One +l.d $f10,L.7 +sub.d $f10,$f10,$f16 +c.eq.d $f18,$f10; bc1f L.27 +l.d $f10,Zero +add.d $f8,$f18,$f16 +c.eq.d $f8,$f10; bc1f L.27 +add.d $f8,$f16,$f18 +c.eq.d $f8,$f10; bc1f L.27 +mov.d $f12,$f16 +jal fabs +l.d $f16,Zero +l.d $f10,-8+240($sp) +add.d $f18,$f10,$f0 +c.eq.d $f18,$f16; bc1f L.27 +l.d $f18,MinusOne +mul.d $f10,$f18,$f18 +add.d $f18,$f18,$f10 +c.eq.d $f18,$f16; bc1f L.27 +la $22,1 +b L.28 +L.27: +move $22,$0 +L.28: +move $4,$0 +move $5,$22 +la $6,L.26 +jal TstCond +move $4,$0 +l.d $f18,Half +l.d $f16,MinusOne +add.d $f16,$f18,$f16 +add.d $f18,$f16,$f18 +l.d $f16,Zero +c.eq.d $f18,$f16; bc1f L.31 +la $21,1 +b L.32 +L.31: +move $21,$0 +L.32: +move $5,$21 +la $6,L.30 +jal TstCond +la $24,10 +sw $24,Milestone +move $4,$0 +l.d $f18,Nine +l.d $f16,Three +mul.d $f10,$f16,$f16 +c.eq.d $f18,$f10; bc1f L.35 +l.d $f10,TwentySeven +mul.d $f18,$f18,$f16 +c.eq.d $f10,$f18; bc1f L.35 +l.d $f18,Eight +l.d $f16,Four +add.d $f8,$f16,$f16 +c.eq.d $f18,$f8; bc1f L.35 +l.d $f8,ThirtyTwo +mul.d $f18,$f18,$f16 +c.eq.d $f8,$f18; bc1f L.35 +sub.d $f18,$f8,$f10 +sub.d $f18,$f18,$f16 +l.d $f16,One +sub.d $f18,$f18,$f16 +l.d $f16,Zero +c.eq.d $f18,$f16; bc1f L.35 +la $20,1 +b L.36 +L.35: +move $20,$0 +L.36: +move $5,$20 +la $6,L.34 +jal TstCond +move $4,$0 +l.d $f18,Five +l.d $f16,Four +l.d $f10,One +add.d $f10,$f16,$f10 +c.eq.d $f18,$f10; bc1f L.39 +l.d $f10,TwoForty +l.d $f8,Three +s.d $f8,-16+240($sp) +mul.d $f6,$f16,$f18 +mul.d $f6,$f6,$f8 +mul.d $f6,$f6,$f16 +c.eq.d $f10,$f6; bc1f L.39 +l.d $f6,Zero +div.d $f4,$f10,$f8 +mul.d $f8,$f16,$f16 +mul.d $f8,$f8,$f18 +sub.d $f8,$f4,$f8 +c.eq.d $f8,$f6; bc1f L.39 +div.d $f8,$f10,$f16 +l.d $f4,-16+240($sp) +mul.d $f4,$f18,$f4 +mul.d $f4,$f4,$f16 +sub.d $f8,$f8,$f4 +c.eq.d $f8,$f6; bc1f L.39 +div.d $f18,$f10,$f18 +l.d $f10,-16+240($sp) +mul.d $f10,$f16,$f10 +mul.d $f16,$f10,$f16 +sub.d $f18,$f18,$f16 +c.eq.d $f18,$f6; bc1f L.39 +la $19,1 +b L.40 +L.39: +move $19,$0 +L.40: +move $5,$19 +la $6,L.38 +jal TstCond +lw $24,ErrCnt +bne $24,$0,L.41 +la $4,L.43 +jal printf +la $4,L.44 +jal printf +L.41: +la $4,L.45 +jal printf +l.d $f18,One +s.d $f18,W +L.46: +l.d $f18,W +add.d $f18,$f18,$f18 +s.d $f18,W +l.d $f18,W +l.d $f16,One +add.d $f10,$f18,$f16 +s.d $f10,Y +l.d $f10,Y +sub.d $f18,$f10,$f18 +s.d $f18,Z +l.d $f18,Z +sub.d $f18,$f18,$f16 +s.d $f18,Y +L.47: +l.d $f12,Y +jal fabs +l.d $f16,MinusOne +add.d $f18,$f16,$f0 +l.d $f16,Zero +c.lt.d $f18,$f16; bc1t L.46 +l.d $f18,Zero +s.d $f18,Precision +l.d $f18,One +s.d $f18,Y +L.49: +l.d $f18,W +l.d $f16,Y +add.d $f10,$f18,$f16 +s.d $f10,Radix +add.d $f16,$f16,$f16 +s.d $f16,Y +l.d $f16,Radix +sub.d $f18,$f16,$f18 +s.d $f18,Radix +L.50: +l.d $f18,Radix +l.d $f16,Zero +c.eq.d $f18,$f16; bc1t L.49 +l.d $f18,Radix +l.d $f16,Two +c.lt.d $f18,$f16; bc1f L.52 +l.d $f18,One +s.d $f18,Radix +L.52: +la $4,L.54 +l.d $f18,Radix +mfc1.d $6,$f18 +jal printf +l.d $f18,Radix +l.d $f16,L.8 +c.eq.d $f18,$f16; bc1t L.55 +l.d $f18,One +s.d $f18,W +L.57: +l.d $f18,One +l.d $f16,Precision +add.d $f16,$f16,$f18 +s.d $f16,Precision +l.d $f16,W +l.d $f10,Radix +mul.d $f16,$f16,$f10 +s.d $f16,W +l.d $f16,W +add.d $f18,$f16,$f18 +s.d $f18,Y +L.58: +l.d $f18,Y +l.d $f16,W +sub.d $f18,$f18,$f16 +l.d $f16,One +c.eq.d $f18,$f16; bc1t L.57 +L.55: +l.d $f18,One +l.d $f16,W +div.d $f18,$f18,$f16 +s.d $f18,U1 +l.d $f18,U1 +l.d $f16,Radix +mul.d $f16,$f16,$f18 +s.d $f16,U2 +la $4,L.60 +mfc1.d $6,$f18 +jal printf +la $4,L.61 +jal printf +l.d $f18,Radix +s.d $f18,E0 +l.d $f18,U1 +s.d $f18,E1 +l.d $f18,U2 +s.d $f18,E9 +l.d $f18,Precision +s.d $f18,E3 +l.d $f18,Four +l.d $f16,Three +div.d $f18,$f18,$f16 +s.d $f18,X +l.d $f18,X +l.d $f16,One +sub.d $f18,$f18,$f16 +s.d $f18,Third +l.d $f18,Third +l.d $f16,Half +sub.d $f16,$f16,$f18 +s.d $f16,F6 +l.d $f16,F6 +add.d $f16,$f16,$f16 +s.d $f16,X +l.d $f16,X +sub.d $f12,$f16,$f18 +jal fabs +s.d $f0,X +l.d $f18,X +l.d $f16,U2 +c.lt.d $f18,$f16; bc1f L.62 +l.d $f18,U2 +s.d $f18,X +L.62: +L.64: +l.d $f18,X +s.d $f18,U2 +l.d $f18,U2 +l.d $f16,Half +mul.d $f16,$f16,$f18 +l.d $f10,ThirtyTwo +mul.d $f10,$f10,$f18 +mul.d $f18,$f10,$f18 +add.d $f18,$f16,$f18 +s.d $f18,Y +l.d $f18,One +l.d $f16,Y +add.d $f16,$f18,$f16 +s.d $f16,Y +l.d $f16,Y +sub.d $f18,$f16,$f18 +s.d $f18,X +L.65: +l.d $f18,X +l.d $f16,U2 +c.le.d $f16,$f18; bc1t L.67 +l.d $f16,Zero +c.le.d $f18,$f16; bc1f L.64 +L.67: +l.d $f18,Two +l.d $f16,Three +div.d $f18,$f18,$f16 +s.d $f18,X +l.d $f18,Half +l.d $f16,X +sub.d $f16,$f16,$f18 +s.d $f16,F6 +l.d $f16,F6 +add.d $f10,$f16,$f16 +s.d $f10,Third +l.d $f10,Third +sub.d $f18,$f10,$f18 +s.d $f18,X +l.d $f18,X +add.d $f12,$f18,$f16 +jal fabs +s.d $f0,X +l.d $f18,X +l.d $f16,U1 +c.lt.d $f18,$f16; bc1f L.68 +l.d $f18,U1 +s.d $f18,X +L.68: +L.70: +l.d $f18,X +s.d $f18,U1 +l.d $f18,Half +l.d $f16,U1 +mul.d $f10,$f18,$f16 +l.d $f8,ThirtyTwo +mul.d $f8,$f8,$f16 +mul.d $f16,$f8,$f16 +add.d $f16,$f10,$f16 +s.d $f16,Y +l.d $f16,Y +sub.d $f16,$f18,$f16 +s.d $f16,Y +l.d $f16,Y +add.d $f16,$f18,$f16 +s.d $f16,X +l.d $f16,X +sub.d $f16,$f18,$f16 +s.d $f16,Y +l.d $f16,Y +add.d $f18,$f18,$f16 +s.d $f18,X +L.71: +l.d $f18,X +l.d $f16,U1 +c.le.d $f16,$f18; bc1t L.73 +l.d $f16,Zero +c.le.d $f18,$f16; bc1f L.70 +L.73: +l.d $f18,U1 +l.d $f16,E1 +c.eq.d $f18,$f16; bc1f L.74 +la $4,L.76 +jal printf +b L.75 +L.74: +la $4,L.77 +l.d $f18,U1 +mfc1.d $6,$f18 +jal printf +L.75: +l.d $f18,U1 +l.d $f16,One +div.d $f16,$f16,$f18 +s.d $f16,W +l.d $f16,Half +sub.d $f10,$f16,$f18 +add.d $f16,$f10,$f16 +s.d $f16,F9 +l.d $f16,U2 +div.d $f18,$f16,$f18 +l.d $f16,L.78 +add.d $f12,$f18,$f16 +jal floor +s.d $f0,Radix +l.d $f18,Radix +l.d $f16,E0 +c.eq.d $f18,$f16; bc1f L.79 +la $4,L.81 +jal printf +b L.80 +L.79: +la $4,L.82 +l.d $f18,Radix +mfc1.d $6,$f18 +jal printf +L.80: +la $4,2 +l.d $f18,Eight +l.d $f16,Radix +add.d $f18,$f18,$f18 +c.le.d $f16,$f18; bc1f L.85 +la $18,1 +b L.86 +L.85: +move $18,$0 +L.86: +move $5,$18 +la $6,L.84 +jal TstCond +la $4,3 +l.d $f18,Radix +l.d $f16,Two +c.eq.d $f18,$f16; bc1t L.92 +l.d $f16,L.93 +c.eq.d $f18,$f16; bc1t L.92 +l.d $f16,One +c.eq.d $f18,$f16; bc1f L.89 +L.92: +la $17,1 +b L.90 +L.89: +move $17,$0 +L.90: +move $5,$17 +la $6,L.88 +jal TstCond +la $24,20 +sw $24,Milestone +move $4,$0 +l.d $f18,Half +l.d $f16,F9 +sub.d $f16,$f16,$f18 +c.lt.d $f16,$f18; bc1f L.96 +la $16,1 +b L.97 +L.96: +move $16,$0 +L.97: +move $5,$16 +la $6,L.95 +jal TstCond +l.d $f18,F9 +s.d $f18,X +la $24,1 +sw $24,I +l.d $f18,Half +l.d $f16,X +sub.d $f16,$f16,$f18 +s.d $f16,Y +l.d $f16,Y +sub.d $f18,$f16,$f18 +s.d $f18,Z +move $4,$0 +l.d $f18,X +l.d $f16,One +c.eq.d $f18,$f16; bc1f L.102 +l.d $f18,Z +l.d $f16,Zero +c.eq.d $f18,$f16; bc1f L.100 +L.102: +la $24,1 +sw $24,-20+240($sp) +b L.101 +L.100: +sw $0,-20+240($sp) +L.101: +lw $5,-20+240($sp) +la $6,L.99 +jal TstCond +l.d $f18,One +l.d $f16,U2 +add.d $f10,$f18,$f16 +s.d $f10,X +sw $0,I +la $24,25 +sw $24,Milestone +l.d $f10,Radix +sub.d $f8,$f10,$f18 +s.d $f8,BMinusU2 +l.d $f8,BMinusU2 +sub.d $f16,$f8,$f16 +add.d $f16,$f16,$f18 +s.d $f16,BMinusU2 +c.eq.d $f10,$f18; bc1t L.103 +l.d $f12,U1 +jal log +mov.d $f18,$f0 +s.d $f18,-32+240($sp) +l.d $f12,Radix +jal log +l.d $f16,TwoForty +neg.d $f16,$f16 +l.d $f10,-32+240($sp) +mul.d $f16,$f16,$f10 +div.d $f18,$f16,$f0 +s.d $f18,X +l.d $f18,Half +l.d $f16,X +add.d $f12,$f18,$f16 +jal floor +s.d $f0,Y +l.d $f18,X +l.d $f16,Y +sub.d $f12,$f18,$f16 +jal fabs +l.d $f16,Four +mul.d $f18,$f0,$f16 +l.d $f16,One +c.lt.d $f18,$f16; bc1f L.105 +l.d $f18,Y +s.d $f18,X +L.105: +l.d $f18,X +l.d $f16,TwoForty +div.d $f18,$f18,$f16 +s.d $f18,Precision +l.d $f18,Half +l.d $f16,Precision +add.d $f12,$f18,$f16 +jal floor +s.d $f0,Y +l.d $f18,Precision +l.d $f16,Y +sub.d $f12,$f18,$f16 +jal fabs +l.d $f16,TwoForty +mul.d $f18,$f0,$f16 +l.d $f16,Half +c.lt.d $f18,$f16; bc1f L.107 +l.d $f18,Y +s.d $f18,Precision +L.107: +L.103: +l.d $f18,Precision +s.d $f18,-32+240($sp) +mov.d $f12,$f18 +jal floor +l.d $f16,-32+240($sp) +c.eq.d $f16,$f0; bc1f L.111 +l.d $f18,Radix +l.d $f16,One +c.eq.d $f18,$f16; bc1f L.109 +L.111: +la $4,L.112 +jal printf +la $4,L.113 +jal printf +L.109: +l.d $f18,Radix +l.d $f16,One +c.eq.d $f18,$f16; bc1f L.114 +la $4,L.116 +jal printf +b L.115 +L.114: +la $4,L.117 +l.d $f18,Precision +mfc1.d $6,$f18 +jal printf +L.115: +la $4,1 +l.d $f18,Nine +l.d $f16,U2 +mul.d $f16,$f16,$f18 +mul.d $f18,$f16,$f18 +l.d $f16,TwoForty +mul.d $f18,$f18,$f16 +l.d $f16,One +c.lt.d $f18,$f16; bc1f L.120 +la $24,1 +sw $24,-36+240($sp) +b L.121 +L.120: +sw $0,-36+240($sp) +L.121: +lw $5,-36+240($sp) +la $6,L.119 +jal TstCond +la $24,30 +sw $24,Milestone +l.d $f18,Four +l.d $f16,Three +l.d $f10,One +div.d $f8,$f10,$f18 +div.d $f18,$f18,$f16 +sub.d $f18,$f18,$f10 +sub.d $f18,$f18,$f8 +mul.d $f18,$f18,$f16 +sub.d $f12,$f18,$f8 +jal fabs +s.d $f0,X +L.122: +l.d $f18,X +s.d $f18,Z2 +l.d $f18,One +l.d $f16,Z2 +l.d $f10,Half +mul.d $f10,$f10,$f16 +l.d $f8,ThirtyTwo +mul.d $f8,$f8,$f16 +mul.d $f16,$f8,$f16 +add.d $f16,$f10,$f16 +add.d $f16,$f18,$f16 +sub.d $f18,$f16,$f18 +s.d $f18,X +L.123: +l.d $f18,X +l.d $f16,Z2 +c.le.d $f16,$f18; bc1t L.125 +l.d $f16,Zero +c.le.d $f18,$f16; bc1f L.122 +L.125: +l.d $f18,Three +l.d $f16,Four +div.d $f10,$f18,$f16 +l.d $f8,Two +div.d $f8,$f8,$f18 +sub.d $f10,$f10,$f8 +mul.d $f18,$f10,$f18 +l.d $f10,One +div.d $f16,$f10,$f16 +sub.d $f12,$f18,$f16 +jal fabs +s.d $f0,Z +s.d $f0,Y +s.d $f0,X +L.126: +l.d $f18,Z +s.d $f18,Z1 +l.d $f18,One +l.d $f16,Two +div.d $f18,$f18,$f16 +l.d $f16,Z1 +l.d $f10,Half +mul.d $f10,$f10,$f16 +l.d $f8,ThirtyTwo +mul.d $f8,$f8,$f16 +mul.d $f16,$f8,$f16 +add.d $f16,$f10,$f16 +sub.d $f16,$f18,$f16 +add.d $f16,$f16,$f18 +sub.d $f16,$f18,$f16 +add.d $f18,$f16,$f18 +s.d $f18,Z +L.127: +l.d $f18,Z +l.d $f16,Z1 +c.le.d $f16,$f18; bc1t L.129 +l.d $f16,Zero +c.le.d $f18,$f16; bc1f L.126 +L.129: +L.130: +L.133: +l.d $f18,Y +s.d $f18,Y1 +l.d $f18,Half +l.d $f16,Y1 +mul.d $f10,$f18,$f16 +l.d $f8,ThirtyTwo +mul.d $f8,$f8,$f16 +mul.d $f16,$f8,$f16 +add.d $f16,$f10,$f16 +sub.d $f16,$f18,$f16 +add.d $f16,$f16,$f18 +sub.d $f16,$f18,$f16 +add.d $f18,$f16,$f18 +s.d $f18,Y +L.134: +l.d $f18,Y +l.d $f16,Y1 +c.le.d $f16,$f18; bc1t L.136 +l.d $f16,Zero +c.le.d $f18,$f16; bc1f L.133 +L.136: +l.d $f18,X +s.d $f18,X1 +l.d $f18,X1 +l.d $f16,F9 +l.d $f10,Half +mul.d $f10,$f10,$f18 +l.d $f8,ThirtyTwo +mul.d $f8,$f8,$f18 +mul.d $f18,$f8,$f18 +add.d $f18,$f10,$f18 +sub.d $f18,$f18,$f16 +add.d $f18,$f18,$f16 +s.d $f18,X +L.131: +l.d $f18,X +l.d $f16,X1 +c.le.d $f16,$f18; bc1t L.137 +l.d $f16,Zero +c.le.d $f18,$f16; bc1f L.130 +L.137: +l.d $f18,X1 +l.d $f16,Y1 +c.eq.d $f18,$f16; bc1f L.140 +l.d $f16,Z1 +c.eq.d $f18,$f16; bc1t L.138 +L.140: +la $4,1 +la $5,L.141 +jal BadCond +la $4,L.142 +l.d $f18,X1 +mfc1.d $6,$f18 +l.d $f18,Y1 +s.d $f18,16($sp) +l.d $f18,Z1 +s.d $f18,24($sp) +jal printf +la $4,L.143 +jal printf +la $4,L.144 +jal printf +la $4,L.145 +jal notify +l.d $f18,U1 +l.d $f16,X1 +c.eq.d $f16,$f18; bc1t L.149 +l.d $f16,Y1 +c.eq.d $f16,$f18; bc1t L.149 +l.d $f16,Z1 +c.eq.d $f16,$f18; bc1f L.139 +L.149: +la $4,L.150 +jal printf +b L.139 +L.138: +l.d $f18,Z1 +l.d $f16,U1 +c.eq.d $f18,$f16; bc1f L.153 +l.d $f18,Z2 +l.d $f16,U2 +c.eq.d $f18,$f16; bc1t L.151 +L.153: +l.d $f18,Z1 +l.d $f16,U1 +c.lt.d $f18,$f16; bc1f L.156 +l.d $f18,Z2 +l.d $f16,U2 +c.lt.d $f18,$f16; bc1t L.154 +L.156: +move $4,$0 +la $5,L.157 +jal BadCond +la $4,L.158 +jal notify +la $4,L.159 +l.d $f18,U1 +mfc1.d $6,$f18 +l.d $f16,Z1 +sub.d $f18,$f16,$f18 +s.d $f18,16($sp) +jal printf +la $4,L.160 +l.d $f18,U2 +mfc1.d $6,$f18 +l.d $f16,Z2 +sub.d $f18,$f16,$f18 +s.d $f18,16($sp) +jal printf +b L.155 +L.154: +l.d $f18,Zero +l.d $f16,Z1 +c.le.d $f16,$f18; bc1t L.163 +l.d $f16,Z2 +c.le.d $f16,$f18; bc1f L.161 +L.163: +la $4,L.164 +l.d $f18,Radix +mfc1.d $6,$f18 +jal printf +la $4,L.165 +jal printf +la $4,L.166 +l.d $f18,Z1 +mfc1.d $6,$f18 +l.d $f18,Z2 +s.d $f18,16($sp) +jal printf +la $4,L.167 +jal notify +L.161: +l.d $f18,Z1 +l.d $f16,Z2 +c.eq.d $f18,$f16; bc1f L.170 +l.d $f16,Zero +c.le.d $f18,$f16; bc1t L.168 +L.170: +l.d $f18,Z1 +l.d $f16,U1 +div.d $f18,$f18,$f16 +s.d $f18,X +l.d $f18,Z2 +l.d $f16,U2 +div.d $f18,$f18,$f16 +s.d $f18,Y +l.d $f18,Y +l.d $f16,X +c.le.d $f18,$f16; bc1t L.171 +l.d $f18,Y +s.d $f18,X +L.171: +l.d $f12,X +jal log +neg.d $f18,$f0 +s.d $f18,Q +la $4,L.173 +jal printf +l.d $f12,Radix +jal log +la $4,L.174 +l.d $f16,Q +div.d $f18,$f16,$f0 +mfc1.d $6,$f18 +jal printf +l.d $f12,L.93 +jal log +la $4,L.175 +l.d $f16,Q +div.d $f18,$f16,$f0 +mfc1.d $6,$f18 +jal printf +L.168: +la $4,L.150 +jal printf +L.155: +L.151: +L.139: +jal Pause +la $24,35 +sw $24,Milestone +l.d $f18,Radix +l.d $f16,Two +c.lt.d $f18,$f16; bc1t L.176 +l.d $f18,Radix +l.d $f16,W +mul.d $f18,$f18,$f18 +div.d $f18,$f16,$f18 +s.d $f18,X +l.d $f18,X +l.d $f16,One +add.d $f16,$f18,$f16 +s.d $f16,Y +l.d $f16,Y +sub.d $f18,$f16,$f18 +s.d $f18,Z +l.d $f18,Z +l.d $f16,U2 +add.d $f10,$f18,$f16 +s.d $f10,T +l.d $f10,T +sub.d $f18,$f10,$f18 +s.d $f18,X +move $4,$0 +l.d $f18,X +c.eq.d $f18,$f16; bc1f L.180 +la $24,1 +sw $24,-40+240($sp) +b L.181 +L.180: +sw $0,-40+240($sp) +L.181: +lw $5,-40+240($sp) +la $6,L.179 +jal TstCond +l.d $f18,X +l.d $f16,U2 +c.eq.d $f18,$f16; bc1f L.182 +la $4,L.184 +jal printf +L.182: +L.176: +la $4,L.185 +jal printf +l.d $f18,F9 +l.d $f16,One +mul.d $f10,$f18,$f16 +s.d $f10,Y +mul.d $f10,$f16,$f18 +s.d $f10,Z +l.d $f10,Half +sub.d $f18,$f18,$f10 +s.d $f18,X +l.d $f18,X +l.d $f8,Y +sub.d $f8,$f8,$f10 +sub.d $f8,$f8,$f18 +s.d $f8,Y +l.d $f8,Z +sub.d $f10,$f8,$f10 +sub.d $f18,$f10,$f18 +s.d $f18,Z +l.d $f18,U2 +add.d $f10,$f16,$f18 +s.d $f10,X +l.d $f10,X +l.d $f8,Radix +mul.d $f6,$f10,$f8 +s.d $f6,T +mul.d $f10,$f8,$f10 +s.d $f10,R +l.d $f10,T +sub.d $f10,$f10,$f8 +s.d $f10,X +mul.d $f18,$f8,$f18 +l.d $f10,X +sub.d $f10,$f10,$f18 +s.d $f10,X +l.d $f10,R +sub.d $f10,$f10,$f8 +s.d $f10,T +l.d $f10,T +sub.d $f18,$f10,$f18 +s.d $f18,T +sub.d $f18,$f8,$f16 +l.d $f16,X +mul.d $f16,$f16,$f18 +s.d $f16,X +l.d $f16,T +mul.d $f18,$f16,$f18 +s.d $f18,T +l.d $f18,Zero +l.d $f16,X +c.eq.d $f16,$f18; bc1f L.186 +l.d $f16,Y +c.eq.d $f16,$f18; bc1f L.186 +l.d $f16,Z +c.eq.d $f16,$f18; bc1f L.186 +l.d $f16,T +c.eq.d $f16,$f18; bc1f L.186 +la $24,1 +sw $24,GMult +b L.187 +L.186: +move $24,$0 +sw $24,GMult +la $4,1 +move $5,$24 +la $6,L.188 +jal TstCond +L.187: +l.d $f18,Radix +l.d $f16,U2 +mul.d $f18,$f18,$f16 +s.d $f18,Z +l.d $f18,Z +l.d $f16,One +add.d $f16,$f16,$f18 +s.d $f16,X +l.d $f16,X +add.d $f18,$f16,$f18 +mul.d $f16,$f16,$f16 +sub.d $f12,$f18,$f16 +jal fabs +l.d $f16,U2 +sub.d $f18,$f0,$f16 +s.d $f18,Y +l.d $f18,One +sub.d $f18,$f18,$f16 +s.d $f18,X +l.d $f18,X +sub.d $f16,$f18,$f16 +mul.d $f18,$f18,$f18 +sub.d $f12,$f16,$f18 +jal fabs +l.d $f16,U1 +sub.d $f18,$f0,$f16 +s.d $f18,Z +move $4,$0 +l.d $f18,Zero +l.d $f16,Y +c.le.d $f16,$f18; bc1f L.191 +l.d $f16,Z +c.le.d $f16,$f18; bc1f L.191 +la $24,1 +sw $24,-40+240($sp) +b L.192 +L.191: +sw $0,-40+240($sp) +L.192: +lw $5,-40+240($sp) +la $6,L.190 +jal TstCond +l.d $f18,One +l.d $f16,U2 +sub.d $f10,$f18,$f16 +s.d $f10,Y +add.d $f16,$f18,$f16 +s.d $f16,X +l.d $f16,Y +div.d $f16,$f18,$f16 +s.d $f16,Z +l.d $f16,Z +l.d $f10,X +sub.d $f16,$f16,$f10 +s.d $f16,Y +l.d $f16,Three +div.d $f18,$f18,$f16 +s.d $f18,X +l.d $f18,Nine +div.d $f16,$f16,$f18 +s.d $f16,Z +l.d $f16,Z +l.d $f10,X +sub.d $f10,$f10,$f16 +s.d $f10,X +l.d $f10,TwentySeven +div.d $f18,$f18,$f10 +s.d $f18,T +l.d $f18,T +sub.d $f18,$f16,$f18 +s.d $f18,Z +la $4,2 +l.d $f18,Zero +l.d $f16,X +c.eq.d $f16,$f18; bc1f L.195 +l.d $f16,Y +c.eq.d $f16,$f18; bc1f L.195 +l.d $f16,Z +c.eq.d $f16,$f18; bc1f L.195 +la $24,1 +sw $24,-44+240($sp) +b L.196 +L.195: +sw $0,-44+240($sp) +L.196: +lw $5,-44+240($sp) +la $6,L.194 +jal TstCond +l.d $f18,F9 +l.d $f16,One +div.d $f10,$f18,$f16 +s.d $f10,Y +l.d $f10,Half +sub.d $f18,$f18,$f10 +s.d $f18,X +l.d $f18,Y +sub.d $f18,$f18,$f10 +l.d $f10,X +sub.d $f18,$f18,$f10 +s.d $f18,Y +l.d $f18,U2 +add.d $f18,$f16,$f18 +s.d $f18,X +l.d $f18,X +div.d $f16,$f18,$f16 +s.d $f16,T +l.d $f16,T +sub.d $f18,$f16,$f18 +s.d $f18,X +l.d $f18,Zero +l.d $f16,X +c.eq.d $f16,$f18; bc1f L.197 +l.d $f16,Y +c.eq.d $f16,$f18; bc1f L.197 +l.d $f16,Z +c.eq.d $f16,$f18; bc1f L.197 +la $24,1 +sw $24,GDiv +b L.198 +L.197: +move $24,$0 +sw $24,GDiv +la $4,1 +move $5,$24 +la $6,L.199 +jal TstCond +L.198: +l.d $f18,One +l.d $f16,U2 +add.d $f16,$f18,$f16 +div.d $f18,$f18,$f16 +s.d $f18,X +l.d $f18,Half +l.d $f16,X +sub.d $f16,$f16,$f18 +sub.d $f18,$f16,$f18 +s.d $f18,Y +la $4,1 +l.d $f18,Y +l.d $f16,Zero +c.lt.d $f18,$f16; bc1f L.202 +la $24,1 +sw $24,-48+240($sp) +b L.203 +L.202: +sw $0,-48+240($sp) +L.203: +lw $5,-48+240($sp) +la $6,L.201 +jal TstCond +l.d $f18,One +l.d $f16,U2 +sub.d $f10,$f18,$f16 +s.d $f10,X +l.d $f10,Radix +mul.d $f16,$f10,$f16 +add.d $f18,$f18,$f16 +s.d $f18,Y +l.d $f18,X +mul.d $f16,$f18,$f10 +s.d $f16,Z +l.d $f16,Y +mul.d $f8,$f16,$f10 +s.d $f8,T +l.d $f8,Z +div.d $f8,$f8,$f10 +s.d $f8,R +l.d $f8,T +div.d $f10,$f8,$f10 +s.d $f10,StickyBit +l.d $f10,R +sub.d $f18,$f10,$f18 +s.d $f18,X +l.d $f18,StickyBit +sub.d $f18,$f18,$f16 +s.d $f18,Y +move $4,$0 +l.d $f18,Zero +l.d $f16,X +c.eq.d $f16,$f18; bc1f L.206 +l.d $f16,Y +c.eq.d $f16,$f18; bc1f L.206 +la $24,1 +sw $24,-52+240($sp) +b L.207 +L.206: +sw $0,-52+240($sp) +L.207: +lw $5,-52+240($sp) +la $6,L.205 +jal TstCond +l.d $f18,One +l.d $f16,U1 +sub.d $f16,$f18,$f16 +s.d $f16,Y +l.d $f16,F9 +sub.d $f16,$f18,$f16 +s.d $f16,X +l.d $f16,Y +sub.d $f18,$f18,$f16 +s.d $f18,Y +l.d $f18,Radix +l.d $f16,U2 +sub.d $f16,$f18,$f16 +s.d $f16,T +l.d $f16,BMinusU2 +sub.d $f16,$f18,$f16 +s.d $f16,Z +l.d $f16,T +sub.d $f18,$f18,$f16 +s.d $f18,T +l.d $f18,U1 +l.d $f16,X +c.eq.d $f16,$f18; bc1f L.208 +l.d $f16,Y +c.eq.d $f16,$f18; bc1f L.208 +l.d $f18,U2 +l.d $f16,Z +c.eq.d $f16,$f18; bc1f L.208 +l.d $f16,T +c.eq.d $f16,$f18; bc1f L.208 +la $24,1 +sw $24,GAddSub +b L.209 +L.208: +move $24,$0 +sw $24,GAddSub +la $4,1 +move $5,$24 +la $6,L.210 +jal TstCond +L.209: +l.d $f18,F9 +l.d $f16,One +c.eq.d $f18,$f16; bc1t L.211 +sub.d $f18,$f18,$f16 +l.d $f16,Zero +c.lt.d $f18,$f16; bc1t L.211 +la $4,1 +la $5,L.213 +jal BadCond +la $4,L.214 +jal printf +la $4,L.215 +jal printf +la $4,L.216 +jal printf +L.211: +la $24,1 +lw $15,GMult +bne $15,$24,L.217 +lw $15,GDiv +bne $15,$24,L.217 +lw $15,GAddSub +bne $15,$24,L.217 +la $4,L.219 +jal printf +L.217: +la $24,40 +sw $24,Milestone +jal Pause +la $4,L.220 +jal printf +sw $0,RMult +sw $0,RDiv +sw $0,RAddSub +l.d $f18,Two +l.d $f16,Radix +div.d $f16,$f16,$f18 +s.d $f16,RadixD2 +s.d $f18,A1 +sw $0,Done +L.221: +l.d $f18,Radix +s.d $f18,AInvrse +L.224: +l.d $f18,AInvrse +s.d $f18,X +l.d $f16,A1 +div.d $f18,$f18,$f16 +s.d $f18,AInvrse +L.225: +l.d $f12,AInvrse +jal floor +l.d $f16,AInvrse +c.eq.d $f0,$f16; bc1t L.224 +l.d $f18,X +l.d $f16,One +c.eq.d $f18,$f16; bc1t L.230 +l.d $f18,A1 +l.d $f16,Three +c.le.d $f18,$f16; bc1t L.228 +L.230: +la $24,1 +sw $24,-56+240($sp) +b L.229 +L.228: +sw $0,-56+240($sp) +L.229: +lw $24,-56+240($sp) +sw $24,Done +lw $24,Done +bne $24,$0,L.231 +l.d $f18,Nine +l.d $f16,One +add.d $f18,$f18,$f16 +s.d $f18,A1 +L.231: +L.222: +lw $24,Done +beq $24,$0,L.221 +l.d $f18,X +l.d $f16,One +c.eq.d $f18,$f16; bc1f L.233 +l.d $f18,Radix +s.d $f18,A1 +L.233: +l.d $f18,A1 +l.d $f16,One +div.d $f16,$f16,$f18 +s.d $f16,AInvrse +s.d $f18,X +l.d $f18,AInvrse +s.d $f18,Y +sw $0,Done +L.235: +l.d $f18,Half +l.d $f16,X +l.d $f10,Y +mul.d $f16,$f16,$f10 +sub.d $f16,$f16,$f18 +s.d $f16,Z +move $4,$0 +l.d $f16,Z +c.eq.d $f16,$f18; bc1f L.240 +la $24,1 +sw $24,-56+240($sp) +b L.241 +L.240: +sw $0,-56+240($sp) +L.241: +lw $5,-56+240($sp) +la $6,L.239 +jal TstCond +l.d $f18,X +l.d $f16,Radix +c.eq.d $f18,$f16; bc1f L.243 +la $24,1 +sw $24,-60+240($sp) +b L.244 +L.243: +sw $0,-60+240($sp) +L.244: +lw $24,-60+240($sp) +sw $24,Done +l.d $f18,Radix +s.d $f18,X +l.d $f18,One +l.d $f16,X +div.d $f18,$f18,$f16 +s.d $f18,Y +L.236: +lw $24,Done +beq $24,$0,L.235 +l.d $f18,One +l.d $f16,U2 +add.d $f10,$f18,$f16 +s.d $f10,Y2 +sub.d $f18,$f18,$f16 +s.d $f18,Y1 +l.d $f18,OneAndHalf +s.d $f18,-64+240($sp) +sub.d $f10,$f18,$f16 +s.d $f10,X +add.d $f10,$f18,$f16 +s.d $f10,Y +l.d $f10,X +l.d $f8,Y2 +sub.d $f6,$f10,$f16 +mul.d $f6,$f6,$f8 +s.d $f6,Z +l.d $f6,Y +l.d $f4,Y1 +mul.d $f18,$f6,$f4 +s.d $f18,T +l.d $f18,Z +sub.d $f18,$f18,$f10 +s.d $f18,Z +l.d $f18,T +sub.d $f18,$f18,$f10 +s.d $f18,T +mul.d $f18,$f10,$f8 +s.d $f18,X +add.d $f18,$f6,$f16 +mul.d $f18,$f18,$f4 +s.d $f18,Y +l.d $f18,X +l.d $f16,-64+240($sp) +sub.d $f18,$f18,$f16 +s.d $f18,X +l.d $f18,Y +l.d $f16,-64+240($sp) +sub.d $f18,$f18,$f16 +s.d $f18,Y +l.d $f18,Zero +l.d $f16,X +c.eq.d $f16,$f18; bc1f L.245 +l.d $f16,Y +c.eq.d $f16,$f18; bc1f L.245 +l.d $f16,Z +c.eq.d $f16,$f18; bc1f L.245 +l.d $f16,T +c.le.d $f16,$f18; bc1f L.245 +l.d $f18,OneAndHalf +l.d $f16,U2 +add.d $f10,$f18,$f16 +l.d $f8,Y2 +mul.d $f6,$f10,$f8 +s.d $f6,X +sub.d $f18,$f18,$f16 +sub.d $f6,$f18,$f16 +s.d $f6,Y +add.d $f10,$f10,$f16 +s.d $f10,Z +l.d $f10,Y1 +mul.d $f18,$f18,$f10 +s.d $f18,T +l.d $f18,Z +add.d $f6,$f18,$f16 +s.d $f6,-72+240($sp) +l.d $f4,X +sub.d $f4,$f4,$f6 +s.d $f4,X +l.d $f4,Y +mul.d $f6,$f4,$f10 +s.d $f6,StickyBit +mul.d $f18,$f18,$f8 +s.d $f18,S +l.d $f18,T +sub.d $f18,$f18,$f4 +s.d $f18,T +sub.d $f18,$f16,$f4 +l.d $f6,StickyBit +add.d $f18,$f18,$f6 +s.d $f18,Y +l.d $f18,S +l.d $f6,-72+240($sp) +add.d $f6,$f6,$f16 +sub.d $f18,$f18,$f6 +s.d $f18,Z +add.d $f18,$f8,$f16 +mul.d $f18,$f18,$f10 +s.d $f18,StickyBit +mul.d $f18,$f8,$f10 +s.d $f18,Y1 +l.d $f18,StickyBit +sub.d $f18,$f18,$f8 +s.d $f18,StickyBit +l.d $f18,Y1 +l.d $f16,Half +sub.d $f18,$f18,$f16 +s.d $f18,Y1 +l.d $f18,Zero +l.d $f16,X +c.eq.d $f16,$f18; bc1f L.247 +l.d $f16,Y +c.eq.d $f16,$f18; bc1f L.247 +l.d $f16,Z +c.eq.d $f16,$f18; bc1f L.247 +l.d $f16,T +c.eq.d $f16,$f18; bc1f L.247 +l.d $f16,StickyBit +c.eq.d $f16,$f18; bc1f L.247 +l.d $f18,Y1 +l.d $f16,Half +c.eq.d $f18,$f16; bc1f L.247 +la $24,1 +sw $24,RMult +la $4,L.249 +jal printf +b L.248 +L.247: +l.d $f18,U2 +l.d $f16,Zero +l.d $f10,X +add.d $f10,$f10,$f18 +c.eq.d $f10,$f16; bc1f L.250 +l.d $f10,Y +c.lt.d $f10,$f16; bc1f L.250 +l.d $f10,Z +add.d $f10,$f10,$f18 +c.eq.d $f10,$f16; bc1f L.250 +l.d $f10,T +c.lt.d $f10,$f16; bc1f L.250 +l.d $f10,StickyBit +add.d $f18,$f10,$f18 +c.eq.d $f18,$f16; bc1f L.250 +l.d $f18,Y1 +l.d $f16,Half +c.lt.d $f18,$f16; bc1f L.250 +la $24,2 +sw $24,RMult +la $4,L.252 +jal printf +b L.251 +L.250: +la $4,L.253 +jal printf +L.251: +L.248: +lw $24,RMult +la $15,1 +bne $24,$15,L.246 +lw $24,GMult +bne $24,$0,L.246 +la $4,L.256 +jal notify +b L.246 +L.245: +la $4,L.253 +jal printf +L.246: +la $24,45 +sw $24,Milestone +l.d $f18,One +l.d $f16,U2 +add.d $f10,$f18,$f16 +s.d $f10,Y2 +sub.d $f18,$f18,$f16 +s.d $f18,Y1 +l.d $f18,OneAndHalf +s.d $f18,-80+240($sp) +add.d $f10,$f18,$f16 +s.d $f10,-72+240($sp) +add.d $f8,$f10,$f16 +s.d $f8,Z +l.d $f8,Z +l.d $f6,Y2 +div.d $f4,$f8,$f6 +s.d $f4,X +sub.d $f4,$f18,$f16 +sub.d $f4,$f4,$f16 +s.d $f4,T +l.d $f4,T +l.d $f10,Y1 +sub.d $f18,$f4,$f16 +div.d $f18,$f18,$f10 +s.d $f18,Y +add.d $f18,$f8,$f16 +div.d $f18,$f18,$f6 +s.d $f18,Z +l.d $f18,X +l.d $f8,-80+240($sp) +sub.d $f18,$f18,$f8 +s.d $f18,X +l.d $f18,Y +sub.d $f18,$f18,$f4 +s.d $f18,Y +div.d $f18,$f4,$f10 +s.d $f18,T +l.d $f18,Z +l.d $f10,-72+240($sp) +sub.d $f18,$f18,$f10 +s.d $f18,Z +l.d $f18,-80+240($sp) +sub.d $f18,$f16,$f18 +l.d $f16,T +add.d $f18,$f18,$f16 +s.d $f18,T +l.d $f18,Zero +l.d $f16,X +c.le.d $f16,$f18; bc1f L.257 +l.d $f16,Y +c.le.d $f16,$f18; bc1f L.257 +l.d $f16,Z +c.le.d $f16,$f18; bc1f L.257 +l.d $f16,T +c.le.d $f16,$f18; bc1f L.257 +l.d $f18,OneAndHalf +l.d $f16,Y2 +div.d $f10,$f18,$f16 +s.d $f10,X +l.d $f10,U2 +sub.d $f8,$f18,$f10 +s.d $f8,Y +add.d $f8,$f18,$f10 +s.d $f8,Z +l.d $f8,Y +l.d $f6,X +sub.d $f6,$f6,$f8 +s.d $f6,X +l.d $f6,Y1 +div.d $f4,$f18,$f6 +s.d $f4,T +div.d $f8,$f8,$f6 +s.d $f8,Y +l.d $f8,Z +l.d $f6,T +add.d $f4,$f8,$f10 +sub.d $f6,$f6,$f4 +s.d $f6,T +l.d $f6,Y +sub.d $f6,$f6,$f8 +s.d $f6,Y +div.d $f8,$f8,$f16 +s.d $f8,Z +add.d $f10,$f16,$f10 +div.d $f10,$f10,$f16 +s.d $f10,Y1 +l.d $f10,Z +sub.d $f18,$f10,$f18 +s.d $f18,Z +l.d $f18,Y1 +sub.d $f18,$f18,$f16 +s.d $f18,Y2 +l.d $f18,F9 +l.d $f16,U1 +sub.d $f16,$f18,$f16 +div.d $f18,$f16,$f18 +s.d $f18,Y1 +l.d $f18,Zero +l.d $f16,X +c.eq.d $f16,$f18; bc1f L.259 +l.d $f16,Y +c.eq.d $f16,$f18; bc1f L.259 +l.d $f16,Z +c.eq.d $f16,$f18; bc1f L.259 +l.d $f16,T +c.eq.d $f16,$f18; bc1f L.259 +l.d $f16,Y2 +c.eq.d $f16,$f18; bc1f L.259 +c.eq.d $f16,$f18; bc1f L.259 +l.d $f18,Half +l.d $f16,Y1 +sub.d $f16,$f16,$f18 +l.d $f10,F9 +sub.d $f18,$f10,$f18 +c.eq.d $f16,$f18; bc1f L.259 +la $24,1 +sw $24,RDiv +la $4,L.261 +jal printf +lw $24,GDiv +bne $24,$0,L.260 +la $4,L.264 +jal notify +b L.260 +L.259: +l.d $f18,Zero +l.d $f16,X +c.lt.d $f16,$f18; bc1f L.265 +l.d $f16,Y +c.lt.d $f16,$f18; bc1f L.265 +l.d $f16,Z +c.lt.d $f16,$f18; bc1f L.265 +l.d $f16,T +c.lt.d $f16,$f18; bc1f L.265 +l.d $f16,Y2 +c.lt.d $f16,$f18; bc1f L.265 +l.d $f18,Half +l.d $f16,Y1 +sub.d $f16,$f16,$f18 +l.d $f10,F9 +sub.d $f18,$f10,$f18 +c.lt.d $f16,$f18; bc1f L.265 +la $24,2 +sw $24,RDiv +la $4,L.267 +jal printf +L.265: +L.260: +L.257: +lw $24,RDiv +bne $24,$0,L.268 +la $4,L.270 +jal printf +L.268: +l.d $f18,Radix +l.d $f16,One +div.d $f16,$f16,$f18 +s.d $f16,BInvrse +move $4,$0 +l.d $f16,Half +l.d $f10,BInvrse +mul.d $f18,$f10,$f18 +sub.d $f18,$f18,$f16 +c.eq.d $f18,$f16; bc1f L.273 +la $24,1 +sw $24,-84+240($sp) +b L.274 +L.273: +sw $0,-84+240($sp) +L.274: +lw $5,-84+240($sp) +la $6,L.272 +jal TstCond +la $24,50 +sw $24,Milestone +move $4,$0 +l.d $f18,Half +l.d $f16,F9 +l.d $f10,U1 +add.d $f16,$f16,$f10 +sub.d $f16,$f16,$f18 +c.eq.d $f16,$f18; bc1f L.277 +l.d $f18,One +l.d $f16,BMinusU2 +l.d $f10,U2 +add.d $f16,$f16,$f10 +sub.d $f16,$f16,$f18 +l.d $f10,Radix +sub.d $f18,$f10,$f18 +c.eq.d $f16,$f18; bc1f L.277 +la $24,1 +sw $24,-88+240($sp) +b L.278 +L.277: +sw $0,-88+240($sp) +L.278: +lw $5,-88+240($sp) +la $6,L.276 +jal TstCond +l.d $f18,One +l.d $f16,U1 +mul.d $f16,$f16,$f16 +sub.d $f16,$f18,$f16 +s.d $f16,X +l.d $f16,U2 +sub.d $f10,$f18,$f16 +mul.d $f16,$f16,$f10 +add.d $f16,$f18,$f16 +s.d $f16,Y +l.d $f16,Half +l.d $f10,F9 +sub.d $f10,$f10,$f16 +s.d $f10,Z +l.d $f10,X +sub.d $f16,$f10,$f16 +l.d $f10,Z +sub.d $f16,$f16,$f10 +s.d $f16,X +l.d $f16,Y +sub.d $f18,$f16,$f18 +s.d $f18,Y +l.d $f18,Zero +l.d $f16,X +c.eq.d $f16,$f18; bc1f L.279 +l.d $f16,Y +c.eq.d $f16,$f18; bc1f L.279 +la $24,2 +sw $24,RAddSub +la $4,L.281 +jal printf +L.279: +lw $24,GAddSub +la $15,1 +bne $24,$15,L.282 +l.d $f18,Half +l.d $f16,U2 +add.d $f10,$f18,$f16 +mul.d $f10,$f10,$f16 +s.d $f10,X +sub.d $f18,$f18,$f16 +mul.d $f18,$f18,$f16 +s.d $f18,Y +l.d $f18,One +l.d $f10,X +add.d $f10,$f18,$f10 +s.d $f10,X +l.d $f10,Y +add.d $f10,$f18,$f10 +s.d $f10,Y +add.d $f16,$f18,$f16 +l.d $f10,X +sub.d $f16,$f16,$f10 +s.d $f16,X +l.d $f16,Y +sub.d $f18,$f18,$f16 +s.d $f18,Y +l.d $f18,Zero +l.d $f16,X +c.eq.d $f16,$f18; bc1f L.284 +l.d $f16,Y +c.eq.d $f16,$f18; bc1f L.284 +l.d $f18,Half +l.d $f16,U2 +l.d $f10,U1 +add.d $f8,$f18,$f16 +mul.d $f8,$f8,$f10 +s.d $f8,X +sub.d $f18,$f18,$f16 +mul.d $f18,$f18,$f10 +s.d $f18,Y +l.d $f18,One +l.d $f16,X +sub.d $f16,$f18,$f16 +s.d $f16,X +l.d $f16,Y +sub.d $f16,$f18,$f16 +s.d $f16,Y +l.d $f16,F9 +l.d $f10,X +sub.d $f16,$f16,$f10 +s.d $f16,X +l.d $f16,Y +sub.d $f18,$f18,$f16 +s.d $f18,Y +l.d $f18,Zero +l.d $f16,X +c.eq.d $f16,$f18; bc1f L.286 +l.d $f16,Y +c.eq.d $f16,$f18; bc1f L.286 +la $24,1 +sw $24,RAddSub +la $4,L.288 +jal printf +lw $24,GAddSub +bne $24,$0,L.283 +la $4,L.291 +jal notify +b L.283 +L.286: +la $4,L.292 +jal printf +b L.283 +L.284: +la $4,L.292 +jal printf +b L.283 +L.282: +la $4,L.292 +jal printf +L.283: +l.d $f18,One +s.d $f18,S +l.d $f16,Half +add.d $f10,$f18,$f16 +mul.d $f10,$f16,$f10 +add.d $f10,$f18,$f10 +s.d $f10,X +l.d $f10,U2 +add.d $f18,$f18,$f10 +mul.d $f18,$f18,$f16 +s.d $f18,Y +l.d $f18,X +l.d $f16,Y +sub.d $f10,$f18,$f16 +s.d $f10,Z +sub.d $f18,$f16,$f18 +s.d $f18,T +l.d $f18,Z +l.d $f16,T +add.d $f18,$f18,$f16 +s.d $f18,StickyBit +l.d $f18,StickyBit +l.d $f16,Zero +c.eq.d $f18,$f16; bc1t L.293 +l.d $f18,Zero +s.d $f18,S +la $4,3 +la $5,L.295 +jal BadCond +L.293: +l.d $f18,Zero +s.d $f18,StickyBit +la $24,1 +lw $15,GMult +bne $15,$24,L.296 +lw $15,GDiv +bne $15,$24,L.296 +lw $15,GAddSub +bne $15,$24,L.296 +lw $15,RMult +bne $15,$24,L.296 +lw $15,RDiv +bne $15,$24,L.296 +lw $15,RAddSub +bne $15,$24,L.296 +l.d $f12,RadixD2 +jal floor +l.d $f16,RadixD2 +c.eq.d $f0,$f16; bc1f L.296 +la $4,L.298 +jal printf +l.d $f18,Half +l.d $f16,U2 +l.d $f10,U1 +add.d $f10,$f18,$f10 +mul.d $f10,$f10,$f16 +s.d $f10,X +mul.d $f18,$f18,$f16 +s.d $f18,Y +l.d $f18,One +l.d $f16,Y +add.d $f16,$f18,$f16 +s.d $f16,Z +l.d $f16,X +add.d $f18,$f18,$f16 +s.d $f18,T +l.d $f18,One +l.d $f16,Z +sub.d $f16,$f16,$f18 +l.d $f10,Zero +c.le.d $f16,$f10; bc1f L.299 +l.d $f16,T +sub.d $f18,$f16,$f18 +l.d $f16,U2 +c.lt.d $f18,$f16; bc1t L.299 +l.d $f18,T +l.d $f16,Y +add.d $f18,$f18,$f16 +s.d $f18,Z +l.d $f18,Z +l.d $f16,X +sub.d $f18,$f18,$f16 +s.d $f18,Y +l.d $f18,T +l.d $f16,Z +sub.d $f16,$f16,$f18 +l.d $f10,U2 +c.lt.d $f16,$f10; bc1t L.301 +l.d $f16,Y +sub.d $f18,$f16,$f18 +l.d $f16,Zero +c.eq.d $f18,$f16; bc1f L.301 +l.d $f18,Half +l.d $f16,U1 +add.d $f10,$f18,$f16 +mul.d $f10,$f10,$f16 +s.d $f10,X +mul.d $f18,$f18,$f16 +s.d $f18,Y +l.d $f18,One +l.d $f16,Y +sub.d $f16,$f18,$f16 +s.d $f16,Z +l.d $f16,X +sub.d $f18,$f18,$f16 +s.d $f18,T +l.d $f18,Zero +l.d $f16,Z +l.d $f10,One +sub.d $f16,$f16,$f10 +c.eq.d $f16,$f18; bc1f L.303 +l.d $f16,T +l.d $f10,F9 +sub.d $f16,$f16,$f10 +c.eq.d $f16,$f18; bc1f L.303 +l.d $f18,U1 +l.d $f16,Half +sub.d $f16,$f16,$f18 +mul.d $f18,$f16,$f18 +s.d $f18,Z +l.d $f18,F9 +l.d $f16,Z +sub.d $f16,$f18,$f16 +s.d $f16,T +l.d $f16,Y +sub.d $f18,$f18,$f16 +s.d $f18,Q +l.d $f18,F9 +l.d $f16,Zero +l.d $f10,T +sub.d $f10,$f10,$f18 +c.eq.d $f10,$f16; bc1f L.305 +l.d $f10,U1 +sub.d $f18,$f18,$f10 +l.d $f10,Q +sub.d $f18,$f18,$f10 +c.eq.d $f18,$f16; bc1f L.305 +l.d $f18,One +l.d $f16,U2 +l.d $f10,OneAndHalf +add.d $f8,$f18,$f16 +mul.d $f8,$f8,$f10 +s.d $f8,Z +add.d $f10,$f10,$f16 +l.d $f8,Z +sub.d $f10,$f10,$f8 +add.d $f10,$f10,$f16 +s.d $f10,T +l.d $f10,Radix +l.d $f8,Half +div.d $f8,$f8,$f10 +add.d $f8,$f18,$f8 +s.d $f8,X +mul.d $f16,$f10,$f16 +add.d $f18,$f18,$f16 +s.d $f18,Y +l.d $f18,X +l.d $f16,Y +mul.d $f18,$f18,$f16 +s.d $f18,Z +l.d $f18,Zero +l.d $f16,T +c.eq.d $f16,$f18; bc1f L.307 +l.d $f16,X +l.d $f10,Radix +l.d $f8,U2 +mul.d $f10,$f10,$f8 +add.d $f16,$f16,$f10 +l.d $f10,Z +sub.d $f16,$f16,$f10 +c.eq.d $f16,$f18; bc1f L.307 +l.d $f18,Radix +l.d $f16,Two +c.eq.d $f18,$f16; bc1t L.309 +l.d $f18,Two +l.d $f16,U2 +add.d $f16,$f18,$f16 +s.d $f16,X +l.d $f16,X +div.d $f18,$f16,$f18 +s.d $f18,Y +l.d $f18,Y +l.d $f16,One +sub.d $f18,$f18,$f16 +l.d $f16,Zero +c.eq.d $f18,$f16; bc1f L.310 +l.d $f18,S +s.d $f18,StickyBit +b L.310 +L.309: +l.d $f18,S +s.d $f18,StickyBit +L.310: +L.307: +L.305: +L.303: +L.301: +L.299: +L.296: +l.d $f18,StickyBit +l.d $f16,One +c.eq.d $f18,$f16; bc1f L.313 +la $4,L.315 +jal printf +b L.314 +L.313: +la $4,L.316 +jal printf +L.314: +la $4,3 +lw $15,GMult +beq $15,$0,L.319 +lw $15,GDiv +beq $15,$0,L.319 +lw $15,GAddSub +beq $15,$0,L.319 +lw $15,RMult +beq $15,$0,L.319 +lw $15,RDiv +beq $15,$0,L.319 +lw $15,RAddSub +beq $15,$0,L.319 +la $24,1 +sw $24,-92+240($sp) +b L.320 +L.319: +sw $0,-92+240($sp) +L.320: +lw $5,-92+240($sp) +la $6,L.318 +jal TstCond +la $24,60 +sw $24,Milestone +la $4,L.44 +jal printf +la $4,L.321 +jal printf +la $4,L.322 +lw $5,NoTrials +jal printf +l.d $f12,L.323 +jal sqrt +s.d $f0,Random9 +l.d $f18,Third +s.d $f18,Random1 +la $24,1 +sw $24,I +L.324: +jal Random +s.d $f0,X +jal Random +s.d $f0,Y +l.d $f18,Y +l.d $f16,X +mul.d $f10,$f18,$f16 +s.d $f10,Z9 +mul.d $f18,$f16,$f18 +s.d $f18,Z +l.d $f18,Z +l.d $f16,Z9 +sub.d $f18,$f18,$f16 +s.d $f18,Z9 +lw $24,I +la $24,1($24) +sw $24,I +L.325: +lw $24,I +lw $15,NoTrials +bgt $24,$15,L.327 +l.d $f18,Z9 +l.d $f16,Zero +c.eq.d $f18,$f16; bc1t L.324 +L.327: +lw $24,I +lw $15,NoTrials +bne $24,$15,L.328 +l.d $f18,One +l.d $f16,Half +l.d $f10,Three +div.d $f16,$f16,$f10 +add.d $f16,$f18,$f16 +s.d $f16,Random1 +l.d $f10,U2 +l.d $f8,U1 +add.d $f10,$f10,$f8 +add.d $f18,$f10,$f18 +s.d $f18,Random2 +l.d $f10,Random1 +l.d $f8,Random2 +mul.d $f6,$f10,$f8 +s.d $f6,Z +mul.d $f10,$f8,$f10 +s.d $f10,Y +mul.d $f18,$f16,$f18 +sub.d $f18,$f18,$f18 +s.d $f18,Z9 +L.328: +lw $24,I +lw $15,NoTrials +beq $24,$15,L.330 +l.d $f18,Z9 +l.d $f16,Zero +c.eq.d $f18,$f16; bc1t L.330 +la $4,2 +la $5,L.332 +jal BadCond +b L.331 +L.330: +la $4,L.333 +lw $5,NoTrials +jal printf +L.331: +la $24,70 +sw $24,Milestone +la $4,L.334 +jal printf +l.d $f18,Zero +s.d $f18,-104+240($sp) +mov.d $f12,$f18 +jal sqrt +l.d $f16,-104+240($sp) +c.eq.d $f16,$f0; bc1f L.337 +l.d $f18,Zero +neg.d $f18,$f18 +s.d $f18,-112+240($sp) +mov.d $f12,$f18 +jal sqrt +l.d $f16,-112+240($sp) +c.eq.d $f16,$f0; bc1f L.337 +l.d $f18,One +s.d $f18,-120+240($sp) +mov.d $f12,$f18 +jal sqrt +mov.d $f18,$f0 +l.d $f16,-120+240($sp) +c.eq.d $f16,$f18; bc1f L.337 +la $24,1 +sw $24,-96+240($sp) +b L.338 +L.337: +sw $0,-96+240($sp) +L.338: +move $4,$0 +lw $5,-96+240($sp) +la $6,L.336 +jal TstCond +l.d $f18,Zero +s.d $f18,MinSqEr +s.d $f18,MaxSqEr +s.d $f18,J +l.d $f18,Radix +s.d $f18,X +l.d $f18,U2 +s.d $f18,OneUlp +la $4,1 +jal SqXMinX +l.d $f18,BInvrse +s.d $f18,X +l.d $f16,U1 +mul.d $f18,$f18,$f16 +s.d $f18,OneUlp +la $4,1 +jal SqXMinX +l.d $f18,U1 +s.d $f18,X +mul.d $f18,$f18,$f18 +s.d $f18,OneUlp +la $4,1 +jal SqXMinX +l.d $f18,J +l.d $f16,Zero +c.eq.d $f18,$f16; bc1t L.339 +jal Pause +L.339: +la $4,L.341 +lw $5,NoTrials +jal printf +l.d $f18,Zero +s.d $f18,J +l.d $f18,Two +s.d $f18,X +l.d $f18,Radix +s.d $f18,Y +l.d $f16,One +c.eq.d $f18,$f16; bc1t L.342 +L.344: +l.d $f18,Y +s.d $f18,X +l.d $f16,Radix +mul.d $f18,$f16,$f18 +s.d $f18,Y +L.345: +l.d $f18,Y +l.d $f16,X +sub.d $f18,$f18,$f16 +lw $24,NoTrials +mtc1 $24,$f16; cvt.d.w $f16,$f16 +c.lt.d $f18,$f16; bc1t L.344 +L.342: +l.d $f18,X +l.d $f16,U2 +mul.d $f18,$f18,$f16 +s.d $f18,OneUlp +la $24,1 +sw $24,I +b L.348 +L.347: +l.d $f18,X +l.d $f16,One +add.d $f18,$f18,$f16 +s.d $f18,X +la $4,2 +jal SqXMinX +l.d $f18,J +l.d $f16,Zero +c.le.d $f18,$f16; bc1t L.350 +b L.349 +L.350: +lw $24,I +la $24,1($24) +sw $24,I +L.348: +lw $24,I +lw $15,NoTrials +ble $24,$15,L.347 +L.349: +la $4,L.352 +jal printf +la $24,-1 +sw $24,I +l.d $f18,BMinusU2 +s.d $f18,X +l.d $f18,Radix +s.d $f18,Y +l.d $f16,U2 +mul.d $f16,$f18,$f16 +add.d $f18,$f18,$f16 +s.d $f18,Z +sw $0,NotMonot +sw $0,Monot +b L.354 +L.353: +lw $24,I +la $24,1($24) +sw $24,I +l.d $f12,X +jal sqrt +s.d $f0,X +l.d $f12,Y +jal sqrt +s.d $f0,Q +l.d $f12,Z +jal sqrt +s.d $f0,Z +l.d $f18,Q +l.d $f16,X +c.le.d $f16,$f18; bc1f L.358 +l.d $f16,Z +c.le.d $f18,$f16; bc1t L.356 +L.358: +la $24,1 +sw $24,NotMonot +b L.357 +L.356: +l.d $f18,Q +l.d $f16,Half +add.d $f12,$f18,$f16 +jal floor +s.d $f0,Q +lw $24,I +bgt $24,$0,L.361 +l.d $f18,Q +l.d $f16,Radix +mul.d $f18,$f18,$f18 +c.eq.d $f16,$f18; bc1f L.359 +L.361: +la $24,1 +sw $24,Monot +b L.360 +L.359: +lw $24,I +ble $24,$0,L.362 +lw $24,I +la $15,1 +ble $24,$15,L.364 +la $24,1 +sw $24,Monot +b L.363 +L.364: +l.d $f18,Y +l.d $f16,BInvrse +mul.d $f18,$f18,$f16 +s.d $f18,Y +l.d $f18,Y +l.d $f16,U1 +sub.d $f10,$f18,$f16 +s.d $f10,X +add.d $f18,$f18,$f16 +s.d $f18,Z +b L.363 +L.362: +l.d $f18,Q +s.d $f18,Y +l.d $f18,Y +l.d $f16,U2 +sub.d $f10,$f18,$f16 +s.d $f10,X +add.d $f18,$f18,$f16 +s.d $f18,Z +L.363: +L.360: +L.357: +L.354: +lw $15,NotMonot +bne $15,$0,L.366 +lw $15,Monot +beq $15,$0,L.353 +L.366: +lw $24,Monot +beq $24,$0,L.367 +la $4,L.369 +jal printf +b L.368 +L.367: +la $4,2 +la $5,L.157 +jal BadCond +la $4,L.370 +l.d $f18,Y +mfc1.d $6,$f18 +jal printf +L.368: +la $24,80 +sw $24,Milestone +l.d $f18,Half +l.d $f16,MinSqEr +add.d $f16,$f16,$f18 +s.d $f16,MinSqEr +l.d $f16,MaxSqEr +sub.d $f18,$f16,$f18 +s.d $f18,MaxSqEr +l.d $f18,One +l.d $f16,U2 +add.d $f12,$f18,$f16 +jal sqrt +l.d $f16,One +l.d $f10,U2 +sub.d $f18,$f0,$f16 +div.d $f18,$f18,$f10 +s.d $f18,Y +l.d $f18,Y +sub.d $f18,$f18,$f16 +l.d $f16,Eight +div.d $f16,$f10,$f16 +add.d $f18,$f18,$f16 +s.d $f18,SqEr +l.d $f18,SqEr +l.d $f16,MaxSqEr +c.le.d $f18,$f16; bc1t L.371 +l.d $f18,SqEr +s.d $f18,MaxSqEr +L.371: +l.d $f18,Y +l.d $f16,U2 +l.d $f10,Eight +div.d $f16,$f16,$f10 +add.d $f18,$f18,$f16 +s.d $f18,SqEr +l.d $f18,SqEr +l.d $f16,MinSqEr +c.lt.d $f18,$f16; bc1f L.373 +l.d $f18,SqEr +s.d $f18,MinSqEr +L.373: +l.d $f12,F9 +jal sqrt +l.d $f16,U2 +l.d $f10,U1 +sub.d $f18,$f0,$f16 +l.d $f8,One +sub.d $f16,$f8,$f16 +sub.d $f18,$f18,$f16 +div.d $f18,$f18,$f10 +s.d $f18,Y +l.d $f18,Y +l.d $f16,Eight +div.d $f16,$f10,$f16 +add.d $f18,$f18,$f16 +s.d $f18,SqEr +l.d $f18,SqEr +l.d $f16,MaxSqEr +c.le.d $f18,$f16; bc1t L.375 +l.d $f18,SqEr +s.d $f18,MaxSqEr +L.375: +l.d $f18,Y +l.d $f16,One +add.d $f18,$f18,$f16 +l.d $f16,U1 +l.d $f10,Eight +div.d $f16,$f16,$f10 +add.d $f18,$f18,$f16 +s.d $f18,SqEr +l.d $f18,SqEr +l.d $f16,MinSqEr +c.lt.d $f18,$f16; bc1f L.377 +l.d $f18,SqEr +s.d $f18,MinSqEr +L.377: +l.d $f18,U2 +s.d $f18,OneUlp +l.d $f18,OneUlp +s.d $f18,X +la $24,1 +sw $24,Indx +L.379: +l.d $f18,X +l.d $f16,U1 +add.d $f16,$f18,$f16 +add.d $f18,$f16,$f18 +l.d $f16,F9 +add.d $f12,$f18,$f16 +jal sqrt +s.d $f0,Y +l.d $f18,U2 +l.d $f16,X +l.d $f10,OneUlp +l.d $f8,Y +sub.d $f8,$f8,$f18 +l.d $f6,One +sub.d $f18,$f6,$f18 +add.d $f18,$f18,$f16 +sub.d $f18,$f8,$f18 +div.d $f18,$f18,$f10 +s.d $f18,Y +l.d $f18,Half +l.d $f8,U1 +sub.d $f8,$f8,$f16 +l.d $f6,F9 +add.d $f8,$f8,$f6 +mul.d $f8,$f8,$f18 +mul.d $f8,$f8,$f16 +mul.d $f16,$f8,$f16 +div.d $f16,$f16,$f10 +s.d $f16,Z +l.d $f16,Y +add.d $f18,$f16,$f18 +l.d $f16,Z +add.d $f18,$f18,$f16 +s.d $f18,SqEr +l.d $f18,SqEr +l.d $f16,MinSqEr +c.lt.d $f18,$f16; bc1f L.383 +l.d $f18,SqEr +s.d $f18,MinSqEr +L.383: +l.d $f18,Y +l.d $f16,Half +sub.d $f18,$f18,$f16 +l.d $f16,Z +add.d $f18,$f18,$f16 +s.d $f18,SqEr +l.d $f18,SqEr +l.d $f16,MaxSqEr +c.le.d $f18,$f16; bc1t L.385 +l.d $f18,SqEr +s.d $f18,MaxSqEr +L.385: +lw $24,Indx +la $15,1 +beq $24,$15,L.389 +la $15,3 +bne $24,$15,L.387 +L.389: +l.d $f12,X +jal Sign +mov.d $f18,$f0 +s.d $f18,-128+240($sp) +l.d $f12,OneUlp +jal sqrt +l.d $f16,Eight +l.d $f10,Nine +mul.d $f18,$f10,$f0 +div.d $f12,$f16,$f18 +jal floor +l.d $f16,OneUlp +l.d $f10,-128+240($sp) +mul.d $f16,$f16,$f10 +mul.d $f18,$f16,$f0 +s.d $f18,X +b L.388 +L.387: +l.d $f18,U1 +s.d $f18,OneUlp +l.d $f18,OneUlp +neg.d $f18,$f18 +s.d $f18,X +L.388: +L.380: +lw $24,Indx +la $24,1($24) +sw $24,Indx +lw $24,Indx +la $15,3 +ble $24,$15,L.379 +la $24,85 +sw $24,Milestone +sw $0,SqRWrng +sw $0,Anomaly +sw $0,RSqrt +l.d $f18,Radix +l.d $f16,One +c.eq.d $f18,$f16; bc1t L.390 +la $4,L.392 +jal printf +l.d $f18,Precision +s.d $f18,-128+240($sp) +mov.d $f12,$f18 +jal floor +mov.d $f18,$f0 +l.d $f12,Radix +l.d $f16,One +l.d $f10,-128+240($sp) +add.d $f16,$f16,$f10 +sub.d $f14,$f16,$f18 +jal pow +mov.d $f18,$f0 +l.d $f16,Half +add.d $f12,$f16,$f18 +jal floor +s.d $f0,D +l.d $f18,D +l.d $f16,Radix +div.d $f16,$f18,$f16 +s.d $f16,X +l.d $f16,A1 +div.d $f18,$f18,$f16 +s.d $f18,Y +l.d $f18,X +s.d $f18,-136+240($sp) +mov.d $f12,$f18 +jal floor +l.d $f16,-136+240($sp) +c.eq.d $f16,$f0; bc1f L.395 +l.d $f18,Y +s.d $f18,-144+240($sp) +mov.d $f12,$f18 +jal floor +l.d $f16,-144+240($sp) +c.eq.d $f16,$f0; bc1t L.393 +L.395: +la $24,1 +sw $24,Anomaly +b L.394 +L.393: +l.d $f18,Zero +s.d $f18,X +l.d $f18,X +s.d $f18,Z2 +l.d $f18,One +s.d $f18,Y +l.d $f16,Y +s.d $f16,Y2 +l.d $f16,Radix +sub.d $f18,$f16,$f18 +s.d $f18,Z1 +l.d $f18,Four +l.d $f16,D +mul.d $f18,$f18,$f16 +s.d $f18,FourD +L.396: +l.d $f18,Y2 +l.d $f16,Z2 +c.le.d $f18,$f16; bc1t L.399 +l.d $f18,Radix +s.d $f18,Q +l.d $f18,Y +s.d $f18,Y1 +L.401: +l.d $f18,Q +s.d $f18,-152+240($sp) +l.d $f16,Half +l.d $f10,Y1 +div.d $f10,$f18,$f10 +sub.d $f12,$f16,$f10 +jal floor +l.d $f16,Y1 +mul.d $f18,$f0,$f16 +l.d $f16,-152+240($sp) +add.d $f12,$f16,$f18 +jal fabs +s.d $f0,X1 +l.d $f18,Y1 +s.d $f18,Q +l.d $f18,X1 +s.d $f18,Y1 +L.402: +l.d $f18,X1 +l.d $f16,Zero +c.le.d $f18,$f16; bc1f L.401 +l.d $f18,Q +l.d $f16,One +c.le.d $f18,$f16; bc1f L.404 +l.d $f18,Y2 +s.d $f18,Z2 +l.d $f18,Y +s.d $f18,Z +L.404: +L.399: +l.d $f18,Y +l.d $f16,Two +add.d $f18,$f18,$f16 +s.d $f18,Y +l.d $f18,X +l.d $f16,Eight +add.d $f18,$f18,$f16 +s.d $f18,X +l.d $f18,Y2 +l.d $f16,X +add.d $f18,$f18,$f16 +s.d $f18,Y2 +l.d $f18,Y2 +l.d $f16,FourD +c.lt.d $f18,$f16; bc1t L.406 +l.d $f18,Y2 +l.d $f16,FourD +sub.d $f18,$f18,$f16 +s.d $f18,Y2 +L.406: +L.397: +l.d $f18,Y +l.d $f16,D +c.lt.d $f18,$f16; bc1t L.396 +l.d $f18,FourD +l.d $f16,Z2 +sub.d $f16,$f18,$f16 +s.d $f16,X8 +l.d $f16,X8 +l.d $f10,Z +mul.d $f10,$f10,$f10 +add.d $f10,$f16,$f10 +div.d $f18,$f10,$f18 +s.d $f18,Q +l.d $f18,Eight +div.d $f18,$f16,$f18 +s.d $f18,X8 +l.d $f18,Q +s.d $f18,-152+240($sp) +mov.d $f12,$f18 +jal floor +l.d $f16,-152+240($sp) +c.eq.d $f16,$f0; bc1t L.408 +la $24,1 +sw $24,Anomaly +b L.409 +L.408: +sw $0,Break +L.410: +l.d $f18,Z1 +l.d $f16,Z +mul.d $f18,$f18,$f16 +s.d $f18,X +l.d $f18,X +s.d $f18,-160+240($sp) +l.d $f16,Radix +div.d $f12,$f18,$f16 +jal floor +l.d $f16,Radix +mul.d $f18,$f0,$f16 +l.d $f16,-160+240($sp) +sub.d $f18,$f16,$f18 +s.d $f18,X +l.d $f18,X +l.d $f16,One +c.eq.d $f18,$f16; bc1f L.413 +la $24,1 +sw $24,Break +b L.414 +L.413: +l.d $f18,Z1 +l.d $f16,One +sub.d $f18,$f18,$f16 +s.d $f18,Z1 +L.414: +L.411: +lw $24,Break +bne $24,$0,L.415 +l.d $f18,Z1 +l.d $f16,Zero +c.le.d $f18,$f16; bc1f L.410 +L.415: +l.d $f18,Z1 +l.d $f16,Zero +c.le.d $f18,$f16; bc1f L.416 +lw $24,Break +bne $24,$0,L.416 +la $24,1 +sw $24,Anomaly +b L.417 +L.416: +l.d $f18,Z1 +l.d $f16,RadixD2 +c.le.d $f18,$f16; bc1t L.418 +l.d $f18,Z1 +l.d $f16,Radix +sub.d $f18,$f18,$f16 +s.d $f18,Z1 +L.418: +L.420: +jal NewD +L.421: +l.d $f18,U2 +l.d $f16,D +mul.d $f18,$f18,$f16 +l.d $f16,F9 +c.lt.d $f18,$f16; bc1t L.420 +l.d $f18,D +l.d $f16,Radix +mul.d $f16,$f18,$f16 +sub.d $f16,$f16,$f18 +l.d $f10,W +sub.d $f18,$f10,$f18 +c.eq.d $f16,$f18; bc1t L.423 +la $24,1 +sw $24,Anomaly +b L.424 +L.423: +l.d $f18,D +s.d $f18,Z2 +sw $0,I +l.d $f16,Z +l.d $f10,One +add.d $f10,$f10,$f16 +l.d $f8,Half +mul.d $f10,$f10,$f8 +add.d $f10,$f18,$f10 +s.d $f10,Y +add.d $f18,$f18,$f16 +l.d $f16,Q +add.d $f18,$f18,$f16 +s.d $f18,X +jal SR3750 +l.d $f18,D +l.d $f16,Z +l.d $f10,One +sub.d $f10,$f10,$f16 +l.d $f8,Half +mul.d $f10,$f10,$f8 +add.d $f10,$f18,$f10 +add.d $f10,$f10,$f18 +s.d $f10,Y +sub.d $f16,$f18,$f16 +add.d $f18,$f16,$f18 +s.d $f18,X +l.d $f18,X +l.d $f16,Q +add.d $f16,$f18,$f16 +add.d $f18,$f16,$f18 +s.d $f18,X +jal SR3750 +jal NewD +l.d $f18,Z2 +l.d $f16,D +sub.d $f16,$f16,$f18 +l.d $f10,W +sub.d $f18,$f10,$f18 +c.eq.d $f16,$f18; bc1t L.425 +la $24,1 +sw $24,Anomaly +b L.426 +L.425: +l.d $f18,Z2 +l.d $f16,D +sub.d $f16,$f16,$f18 +l.d $f10,Z +l.d $f8,One +sub.d $f8,$f8,$f10 +l.d $f6,Half +mul.d $f8,$f8,$f6 +add.d $f8,$f18,$f8 +add.d $f8,$f16,$f8 +s.d $f8,Y +sub.d $f18,$f18,$f10 +l.d $f10,Q +add.d $f18,$f18,$f10 +add.d $f18,$f16,$f18 +s.d $f18,X +jal SR3750 +l.d $f18,One +l.d $f16,Z +add.d $f18,$f18,$f16 +l.d $f16,Half +mul.d $f18,$f18,$f16 +s.d $f18,Y +l.d $f18,Q +s.d $f18,X +jal SR3750 +lw $24,I +bne $24,$0,L.427 +la $24,1 +sw $24,Anomaly +L.427: +L.426: +L.424: +L.417: +L.409: +L.394: +lw $15,I +beq $15,$0,L.431 +lw $15,Anomaly +beq $15,$0,L.429 +L.431: +move $4,$0 +la $5,L.432 +jal BadCond +la $4,L.433 +l.d $f18,W +mfc1.d $6,$f18 +jal printf +la $4,L.434 +jal printf +la $24,1 +sw $24,SqRWrng +L.429: +L.390: +lw $24,Anomaly +bne $24,$0,L.435 +l.d $f18,Zero +l.d $f16,MinSqEr +c.lt.d $f16,$f18; bc1t L.437 +l.d $f16,MaxSqEr +c.le.d $f16,$f18; bc1f L.437 +la $24,1 +sw $24,RSqrt +la $4,L.439 +jal printf +b L.438 +L.437: +l.d $f18,U2 +l.d $f16,Half +l.d $f10,MaxSqEr +add.d $f10,$f10,$f18 +sub.d $f18,$f18,$f16 +c.le.d $f10,$f18; bc1f L.443 +l.d $f18,MinSqEr +c.le.d $f18,$f16; bc1f L.443 +l.d $f10,Radix +add.d $f18,$f18,$f10 +c.lt.d $f18,$f16; bc1f L.440 +L.443: +la $24,1 +sw $24,SqRWrng +b L.441 +L.440: +la $24,2 +sw $24,RSqrt +la $4,L.444 +jal printf +L.441: +L.438: +L.435: +lw $24,SqRWrng +beq $24,$0,L.445 +la $4,L.447 +jal printf +la $4,L.448 +l.d $f18,MinSqEr +l.d $f16,Half +sub.d $f18,$f18,$f16 +mfc1.d $6,$f18 +jal printf +la $4,L.449 +l.d $f18,Half +l.d $f16,MaxSqEr +add.d $f18,$f18,$f16 +mfc1.d $6,$f18 +jal printf +la $4,1 +l.d $f18,Radix +l.d $f16,MaxSqEr +l.d $f10,MinSqEr +sub.d $f16,$f16,$f10 +mul.d $f18,$f18,$f18 +c.lt.d $f16,$f18; bc1f L.452 +la $24,1 +sw $24,-124+240($sp) +b L.453 +L.452: +sw $0,-124+240($sp) +L.453: +lw $5,-124+240($sp) +la $6,L.451 +jal TstCond +L.445: +la $24,90 +sw $24,Milestone +jal Pause +la $4,L.454 +jal printf +sw $0,N +sw $0,I +l.d $f18,Zero +neg.d $f18,$f18 +s.d $f18,Z +la $15,3 +sw $15,M +sw $0,Break +L.455: +l.d $f18,One +s.d $f18,X +jal SR3980 +lw $24,I +la $15,10 +bgt $24,$15,L.458 +la $24,1023 +sw $24,I +jal SR3980 +L.458: +l.d $f18,Z +l.d $f16,MinusOne +c.eq.d $f18,$f16; bc1f L.460 +la $24,1 +sw $24,Break +b L.461 +L.460: +l.d $f18,MinusOne +s.d $f18,Z +jal PrintIfNPositive +sw $0,N +la $24,-4 +sw $24,I +L.461: +L.456: +lw $24,Break +beq $24,$0,L.455 +jal PrintIfNPositive +lw $24,N +sw $24,N1 +sw $0,N +l.d $f18,A1 +s.d $f18,Z +l.d $f12,W +jal log +mov.d $f18,$f0 +s.d $f18,-128+240($sp) +l.d $f12,A1 +jal log +mov.d $f18,$f0 +l.d $f16,Two +l.d $f10,-128+240($sp) +mul.d $f16,$f16,$f10 +div.d $f12,$f16,$f18 +jal floor +trunc.w.d $f2,$f0,$24; mfc1 $24,$f2 +sw $24,M +sw $0,Break +L.462: +l.d $f18,Z +s.d $f18,X +la $24,1 +sw $24,I +jal SR3980 +l.d $f18,Z +l.d $f16,AInvrse +c.eq.d $f18,$f16; bc1f L.465 +la $24,1 +sw $24,Break +b L.466 +L.465: +l.d $f18,AInvrse +s.d $f18,Z +L.466: +L.463: +lw $24,Break +beq $24,$0,L.462 +la $24,100 +sw $24,Milestone +lw $24,NoTrials +sw $24,M +l.d $f18,Three +s.d $f18,Z +L.467: +l.d $f18,Z +s.d $f18,X +la $24,1 +sw $24,I +jal SR3980 +L.470: +l.d $f18,Z +l.d $f16,Two +add.d $f18,$f18,$f16 +s.d $f18,Z +L.471: +l.d $f18,Three +s.d $f18,-136+240($sp) +l.d $f16,Z +div.d $f12,$f16,$f18 +jal floor +l.d $f16,-136+240($sp) +mul.d $f18,$f16,$f0 +l.d $f16,Z +c.eq.d $f18,$f16; bc1t L.470 +L.468: +l.d $f18,Z +l.d $f16,Eight +l.d $f10,Three +mul.d $f16,$f16,$f10 +c.lt.d $f18,$f16; bc1t L.467 +lw $24,N +ble $24,$0,L.473 +la $4,L.475 +jal printf +la $4,L.476 +jal printf +L.473: +jal PrintIfNPositive +lw $24,N +lw $15,N1 +addu $24,$24,$15 +sw $24,N +lw $24,N +bne $24,$0,L.477 +la $4,L.479 +jal printf +L.477: +lw $24,N +ble $24,$0,L.480 +jal Pause +b L.481 +L.480: +la $4,L.44 +jal printf +L.481: +la $24,110 +sw $24,Milestone +la $4,L.482 +jal printf +l.d $f18,U1 +s.d $f18,D +l.d $f18,Precision +s.d $f18,-136+240($sp) +mov.d $f12,$f18 +jal floor +l.d $f16,-136+240($sp) +c.eq.d $f16,$f0; bc1t L.483 +l.d $f18,BInvrse +s.d $f18,D +l.d $f18,Precision +s.d $f18,X +L.485: +l.d $f18,D +l.d $f16,BInvrse +mul.d $f18,$f18,$f16 +s.d $f18,D +l.d $f18,X +l.d $f16,One +sub.d $f18,$f18,$f16 +s.d $f18,X +L.486: +l.d $f18,X +l.d $f16,Zero +c.le.d $f18,$f16; bc1f L.485 +L.483: +l.d $f18,One +s.d $f18,Y +l.d $f18,D +s.d $f18,Z +L.488: +l.d $f18,Y +s.d $f18,C +l.d $f18,Z +s.d $f18,Y +l.d $f18,Y +mul.d $f18,$f18,$f18 +s.d $f18,Z +L.489: +l.d $f18,Z +l.d $f16,Y +c.le.d $f16,$f18; bc1t L.491 +add.d $f16,$f18,$f18 +c.le.d $f16,$f18; bc1f L.488 +L.491: +l.d $f18,C +s.d $f18,Y +l.d $f18,Y +l.d $f16,D +mul.d $f18,$f18,$f16 +s.d $f18,Z +L.492: +l.d $f18,Y +s.d $f18,C +l.d $f18,Z +s.d $f18,Y +l.d $f18,Y +l.d $f16,D +mul.d $f18,$f18,$f16 +s.d $f18,Z +L.493: +l.d $f18,Z +l.d $f16,Y +c.le.d $f16,$f18; bc1t L.495 +add.d $f16,$f18,$f18 +c.le.d $f16,$f18; bc1f L.492 +L.495: +l.d $f18,Radix +l.d $f16,Two +c.lt.d $f18,$f16; bc1f L.496 +l.d $f18,Two +s.d $f18,HInvrse +b L.497 +L.496: +l.d $f18,Radix +s.d $f18,HInvrse +L.497: +l.d $f18,One +l.d $f16,HInvrse +div.d $f16,$f18,$f16 +s.d $f16,H +l.d $f16,C +div.d $f18,$f18,$f16 +s.d $f18,CInvrse +s.d $f16,E0 +l.d $f18,E0 +l.d $f16,H +mul.d $f18,$f18,$f16 +s.d $f18,Z +L.498: +l.d $f18,E0 +s.d $f18,Y +l.d $f18,Z +s.d $f18,E0 +l.d $f18,E0 +l.d $f16,H +mul.d $f18,$f18,$f16 +s.d $f18,Z +L.499: +l.d $f18,Z +l.d $f16,E0 +c.le.d $f16,$f18; bc1t L.501 +add.d $f16,$f18,$f18 +c.le.d $f16,$f18; bc1f L.498 +L.501: +l.d $f18,E0 +s.d $f18,UfThold +l.d $f18,Zero +s.d $f18,E1 +s.d $f18,Q +l.d $f18,U2 +s.d $f18,E9 +l.d $f18,One +l.d $f16,E9 +add.d $f18,$f18,$f16 +s.d $f18,S +l.d $f18,C +l.d $f16,S +mul.d $f16,$f18,$f16 +s.d $f16,D +l.d $f16,D +c.le.d $f16,$f18; bc1f L.502 +l.d $f18,Radix +l.d $f16,U2 +mul.d $f18,$f18,$f16 +s.d $f18,E9 +l.d $f18,One +l.d $f16,E9 +add.d $f18,$f18,$f16 +s.d $f18,S +l.d $f18,C +l.d $f16,S +mul.d $f16,$f18,$f16 +s.d $f16,D +l.d $f16,D +c.le.d $f16,$f18; bc1f L.503 +move $4,$0 +la $5,L.506 +jal BadCond +l.d $f18,E0 +s.d $f18,Underflow +l.d $f18,Zero +s.d $f18,Y1 +l.d $f18,Z +s.d $f18,PseudoZero +jal Pause +b L.503 +L.502: +l.d $f18,D +s.d $f18,Underflow +l.d $f18,Underflow +l.d $f16,H +mul.d $f18,$f18,$f16 +s.d $f18,PseudoZero +l.d $f18,Zero +s.d $f18,UfThold +L.507: +l.d $f18,Underflow +s.d $f18,Y1 +l.d $f18,PseudoZero +s.d $f18,Underflow +l.d $f18,E1 +add.d $f16,$f18,$f18 +c.le.d $f16,$f18; bc1f L.510 +l.d $f18,Underflow +l.d $f16,HInvrse +mul.d $f18,$f18,$f16 +s.d $f18,Y2 +l.d $f18,Y1 +l.d $f16,Y2 +sub.d $f12,$f18,$f16 +jal fabs +s.d $f0,E1 +l.d $f18,Y1 +s.d $f18,Q +l.d $f18,UfThold +l.d $f16,Zero +c.eq.d $f18,$f16; bc1f L.512 +l.d $f18,Y1 +l.d $f16,Y2 +c.eq.d $f18,$f16; bc1t L.512 +l.d $f18,Y1 +s.d $f18,UfThold +L.512: +L.510: +l.d $f18,PseudoZero +l.d $f16,H +mul.d $f18,$f18,$f16 +s.d $f18,PseudoZero +L.508: +l.d $f18,PseudoZero +l.d $f16,Underflow +c.le.d $f16,$f18; bc1t L.514 +add.d $f16,$f18,$f18 +c.le.d $f16,$f18; bc1f L.507 +L.514: +L.503: +l.d $f18,PseudoZero +l.d $f16,Zero +c.eq.d $f18,$f16; bc1t L.515 +la $4,L.44 +jal printf +l.d $f18,PseudoZero +s.d $f18,Z +l.d $f16,Zero +c.le.d $f18,$f16; bc1f L.517 +move $4,$0 +la $5,L.519 +jal BadCond +la $4,L.520 +jal printf +la $4,L.521 +l.d $f18,PseudoZero +mfc1.d $6,$f18 +jal printf +l.d $f18,PseudoZero +neg.d $f18,$f18 +s.d $f18,X +l.d $f18,X +l.d $f16,Zero +c.le.d $f18,$f16; bc1f L.518 +la $4,L.524 +jal printf +la $4,L.525 +l.d $f18,X +mfc1.d $6,$f18 +jal printf +b L.518 +L.517: +la $4,3 +la $5,L.526 +jal BadCond +la $4,L.527 +l.d $f18,PseudoZero +mfc1.d $6,$f18 +jal printf +L.518: +jal TstPtUf +L.515: +la $24,120 +sw $24,Milestone +l.d $f18,CInvrse +l.d $f16,Y +mul.d $f16,$f18,$f16 +l.d $f10,Y1 +mul.d $f18,$f18,$f10 +c.le.d $f16,$f18; bc1t L.528 +l.d $f18,H +l.d $f16,S +mul.d $f18,$f18,$f16 +s.d $f18,S +l.d $f18,Underflow +s.d $f18,E0 +L.528: +l.d $f18,E1 +l.d $f16,Zero +c.eq.d $f18,$f16; bc1t L.530 +l.d $f16,E0 +c.eq.d $f18,$f16; bc1t L.530 +la $4,2 +la $5,L.157 +jal BadCond +l.d $f18,E1 +l.d $f16,E0 +c.lt.d $f18,$f16; bc1f L.532 +la $4,L.534 +jal printf +la $4,L.535 +jal printf +l.d $f18,PseudoZero +l.d $f16,Zero +c.eq.d $f18,$f16; bc1f L.533 +l.d $f18,E1 +s.d $f18,E0 +b L.533 +L.532: +la $4,L.538 +jal printf +la $4,L.539 +jal printf +L.533: +L.530: +la $4,L.540 +l.d $f18,E0 +mfc1.d $6,$f18 +jal printf +l.d $f18,E0 +s.d $f18,Z +jal TstPtUf +l.d $f18,E0 +s.d $f18,Underflow +lw $24,N +la $15,1 +bne $24,$15,L.541 +l.d $f18,Y +s.d $f18,Underflow +L.541: +la $24,4 +sw $24,I +l.d $f18,E1 +l.d $f16,Zero +c.eq.d $f18,$f16; bc1f L.543 +la $24,3 +sw $24,I +L.543: +l.d $f18,UfThold +l.d $f16,Zero +c.eq.d $f18,$f16; bc1f L.545 +lw $24,I +subu $24,$24,2 +sw $24,I +L.545: +la $24,1 +sw $24,UfNGrad +lw $24,I +la $15,1 +blt $24,$15,L.547 +la $15,4 +bgt $24,$15,L.547 +sll $24,$24,2 +lw $24,L.570-4($24) +.cpadd $24 +j $24 +.rdata +.align 2 +L.570: +.gpword L.549 +.gpword L.556 +.gpword L.561 +.gpword L.562 +.text +L.549: +l.d $f18,Underflow +s.d $f18,UfThold +l.d $f18,CInvrse +l.d $f16,Q +mul.d $f16,$f18,$f16 +l.d $f10,Y +mul.d $f18,$f18,$f10 +l.d $f10,S +mul.d $f18,$f18,$f10 +c.eq.d $f16,$f18; bc1t L.550 +l.d $f18,Y +s.d $f18,UfThold +move $4,$0 +la $5,L.552 +jal BadCond +la $4,L.553 +l.d $f18,UfThold +mfc1.d $6,$f18 +jal printf +la $4,L.554 +l.d $f18,C +mfc1.d $6,$f18 +jal printf +la $4,L.555 +jal printf +L.550: +jal Pause +b L.548 +L.556: +move $4,$0 +la $5,L.557 +jal BadCond +la $4,L.558 +jal printf +la $4,L.559 +l.d $f18,Q +mfc1.d $6,$f18 +l.d $f18,Y2 +s.d $f18,16($sp) +jal printf +l.d $f18,Q +l.d $f16,Y2 +sub.d $f12,$f18,$f16 +jal fabs +mov.d $f18,$f0 +la $4,L.560 +mfc1.d $6,$f18 +jal printf +l.d $f18,Q +s.d $f18,UfThold +b L.548 +L.561: +l.d $f18,X +s.d $f18,X +b L.548 +L.562: +l.d $f18,UfThold +l.d $f16,Q +c.eq.d $f16,$f18; bc1f L.563 +l.d $f16,E1 +l.d $f10,E0 +c.eq.d $f16,$f10; bc1f L.563 +l.d $f10,E9 +div.d $f16,$f16,$f10 +sub.d $f12,$f18,$f16 +jal fabs +l.d $f16,E1 +c.le.d $f0,$f16; bc1f L.563 +sw $0,UfNGrad +la $4,L.565 +jal printf +la $4,L.566 +jal printf +l.d $f18,E0 +l.d $f16,CInvrse +mul.d $f10,$f18,$f16 +s.d $f10,Y +l.d $f10,U2 +l.d $f8,Y +l.d $f6,OneAndHalf +add.d $f6,$f6,$f10 +mul.d $f8,$f8,$f6 +s.d $f8,Y +l.d $f8,One +add.d $f10,$f8,$f10 +mul.d $f16,$f16,$f10 +s.d $f16,X +l.d $f16,Y +l.d $f10,X +div.d $f16,$f16,$f10 +s.d $f16,Y +l.d $f16,Y +c.eq.d $f16,$f18; bc1f L.568 +la $24,1 +sw $24,-140+240($sp) +b L.569 +L.568: +sw $0,-140+240($sp) +L.569: +lw $24,-140+240($sp) +sw $24,IEEE +L.563: +L.547: +L.548: +lw $24,UfNGrad +beq $24,$0,L.572 +la $4,L.44 +jal printf +la $24,sigfpe +sw $24,sigsave +la $4,ovfl_buf +jal setjmp +beq $2,$0,L.574 +la $4,L.576 +jal printf +l.d $f18,H +add.d $f18,$f18,$f18 +s.d $f18,R +b L.575 +L.574: +l.d $f18,Underflow +l.d $f16,UfThold +div.d $f12,$f18,$f16 +jal sqrt +s.d $f0,R +L.575: +sw $0,sigsave +l.d $f18,R +l.d $f16,H +c.le.d $f18,$f16; bc1f L.577 +l.d $f18,R +l.d $f16,UfThold +mul.d $f16,$f18,$f16 +s.d $f16,Z +l.d $f16,One +l.d $f10,H +l.d $f8,Z +mul.d $f18,$f18,$f10 +add.d $f10,$f16,$f10 +mul.d $f18,$f18,$f10 +add.d $f18,$f16,$f18 +mul.d $f18,$f8,$f18 +s.d $f18,X +b L.578 +L.577: +l.d $f18,UfThold +s.d $f18,Z +l.d $f18,One +l.d $f16,H +l.d $f10,Z +mul.d $f8,$f16,$f16 +add.d $f16,$f18,$f16 +mul.d $f16,$f8,$f16 +add.d $f18,$f18,$f16 +mul.d $f18,$f10,$f18 +s.d $f18,X +L.578: +l.d $f18,X +l.d $f16,Z +c.eq.d $f18,$f16; bc1t L.579 +sub.d $f18,$f18,$f16 +l.d $f16,Zero +c.eq.d $f18,$f16; bc1f L.579 +la $4,3 +la $5,L.157 +jal BadCond +la $4,L.581 +l.d $f18,X +mfc1.d $6,$f18 +l.d $f18,Z +s.d $f18,16($sp) +jal printf +l.d $f18,X +l.d $f16,Z +sub.d $f18,$f18,$f16 +s.d $f18,Z9 +la $4,L.582 +l.d $f18,Z9 +mfc1.d $6,$f18 +jal printf +la $4,L.583 +jal printf +la $4,L.584 +jal printf +la $4,L.585 +jal printf +la $4,L.586 +jal printf +la $4,L.587 +jal printf +la $4,L.588 +jal printf +la $24,sigfpe +sw $24,sigsave +la $4,ovfl_buf +jal setjmp +beq $2,$0,L.589 +la $4,L.591 +jal printf +b L.590 +L.589: +la $4,L.592 +l.d $f18,Half +l.d $f16,X +l.d $f10,Z +div.d $f16,$f16,$f10 +sub.d $f16,$f16,$f18 +sub.d $f18,$f16,$f18 +mfc1.d $6,$f18 +jal printf +L.590: +sw $0,sigsave +L.579: +L.572: +la $4,L.593 +l.d $f18,UfThold +mfc1.d $6,$f18 +la $24,L.594 +sw $24,16($sp) +jal printf +la $4,L.595 +jal printf +la $4,L.596 +jal printf +l.d $f18,U1 +mul.d $f16,$f18,$f18 +s.d $f16,Y2 +l.d $f16,Y2 +mul.d $f16,$f16,$f16 +s.d $f16,Y +l.d $f16,Y +mul.d $f18,$f16,$f18 +s.d $f18,Y2 +l.d $f18,Y2 +l.d $f16,UfThold +c.le.d $f18,$f16; bc1f L.597 +l.d $f18,Y +l.d $f16,E0 +c.le.d $f18,$f16; bc1t L.599 +la $4,2 +la $5,L.157 +jal BadCond +la $24,5 +sw $24,I +b L.600 +L.599: +la $4,1 +la $5,L.157 +jal BadCond +la $24,4 +sw $24,I +L.600: +la $4,L.601 +lw $5,I +jal printf +L.597: +la $24,130 +sw $24,Milestone +l.d $f12,UfThold +jal log +mov.d $f18,$f0 +s.d $f18,-144+240($sp) +l.d $f12,HInvrse +jal log +l.d $f16,Half +l.d $f10,TwoForty +l.d $f8,-144+240($sp) +mul.d $f10,$f10,$f8 +div.d $f18,$f10,$f0 +sub.d $f12,$f16,$f18 +jal floor +neg.d $f18,$f0 +l.d $f16,TwoForty +div.d $f18,$f18,$f16 +s.d $f18,Y +l.d $f18,Y +add.d $f18,$f18,$f18 +s.d $f18,Y2 +la $4,L.602 +jal printf +la $4,L.603 +l.d $f18,HInvrse +mfc1.d $6,$f18 +l.d $f18,Y +s.d $f18,16($sp) +jal printf +la $4,L.604 +l.d $f18,HInvrse +mfc1.d $6,$f18 +l.d $f18,Y +s.d $f18,16($sp) +jal printf +l.d $f12,HInvrse +l.d $f14,Y2 +jal pow +s.d $f0,V9 +la $4,L.605 +l.d $f18,V9 +mfc1.d $6,$f18 +jal printf +l.d $f18,V9 +l.d $f16,Zero +c.lt.d $f18,$f16; bc1t L.608 +l.d $f16,Radix +add.d $f16,$f16,$f16 +l.d $f10,E9 +add.d $f16,$f16,$f10 +l.d $f10,UfThold +mul.d $f16,$f16,$f10 +c.le.d $f18,$f16; bc1t L.606 +L.608: +la $4,1 +la $5,L.609 +jal BadCond +la $4,L.610 +l.d $f18,UfThold +mfc1.d $6,$f18 +jal printf +b L.607 +L.606: +l.d $f18,V9 +l.d $f16,UfThold +l.d $f10,One +l.d $f8,E9 +add.d $f10,$f10,$f8 +mul.d $f16,$f16,$f10 +c.le.d $f18,$f16; bc1f L.611 +la $4,L.613 +jal printf +b L.612 +L.611: +la $4,2 +la $5,L.609 +jal BadCond +la $4,L.610 +l.d $f18,UfThold +mfc1.d $6,$f18 +jal printf +L.612: +L.607: +la $24,140 +sw $24,Milestone +la $4,L.44 +jal printf +l.d $f18,Zero +s.d $f18,X +la $24,2 +sw $24,I +l.d $f16,Two +l.d $f10,Three +mul.d $f16,$f16,$f10 +s.d $f16,Y +s.d $f18,Q +sw $0,N +L.614: +l.d $f18,X +s.d $f18,Z +lw $24,I +la $24,1($24) +sw $24,I +lw $24,I +l.d $f18,Y +addu $24,$24,$24 +mtc1 $24,$f16; cvt.d.w $f16,$f16 +div.d $f18,$f18,$f16 +s.d $f18,Y +l.d $f18,Y +l.d $f16,Q +add.d $f18,$f18,$f16 +s.d $f18,R +l.d $f18,Z +l.d $f16,R +add.d $f10,$f18,$f16 +s.d $f10,X +l.d $f10,X +sub.d $f18,$f18,$f10 +add.d $f18,$f18,$f16 +s.d $f18,Q +L.615: +l.d $f18,X +l.d $f16,Z +c.le.d $f18,$f16; bc1f L.614 +l.d $f18,OneAndHalf +l.d $f16,One +l.d $f10,Eight +div.d $f16,$f16,$f10 +add.d $f16,$f18,$f16 +l.d $f10,X +l.d $f8,ThirtyTwo +mul.d $f18,$f18,$f8 +div.d $f18,$f10,$f18 +add.d $f18,$f16,$f18 +s.d $f18,Z +l.d $f18,Z +mul.d $f18,$f18,$f18 +s.d $f18,X +l.d $f18,X +mul.d $f18,$f18,$f18 +s.d $f18,Exp2 +l.d $f18,F9 +s.d $f18,X +l.d $f18,X +l.d $f16,U1 +sub.d $f18,$f18,$f16 +s.d $f18,Y +la $4,L.617 +l.d $f18,Exp2 +mfc1.d $6,$f18 +jal printf +la $24,1 +sw $24,I +L.618: +l.d $f18,X +l.d $f16,BInvrse +sub.d $f10,$f18,$f16 +s.d $f10,Z +l.d $f10,One +add.d $f8,$f18,$f10 +l.d $f6,Z +sub.d $f16,$f10,$f16 +sub.d $f16,$f6,$f16 +div.d $f16,$f8,$f16 +s.d $f16,Z +mov.d $f12,$f18 +l.d $f14,Z +jal pow +l.d $f16,Exp2 +sub.d $f18,$f0,$f16 +s.d $f18,Q +l.d $f12,Q +jal fabs +l.d $f16,TwoForty +l.d $f10,U2 +mul.d $f16,$f16,$f10 +c.le.d $f0,$f16; bc1t L.622 +la $24,1 +sw $24,N +l.d $f18,BInvrse +l.d $f16,X +sub.d $f16,$f16,$f18 +l.d $f10,One +sub.d $f18,$f10,$f18 +sub.d $f18,$f16,$f18 +s.d $f18,V9 +la $4,2 +la $5,L.624 +jal BadCond +l.d $f12,X +l.d $f14,Z +jal pow +mov.d $f18,$f0 +la $4,L.625 +mfc1.d $6,$f18 +jal printf +la $4,L.626 +l.d $f18,V9 +mfc1.d $6,$f18 +l.d $f18,Z +s.d $f18,16($sp) +jal printf +la $4,L.627 +l.d $f18,Q +mfc1.d $6,$f18 +jal printf +la $4,L.628 +jal printf +la $4,L.629 +jal printf +b L.620 +L.622: +l.d $f18,Y +l.d $f16,X +sub.d $f16,$f18,$f16 +l.d $f10,Two +mul.d $f16,$f16,$f10 +add.d $f16,$f16,$f18 +s.d $f16,Z +s.d $f18,X +l.d $f18,Z +s.d $f18,Y +l.d $f18,X +l.d $f16,F9 +sub.d $f18,$f18,$f16 +l.d $f16,One +mul.d $f18,$f18,$f18 +add.d $f18,$f16,$f18 +s.d $f18,Z +l.d $f18,Z +l.d $f16,One +c.le.d $f18,$f16; bc1t L.630 +lw $24,I +lw $15,NoTrials +bge $24,$15,L.630 +lw $24,I +la $24,1($24) +sw $24,I +b L.618 +L.630: +l.d $f18,X +l.d $f16,One +c.le.d $f18,$f16; bc1t L.632 +lw $24,N +bne $24,$0,L.620 +la $4,L.636 +jal printf +b L.620 +L.632: +l.d $f18,U2 +l.d $f16,One +add.d $f16,$f16,$f18 +s.d $f16,X +add.d $f18,$f18,$f18 +s.d $f18,Y +l.d $f18,Y +l.d $f16,X +add.d $f18,$f18,$f16 +s.d $f18,Y +la $24,1 +sw $24,I +b L.618 +L.620: +la $24,150 +sw $24,Milestone +la $4,L.637 +jal printf +sw $0,N +l.d $f18,A1 +s.d $f18,Z +l.d $f12,C +jal log +mov.d $f18,$f0 +s.d $f18,-152+240($sp) +l.d $f12,A1 +jal log +l.d $f16,Half +l.d $f10,-152+240($sp) +div.d $f18,$f10,$f0 +sub.d $f12,$f16,$f18 +jal floor +s.d $f0,Q +sw $0,Break +L.638: +l.d $f18,CInvrse +s.d $f18,X +l.d $f12,Z +l.d $f14,Q +jal pow +s.d $f0,Y +jal IsYeqX +l.d $f18,Q +neg.d $f18,$f18 +s.d $f18,Q +l.d $f18,C +s.d $f18,X +l.d $f12,Z +l.d $f14,Q +jal pow +s.d $f0,Y +jal IsYeqX +l.d $f18,Z +l.d $f16,One +c.lt.d $f18,$f16; bc1f L.641 +la $24,1 +sw $24,Break +b L.642 +L.641: +l.d $f18,AInvrse +s.d $f18,Z +L.642: +L.639: +lw $24,Break +beq $24,$0,L.638 +jal PrintIfNPositive +lw $24,N +bne $24,$0,L.643 +la $4,L.645 +jal printf +L.643: +la $4,L.44 +jal printf +la $24,160 +sw $24,Milestone +jal Pause +la $4,L.646 +jal printf +la $4,L.647 +jal printf +l.d $f18,CInvrse +neg.d $f18,$f18 +s.d $f18,Y +l.d $f18,HInvrse +l.d $f16,Y +mul.d $f18,$f18,$f16 +s.d $f18,V9 +la $24,sigfpe +sw $24,sigsave +la $4,ovfl_buf +jal setjmp +beq $2,$0,L.648 +sw $0,I +l.d $f18,Y +s.d $f18,V9 +b L.650 +L.648: +L.651: +l.d $f18,Y +s.d $f18,V +l.d $f18,V9 +s.d $f18,Y +l.d $f18,HInvrse +l.d $f16,Y +mul.d $f18,$f18,$f16 +s.d $f18,V9 +L.652: +l.d $f18,V9 +l.d $f16,Y +c.lt.d $f18,$f16; bc1t L.651 +la $24,1 +sw $24,I +L.650: +sw $0,sigsave +l.d $f18,V9 +s.d $f18,Z +la $4,L.654 +jal printf +la $4,L.655 +l.d $f18,Y +mfc1.d $6,$f18 +jal printf +l.d $f18,Y +neg.d $f16,$f18 +s.d $f16,V9 +l.d $f16,V9 +s.d $f16,V0 +l.d $f16,V +sub.d $f18,$f16,$f18 +l.d $f10,V0 +add.d $f16,$f16,$f10 +c.eq.d $f18,$f16; bc1f L.656 +la $4,L.658 +jal printf +b L.657 +L.656: +la $4,L.659 +jal printf +la $4,3 +la $5,L.660 +jal BadCond +L.657: +l.d $f18,Z +l.d $f16,Y +c.eq.d $f18,$f16; bc1t L.661 +la $4,1 +la $5,L.157 +jal BadCond +la $4,L.663 +l.d $f18,Y +mfc1.d $6,$f18 +l.d $f18,Z +s.d $f18,16($sp) +jal printf +L.661: +lw $24,I +beq $24,$0,L.664 +l.d $f18,V +l.d $f16,HInvrse +l.d $f10,U2 +mul.d $f8,$f16,$f10 +sub.d $f8,$f8,$f16 +mul.d $f8,$f18,$f8 +s.d $f8,Y +l.d $f8,Y +l.d $f6,One +sub.d $f16,$f6,$f16 +mul.d $f16,$f16,$f10 +mul.d $f18,$f16,$f18 +add.d $f18,$f8,$f18 +s.d $f18,Z +l.d $f18,Z +l.d $f16,V0 +c.lt.d $f18,$f16; bc1f L.666 +l.d $f18,Z +s.d $f18,Y +L.666: +l.d $f18,Y +l.d $f16,V0 +c.lt.d $f18,$f16; bc1f L.668 +l.d $f18,Y +s.d $f18,V +L.668: +l.d $f18,V0 +l.d $f16,V +sub.d $f16,$f18,$f16 +c.lt.d $f16,$f18; bc1f L.665 +l.d $f18,V0 +s.d $f18,V +b L.665 +L.664: +l.d $f18,Y +l.d $f16,HInvrse +l.d $f10,U2 +mul.d $f8,$f16,$f10 +sub.d $f8,$f8,$f16 +mul.d $f8,$f18,$f8 +s.d $f8,V +l.d $f8,V +l.d $f6,One +sub.d $f16,$f6,$f16 +mul.d $f16,$f16,$f10 +mul.d $f18,$f16,$f18 +add.d $f18,$f8,$f18 +s.d $f18,V +L.665: +la $4,L.672 +l.d $f18,V +mfc1.d $6,$f18 +jal printf +lw $24,I +beq $24,$0,L.673 +la $4,L.675 +l.d $f18,V0 +mfc1.d $6,$f18 +jal printf +b L.674 +L.673: +la $4,L.676 +jal printf +L.674: +l.d $f18,V +l.d $f16,One +mul.d $f18,$f18,$f16 +s.d $f18,V9 +la $4,L.677 +l.d $f18,V9 +mfc1.d $6,$f18 +jal printf +l.d $f18,V +l.d $f16,One +div.d $f18,$f18,$f16 +s.d $f18,V9 +la $4,L.678 +l.d $f18,V9 +mfc1.d $6,$f18 +jal printf +la $4,L.679 +jal printf +la $4,L.680 +jal printf +la $24,170 +sw $24,Milestone +l.d $f18,V +neg.d $f16,$f18 +c.lt.d $f16,$f18; bc1f L.685 +l.d $f16,V0 +neg.d $f10,$f16 +c.lt.d $f10,$f16; bc1f L.685 +l.d $f16,UfThold +neg.d $f10,$f16 +c.lt.d $f10,$f18; bc1f L.685 +c.lt.d $f16,$f18; bc1t L.681 +L.685: +move $4,$0 +la $5,L.686 +jal BadCond +la $4,L.687 +l.d $f18,V +mfc1.d $6,$f18 +l.d $f18,V0 +s.d $f18,16($sp) +l.d $f18,UfThold +s.d $f18,24($sp) +jal printf +L.681: +la $24,175 +sw $24,Milestone +la $4,L.44 +jal printf +la $24,1 +sw $24,Indx +L.688: +lw $24,Indx +la $15,1 +beq $24,$15,L.694 +la $15,2 +beq $24,$15,L.695 +la $15,3 +beq $24,$15,L.696 +b L.692 +L.694: +l.d $f18,UfThold +s.d $f18,Z +b L.693 +L.695: +l.d $f18,E0 +s.d $f18,Z +b L.693 +L.696: +l.d $f18,PseudoZero +s.d $f18,Z +L.692: +L.693: +l.d $f18,Z +l.d $f16,Zero +c.eq.d $f18,$f16; bc1t L.697 +l.d $f12,Z +jal sqrt +s.d $f0,V9 +l.d $f18,V9 +mul.d $f18,$f18,$f18 +s.d $f18,Y +l.d $f18,Y +l.d $f16,One +l.d $f10,Radix +l.d $f8,E9 +mul.d $f10,$f10,$f8 +l.d $f8,Z +sub.d $f6,$f16,$f10 +div.d $f6,$f18,$f6 +c.lt.d $f6,$f8; bc1t L.701 +add.d $f16,$f16,$f10 +mul.d $f16,$f16,$f8 +c.le.d $f18,$f16; bc1t L.699 +L.701: +l.d $f18,V9 +l.d $f16,U1 +c.le.d $f18,$f16; bc1t L.702 +la $4,1 +la $5,L.157 +jal BadCond +b L.703 +L.702: +la $4,2 +la $5,L.157 +jal BadCond +L.703: +la $4,L.704 +l.d $f18,Z +mfc1.d $6,$f18 +jal printf +la $4,L.705 +l.d $f18,Y +mfc1.d $6,$f18 +jal printf +L.699: +L.697: +L.689: +lw $24,Indx +la $24,1($24) +sw $24,Indx +lw $24,Indx +la $15,3 +ble $24,$15,L.688 +la $24,180 +sw $24,Milestone +la $24,1 +sw $24,Indx +L.706: +lw $24,Indx +la $15,1 +bne $24,$15,L.710 +l.d $f18,V +s.d $f18,Z +b L.711 +L.710: +l.d $f18,V0 +s.d $f18,Z +L.711: +l.d $f12,Z +jal sqrt +s.d $f0,V9 +l.d $f18,V9 +l.d $f16,One +l.d $f10,Radix +l.d $f8,E9 +mul.d $f10,$f10,$f8 +sub.d $f16,$f16,$f10 +mul.d $f16,$f16,$f18 +s.d $f16,X +l.d $f16,X +mul.d $f18,$f18,$f16 +s.d $f18,V9 +l.d $f18,V9 +l.d $f16,Z +l.d $f10,One +l.d $f8,Two +l.d $f6,Radix +mul.d $f8,$f8,$f6 +l.d $f6,E9 +mul.d $f8,$f8,$f6 +sub.d $f10,$f10,$f8 +mul.d $f10,$f10,$f16 +c.lt.d $f18,$f10; bc1t L.714 +c.le.d $f18,$f16; bc1t L.712 +L.714: +l.d $f18,V9 +s.d $f18,Y +l.d $f18,X +l.d $f16,W +c.lt.d $f18,$f16; bc1f L.715 +la $4,1 +la $5,L.157 +jal BadCond +b L.716 +L.715: +la $4,2 +la $5,L.157 +jal BadCond +L.716: +la $4,L.717 +l.d $f18,Z +mfc1.d $6,$f18 +jal printf +la $4,L.718 +l.d $f18,Y +mfc1.d $6,$f18 +jal printf +L.712: +L.707: +lw $24,Indx +la $24,1($24) +sw $24,Indx +lw $24,Indx +la $15,2 +ble $24,$15,L.706 +la $24,190 +sw $24,Milestone +jal Pause +l.d $f18,UfThold +l.d $f16,V +mul.d $f18,$f18,$f16 +s.d $f18,X +l.d $f18,Radix +mul.d $f18,$f18,$f18 +s.d $f18,Y +l.d $f18,X +l.d $f16,Y +mul.d $f10,$f18,$f16 +l.d $f8,One +c.lt.d $f10,$f8; bc1t L.721 +c.le.d $f18,$f16; bc1t L.719 +L.721: +l.d $f18,X +l.d $f16,Y +l.d $f10,U1 +mul.d $f8,$f18,$f16 +c.lt.d $f8,$f10; bc1t L.724 +div.d $f16,$f16,$f10 +c.le.d $f18,$f16; bc1t L.722 +L.724: +la $4,2 +la $5,L.725 +jal BadCond +b L.723 +L.722: +la $4,3 +la $5,L.157 +jal BadCond +L.723: +la $4,L.726 +l.d $f18,X +mfc1.d $6,$f18 +la $24,L.727 +sw $24,16($sp) +jal printf +L.719: +la $24,200 +sw $24,Milestone +la $24,1 +sw $24,Indx +L.728: +l.d $f18,F9 +s.d $f18,X +lw $24,Indx +la $15,2 +blt $24,$15,L.732 +la $15,5 +bgt $24,$15,L.732 +sll $24,$24,2 +lw $24,L.738-8($24) +.cpadd $24 +j $24 +.rdata +.align 2 +L.738: +.gpword L.734 +.gpword L.735 +.gpword L.736 +.gpword L.737 +.text +L.734: +l.d $f18,One +l.d $f16,U2 +add.d $f18,$f18,$f16 +s.d $f18,X +b L.733 +L.735: +l.d $f18,V +s.d $f18,X +b L.733 +L.736: +l.d $f18,UfThold +s.d $f18,X +b L.733 +L.737: +l.d $f18,Radix +s.d $f18,X +L.732: +L.733: +l.d $f18,X +s.d $f18,Y +la $24,sigfpe +sw $24,sigsave +la $4,ovfl_buf +jal setjmp +beq $2,$0,L.740 +la $4,L.742 +l.d $f18,X +mfc1.d $6,$f18 +jal printf +b L.741 +L.740: +l.d $f18,Half +l.d $f16,Y +l.d $f10,X +div.d $f16,$f16,$f10 +sub.d $f16,$f16,$f18 +sub.d $f18,$f16,$f18 +s.d $f18,V9 +l.d $f18,V9 +l.d $f16,Zero +c.eq.d $f18,$f16; bc1f L.743 +b L.729 +L.743: +l.d $f18,V9 +l.d $f16,U1 +neg.d $f16,$f16 +c.eq.d $f18,$f16; bc1f L.745 +lw $24,Indx +la $15,5 +bge $24,$15,L.745 +la $4,3 +la $5,L.157 +jal BadCond +b L.746 +L.745: +la $4,1 +la $5,L.157 +jal BadCond +L.746: +la $4,L.747 +l.d $f18,X +mfc1.d $6,$f18 +jal printf +la $4,L.748 +l.d $f18,V9 +mfc1.d $6,$f18 +jal printf +L.741: +sw $0,sigsave +L.729: +lw $24,Indx +la $24,1($24) +sw $24,Indx +lw $24,Indx +la $15,5 +ble $24,$15,L.728 +la $24,210 +sw $24,Milestone +l.d $f18,Zero +s.d $f18,MyZero +la $4,L.44 +jal printf +la $4,L.749 +jal printf +la $24,sigfpe +sw $24,sigsave +la $4,L.750 +jal printf +la $4,ovfl_buf +jal setjmp +bne $2,$0,L.751 +la $4,L.753 +l.d $f18,One +l.d $f16,MyZero +div.d $f18,$f18,$f16 +mfc1.d $6,$f18 +jal printf +L.751: +sw $0,sigsave +la $24,sigfpe +sw $24,sigsave +la $4,L.754 +jal printf +la $4,ovfl_buf +jal setjmp +bne $2,$0,L.755 +la $4,L.753 +l.d $f18,Zero +l.d $f16,MyZero +div.d $f18,$f18,$f16 +mfc1.d $6,$f18 +jal printf +L.755: +sw $0,sigsave +la $24,220 +sw $24,Milestone +jal Pause +la $4,L.44 +jal printf +sw $0,-156+240($sp) +L.762: +lw $24,-156+240($sp) +sll $24,$24,2 +lw $24,ErrCnt($24) +beq $24,$0,L.766 +la $4,L.768 +lw $24,-156+240($sp) +sll $24,$24,2 +lw $5,L.757($24) +lw $6,ErrCnt($24) +jal printf +L.766: +L.763: +lw $24,-156+240($sp) +la $24,1($24) +sw $24,-156+240($sp) +lw $24,-156+240($sp) +la $15,4 +blt $24,$15,L.762 +la $4,L.44 +jal printf +lw $24,ErrCnt +lw $15,ErrCnt+4 +addu $24,$24,$15 +lw $15,ErrCnt+8 +addu $24,$24,$15 +lw $15,ErrCnt+12 +addu $24,$24,$15 +ble $24,$0,L.769 +lw $15,ErrCnt +lw $14,ErrCnt+4 +addu $15,$15,$14 +lw $14,ErrCnt+8 +addu $15,$15,$14 +bne $15,$0,L.774 +lw $15,ErrCnt+12 +ble $15,$0,L.774 +la $4,L.779 +jal printf +la $4,L.780 +jal printf +L.774: +lw $15,ErrCnt +lw $14,ErrCnt+4 +addu $15,$15,$14 +bne $15,$0,L.781 +lw $15,ErrCnt+8 +ble $15,$0,L.781 +la $4,L.785 +jal printf +la $4,L.786 +jal printf +L.781: +lw $24,ErrCnt +lw $15,ErrCnt+4 +addu $24,$24,$15 +ble $24,$0,L.787 +la $4,L.790 +jal printf +la $4,L.791 +jal printf +L.787: +lw $24,ErrCnt +ble $24,$0,L.770 +la $4,L.794 +jal printf +la $4,L.795 +jal printf +b L.770 +L.769: +la $4,L.796 +jal printf +la $24,1 +lw $15,RMult +bne $15,$24,L.801 +lw $15,RDiv +bne $15,$24,L.801 +lw $15,RAddSub +bne $15,$24,L.801 +lw $15,RSqrt +beq $15,$24,L.797 +L.801: +la $4,L.802 +jal printf +b L.798 +L.797: +l.d $f18,One +l.d $f16,StickyBit +c.lt.d $f16,$f18; bc1t L.803 +l.d $f16,Radix +l.d $f10,Two +sub.d $f10,$f16,$f10 +l.d $f8,Nine +sub.d $f16,$f16,$f8 +sub.d $f18,$f16,$f18 +mul.d $f18,$f10,$f18 +l.d $f16,Zero +c.eq.d $f18,$f16; bc1f L.803 +la $4,L.805 +jal printf +la $4,L.806 +jal printf +l.d $f18,Two +l.d $f16,Radix +c.eq.d $f16,$f18; bc1f L.807 +l.d $f16,Precision +l.d $f10,TwentySeven +l.d $f8,Four +l.d $f6,Three +mul.d $f8,$f8,$f6 +mul.d $f18,$f8,$f18 +sub.d $f18,$f16,$f18 +sub.d $f16,$f16,$f10 +sub.d $f16,$f16,$f10 +l.d $f10,One +add.d $f16,$f16,$f10 +mul.d $f18,$f18,$f16 +l.d $f16,Zero +c.eq.d $f18,$f16; bc1f L.807 +la $4,L.809 +jal printf +b L.808 +L.807: +la $4,L.810 +jal printf +L.808: +lw $24,IEEE +beq $24,$0,L.811 +la $4,L.813 +jal printf +b L.812 +L.811: +la $4,L.814 +jal printf +la $4,L.815 +jal printf +L.812: +L.803: +la $4,L.816 +jal printf +L.798: +L.770: +lw $24,fpecount +beq $24,$0,L.817 +la $4,L.819 +lw $5,fpecount +jal printf +L.817: +la $4,L.820 +jal printf +move $2,$0 +L.6: +lw $16,32($sp) +lw $17,36($sp) +lw $18,40($sp) +lw $19,44($sp) +lw $20,48($sp) +lw $21,52($sp) +lw $22,56($sp) +lw $23,60($sp) +lw $25,64($sp) +lw $30,68($sp) +lw $31,72($sp) +addu $sp,$sp,240 +j $31 +.end main +.globl Sign +.text +.align 2 +.ent Sign +Sign: +.frame $sp,8,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-8 +.fmask 0xc0000000,-8 +s.d $f30,0($sp) +l.d $f18,L.7 +c.lt.d $f12,$f18; bc1t L.823 +l.d $f30,L.8 +b L.824 +L.823: +l.d $f30,L.825 +L.824: +mov.d $f0,$f30 +L.821: +l.d $f30,0($sp) +addu $sp,$sp,8 +j $31 +.end Sign +.globl Pause +.text +.align 2 +.ent Pause +Pause: +.frame $sp,24,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-24 +.mask 0x82000000,-4 +.cprestore 16 +sw $31,20($sp) +la $4,L.827 +lw $5,Milestone +jal printf +la $4,L.828 +lw $5,PageNo +jal printf +lw $24,Milestone +la $24,1($24) +sw $24,Milestone +lw $24,PageNo +la $24,1($24) +sw $24,PageNo +move $2,$0 +L.826: +lw $25,16($sp) +lw $31,20($sp) +addu $sp,$sp,24 +j $31 +.end Pause +.globl TstCond +.text +.align 2 +.ent TstCond +TstCond: +.frame $sp,24,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-24 +.mask 0x82000000,-4 +.cprestore 16 +sw $31,20($sp) +sw $4,24($sp) +sw $5,28($sp) +sw $6,32($sp) +lw $24,4+24($sp) +bne $24,$0,L.830 +lw $4,0+24($sp) +lw $5,8+24($sp) +jal BadCond +la $4,L.813 +jal printf +L.830: +move $2,$0 +L.829: +lw $25,16($sp) +lw $31,20($sp) +addu $sp,$sp,24 +j $31 +.end TstCond +.data +.align 2 +L.833: +.word L.834 +.word L.835 +.word L.836 +.word L.837 +.globl BadCond +.text +.text +.align 2 +.ent BadCond +BadCond: +.frame $sp,32,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-32 +.mask 0xc2000000,-8 +.cprestore 16 +sw $30,20($sp) +sw $31,24($sp) +move $30,$4 +sw $5,36($sp) +sll $24,$30,2 +la $24,ErrCnt($24) +lw $15,($24) +la $15,1($15) +sw $15,($24) +la $4,L.838 +sll $24,$30,2 +lw $5,L.833($24) +lw $6,4+32($sp) +jal printf +move $2,$0 +L.832: +lw $25,16($sp) +lw $30,20($sp) +lw $31,24($sp) +addu $sp,$sp,32 +j $31 +.end BadCond +.globl Random +.text +.align 2 +.ent Random +Random: +.frame $sp,40,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-40 +.fmask 0xf0000000,-16 +.mask 0x82000000,-4 +s.d $f28,16($sp) +s.d $f30,24($sp) +.cprestore 32 +sw $31,36($sp) +l.d $f18,Random1 +l.d $f16,Random9 +add.d $f30,$f18,$f16 +mul.d $f28,$f30,$f30 +mul.d $f28,$f28,$f28 +mul.d $f30,$f30,$f28 +mov.d $f12,$f30 +jal floor +sub.d $f28,$f30,$f0 +l.d $f18,L.840 +mul.d $f18,$f18,$f30 +add.d $f18,$f28,$f18 +s.d $f18,Random1 +l.d $f0,Random1 +L.839: +l.d $f28,16($sp) +l.d $f30,24($sp) +lw $25,32($sp) +lw $31,36($sp) +addu $sp,$sp,40 +j $31 +.end Random +.globl SqXMinX +.text +.align 2 +.ent SqXMinX +SqXMinX: +.frame $sp,56,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-56 +.fmask 0xc0000000,-24 +.mask 0x82000000,-12 +s.d $f30,32($sp) +.cprestore 40 +sw $31,44($sp) +sw $4,56($sp) +l.d $f18,X +l.d $f16,BInvrse +mul.d $f30,$f18,$f16 +sub.d $f16,$f18,$f30 +s.d $f16,-8+56($sp) +mul.d $f12,$f18,$f18 +jal sqrt +sub.d $f18,$f0,$f30 +l.d $f16,-8+56($sp) +sub.d $f18,$f18,$f16 +l.d $f16,OneUlp +div.d $f18,$f18,$f16 +s.d $f18,SqEr +l.d $f18,SqEr +l.d $f16,Zero +c.eq.d $f18,$f16; bc1t L.842 +l.d $f18,SqEr +l.d $f16,MinSqEr +c.lt.d $f18,$f16; bc1f L.844 +l.d $f18,SqEr +s.d $f18,MinSqEr +L.844: +l.d $f18,SqEr +l.d $f16,MaxSqEr +c.le.d $f18,$f16; bc1t L.846 +l.d $f18,SqEr +s.d $f18,MaxSqEr +L.846: +l.d $f18,J +l.d $f16,L.8 +add.d $f18,$f18,$f16 +s.d $f18,J +lw $4,0+56($sp) +la $5,L.44 +jal BadCond +la $4,L.848 +l.d $f18,X +mul.d $f16,$f18,$f18 +mfc1.d $6,$f16 +s.d $f18,16($sp) +l.d $f18,OneUlp +l.d $f16,SqEr +mul.d $f18,$f18,$f16 +s.d $f18,24($sp) +jal printf +la $4,L.849 +jal printf +L.842: +move $2,$0 +L.841: +l.d $f30,32($sp) +lw $25,40($sp) +lw $31,44($sp) +addu $sp,$sp,56 +j $31 +.end SqXMinX +.globl NewD +.text +.align 2 +.ent NewD +NewD: +.frame $sp,24,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-24 +.mask 0x82000000,-4 +.cprestore 16 +sw $31,20($sp) +l.d $f18,Z1 +l.d $f16,Q +mul.d $f18,$f18,$f16 +s.d $f18,X +l.d $f18,Half +l.d $f16,X +l.d $f10,Radix +div.d $f16,$f16,$f10 +sub.d $f12,$f18,$f16 +jal floor +l.d $f16,Radix +mul.d $f18,$f0,$f16 +l.d $f10,X +add.d $f18,$f18,$f10 +s.d $f18,X +l.d $f18,X +l.d $f10,Z +l.d $f8,D +l.d $f6,Q +mul.d $f4,$f18,$f10 +sub.d $f6,$f6,$f4 +div.d $f6,$f6,$f16 +mul.d $f4,$f18,$f18 +div.d $f16,$f8,$f16 +mul.d $f16,$f4,$f16 +add.d $f16,$f6,$f16 +s.d $f16,Q +l.d $f16,Two +mul.d $f18,$f16,$f18 +mul.d $f18,$f18,$f8 +sub.d $f18,$f10,$f18 +s.d $f18,Z +l.d $f18,Z +l.d $f16,Zero +c.le.d $f18,$f16; bc1f L.851 +l.d $f18,Z +neg.d $f18,$f18 +s.d $f18,Z +l.d $f18,Z1 +neg.d $f18,$f18 +s.d $f18,Z1 +L.851: +l.d $f18,Radix +l.d $f16,D +mul.d $f18,$f18,$f16 +s.d $f18,D +move $2,$0 +L.850: +lw $25,16($sp) +lw $31,20($sp) +addu $sp,$sp,24 +j $31 +.end NewD +.globl SR3750 +.text +.align 2 +.ent SR3750 +SR3750: +.frame $sp,24,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-24 +.mask 0x82000000,-4 +.cprestore 16 +sw $31,20($sp) +l.d $f18,X +l.d $f16,Radix +l.d $f10,Z2 +sub.d $f8,$f18,$f16 +sub.d $f16,$f10,$f16 +c.lt.d $f8,$f16; bc1t L.854 +sub.d $f18,$f18,$f10 +l.d $f16,W +sub.d $f16,$f16,$f10 +c.le.d $f18,$f16; bc1f L.854 +lw $24,I +la $24,1($24) +sw $24,I +l.d $f18,X +l.d $f16,D +mul.d $f12,$f18,$f16 +jal sqrt +s.d $f0,X2 +l.d $f18,Z2 +l.d $f16,Y +l.d $f10,X2 +sub.d $f10,$f10,$f18 +sub.d $f18,$f16,$f18 +sub.d $f18,$f10,$f18 +s.d $f18,Y2 +l.d $f18,Half +l.d $f10,X8 +sub.d $f16,$f16,$f18 +div.d $f16,$f10,$f16 +s.d $f16,X2 +l.d $f16,X2 +mul.d $f10,$f18,$f16 +mul.d $f10,$f10,$f16 +sub.d $f16,$f16,$f10 +s.d $f16,X2 +l.d $f16,Y2 +add.d $f16,$f16,$f18 +l.d $f10,X2 +sub.d $f18,$f18,$f10 +add.d $f18,$f16,$f18 +s.d $f18,SqEr +l.d $f18,SqEr +l.d $f16,MinSqEr +c.lt.d $f18,$f16; bc1f L.856 +l.d $f18,SqEr +s.d $f18,MinSqEr +L.856: +l.d $f18,Y2 +l.d $f16,X2 +sub.d $f18,$f18,$f16 +s.d $f18,SqEr +l.d $f18,SqEr +l.d $f16,MaxSqEr +c.le.d $f18,$f16; bc1t L.858 +l.d $f18,SqEr +s.d $f18,MaxSqEr +L.858: +L.854: +move $2,$0 +L.853: +lw $25,16($sp) +lw $31,20($sp) +addu $sp,$sp,24 +j $31 +.end SR3750 +.globl IsYeqX +.text +.align 2 +.ent IsYeqX +IsYeqX: +.frame $sp,32,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-32 +.mask 0x82000000,-4 +.cprestore 24 +sw $31,28($sp) +l.d $f18,Y +l.d $f16,X +c.eq.d $f18,$f16; bc1t L.861 +lw $24,N +bgt $24,$0,L.863 +l.d $f18,Zero +l.d $f16,Z +c.eq.d $f16,$f18; bc1f L.865 +l.d $f16,Q +c.le.d $f16,$f18; bc1f L.865 +la $4,L.867 +jal printf +b L.866 +L.865: +la $4,2 +la $5,L.868 +jal BadCond +L.866: +la $4,L.869 +l.d $f18,Z +mfc1.d $6,$f18 +l.d $f18,Q +s.d $f18,16($sp) +jal printf +la $4,L.870 +l.d $f18,Y +mfc1.d $6,$f18 +jal printf +la $4,L.871 +l.d $f18,X +mfc1.d $6,$f18 +jal printf +la $4,L.872 +l.d $f18,Y +l.d $f16,X +sub.d $f18,$f18,$f16 +mfc1.d $6,$f18 +jal printf +L.863: +lw $24,N +la $24,1($24) +sw $24,N +L.861: +move $2,$0 +L.860: +lw $25,24($sp) +lw $31,28($sp) +addu $sp,$sp,32 +j $31 +.end IsYeqX +.globl SR3980 +.text +.align 2 +.ent SR3980 +SR3980: +.frame $sp,24,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-24 +.mask 0x82000000,-4 +.cprestore 16 +sw $31,20($sp) +L.874: +lw $24,I +mtc1 $24,$f18; cvt.d.w $f18,$f18 +s.d $f18,Q +l.d $f12,Z +l.d $f14,Q +jal pow +s.d $f0,Y +jal IsYeqX +lw $24,I +la $24,1($24) +sw $24,I +lw $15,M +ble $24,$15,L.877 +b L.876 +L.877: +l.d $f18,Z +l.d $f16,X +mul.d $f18,$f18,$f16 +s.d $f18,X +L.875: +l.d $f18,X +l.d $f16,W +c.lt.d $f18,$f16; bc1t L.874 +L.876: +move $2,$0 +L.873: +lw $25,16($sp) +lw $31,20($sp) +addu $sp,$sp,24 +j $31 +.end SR3980 +.globl PrintIfNPositive +.text +.align 2 +.ent PrintIfNPositive +PrintIfNPositive: +.frame $sp,24,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-24 +.mask 0x82000000,-4 +.cprestore 16 +sw $31,20($sp) +lw $24,N +ble $24,$0,L.880 +la $4,L.882 +lw $5,N +jal printf +L.880: +move $2,$0 +L.879: +lw $25,16($sp) +lw $31,20($sp) +addu $sp,$sp,24 +j $31 +.end PrintIfNPositive +.globl TstPtUf +.text +.align 2 +.ent TstPtUf +TstPtUf: +.frame $sp,24,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-24 +.mask 0x82000000,-4 +.cprestore 16 +sw $31,20($sp) +sw $0,N +l.d $f18,Z +l.d $f16,Zero +c.eq.d $f18,$f16; bc1t L.884 +la $4,L.886 +jal printf +la $4,L.887 +jal printf +la $24,sigfpe +sw $24,sigsave +la $4,ovfl_buf +jal setjmp +beq $2,$0,L.888 +b L.890 +L.888: +l.d $f18,Z +add.d $f16,$f18,$f18 +div.d $f18,$f16,$f18 +s.d $f18,Q9 +la $4,L.891 +l.d $f18,Q9 +mfc1.d $6,$f18 +jal printf +l.d $f18,Q9 +l.d $f16,Two +sub.d $f12,$f18,$f16 +jal fabs +l.d $f16,Radix +l.d $f10,U2 +mul.d $f16,$f16,$f10 +c.lt.d $f0,$f16; bc1f L.892 +la $4,L.894 +jal printf +la $4,L.895 +jal printf +b L.893 +L.892: +l.d $f18,Q9 +l.d $f16,One +c.lt.d $f18,$f16; bc1t L.898 +l.d $f16,Two +c.le.d $f18,$f16; bc1t L.896 +L.898: +L.890: +la $24,1 +sw $24,N +lw $24,ErrCnt+4 +la $24,1($24) +sw $24,ErrCnt+4 +la $4,L.901 +jal printf +b L.897 +L.896: +la $24,1 +sw $24,N +lw $24,ErrCnt+8 +la $24,1($24) +sw $24,ErrCnt+8 +la $4,L.904 +jal printf +L.897: +L.893: +sw $0,sigsave +l.d $f18,Z +l.d $f16,One +mul.d $f10,$f18,$f16 +s.d $f10,V9 +l.d $f10,V9 +s.d $f10,Random1 +mul.d $f10,$f16,$f18 +s.d $f10,V9 +l.d $f10,V9 +s.d $f10,Random2 +div.d $f18,$f18,$f16 +s.d $f18,V9 +l.d $f18,Z +l.d $f16,Random1 +c.eq.d $f18,$f16; bc1f L.905 +l.d $f16,Random2 +c.eq.d $f18,$f16; bc1f L.905 +l.d $f16,V9 +c.eq.d $f18,$f16; bc1f L.905 +lw $24,N +ble $24,$0,L.906 +jal Pause +b L.906 +L.905: +la $24,1 +sw $24,N +la $4,2 +la $5,L.909 +jal BadCond +la $4,L.910 +l.d $f18,Z +mfc1.d $6,$f18 +jal printf +l.d $f18,Z +l.d $f16,Random1 +c.eq.d $f18,$f16; bc1t L.911 +la $4,L.913 +l.d $f18,Random1 +mfc1.d $6,$f18 +jal printf +L.911: +l.d $f18,Random2 +l.d $f16,Z +c.eq.d $f16,$f18; bc1t L.914 +l.d $f16,Random1 +c.eq.d $f18,$f16; bc1t L.914 +la $4,L.916 +l.d $f18,Random2 +mfc1.d $6,$f18 +jal printf +L.914: +l.d $f18,Z +l.d $f16,V9 +c.eq.d $f18,$f16; bc1t L.917 +la $4,L.919 +l.d $f18,V9 +mfc1.d $6,$f18 +jal printf +L.917: +l.d $f18,Random2 +l.d $f16,Random1 +c.eq.d $f18,$f16; bc1t L.920 +lw $24,ErrCnt+8 +la $24,1($24) +sw $24,ErrCnt+8 +la $4,2 +la $5,L.924 +jal BadCond +la $4,L.925 +l.d $f18,Random2 +mfc1.d $6,$f18 +jal printf +la $4,L.926 +l.d $f18,Random1 +mfc1.d $6,$f18 +jal printf +L.920: +jal Pause +L.906: +L.884: +move $2,$0 +L.883: +lw $25,16($sp) +lw $31,20($sp) +addu $sp,$sp,24 +j $31 +.end TstPtUf +.globl notify +.text +.align 2 +.ent notify +notify: +.frame $sp,24,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-24 +.mask 0x82000000,-4 +.cprestore 16 +sw $31,20($sp) +sw $4,24($sp) +la $4,L.928 +lw $5,0+24($sp) +jal printf +la $4,L.929 +jal printf +move $2,$0 +L.927: +lw $25,16($sp) +lw $31,20($sp) +addu $sp,$sp,24 +j $31 +.end notify +.globl msglist +.text +.align 2 +.ent msglist +msglist: +.frame $sp,32,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-32 +.mask 0xc2000000,-8 +.cprestore 16 +sw $30,20($sp) +sw $31,24($sp) +move $30,$4 +b L.932 +L.931: +la $4,L.934 +move $24,$30 +la $30,4($24) +lw $5,($24) +jal printf +L.932: +lw $24,($30) +bne $24,$0,L.931 +move $2,$0 +L.930: +lw $25,16($sp) +lw $30,20($sp) +lw $31,24($sp) +addu $sp,$sp,32 +j $31 +.end msglist +.data +.align 2 +L.936: +.word L.937 +.word L.938 +.word L.939 +.word L.940 +.word L.941 +.word L.942 +.word L.943 +.word L.944 +.word L.945 +.word 0x0 +.globl Instructions +.text +.text +.align 2 +.ent Instructions +Instructions: +.frame $sp,24,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-24 +.mask 0x82000000,-4 +.cprestore 16 +sw $31,20($sp) +la $4,L.936 +jal msglist +move $2,$0 +L.935: +lw $25,16($sp) +lw $31,20($sp) +addu $sp,$sp,24 +j $31 +.end Instructions +.data +.align 2 +L.947: +.word L.948 +.word L.949 +.word L.950 +.word L.951 +.word L.952 +.word L.953 +.word L.954 +.word L.955 +.word L.956 +.word L.957 +.word L.958 +.word L.959 +.word L.960 +.word L.961 +.word 0x0 +.globl Heading +.text +.text +.align 2 +.ent Heading +Heading: +.frame $sp,24,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-24 +.mask 0x82000000,-4 +.cprestore 16 +sw $31,20($sp) +la $4,L.947 +jal msglist +move $2,$0 +L.946: +lw $25,16($sp) +lw $31,20($sp) +addu $sp,$sp,24 +j $31 +.end Heading +.data +.align 2 +L.963: +.word L.964 +.word L.965 +.word L.966 +.word L.967 +.word L.968 +.word L.969 +.word L.970 +.word L.971 +.word L.972 +.word L.973 +.word L.974 +.word L.975 +.word L.976 +.word L.977 +.word L.978 +.word L.979 +.word L.980 +.word L.981 +.word L.982 +.word 0x0 +.globl Characteristics +.text +.text +.align 2 +.ent Characteristics +Characteristics: +.frame $sp,24,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-24 +.mask 0x82000000,-4 +.cprestore 16 +sw $31,20($sp) +la $4,L.963 +jal msglist +move $2,$0 +L.962: +lw $25,16($sp) +lw $31,20($sp) +addu $sp,$sp,24 +j $31 +.end Characteristics +.data +.align 2 +L.984: +.word L.985 +.word L.986 +.word L.987 +.word L.988 +.word L.989 +.word L.990 +.word L.991 +.word L.992 +.word L.993 +.word L.994 +.word L.995 +.word L.996 +.word L.997 +.word L.998 +.word L.999 +.word L.1000 +.word L.1001 +.word 0x0 +.globl History +.text +.text +.align 2 +.ent History +History: +.frame $sp,24,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-24 +.mask 0x82000000,-4 +.cprestore 16 +sw $31,20($sp) +la $4,L.984 +jal msglist +move $2,$0 +L.983: +lw $25,16($sp) +lw $31,20($sp) +addu $sp,$sp,24 +j $31 +.end History +.globl pow +.text +.align 2 +.ent pow +pow: +.frame $sp,72,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-72 +.fmask 0xfc000000,-40 +.mask 0xc2800000,-20 +s.d $f26,16($sp) +s.d $f28,24($sp) +s.d $f30,32($sp) +sw $23,40($sp) +.cprestore 44 +sw $30,48($sp) +sw $31,52($sp) +mov.d $f30,$f12 +mov.d $f28,$f14 +move $23,$0 +sw $0,-8+72($sp) +l.d $f18,L.7 +c.eq.d $f28,$f18; bc1f L.1003 +l.d $f0,L.8 +b L.1002 +L.1003: +l.d $f18,L.1008 +c.lt.d $f28,$f18; bc1t L.1007 +l.d $f18,L.1009 +c.le.d $f28,$f18; bc1t L.1005 +L.1007: +l.d $f18,L.825 +c.eq.d $f30,$f18; bc1t L.1005 +mov.d $f12,$f30 +jal log +mov.d $f18,$f0 +mul.d $f12,$f28,$f18 +jal exp +mov.d $f18,$f0 +b L.1002 +L.1005: +l.d $f18,L.7 +c.lt.d $f28,$f18; bc1f L.1010 +neg.d $f28,$f28 +la $24,1 +sw $24,-8+72($sp) +L.1010: +mov.d $f12,$f28 +la $6,-16+72($sp) +jal modf +mov.d $f28,$f0 +l.d $f18,L.7 +c.eq.d $f28,$f18; bc1t L.1012 +mov.d $f12,$f30 +jal log +mov.d $f18,$f0 +mul.d $f12,$f28,$f18 +jal exp +mov.d $f26,$f0 +b L.1013 +L.1012: +l.d $f26,L.8 +L.1013: +mov.d $f12,$f30 +la $6,-4+72($sp) +jal frexp +mov.d $f30,$f0 +l.d $f18,-16+72($sp) +trunc.w.d $f2,$f18,$24; mfc1 $24,$f2 +move $30,$24 +beq $24,$0,L.1014 +L.1016: +and $24,$30,1 +beq $24,$0,L.1020 +mul.d $f26,$f26,$f30 +lw $24,-4+72($sp) +addu $23,$23,$24 +L.1020: +sra $24,$30,1 +move $30,$24 +bne $24,$0,L.1022 +b L.1018 +L.1022: +mul.d $f30,$f30,$f30 +lw $24,-4+72($sp) +sll $24,$24,1 +sw $24,-4+72($sp) +l.d $f18,L.1026 +c.lt.d $f30,$f18; bc1f L.1016 +l.d $f18,L.1027 +mul.d $f30,$f18,$f30 +lw $24,-4+72($sp) +subu $24,$24,1 +sw $24,-4+72($sp) +b L.1016 +L.1018: +L.1014: +lw $24,-8+72($sp) +beq $24,$0,L.1028 +l.d $f18,L.8 +div.d $f26,$f18,$f26 +negu $23,$23 +L.1028: +mov.d $f12,$f26 +move $6,$23 +jal ldexp +mov.d $f18,$f0 +L.1002: +l.d $f26,16($sp) +l.d $f28,24($sp) +l.d $f30,32($sp) +lw $23,40($sp) +lw $25,44($sp) +lw $30,48($sp) +lw $31,52($sp) +addu $sp,$sp,72 +j $31 +.end pow +.globl UfNGrad +.comm UfNGrad,4 +.globl SqRWrng +.comm SqRWrng,4 +.globl IEEE +.comm IEEE,4 +.globl Anomaly +.comm Anomaly,4 +.globl Monot +.comm Monot,4 +.globl NotMonot +.comm NotMonot,4 +.globl Done +.comm Done,4 +.globl Break +.comm Break,4 +.globl RSqrt +.comm RSqrt,4 +.globl RAddSub +.comm RAddSub,4 +.globl RDiv +.comm RDiv,4 +.globl RMult +.comm RMult,4 +.globl GAddSub +.comm GAddSub,4 +.globl GDiv +.comm GDiv,4 +.globl GMult +.comm GMult,4 +.globl N1 +.comm N1,4 +.globl N +.comm N,4 +.globl M +.comm M,4 +.globl PageNo +.comm PageNo,4 +.globl Milestone +.comm Milestone,4 +.globl fpecount +.comm fpecount,4 +.globl ErrCnt +.comm ErrCnt,16 +.globl Z9 +.comm Z9,8 +.globl Z2 +.comm Z2,8 +.globl Z1 +.comm Z1,8 +.globl PseudoZero +.comm PseudoZero,8 +.globl Z +.comm Z,8 +.globl Random2 +.comm Random2,8 +.globl Y2 +.comm Y2,8 +.globl Y1 +.comm Y1,8 +.globl Y +.comm Y,8 +.globl Random1 +.comm Random1,8 +.globl X8 +.comm X8,8 +.globl X2 +.comm X2,8 +.globl X1 +.comm X1,8 +.globl X +.comm X,8 +.globl W +.comm W,8 +.globl V9 +.comm V9,8 +.globl V0 +.comm V0,8 +.globl V +.comm V,8 +.globl U2 +.comm U2,8 +.globl U1 +.comm U1,8 +.globl UfThold +.comm UfThold,8 +.globl OneUlp +.comm OneUlp,8 +.globl S +.comm S,8 +.globl Underflow +.comm Underflow,8 +.globl T +.comm T,8 +.globl Random9 +.comm Random9,8 +.globl R +.comm R,8 +.globl Q9 +.comm Q9,8 +.globl Q +.comm Q,8 +.globl Precision +.comm Precision,8 +.globl MyZero +.comm MyZero,8 +.globl J +.comm J,8 +.globl StickyBit +.comm StickyBit,8 +.globl I +.comm I,4 +.globl HInvrse +.comm HInvrse,8 +.globl H +.comm H,8 +.globl F9 +.comm F9,8 +.globl F6 +.comm F6,8 +.globl Third +.comm Third,8 +.globl E9 +.comm E9,8 +.globl MaxSqEr +.comm MaxSqEr,8 +.globl SqEr +.comm SqEr,8 +.globl MinSqEr +.comm MinSqEr,8 +.globl E3 +.comm E3,8 +.globl Exp2 +.comm Exp2,8 +.globl E1 +.comm E1,8 +.globl E0 +.comm E0,8 +.globl FourD +.comm FourD,8 +.globl D +.comm D,8 +.globl CInvrse +.comm CInvrse,8 +.globl C +.comm C,8 +.globl A1 +.comm A1,8 +.globl AInvrse +.comm AInvrse,8 +.globl ch +.comm ch,8 +.globl Indx +.comm Indx,4 +.globl BMinusU2 +.comm BMinusU2,8 +.globl RadixD2 +.comm RadixD2,8 +.globl BInvrse +.comm BInvrse,8 +.globl Radix +.comm Radix,8 +.globl sigsave +.comm sigsave,4 +.globl ovfl_buf +.comm ovfl_buf,112 +.extern _iob 0 +.rdata +.align 3 +L.1027: +.word 0x40000000 +.word 0x0 +.align 3 +L.1026: +.word 0x3fe00000 +.word 0x0 +.align 3 +L.1009: +.word 0x40913000 +.word 0x0 +.align 3 +L.1008: +.word 0xc0913000 +.word 0x0 +.align 0 +L.1001: +.byte 115 +.byte 101 +.byte 101 +.byte 32 +.byte 115 +.byte 111 +.byte 117 +.byte 114 +.byte 99 +.byte 101 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 109 +.byte 101 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 109 +.byte 111 +.byte 114 +.byte 101 +.byte 32 +.byte 104 +.byte 105 +.byte 115 +.byte 116 +.byte 111 +.byte 114 +.byte 121 +.byte 46 +.byte 0 +.align 0 +L.1000: +.byte 66 +.byte 65 +.byte 83 +.byte 73 +.byte 67 +.byte 32 +.byte 118 +.byte 101 +.byte 114 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 40 +.byte 67 +.byte 41 +.byte 32 +.byte 49 +.byte 57 +.byte 56 +.byte 51 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 80 +.byte 114 +.byte 111 +.byte 102 +.byte 46 +.byte 32 +.byte 87 +.byte 46 +.byte 32 +.byte 77 +.byte 46 +.byte 32 +.byte 75 +.byte 97 +.byte 104 +.byte 97 +.byte 110 +.byte 59 +.byte 0 +.align 0 +L.999: +.byte 97 +.byte 115 +.byte 32 +.byte 117 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 99 +.byte 101 +.byte 114 +.byte 116 +.byte 97 +.byte 105 +.byte 110 +.byte 32 +.byte 101 +.byte 97 +.byte 114 +.byte 108 +.byte 121 +.byte 32 +.byte 87 +.byte 65 +.byte 78 +.byte 71 +.byte 32 +.byte 109 +.byte 97 +.byte 99 +.byte 104 +.byte 105 +.byte 110 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.998: +.byte 102 +.byte 108 +.byte 111 +.byte 97 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 45 +.byte 112 +.byte 111 +.byte 105 +.byte 110 +.byte 116 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 115 +.byte 44 +.byte 32 +.byte 98 +.byte 117 +.byte 116 +.byte 32 +.byte 97 +.byte 108 +.byte 115 +.byte 111 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 111 +.byte 119 +.byte 115 +.byte 32 +.byte 108 +.byte 111 +.byte 103 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 105 +.byte 99 +.byte 32 +.byte 101 +.byte 110 +.byte 99 +.byte 111 +.byte 100 +.byte 105 +.byte 110 +.byte 103 +.byte 0 +.align 0 +L.997: +.byte 10 +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 98 +.byte 97 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 117 +.byte 112 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 118 +.byte 101 +.byte 110 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 97 +.byte 108 +.byte 32 +.byte 114 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 114 +.byte 101 +.byte 112 +.byte 114 +.byte 101 +.byte 115 +.byte 101 +.byte 110 +.byte 116 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 0 +.align 0 +L.996: +.byte 111 +.byte 102 +.byte 32 +.byte 112 +.byte 97 +.byte 116 +.byte 104 +.byte 111 +.byte 108 +.byte 111 +.byte 103 +.byte 105 +.byte 101 +.byte 115 +.byte 44 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 115 +.byte 97 +.byte 121 +.byte 32 +.byte 104 +.byte 111 +.byte 119 +.byte 32 +.byte 119 +.byte 101 +.byte 108 +.byte 108 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 105 +.byte 109 +.byte 112 +.byte 108 +.byte 101 +.byte 109 +.byte 101 +.byte 110 +.byte 116 +.byte 101 +.byte 100 +.byte 46 +.byte 0 +.align 0 +L.995: +.byte 111 +.byte 102 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 44 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 116 +.byte 114 +.byte 105 +.byte 101 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 99 +.byte 111 +.byte 112 +.byte 101 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 97 +.byte 32 +.byte 119 +.byte 105 +.byte 100 +.byte 101 +.byte 114 +.byte 32 +.byte 118 +.byte 97 +.byte 114 +.byte 105 +.byte 101 +.byte 116 +.byte 121 +.byte 0 +.align 0 +L.994: +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 44 +.byte 32 +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 114 +.byte 97 +.byte 110 +.byte 103 +.byte 101 +.byte 32 +.byte 40 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 47 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 115 +.byte 41 +.byte 0 +.align 0 +L.993: +.byte 87 +.byte 46 +.byte 32 +.byte 74 +.byte 46 +.byte 32 +.byte 67 +.byte 111 +.byte 100 +.byte 121 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 87 +.byte 46 +.byte 32 +.byte 87 +.byte 97 +.byte 105 +.byte 116 +.byte 101 +.byte 46 +.byte 32 +.byte 65 +.byte 108 +.byte 116 +.byte 104 +.byte 111 +.byte 117 +.byte 103 +.byte 104 +.byte 32 +.byte 98 +.byte 111 +.byte 116 +.byte 104 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 115 +.byte 32 +.byte 116 +.byte 114 +.byte 121 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 0 +.align 0 +L.992: +.byte 98 +.byte 111 +.byte 111 +.byte 107 +.byte 32 +.byte 32 +.byte 96 +.byte 83 +.byte 111 +.byte 102 +.byte 116 +.byte 119 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 77 +.byte 97 +.byte 110 +.byte 117 +.byte 97 +.byte 108 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 69 +.byte 108 +.byte 101 +.byte 109 +.byte 101 +.byte 110 +.byte 116 +.byte 97 +.byte 114 +.byte 121 +.byte 32 +.byte 70 +.byte 117 +.byte 110 +.byte 99 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 39 +.byte 32 +.byte 40 +.byte 49 +.byte 57 +.byte 56 +.byte 48 +.byte 41 +.byte 32 +.byte 98 +.byte 121 +.byte 0 +.align 0 +L.991: +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 99 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 100 +.byte 32 +.byte 96 +.byte 77 +.byte 65 +.byte 67 +.byte 72 +.byte 65 +.byte 82 +.byte 39 +.byte 44 +.byte 32 +.byte 119 +.byte 104 +.byte 105 +.byte 99 +.byte 104 +.byte 32 +.byte 99 +.byte 97 +.byte 110 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 102 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 97 +.byte 116 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 101 +.byte 110 +.byte 100 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 0 +.align 0 +L.990: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 100 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 99 +.byte 97 +.byte 112 +.byte 97 +.byte 98 +.byte 105 +.byte 108 +.byte 105 +.byte 116 +.byte 105 +.byte 101 +.byte 115 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 103 +.byte 111 +.byte 32 +.byte 98 +.byte 101 +.byte 121 +.byte 111 +.byte 110 +.byte 100 +.byte 32 +.byte 97 +.byte 110 +.byte 32 +.byte 101 +.byte 97 +.byte 114 +.byte 108 +.byte 105 +.byte 101 +.byte 114 +.byte 0 +.align 0 +L.989: +.byte 70 +.byte 97 +.byte 105 +.byte 108 +.byte 117 +.byte 114 +.byte 101 +.byte 115 +.byte 32 +.byte 109 +.byte 97 +.byte 121 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 102 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 115 +.byte 117 +.byte 98 +.byte 115 +.byte 101 +.byte 113 +.byte 117 +.byte 101 +.byte 110 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.988: +.byte 32 +.byte 32 +.byte 32 +.byte 70 +.byte 65 +.byte 73 +.byte 76 +.byte 85 +.byte 82 +.byte 69 +.byte 115 +.byte 44 +.byte 32 +.byte 108 +.byte 105 +.byte 107 +.byte 101 +.byte 32 +.byte 50 +.byte 43 +.byte 50 +.byte 32 +.byte 61 +.byte 61 +.byte 32 +.byte 53 +.byte 32 +.byte 46 +.byte 0 +.align 0 +L.987: +.byte 32 +.byte 32 +.byte 32 +.byte 83 +.byte 101 +.byte 114 +.byte 105 +.byte 111 +.byte 117 +.byte 115 +.byte 32 +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 115 +.byte 44 +.byte 32 +.byte 108 +.byte 105 +.byte 107 +.byte 101 +.byte 32 +.byte 108 +.byte 97 +.byte 99 +.byte 107 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 97 +.byte 32 +.byte 103 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 44 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 0 +.align 0 +L.986: +.byte 32 +.byte 32 +.byte 32 +.byte 70 +.byte 76 +.byte 65 +.byte 87 +.byte 115 +.byte 44 +.byte 32 +.byte 108 +.byte 105 +.byte 107 +.byte 101 +.byte 32 +.byte 108 +.byte 97 +.byte 99 +.byte 107 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 97 +.byte 32 +.byte 115 +.byte 116 +.byte 105 +.byte 99 +.byte 107 +.byte 121 +.byte 32 +.byte 98 +.byte 105 +.byte 116 +.byte 44 +.byte 0 +.align 0 +L.985: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 97 +.byte 116 +.byte 116 +.byte 101 +.byte 109 +.byte 112 +.byte 116 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 114 +.byte 105 +.byte 109 +.byte 105 +.byte 110 +.byte 97 +.byte 116 +.byte 101 +.byte 32 +.byte 97 +.byte 109 +.byte 111 +.byte 110 +.byte 103 +.byte 0 +.align 0 +L.982: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 68 +.byte 101 +.byte 99 +.byte 105 +.byte 109 +.byte 97 +.byte 108 +.byte 45 +.byte 66 +.byte 105 +.byte 110 +.byte 97 +.byte 114 +.byte 121 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 118 +.byte 101 +.byte 114 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 78 +.byte 79 +.byte 84 +.byte 32 +.byte 89 +.byte 69 +.byte 84 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 97 +.byte 99 +.byte 99 +.byte 117 +.byte 114 +.byte 97 +.byte 99 +.byte 121 +.byte 46 +.byte 0 +.align 0 +L.981: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 69 +.byte 120 +.byte 116 +.byte 114 +.byte 97 +.byte 45 +.byte 112 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 101 +.byte 32 +.byte 115 +.byte 117 +.byte 98 +.byte 101 +.byte 120 +.byte 112 +.byte 114 +.byte 101 +.byte 115 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 114 +.byte 101 +.byte 118 +.byte 101 +.byte 97 +.byte 108 +.byte 101 +.byte 100 +.byte 32 +.byte 98 +.byte 117 +.byte 116 +.byte 32 +.byte 78 +.byte 79 +.byte 84 +.byte 32 +.byte 89 +.byte 69 +.byte 84 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 101 +.byte 100 +.byte 46 +.byte 0 +.align 0 +L.980: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 83 +.byte 113 +.byte 114 +.byte 116 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 101 +.byte 100 +.byte 46 +.byte 32 +.byte 32 +.byte 89 +.byte 94 +.byte 88 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 101 +.byte 100 +.byte 46 +.byte 0 +.align 0 +L.979: +.byte 9 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 116 +.byte 97 +.byte 109 +.byte 105 +.byte 110 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 112 +.byte 115 +.byte 101 +.byte 117 +.byte 100 +.byte 111 +.byte 45 +.byte 122 +.byte 101 +.byte 114 +.byte 111 +.byte 115 +.byte 46 +.byte 0 +.align 0 +L.978: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 99 +.byte 104 +.byte 101 +.byte 99 +.byte 107 +.byte 101 +.byte 100 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 115 +.byte 105 +.byte 115 +.byte 116 +.byte 101 +.byte 110 +.byte 99 +.byte 121 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 115 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 0 +.align 0 +L.977: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 86 +.byte 48 +.byte 32 +.byte 32 +.byte 116 +.byte 101 +.byte 108 +.byte 108 +.byte 115 +.byte 44 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 103 +.byte 104 +.byte 108 +.byte 121 +.byte 44 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 32 +.byte 73 +.byte 110 +.byte 102 +.byte 105 +.byte 110 +.byte 105 +.byte 116 +.byte 121 +.byte 32 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 114 +.byte 101 +.byte 112 +.byte 114 +.byte 101 +.byte 115 +.byte 101 +.byte 110 +.byte 116 +.byte 101 +.byte 100 +.byte 46 +.byte 0 +.align 0 +L.976: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 86 +.byte 32 +.byte 61 +.byte 32 +.byte 97 +.byte 110 +.byte 32 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 44 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 103 +.byte 104 +.byte 108 +.byte 121 +.byte 46 +.byte 0 +.align 0 +L.975: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 69 +.byte 48 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 80 +.byte 115 +.byte 101 +.byte 117 +.byte 100 +.byte 111 +.byte 90 +.byte 101 +.byte 114 +.byte 111 +.byte 32 +.byte 116 +.byte 101 +.byte 108 +.byte 108 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 97 +.byte 98 +.byte 114 +.byte 117 +.byte 112 +.byte 116 +.byte 44 +.byte 32 +.byte 103 +.byte 114 +.byte 97 +.byte 100 +.byte 117 +.byte 97 +.byte 108 +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 102 +.byte 117 +.byte 122 +.byte 122 +.byte 121 +.byte 46 +.byte 0 +.align 0 +L.974: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 84 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 61 +.byte 32 +.byte 97 +.byte 110 +.byte 32 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 46 +.byte 0 +.align 0 +L.973: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 87 +.byte 104 +.byte 101 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 97 +.byte 32 +.byte 83 +.byte 116 +.byte 105 +.byte 99 +.byte 107 +.byte 121 +.byte 32 +.byte 66 +.byte 105 +.byte 116 +.byte 32 +.byte 117 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 105 +.byte 110 +.byte 103 +.byte 46 +.byte 0 +.align 0 +L.972: +.byte 9 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 77 +.byte 117 +.byte 108 +.byte 116 +.byte 46 +.byte 44 +.byte 32 +.byte 68 +.byte 105 +.byte 118 +.byte 46 +.byte 44 +.byte 32 +.byte 65 +.byte 100 +.byte 100 +.byte 47 +.byte 83 +.byte 117 +.byte 98 +.byte 116 +.byte 46 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 83 +.byte 113 +.byte 114 +.byte 116 +.byte 46 +.byte 0 +.align 0 +L.971: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 87 +.byte 104 +.byte 101 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 112 +.byte 101 +.byte 100 +.byte 44 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 100 +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 115 +.byte 111 +.byte 109 +.byte 101 +.byte 116 +.byte 104 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 101 +.byte 108 +.byte 115 +.byte 101 +.byte 0 +.align 0 +L.970: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 65 +.byte 100 +.byte 101 +.byte 113 +.byte 117 +.byte 97 +.byte 99 +.byte 121 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 103 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 77 +.byte 117 +.byte 108 +.byte 116 +.byte 46 +.byte 44 +.byte 32 +.byte 68 +.byte 105 +.byte 118 +.byte 46 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 83 +.byte 117 +.byte 98 +.byte 116 +.byte 46 +.byte 0 +.align 0 +L.969: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 85 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 49 +.byte 47 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 94 +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 61 +.byte 32 +.byte 79 +.byte 110 +.byte 101 +.byte 32 +.byte 85 +.byte 108 +.byte 112 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 108 +.byte 105 +.byte 116 +.byte 116 +.byte 108 +.byte 101 +.byte 32 +.byte 108 +.byte 101 +.byte 115 +.byte 115 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 110 +.byte 32 +.byte 49 +.byte 46 +.byte 48 +.byte 32 +.byte 46 +.byte 0 +.align 0 +L.968: +.byte 9 +.byte 40 +.byte 79 +.byte 110 +.byte 101 +.byte 85 +.byte 108 +.byte 112 +.byte 110 +.byte 105 +.byte 116 +.byte 32 +.byte 105 +.byte 110 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 76 +.byte 97 +.byte 115 +.byte 116 +.byte 32 +.byte 80 +.byte 108 +.byte 97 +.byte 99 +.byte 101 +.byte 41 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 49 +.byte 46 +.byte 48 +.byte 48 +.byte 48 +.byte 120 +.byte 120 +.byte 120 +.byte 32 +.byte 46 +.byte 0 +.align 0 +L.967: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 85 +.byte 50 +.byte 32 +.byte 61 +.byte 32 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 47 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 94 +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 61 +.byte 32 +.byte 79 +.byte 110 +.byte 101 +.byte 32 +.byte 85 +.byte 108 +.byte 112 +.byte 0 +.align 0 +L.966: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 61 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 105 +.byte 102 +.byte 105 +.byte 99 +.byte 97 +.byte 110 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 99 +.byte 97 +.byte 114 +.byte 114 +.byte 105 +.byte 101 +.byte 100 +.byte 46 +.byte 0 +.align 0 +L.965: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 49 +.byte 44 +.byte 32 +.byte 50 +.byte 44 +.byte 32 +.byte 52 +.byte 44 +.byte 32 +.byte 56 +.byte 44 +.byte 32 +.byte 49 +.byte 48 +.byte 44 +.byte 32 +.byte 49 +.byte 54 +.byte 44 +.byte 32 +.byte 49 +.byte 48 +.byte 48 +.byte 44 +.byte 32 +.byte 50 +.byte 53 +.byte 54 +.byte 32 +.byte 46 +.byte 46 +.byte 46 +.byte 0 +.align 0 +L.964: +.byte 82 +.byte 117 +.byte 110 +.byte 110 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 115 +.byte 104 +.byte 111 +.byte 117 +.byte 108 +.byte 100 +.byte 32 +.byte 114 +.byte 101 +.byte 118 +.byte 101 +.byte 97 +.byte 108 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 115 +.byte 101 +.byte 32 +.byte 99 +.byte 104 +.byte 97 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 101 +.byte 114 +.byte 105 +.byte 115 +.byte 116 +.byte 105 +.byte 99 +.byte 115 +.byte 58 +.byte 0 +.align 0 +L.961: +.byte 9 +.byte 79 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 114 +.byte 101 +.byte 108 +.byte 101 +.byte 118 +.byte 97 +.byte 110 +.byte 116 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 105 +.byte 108 +.byte 101 +.byte 114 +.byte 32 +.byte 111 +.byte 112 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 58 +.byte 0 +.align 0 +L.960: +.byte 9 +.byte 79 +.byte 112 +.byte 116 +.byte 105 +.byte 109 +.byte 105 +.byte 122 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 108 +.byte 101 +.byte 118 +.byte 101 +.byte 108 +.byte 58 +.byte 10 +.byte 0 +.align 0 +L.959: +.byte 9 +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 105 +.byte 108 +.byte 101 +.byte 114 +.byte 58 +.byte 10 +.byte 0 +.align 0 +L.958: +.byte 9 +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 101 +.byte 114 +.byte 58 +.byte 10 +.byte 0 +.align 0 +L.957: +.byte 9 +.byte 86 +.byte 101 +.byte 114 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 58 +.byte 9 +.byte 49 +.byte 48 +.byte 32 +.byte 70 +.byte 101 +.byte 98 +.byte 114 +.byte 117 +.byte 97 +.byte 114 +.byte 121 +.byte 32 +.byte 49 +.byte 57 +.byte 56 +.byte 57 +.byte 59 +.byte 0 +.align 0 +L.956: +.byte 9 +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 58 +.byte 9 +.byte 100 +.byte 111 +.byte 117 +.byte 98 +.byte 108 +.byte 101 +.byte 59 +.byte 0 +.align 0 +L.955: +.byte 73 +.byte 110 +.byte 32 +.byte 100 +.byte 111 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 115 +.byte 111 +.byte 44 +.byte 32 +.byte 112 +.byte 108 +.byte 101 +.byte 97 +.byte 115 +.byte 101 +.byte 32 +.byte 105 +.byte 110 +.byte 99 +.byte 108 +.byte 117 +.byte 100 +.byte 101 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 102 +.byte 111 +.byte 108 +.byte 108 +.byte 111 +.byte 119 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 105 +.byte 110 +.byte 102 +.byte 111 +.byte 114 +.byte 109 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 58 +.byte 0 +.align 0 +L.954: +.byte 9 +.byte 83 +.byte 97 +.byte 110 +.byte 32 +.byte 70 +.byte 114 +.byte 97 +.byte 110 +.byte 99 +.byte 105 +.byte 115 +.byte 99 +.byte 111 +.byte 44 +.byte 32 +.byte 67 +.byte 65 +.byte 32 +.byte 57 +.byte 52 +.byte 49 +.byte 52 +.byte 51 +.byte 45 +.byte 48 +.byte 55 +.byte 48 +.byte 52 +.byte 44 +.byte 32 +.byte 85 +.byte 83 +.byte 65 +.byte 10 +.byte 0 +.align 0 +L.953: +.byte 9 +.byte 85 +.byte 110 +.byte 105 +.byte 118 +.byte 101 +.byte 114 +.byte 115 +.byte 105 +.byte 116 +.byte 121 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 67 +.byte 97 +.byte 108 +.byte 105 +.byte 102 +.byte 111 +.byte 114 +.byte 110 +.byte 105 +.byte 97 +.byte 0 +.align 0 +L.952: +.byte 9 +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 101 +.byte 114 +.byte 32 +.byte 67 +.byte 101 +.byte 110 +.byte 116 +.byte 101 +.byte 114 +.byte 32 +.byte 85 +.byte 45 +.byte 55 +.byte 54 +.byte 0 +.align 0 +L.951: +.byte 9 +.byte 82 +.byte 105 +.byte 99 +.byte 104 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 75 +.byte 97 +.byte 114 +.byte 112 +.byte 105 +.byte 110 +.byte 115 +.byte 107 +.byte 105 +.byte 0 +.align 0 +L.950: +.byte 80 +.byte 108 +.byte 101 +.byte 97 +.byte 115 +.byte 101 +.byte 32 +.byte 115 +.byte 101 +.byte 110 +.byte 100 +.byte 32 +.byte 115 +.byte 117 +.byte 103 +.byte 103 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 105 +.byte 110 +.byte 116 +.byte 101 +.byte 114 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 114 +.byte 101 +.byte 115 +.byte 117 +.byte 108 +.byte 116 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 0 +.align 0 +L.949: +.byte 99 +.byte 111 +.byte 112 +.byte 101 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 117 +.byte 110 +.byte 97 +.byte 110 +.byte 116 +.byte 105 +.byte 99 +.byte 105 +.byte 112 +.byte 97 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 110 +.byte 101 +.byte 119 +.byte 108 +.byte 121 +.byte 32 +.byte 117 +.byte 110 +.byte 99 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 101 +.byte 100 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 112 +.byte 97 +.byte 116 +.byte 104 +.byte 111 +.byte 108 +.byte 111 +.byte 103 +.byte 105 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.948: +.byte 85 +.byte 115 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 105 +.byte 110 +.byte 118 +.byte 105 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 104 +.byte 101 +.byte 108 +.byte 112 +.byte 32 +.byte 100 +.byte 101 +.byte 98 +.byte 117 +.byte 103 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 97 +.byte 117 +.byte 103 +.byte 109 +.byte 101 +.byte 110 +.byte 116 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 115 +.byte 111 +.byte 32 +.byte 105 +.byte 116 +.byte 32 +.byte 119 +.byte 105 +.byte 108 +.byte 108 +.byte 0 +.align 0 +L.945: +.byte 65 +.byte 110 +.byte 115 +.byte 119 +.byte 101 +.byte 114 +.byte 32 +.byte 113 +.byte 117 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 89 +.byte 44 +.byte 32 +.byte 121 +.byte 44 +.byte 32 +.byte 78 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 110 +.byte 32 +.byte 40 +.byte 117 +.byte 110 +.byte 108 +.byte 101 +.byte 115 +.byte 115 +.byte 32 +.byte 111 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 119 +.byte 105 +.byte 115 +.byte 101 +.byte 32 +.byte 105 +.byte 110 +.byte 100 +.byte 105 +.byte 99 +.byte 97 +.byte 116 +.byte 101 +.byte 100 +.byte 41 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.944: +.byte 97 +.byte 109 +.byte 101 +.byte 110 +.byte 100 +.byte 32 +.byte 105 +.byte 116 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 109 +.byte 97 +.byte 107 +.byte 101 +.byte 32 +.byte 102 +.byte 117 +.byte 114 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 101 +.byte 115 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.943: +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 97 +.byte 110 +.byte 121 +.byte 119 +.byte 97 +.byte 121 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 115 +.byte 101 +.byte 101 +.byte 32 +.byte 104 +.byte 111 +.byte 119 +.byte 32 +.byte 109 +.byte 97 +.byte 110 +.byte 121 +.byte 32 +.byte 109 +.byte 105 +.byte 108 +.byte 101 +.byte 115 +.byte 116 +.byte 111 +.byte 110 +.byte 101 +.byte 115 +.byte 32 +.byte 105 +.byte 116 +.byte 32 +.byte 112 +.byte 97 +.byte 115 +.byte 115 +.byte 101 +.byte 115 +.byte 44 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 110 +.byte 0 +.align 0 +L.942: +.byte 119 +.byte 97 +.byte 114 +.byte 110 +.byte 105 +.byte 110 +.byte 103 +.byte 46 +.byte 32 +.byte 32 +.byte 73 +.byte 102 +.byte 32 +.byte 112 +.byte 101 +.byte 114 +.byte 115 +.byte 117 +.byte 97 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 118 +.byte 97 +.byte 105 +.byte 108 +.byte 115 +.byte 32 +.byte 110 +.byte 97 +.byte 117 +.byte 103 +.byte 104 +.byte 116 +.byte 44 +.byte 32 +.byte 100 +.byte 111 +.byte 110 +.byte 39 +.byte 116 +.byte 32 +.byte 100 +.byte 101 +.byte 115 +.byte 112 +.byte 97 +.byte 105 +.byte 114 +.byte 32 +.byte 98 +.byte 117 +.byte 116 +.byte 32 +.byte 114 +.byte 117 +.byte 110 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 0 +.align 0 +L.941: +.byte 116 +.byte 111 +.byte 32 +.byte 112 +.byte 101 +.byte 114 +.byte 115 +.byte 101 +.byte 118 +.byte 101 +.byte 114 +.byte 101 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 97 +.byte 32 +.byte 115 +.byte 117 +.byte 114 +.byte 114 +.byte 111 +.byte 103 +.byte 97 +.byte 116 +.byte 101 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 32 +.byte 97 +.byte 102 +.byte 116 +.byte 101 +.byte 114 +.byte 44 +.byte 32 +.byte 112 +.byte 101 +.byte 114 +.byte 104 +.byte 97 +.byte 112 +.byte 115 +.byte 44 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 112 +.byte 108 +.byte 97 +.byte 121 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 115 +.byte 111 +.byte 109 +.byte 101 +.byte 0 +.align 0 +L.940: +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 32 +.byte 108 +.byte 105 +.byte 107 +.byte 101 +.byte 32 +.byte 79 +.byte 118 +.byte 101 +.byte 114 +.byte 47 +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 68 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 90 +.byte 101 +.byte 114 +.byte 111 +.byte 32 +.byte 111 +.byte 99 +.byte 99 +.byte 117 +.byte 114 +.byte 115 +.byte 44 +.byte 32 +.byte 98 +.byte 117 +.byte 116 +.byte 32 +.byte 114 +.byte 97 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 0 +.align 0 +L.939: +.byte 116 +.byte 114 +.byte 121 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 112 +.byte 101 +.byte 114 +.byte 115 +.byte 117 +.byte 97 +.byte 100 +.byte 101 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 101 +.byte 114 +.byte 32 +.byte 78 +.byte 79 +.byte 84 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 116 +.byte 101 +.byte 114 +.byte 109 +.byte 105 +.byte 110 +.byte 97 +.byte 116 +.byte 101 +.byte 32 +.byte 101 +.byte 120 +.byte 101 +.byte 99 +.byte 117 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 110 +.byte 32 +.byte 97 +.byte 110 +.byte 0 +.align 0 +L.938: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 96 +.byte 69 +.byte 78 +.byte 68 +.byte 32 +.byte 79 +.byte 70 +.byte 32 +.byte 84 +.byte 69 +.byte 83 +.byte 84 +.byte 39 +.byte 44 +.byte 10 +.byte 0 +.align 0 +L.937: +.byte 76 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 115 +.byte 116 +.byte 111 +.byte 112 +.byte 32 +.byte 112 +.byte 114 +.byte 101 +.byte 109 +.byte 97 +.byte 116 +.byte 117 +.byte 114 +.byte 101 +.byte 108 +.byte 121 +.byte 44 +.byte 32 +.byte 105 +.byte 46 +.byte 101 +.byte 46 +.byte 32 +.byte 98 +.byte 101 +.byte 102 +.byte 111 +.byte 114 +.byte 101 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 112 +.byte 108 +.byte 97 +.byte 121 +.byte 105 +.byte 110 +.byte 103 +.byte 10 +.byte 0 +.align 0 +L.934: +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 0 +L.929: +.byte 32 +.byte 32 +.byte 32 +.byte 80 +.byte 76 +.byte 69 +.byte 65 +.byte 83 +.byte 69 +.byte 32 +.byte 78 +.byte 79 +.byte 84 +.byte 73 +.byte 70 +.byte 89 +.byte 32 +.byte 75 +.byte 65 +.byte 82 +.byte 80 +.byte 73 +.byte 78 +.byte 75 +.byte 83 +.byte 73 +.byte 33 +.byte 10 +.byte 0 +.align 0 +L.928: +.byte 37 +.byte 115 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 105 +.byte 110 +.byte 99 +.byte 111 +.byte 110 +.byte 115 +.byte 105 +.byte 115 +.byte 116 +.byte 101 +.byte 110 +.byte 116 +.byte 46 +.byte 46 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.926: +.byte 9 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 90 +.byte 32 +.byte 42 +.byte 32 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.925: +.byte 9 +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 103 +.byte 101 +.byte 115 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 49 +.byte 32 +.byte 42 +.byte 32 +.byte 90 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.924: +.byte 77 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 105 +.byte 99 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 100 +.byte 111 +.byte 101 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 109 +.byte 117 +.byte 116 +.byte 101 +.byte 33 +.byte 10 +.byte 0 +.align 0 +L.919: +.byte 90 +.byte 32 +.byte 47 +.byte 32 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.916: +.byte 49 +.byte 32 +.byte 42 +.byte 32 +.byte 90 +.byte 32 +.byte 61 +.byte 61 +.byte 32 +.byte 37 +.byte 103 +.byte 10 +.byte 0 +.align 0 +L.913: +.byte 90 +.byte 32 +.byte 42 +.byte 32 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 0 +.align 0 +L.910: +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 9 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 101 +.byte 115 +.byte 32 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 101 +.byte 110 +.byte 116 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 32 +.byte 0 +.align 0 +L.909: +.byte 87 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 112 +.byte 114 +.byte 105 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 90 +.byte 32 +.byte 61 +.byte 32 +.byte 0 +.align 0 +L.904: +.byte 84 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 33 +.byte 10 +.byte 0 +.align 0 +L.901: +.byte 84 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 86 +.byte 69 +.byte 82 +.byte 89 +.byte 32 +.byte 83 +.byte 69 +.byte 82 +.byte 73 +.byte 79 +.byte 85 +.byte 83 +.byte 32 +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 33 +.byte 10 +.byte 0 +.align 0 +L.895: +.byte 32 +.byte 104 +.byte 97 +.byte 115 +.byte 32 +.byte 78 +.byte 79 +.byte 84 +.byte 32 +.byte 106 +.byte 117 +.byte 115 +.byte 116 +.byte 32 +.byte 98 +.byte 101 +.byte 101 +.byte 110 +.byte 32 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 97 +.byte 108 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.894: +.byte 84 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 79 +.byte 46 +.byte 75 +.byte 46 +.byte 44 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 118 +.byte 105 +.byte 100 +.byte 101 +.byte 100 +.byte 32 +.byte 79 +.byte 118 +.byte 101 +.byte 114 +.byte 47 +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 0 +.align 0 +L.891: +.byte 87 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 109 +.byte 97 +.byte 99 +.byte 104 +.byte 105 +.byte 110 +.byte 101 +.byte 32 +.byte 103 +.byte 101 +.byte 116 +.byte 115 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 40 +.byte 90 +.byte 32 +.byte 43 +.byte 32 +.byte 90 +.byte 41 +.byte 32 +.byte 47 +.byte 32 +.byte 90 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.887: +.byte 40 +.byte 90 +.byte 32 +.byte 43 +.byte 32 +.byte 90 +.byte 41 +.byte 32 +.byte 47 +.byte 32 +.byte 90 +.byte 32 +.byte 115 +.byte 104 +.byte 111 +.byte 117 +.byte 108 +.byte 100 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 115 +.byte 97 +.byte 102 +.byte 101 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.886: +.byte 83 +.byte 105 +.byte 110 +.byte 99 +.byte 101 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 32 +.byte 100 +.byte 101 +.byte 110 +.byte 105 +.byte 101 +.byte 115 +.byte 32 +.byte 90 +.byte 32 +.byte 61 +.byte 32 +.byte 48 +.byte 44 +.byte 32 +.byte 101 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 97 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 0 +.align 0 +L.882: +.byte 83 +.byte 105 +.byte 109 +.byte 105 +.byte 108 +.byte 97 +.byte 114 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 114 +.byte 101 +.byte 112 +.byte 97 +.byte 110 +.byte 99 +.byte 105 +.byte 101 +.byte 115 +.byte 32 +.byte 104 +.byte 97 +.byte 118 +.byte 101 +.byte 32 +.byte 111 +.byte 99 +.byte 99 +.byte 117 +.byte 114 +.byte 114 +.byte 101 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 116 +.byte 105 +.byte 109 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.872: +.byte 9 +.byte 9 +.byte 116 +.byte 104 +.byte 101 +.byte 121 +.byte 32 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.871: +.byte 9 +.byte 119 +.byte 104 +.byte 105 +.byte 99 +.byte 104 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 101 +.byte 100 +.byte 32 +.byte 117 +.byte 110 +.byte 101 +.byte 113 +.byte 117 +.byte 97 +.byte 108 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 59 +.byte 10 +.byte 0 +.align 0 +L.870: +.byte 9 +.byte 121 +.byte 105 +.byte 101 +.byte 108 +.byte 100 +.byte 101 +.byte 100 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 59 +.byte 10 +.byte 0 +.align 0 +L.869: +.byte 9 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 32 +.byte 94 +.byte 32 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 10 +.byte 0 +.align 0 +L.868: +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 10 +.byte 0 +.align 0 +L.867: +.byte 87 +.byte 65 +.byte 82 +.byte 78 +.byte 73 +.byte 78 +.byte 71 +.byte 58 +.byte 32 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 10 +.byte 0 +.align 0 +L.849: +.byte 9 +.byte 105 +.byte 110 +.byte 115 +.byte 116 +.byte 101 +.byte 97 +.byte 100 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 32 +.byte 48 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.848: +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 40 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 32 +.byte 45 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 3 +L.840: +.word 0x3ed4f8b5 +.word 0x88e368f1 +.align 0 +L.838: +.byte 37 +.byte 115 +.byte 58 +.byte 32 +.byte 32 +.byte 37 +.byte 115 +.byte 0 +.align 0 +L.837: +.byte 70 +.byte 76 +.byte 65 +.byte 87 +.byte 0 +.align 0 +L.836: +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 0 +.align 0 +L.835: +.byte 83 +.byte 69 +.byte 82 +.byte 73 +.byte 79 +.byte 85 +.byte 83 +.byte 32 +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 0 +.align 0 +L.834: +.byte 70 +.byte 65 +.byte 73 +.byte 76 +.byte 85 +.byte 82 +.byte 69 +.byte 0 +.align 0 +L.828: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 80 +.byte 97 +.byte 103 +.byte 101 +.byte 58 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 10 +.byte 0 +.align 0 +L.827: +.byte 10 +.byte 68 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 105 +.byte 115 +.byte 32 +.byte 114 +.byte 101 +.byte 115 +.byte 117 +.byte 109 +.byte 101 +.byte 115 +.byte 32 +.byte 97 +.byte 102 +.byte 116 +.byte 101 +.byte 114 +.byte 32 +.byte 109 +.byte 105 +.byte 108 +.byte 101 +.byte 115 +.byte 116 +.byte 111 +.byte 110 +.byte 101 +.byte 32 +.byte 78 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 32 +.byte 37 +.byte 100 +.byte 0 +.align 3 +L.825: +.word 0xbff00000 +.word 0x0 +.align 0 +L.820: +.byte 69 +.byte 78 +.byte 68 +.byte 32 +.byte 79 +.byte 70 +.byte 32 +.byte 84 +.byte 69 +.byte 83 +.byte 84 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.819: +.byte 10 +.byte 65 +.byte 32 +.byte 116 +.byte 111 +.byte 116 +.byte 97 +.byte 108 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 102 +.byte 108 +.byte 111 +.byte 97 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 112 +.byte 111 +.byte 105 +.byte 110 +.byte 116 +.byte 32 +.byte 101 +.byte 120 +.byte 99 +.byte 101 +.byte 112 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 119 +.byte 101 +.byte 114 +.byte 101 +.byte 32 +.byte 114 +.byte 101 +.byte 103 +.byte 105 +.byte 115 +.byte 116 +.byte 101 +.byte 114 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.816: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 100 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 69 +.byte 120 +.byte 99 +.byte 101 +.byte 108 +.byte 108 +.byte 101 +.byte 110 +.byte 116 +.byte 33 +.byte 10 +.byte 0 +.align 0 +L.815: +.byte 32 +.byte 100 +.byte 117 +.byte 114 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 71 +.byte 114 +.byte 97 +.byte 100 +.byte 117 +.byte 97 +.byte 108 +.byte 32 +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.814: +.byte 44 +.byte 10 +.byte 101 +.byte 120 +.byte 99 +.byte 101 +.byte 112 +.byte 116 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 112 +.byte 111 +.byte 115 +.byte 115 +.byte 105 +.byte 98 +.byte 108 +.byte 121 +.byte 32 +.byte 68 +.byte 111 +.byte 117 +.byte 98 +.byte 108 +.byte 101 +.byte 32 +.byte 82 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 105 +.byte 110 +.byte 103 +.byte 0 +.align 0 +L.813: +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.810: +.byte 56 +.byte 53 +.byte 52 +.byte 0 +.align 0 +L.809: +.byte 55 +.byte 53 +.byte 52 +.byte 0 +.align 0 +L.806: +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 112 +.byte 111 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 73 +.byte 69 +.byte 69 +.byte 69 +.byte 32 +.byte 115 +.byte 116 +.byte 97 +.byte 110 +.byte 100 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 80 +.byte 0 +.align 0 +L.805: +.byte 82 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 102 +.byte 111 +.byte 114 +.byte 109 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 0 +.align 0 +L.802: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 100 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 115 +.byte 101 +.byte 101 +.byte 109 +.byte 115 +.byte 32 +.byte 83 +.byte 97 +.byte 116 +.byte 105 +.byte 115 +.byte 102 +.byte 97 +.byte 99 +.byte 116 +.byte 111 +.byte 114 +.byte 121 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.796: +.byte 78 +.byte 111 +.byte 32 +.byte 102 +.byte 97 +.byte 105 +.byte 108 +.byte 117 +.byte 114 +.byte 101 +.byte 115 +.byte 44 +.byte 32 +.byte 100 +.byte 101 +.byte 102 +.byte 101 +.byte 99 +.byte 116 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 114 +.byte 32 +.byte 102 +.byte 108 +.byte 97 +.byte 119 +.byte 115 +.byte 32 +.byte 104 +.byte 97 +.byte 118 +.byte 101 +.byte 32 +.byte 98 +.byte 101 +.byte 101 +.byte 110 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.795: +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 39 +.byte 115 +.byte 32 +.byte 115 +.byte 117 +.byte 98 +.byte 115 +.byte 101 +.byte 113 +.byte 117 +.byte 101 +.byte 110 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.794: +.byte 80 +.byte 111 +.byte 116 +.byte 101 +.byte 110 +.byte 116 +.byte 105 +.byte 97 +.byte 108 +.byte 108 +.byte 121 +.byte 32 +.byte 102 +.byte 97 +.byte 116 +.byte 97 +.byte 108 +.byte 32 +.byte 70 +.byte 65 +.byte 73 +.byte 76 +.byte 85 +.byte 82 +.byte 69 +.byte 32 +.byte 109 +.byte 97 +.byte 121 +.byte 32 +.byte 104 +.byte 97 +.byte 118 +.byte 101 +.byte 32 +.byte 115 +.byte 112 +.byte 111 +.byte 105 +.byte 108 +.byte 101 +.byte 100 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 0 +.align 0 +L.791: +.byte 117 +.byte 110 +.byte 97 +.byte 99 +.byte 99 +.byte 101 +.byte 112 +.byte 116 +.byte 97 +.byte 98 +.byte 108 +.byte 101 +.byte 32 +.byte 83 +.byte 101 +.byte 114 +.byte 105 +.byte 111 +.byte 117 +.byte 115 +.byte 32 +.byte 68 +.byte 101 +.byte 102 +.byte 101 +.byte 99 +.byte 116 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.790: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 100 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 104 +.byte 97 +.byte 115 +.byte 32 +.byte 0 +.align 0 +L.786: +.byte 100 +.byte 101 +.byte 115 +.byte 112 +.byte 105 +.byte 116 +.byte 101 +.byte 32 +.byte 105 +.byte 110 +.byte 99 +.byte 111 +.byte 110 +.byte 118 +.byte 101 +.byte 110 +.byte 105 +.byte 101 +.byte 110 +.byte 116 +.byte 32 +.byte 68 +.byte 101 +.byte 102 +.byte 101 +.byte 99 +.byte 116 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.785: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 100 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 109 +.byte 97 +.byte 121 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 65 +.byte 99 +.byte 99 +.byte 101 +.byte 112 +.byte 116 +.byte 97 +.byte 98 +.byte 108 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.780: +.byte 83 +.byte 97 +.byte 116 +.byte 105 +.byte 115 +.byte 102 +.byte 97 +.byte 99 +.byte 116 +.byte 111 +.byte 114 +.byte 121 +.byte 32 +.byte 116 +.byte 104 +.byte 111 +.byte 117 +.byte 103 +.byte 104 +.byte 32 +.byte 102 +.byte 108 +.byte 97 +.byte 119 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.779: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 100 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 115 +.byte 101 +.byte 101 +.byte 109 +.byte 115 +.byte 32 +.byte 0 +.align 0 +L.768: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 32 +.byte 37 +.byte 45 +.byte 50 +.byte 57 +.byte 115 +.byte 32 +.byte 37 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.761: +.byte 70 +.byte 76 +.byte 65 +.byte 87 +.byte 115 +.byte 32 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 101 +.byte 100 +.byte 32 +.byte 61 +.byte 0 +.align 0 +L.760: +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 115 +.byte 32 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 101 +.byte 100 +.byte 32 +.byte 61 +.byte 0 +.align 0 +L.759: +.byte 83 +.byte 69 +.byte 82 +.byte 73 +.byte 79 +.byte 85 +.byte 83 +.byte 32 +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 115 +.byte 32 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 101 +.byte 100 +.byte 32 +.byte 61 +.byte 0 +.align 0 +L.758: +.byte 70 +.byte 65 +.byte 73 +.byte 76 +.byte 85 +.byte 82 +.byte 69 +.byte 115 +.byte 32 +.byte 32 +.byte 101 +.byte 110 +.byte 99 +.byte 111 +.byte 117 +.byte 110 +.byte 116 +.byte 101 +.byte 114 +.byte 101 +.byte 100 +.byte 32 +.byte 61 +.byte 0 +.align 0 +L.754: +.byte 10 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 84 +.byte 114 +.byte 121 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 101 +.byte 32 +.byte 48 +.byte 32 +.byte 47 +.byte 32 +.byte 48 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 100 +.byte 117 +.byte 99 +.byte 101 +.byte 115 +.byte 32 +.byte 46 +.byte 46 +.byte 46 +.byte 0 +.align 0 +L.753: +.byte 32 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.750: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 84 +.byte 114 +.byte 121 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 101 +.byte 32 +.byte 49 +.byte 32 +.byte 47 +.byte 32 +.byte 48 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 100 +.byte 117 +.byte 99 +.byte 101 +.byte 115 +.byte 32 +.byte 46 +.byte 46 +.byte 46 +.byte 0 +.align 0 +L.749: +.byte 87 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 109 +.byte 101 +.byte 115 +.byte 115 +.byte 97 +.byte 103 +.byte 101 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 47 +.byte 111 +.byte 114 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 115 +.byte 32 +.byte 100 +.byte 111 +.byte 101 +.byte 115 +.byte 32 +.byte 68 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 90 +.byte 101 +.byte 114 +.byte 111 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 100 +.byte 117 +.byte 99 +.byte 101 +.byte 63 +.byte 10 +.byte 0 +.align 0 +L.748: +.byte 32 +.byte 32 +.byte 105 +.byte 110 +.byte 115 +.byte 116 +.byte 101 +.byte 97 +.byte 100 +.byte 44 +.byte 32 +.byte 88 +.byte 32 +.byte 47 +.byte 32 +.byte 88 +.byte 32 +.byte 45 +.byte 32 +.byte 49 +.byte 47 +.byte 50 +.byte 32 +.byte 45 +.byte 32 +.byte 49 +.byte 47 +.byte 50 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.747: +.byte 32 +.byte 32 +.byte 88 +.byte 32 +.byte 47 +.byte 32 +.byte 88 +.byte 32 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 49 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 110 +.byte 32 +.byte 88 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.742: +.byte 32 +.byte 32 +.byte 88 +.byte 32 +.byte 47 +.byte 32 +.byte 88 +.byte 32 +.byte 32 +.byte 116 +.byte 114 +.byte 97 +.byte 112 +.byte 115 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 110 +.byte 32 +.byte 88 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 103 +.byte 10 +.byte 0 +.align 0 +L.727: +.byte 105 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 102 +.byte 97 +.byte 114 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 49 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.726: +.byte 32 +.byte 117 +.byte 110 +.byte 98 +.byte 97 +.byte 108 +.byte 97 +.byte 110 +.byte 99 +.byte 101 +.byte 100 +.byte 32 +.byte 114 +.byte 97 +.byte 110 +.byte 103 +.byte 101 +.byte 59 +.byte 32 +.byte 85 +.byte 102 +.byte 84 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 42 +.byte 32 +.byte 86 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 9 +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 0 +L.725: +.byte 66 +.byte 97 +.byte 100 +.byte 108 +.byte 121 +.byte 0 +.align 0 +L.718: +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 102 +.byte 97 +.byte 114 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 40 +.byte 90 +.byte 41 +.byte 32 +.byte 94 +.byte 32 +.byte 50 +.byte 32 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.717: +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 103 +.byte 101 +.byte 115 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 90 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.705: +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 102 +.byte 97 +.byte 114 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 40 +.byte 90 +.byte 41 +.byte 32 +.byte 94 +.byte 32 +.byte 50 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.704: +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 103 +.byte 101 +.byte 115 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 119 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 112 +.byte 114 +.byte 105 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 90 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.687: +.byte 43 +.byte 45 +.byte 37 +.byte 103 +.byte 44 +.byte 32 +.byte 43 +.byte 45 +.byte 37 +.byte 103 +.byte 10 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 43 +.byte 45 +.byte 37 +.byte 103 +.byte 32 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 102 +.byte 117 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 79 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 46 +.byte 0 +.align 0 +L.686: +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 105 +.byte 110 +.byte 118 +.byte 111 +.byte 108 +.byte 118 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 0 +.align 0 +L.680: +.byte 97 +.byte 98 +.byte 111 +.byte 118 +.byte 101 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.679: +.byte 65 +.byte 110 +.byte 121 +.byte 32 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 97 +.byte 108 +.byte 32 +.byte 115 +.byte 101 +.byte 112 +.byte 97 +.byte 114 +.byte 97 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 42 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 111 +.byte 110 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.678: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 110 +.byte 111 +.byte 114 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 86 +.byte 32 +.byte 47 +.byte 32 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.677: +.byte 78 +.byte 111 +.byte 32 +.byte 79 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 115 +.byte 104 +.byte 111 +.byte 117 +.byte 108 +.byte 100 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 97 +.byte 108 +.byte 101 +.byte 100 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 86 +.byte 32 +.byte 42 +.byte 32 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.676: +.byte 84 +.byte 104 +.byte 101 +.byte 114 +.byte 101 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 32 +.byte 115 +.byte 97 +.byte 116 +.byte 117 +.byte 114 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 32 +.byte 98 +.byte 101 +.byte 99 +.byte 97 +.byte 117 +.byte 115 +.byte 101 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 115 +.byte 121 +.byte 115 +.byte 116 +.byte 101 +.byte 109 +.byte 32 +.byte 116 +.byte 114 +.byte 97 +.byte 112 +.byte 115 +.byte 32 +.byte 111 +.byte 110 +.byte 32 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.675: +.byte 79 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 115 +.byte 97 +.byte 116 +.byte 117 +.byte 114 +.byte 97 +.byte 116 +.byte 101 +.byte 115 +.byte 32 +.byte 97 +.byte 116 +.byte 32 +.byte 86 +.byte 48 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.672: +.byte 79 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 86 +.byte 32 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.663: +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 112 +.byte 97 +.byte 115 +.byte 116 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 9 +.byte 115 +.byte 104 +.byte 114 +.byte 105 +.byte 110 +.byte 107 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.660: +.byte 45 +.byte 40 +.byte 45 +.byte 89 +.byte 41 +.byte 32 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 89 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.659: +.byte 102 +.byte 105 +.byte 110 +.byte 100 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 0 +.align 0 +L.658: +.byte 83 +.byte 101 +.byte 101 +.byte 109 +.byte 115 +.byte 32 +.byte 79 +.byte 46 +.byte 75 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.655: +.byte 84 +.byte 114 +.byte 121 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 105 +.byte 116 +.byte 32 +.byte 111 +.byte 110 +.byte 32 +.byte 89 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.654: +.byte 67 +.byte 97 +.byte 110 +.byte 32 +.byte 96 +.byte 90 +.byte 32 +.byte 61 +.byte 32 +.byte 45 +.byte 89 +.byte 39 +.byte 32 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 63 +.byte 10 +.byte 0 +.align 0 +L.647: +.byte 84 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 109 +.byte 97 +.byte 121 +.byte 32 +.byte 103 +.byte 101 +.byte 110 +.byte 101 +.byte 114 +.byte 97 +.byte 116 +.byte 101 +.byte 32 +.byte 97 +.byte 110 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.646: +.byte 83 +.byte 101 +.byte 97 +.byte 114 +.byte 99 +.byte 104 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 79 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 58 +.byte 10 +.byte 0 +.align 0 +L.645: +.byte 32 +.byte 46 +.byte 46 +.byte 46 +.byte 32 +.byte 110 +.byte 111 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 114 +.byte 101 +.byte 112 +.byte 97 +.byte 110 +.byte 99 +.byte 105 +.byte 101 +.byte 115 +.byte 32 +.byte 102 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.637: +.byte 84 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 112 +.byte 111 +.byte 119 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 90 +.byte 94 +.byte 81 +.byte 32 +.byte 97 +.byte 116 +.byte 32 +.byte 102 +.byte 111 +.byte 117 +.byte 114 +.byte 32 +.byte 110 +.byte 101 +.byte 97 +.byte 114 +.byte 108 +.byte 121 +.byte 32 +.byte 101 +.byte 120 +.byte 116 +.byte 114 +.byte 101 +.byte 109 +.byte 101 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.636: +.byte 65 +.byte 99 +.byte 99 +.byte 117 +.byte 114 +.byte 97 +.byte 99 +.byte 121 +.byte 32 +.byte 115 +.byte 101 +.byte 101 +.byte 109 +.byte 115 +.byte 32 +.byte 97 +.byte 100 +.byte 101 +.byte 113 +.byte 117 +.byte 97 +.byte 116 +.byte 101 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.629: +.byte 9 +.byte 99 +.byte 97 +.byte 108 +.byte 99 +.byte 117 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 105 +.byte 110 +.byte 118 +.byte 111 +.byte 108 +.byte 118 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 116 +.byte 105 +.byte 110 +.byte 121 +.byte 32 +.byte 105 +.byte 110 +.byte 116 +.byte 101 +.byte 114 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 114 +.byte 97 +.byte 116 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.628: +.byte 9 +.byte 84 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 109 +.byte 117 +.byte 99 +.byte 104 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 32 +.byte 109 +.byte 97 +.byte 121 +.byte 32 +.byte 115 +.byte 112 +.byte 111 +.byte 105 +.byte 108 +.byte 32 +.byte 102 +.byte 105 +.byte 110 +.byte 97 +.byte 110 +.byte 99 +.byte 105 +.byte 97 +.byte 108 +.byte 10 +.byte 0 +.align 0 +L.627: +.byte 9 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.626: +.byte 9 +.byte 40 +.byte 49 +.byte 32 +.byte 43 +.byte 32 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 32 +.byte 94 +.byte 32 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 59 +.byte 10 +.byte 0 +.align 0 +L.625: +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 10 +.byte 0 +.align 0 +L.624: +.byte 67 +.byte 97 +.byte 108 +.byte 99 +.byte 117 +.byte 108 +.byte 97 +.byte 116 +.byte 101 +.byte 100 +.byte 0 +.align 0 +L.617: +.byte 84 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 88 +.byte 94 +.byte 40 +.byte 40 +.byte 88 +.byte 32 +.byte 43 +.byte 32 +.byte 49 +.byte 41 +.byte 32 +.byte 47 +.byte 32 +.byte 40 +.byte 88 +.byte 32 +.byte 45 +.byte 32 +.byte 49 +.byte 41 +.byte 41 +.byte 32 +.byte 118 +.byte 115 +.byte 46 +.byte 32 +.byte 101 +.byte 120 +.byte 112 +.byte 40 +.byte 50 +.byte 41 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 88 +.byte 32 +.byte 45 +.byte 62 +.byte 32 +.byte 49 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.613: +.byte 84 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 79 +.byte 46 +.byte 75 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.610: +.byte 32 +.byte 32 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.609: +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 98 +.byte 101 +.byte 116 +.byte 119 +.byte 101 +.byte 101 +.byte 110 +.byte 32 +.byte 48 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 10 +.byte 0 +.align 0 +L.605: +.byte 97 +.byte 99 +.byte 116 +.byte 117 +.byte 97 +.byte 108 +.byte 108 +.byte 121 +.byte 32 +.byte 99 +.byte 97 +.byte 108 +.byte 99 +.byte 117 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 121 +.byte 105 +.byte 101 +.byte 108 +.byte 100 +.byte 115 +.byte 58 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.604: +.byte 115 +.byte 104 +.byte 111 +.byte 117 +.byte 108 +.byte 100 +.byte 32 +.byte 97 +.byte 102 +.byte 102 +.byte 108 +.byte 105 +.byte 99 +.byte 116 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 101 +.byte 120 +.byte 112 +.byte 114 +.byte 101 +.byte 115 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 10 +.byte 9 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 32 +.byte 94 +.byte 32 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 59 +.byte 10 +.byte 0 +.align 0 +L.603: +.byte 85 +.byte 102 +.byte 84 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 61 +.byte 32 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 32 +.byte 94 +.byte 32 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 10 +.byte 111 +.byte 110 +.byte 108 +.byte 121 +.byte 32 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 0 +.align 0 +L.602: +.byte 83 +.byte 105 +.byte 110 +.byte 99 +.byte 101 +.byte 32 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 111 +.byte 99 +.byte 99 +.byte 117 +.byte 114 +.byte 115 +.byte 32 +.byte 98 +.byte 101 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.601: +.byte 82 +.byte 97 +.byte 110 +.byte 103 +.byte 101 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 110 +.byte 97 +.byte 114 +.byte 114 +.byte 111 +.byte 119 +.byte 59 +.byte 32 +.byte 85 +.byte 49 +.byte 94 +.byte 37 +.byte 100 +.byte 32 +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.596: +.byte 109 +.byte 101 +.byte 114 +.byte 101 +.byte 108 +.byte 121 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 111 +.byte 102 +.byte 102 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.595: +.byte 99 +.byte 97 +.byte 108 +.byte 99 +.byte 117 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 109 +.byte 97 +.byte 121 +.byte 32 +.byte 115 +.byte 117 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 32 +.byte 108 +.byte 97 +.byte 114 +.byte 103 +.byte 101 +.byte 114 +.byte 32 +.byte 82 +.byte 101 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 110 +.byte 32 +.byte 0 +.align 0 +L.594: +.byte 32 +.byte 98 +.byte 101 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 119 +.byte 104 +.byte 105 +.byte 99 +.byte 104 +.byte 0 +.align 0 +L.593: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 44 +.byte 32 +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 0 +L.592: +.byte 88 +.byte 32 +.byte 47 +.byte 32 +.byte 90 +.byte 32 +.byte 61 +.byte 32 +.byte 49 +.byte 32 +.byte 43 +.byte 32 +.byte 37 +.byte 103 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.591: +.byte 88 +.byte 32 +.byte 47 +.byte 32 +.byte 90 +.byte 32 +.byte 102 +.byte 97 +.byte 105 +.byte 108 +.byte 115 +.byte 33 +.byte 10 +.byte 0 +.align 0 +L.588: +.byte 101 +.byte 110 +.byte 99 +.byte 111 +.byte 117 +.byte 110 +.byte 116 +.byte 101 +.byte 114 +.byte 32 +.byte 68 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 90 +.byte 101 +.byte 114 +.byte 111 +.byte 32 +.byte 97 +.byte 108 +.byte 116 +.byte 104 +.byte 111 +.byte 117 +.byte 103 +.byte 104 +.byte 32 +.byte 97 +.byte 99 +.byte 116 +.byte 117 +.byte 97 +.byte 108 +.byte 108 +.byte 121 +.byte 10 +.byte 0 +.align 0 +L.587: +.byte 32 +.byte 32 +.byte 46 +.byte 46 +.byte 46 +.byte 32 +.byte 40 +.byte 102 +.byte 40 +.byte 88 +.byte 41 +.byte 32 +.byte 45 +.byte 32 +.byte 102 +.byte 40 +.byte 90 +.byte 41 +.byte 41 +.byte 32 +.byte 47 +.byte 32 +.byte 40 +.byte 88 +.byte 32 +.byte 45 +.byte 32 +.byte 90 +.byte 41 +.byte 32 +.byte 46 +.byte 46 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.586: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 105 +.byte 102 +.byte 32 +.byte 40 +.byte 88 +.byte 32 +.byte 61 +.byte 61 +.byte 32 +.byte 90 +.byte 41 +.byte 32 +.byte 32 +.byte 46 +.byte 46 +.byte 46 +.byte 32 +.byte 32 +.byte 101 +.byte 108 +.byte 115 +.byte 101 +.byte 0 +.align 0 +L.585: +.byte 99 +.byte 111 +.byte 110 +.byte 102 +.byte 117 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 110 +.byte 32 +.byte 105 +.byte 110 +.byte 110 +.byte 111 +.byte 99 +.byte 101 +.byte 110 +.byte 116 +.byte 32 +.byte 115 +.byte 116 +.byte 97 +.byte 116 +.byte 101 +.byte 109 +.byte 101 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 108 +.byte 105 +.byte 107 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.584: +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 83 +.byte 69 +.byte 82 +.byte 73 +.byte 79 +.byte 85 +.byte 83 +.byte 32 +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 10 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 99 +.byte 97 +.byte 117 +.byte 115 +.byte 101 +.byte 115 +.byte 32 +.byte 0 +.align 0 +L.583: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 83 +.byte 104 +.byte 111 +.byte 117 +.byte 108 +.byte 100 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 78 +.byte 79 +.byte 84 +.byte 32 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 97 +.byte 108 +.byte 32 +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 44 +.byte 32 +.byte 0 +.align 0 +L.582: +.byte 121 +.byte 101 +.byte 116 +.byte 32 +.byte 88 +.byte 32 +.byte 45 +.byte 32 +.byte 90 +.byte 32 +.byte 121 +.byte 105 +.byte 101 +.byte 108 +.byte 100 +.byte 115 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.581: +.byte 88 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 9 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 101 +.byte 113 +.byte 117 +.byte 97 +.byte 108 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 90 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.576: +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 47 +.byte 32 +.byte 85 +.byte 102 +.byte 84 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 102 +.byte 97 +.byte 105 +.byte 108 +.byte 101 +.byte 100 +.byte 33 +.byte 10 +.byte 0 +.align 0 +L.566: +.byte 40 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 111 +.byte 102 +.byte 102 +.byte 32 +.byte 105 +.byte 110 +.byte 32 +.byte 85 +.byte 102 +.byte 84 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 41 +.byte 32 +.byte 60 +.byte 32 +.byte 69 +.byte 48 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.565: +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 103 +.byte 114 +.byte 97 +.byte 100 +.byte 117 +.byte 97 +.byte 108 +.byte 59 +.byte 32 +.byte 105 +.byte 116 +.byte 32 +.byte 105 +.byte 110 +.byte 99 +.byte 117 +.byte 114 +.byte 115 +.byte 32 +.byte 65 +.byte 98 +.byte 115 +.byte 111 +.byte 108 +.byte 117 +.byte 116 +.byte 101 +.byte 32 +.byte 69 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 32 +.byte 61 +.byte 10 +.byte 0 +.align 0 +L.560: +.byte 124 +.byte 81 +.byte 32 +.byte 45 +.byte 32 +.byte 89 +.byte 124 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.559: +.byte 112 +.byte 114 +.byte 105 +.byte 110 +.byte 116 +.byte 32 +.byte 111 +.byte 117 +.byte 116 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 81 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 44 +.byte 32 +.byte 89 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.558: +.byte 81 +.byte 32 +.byte 61 +.byte 61 +.byte 32 +.byte 89 +.byte 32 +.byte 119 +.byte 104 +.byte 105 +.byte 108 +.byte 101 +.byte 32 +.byte 100 +.byte 101 +.byte 110 +.byte 121 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 124 +.byte 81 +.byte 32 +.byte 45 +.byte 32 +.byte 89 +.byte 124 +.byte 32 +.byte 61 +.byte 61 +.byte 32 +.byte 48 +.byte 59 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 115 +.byte 101 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 115 +.byte 10 +.byte 0 +.align 0 +L.557: +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 102 +.byte 117 +.byte 115 +.byte 101 +.byte 115 +.byte 32 +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 44 +.byte 32 +.byte 119 +.byte 104 +.byte 105 +.byte 99 +.byte 104 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 103 +.byte 101 +.byte 115 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 10 +.byte 0 +.align 0 +L.555: +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 101 +.byte 108 +.byte 115 +.byte 101 +.byte 32 +.byte 109 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 105 +.byte 99 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 103 +.byte 101 +.byte 116 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 109 +.byte 97 +.byte 110 +.byte 121 +.byte 32 +.byte 108 +.byte 97 +.byte 115 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 119 +.byte 114 +.byte 111 +.byte 110 +.byte 103 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.554: +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 100 +.byte 111 +.byte 119 +.byte 110 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.553: +.byte 97 +.byte 112 +.byte 112 +.byte 114 +.byte 111 +.byte 97 +.byte 99 +.byte 104 +.byte 32 +.byte 97 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.552: +.byte 69 +.byte 105 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 97 +.byte 99 +.byte 99 +.byte 117 +.byte 114 +.byte 97 +.byte 99 +.byte 121 +.byte 32 +.byte 100 +.byte 101 +.byte 116 +.byte 101 +.byte 114 +.byte 105 +.byte 111 +.byte 114 +.byte 97 +.byte 116 +.byte 101 +.byte 115 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 115 +.byte 10 +.byte 0 +.align 0 +L.540: +.byte 83 +.byte 109 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 115 +.byte 116 +.byte 114 +.byte 105 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 112 +.byte 111 +.byte 115 +.byte 105 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 32 +.byte 102 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 69 +.byte 48 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 103 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.539: +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 110 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 100 +.byte 117 +.byte 99 +.byte 116 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.538: +.byte 68 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 101 +.byte 110 +.byte 99 +.byte 101 +.byte 32 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 115 +.byte 32 +.byte 97 +.byte 116 +.byte 32 +.byte 97 +.byte 32 +.byte 104 +.byte 105 +.byte 103 +.byte 104 +.byte 101 +.byte 114 +.byte 0 +.align 0 +L.535: +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 110 +.byte 32 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 101 +.byte 110 +.byte 99 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.534: +.byte 80 +.byte 114 +.byte 111 +.byte 100 +.byte 117 +.byte 99 +.byte 116 +.byte 115 +.byte 32 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 97 +.byte 116 +.byte 32 +.byte 97 +.byte 32 +.byte 104 +.byte 105 +.byte 103 +.byte 104 +.byte 101 +.byte 114 +.byte 0 +.align 0 +L.527: +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 32 +.byte 80 +.byte 115 +.byte 101 +.byte 117 +.byte 100 +.byte 111 +.byte 90 +.byte 101 +.byte 114 +.byte 111 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 112 +.byte 114 +.byte 105 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 111 +.byte 117 +.byte 116 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 37 +.byte 103 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.526: +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 99 +.byte 97 +.byte 110 +.byte 32 +.byte 115 +.byte 116 +.byte 105 +.byte 99 +.byte 107 +.byte 32 +.byte 97 +.byte 116 +.byte 32 +.byte 97 +.byte 110 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 103 +.byte 101 +.byte 100 +.byte 108 +.byte 121 +.byte 32 +.byte 112 +.byte 111 +.byte 115 +.byte 105 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.525: +.byte 112 +.byte 111 +.byte 115 +.byte 105 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 44 +.byte 32 +.byte 105 +.byte 115 +.byte 110 +.byte 39 +.byte 116 +.byte 59 +.byte 32 +.byte 105 +.byte 116 +.byte 32 +.byte 112 +.byte 114 +.byte 105 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 111 +.byte 117 +.byte 116 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 32 +.byte 37 +.byte 103 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.524: +.byte 66 +.byte 117 +.byte 116 +.byte 32 +.byte 45 +.byte 80 +.byte 115 +.byte 101 +.byte 117 +.byte 100 +.byte 111 +.byte 90 +.byte 101 +.byte 114 +.byte 111 +.byte 44 +.byte 32 +.byte 119 +.byte 104 +.byte 105 +.byte 99 +.byte 104 +.byte 32 +.byte 115 +.byte 104 +.byte 111 +.byte 117 +.byte 108 +.byte 100 +.byte 32 +.byte 98 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.521: +.byte 80 +.byte 115 +.byte 101 +.byte 117 +.byte 100 +.byte 111 +.byte 90 +.byte 101 +.byte 114 +.byte 111 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 112 +.byte 114 +.byte 105 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 111 +.byte 117 +.byte 116 +.byte 32 +.byte 97 +.byte 115 +.byte 58 +.byte 32 +.byte 37 +.byte 103 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.520: +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 103 +.byte 101 +.byte 100 +.byte 108 +.byte 121 +.byte 32 +.byte 110 +.byte 101 +.byte 103 +.byte 97 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.519: +.byte 80 +.byte 111 +.byte 115 +.byte 105 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 32 +.byte 101 +.byte 120 +.byte 112 +.byte 114 +.byte 101 +.byte 115 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 99 +.byte 97 +.byte 110 +.byte 32 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 97 +.byte 110 +.byte 10 +.byte 0 +.align 0 +L.506: +.byte 109 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 105 +.byte 99 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 103 +.byte 101 +.byte 116 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 109 +.byte 97 +.byte 110 +.byte 121 +.byte 32 +.byte 108 +.byte 97 +.byte 115 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 119 +.byte 114 +.byte 111 +.byte 110 +.byte 103 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.482: +.byte 83 +.byte 101 +.byte 101 +.byte 107 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 115 +.byte 32 +.byte 85 +.byte 102 +.byte 84 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 69 +.byte 48 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.479: +.byte 46 +.byte 46 +.byte 46 +.byte 32 +.byte 110 +.byte 111 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 114 +.byte 101 +.byte 112 +.byte 97 +.byte 110 +.byte 99 +.byte 105 +.byte 115 +.byte 32 +.byte 102 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.476: +.byte 9 +.byte 105 +.byte 110 +.byte 118 +.byte 111 +.byte 108 +.byte 118 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 105 +.byte 110 +.byte 116 +.byte 101 +.byte 114 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 114 +.byte 97 +.byte 116 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.475: +.byte 69 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 115 +.byte 32 +.byte 108 +.byte 105 +.byte 107 +.byte 101 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 109 +.byte 97 +.byte 121 +.byte 32 +.byte 105 +.byte 110 +.byte 118 +.byte 97 +.byte 108 +.byte 105 +.byte 100 +.byte 97 +.byte 116 +.byte 101 +.byte 32 +.byte 102 +.byte 105 +.byte 110 +.byte 97 +.byte 110 +.byte 99 +.byte 105 +.byte 97 +.byte 108 +.byte 32 +.byte 99 +.byte 97 +.byte 108 +.byte 99 +.byte 117 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 10 +.byte 0 +.align 0 +L.454: +.byte 84 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 112 +.byte 111 +.byte 119 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 90 +.byte 94 +.byte 105 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 115 +.byte 109 +.byte 97 +.byte 108 +.byte 108 +.byte 32 +.byte 73 +.byte 110 +.byte 116 +.byte 101 +.byte 103 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 90 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 105 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.451: +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 32 +.byte 103 +.byte 101 +.byte 116 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 109 +.byte 97 +.byte 110 +.byte 121 +.byte 32 +.byte 108 +.byte 97 +.byte 115 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 119 +.byte 114 +.byte 111 +.byte 110 +.byte 103 +.byte 0 +.align 0 +L.449: +.byte 116 +.byte 111 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 32 +.byte 117 +.byte 108 +.byte 112 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.448: +.byte 79 +.byte 98 +.byte 115 +.byte 101 +.byte 114 +.byte 118 +.byte 101 +.byte 100 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 115 +.byte 32 +.byte 114 +.byte 117 +.byte 110 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 32 +.byte 0 +.align 0 +L.447: +.byte 83 +.byte 113 +.byte 117 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 114 +.byte 111 +.byte 111 +.byte 116 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 101 +.byte 105 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 112 +.byte 101 +.byte 100 +.byte 32 +.byte 110 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.444: +.byte 83 +.byte 113 +.byte 117 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 114 +.byte 111 +.byte 111 +.byte 116 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 112 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.439: +.byte 83 +.byte 113 +.byte 117 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 114 +.byte 111 +.byte 111 +.byte 116 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.434: +.byte 32 +.byte 102 +.byte 97 +.byte 105 +.byte 108 +.byte 115 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 115 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.433: +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 94 +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.432: +.byte 65 +.byte 110 +.byte 111 +.byte 109 +.byte 97 +.byte 108 +.byte 111 +.byte 117 +.byte 115 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 73 +.byte 110 +.byte 116 +.byte 101 +.byte 103 +.byte 101 +.byte 114 +.byte 32 +.byte 60 +.byte 32 +.byte 0 +.align 0 +L.392: +.byte 84 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 100 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 112 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.370: +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 40 +.byte 88 +.byte 41 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 110 +.byte 45 +.byte 109 +.byte 111 +.byte 110 +.byte 111 +.byte 116 +.byte 111 +.byte 110 +.byte 105 +.byte 99 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 88 +.byte 32 +.byte 110 +.byte 101 +.byte 97 +.byte 114 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.369: +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 32 +.byte 104 +.byte 97 +.byte 115 +.byte 32 +.byte 112 +.byte 97 +.byte 115 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 97 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 77 +.byte 111 +.byte 110 +.byte 111 +.byte 116 +.byte 111 +.byte 110 +.byte 105 +.byte 99 +.byte 105 +.byte 116 +.byte 121 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.352: +.byte 84 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 32 +.byte 109 +.byte 111 +.byte 110 +.byte 111 +.byte 116 +.byte 111 +.byte 110 +.byte 105 +.byte 99 +.byte 105 +.byte 116 +.byte 121 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.341: +.byte 84 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 105 +.byte 102 +.byte 32 +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 40 +.byte 88 +.byte 32 +.byte 42 +.byte 32 +.byte 88 +.byte 41 +.byte 32 +.byte 61 +.byte 61 +.byte 32 +.byte 88 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 73 +.byte 110 +.byte 116 +.byte 101 +.byte 103 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 88 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.336: +.byte 83 +.byte 113 +.byte 117 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 114 +.byte 111 +.byte 111 +.byte 116 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 48 +.byte 46 +.byte 48 +.byte 44 +.byte 32 +.byte 45 +.byte 48 +.byte 46 +.byte 48 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 49 +.byte 46 +.byte 48 +.byte 32 +.byte 119 +.byte 114 +.byte 111 +.byte 110 +.byte 103 +.byte 0 +.align 0 +L.334: +.byte 10 +.byte 82 +.byte 117 +.byte 110 +.byte 110 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 115 +.byte 113 +.byte 117 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 114 +.byte 111 +.byte 111 +.byte 116 +.byte 40 +.byte 120 +.byte 41 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.333: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 78 +.byte 111 +.byte 32 +.byte 102 +.byte 97 +.byte 105 +.byte 108 +.byte 117 +.byte 114 +.byte 101 +.byte 115 +.byte 32 +.byte 102 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 105 +.byte 110 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 105 +.byte 110 +.byte 116 +.byte 101 +.byte 103 +.byte 101 +.byte 114 +.byte 32 +.byte 112 +.byte 97 +.byte 105 +.byte 114 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.332: +.byte 88 +.byte 32 +.byte 42 +.byte 32 +.byte 89 +.byte 32 +.byte 61 +.byte 61 +.byte 32 +.byte 89 +.byte 32 +.byte 42 +.byte 32 +.byte 88 +.byte 32 +.byte 116 +.byte 114 +.byte 105 +.byte 97 +.byte 108 +.byte 32 +.byte 102 +.byte 97 +.byte 105 +.byte 108 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 3 +L.323: +.word 0x40080000 +.word 0x0 +.align 0 +L.322: +.byte 84 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 111 +.byte 110 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 114 +.byte 97 +.byte 110 +.byte 100 +.byte 111 +.byte 109 +.byte 32 +.byte 112 +.byte 97 +.byte 105 +.byte 114 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.321: +.byte 68 +.byte 111 +.byte 101 +.byte 115 +.byte 32 +.byte 77 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 105 +.byte 99 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 109 +.byte 117 +.byte 116 +.byte 101 +.byte 63 +.byte 32 +.byte 32 +.byte 0 +.align 0 +L.318: +.byte 108 +.byte 97 +.byte 99 +.byte 107 +.byte 40 +.byte 115 +.byte 41 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 103 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 102 +.byte 97 +.byte 105 +.byte 108 +.byte 117 +.byte 114 +.byte 101 +.byte 40 +.byte 115 +.byte 41 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 10 +.byte 40 +.byte 110 +.byte 111 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 97 +.byte 98 +.byte 111 +.byte 118 +.byte 101 +.byte 41 +.byte 32 +.byte 99 +.byte 111 +.byte 117 +.byte 110 +.byte 116 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 111 +.byte 110 +.byte 101 +.byte 32 +.byte 102 +.byte 108 +.byte 97 +.byte 119 +.byte 32 +.byte 105 +.byte 110 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 102 +.byte 105 +.byte 110 +.byte 97 +.byte 108 +.byte 32 +.byte 116 +.byte 97 +.byte 108 +.byte 108 +.byte 121 +.byte 32 +.byte 98 +.byte 101 +.byte 108 +.byte 111 +.byte 119 +.byte 0 +.align 0 +L.316: +.byte 83 +.byte 116 +.byte 105 +.byte 99 +.byte 107 +.byte 121 +.byte 32 +.byte 98 +.byte 105 +.byte 116 +.byte 32 +.byte 117 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 105 +.byte 110 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 97 +.byte 116 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.315: +.byte 83 +.byte 116 +.byte 105 +.byte 99 +.byte 107 +.byte 121 +.byte 32 +.byte 98 +.byte 105 +.byte 116 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 97 +.byte 114 +.byte 101 +.byte 110 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 117 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.298: +.byte 67 +.byte 104 +.byte 101 +.byte 99 +.byte 107 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 115 +.byte 116 +.byte 105 +.byte 99 +.byte 107 +.byte 121 +.byte 32 +.byte 98 +.byte 105 +.byte 116 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.295: +.byte 40 +.byte 88 +.byte 32 +.byte 45 +.byte 32 +.byte 89 +.byte 41 +.byte 32 +.byte 43 +.byte 32 +.byte 40 +.byte 89 +.byte 32 +.byte 45 +.byte 32 +.byte 88 +.byte 41 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 110 +.byte 32 +.byte 122 +.byte 101 +.byte 114 +.byte 111 +.byte 33 +.byte 10 +.byte 0 +.align 0 +L.292: +.byte 65 +.byte 100 +.byte 100 +.byte 105 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 47 +.byte 83 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 110 +.byte 101 +.byte 105 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.291: +.byte 65 +.byte 100 +.byte 100 +.byte 47 +.byte 83 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 0 +.align 0 +L.288: +.byte 65 +.byte 100 +.byte 100 +.byte 105 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 47 +.byte 83 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.281: +.byte 65 +.byte 100 +.byte 100 +.byte 47 +.byte 83 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 112 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.276: +.byte 73 +.byte 110 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 108 +.byte 101 +.byte 116 +.byte 101 +.byte 32 +.byte 99 +.byte 97 +.byte 114 +.byte 114 +.byte 121 +.byte 45 +.byte 112 +.byte 114 +.byte 111 +.byte 112 +.byte 97 +.byte 103 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 105 +.byte 110 +.byte 32 +.byte 65 +.byte 100 +.byte 100 +.byte 105 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 0 +.align 0 +L.272: +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 42 +.byte 32 +.byte 40 +.byte 32 +.byte 49 +.byte 32 +.byte 47 +.byte 32 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 41 +.byte 32 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 49 +.byte 0 +.align 0 +L.270: +.byte 47 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 101 +.byte 105 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 112 +.byte 101 +.byte 100 +.byte 32 +.byte 110 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.267: +.byte 68 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.264: +.byte 68 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 0 +.align 0 +L.261: +.byte 68 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.256: +.byte 77 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 105 +.byte 99 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 0 +.align 0 +L.253: +.byte 42 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 101 +.byte 105 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 112 +.byte 101 +.byte 100 +.byte 32 +.byte 110 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.252: +.byte 77 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 105 +.byte 99 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.249: +.byte 77 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 105 +.byte 99 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.239: +.byte 88 +.byte 32 +.byte 42 +.byte 32 +.byte 40 +.byte 49 +.byte 47 +.byte 88 +.byte 41 +.byte 32 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 49 +.byte 0 +.align 0 +L.220: +.byte 67 +.byte 104 +.byte 101 +.byte 99 +.byte 107 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 111 +.byte 110 +.byte 32 +.byte 109 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 121 +.byte 44 +.byte 32 +.byte 100 +.byte 105 +.byte 118 +.byte 105 +.byte 100 +.byte 101 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 97 +.byte 100 +.byte 100 +.byte 47 +.byte 115 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.219: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 42 +.byte 44 +.byte 32 +.byte 47 +.byte 44 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 45 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 104 +.byte 97 +.byte 118 +.byte 101 +.byte 32 +.byte 103 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 44 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 121 +.byte 32 +.byte 115 +.byte 104 +.byte 111 +.byte 117 +.byte 108 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.216: +.byte 32 +.byte 32 +.byte 46 +.byte 46 +.byte 46 +.byte 32 +.byte 32 +.byte 105 +.byte 102 +.byte 32 +.byte 40 +.byte 88 +.byte 32 +.byte 61 +.byte 61 +.byte 32 +.byte 49 +.byte 46 +.byte 48 +.byte 41 +.byte 32 +.byte 123 +.byte 46 +.byte 46 +.byte 46 +.byte 46 +.byte 46 +.byte 125 +.byte 32 +.byte 101 +.byte 108 +.byte 115 +.byte 101 +.byte 32 +.byte 123 +.byte 46 +.byte 46 +.byte 46 +.byte 47 +.byte 40 +.byte 88 +.byte 45 +.byte 49 +.byte 46 +.byte 48 +.byte 41 +.byte 46 +.byte 46 +.byte 46 +.byte 125 +.byte 10 +.byte 0 +.align 0 +L.215: +.byte 32 +.byte 32 +.byte 115 +.byte 117 +.byte 99 +.byte 104 +.byte 32 +.byte 112 +.byte 114 +.byte 101 +.byte 99 +.byte 97 +.byte 117 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 97 +.byte 103 +.byte 97 +.byte 105 +.byte 110 +.byte 115 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 122 +.byte 101 +.byte 114 +.byte 111 +.byte 32 +.byte 97 +.byte 115 +.byte 10 +.byte 0 +.align 0 +L.214: +.byte 32 +.byte 32 +.byte 115 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 121 +.byte 105 +.byte 101 +.byte 108 +.byte 100 +.byte 115 +.byte 32 +.byte 32 +.byte 40 +.byte 49 +.byte 45 +.byte 85 +.byte 49 +.byte 41 +.byte 32 +.byte 45 +.byte 32 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 48 +.byte 32 +.byte 44 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 101 +.byte 98 +.byte 121 +.byte 32 +.byte 118 +.byte 105 +.byte 116 +.byte 105 +.byte 97 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 10 +.byte 0 +.align 0 +L.213: +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 103 +.byte 101 +.byte 115 +.byte 32 +.byte 32 +.byte 40 +.byte 49 +.byte 45 +.byte 85 +.byte 49 +.byte 41 +.byte 32 +.byte 60 +.byte 32 +.byte 49 +.byte 32 +.byte 32 +.byte 97 +.byte 108 +.byte 116 +.byte 104 +.byte 111 +.byte 117 +.byte 103 +.byte 104 +.byte 10 +.byte 0 +.align 0 +L.210: +.byte 45 +.byte 32 +.byte 108 +.byte 97 +.byte 99 +.byte 107 +.byte 115 +.byte 32 +.byte 71 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 68 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 44 +.byte 32 +.byte 115 +.byte 111 +.byte 32 +.byte 99 +.byte 97 +.byte 110 +.byte 99 +.byte 101 +.byte 108 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 111 +.byte 98 +.byte 115 +.byte 99 +.byte 117 +.byte 114 +.byte 101 +.byte 100 +.byte 0 +.align 0 +L.205: +.byte 42 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 47 +.byte 111 +.byte 114 +.byte 32 +.byte 47 +.byte 32 +.byte 103 +.byte 101 +.byte 116 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 109 +.byte 97 +.byte 110 +.byte 121 +.byte 32 +.byte 108 +.byte 97 +.byte 115 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 119 +.byte 114 +.byte 111 +.byte 110 +.byte 103 +.byte 0 +.align 0 +L.201: +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 49 +.byte 47 +.byte 49 +.byte 46 +.byte 48 +.byte 48 +.byte 48 +.byte 46 +.byte 46 +.byte 49 +.byte 32 +.byte 62 +.byte 61 +.byte 32 +.byte 49 +.byte 0 +.align 0 +L.199: +.byte 68 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 108 +.byte 97 +.byte 99 +.byte 107 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 71 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 68 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 44 +.byte 32 +.byte 115 +.byte 111 +.byte 32 +.byte 88 +.byte 47 +.byte 49 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 88 +.byte 0 +.align 0 +L.194: +.byte 68 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 108 +.byte 97 +.byte 99 +.byte 107 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 71 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 68 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 44 +.byte 32 +.byte 115 +.byte 111 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 97 +.byte 110 +.byte 32 +.byte 101 +.byte 120 +.byte 99 +.byte 101 +.byte 101 +.byte 100 +.byte 32 +.byte 49 +.byte 32 +.byte 117 +.byte 108 +.byte 112 +.byte 10 +.byte 111 +.byte 114 +.byte 32 +.byte 32 +.byte 49 +.byte 47 +.byte 51 +.byte 32 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 32 +.byte 51 +.byte 47 +.byte 57 +.byte 32 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 32 +.byte 57 +.byte 47 +.byte 50 +.byte 55 +.byte 32 +.byte 109 +.byte 97 +.byte 121 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 97 +.byte 103 +.byte 114 +.byte 101 +.byte 101 +.byte 0 +.align 0 +L.190: +.byte 42 +.byte 32 +.byte 103 +.byte 101 +.byte 116 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 109 +.byte 97 +.byte 110 +.byte 121 +.byte 32 +.byte 102 +.byte 105 +.byte 110 +.byte 97 +.byte 108 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 119 +.byte 114 +.byte 111 +.byte 110 +.byte 103 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.188: +.byte 42 +.byte 32 +.byte 108 +.byte 97 +.byte 99 +.byte 107 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 71 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 68 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 44 +.byte 32 +.byte 115 +.byte 111 +.byte 32 +.byte 49 +.byte 42 +.byte 88 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 88 +.byte 0 +.align 0 +L.185: +.byte 10 +.byte 67 +.byte 104 +.byte 101 +.byte 99 +.byte 107 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 103 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 32 +.byte 105 +.byte 110 +.byte 32 +.byte 42 +.byte 44 +.byte 32 +.byte 47 +.byte 44 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 45 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.184: +.byte 83 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 110 +.byte 111 +.byte 114 +.byte 109 +.byte 97 +.byte 108 +.byte 105 +.byte 122 +.byte 101 +.byte 100 +.byte 44 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 105 +.byte 116 +.byte 32 +.byte 115 +.byte 104 +.byte 111 +.byte 117 +.byte 108 +.byte 100 +.byte 32 +.byte 98 +.byte 101 +.byte 46 +.byte 0 +.align 0 +L.179: +.byte 83 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 110 +.byte 111 +.byte 114 +.byte 109 +.byte 97 +.byte 108 +.byte 105 +.byte 122 +.byte 101 +.byte 100 +.byte 32 +.byte 88 +.byte 61 +.byte 89 +.byte 44 +.byte 88 +.byte 43 +.byte 90 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 89 +.byte 43 +.byte 90 +.byte 33 +.byte 0 +.align 0 +L.175: +.byte 114 +.byte 111 +.byte 117 +.byte 103 +.byte 104 +.byte 108 +.byte 121 +.byte 32 +.byte 37 +.byte 103 +.byte 32 +.byte 101 +.byte 120 +.byte 116 +.byte 114 +.byte 97 +.byte 32 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 105 +.byte 102 +.byte 105 +.byte 99 +.byte 97 +.byte 110 +.byte 116 +.byte 32 +.byte 100 +.byte 101 +.byte 99 +.byte 105 +.byte 109 +.byte 97 +.byte 108 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.174: +.byte 112 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 101 +.byte 108 +.byte 121 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 97 +.byte 98 +.byte 111 +.byte 117 +.byte 116 +.byte 32 +.byte 37 +.byte 103 +.byte 32 +.byte 101 +.byte 120 +.byte 116 +.byte 114 +.byte 97 +.byte 32 +.byte 66 +.byte 45 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 44 +.byte 32 +.byte 105 +.byte 46 +.byte 101 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.173: +.byte 83 +.byte 111 +.byte 109 +.byte 101 +.byte 32 +.byte 115 +.byte 117 +.byte 98 +.byte 101 +.byte 120 +.byte 112 +.byte 114 +.byte 101 +.byte 115 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 99 +.byte 97 +.byte 108 +.byte 99 +.byte 117 +.byte 108 +.byte 97 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 101 +.byte 120 +.byte 116 +.byte 114 +.byte 97 +.byte 10 +.byte 0 +.align 0 +L.167: +.byte 111 +.byte 102 +.byte 32 +.byte 97 +.byte 110 +.byte 10 +.byte 101 +.byte 120 +.byte 116 +.byte 114 +.byte 97 +.byte 45 +.byte 112 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 0 +.align 0 +L.166: +.byte 90 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 90 +.byte 50 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 32 +.byte 0 +.align 0 +L.165: +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 101 +.byte 120 +.byte 97 +.byte 99 +.byte 116 +.byte 32 +.byte 114 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 97 +.byte 108 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 97 +.byte 32 +.byte 114 +.byte 101 +.byte 115 +.byte 117 +.byte 108 +.byte 116 +.byte 10 +.byte 0 +.align 0 +L.164: +.byte 66 +.byte 101 +.byte 99 +.byte 97 +.byte 117 +.byte 115 +.byte 101 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 117 +.byte 110 +.byte 117 +.byte 115 +.byte 117 +.byte 97 +.byte 108 +.byte 32 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 102 +.byte 0 +.align 0 +L.160: +.byte 9 +.byte 85 +.byte 50 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 44 +.byte 32 +.byte 90 +.byte 50 +.byte 32 +.byte 45 +.byte 32 +.byte 85 +.byte 50 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.159: +.byte 9 +.byte 85 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 44 +.byte 32 +.byte 90 +.byte 49 +.byte 32 +.byte 45 +.byte 32 +.byte 85 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.158: +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 0 +.align 0 +L.157: +.byte 0 +.align 0 +L.150: +.byte 84 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 102 +.byte 101 +.byte 97 +.byte 116 +.byte 117 +.byte 114 +.byte 101 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 102 +.byte 117 +.byte 114 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.145: +.byte 80 +.byte 111 +.byte 115 +.byte 115 +.byte 105 +.byte 98 +.byte 108 +.byte 121 +.byte 32 +.byte 115 +.byte 111 +.byte 109 +.byte 101 +.byte 32 +.byte 112 +.byte 97 +.byte 114 +.byte 116 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 0 +.align 0 +L.144: +.byte 98 +.byte 121 +.byte 32 +.byte 101 +.byte 120 +.byte 116 +.byte 114 +.byte 97 +.byte 45 +.byte 112 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 101 +.byte 32 +.byte 101 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 115 +.byte 117 +.byte 98 +.byte 101 +.byte 120 +.byte 112 +.byte 114 +.byte 101 +.byte 115 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.143: +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 115 +.byte 121 +.byte 109 +.byte 112 +.byte 116 +.byte 111 +.byte 109 +.byte 115 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 105 +.byte 110 +.byte 99 +.byte 111 +.byte 110 +.byte 115 +.byte 105 +.byte 115 +.byte 116 +.byte 101 +.byte 110 +.byte 99 +.byte 105 +.byte 101 +.byte 115 +.byte 32 +.byte 105 +.byte 110 +.byte 116 +.byte 114 +.byte 111 +.byte 100 +.byte 117 +.byte 99 +.byte 101 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.142: +.byte 114 +.byte 101 +.byte 115 +.byte 112 +.byte 101 +.byte 99 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 108 +.byte 121 +.byte 32 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 44 +.byte 32 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 44 +.byte 32 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 44 +.byte 10 +.byte 0 +.align 0 +L.141: +.byte 68 +.byte 105 +.byte 115 +.byte 97 +.byte 103 +.byte 114 +.byte 101 +.byte 101 +.byte 109 +.byte 101 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 97 +.byte 109 +.byte 111 +.byte 110 +.byte 103 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 115 +.byte 32 +.byte 88 +.byte 49 +.byte 44 +.byte 32 +.byte 89 +.byte 49 +.byte 44 +.byte 32 +.byte 90 +.byte 49 +.byte 44 +.byte 10 +.byte 0 +.align 0 +L.119: +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 119 +.byte 111 +.byte 114 +.byte 115 +.byte 101 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 110 +.byte 32 +.byte 53 +.byte 32 +.byte 100 +.byte 101 +.byte 99 +.byte 105 +.byte 109 +.byte 97 +.byte 108 +.byte 32 +.byte 102 +.byte 105 +.byte 103 +.byte 117 +.byte 114 +.byte 101 +.byte 115 +.byte 32 +.byte 32 +.byte 0 +.align 0 +L.117: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 105 +.byte 102 +.byte 105 +.byte 99 +.byte 97 +.byte 110 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 37 +.byte 102 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.116: +.byte 108 +.byte 111 +.byte 103 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 105 +.byte 99 +.byte 32 +.byte 101 +.byte 110 +.byte 99 +.byte 111 +.byte 100 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 104 +.byte 97 +.byte 115 +.byte 32 +.byte 112 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 99 +.byte 104 +.byte 97 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 101 +.byte 114 +.byte 105 +.byte 122 +.byte 101 +.byte 100 +.byte 32 +.byte 115 +.byte 111 +.byte 108 +.byte 101 +.byte 108 +.byte 121 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 85 +.byte 49 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.113: +.byte 111 +.byte 102 +.byte 32 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 105 +.byte 102 +.byte 105 +.byte 99 +.byte 97 +.byte 110 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 98 +.byte 117 +.byte 116 +.byte 44 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 105 +.byte 116 +.byte 115 +.byte 101 +.byte 108 +.byte 102 +.byte 44 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 109 +.byte 105 +.byte 110 +.byte 111 +.byte 114 +.byte 32 +.byte 102 +.byte 108 +.byte 97 +.byte 119 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.112: +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 99 +.byte 97 +.byte 110 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 99 +.byte 104 +.byte 97 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 101 +.byte 114 +.byte 105 +.byte 122 +.byte 101 +.byte 100 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 97 +.byte 110 +.byte 32 +.byte 73 +.byte 110 +.byte 116 +.byte 101 +.byte 103 +.byte 101 +.byte 114 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 10 +.byte 0 +.align 0 +L.99: +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 102 +.byte 117 +.byte 122 +.byte 122 +.byte 121 +.byte 44 +.byte 88 +.byte 61 +.byte 49 +.byte 32 +.byte 98 +.byte 117 +.byte 116 +.byte 32 +.byte 88 +.byte 45 +.byte 49 +.byte 47 +.byte 50 +.byte 45 +.byte 49 +.byte 47 +.byte 50 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 0 +.align 0 +L.95: +.byte 40 +.byte 49 +.byte 45 +.byte 85 +.byte 49 +.byte 41 +.byte 45 +.byte 49 +.byte 47 +.byte 50 +.byte 32 +.byte 60 +.byte 32 +.byte 49 +.byte 47 +.byte 50 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 70 +.byte 65 +.byte 76 +.byte 83 +.byte 69 +.byte 44 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 46 +.byte 32 +.byte 102 +.byte 97 +.byte 105 +.byte 108 +.byte 115 +.byte 63 +.byte 0 +.align 3 +L.93: +.word 0x40240000 +.word 0x0 +.align 0 +L.88: +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 103 +.byte 111 +.byte 111 +.byte 100 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 50 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 49 +.byte 48 +.byte 0 +.align 0 +L.84: +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 98 +.byte 105 +.byte 103 +.byte 58 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 111 +.byte 102 +.byte 102 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 98 +.byte 108 +.byte 101 +.byte 109 +.byte 115 +.byte 0 +.align 0 +L.82: +.byte 77 +.byte 89 +.byte 83 +.byte 84 +.byte 69 +.byte 82 +.byte 89 +.byte 58 +.byte 32 +.byte 114 +.byte 101 +.byte 99 +.byte 97 +.byte 108 +.byte 99 +.byte 117 +.byte 108 +.byte 97 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.81: +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 102 +.byte 105 +.byte 114 +.byte 109 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 3 +L.78: +.word 0x3f847ae1 +.word 0x47ae147b +.align 0 +L.77: +.byte 103 +.byte 101 +.byte 116 +.byte 115 +.byte 32 +.byte 98 +.byte 101 +.byte 116 +.byte 116 +.byte 101 +.byte 114 +.byte 32 +.byte 99 +.byte 108 +.byte 111 +.byte 115 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 114 +.byte 101 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 32 +.byte 115 +.byte 101 +.byte 112 +.byte 97 +.byte 114 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 85 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.76: +.byte 99 +.byte 111 +.byte 110 +.byte 102 +.byte 105 +.byte 114 +.byte 109 +.byte 115 +.byte 32 +.byte 99 +.byte 108 +.byte 111 +.byte 115 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 114 +.byte 101 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 32 +.byte 115 +.byte 101 +.byte 112 +.byte 97 +.byte 114 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 85 +.byte 49 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.61: +.byte 82 +.byte 101 +.byte 99 +.byte 97 +.byte 108 +.byte 99 +.byte 117 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 114 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 112 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 10 +.byte 32 +.byte 0 +.align 0 +L.60: +.byte 67 +.byte 108 +.byte 111 +.byte 115 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 114 +.byte 101 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 32 +.byte 115 +.byte 101 +.byte 112 +.byte 97 +.byte 114 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 102 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 85 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 10 +.byte 0 +.align 0 +L.54: +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 102 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.45: +.byte 83 +.byte 101 +.byte 97 +.byte 114 +.byte 99 +.byte 104 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.44: +.byte 10 +.byte 0 +.align 0 +L.43: +.byte 45 +.byte 49 +.byte 44 +.byte 32 +.byte 48 +.byte 44 +.byte 32 +.byte 49 +.byte 47 +.byte 50 +.byte 44 +.byte 32 +.byte 49 +.byte 44 +.byte 32 +.byte 50 +.byte 44 +.byte 32 +.byte 51 +.byte 44 +.byte 32 +.byte 52 +.byte 44 +.byte 32 +.byte 53 +.byte 44 +.byte 32 +.byte 57 +.byte 44 +.byte 32 +.byte 50 +.byte 55 +.byte 44 +.byte 32 +.byte 51 +.byte 50 +.byte 32 +.byte 38 +.byte 32 +.byte 50 +.byte 52 +.byte 48 +.byte 32 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 79 +.byte 46 +.byte 75 +.byte 46 +.byte 10 +.byte 0 +.align 0 +L.38: +.byte 53 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 52 +.byte 43 +.byte 49 +.byte 44 +.byte 32 +.byte 50 +.byte 52 +.byte 48 +.byte 47 +.byte 51 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 56 +.byte 48 +.byte 44 +.byte 32 +.byte 50 +.byte 52 +.byte 48 +.byte 47 +.byte 52 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 54 +.byte 48 +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 50 +.byte 52 +.byte 48 +.byte 47 +.byte 53 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 52 +.byte 56 +.byte 0 +.align 0 +L.34: +.byte 57 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 51 +.byte 42 +.byte 51 +.byte 44 +.byte 32 +.byte 50 +.byte 55 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 57 +.byte 42 +.byte 51 +.byte 44 +.byte 32 +.byte 51 +.byte 50 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 56 +.byte 42 +.byte 52 +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 51 +.byte 50 +.byte 45 +.byte 50 +.byte 55 +.byte 45 +.byte 52 +.byte 45 +.byte 49 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 0 +.align 0 +L.30: +.byte 49 +.byte 47 +.byte 50 +.byte 32 +.byte 43 +.byte 32 +.byte 40 +.byte 45 +.byte 49 +.byte 41 +.byte 32 +.byte 43 +.byte 32 +.byte 49 +.byte 47 +.byte 50 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 0 +.align 0 +L.26: +.byte 45 +.byte 49 +.byte 43 +.byte 49 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 44 +.byte 32 +.byte 40 +.byte 45 +.byte 49 +.byte 41 +.byte 43 +.byte 97 +.byte 98 +.byte 115 +.byte 40 +.byte 49 +.byte 41 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 45 +.byte 49 +.byte 43 +.byte 40 +.byte 45 +.byte 49 +.byte 41 +.byte 42 +.byte 40 +.byte 45 +.byte 49 +.byte 41 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 0 +.align 0 +L.22: +.byte 51 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 50 +.byte 43 +.byte 49 +.byte 44 +.byte 32 +.byte 52 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 51 +.byte 43 +.byte 49 +.byte 44 +.byte 32 +.byte 52 +.byte 43 +.byte 50 +.byte 42 +.byte 40 +.byte 45 +.byte 50 +.byte 41 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 52 +.byte 45 +.byte 51 +.byte 45 +.byte 49 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 0 +.align 3 +L.20: +.word 0x3f50624d +.word 0xd2f1a9fc +.align 0 +L.19: +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 103 +.byte 101 +.byte 115 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 45 +.byte 48 +.byte 46 +.byte 48 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 78 +.byte 111 +.byte 110 +.byte 45 +.byte 122 +.byte 101 +.byte 114 +.byte 111 +.byte 33 +.byte 10 +.byte 0 +.align 0 +L.14: +.byte 48 +.byte 43 +.byte 48 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 44 +.byte 32 +.byte 49 +.byte 45 +.byte 49 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 44 +.byte 32 +.byte 49 +.byte 32 +.byte 60 +.byte 61 +.byte 32 +.byte 48 +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 49 +.byte 43 +.byte 49 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 50 +.byte 0 +.align 0 +L.12: +.byte 80 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 119 +.byte 32 +.byte 82 +.byte 85 +.byte 78 +.byte 78 +.byte 73 +.byte 78 +.byte 71 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 115 +.byte 32 +.byte 111 +.byte 110 +.byte 32 +.byte 115 +.byte 109 +.byte 97 +.byte 108 +.byte 108 +.byte 32 +.byte 105 +.byte 110 +.byte 116 +.byte 101 +.byte 103 +.byte 101 +.byte 114 +.byte 115 +.byte 58 +.byte 10 +.byte 0 +.align 3 +L.8: +.word 0x3ff00000 +.word 0x0 +.align 3 +L.7: +.word 0x0 +.word 0x0 +.align 0 +L.2: +.byte 10 +.byte 42 +.byte 32 +.byte 42 +.byte 32 +.byte 42 +.byte 32 +.byte 70 +.byte 76 +.byte 79 +.byte 65 +.byte 84 +.byte 73 +.byte 78 +.byte 71 +.byte 45 +.byte 80 +.byte 79 +.byte 73 +.byte 78 +.byte 84 +.byte 32 +.byte 69 +.byte 82 +.byte 82 +.byte 79 +.byte 82 +.byte 32 +.byte 42 +.byte 32 +.byte 42 +.byte 32 +.byte 42 +.byte 10 +.byte 0 diff --git a/code/tools/lcc/mips/irix/tst/sort.1bk b/code/tools/lcc/mips/irix/tst/sort.1bk new file mode 100644 index 0000000..75e1f0d --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/sort.1bk @@ -0,0 +1,20 @@ +exchange(1,9) +exchange(3,7) +exchange(5,6) +exchange(0,5) +exchange(0,3) +exchange(0,0) +exchange(1,2) +exchange(6,6) +exchange(8,9) +exchange(7,8) +-51 +-1 +0 +1 +3 +10 +18 +32 +567 +789 diff --git a/code/tools/lcc/mips/irix/tst/sort.2bk b/code/tools/lcc/mips/irix/tst/sort.2bk new file mode 100644 index 0000000..81e6f38 --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/sort.2bk @@ -0,0 +1,5 @@ +tst/sort.c:23: warning: missing return value +tst/sort.c:30: warning: missing return value +tst/sort.c:37: warning: missing return value +tst/sort.c:41: warning: missing return value +tst/sort.c:65: warning: missing return value diff --git a/code/tools/lcc/mips/irix/tst/sort.sbk b/code/tools/lcc/mips/irix/tst/sort.sbk new file mode 100644 index 0000000..ff3724c --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/sort.sbk @@ -0,0 +1,308 @@ +.set reorder +.globl in +.data +.align 2 +in: +.word 0xa +.word 0x20 +.word 0xffffffff +.word 0x237 +.word 0x3 +.word 0x12 +.word 0x1 +.word 0xffffffcd +.word 0x315 +.word 0x0 +.globl main +.text +.text +.align 2 +.ent main +main: +.frame $sp,32,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-32 +.mask 0xc2000000,-8 +.cprestore 16 +sw $30,20($sp) +sw $31,24($sp) +la $4,in +la $5,10 +jal sort +move $30,$0 +b L.5 +L.2: +sll $24,$30,2 +lw $4,in($24) +jal putd +la $4,10 +jal putchar +L.3: +la $30,1($30) +L.5: +move $24,$30 +la $15,10 +bltu $24,$15,L.2 +move $2,$0 +L.1: +lw $25,16($sp) +lw $30,20($sp) +lw $31,24($sp) +addu $sp,$sp,32 +j $31 +.end main +.globl putd +.text +.align 2 +.ent putd +putd: +.frame $sp,32,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-32 +.mask 0xc2000000,-8 +.cprestore 16 +sw $30,20($sp) +sw $31,24($sp) +move $30,$4 +bge $30,$0,L.7 +la $4,45 +jal putchar +negu $30,$30 +L.7: +la $24,10 +div $24,$30,$24 +beq $24,$0,L.9 +la $24,10 +div $4,$30,$24 +jal putd +L.9: +la $24,10 +rem $24,$30,$24 +la $4,48($24) +jal putchar +move $2,$0 +L.6: +lw $25,16($sp) +lw $30,20($sp) +lw $31,24($sp) +addu $sp,$sp,32 +j $31 +.end putd +.globl sort +.text +.align 2 +.ent sort +sort: +.frame $sp,24,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-24 +.mask 0x82000000,-4 +.cprestore 16 +sw $31,20($sp) +sw $4,24($sp) +sw $5,28($sp) +lw $24,0+24($sp) +sw $24,xx +move $4,$24 +move $5,$0 +lw $24,4+24($sp) +subu $24,$24,1 +sw $24,4+24($sp) +move $6,$24 +jal quick +move $2,$0 +L.11: +lw $25,16($sp) +lw $31,20($sp) +addu $sp,$sp,24 +j $31 +.end sort +.globl quick +.text +.align 2 +.ent quick +quick: +.frame $sp,40,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-40 +.mask 0xc2e00000,-4 +sw $21,16($sp) +sw $22,20($sp) +sw $23,24($sp) +.cprestore 28 +sw $30,32($sp) +sw $31,36($sp) +move $30,$4 +move $23,$5 +move $22,$6 +blt $23,$22,L.13 +b L.12 +L.13: +move $4,$30 +move $5,$23 +move $6,$22 +jal partition +move $21,$2 +move $4,$30 +move $5,$23 +subu $6,$21,1 +jal quick +move $4,$30 +la $5,1($21) +move $6,$22 +jal quick +move $2,$0 +L.12: +lw $21,16($sp) +lw $22,20($sp) +lw $23,24($sp) +lw $25,28($sp) +lw $30,32($sp) +lw $31,36($sp) +addu $sp,$sp,40 +j $31 +.end quick +.globl partition +.text +.align 2 +.ent partition +partition: +.frame $sp,48,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-48 +.mask 0xc2f00000,-8 +sw $20,16($sp) +sw $21,20($sp) +sw $22,24($sp) +sw $23,28($sp) +.cprestore 32 +sw $30,36($sp) +sw $31,40($sp) +move $30,$4 +move $23,$5 +move $22,$6 +la $22,1($22) +move $20,$23 +sll $24,$20,2 +addu $24,$24,$30 +lw $21,($24) +b L.17 +L.16: +la $23,1($23) +b L.20 +L.19: +la $23,1($23) +L.20: +sll $24,$23,2 +addu $24,$24,$30 +lw $24,($24) +blt $24,$21,L.19 +subu $22,$22,1 +b L.23 +L.22: +subu $22,$22,1 +L.23: +sll $24,$22,2 +addu $24,$24,$30 +lw $24,($24) +bgt $24,$21,L.22 +bge $23,$22,L.25 +sll $24,$23,2 +addu $4,$24,$30 +sll $24,$22,2 +addu $5,$24,$30 +jal exchange +L.25: +L.17: +blt $23,$22,L.16 +sll $24,$20,2 +addu $4,$24,$30 +sll $24,$22,2 +addu $5,$24,$30 +jal exchange +move $2,$22 +L.15: +lw $20,16($sp) +lw $21,20($sp) +lw $22,24($sp) +lw $23,28($sp) +lw $25,32($sp) +lw $30,36($sp) +lw $31,40($sp) +addu $sp,$sp,48 +j $31 +.end partition +.globl exchange +.text +.align 2 +.ent exchange +exchange: +.frame $sp,40,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-40 +.mask 0xc2800000,-12 +sw $23,16($sp) +.cprestore 20 +sw $30,24($sp) +sw $31,28($sp) +move $30,$4 +move $23,$5 +la $4,L.28 +lw $24,xx +la $15,4 +move $14,$30 +subu $14,$14,$24 +div $5,$14,$15 +move $14,$23 +subu $24,$14,$24 +div $6,$24,$15 +jal printf +lw $24,($30) +sw $24,-4+40($sp) +lw $24,($23) +sw $24,($30) +lw $24,-4+40($sp) +sw $24,($23) +move $2,$0 +L.27: +lw $23,16($sp) +lw $25,20($sp) +lw $30,24($sp) +lw $31,28($sp) +addu $sp,$sp,40 +j $31 +.end exchange +.globl xx +.comm xx,4 +.rdata +.align 0 +L.28: +.byte 101 +.byte 120 +.byte 99 +.byte 104 +.byte 97 +.byte 110 +.byte 103 +.byte 101 +.byte 40 +.byte 37 +.byte 100 +.byte 44 +.byte 37 +.byte 100 +.byte 41 +.byte 10 +.byte 0 diff --git a/code/tools/lcc/mips/irix/tst/spill.2bk b/code/tools/lcc/mips/irix/tst/spill.2bk new file mode 100644 index 0000000..afd73e2 --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/spill.2bk @@ -0,0 +1,6 @@ +tst/spill.c:1: warning: missing return value +tst/spill.c:3: warning: missing return value +tst/spill.c:5: warning: missing return value +tst/spill.c:7: warning: missing return value +tst/spill.c:9: warning: missing return value +tst/spill.c:17: warning: missing return value diff --git a/code/tools/lcc/mips/irix/tst/spill.sbk b/code/tools/lcc/mips/irix/tst/spill.sbk new file mode 100644 index 0000000..f269e9f --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/spill.sbk @@ -0,0 +1,271 @@ +.set reorder +.globl main +.text +.text +.align 2 +.ent main +main: +.frame $sp,0,$31 +.set noreorder +.cpload $25 +.set reorder +move $2,$0 +L.1: +j $31 +.end main +.globl f +.text +.align 2 +.ent f +f: +.frame $sp,32,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-32 +.mask 0x82000000,-12 +.cprestore 16 +sw $31,20($sp) +sw $4,32($sp) +jal f +move $24,$2 +sw $24,-4+32($sp) +jal f +lw $15,-4+32($sp) +addu $24,$15,$2 +sw $24,0+32($sp) +move $2,$0 +L.2: +lw $25,16($sp) +lw $31,20($sp) +addu $sp,$sp,32 +j $31 +.end f +.globl f2 +.text +.align 2 +.ent f2 +f2: +.frame $sp,32,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-32 +.mask 0xc2000000,-8 +.cprestore 16 +sw $30,20($sp) +sw $31,24($sp) +sw $4,32($sp) +jal f +move $24,$2 +sw $24,-4+32($sp) +lw $15,0+32($sp) +beq $15,$0,L.5 +jal f +move $24,$2 +move $30,$24 +b L.6 +L.5: +la $30,1 +L.6: +lw $24,-4+32($sp) +addu $24,$24,$30 +sw $24,0+32($sp) +move $2,$0 +L.3: +lw $25,16($sp) +lw $30,20($sp) +lw $31,24($sp) +addu $sp,$sp,32 +j $31 +.end f2 +.globl f3 +.text +.align 2 +.ent f3 +f3: +.frame $sp,72,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-72 +.mask 0xc2ff0000,-16 +sw $16,16($sp) +sw $17,20($sp) +sw $18,24($sp) +sw $19,28($sp) +sw $20,32($sp) +sw $21,36($sp) +sw $22,40($sp) +sw $23,44($sp) +.cprestore 48 +sw $30,52($sp) +sw $31,56($sp) +sw $4,72($sp) +sw $5,76($sp) +move $30,$0 +move $23,$0 +move $22,$0 +move $21,$0 +move $20,$0 +move $19,$0 +move $18,$0 +move $17,$0 +move $16,$0 +sw $0,-4+72($sp) +lw $24,4+72($sp) +sw $24,-12+72($sp) +la $15,4($24) +sw $15,4+72($sp) +lw $15,0+72($sp) +beq $15,$0,L.9 +jal f +move $24,$2 +sw $24,-8+72($sp) +b L.10 +L.9: +sw $0,-8+72($sp) +L.10: +lw $24,-8+72($sp) +lw $15,-12+72($sp) +sw $24,($15) +move $2,$0 +L.7: +lw $16,16($sp) +lw $17,20($sp) +lw $18,24($sp) +lw $19,28($sp) +lw $20,32($sp) +lw $21,36($sp) +lw $22,40($sp) +lw $23,44($sp) +lw $25,48($sp) +lw $30,52($sp) +lw $31,56($sp) +addu $sp,$sp,72 +j $31 +.end f3 +.globl f4 +.text +.align 2 +.ent f4 +f4: +.frame $sp,32,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-32 +.mask 0x40fc0000,-8 +sw $18,0($sp) +sw $19,4($sp) +sw $20,8($sp) +sw $21,12($sp) +sw $22,16($sp) +sw $23,20($sp) +sw $30,24($sp) +move $30,$0 +move $23,$0 +move $22,$0 +move $21,$0 +move $20,$0 +move $19,$0 +lw $24,i +sll $15,$24,3 +l.d $f18,a($15) +l.d $f16,b($15) +l.d $f10,L.15 +add.d $f8,$f18,$f16 +c.eq.d $f8,$f10; bc1t L.13 +beq $24,$0,L.13 +sub.d $f18,$f18,$f16 +c.eq.d $f18,$f10; bc1t L.13 +la $18,1 +b L.14 +L.13: +move $18,$0 +L.14: +sw $18,i +move $2,$0 +L.11: +lw $18,0($sp) +lw $19,4($sp) +lw $20,8($sp) +lw $21,12($sp) +lw $22,16($sp) +lw $23,20($sp) +lw $30,24($sp) +addu $sp,$sp,32 +j $31 +.end f4 +.globl f5 +.text +.align 2 +.ent f5 +f5: +.frame $sp,0,$31 +.set noreorder +.cpload $25 +.set reorder +lw $24,k +lw $15,m +lw $14,A +mul $13,$24,$15 +sll $13,$13,3 +addu $13,$13,$14 +lw $12,j +mul $15,$12,$15 +sll $15,$15,3 +addu $15,$15,$14 +lw $14,n +lw $11,B +mul $24,$24,$14 +sll $24,$24,3 +addu $24,$24,$11 +mul $14,$12,$14 +sll $14,$14,3 +addu $14,$14,$11 +l.d $f18,($13) +l.d $f16,($15) +mul.d $f18,$f18,$f16 +l.d $f16,($24) +l.d $f10,($14) +mul.d $f16,$f16,$f10 +add.d $f18,$f18,$f16 +s.d $f18,x +l.d $f18,($13) +l.d $f16,($14) +mul.d $f18,$f18,$f16 +l.d $f16,($24) +l.d $f10,($15) +mul.d $f16,$f16,$f10 +sub.d $f18,$f18,$f16 +s.d $f18,x +move $2,$0 +L.16: +j $31 +.end f5 +.globl x +.comm x,8 +.globl B +.comm B,4 +.globl A +.comm A,4 +.globl n +.comm n,4 +.globl m +.comm m,4 +.globl k +.comm k,4 +.globl j +.comm j,4 +.globl i +.comm i,4 +.globl b +.comm b,80 +.globl a +.comm a,80 +.rdata +.align 3 +L.15: +.word 0x0 +.word 0x0 diff --git a/code/tools/lcc/mips/irix/tst/stdarg.1bk b/code/tools/lcc/mips/irix/tst/stdarg.1bk new file mode 100644 index 0000000..e973176 --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/stdarg.1bk @@ -0,0 +1,6 @@ +test 1 +test 2 +test 3 +test 4 +test 5.000000 +{1 2 3 4} {1 2 3 4} {1 2 3 4} {1 2 3 4} {1 2 3 4} {1 2 3 4} diff --git a/code/tools/lcc/mips/irix/tst/stdarg.2bk b/code/tools/lcc/mips/irix/tst/stdarg.2bk new file mode 100644 index 0000000..2b3f417 --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/stdarg.2bk @@ -0,0 +1 @@ +tst/stdarg.c:51: warning: missing return value diff --git a/code/tools/lcc/mips/irix/tst/stdarg.sbk b/code/tools/lcc/mips/irix/tst/stdarg.sbk new file mode 100644 index 0000000..db7f80e --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/stdarg.sbk @@ -0,0 +1,395 @@ +.set reorder +.globl x +.data +.align 2 +x: +.word 0x1 +.word 0x2 +.word 0x3 +.word 0x4 +.globl main +.text +.text +.align 2 +.ent main +main: +.frame $sp,112,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-112 +.mask 0x82000000,-8 +.cprestore 100 +sw $31,104($sp) +la $4,L.2 +jal print +la $4,L.3 +la $5,L.4 +jal print +la $4,L.5 +la $5,3 +la $6,10 +jal print +la $4,L.6 +la $5,L.7 +la $6,L.8 +la $7,4 +la $24,10 +sw $24,16($sp) +jal print +la $4,L.9 +la $5,L.7 +la $6,L.8 +l.d $f18,L.10 +s.d $f18,16($sp) +la $24,10 +sw $24,24($sp) +jal print +la $4,L.11 +la $24,x +move $8,$24 +lw $3,0($8) +lw $9,4($8) +sw $3,4($29) +sw $9,8($29) +lw $3,8($8) +lw $9,12($8) +sw $3,12($29) +sw $9,16($29) +lw $5,4($sp) +lw $6,8($sp) +lw $7,12($sp) +move $8,$24 +lw $3,0($8) +lw $9,4($8) +sw $3,20($29) +sw $9,24($29) +lw $3,8($8) +lw $9,12($8) +sw $3,28($29) +sw $9,32($29) +move $8,$24 +lw $3,0($8) +lw $9,4($8) +sw $3,36($29) +sw $9,40($29) +lw $3,8($8) +lw $9,12($8) +sw $3,44($29) +sw $9,48($29) +move $8,$24 +lw $3,0($8) +lw $9,4($8) +sw $3,52($29) +sw $9,56($29) +lw $3,8($8) +lw $9,12($8) +sw $3,60($29) +sw $9,64($29) +move $8,$24 +lw $3,0($8) +lw $9,4($8) +sw $3,68($29) +sw $9,72($29) +lw $3,8($8) +lw $9,12($8) +sw $3,76($29) +sw $9,80($29) +move $8,$24 +lw $3,0($8) +lw $9,4($8) +sw $3,84($29) +sw $9,88($29) +lw $3,8($8) +lw $9,12($8) +sw $3,92($29) +sw $9,96($29) +jal print +move $2,$0 +L.1: +lw $25,100($sp) +lw $31,104($sp) +addu $sp,$sp,112 +j $31 +.end main +.globl print +.text +.align 2 +.ent print +print: +.frame $sp,56,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-56 +.mask 0xc2800000,-24 +sw $23,20($sp) +.cprestore 24 +sw $30,28($sp) +sw $31,32($sp) +sw $4,56($sp) +sw $5,60($sp) +sw $6,64($sp) +sw $7,68($sp) +la $30,4+56($sp) +b L.18 +L.15: +lw $24,0+56($sp) +lb $24,($24) +la $15,37 +bne $24,$15,L.19 +lw $24,0+56($sp) +la $24,1($24) +sw $24,0+56($sp) +lb $23,($24) +la $24,115 +beq $23,$24,L.35 +bgt $23,$24,L.40 +L.39: +la $24,98 +blt $23,$24,L.21 +la $24,102 +bgt $23,$24,L.21 +sll $24,$23,2 +lw $24,L.41-392($24) +.cpadd $24 +j $24 +.rdata +.align 2 +L.41: +.gpword L.24 +.gpword L.29 +.gpword L.31 +.gpword L.21 +.gpword L.37 +.text +L.40: +la $24,119 +beq $23,$24,L.33 +b L.21 +L.24: +la $24,16($30) +move $30,$24 +la $15,-16+56($sp) +la $8,-16($24) +lw $3,0($8) +lw $9,4($8) +sw $3,0($15) +sw $9,4($15) +lw $3,8($8) +lw $9,12($8) +sw $3,8($15) +sw $9,12($15) +la $4,L.25 +lw $5,-16+56($sp) +lw $6,-12+56($sp) +lw $7,-8+56($sp) +lw $24,-4+56($sp) +sw $24,16($sp) +jal printf +b L.20 +L.29: +la $4,L.30 +la $24,4($30) +move $30,$24 +lb $5,-1($24) +jal printf +b L.20 +L.31: +la $4,L.32 +la $24,4($30) +move $30,$24 +lw $5,-4($24) +jal printf +b L.20 +L.33: +la $4,L.34 +la $24,4($30) +move $30,$24 +lh $5,-2($24) +jal printf +b L.20 +L.35: +la $4,L.36 +la $24,4($30) +move $30,$24 +lw $5,-4($24) +jal printf +b L.20 +L.37: +la $4,L.38 +move $24,$30 +la $24,15($24) +and $24,$24,0xfffffff8 +move $30,$24 +l.d $f18,-8($24) +mfc1.d $6,$f18 +jal printf +b L.20 +L.21: +la $4,L.30 +lw $24,0+56($sp) +lb $5,($24) +jal printf +b L.20 +L.19: +la $4,L.30 +lw $24,0+56($sp) +lb $5,($24) +jal printf +L.20: +L.16: +lw $24,0+56($sp) +la $24,1($24) +sw $24,0+56($sp) +L.18: +lw $24,0+56($sp) +lb $24,($24) +bne $24,$0,L.15 +move $2,$0 +L.12: +lw $23,20($sp) +lw $25,24($sp) +lw $30,28($sp) +lw $31,32($sp) +addu $sp,$sp,56 +j $31 +.end print +.rdata +.align 0 +L.38: +.byte 37 +.byte 102 +.byte 0 +.align 0 +L.36: +.byte 37 +.byte 115 +.byte 0 +.align 0 +L.34: +.byte 37 +.byte 120 +.byte 0 +.align 0 +L.32: +.byte 37 +.byte 100 +.byte 0 +.align 0 +L.30: +.byte 37 +.byte 99 +.byte 0 +.align 0 +L.25: +.byte 123 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 125 +.byte 0 +.align 0 +L.11: +.byte 37 +.byte 98 +.byte 32 +.byte 37 +.byte 98 +.byte 32 +.byte 37 +.byte 98 +.byte 32 +.byte 37 +.byte 98 +.byte 32 +.byte 37 +.byte 98 +.byte 32 +.byte 37 +.byte 98 +.byte 10 +.byte 0 +.align 3 +L.10: +.word 0x40140000 +.word 0x0 +.align 0 +L.9: +.byte 37 +.byte 115 +.byte 37 +.byte 115 +.byte 32 +.byte 37 +.byte 102 +.byte 37 +.byte 99 +.byte 0 +.align 0 +L.8: +.byte 115 +.byte 116 +.byte 0 +.align 0 +L.7: +.byte 116 +.byte 101 +.byte 0 +.align 0 +L.6: +.byte 37 +.byte 115 +.byte 37 +.byte 115 +.byte 32 +.byte 37 +.byte 119 +.byte 37 +.byte 99 +.byte 0 +.align 0 +L.5: +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 37 +.byte 100 +.byte 37 +.byte 99 +.byte 0 +.align 0 +L.4: +.byte 50 +.byte 0 +.align 0 +L.3: +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 0 +L.2: +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 49 +.byte 10 +.byte 0 diff --git a/code/tools/lcc/mips/irix/tst/struct.1bk b/code/tools/lcc/mips/irix/tst/struct.1bk new file mode 100644 index 0000000..807f3da --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/struct.1bk @@ -0,0 +1,5 @@ +(-1,-1) is not within [10,10; 310,310] +(1,1) is not within [10,10; 310,310] +(20,300) is within [10,10; 310,310] +(500,400) is not within [10,10; 310,310] +ab diff --git a/code/tools/lcc/mips/irix/tst/struct.2bk b/code/tools/lcc/mips/irix/tst/struct.2bk new file mode 100644 index 0000000..cb0fbd0 --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/struct.2bk @@ -0,0 +1,2 @@ +tst/struct.c:49: warning: missing return value +tst/struct.c:68: warning: missing return value diff --git a/code/tools/lcc/mips/irix/tst/struct.sbk b/code/tools/lcc/mips/irix/tst/struct.sbk new file mode 100644 index 0000000..65f4c9f --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/struct.sbk @@ -0,0 +1,485 @@ +.set reorder +.globl addpoint +.text +.text +.align 2 +.ent addpoint +addpoint: +.frame $sp,0,$31 +.set noreorder +.cpload $25 +.set reorder +sw $5,4($sp) +sw $6,8($sp) +sw $7,12($sp) +lw $24,4+0($sp) +lw $15,12+0($sp) +addu $24,$24,$15 +sw $24,4+0($sp) +lw $24,8+0($sp) +lw $15,16+0($sp) +addu $24,$24,$15 +sw $24,8+0($sp) +la $8,4+0($sp) +lw $3,0($8) +lw $9,4($8) +sw $3,0($4) +sw $9,4($4) +L.1: +j $31 +.end addpoint +.globl canonrect +.text +.align 2 +.ent canonrect +canonrect: +.frame $sp,32,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-32 +.mask 0x40e00000,-20 +sw $21,0($sp) +sw $22,4($sp) +sw $23,8($sp) +sw $30,12($sp) +sw $5,36($sp) +sw $6,40($sp) +sw $7,44($sp) +lw $24,4+32($sp) +lw $15,12+32($sp) +bge $24,$15,L.10 +lw $30,4+32($sp) +b L.11 +L.10: +lw $30,12+32($sp) +L.11: +sw $30,-16+32($sp) +lw $24,8+32($sp) +lw $15,16+32($sp) +bge $24,$15,L.20 +lw $23,8+32($sp) +b L.21 +L.20: +lw $23,16+32($sp) +L.21: +sw $23,-12+32($sp) +lw $24,4+32($sp) +lw $15,12+32($sp) +ble $24,$15,L.26 +lw $22,4+32($sp) +b L.27 +L.26: +lw $22,12+32($sp) +L.27: +sw $22,-8+32($sp) +lw $24,8+32($sp) +lw $15,16+32($sp) +ble $24,$15,L.37 +lw $21,8+32($sp) +b L.38 +L.37: +lw $21,16+32($sp) +L.38: +sw $21,-4+32($sp) +la $8,-16+32($sp) +lw $3,0($8) +lw $9,4($8) +sw $3,0($4) +sw $9,4($4) +lw $3,8($8) +lw $9,12($8) +sw $3,8($4) +sw $9,12($4) +L.5: +lw $21,0($sp) +lw $22,4($sp) +lw $23,8($sp) +lw $30,12($sp) +addu $sp,$sp,32 +j $31 +.end canonrect +.globl makepoint +.text +.align 2 +.ent makepoint +makepoint: +.frame $sp,8,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-8 +sw $5,-8+8($sp) +sw $6,-4+8($sp) +la $8,-8+8($sp) +lw $3,0($8) +lw $9,4($8) +sw $3,0($4) +sw $9,4($4) +L.39: +addu $sp,$sp,8 +j $31 +.end makepoint +.globl makerect +.text +.align 2 +.ent makerect +makerect: +.frame $sp,48,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-48 +.mask 0x82000000,-24 +.cprestore 20 +sw $31,24($sp) +sw $4,48($sp) +sw $5,52($sp) +sw $6,56($sp) +sw $7,60($sp) +la $24,-16+48($sp) +la $8,4+48($sp) +lw $3,0($8) +lw $9,4($8) +sw $3,0($24) +sw $9,4($24) +la $24,-8+48($sp) +la $8,12+48($sp) +lw $3,0($8) +lw $9,4($8) +sw $3,0($24) +sw $9,4($24) +lw $4,0+48($sp) +la $8,-16+48($sp) +lw $3,0($8) +lw $9,4($8) +sw $3,4($29) +sw $9,8($29) +lw $3,8($8) +lw $9,12($8) +sw $3,12($29) +sw $9,16($29) +lw $5,4($sp) +lw $6,8($sp) +lw $7,12($sp) +jal canonrect +L.42: +lw $25,20($sp) +lw $31,24($sp) +addu $sp,$sp,48 +j $31 +.end makerect +.globl ptinrect +.text +.align 2 +.ent ptinrect +ptinrect: +.frame $sp,8,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-8 +.mask 0x40000000,-8 +sw $30,0($sp) +sw $4,8($sp) +sw $5,12($sp) +sw $6,16($sp) +sw $7,20($sp) +lw $24,0+8($sp) +lw $15,8+8($sp) +blt $24,$15,L.53 +lw $15,16+8($sp) +bge $24,$15,L.53 +lw $24,4+8($sp) +lw $15,12+8($sp) +blt $24,$15,L.53 +lw $24,4+8($sp) +lw $15,20+8($sp) +bge $24,$15,L.53 +la $30,1 +b L.54 +L.53: +move $30,$0 +L.54: +move $2,$30 +L.45: +lw $30,0($sp) +addu $sp,$sp,8 +j $31 +.end ptinrect +.globl y +.sdata +.align 0 +y: +.byte 97 +.byte 98 +.byte 0 +.globl odd +.text +.text +.align 2 +.ent odd +odd: +.frame $sp,32,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-32 +.mask 0x82000000,-12 +.cprestore 16 +sw $31,20($sp) +sw $4,32($sp) +la $24,-3+32($sp) +la $8,0+32($sp) +ulhu $3,0($8) +ush $3,0($24) +lbu $3,2($8) +sb $3,2($24) +la $4,L.56 +la $5,-3+32($sp) +jal printf +move $2,$0 +L.55: +lw $25,16($sp) +lw $31,20($sp) +addu $sp,$sp,32 +j $31 +.end odd +.rdata +.align 2 +L.58: +.word 0x0 +.word 0x0 +.align 2 +L.59: +.word 0x140 +.word 0x140 +.align 2 +L.60: +.word 0xffffffff +.word 0xffffffff +.word 0x1 +.word 0x1 +.word 0x14 +.word 0x12c +.word 0x1f4 +.word 0x190 +.globl main +.text +.text +.align 2 +.ent main +main: +.frame $sp,144,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-144 +.mask 0xc2000000,-112 +.cprestore 24 +sw $30,28($sp) +sw $31,32($sp) +la $24,-64+144($sp) +la $8,L.58 +lw $3,0($8) +lw $9,4($8) +sw $3,0($24) +sw $9,4($24) +la $24,-72+144($sp) +la $8,L.59 +lw $3,0($8) +lw $9,4($8) +sw $3,0($24) +sw $9,4($24) +la $24,-32+144($sp) +la $8,L.60 +addu $8,$8,32 +addu $10,$24,32 +L.76: +addu $8,$8,-8 +addu $10,$10,-8 +lw $3,0($8) +lw $9,4($8) +sw $3,0($10) +sw $9,4($10) +bltu $24,$10,L.76 +la $4,-80+144($sp) +la $24,-10 +move $5,$24 +move $6,$24 +jal makepoint +la $4,-88+144($sp) +la $8,-72+144($sp) +lw $3,0($8) +lw $9,4($8) +sw $3,4($29) +sw $9,8($29) +lw $5,4($sp) +lw $6,8($sp) +la $8,-80+144($sp) +lw $3,0($8) +lw $9,4($8) +sw $3,12($29) +sw $9,16($29) +lw $7,12($sp) +jal addpoint +la $4,-96+144($sp) +la $24,10 +move $5,$24 +move $6,$24 +jal makepoint +la $4,-104+144($sp) +la $8,-64+144($sp) +lw $3,0($8) +lw $9,4($8) +sw $3,4($29) +sw $9,8($29) +lw $5,4($sp) +lw $6,8($sp) +la $8,-96+144($sp) +lw $3,0($8) +lw $9,4($8) +sw $3,12($29) +sw $9,16($29) +lw $7,12($sp) +jal addpoint +la $4,-48+144($sp) +la $8,-88+144($sp) +lw $3,0($8) +lw $9,4($8) +sw $3,4($29) +sw $9,8($29) +lw $5,4($sp) +lw $6,8($sp) +la $8,-104+144($sp) +lw $3,0($8) +lw $9,4($8) +sw $3,12($29) +sw $9,16($29) +lw $7,12($sp) +jal makerect +move $30,$0 +b L.64 +L.61: +la $4,-56+144($sp) +sll $24,$30,3 +la $15,-32+144($sp) +addu $15,$24,$15 +lw $5,($15) +la $15,-28+144($sp) +addu $24,$24,$15 +lw $6,($24) +jal makepoint +la $4,L.65 +sll $24,$30,3 +la $15,-32+144($sp) +addu $24,$24,$15 +lw $5,($24) +lw $6,-52+144($sp) +jal printf +la $8,-56+144($sp) +lw $3,0($8) +lw $9,4($8) +sw $3,0($29) +sw $9,4($29) +lw $4,0($sp) +lw $5,4($sp) +la $8,-48+144($sp) +lw $3,0($8) +lw $9,4($8) +sw $3,8($29) +sw $9,12($29) +lw $3,8($8) +lw $9,12($8) +sw $3,16($29) +sw $9,20($29) +lw $6,8($sp) +lw $7,12($sp) +jal ptinrect +bne $2,$0,L.68 +la $4,L.70 +jal printf +L.68: +la $4,L.71 +lw $5,-48+144($sp) +lw $6,-44+144($sp) +lw $7,-40+144($sp) +lw $24,-36+144($sp) +sw $24,16($sp) +jal printf +L.62: +la $30,1($30) +L.64: +move $24,$30 +la $15,4 +bltu $24,$15,L.61 +la $8,y +ulhu $3,0($8) +sh $3,0($29) +lbu $3,2($8) +sb $3,2($29) +lw $4,0($sp) +jal odd +move $4,$0 +jal exit +move $2,$0 +L.57: +lw $25,24($sp) +lw $30,28($sp) +lw $31,32($sp) +addu $sp,$sp,144 +j $31 +.end main +.rdata +.align 0 +L.71: +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 105 +.byte 110 +.byte 32 +.byte 91 +.byte 37 +.byte 100 +.byte 44 +.byte 37 +.byte 100 +.byte 59 +.byte 32 +.byte 37 +.byte 100 +.byte 44 +.byte 37 +.byte 100 +.byte 93 +.byte 10 +.byte 0 +.align 0 +L.70: +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 0 +.align 0 +L.65: +.byte 40 +.byte 37 +.byte 100 +.byte 44 +.byte 37 +.byte 100 +.byte 41 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 0 +.align 0 +L.56: +.byte 37 +.byte 115 +.byte 10 +.byte 0 diff --git a/code/tools/lcc/mips/irix/tst/switch.1bk b/code/tools/lcc/mips/irix/tst/switch.1bk new file mode 100644 index 0000000..de46a73 --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/switch.1bk @@ -0,0 +1,76 @@ +b = 0x8 +f = 0xc +n = 0xa +r = 0xd +t = 0x9 +v = 0xb +x = 0x78 +f: +x = 0 +x = 1 +x = 2 +x = 2 +x = 2 +x = 2 +x = 2 +x = 7 +x = 8 +x = 9 +x = 9 +x = 9 +x = 9 +x = 9 +x = 9 +x = 9 +x = 16 +x = 17 +x = 18 +x = 19 +x = 20 +g: +1 1 +1 2 +2 3 +2 4 +2 5 +3 6 +d 6 +3 7 +d 7 +3 8 +d 8 +d 9 +d 10 +h: +i = 8 +i = 16 +i = 120 +i = 128 +i = 248 +i = 264 +i = 272 +i = 280 +i = 288 +i = 296 +i = 304 +i = 312 +488 defaults +x = 0x1000000 +x = 0x2000000 +x = 0x3000000 +x = 0x4000000 +x = 0x5000000 +x = 0x6000000 (default) +x = 0x7000000 (default) +0 +1 +2 +3 +4 +5 +0 +1 +2 +3 +4 +5 diff --git a/code/tools/lcc/mips/irix/tst/switch.2bk b/code/tools/lcc/mips/irix/tst/switch.2bk new file mode 100644 index 0000000..709b419 --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/switch.2bk @@ -0,0 +1,5 @@ +tst/switch.c:55: warning: missing return value +tst/switch.c:73: warning: missing return value +tst/switch.c:97: warning: missing return value +tst/switch.c:112: warning: missing return value +tst/switch.c:137: warning: missing return value diff --git a/code/tools/lcc/mips/irix/tst/switch.sbk b/code/tools/lcc/mips/irix/tst/switch.sbk new file mode 100644 index 0000000..6c2357a --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/switch.sbk @@ -0,0 +1,836 @@ +.set reorder +.globl main +.text +.text +.align 2 +.ent main +main: +.frame $sp,32,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-32 +.mask 0xc2800000,-4 +sw $23,16($sp) +.cprestore 20 +sw $30,24($sp) +sw $31,28($sp) +la $30,L.6 +b L.5 +L.2: +lb $4,($30) +jal backslash +move $24,$2 +la $4,L.7 +lb $5,($30) +move $6,$24 +jal printf +L.3: +la $30,1($30) +L.5: +lb $24,($30) +bne $24,$0,L.2 +jal f +jal g +jal h +la $23,16777216 +b L.11 +L.8: +move $4,$23 +jal big +L.9: +la $23,16777216($23) +L.11: +and $24,$23,117440512 +bne $24,$0,L.8 +jal limit +move $2,$0 +L.1: +lw $23,16($sp) +lw $25,20($sp) +lw $30,24($sp) +lw $31,28($sp) +addu $sp,$sp,32 +j $31 +.end main +.globl backslash +.text +.align 2 +.ent backslash +backslash: +.frame $sp,0,$31 +.set noreorder +.cpload $25 +.set reorder +la $24,102 +beq $4,$24,L.16 +bgt $4,$24,L.22 +L.21: +la $24,98 +beq $4,$24,L.15 +b L.13 +L.22: +la $24,110 +beq $4,$24,L.17 +blt $4,$24,L.13 +L.23: +la $24,114 +beq $4,$24,L.18 +la $24,116 +beq $4,$24,L.19 +la $24,118 +beq $4,$24,L.20 +b L.13 +L.15: +la $2,8 +b L.12 +L.16: +la $2,12 +b L.12 +L.17: +la $2,10 +b L.12 +L.18: +la $2,13 +b L.12 +L.19: +la $2,9 +b L.12 +L.20: +la $2,11 +b L.12 +L.13: +move $2,$4 +L.12: +j $31 +.end backslash +.globl f +.text +.align 2 +.ent f +f: +.frame $sp,40,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-40 +.mask 0xc2c00000,-8 +sw $22,16($sp) +sw $23,20($sp) +.cprestore 24 +sw $30,28($sp) +sw $31,32($sp) +move $23,$0 +la $4,L.25 +jal printf +move $30,$0 +L.26: +move $22,$30 +la $24,1 +blt $30,$24,L.30 +la $24,20 +bgt $30,$24,L.30 +sll $24,$30,2 +lw $24,L.42-4($24) +.cpadd $24 +j $24 +.rdata +.align 2 +L.42: +.gpword L.32 +.gpword L.33 +.gpword L.30 +.gpword L.30 +.gpword L.30 +.gpword L.30 +.gpword L.34 +.gpword L.35 +.gpword L.36 +.gpword L.30 +.gpword L.30 +.gpword L.30 +.gpword L.30 +.gpword L.30 +.gpword L.30 +.gpword L.37 +.gpword L.38 +.gpword L.39 +.gpword L.40 +.gpword L.41 +.text +L.32: +move $23,$30 +b L.31 +L.33: +move $23,$30 +b L.31 +L.34: +move $23,$30 +b L.31 +L.35: +move $23,$30 +b L.31 +L.36: +move $23,$30 +b L.31 +L.37: +move $23,$30 +b L.31 +L.38: +move $23,$30 +b L.31 +L.39: +move $23,$30 +b L.31 +L.40: +move $23,$30 +b L.31 +L.41: +move $23,$30 +L.30: +L.31: +la $4,L.44 +move $5,$23 +jal printf +L.27: +la $30,1($30) +la $24,20 +ble $30,$24,L.26 +move $2,$0 +L.24: +lw $22,16($sp) +lw $23,20($sp) +lw $25,24($sp) +lw $30,28($sp) +lw $31,32($sp) +addu $sp,$sp,40 +j $31 +.end f +.globl g +.text +.align 2 +.ent g +g: +.frame $sp,32,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-32 +.mask 0xc2000000,-8 +.cprestore 16 +sw $30,20($sp) +sw $31,24($sp) +la $4,L.46 +jal printf +la $30,1 +L.47: +la $24,1001 +blt $30,$24,L.64 +la $24,1004 +bgt $30,$24,L.65 +sll $24,$30,2 +lw $24,L.66-4004($24) +.cpadd $24 +j $24 +.rdata +.align 2 +L.66: +.gpword L.60 +.gpword L.60 +.gpword L.60 +.gpword L.60 +.text +L.64: +la $24,1 +blt $30,$24,L.51 +la $24,8 +bgt $30,$24,L.51 +sll $24,$30,2 +lw $24,L.68-4($24) +.cpadd $24 +j $24 +.rdata +.align 2 +L.68: +.gpword L.53 +.gpword L.53 +.gpword L.55 +.gpword L.55 +.gpword L.55 +.gpword L.57 +.gpword L.57 +.gpword L.57 +.text +L.65: +la $24,3001 +blt $30,$24,L.51 +la $24,3004 +bgt $30,$24,L.51 +sll $24,$30,2 +lw $24,L.70-12004($24) +.cpadd $24 +j $24 +.rdata +.align 2 +L.70: +.gpword L.62 +.gpword L.62 +.gpword L.62 +.gpword L.62 +.text +L.53: +la $4,L.54 +move $5,$30 +jal printf +b L.52 +L.55: +la $4,L.56 +move $5,$30 +jal printf +b L.52 +L.57: +la $4,L.58 +move $5,$30 +jal printf +L.51: +la $4,L.59 +move $5,$30 +jal printf +b L.52 +L.60: +la $4,L.61 +move $5,$30 +jal printf +b L.52 +L.62: +la $4,L.63 +move $5,$30 +jal printf +L.52: +L.48: +la $30,1($30) +la $24,10 +ble $30,$24,L.47 +move $2,$0 +L.45: +lw $25,16($sp) +lw $30,20($sp) +lw $31,24($sp) +addu $sp,$sp,32 +j $31 +.end g +.globl h +.text +.align 2 +.ent h +h: +.frame $sp,32,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-32 +.mask 0xc2800000,-4 +sw $23,16($sp) +.cprestore 20 +sw $30,24($sp) +sw $31,28($sp) +move $23,$0 +la $4,L.73 +jal printf +la $30,1 +L.74: +la $24,264 +beq $30,$24,L.86 +bgt $30,$24,L.94 +L.93: +la $24,120 +beq $30,$24,L.84 +bgt $30,$24,L.96 +L.95: +la $24,8 +beq $30,$24,L.83 +blt $30,$24,L.78 +L.97: +la $24,16 +beq $30,$24,L.82 +b L.78 +L.96: +la $24,128 +beq $30,$24,L.80 +blt $30,$24,L.78 +L.98: +la $24,248 +beq $30,$24,L.87 +b L.78 +L.94: +la $24,288 +beq $30,$24,L.91 +bgt $30,$24,L.100 +L.99: +la $24,272 +beq $30,$24,L.88 +blt $30,$24,L.78 +L.101: +la $24,280 +beq $30,$24,L.85 +b L.78 +L.100: +la $24,304 +beq $30,$24,L.89 +bgt $30,$24,L.103 +L.102: +la $24,296 +beq $30,$24,L.90 +b L.78 +L.103: +la $24,312 +beq $30,$24,L.92 +b L.78 +L.78: +la $23,1($23) +b L.75 +L.80: +la $4,L.81 +move $5,$30 +jal printf +b L.79 +L.82: +la $4,L.81 +move $5,$30 +jal printf +b L.79 +L.83: +la $4,L.81 +move $5,$30 +jal printf +b L.79 +L.84: +la $4,L.81 +move $5,$30 +jal printf +b L.79 +L.85: +la $4,L.81 +move $5,$30 +jal printf +b L.79 +L.86: +la $4,L.81 +move $5,$30 +jal printf +b L.79 +L.87: +la $4,L.81 +move $5,$30 +jal printf +b L.79 +L.88: +la $4,L.81 +move $5,$30 +jal printf +b L.79 +L.89: +la $4,L.81 +move $5,$30 +jal printf +b L.79 +L.90: +la $4,L.81 +move $5,$30 +jal printf +b L.79 +L.91: +la $4,L.81 +move $5,$30 +jal printf +b L.79 +L.92: +la $4,L.81 +move $5,$30 +jal printf +L.79: +L.75: +la $30,1($30) +la $24,500 +ble $30,$24,L.74 +la $4,L.104 +move $5,$23 +jal printf +move $2,$0 +L.72: +lw $23,16($sp) +lw $25,20($sp) +lw $30,24($sp) +lw $31,28($sp) +addu $sp,$sp,32 +j $31 +.end h +.globl big +.text +.align 2 +.ent big +big: +.frame $sp,32,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-32 +.mask 0xc2000000,-8 +.cprestore 16 +sw $30,20($sp) +sw $31,24($sp) +sw $4,32($sp) +lw $24,0+32($sp) +and $30,$24,0x6000000 +la $15,33554432 +beq $30,$15,L.111 +bgt $30,$15,L.115 +L.114: +la $15,-2 +beq $30,$15,L.109 +la $15,-1 +beq $30,$15,L.109 +beq $30,$0,L.109 +b L.106 +L.115: +move $24,$30 +la $15,67108864 +beq $24,$15,L.112 +b L.106 +L.109: +la $4,L.110 +lw $5,0+32($sp) +jal printf +b L.107 +L.111: +la $4,L.110 +lw $5,0+32($sp) +jal printf +b L.107 +L.112: +la $4,L.110 +lw $5,0+32($sp) +jal printf +b L.107 +L.106: +la $4,L.113 +lw $5,0+32($sp) +jal printf +L.107: +move $2,$0 +L.105: +lw $25,16($sp) +lw $30,20($sp) +lw $31,24($sp) +addu $sp,$sp,32 +j $31 +.end big +.globl limit +.text +.align 2 +.ent limit +limit: +.frame $sp,32,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-32 +.mask 0xc2000000,-8 +.cprestore 16 +sw $30,20($sp) +sw $31,24($sp) +la $30,-2147483648 +L.117: +la $24,-2147483648 +blt $30,$24,L.121 +la $15,-2147483644 +bgt $30,$15,L.121 +sll $15,$30,2 +sll $24,$24,2 +subu $24,$15,$24 +lw $24,L.134($24) +.cpadd $24 +j $24 +.rdata +.align 2 +L.134: +.gpword L.123 +.gpword L.125 +.gpword L.127 +.gpword L.129 +.gpword L.131 +.text +L.123: +la $4,L.124 +jal printf +b L.122 +L.125: +la $4,L.126 +jal printf +b L.122 +L.127: +la $4,L.128 +jal printf +b L.122 +L.129: +la $4,L.130 +jal printf +b L.122 +L.131: +la $4,L.132 +jal printf +b L.122 +L.121: +la $4,L.133 +jal printf +L.122: +L.118: +la $30,1($30) +la $24,-2147483643 +ble $30,$24,L.117 +la $30,2147483647 +L.135: +la $24,2147483643 +blt $30,$24,L.139 +la $15,2147483647 +bgt $30,$15,L.139 +sll $15,$30,2 +sll $24,$24,2 +subu $24,$15,$24 +lw $24,L.146($24) +.cpadd $24 +j $24 +.rdata +.align 2 +L.146: +.gpword L.145 +.gpword L.144 +.gpword L.143 +.gpword L.142 +.gpword L.141 +.text +L.141: +la $4,L.124 +jal printf +b L.140 +L.142: +la $4,L.126 +jal printf +b L.140 +L.143: +la $4,L.128 +jal printf +b L.140 +L.144: +la $4,L.130 +jal printf +b L.140 +L.145: +la $4,L.132 +jal printf +b L.140 +L.139: +la $4,L.133 +jal printf +L.140: +L.136: +subu $30,$30,1 +la $24,2147483642 +bge $30,$24,L.135 +move $2,$0 +L.116: +lw $25,16($sp) +lw $30,20($sp) +lw $31,24($sp) +addu $sp,$sp,32 +j $31 +.end limit +.rdata +.align 0 +L.133: +.byte 53 +.byte 10 +.byte 0 +.align 0 +L.132: +.byte 52 +.byte 10 +.byte 0 +.align 0 +L.130: +.byte 51 +.byte 10 +.byte 0 +.align 0 +L.128: +.byte 50 +.byte 10 +.byte 0 +.align 0 +L.126: +.byte 49 +.byte 10 +.byte 0 +.align 0 +L.124: +.byte 48 +.byte 10 +.byte 0 +.align 0 +L.113: +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 48 +.byte 120 +.byte 37 +.byte 120 +.byte 32 +.byte 40 +.byte 100 +.byte 101 +.byte 102 +.byte 97 +.byte 117 +.byte 108 +.byte 116 +.byte 41 +.byte 10 +.byte 0 +.align 0 +L.110: +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 48 +.byte 120 +.byte 37 +.byte 120 +.byte 10 +.byte 0 +.align 0 +L.104: +.byte 37 +.byte 100 +.byte 32 +.byte 100 +.byte 101 +.byte 102 +.byte 97 +.byte 117 +.byte 108 +.byte 116 +.byte 115 +.byte 10 +.byte 0 +.align 0 +L.81: +.byte 105 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.73: +.byte 104 +.byte 58 +.byte 10 +.byte 0 +.align 0 +L.63: +.byte 54 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.61: +.byte 53 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.59: +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.58: +.byte 51 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.56: +.byte 50 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.54: +.byte 49 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.46: +.byte 103 +.byte 58 +.byte 10 +.byte 0 +.align 0 +L.44: +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.25: +.byte 102 +.byte 58 +.byte 10 +.byte 0 +.align 0 +L.7: +.byte 37 +.byte 99 +.byte 32 +.byte 61 +.byte 32 +.byte 48 +.byte 120 +.byte 37 +.byte 120 +.byte 10 +.byte 0 +.align 0 +L.6: +.byte 98 +.byte 102 +.byte 110 +.byte 114 +.byte 116 +.byte 118 +.byte 120 +.byte 0 diff --git a/code/tools/lcc/mips/irix/tst/wf1.1bk b/code/tools/lcc/mips/irix/tst/wf1.1bk new file mode 100644 index 0000000..a846267 --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/wf1.1bk @@ -0,0 +1,74 @@ +5 a +2 and +5 buf +16 c +8 char +1 compare +4 cond +5 count +1 d +1 die +3 else +1 entry +1 eof +4 err +1 error +1 exit +1 folded +1 for +1 free +1 frequencies +1 frequency +1 get +2 getchar +3 getword +14 if +2 in +1 index +1 input +1 install +8 int +1 into +1 is +4 isletter +1 it +1 itself +5 left +1 letter +7 lookup +1 main +2 malloc +1 message +2 n +1 necessary +12 next +9 node +4 of +1 on +1 or +1 otherwise +2 out +8 p +3 print +2 printf +16 return +5 right +4 root +25 s +2 storage +3 strcmp +1 strcpy +1 strlen +8 struct +1 structures +2 subtree +1 t +5 tprint +9 tree +1 uses +1 version +1 wf +3 while +21 word +9 words +2 z diff --git a/code/tools/lcc/mips/irix/tst/wf1.2bk b/code/tools/lcc/mips/irix/tst/wf1.2bk new file mode 100644 index 0000000..190e4a1 --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/wf1.2bk @@ -0,0 +1,2 @@ +tst/wf1.c:29: warning: missing return value +tst/wf1.c:87: warning: missing return value diff --git a/code/tools/lcc/mips/irix/tst/wf1.sbk b/code/tools/lcc/mips/irix/tst/wf1.sbk new file mode 100644 index 0000000..7313c01 --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/wf1.sbk @@ -0,0 +1,378 @@ +.set reorder +.globl main +.text +.text +.align 2 +.ent main +main: +.frame $sp,48,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-48 +.mask 0x82000000,-28 +.cprestore 16 +sw $31,20($sp) +sw $0,-24+48($sp) +sw $0,next +b L.3 +L.2: +la $4,-20+48($sp) +la $5,-24+48($sp) +jal lookup +lw $15,($2) +la $15,1($15) +sw $15,($2) +L.3: +la $4,-20+48($sp) +jal getword +bne $2,$0,L.2 +lw $4,-24+48($sp) +jal tprint +move $2,$0 +L.1: +lw $25,16($sp) +lw $31,20($sp) +addu $sp,$sp,48 +j $31 +.end main +.globl err +.text +.align 2 +.ent err +err: +.frame $sp,24,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-24 +.mask 0x82000000,-4 +.cprestore 16 +sw $31,20($sp) +sw $4,24($sp) +la $4,L.6 +lw $5,0+24($sp) +jal printf +la $4,1 +jal exit +move $2,$0 +L.5: +lw $25,16($sp) +lw $31,20($sp) +addu $sp,$sp,24 +j $31 +.end err +.globl getword +.text +.align 2 +.ent getword +getword: +.frame $sp,32,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-32 +.mask 0xc2800000,-4 +sw $23,16($sp) +.cprestore 20 +sw $30,24($sp) +sw $31,28($sp) +sw $4,32($sp) +L.8: +L.9: +jal getchar +move $24,$2 +move $30,$24 +la $15,-1 +beq $24,$15,L.11 +move $4,$30 +jal isletter +beq $2,$0,L.8 +L.11: +lw $23,0+32($sp) +b L.15 +L.12: +move $24,$23 +la $23,1($24) +move $15,$30 +sb $15,($24) +L.13: +jal getchar +move $30,$2 +L.15: +move $4,$30 +jal isletter +move $30,$2 +bne $2,$0,L.12 +sb $0,($23) +move $24,$23 +lw $15,0+32($sp) +bleu $24,$15,L.16 +la $2,1 +b L.7 +L.16: +move $2,$0 +L.7: +lw $23,16($sp) +lw $25,20($sp) +lw $30,24($sp) +lw $31,28($sp) +addu $sp,$sp,32 +j $31 +.end getword +.globl isletter +.text +.align 2 +.ent isletter +isletter: +.frame $sp,0,$31 +.set noreorder +.cpload $25 +.set reorder +la $24,65 +blt $4,$24,L.19 +la $24,90 +bgt $4,$24,L.19 +la $4,32($4) +L.19: +la $24,97 +blt $4,$24,L.21 +la $24,122 +bgt $4,$24,L.21 +move $2,$4 +b L.18 +L.21: +move $2,$0 +L.18: +j $31 +.end isletter +.globl lookup +.text +.align 2 +.ent lookup +lookup: +.frame $sp,32,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-32 +.mask 0xc2000000,-8 +.cprestore 16 +sw $30,20($sp) +sw $31,24($sp) +sw $4,32($sp) +move $30,$5 +lw $24,($30) +beq $24,$0,L.24 +lw $4,0+32($sp) +lw $24,($30) +lw $5,12($24) +jal strcmp +sw $2,-4+32($sp) +lw $24,-4+32($sp) +bge $24,$0,L.26 +lw $4,0+32($sp) +lw $24,($30) +la $5,4($24) +jal lookup +move $24,$2 +b L.23 +L.26: +lw $24,-4+32($sp) +ble $24,$0,L.28 +lw $4,0+32($sp) +lw $24,($30) +la $5,8($24) +jal lookup +move $24,$2 +b L.23 +L.28: +lw $2,($30) +b L.23 +L.24: +lw $24,next +la $15,2000 +blt $24,$15,L.30 +la $4,L.32 +jal err +L.30: +lw $24,next +sll $24,$24,4 +sw $0,words($24) +lw $24,next +sll $24,$24,4 +sw $0,words+8($24) +sw $0,words+4($24) +lw $4,0+32($sp) +jal strlen +move $24,$2 +la $4,1($24) +jal malloc +lw $15,next +sll $15,$15,4 +sw $2,words+12($15) +lw $24,next +sll $24,$24,4 +lw $24,words+12($24) +bne $24,$0,L.36 +la $4,L.39 +jal err +L.36: +lw $24,next +sll $24,$24,4 +lw $4,words+12($24) +lw $5,0+32($sp) +jal strcpy +lw $24,next +la $15,1($24) +sw $15,next +sll $24,$24,4 +la $24,words($24) +sw $24,($30) +move $2,$24 +L.23: +lw $25,16($sp) +lw $30,20($sp) +lw $31,24($sp) +addu $sp,$sp,32 +j $31 +.end lookup +.globl tprint +.text +.align 2 +.ent tprint +tprint: +.frame $sp,32,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-32 +.mask 0xc2000000,-8 +.cprestore 16 +sw $30,20($sp) +sw $31,24($sp) +move $30,$4 +move $24,$30 +beq $24,$0,L.42 +lw $4,4($30) +jal tprint +la $4,L.44 +lw $5,($30) +lw $6,12($30) +jal printf +lw $4,8($30) +jal tprint +L.42: +move $2,$0 +L.41: +lw $25,16($sp) +lw $30,20($sp) +lw $31,24($sp) +addu $sp,$sp,32 +j $31 +.end tprint +.globl strcmp +.text +.align 2 +.ent strcmp +strcmp: +.frame $sp,0,$31 +.set noreorder +.cpload $25 +.set reorder +b L.47 +L.46: +move $24,$4 +la $4,1($24) +lb $24,($24) +bne $24,$0,L.49 +move $2,$0 +b L.45 +L.49: +la $5,1($5) +L.47: +lb $24,($4) +lb $15,($5) +beq $24,$15,L.46 +lb $24,($4) +bne $24,$0,L.51 +la $2,-1 +b L.45 +L.51: +lb $24,($5) +bne $24,$0,L.53 +la $2,1 +b L.45 +L.53: +lb $24,($4) +lb $15,($5) +subu $2,$24,$15 +L.45: +j $31 +.end strcmp +.globl next +.comm next,4 +.globl words +.comm words,32000 +.rdata +.align 0 +L.44: +.byte 37 +.byte 100 +.byte 9 +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 0 +L.39: +.byte 111 +.byte 117 +.byte 116 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 119 +.byte 111 +.byte 114 +.byte 100 +.byte 32 +.byte 115 +.byte 116 +.byte 111 +.byte 114 +.byte 97 +.byte 103 +.byte 101 +.byte 0 +.align 0 +L.32: +.byte 111 +.byte 117 +.byte 116 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 110 +.byte 111 +.byte 100 +.byte 101 +.byte 32 +.byte 115 +.byte 116 +.byte 111 +.byte 114 +.byte 97 +.byte 103 +.byte 101 +.byte 0 +.align 0 +L.6: +.byte 63 +.byte 32 +.byte 37 +.byte 115 +.byte 10 +.byte 0 diff --git a/code/tools/lcc/mips/irix/tst/yacc.1bk b/code/tools/lcc/mips/irix/tst/yacc.1bk new file mode 100644 index 0000000..60de9b5 --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/yacc.1bk @@ -0,0 +1,10 @@ +a +b +load +negate +push 5 +c +load +multiply +add +store diff --git a/code/tools/lcc/mips/irix/tst/yacc.2bk b/code/tools/lcc/mips/irix/tst/yacc.2bk new file mode 100644 index 0000000..9a4fd61 --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/yacc.2bk @@ -0,0 +1,3 @@ +tst/yacc.c:345: warning: missing return value +tst/yacc.c:349: warning: missing return value +tst/yacc.c:359: warning: missing return value diff --git a/code/tools/lcc/mips/irix/tst/yacc.sbk b/code/tools/lcc/mips/irix/tst/yacc.sbk new file mode 100644 index 0000000..0042c3c --- /dev/null +++ b/code/tools/lcc/mips/irix/tst/yacc.sbk @@ -0,0 +1,2236 @@ +.set reorder +.globl yyin +.sdata +.align 2 +yyin: +.word _iob +.globl yyout +.sdata +.align 2 +yyout: +.word _iob+16 +.globl yylex +.text +.text +.align 2 +.ent yylex +yylex: +.frame $sp,32,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-32 +.mask 0xc2000000,-8 +.cprestore 16 +sw $30,20($sp) +sw $31,24($sp) +b L.4 +L.3: +L.6: +la $24,-1 +blt $30,$24,L.7 +la $24,4 +bgt $30,$24,L.7 +sll $24,$30,2 +lw $24,L.18+4($24) +.cpadd $24 +j $24 +.rdata +.align 2 +L.18: +.gpword L.8 +.gpword L.9 +.gpword L.12 +.gpword L.13 +.gpword L.8 +.gpword L.15 +.text +L.9: +jal yywrap +beq $2,$0,L.8 +move $2,$0 +b L.2 +L.12: +la $2,257 +b L.2 +L.13: +la $2,258 +b L.2 +L.15: +lb $2,yytext +b L.2 +L.7: +lw $4,yyout +la $5,L.17 +move $6,$30 +jal fprintf +L.8: +L.4: +jal yylook +move $30,$2 +bge $2,$0,L.3 +move $2,$0 +L.2: +lw $25,16($sp) +lw $30,20($sp) +lw $31,24($sp) +addu $sp,$sp,32 +j $31 +.end yylex +.globl yyvstop +.data +.align 2 +yyvstop: +.word 0x0 +.word 0x4 +.word 0x0 +.word 0x3 +.word 0x4 +.word 0x0 +.word 0x2 +.word 0x4 +.word 0x0 +.word 0x1 +.word 0x4 +.word 0x0 +.word 0x2 +.word 0x0 +.word 0x1 +.word 0x0 +.word 0x0 +.globl yycrank +.data +.align 0 +yycrank: +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x1 +.byte 0x3 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x1 +.byte 0x4 +.byte 0x1 +.byte 0x3 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x1 +.byte 0x5 +.byte 0x5 +.byte 0x7 +.byte 0x5 +.byte 0x7 +.byte 0x5 +.byte 0x7 +.byte 0x5 +.byte 0x7 +.byte 0x5 +.byte 0x7 +.byte 0x5 +.byte 0x7 +.byte 0x5 +.byte 0x7 +.byte 0x5 +.byte 0x7 +.byte 0x5 +.byte 0x7 +.byte 0x5 +.byte 0x7 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x1 +.byte 0x6 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x6 +.byte 0x8 +.byte 0x0 +.byte 0x0 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.globl yysvec +.data +.align 2 +yysvec: +.word 0x0 +.word 0x0 +.word 0x0 +.word yycrank-2 +.word 0x0 +.word 0x0 +.word yycrank +.word yysvec+12 +.word 0x0 +.word yycrank +.word 0x0 +.word yyvstop+4 +.word yycrank +.word 0x0 +.word yyvstop+12 +.word yycrank+4 +.word 0x0 +.word yyvstop+24 +.word yycrank+38 +.word 0x0 +.word yyvstop+36 +.word yycrank +.word yysvec+60 +.word yyvstop+48 +.word yycrank +.word yysvec+72 +.word yyvstop+56 +.word 0x0 +.word 0x0 +.word 0x0 +.globl yytop +.sdata +.align 2 +yytop: +.word yycrank+282 +.globl yybgin +.sdata +.align 2 +yybgin: +.word yysvec+12 +.globl yymatch +.data +.align 0 +yymatch: +.byte 0 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 9 +.byte 10 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 9 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 48 +.byte 48 +.byte 48 +.byte 48 +.byte 48 +.byte 48 +.byte 48 +.byte 48 +.byte 48 +.byte 48 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 65 +.byte 1 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 0 +.globl yyextra +.data +.align 0 +yyextra: +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.globl yylineno +.sdata +.align 2 +yylineno: +.word 0x1 +.globl yysptr +.sdata +.align 2 +yysptr: +.word yysbuf +.globl yyprevious +.sdata +.align 2 +yyprevious: +.word 0xa +.globl yylook +.text +.text +.align 2 +.ent yylook +yylook: +.frame $sp,72,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-72 +.mask 0xc2ff0000,-16 +sw $16,16($sp) +sw $17,20($sp) +sw $18,24($sp) +sw $19,28($sp) +sw $20,32($sp) +sw $21,36($sp) +sw $22,40($sp) +sw $23,44($sp) +.cprestore 48 +sw $30,52($sp) +sw $31,56($sp) +lw $24,yymorfg +bne $24,$0,L.35 +la $21,yytext +b L.36 +L.35: +sw $0,yymorfg +lw $24,yyleng +la $21,yytext($24) +L.36: +L.37: +la $23,yylstate +lw $24,yybgin +move $30,$24 +sw $24,yyestate +lw $24,yyprevious +la $15,10 +bne $24,$15,L.41 +la $30,12($30) +L.41: +L.43: +lw $22,($30) +move $24,$22 +la $15,yycrank +bne $24,$15,L.47 +lw $18,4($30) +move $24,$18 +bne $24,$0,L.49 +b L.94 +L.49: +lw $24,($18) +la $15,yycrank +bne $24,$15,L.51 +b L.94 +L.51: +L.47: +move $24,$21 +sw $24,-12+72($sp) +la $21,1($24) +lw $15,yysptr +la $14,yysbuf +bleu $15,$14,L.61 +lw $15,yysptr +la $15,-1($15) +sw $15,yysptr +lb $15,($15) +sw $15,-4+72($sp) +b L.62 +L.61: +lw $15,yyin +lw $14,($15) +subu $14,$14,1 +sw $14,($15) +bge $14,$0,L.63 +lw $4,yyin +jal _filbuf +move $24,$2 +sw $24,-8+72($sp) +b L.64 +L.63: +lw $24,yyin +la $24,4($24) +lw $15,($24) +la $14,1($15) +sw $14,($24) +lbu $24,($15) +sw $24,-8+72($sp) +L.64: +lw $24,-8+72($sp) +sw $24,-4+72($sp) +L.62: +lw $24,-4+72($sp) +sw $24,yytchar +la $15,10 +bne $24,$15,L.59 +lw $24,yylineno +la $24,1($24) +sw $24,yylineno +lw $16,yytchar +b L.60 +L.59: +lw $16,yytchar +L.60: +la $24,-1 +bne $16,$24,L.57 +move $17,$0 +b L.58 +L.57: +lw $17,yytchar +L.58: +move $20,$17 +move $24,$17 +lw $15,-12+72($sp) +sb $24,($15) +L.65: +move $19,$22 +move $24,$22 +la $15,yycrank +bleu $24,$15,L.66 +sll $24,$20,1 +addu $22,$24,$19 +move $24,$22 +lw $15,yytop +bgtu $24,$15,L.67 +la $24,12 +lb $15,($22) +mul $24,$24,$15 +la $24,yysvec($24) +move $15,$30 +bne $24,$15,L.67 +la $24,yysvec +la $15,12 +lb $14,1($22) +mul $15,$15,$14 +la $15,yysvec($15) +bne $15,$24,L.70 +la $24,-1($21) +move $21,$24 +lb $24,($24) +sw $24,yytchar +lw $24,yytchar +la $15,10 +bne $24,$15,L.72 +lw $24,yylineno +subu $24,$24,1 +sw $24,yylineno +L.72: +lw $24,yysptr +la $15,1($24) +sw $15,yysptr +lw $15,yytchar +sb $15,($24) +b L.94 +L.70: +move $24,$23 +la $23,4($24) +la $15,12 +lb $14,1($22) +mul $15,$15,$14 +la $15,yysvec($15) +move $30,$15 +sw $15,($24) +b L.43 +L.66: +move $24,$22 +la $15,yycrank +bgeu $24,$15,L.75 +la $24,yycrank +move $15,$22 +subu $24,$24,$15 +la $15,2 +div $24,$24,$15 +sll $24,$24,1 +la $24,yycrank($24) +move $19,$24 +move $22,$24 +sll $24,$20,1 +addu $22,$24,$22 +move $24,$22 +lw $15,yytop +bgtu $24,$15,L.77 +la $24,12 +lb $15,($22) +mul $24,$24,$15 +la $24,yysvec($24) +move $15,$30 +bne $24,$15,L.77 +la $24,yysvec +la $15,12 +lb $14,1($22) +mul $15,$15,$14 +la $15,yysvec($15) +bne $15,$24,L.79 +la $24,-1($21) +move $21,$24 +lb $24,($24) +sw $24,yytchar +lw $24,yytchar +la $15,10 +bne $24,$15,L.81 +lw $24,yylineno +subu $24,$24,1 +sw $24,yylineno +L.81: +lw $24,yysptr +la $15,1($24) +sw $15,yysptr +lw $15,yytchar +sb $15,($24) +b L.94 +L.79: +move $24,$23 +la $23,4($24) +la $15,12 +lb $14,1($22) +mul $15,$15,$14 +la $15,yysvec($15) +move $30,$15 +sw $15,($24) +b L.43 +L.77: +lb $24,yymatch($20) +sll $24,$24,1 +addu $22,$24,$19 +move $24,$22 +lw $15,yytop +bgtu $24,$15,L.83 +la $24,12 +lb $15,($22) +mul $24,$24,$15 +la $24,yysvec($24) +move $15,$30 +bne $24,$15,L.83 +la $24,yysvec +la $15,12 +lb $14,1($22) +mul $15,$15,$14 +la $15,yysvec($15) +bne $15,$24,L.85 +la $24,-1($21) +move $21,$24 +lb $24,($24) +sw $24,yytchar +lw $24,yytchar +la $15,10 +bne $24,$15,L.87 +lw $24,yylineno +subu $24,$24,1 +sw $24,yylineno +L.87: +lw $24,yysptr +la $15,1($24) +sw $15,yysptr +lw $15,yytchar +sb $15,($24) +b L.94 +L.85: +move $24,$23 +la $23,4($24) +la $15,12 +lb $14,1($22) +mul $15,$15,$14 +la $15,yysvec($15) +move $30,$15 +sw $15,($24) +b L.43 +L.83: +L.75: +L.67: +lw $24,4($30) +move $30,$24 +beq $24,$0,L.89 +lw $24,($30) +move $22,$24 +la $15,yycrank +beq $24,$15,L.89 +b L.65 +L.89: +la $24,-1($21) +move $21,$24 +lb $24,($24) +sw $24,yytchar +lw $24,yytchar +la $15,10 +bne $24,$15,L.91 +lw $24,yylineno +subu $24,$24,1 +sw $24,yylineno +L.91: +lw $24,yysptr +la $15,1($24) +sw $15,yysptr +lw $15,yytchar +sb $15,($24) +b L.94 +L.93: +move $24,$21 +la $21,-1($24) +sb $0,($24) +lw $24,($23) +move $15,$0 +move $14,$24 +beq $14,$15,L.96 +lw $24,8($24) +sw $24,yyfnd +beq $24,$15,L.96 +lw $24,yyfnd +lw $24,($24) +ble $24,$0,L.96 +sw $23,yyolsp +lw $24,yyfnd +lw $24,($24) +lb $24,yyextra($24) +beq $24,$0,L.98 +b L.101 +L.100: +la $23,-4($23) +move $24,$21 +la $21,-1($24) +lb $24,($24) +sw $24,yytchar +lw $24,yytchar +la $15,10 +bne $24,$15,L.103 +lw $24,yylineno +subu $24,$24,1 +sw $24,yylineno +L.103: +lw $24,yysptr +la $15,1($24) +sw $15,yysptr +lw $15,yytchar +sb $15,($24) +L.101: +lw $24,($23) +lw $4,8($24) +lw $24,yyfnd +lw $24,($24) +negu $5,$24 +jal yyback +la $15,1 +beq $2,$15,L.105 +move $24,$23 +la $15,yylstate +bgtu $24,$15,L.100 +L.105: +L.98: +lb $24,($21) +sw $24,yyprevious +sw $23,yylsp +la $24,yytext +move $15,$21 +subu $24,$15,$24 +la $24,1($24) +sw $24,yyleng +lw $24,yyleng +sb $0,yytext($24) +lw $24,yyfnd +la $15,4($24) +sw $15,yyfnd +lw $2,($24) +b L.34 +L.96: +lb $24,($21) +sw $24,yytchar +lw $24,yytchar +la $15,10 +bne $24,$15,L.106 +lw $24,yylineno +subu $24,$24,1 +sw $24,yylineno +L.106: +lw $24,yysptr +la $15,1($24) +sw $15,yysptr +lw $15,yytchar +sb $15,($24) +L.94: +move $24,$23 +la $23,-4($24) +la $15,yylstate +bgtu $24,$15,L.93 +lb $24,yytext +bne $24,$0,L.108 +la $24,yysbuf +sw $24,yysptr +move $2,$0 +b L.34 +L.108: +lw $24,yysptr +la $15,yysbuf +bleu $24,$15,L.118 +lw $24,yysptr +la $24,-1($24) +sw $24,yysptr +lb $24,($24) +sw $24,-4+72($sp) +b L.119 +L.118: +lw $24,yyin +lw $15,($24) +subu $15,$15,1 +sw $15,($24) +bge $15,$0,L.120 +lw $4,yyin +jal _filbuf +move $24,$2 +sw $24,-8+72($sp) +b L.121 +L.120: +lw $24,yyin +la $24,4($24) +lw $15,($24) +la $14,1($15) +sw $14,($24) +lbu $24,($15) +sw $24,-8+72($sp) +L.121: +lw $24,-8+72($sp) +sw $24,-4+72($sp) +L.119: +lw $24,-4+72($sp) +sw $24,yytchar +la $15,10 +bne $24,$15,L.116 +lw $24,yylineno +la $24,1($24) +sw $24,yylineno +lw $16,yytchar +b L.117 +L.116: +lw $16,yytchar +L.117: +la $24,-1 +bne $16,$24,L.114 +move $17,$0 +b L.115 +L.114: +lw $17,yytchar +L.115: +sb $17,yytext +sll $24,$17,8*(4-1); sra $24,$24,8*(4-1) +sw $24,yyprevious +lw $24,yyprevious +ble $24,$0,L.122 +lw $24,yyout +lw $15,($24) +subu $15,$15,1 +sw $15,($24) +bge $15,$0,L.125 +lw $24,yyprevious +and $24,$24,(1<<(8*1))-1 +move $4,$24 +lw $5,yyout +jal _flsbuf +b L.126 +L.125: +lw $24,yyout +la $24,4($24) +lw $15,($24) +la $14,1($15) +sw $14,($24) +lw $24,yyprevious +sb $24,($15) +L.126: +L.122: +la $21,yytext +b L.37 +L.34: +lw $16,16($sp) +lw $17,20($sp) +lw $18,24($sp) +lw $19,28($sp) +lw $20,32($sp) +lw $21,36($sp) +lw $22,40($sp) +lw $23,44($sp) +lw $25,48($sp) +lw $30,52($sp) +lw $31,56($sp) +addu $sp,$sp,72 +j $31 +.end yylook +.globl yyback +.text +.align 2 +.ent yyback +yyback: +.frame $sp,0,$31 +.set noreorder +.cpload $25 +.set reorder +move $24,$4 +bne $24,$0,L.131 +move $2,$0 +b L.127 +L.130: +move $24,$4 +la $4,4($24) +lw $24,($24) +bne $24,$5,L.133 +la $2,1 +b L.127 +L.133: +L.131: +lw $24,($4) +bne $24,$0,L.130 +move $2,$0 +L.127: +j $31 +.end yyback +.globl yyinput +.text +.align 2 +.ent yyinput +yyinput: +.frame $sp,40,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-40 +.mask 0xc2e00000,-4 +sw $21,16($sp) +sw $22,20($sp) +sw $23,24($sp) +.cprestore 28 +sw $30,32($sp) +sw $31,36($sp) +lw $24,yysptr +la $15,yysbuf +bleu $24,$15,L.144 +lw $24,yysptr +la $24,-1($24) +sw $24,yysptr +lb $22,($24) +b L.145 +L.144: +lw $24,yyin +lw $15,($24) +subu $15,$15,1 +sw $15,($24) +bge $15,$0,L.146 +lw $4,yyin +jal _filbuf +move $24,$2 +move $21,$24 +b L.147 +L.146: +lw $24,yyin +la $24,4($24) +lw $15,($24) +la $14,1($15) +sw $14,($24) +lbu $21,($15) +L.147: +move $22,$21 +L.145: +sw $22,yytchar +la $24,10 +bne $22,$24,L.142 +lw $24,yylineno +la $24,1($24) +sw $24,yylineno +lw $23,yytchar +b L.143 +L.142: +lw $23,yytchar +L.143: +la $24,-1 +bne $23,$24,L.140 +move $30,$0 +b L.141 +L.140: +lw $30,yytchar +L.141: +move $2,$30 +L.135: +lw $21,16($sp) +lw $22,20($sp) +lw $23,24($sp) +lw $25,28($sp) +lw $30,32($sp) +lw $31,36($sp) +addu $sp,$sp,40 +j $31 +.end yyinput +.globl yyoutput +.text +.align 2 +.ent yyoutput +yyoutput: +.frame $sp,24,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-24 +.mask 0x82000000,-4 +.cprestore 16 +sw $31,20($sp) +sw $4,24($sp) +lw $24,yyout +lw $15,($24) +subu $15,$15,1 +sw $15,($24) +bge $15,$0,L.150 +lw $24,0+24($sp) +and $24,$24,(1<<(8*1))-1 +move $4,$24 +lw $5,yyout +jal _flsbuf +b L.151 +L.150: +lw $24,yyout +la $24,4($24) +lw $15,($24) +la $14,1($15) +sw $14,($24) +lw $24,0+24($sp) +sb $24,($15) +L.151: +move $2,$0 +L.148: +lw $25,16($sp) +lw $31,20($sp) +addu $sp,$sp,24 +j $31 +.end yyoutput +.globl yyunput +.text +.align 2 +.ent yyunput +yyunput: +.frame $sp,0,$31 +.set noreorder +.cpload $25 +.set reorder +sw $4,yytchar +lw $24,yytchar +la $15,10 +bne $24,$15,L.153 +lw $24,yylineno +subu $24,$24,1 +sw $24,yylineno +L.153: +lw $24,yysptr +la $15,1($24) +sw $15,yysptr +lw $15,yytchar +sb $15,($24) +move $2,$0 +L.152: +j $31 +.end yyunput +.globl main +.text +.align 2 +.ent main +main: +.frame $sp,24,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-24 +.mask 0x82000000,-4 +.cprestore 16 +sw $31,20($sp) +jal yyparse +move $2,$0 +L.155: +lw $25,16($sp) +lw $31,20($sp) +addu $sp,$sp,24 +j $31 +.end main +.globl yyerror +.text +.align 2 +.ent yyerror +yyerror: +.frame $sp,24,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-24 +.mask 0x82000000,-4 +.cprestore 16 +sw $31,20($sp) +sw $4,24($sp) +la $4,L.157 +lw $5,0+24($sp) +jal printf +move $2,$0 +L.156: +lw $25,16($sp) +lw $31,20($sp) +addu $sp,$sp,24 +j $31 +.end yyerror +.globl yyexca +.data +.align 1 +yyexca: +.half 0xffffffff +.half 0x1 +.half 0x0 +.half 0xffffffff +.half 0xfffffffe +.half 0x0 +.globl yyact +.data +.align 1 +yyact: +.half 0xc +.half 0x2 +.half 0x9 +.half 0x8 +.half 0x11 +.half 0xb +.half 0x19 +.half 0x11 +.half 0xf +.half 0x12 +.half 0x10 +.half 0xa +.half 0x12 +.half 0x11 +.half 0xf +.half 0x7 +.half 0x10 +.half 0xd +.half 0x12 +.half 0x5 +.half 0x3 +.half 0x1 +.half 0x0 +.half 0x13 +.half 0x14 +.half 0x0 +.half 0x0 +.half 0x15 +.half 0x16 +.half 0x17 +.half 0x18 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x6 +.half 0xe +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x4 +.half 0x6 +.globl yypact +.data +.align 1 +yypact: +.half 0xfffffc18 +.half 0xfffffff7 +.half 0xfffffc18 +.half 0x5 +.half 0xfffffff9 +.half 0xffffffc5 +.half 0xfffffc18 +.half 0xfffffc18 +.half 0xfffffc18 +.half 0xffffffd8 +.half 0xffffffe3 +.half 0xffffffd8 +.half 0xffffffd8 +.half 0xfffffc18 +.half 0xfffffc18 +.half 0xffffffd8 +.half 0xffffffd8 +.half 0xffffffd8 +.half 0xffffffd8 +.half 0xffffffda +.half 0xffffffdd +.half 0xffffffda +.half 0xffffffda +.half 0xfffffc18 +.half 0xfffffc18 +.half 0xfffffc18 +.globl yypgo +.data +.align 1 +yypgo: +.half 0x0 +.half 0x15 +.half 0x14 +.half 0x11 +.half 0xb +.globl yyr1 +.data +.align 1 +yyr1: +.half 0x0 +.half 0x1 +.half 0x1 +.half 0x1 +.half 0x1 +.half 0x2 +.half 0x4 +.half 0x4 +.half 0x4 +.half 0x4 +.half 0x4 +.half 0x4 +.half 0x4 +.half 0x4 +.half 0x3 +.globl yyr2 +.data +.align 1 +yyr2: +.half 0x0 +.half 0x0 +.half 0x2 +.half 0x3 +.half 0x3 +.half 0x3 +.half 0x3 +.half 0x3 +.half 0x3 +.half 0x3 +.half 0x2 +.half 0x3 +.half 0x1 +.half 0x1 +.half 0x1 +.globl yychk +.data +.align 1 +yychk: +.half 0xfffffc18 +.half 0xffffffff +.half 0xa +.half 0xfffffffe +.half 0x100 +.half 0xfffffffd +.half 0x101 +.half 0xa +.half 0xa +.half 0x3d +.half 0xfffffffc +.half 0x2d +.half 0x28 +.half 0xfffffffd +.half 0x102 +.half 0x2b +.half 0x2d +.half 0x2a +.half 0x2f +.half 0xfffffffc +.half 0xfffffffc +.half 0xfffffffc +.half 0xfffffffc +.half 0xfffffffc +.half 0xfffffffc +.half 0x29 +.globl yydef +.data +.align 1 +yydef: +.half 0x1 +.half 0xfffffffe +.half 0x2 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0xe +.half 0x3 +.half 0x4 +.half 0x0 +.half 0x5 +.half 0x0 +.half 0x0 +.half 0xc +.half 0xd +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0xa +.half 0x0 +.half 0x6 +.half 0x7 +.half 0x8 +.half 0x9 +.half 0xb +.globl yychar +.sdata +.align 2 +yychar: +.word 0xffffffff +.globl yynerrs +.sdata +.align 2 +yynerrs: +.word 0x0 +.globl yyerrflag +.sdata +.align 1 +yyerrflag: +.half 0x0 +.globl yyparse +.text +.text +.align 2 +.ent yyparse +yyparse: +.frame $sp,360,$31 +.set noreorder +.cpload $25 +.set reorder +addu $sp,$sp,-360 +.mask 0xc2fe0000,-308 +sw $17,16($sp) +sw $18,20($sp) +sw $19,24($sp) +sw $20,28($sp) +sw $21,32($sp) +sw $22,36($sp) +sw $23,40($sp) +.cprestore 44 +sw $30,48($sp) +sw $31,52($sp) +move $24,$0 +move $23,$24 +la $15,-1 +sw $15,yychar +sw $0,yynerrs +sh $24,yyerrflag +la $22,-302+360($sp) +la $20,yyv-4 +L.161: +la $24,2($22) +move $22,$24 +la $15,0+360($sp) +bleu $24,$15,L.162 +la $4,L.165 +jal yyerror +la $2,1 +b L.158 +L.162: +sh $23,($22) +la $20,4($20) +lw $24,yyval +sw $24,($20) +L.166: +sll $24,$23,8*(4-2); sra $24,$24,8*(4-2) +sll $24,$24,1 +lh $21,yypact($24) +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,-1000 +bgt $24,$15,L.167 +b L.169 +L.167: +lw $24,yychar +bge $24,$0,L.170 +jal yylex +sw $2,yychar +bge $2,$0,L.172 +sw $0,yychar +L.172: +L.170: +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +lw $15,yychar +addu $24,$24,$15 +move $21,$24 +sll $24,$24,8*(4-2); sra $24,$24,8*(4-2) +blt $24,$0,L.176 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +la $15,249 +blt $24,$15,L.174 +L.176: +b L.169 +L.174: +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +sll $24,$24,1 +lh $24,yyact($24) +move $21,$24 +sll $24,$24,8*(4-2); sra $24,$24,8*(4-2) +sll $24,$24,1 +lh $24,yychk($24) +lw $15,yychar +bne $24,$15,L.177 +la $24,-1 +sw $24,yychar +lw $24,yylval +sw $24,yyval +move $23,$21 +lh $24,yyerrflag +ble $24,$0,L.161 +lh $24,yyerrflag +subu $24,$24,1 +sh $24,yyerrflag +b L.161 +L.177: +L.169: +sll $24,$23,8*(4-2); sra $24,$24,8*(4-2) +sll $24,$24,1 +lh $24,yydef($24) +move $21,$24 +sll $24,$24,8*(4-2); sra $24,$24,8*(4-2) +la $15,-2 +bne $24,$15,L.181 +lw $24,yychar +bge $24,$0,L.183 +jal yylex +sw $2,yychar +bge $2,$0,L.185 +sw $0,yychar +L.185: +L.183: +la $19,yyexca +b L.190 +L.187: +L.188: +la $19,4($19) +L.190: +lh $24,($19) +la $15,-1 +bne $24,$15,L.187 +lh $24,2($19) +sll $15,$23,8*(4-2); sra $15,$15,8*(4-2) +bne $24,$15,L.187 +b L.192 +L.191: +lh $24,($19) +lw $15,yychar +bne $24,$15,L.194 +b L.193 +L.194: +L.192: +la $24,4($19) +move $19,$24 +lh $24,($24) +bge $24,$0,L.191 +L.193: +lh $24,2($19) +move $21,$24 +sll $24,$24,8*(4-2); sra $24,$24,8*(4-2) +bge $24,$0,L.196 +move $2,$0 +b L.158 +L.196: +L.181: +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +bne $24,$0,L.198 +lh $17,yyerrflag +blt $17,$0,L.200 +la $24,3 +bgt $17,$24,L.200 +sll $24,$17,2 +lw $24,L.216($24) +.cpadd $24 +j $24 +.rdata +.align 2 +L.216: +.gpword L.203 +.gpword L.206 +.gpword L.206 +.gpword L.213 +.text +L.203: +la $4,L.204 +jal yyerror +L.205: +lw $24,yynerrs +la $24,1($24) +sw $24,yynerrs +L.206: +la $24,3 +sh $24,yyerrflag +b L.208 +L.207: +lh $24,($22) +sll $24,$24,1 +lh $24,yypact($24) +la $24,256($24) +move $21,$24 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +blt $24,$0,L.210 +la $15,249 +bge $24,$15,L.210 +sll $24,$24,1 +lh $24,yyact($24) +sll $24,$24,1 +lh $24,yychk($24) +la $15,256 +bne $24,$15,L.210 +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +sll $24,$24,1 +lh $23,yyact($24) +b L.161 +L.210: +lh $24,($22) +sll $24,$24,1 +lh $21,yypact($24) +la $22,-2($22) +la $20,-4($20) +L.208: +move $24,$22 +la $15,-300+360($sp) +bgeu $24,$15,L.207 +L.212: +la $2,1 +b L.158 +L.213: +lw $24,yychar +bne $24,$0,L.214 +b L.212 +L.214: +la $24,-1 +sw $24,yychar +b L.166 +L.200: +L.198: +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +sll $24,$24,1 +la $15,yyr2($24) +lh $14,($15) +sll $14,$14,1 +subu $22,$22,$14 +move $30,$20 +lh $15,($15) +sll $15,$15,2 +subu $20,$20,$15 +lw $15,4($20) +sw $15,yyval +sh $21,-302+360($sp) +lh $21,yyr1($24) +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +sll $24,$24,1 +lh $24,yypgo($24) +lh $15,($22) +addu $24,$24,$15 +la $24,1($24) +move $18,$24 +sll $24,$18,8*(4-2); sra $24,$24,8*(4-2) +la $15,249 +bge $24,$15,L.219 +sll $24,$24,1 +lh $24,yyact($24) +move $23,$24 +sll $24,$24,8*(4-2); sra $24,$24,8*(4-2) +sll $24,$24,1 +lh $24,yychk($24) +sll $15,$21,8*(4-2); sra $15,$15,8*(4-2) +negu $15,$15 +beq $24,$15,L.217 +L.219: +sll $24,$21,8*(4-2); sra $24,$24,8*(4-2) +sll $24,$24,1 +lh $24,yypgo($24) +sll $24,$24,1 +lh $23,yyact($24) +L.217: +lh $17,-302+360($sp) +la $24,4 +blt $17,$24,L.161 +la $24,14 +bgt $17,$24,L.161 +sll $24,$17,2 +lw $24,L.241-16($24) +.cpadd $24 +j $24 +.rdata +.align 2 +L.241: +.gpword L.223 +.gpword L.224 +.gpword L.226 +.gpword L.228 +.gpword L.230 +.gpword L.232 +.gpword L.234 +.gpword L.161 +.gpword L.236 +.gpword L.238 +.gpword L.240 +.text +L.223: +sh $0,yyerrflag +b L.161 +L.224: +la $4,L.225 +jal printf +b L.161 +L.226: +la $4,L.227 +jal printf +b L.161 +L.228: +la $4,L.229 +jal printf +b L.161 +L.230: +la $4,L.231 +jal printf +b L.161 +L.232: +la $4,L.233 +jal printf +b L.161 +L.234: +la $4,L.235 +jal printf +b L.161 +L.236: +la $4,L.237 +jal printf +b L.161 +L.238: +la $4,L.239 +la $5,yytext +jal printf +b L.161 +L.240: +la $4,L.157 +la $5,yytext +jal printf +b L.161 +L.158: +lw $17,16($sp) +lw $18,20($sp) +lw $19,24($sp) +lw $20,28($sp) +lw $21,32($sp) +lw $22,36($sp) +lw $23,40($sp) +lw $25,44($sp) +lw $30,48($sp) +lw $31,52($sp) +addu $sp,$sp,360 +j $31 +.end yyparse +.globl yywrap +.text +.align 2 +.ent yywrap +yywrap: +.frame $sp,0,$31 +.set noreorder +.cpload $25 +.set reorder +la $2,1 +L.243: +j $31 +.end yywrap +.globl yyv +.comm yyv,600 +.globl yyfnd +.comm yyfnd,4 +.globl yyolsp +.comm yyolsp,4 +.globl yylsp +.comm yylsp,4 +.globl yylstate +.comm yylstate,800 +.globl yyestate +.comm yyestate,4 +.globl yytchar +.comm yytchar,4 +.globl yysbuf +.comm yysbuf,200 +.globl yymorfg +.comm yymorfg,4 +.globl yytext +.comm yytext,200 +.globl yyleng +.comm yyleng,4 +.extern _iob 0 +.globl yyval +.comm yyval,4 +.globl yylval +.comm yylval,4 +.rdata +.align 0 +L.239: +.byte 112 +.byte 117 +.byte 115 +.byte 104 +.byte 32 +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 0 +L.237: +.byte 108 +.byte 111 +.byte 97 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.235: +.byte 110 +.byte 101 +.byte 103 +.byte 97 +.byte 116 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.233: +.byte 100 +.byte 105 +.byte 118 +.byte 105 +.byte 100 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.231: +.byte 109 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 121 +.byte 10 +.byte 0 +.align 0 +L.229: +.byte 110 +.byte 101 +.byte 103 +.byte 97 +.byte 116 +.byte 101 +.byte 10 +.byte 97 +.byte 100 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.227: +.byte 97 +.byte 100 +.byte 100 +.byte 10 +.byte 0 +.align 0 +L.225: +.byte 115 +.byte 116 +.byte 111 +.byte 114 +.byte 101 +.byte 10 +.byte 0 +.align 0 +L.204: +.byte 115 +.byte 121 +.byte 110 +.byte 116 +.byte 97 +.byte 120 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 0 +.align 0 +L.165: +.byte 121 +.byte 97 +.byte 99 +.byte 99 +.byte 32 +.byte 115 +.byte 116 +.byte 97 +.byte 99 +.byte 107 +.byte 32 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 0 +.align 0 +L.157: +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 0 +L.17: +.byte 98 +.byte 97 +.byte 100 +.byte 32 +.byte 115 +.byte 119 +.byte 105 +.byte 116 +.byte 99 +.byte 104 +.byte 32 +.byte 121 +.byte 121 +.byte 108 +.byte 111 +.byte 111 +.byte 107 +.byte 32 +.byte 37 +.byte 100 +.byte 0 diff --git a/code/tools/lcc/msdev/rcc.dsp b/code/tools/lcc/msdev/rcc.dsp new file mode 100644 index 0000000..c7615ee --- /dev/null +++ b/code/tools/lcc/msdev/rcc.dsp @@ -0,0 +1,240 @@ +# Microsoft Developer Studio Project File - Name="rcc" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=rcc - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "rcc.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "rcc.mak" CFG="rcc - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "rcc - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "rcc - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "rcc - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 + +!ELSEIF "$(CFG)" == "rcc - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept + +!ENDIF + +# Begin Target + +# Name "rcc - Win32 Release" +# Name "rcc - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\src\2html.c +# End Source File +# Begin Source File + +SOURCE=..\src\alloc.c +# End Source File +# Begin Source File + +SOURCE=..\src\asdl.c +# End Source File +# Begin Source File + +SOURCE=..\src\bind.c +# End Source File +# Begin Source File + +SOURCE=..\src\bytecode.c +# End Source File +# Begin Source File + +SOURCE=..\src\c.h +# End Source File +# Begin Source File + +SOURCE=..\src\config.h +# End Source File +# Begin Source File + +SOURCE=..\src\dag.c +# End Source File +# Begin Source File + +SOURCE=..\src\decl.c +# End Source File +# Begin Source File + +SOURCE=..\src\enode.c +# End Source File +# Begin Source File + +SOURCE=..\src\error.c +# End Source File +# Begin Source File + +SOURCE=..\src\event.c +# End Source File +# Begin Source File + +SOURCE=..\src\expr.c +# End Source File +# Begin Source File + +SOURCE=..\src\gen.c +# End Source File +# Begin Source File + +SOURCE=..\src\init.c +# End Source File +# Begin Source File + +SOURCE=..\src\inits.c +# End Source File +# Begin Source File + +SOURCE=..\src\input.c +# End Source File +# Begin Source File + +SOURCE=..\src\lex.c +# End Source File +# Begin Source File + +SOURCE=..\src\list.c +# End Source File +# Begin Source File + +SOURCE=..\src\main.c +# End Source File +# Begin Source File + +SOURCE=..\src\null.c +# End Source File +# Begin Source File + +SOURCE=..\src\output.c +# End Source File +# Begin Source File + +SOURCE=..\src\pass2.c +# End Source File +# Begin Source File + +SOURCE=..\src\prof.c +# End Source File +# Begin Source File + +SOURCE=..\src\profio.c +# End Source File +# Begin Source File + +SOURCE=..\src\simp.c +# End Source File +# Begin Source File + +SOURCE=..\src\stab.c +# End Source File +# Begin Source File + +SOURCE=..\src\stab.h +# End Source File +# Begin Source File + +SOURCE=..\src\stmt.c +# End Source File +# Begin Source File + +SOURCE=..\src\string.c +# End Source File +# Begin Source File + +SOURCE=..\src\sym.c +# End Source File +# Begin Source File + +SOURCE=..\src\symbolic.c +# End Source File +# Begin Source File + +SOURCE=..\src\token.h +# End Source File +# Begin Source File + +SOURCE=..\src\trace.c +# End Source File +# Begin Source File + +SOURCE=..\src\tree.c +# End Source File +# Begin Source File + +SOURCE=..\src\types.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# End Target +# End Project diff --git a/code/tools/lcc/msdev/rcc.dsw b/code/tools/lcc/msdev/rcc.dsw new file mode 100644 index 0000000..6926a03 --- /dev/null +++ b/code/tools/lcc/msdev/rcc.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "rcc"=.\rcc.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/code/tools/lcc/packing.lst b/code/tools/lcc/packing.lst new file mode 100644 index 0000000..416f602 --- /dev/null +++ b/code/tools/lcc/packing.lst @@ -0,0 +1,432 @@ +README +CPYRIGHT +LOG +makefile +makefile.nt +src/2html.c +src/alloc.c +src/asdl.c +src/bind.c +src/bytecode.c +src/c.h +src/config.h +src/dag.c +src/decl.c +src/enode.c +src/error.c +src/event.c +src/expr.c +src/gen.c +src/init.c +src/inits.c +src/input.c +src/lex.c +src/list.c +src/main.c +src/null.c +src/output.c +src/pass2.c +src/prof.c +src/profio.c +src/simp.c +src/stab.c +src/stab.h +src/stmt.c +src/string.c +src/sym.c +src/symbolic.c +src/token.h +src/trace.c +src/tree.c +src/types.c +src/alpha.md +src/dagcheck.md +src/mips.md +src/sparc.md +src/x86.md +src/x86linux.md +src/run.sh +src/rcc.asdl +lib/assert.c +lib/bbexit.c +lib/yynull.c +tst/8q.0 +tst/8q.c +tst/array.0 +tst/array.c +tst/cf.0 +tst/cf.c +tst/cq.0 +tst/cq.c +tst/cvt.0 +tst/cvt.c +tst/fields.0 +tst/fields.c +tst/front.0 +tst/front.c +tst/incr.0 +tst/incr.c +tst/init.0 +tst/init.c +tst/limits.0 +tst/limits.c +tst/paranoia.0 +tst/paranoia.c +tst/sort.0 +tst/sort.c +tst/spill.0 +tst/spill.c +tst/stdarg.0 +tst/stdarg.c +tst/struct.0 +tst/struct.c +tst/switch.0 +tst/switch.c +tst/wf1.0 +tst/wf1.c +tst/yacc.0 +tst/yacc.c +etc/bprint.c +etc/gcc-solaris.c +etc/irix.c +etc/lcc.c +etc/linux.c +etc/ops.c +etc/osf.c +etc/solaris.c +etc/win32.c +cpp/cpp.c +cpp/cpp.h +cpp/eval.c +cpp/getopt.c +cpp/hideset.c +cpp/include.c +cpp/lex.c +cpp/macro.c +cpp/nlist.c +cpp/tokens.c +cpp/unix.c +lburg/gram.c +lburg/gram.y +lburg/lburg.1 +lburg/lburg.c +lburg/lburg.h +include/alpha/osf/assert.h +include/alpha/osf/ctype.h +include/alpha/osf/errno.h +include/alpha/osf/float.h +include/alpha/osf/limits.h +include/alpha/osf/locale.h +include/alpha/osf/math.h +include/alpha/osf/setjmp.h +include/alpha/osf/signal.h +include/alpha/osf/stdarg.h +include/alpha/osf/stddef.h +include/alpha/osf/stdio.h +include/alpha/osf/stdlib.h +include/alpha/osf/string.h +include/alpha/osf/time.h +include/sparc/solaris/assert.h +include/sparc/solaris/ctype.h +include/sparc/solaris/errno.h +include/sparc/solaris/float.h +include/sparc/solaris/limits.h +include/sparc/solaris/locale.h +include/sparc/solaris/math.h +include/sparc/solaris/setjmp.h +include/sparc/solaris/signal.h +include/sparc/solaris/stdarg.h +include/sparc/solaris/stddef.h +include/sparc/solaris/stdio.h +include/sparc/solaris/stdlib.h +include/sparc/solaris/string.h +include/sparc/solaris/time.h +include/mips/irix/assert.h +include/mips/irix/ctype.h +include/mips/irix/errno.h +include/mips/irix/float.h +include/mips/irix/limits.h +include/mips/irix/locale.h +include/mips/irix/math.h +include/mips/irix/setjmp.h +include/mips/irix/signal.h +include/mips/irix/stdarg.h +include/mips/irix/stddef.h +include/mips/irix/stdio.h +include/mips/irix/stdlib.h +include/mips/irix/string.h +include/mips/irix/time.h +include/x86/linux/assert.h +include/x86/linux/float.h +include/x86/linux/stdarg.h +doc/4.html +doc/install.html +doc/bprint.1 +doc/lcc.1 +doc/bprint.pdf +doc/lcc.pdf +alpha/osf/tst/8q.1bk +alpha/osf/tst/8q.2bk +alpha/osf/tst/8q.sbk +alpha/osf/tst/array.1bk +alpha/osf/tst/array.2bk +alpha/osf/tst/array.sbk +alpha/osf/tst/cf.1bk +alpha/osf/tst/cf.2bk +alpha/osf/tst/cf.sbk +alpha/osf/tst/cq.1bk +alpha/osf/tst/cq.2bk +alpha/osf/tst/cq.sbk +alpha/osf/tst/cvt.1bk +alpha/osf/tst/cvt.2bk +alpha/osf/tst/cvt.sbk +alpha/osf/tst/fields.1bk +alpha/osf/tst/fields.2bk +alpha/osf/tst/fields.sbk +alpha/osf/tst/front.2bk +alpha/osf/tst/front.sbk +alpha/osf/tst/incr.1bk +alpha/osf/tst/incr.2bk +alpha/osf/tst/incr.sbk +alpha/osf/tst/init.1bk +alpha/osf/tst/init.2bk +alpha/osf/tst/init.sbk +alpha/osf/tst/limits.1bk +alpha/osf/tst/limits.2bk +alpha/osf/tst/limits.sbk +alpha/osf/tst/paranoia.1bk +alpha/osf/tst/paranoia.2bk +alpha/osf/tst/paranoia.sbk +alpha/osf/tst/sort.1bk +alpha/osf/tst/sort.2bk +alpha/osf/tst/sort.sbk +alpha/osf/tst/spill.1bk +alpha/osf/tst/spill.2bk +alpha/osf/tst/spill.sbk +alpha/osf/tst/stdarg.1bk +alpha/osf/tst/stdarg.2bk +alpha/osf/tst/stdarg.sbk +alpha/osf/tst/struct.1bk +alpha/osf/tst/struct.2bk +alpha/osf/tst/struct.sbk +alpha/osf/tst/switch.1bk +alpha/osf/tst/switch.2bk +alpha/osf/tst/switch.sbk +alpha/osf/tst/wf1.1bk +alpha/osf/tst/wf1.2bk +alpha/osf/tst/wf1.sbk +alpha/osf/tst/yacc.1bk +alpha/osf/tst/yacc.2bk +alpha/osf/tst/yacc.sbk +sparc/solaris/tst/8q.1bk +sparc/solaris/tst/8q.2bk +sparc/solaris/tst/8q.sbk +sparc/solaris/tst/array.1bk +sparc/solaris/tst/array.2bk +sparc/solaris/tst/array.sbk +sparc/solaris/tst/cf.1bk +sparc/solaris/tst/cf.2bk +sparc/solaris/tst/cf.sbk +sparc/solaris/tst/cq.1bk +sparc/solaris/tst/cq.2bk +sparc/solaris/tst/cq.sbk +sparc/solaris/tst/cvt.1bk +sparc/solaris/tst/cvt.2bk +sparc/solaris/tst/cvt.sbk +sparc/solaris/tst/fields.1bk +sparc/solaris/tst/fields.2bk +sparc/solaris/tst/fields.sbk +sparc/solaris/tst/front.2bk +sparc/solaris/tst/front.sbk +sparc/solaris/tst/incr.1bk +sparc/solaris/tst/incr.2bk +sparc/solaris/tst/incr.sbk +sparc/solaris/tst/init.1bk +sparc/solaris/tst/init.2bk +sparc/solaris/tst/init.sbk +sparc/solaris/tst/limits.1bk +sparc/solaris/tst/limits.2bk +sparc/solaris/tst/limits.sbk +sparc/solaris/tst/paranoia.1bk +sparc/solaris/tst/paranoia.2bk +sparc/solaris/tst/paranoia.sbk +sparc/solaris/tst/sort.1bk +sparc/solaris/tst/sort.2bk +sparc/solaris/tst/sort.sbk +sparc/solaris/tst/spill.1bk +sparc/solaris/tst/spill.2bk +sparc/solaris/tst/spill.sbk +sparc/solaris/tst/stdarg.1bk +sparc/solaris/tst/stdarg.2bk +sparc/solaris/tst/stdarg.sbk +sparc/solaris/tst/struct.1bk +sparc/solaris/tst/struct.2bk +sparc/solaris/tst/struct.sbk +sparc/solaris/tst/switch.1bk +sparc/solaris/tst/switch.2bk +sparc/solaris/tst/switch.sbk +sparc/solaris/tst/wf1.1bk +sparc/solaris/tst/wf1.2bk +sparc/solaris/tst/wf1.sbk +sparc/solaris/tst/yacc.1bk +sparc/solaris/tst/yacc.2bk +sparc/solaris/tst/yacc.sbk +mips/irix/tst/8q.1bk +mips/irix/tst/8q.2bk +mips/irix/tst/8q.sbk +mips/irix/tst/array.1bk +mips/irix/tst/array.2bk +mips/irix/tst/array.sbk +mips/irix/tst/cf.1bk +mips/irix/tst/cf.2bk +mips/irix/tst/cf.sbk +mips/irix/tst/cq.1bk +mips/irix/tst/cq.2bk +mips/irix/tst/cq.sbk +mips/irix/tst/cvt.1bk +mips/irix/tst/cvt.2bk +mips/irix/tst/cvt.sbk +mips/irix/tst/fields.1bk +mips/irix/tst/fields.2bk +mips/irix/tst/fields.sbk +mips/irix/tst/front.2bk +mips/irix/tst/front.sbk +mips/irix/tst/incr.2bk +mips/irix/tst/incr.sbk +mips/irix/tst/init.1bk +mips/irix/tst/init.2bk +mips/irix/tst/init.sbk +mips/irix/tst/limits.1bk +mips/irix/tst/limits.2bk +mips/irix/tst/limits.sbk +mips/irix/tst/paranoia.1bk +mips/irix/tst/paranoia.2bk +mips/irix/tst/paranoia.sbk +mips/irix/tst/sort.1bk +mips/irix/tst/sort.2bk +mips/irix/tst/sort.sbk +mips/irix/tst/spill.2bk +mips/irix/tst/spill.sbk +mips/irix/tst/stdarg.1bk +mips/irix/tst/stdarg.2bk +mips/irix/tst/stdarg.sbk +mips/irix/tst/struct.1bk +mips/irix/tst/struct.2bk +mips/irix/tst/struct.sbk +mips/irix/tst/switch.1bk +mips/irix/tst/switch.2bk +mips/irix/tst/switch.sbk +mips/irix/tst/wf1.1bk +mips/irix/tst/wf1.2bk +mips/irix/tst/wf1.sbk +mips/irix/tst/yacc.1bk +mips/irix/tst/yacc.2bk +mips/irix/tst/yacc.sbk +x86/linux/tst/8q.1bk +x86/linux/tst/8q.2bk +x86/linux/tst/8q.sbk +x86/linux/tst/array.1bk +x86/linux/tst/array.2bk +x86/linux/tst/array.sbk +x86/linux/tst/cf.1bk +x86/linux/tst/cf.2bk +x86/linux/tst/cf.sbk +x86/linux/tst/cq.1bk +x86/linux/tst/cq.2bk +x86/linux/tst/cq.sbk +x86/linux/tst/cvt.1bk +x86/linux/tst/cvt.2bk +x86/linux/tst/cvt.sbk +x86/linux/tst/fields.1bk +x86/linux/tst/fields.2bk +x86/linux/tst/fields.sbk +x86/linux/tst/front.2bk +x86/linux/tst/front.sbk +x86/linux/tst/incr.1bk +x86/linux/tst/incr.2bk +x86/linux/tst/incr.sbk +x86/linux/tst/init.1bk +x86/linux/tst/init.2bk +x86/linux/tst/init.sbk +x86/linux/tst/limits.1bk +x86/linux/tst/limits.2bk +x86/linux/tst/limits.sbk +x86/linux/tst/paranoia.1bk +x86/linux/tst/paranoia.2bk +x86/linux/tst/paranoia.sbk +x86/linux/tst/sort.1bk +x86/linux/tst/sort.2bk +x86/linux/tst/sort.sbk +x86/linux/tst/spill.1bk +x86/linux/tst/spill.2bk +x86/linux/tst/spill.sbk +x86/linux/tst/stdarg.1bk +x86/linux/tst/stdarg.2bk +x86/linux/tst/stdarg.sbk +x86/linux/tst/struct.1bk +x86/linux/tst/struct.2bk +x86/linux/tst/struct.sbk +x86/linux/tst/switch.1bk +x86/linux/tst/switch.2bk +x86/linux/tst/switch.sbk +x86/linux/tst/wf1.1bk +x86/linux/tst/wf1.2bk +x86/linux/tst/wf1.sbk +x86/linux/tst/yacc.1bk +x86/linux/tst/yacc.2bk +x86/linux/tst/yacc.sbk +x86/win32/tst/8q.1bk +x86/win32/tst/8q.2bk +x86/win32/tst/8q.sbk +x86/win32/tst/array.1bk +x86/win32/tst/array.2bk +x86/win32/tst/array.sbk +x86/win32/tst/cf.1bk +x86/win32/tst/cf.2bk +x86/win32/tst/cf.sbk +x86/win32/tst/cq.1bk +x86/win32/tst/cq.2bk +x86/win32/tst/cq.sbk +x86/win32/tst/cvt.1bk +x86/win32/tst/cvt.2bk +x86/win32/tst/cvt.sbk +x86/win32/tst/fields.1bk +x86/win32/tst/fields.2bk +x86/win32/tst/fields.sbk +x86/win32/tst/front.2bk +x86/win32/tst/front.sbk +x86/win32/tst/incr.1bk +x86/win32/tst/incr.2bk +x86/win32/tst/incr.sbk +x86/win32/tst/init.1bk +x86/win32/tst/init.2bk +x86/win32/tst/init.sbk +x86/win32/tst/limits.1bk +x86/win32/tst/limits.2bk +x86/win32/tst/limits.sbk +x86/win32/tst/paranoia.1bk +x86/win32/tst/paranoia.2bk +x86/win32/tst/paranoia.sbk +x86/win32/tst/sort.1bk +x86/win32/tst/sort.2bk +x86/win32/tst/sort.sbk +x86/win32/tst/spill.1bk +x86/win32/tst/spill.2bk +x86/win32/tst/spill.sbk +x86/win32/tst/stdarg.1bk +x86/win32/tst/stdarg.2bk +x86/win32/tst/stdarg.sbk +x86/win32/tst/struct.1bk +x86/win32/tst/struct.2bk +x86/win32/tst/struct.sbk +x86/win32/tst/switch.1bk +x86/win32/tst/switch.2bk +x86/win32/tst/switch.sbk +x86/win32/tst/wf1.1bk +x86/win32/tst/wf1.2bk +x86/win32/tst/wf1.sbk +x86/win32/tst/yacc.1bk +x86/win32/tst/yacc.2bk +x86/win32/tst/yacc.sbk +custom.mk +packing.lst diff --git a/code/tools/lcc/sparc/solaris/tst/8q.1bk b/code/tools/lcc/sparc/solaris/tst/8q.1bk new file mode 100644 index 0000000..7ed6437 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/8q.1bk @@ -0,0 +1,92 @@ +1 5 8 6 3 7 2 4 +1 6 8 3 7 4 2 5 +1 7 4 6 8 2 5 3 +1 7 5 8 2 4 6 3 +2 4 6 8 3 1 7 5 +2 5 7 1 3 8 6 4 +2 5 7 4 1 8 6 3 +2 6 1 7 4 8 3 5 +2 6 8 3 1 4 7 5 +2 7 3 6 8 5 1 4 +2 7 5 8 1 4 6 3 +2 8 6 1 3 5 7 4 +3 1 7 5 8 2 4 6 +3 5 2 8 1 7 4 6 +3 5 2 8 6 4 7 1 +3 5 7 1 4 2 8 6 +3 5 8 4 1 7 2 6 +3 6 2 5 8 1 7 4 +3 6 2 7 1 4 8 5 +3 6 2 7 5 1 8 4 +3 6 4 1 8 5 7 2 +3 6 4 2 8 5 7 1 +3 6 8 1 4 7 5 2 +3 6 8 1 5 7 2 4 +3 6 8 2 4 1 7 5 +3 7 2 8 5 1 4 6 +3 7 2 8 6 4 1 5 +3 8 4 7 1 6 2 5 +4 1 5 8 2 7 3 6 +4 1 5 8 6 3 7 2 +4 2 5 8 6 1 3 7 +4 2 7 3 6 8 1 5 +4 2 7 3 6 8 5 1 +4 2 7 5 1 8 6 3 +4 2 8 5 7 1 3 6 +4 2 8 6 1 3 5 7 +4 6 1 5 2 8 3 7 +4 6 8 2 7 1 3 5 +4 6 8 3 1 7 5 2 +4 7 1 8 5 2 6 3 +4 7 3 8 2 5 1 6 +4 7 5 2 6 1 3 8 +4 7 5 3 1 6 8 2 +4 8 1 3 6 2 7 5 +4 8 1 5 7 2 6 3 +4 8 5 3 1 7 2 6 +5 1 4 6 8 2 7 3 +5 1 8 4 2 7 3 6 +5 1 8 6 3 7 2 4 +5 2 4 6 8 3 1 7 +5 2 4 7 3 8 6 1 +5 2 6 1 7 4 8 3 +5 2 8 1 4 7 3 6 +5 3 1 6 8 2 4 7 +5 3 1 7 2 8 6 4 +5 3 8 4 7 1 6 2 +5 7 1 3 8 6 4 2 +5 7 1 4 2 8 6 3 +5 7 2 4 8 1 3 6 +5 7 2 6 3 1 4 8 +5 7 2 6 3 1 8 4 +5 7 4 1 3 8 6 2 +5 8 4 1 3 6 2 7 +5 8 4 1 7 2 6 3 +6 1 5 2 8 3 7 4 +6 2 7 1 3 5 8 4 +6 2 7 1 4 8 5 3 +6 3 1 7 5 8 2 4 +6 3 1 8 4 2 7 5 +6 3 1 8 5 2 4 7 +6 3 5 7 1 4 2 8 +6 3 5 8 1 4 2 7 +6 3 7 2 4 8 1 5 +6 3 7 2 8 5 1 4 +6 3 7 4 1 8 2 5 +6 4 1 5 8 2 7 3 +6 4 2 8 5 7 1 3 +6 4 7 1 3 5 2 8 +6 4 7 1 8 2 5 3 +6 8 2 4 1 7 5 3 +7 1 3 8 6 4 2 5 +7 2 4 1 8 5 3 6 +7 2 6 3 1 4 8 5 +7 3 1 6 8 5 2 4 +7 3 8 2 5 1 6 4 +7 4 2 5 8 1 3 6 +7 4 2 8 6 1 3 5 +7 5 3 1 6 8 2 4 +8 2 4 1 7 5 3 6 +8 2 5 3 1 7 4 6 +8 3 1 6 2 5 7 4 +8 4 1 3 6 2 7 5 diff --git a/code/tools/lcc/sparc/solaris/tst/8q.2bk b/code/tools/lcc/sparc/solaris/tst/8q.2bk new file mode 100644 index 0000000..d4dc0ed --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/8q.2bk @@ -0,0 +1,2 @@ +tst/8q.c:30: warning: missing return value +tst/8q.c:39: warning: missing return value diff --git a/code/tools/lcc/sparc/solaris/tst/8q.sbk b/code/tools/lcc/sparc/solaris/tst/8q.sbk new file mode 100644 index 0000000..e293f58 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/8q.sbk @@ -0,0 +1,144 @@ +.global main +.section ".text" +.align 4 +main: +save %sp,-96,%sp +mov %g0,%i5 +.L2: +sll %i5,2,%i4 +set 1,%i3 +set down,%i2 +st %i3,[%i4+%i2] +set up,%i2 +st %i3,[%i4+%i2] +.L3: +add %i5,1,%i5 +cmp %i5,15; bl .L2; nop +mov %g0,%i5 +.L6: +sll %i5,2,%i4 +set rows,%i3 +set 1,%i2 +st %i2,[%i4+%i3] +.L7: +add %i5,1,%i5 +cmp %i5,8; bl .L6; nop +mov %g0,%o0 +call queens; nop +mov %g0,%i0 +.L1: +ret; restore +.type main,#function +.size main,.-main +.global queens +.align 4 +queens: +save %sp,-96,%sp +mov %g0,%i5 +.L11: +sll %i5,2,%i3 +set rows,%i2 +ld [%i3+%i2],%i3 +cmp %i3,%g0; be .L15; nop +sub %i5,%i0,%i3 +sll %i3,2,%i3 +set up+28,%i2 +ld [%i3+%i2],%i3 +cmp %i3,%g0; be .L15; nop +add %i5,%i0,%i3 +sll %i3,2,%i3 +set down,%i2 +ld [%i3+%i2],%i3 +cmp %i3,%g0; be .L15; nop +add %i5,%i0,%i3 +sll %i3,2,%i3 +set down,%i2 +st %g0,[%i3+%i2] +sub %i5,%i0,%i3 +sll %i3,2,%i3 +set up+28,%i2 +st %g0,[%i3+%i2] +sll %i5,2,%i3 +set rows,%i2 +st %g0,[%i3+%i2] +sll %i0,2,%i4 +set x,%i3 +st %i5,[%i4+%i3] +cmp %i0,7; bne .L19; nop +call print; nop +ba .L20; nop +.L19: +add %i0,1,%o0 +call queens; nop +.L20: +set 1,%i4 +add %i5,%i0,%i3 +sll %i3,2,%i3 +set down,%i2 +st %i4,[%i3+%i2] +sub %i5,%i0,%i3 +sll %i3,2,%i3 +set up+28,%i2 +st %i4,[%i3+%i2] +sll %i5,2,%i3 +set rows,%i2 +st %i4,[%i3+%i2] +.L15: +.L12: +add %i5,1,%i5 +cmp %i5,8; bl .L11; nop +mov %g0,%i0 +.L10: +ret; restore +.type queens,#function +.size queens,.-queens +.global print +.align 4 +print: +save %sp,-96,%sp +mov %g0,%i5 +.L23: +set .L27,%o0 +sll %i5,2,%i4 +set x,%i3 +ld [%i4+%i3],%i4 +add %i4,49,%o1 +call printf; nop +.L24: +add %i5,1,%i5 +cmp %i5,8; bl .L23; nop +set .L28,%o0 +call printf; nop +mov %g0,%i0 +.L22: +ret; restore +.type print,#function +.size print,.-print +.section ".bss" +.global x +.type x,#object +.size x,32 +.common x,32,4 +.global rows +.type rows,#object +.size rows,32 +.common rows,32,4 +.global down +.type down,#object +.size down,60 +.common down,60,4 +.global up +.type up,#object +.size up,60 +.common up,60,4 +.section ".rodata" +.align 1 +.L28: +.byte 10 +.byte 0 +.align 1 +.L27: +.byte 37 +.byte 99 +.byte 32 +.byte 0 diff --git a/code/tools/lcc/sparc/solaris/tst/array.1bk b/code/tools/lcc/sparc/solaris/tst/array.1bk new file mode 100644 index 0000000..4d3817c --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/array.1bk @@ -0,0 +1,4 @@ + 0 1 2 3 1000 1001 1002 1003 2000 2001 2002 2003 + 0 1 2 3 1000 1001 1002 1003 2000 2001 2002 2003 + 0 1 2 3 1000 1001 1002 1003 2000 2001 2002 2003 + 0 1 2 3 1000 1001 1002 1003 2000 2001 2002 2003 diff --git a/code/tools/lcc/sparc/solaris/tst/array.2bk b/code/tools/lcc/sparc/solaris/tst/array.2bk new file mode 100644 index 0000000..c8cf31e --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/array.2bk @@ -0,0 +1,2 @@ +tst/array.c:33: warning: missing return value +tst/array.c:48: warning: missing return value diff --git a/code/tools/lcc/sparc/solaris/tst/array.sbk b/code/tools/lcc/sparc/solaris/tst/array.sbk new file mode 100644 index 0000000..8bb79c8 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/array.sbk @@ -0,0 +1,172 @@ +.global main +.section ".text" +.align 4 +main: +save %sp,-144,%sp +mov %g0,%i4 +.L2: +mov %g0,%i5 +.L6: +sll %i5,2,%i2 +sll %i4,4,%i1 +set x,%i0 +add %i1,%i0,%i1 +smul %i4,1000,%i0 +add %i0,%i5,%i0 +st %i0,[%i2+%i1] +.L7: +add %i5,1,%i5 +cmp %i5,4; bl .L6; nop +sll %i4,2,%i2 +set y,%i1 +sll %i4,4,%i0 +set x,%l7 +add %i0,%l7,%i0 +st %i0,[%i2+%i1] +.L3: +add %i4,1,%i4 +cmp %i4,3; bl .L2; nop +call f; nop +mov %g0,%i4 +.L10: +sll %i4,4,%i2 +add -48,%fp,%i1 +add %i2,%i1,%i2 +mov %i2,%i3 +sll %i4,2,%i1 +set y,%i0 +st %i2,[%i1+%i0] +mov %g0,%i5 +.L14: +sll %i5,2,%i2 +sll %i4,4,%i1 +set x,%i0 +add %i1,%i0,%i1 +ld [%i2+%i1],%i1 +st %i1,[%i2+%i3] +.L15: +add %i5,1,%i5 +cmp %i5,4; bl .L14; nop +.L11: +add %i4,1,%i4 +cmp %i4,3; bl .L10; nop +add -48,%fp,%o0 +set y,%o1 +call g; nop +mov %g0,%i0 +.L1: +ret; restore +.type main,#function +.size main,.-main +.global f +.align 4 +f: +save %sp,-96,%sp +mov %g0,%i4 +.L19: +mov %g0,%i5 +.L23: +set .L27,%o0 +sll %i5,2,%i3 +sll %i4,4,%i2 +set x,%i1 +add %i2,%i1,%i2 +ld [%i3+%i2],%o1 +call printf; nop +.L24: +add %i5,1,%i5 +cmp %i5,4; bl .L23; nop +.L20: +add %i4,1,%i4 +cmp %i4,3; bl .L19; nop +set .L28,%o0 +call printf; nop +mov %g0,%i4 +.L29: +mov %g0,%i5 +.L33: +set .L27,%o0 +sll %i5,2,%i3 +sll %i4,2,%i2 +set y,%i1 +ld [%i2+%i1],%i2 +ld [%i3+%i2],%o1 +call printf; nop +.L34: +add %i5,1,%i5 +cmp %i5,4; bl .L33; nop +.L30: +add %i4,1,%i4 +cmp %i4,3; bl .L29; nop +set .L28,%o0 +call printf; nop +mov %g0,%i0 +.L18: +ret; restore +.type f,#function +.size f,.-f +.global g +.align 4 +g: +save %sp,-96,%sp +mov %g0,%i4 +.L38: +mov %g0,%i5 +.L42: +set .L27,%o0 +sll %i5,2,%i3 +sll %i4,4,%i2 +add %i2,%i0,%i2 +ld [%i3+%i2],%o1 +call printf; nop +.L43: +add %i5,1,%i5 +cmp %i5,4; bl .L42; nop +.L39: +add %i4,1,%i4 +cmp %i4,3; bl .L38; nop +set .L28,%o0 +call printf; nop +mov %g0,%i4 +.L46: +mov %g0,%i5 +.L50: +set .L27,%o0 +sll %i5,2,%i3 +sll %i4,2,%i2 +ld [%i2+%i1],%i2 +ld [%i3+%i2],%o1 +call printf; nop +.L51: +add %i5,1,%i5 +cmp %i5,4; bl .L50; nop +.L47: +add %i4,1,%i4 +cmp %i4,3; bl .L46; nop +set .L28,%o0 +call printf; nop +mov %g0,%i0 +.L37: +ret; restore +.type g,#function +.size g,.-g +.section ".bss" +.global y +.type y,#object +.size y,12 +.common y,12,4 +.global x +.type x,#object +.size x,48 +.common x,48,4 +.section ".rodata" +.align 1 +.L28: +.byte 10 +.byte 0 +.align 1 +.L27: +.byte 32 +.byte 37 +.byte 100 +.byte 0 diff --git a/code/tools/lcc/sparc/solaris/tst/cf.1bk b/code/tools/lcc/sparc/solaris/tst/cf.1bk new file mode 100644 index 0000000..9e331c5 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/cf.1bk @@ -0,0 +1,51 @@ +char freq +011 8.1 +012 6.1 +040 11.9 +! 0.2 +" 1.5 +% 0.6 +& 0.4 +' 0.4 +( 2.9 +) 2.9 +* 0.8 ++ 1.3 +, 1.3 +- 0.4 +. 0.6 +/ 1.0 +0 2.5 +1 1.9 +2 0.6 +3 0.2 +7 0.4 +8 0.2 +; 3.8 +< 0.8 += 2.7 +> 0.2 +[ 1.5 +\ 0.8 +] 1.5 +a 3.1 +c 4.4 +e 2.3 +f 6.0 +g 1.3 +h 1.0 +i 5.0 +l 1.0 +m 0.2 +n 3.3 +o 2.1 +p 1.0 +q 0.4 +r 4.2 +s 0.6 +t 3.8 +u 1.2 +v 0.6 +w 0.2 +{ 0.6 +} 0.6 diff --git a/code/tools/lcc/sparc/solaris/tst/cf.2bk b/code/tools/lcc/sparc/solaris/tst/cf.2bk new file mode 100644 index 0000000..e69de29 diff --git a/code/tools/lcc/sparc/solaris/tst/cf.sbk b/code/tools/lcc/sparc/solaris/tst/cf.sbk new file mode 100644 index 0000000..8ac1a39 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/cf.sbk @@ -0,0 +1,143 @@ +.global main +.section ".text" +.align 4 +main: +save %sp,-96,%sp +cmp %i0,1; bg .L2; nop +set .L4,%i2 +ld [%i2],%f31 +st %f31,[%fp+-4] +ba .L3; nop +.L2: +ld [%i1+4],%o0 +call atof; nop +fmovs %f0,%f31 +set .L5,%i2 +ld [%i2],%f30 +fdivs %f31,%f30,%f31 +st %f31,[%fp+-4] +.L3: +mov %g0,%i5 +.L6: +mov %i5,%i2 +add %i2,1,%i5 +sll %i2,2,%i2 +set f,%l7 +set .L4,%l6 +ld [%l6],%f31 +st %f31,[%i2+%l7] +.L7: +cmp %i5,127; ble .L6; nop +mov %g0,%i4 +ba .L11; nop +.L10: +sll %i3,2,%i2 +set f,%l7 +add %i2,%l7,%i2 +ld [%i2],%f31 +set .L13,%l7 +ld [%l7],%f30 +fadds %f31,%f30,%f31 +st %f31,[%i2] +add %i4,1,%i4 +.L11: +call getchar; nop +mov %o0,%i3 +cmp %o0,-1; bne .L10; nop +set .L14,%o0 +call printf; nop +mov %g0,%i5 +.L15: +sll %i5,2,%i2 +set f,%l7 +ld [%i2+%l7],%f31 +set .L4,%i2 +ld [%i2],%f30 +fcmpes %f31,%f30; nop; fbue .L19; nop +st %i4,[%sp+64]; ld [%sp+64],%f30; fitos %f30,%f30 +fdivs %f31,%f30,%f31 +ld [%fp+-4],%f30 +fcmpes %f31,%f30; nop; fbul .L19; nop +cmp %i5,32; bg .L21; nop +set .L23,%o0 +mov %i5,%o1 +call printf; nop +ba .L22; nop +.L21: +set .L24,%o0 +mov %i5,%o1 +call printf; nop +.L22: +set .L25,%o0 +set .L5,%i2 +ld [%i2],%f31 +sll %i5,2,%i2 +set f,%l7 +ld [%i2+%l7],%f30 +fmuls %f31,%f30,%f31 +st %i4,[%sp+64]; ld [%sp+64],%f30; fitos %f30,%f30 +fdivs %f31,%f30,%f31 +fstod %f31,%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +.L19: +.L16: +add %i5,1,%i5 +cmp %i5,127; ble .L15; nop +mov %g0,%i0 +.L1: +ret; restore +.type main,#function +.size main,.-main +.section ".bss" +.global f +.type f,#object +.size f,512 +.common f,512,4 +.section ".rodata" +.align 1 +.L25: +.byte 9 +.byte 37 +.byte 46 +.byte 49 +.byte 102 +.byte 10 +.byte 0 +.align 1 +.L24: +.byte 37 +.byte 99 +.byte 0 +.align 1 +.L23: +.byte 37 +.byte 48 +.byte 51 +.byte 111 +.byte 0 +.align 1 +.L14: +.byte 99 +.byte 104 +.byte 97 +.byte 114 +.byte 9 +.byte 102 +.byte 114 +.byte 101 +.byte 113 +.byte 10 +.byte 0 +.align 4 +.L13: +.word 0x3f800000 +.align 4 +.L5: +.word 0x42c80000 +.align 4 +.L4: +.word 0x0 diff --git a/code/tools/lcc/sparc/solaris/tst/cq.1bk b/code/tools/lcc/sparc/solaris/tst/cq.1bk new file mode 100644 index 0000000..ec956b7 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/cq.1bk @@ -0,0 +1,48 @@ +Section s22 returned 0. +Decimal and octal/hex constants sometimes give + different results when assigned to longs. +Decimal and octal/hex constants sometimes give + different results when assigned to longs. +Section s241 returned 0. +Section s243 returned 0. +Section s244 returned 0. +Section s25 returned 0. + 8 bits in chars. + 32 bits in ints. + 16 bits in shorts. + 32 bits in longs. + 32 bits in unsigneds. + 32 bits in floats. + 64 bits in doubles. +1.192093e-07 is the least number that can be added to 1. (float). +2.220446e-16 is the least number that can be added to 1. (double). +Section s26 returned 0. +Section s4 returned 0. +Section s61 returned 0. +Section s626 returned 0. +Section s71 returned 0. +Section s72 returned 0. +Section s757 returned 0. +Section s7813 returned 0. +Section s714 returned 0. +Section s715 returned 0. +Register count for char is unreliable. +Register count for pointer is unreliable. +Register count for int is unreliable. +Section s81 returned 0. +Section s84 returned 0. +char alignment: 1 +short alignment: 2 +int alignment: 4 +long alignment: 4 +unsigned alignment: 4 +float alignment: 4 +double alignment: 8 +Sign extension in fields +Be especially careful with 1-bit fields! +Section s85 returned 0. +Section s86 returned 0. +Section s88 returned 0. +Section s9 returned 0. + +No errors detected. diff --git a/code/tools/lcc/sparc/solaris/tst/cq.2bk b/code/tools/lcc/sparc/solaris/tst/cq.2bk new file mode 100644 index 0000000..7c6ba5e --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/cq.2bk @@ -0,0 +1,25 @@ +tst/cq.c:394: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:394: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:394: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:395: warning: overflow in constant `4294967296' +tst/cq.c:395: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:395: warning: overflow in constant `040000000000' +tst/cq.c:395: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:395: warning: overflow in constant `0x100000000' +tst/cq.c:395: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:396: warning: overflow in constant `68719476735' +tst/cq.c:396: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:396: warning: overflow in constant `0777777777777' +tst/cq.c:396: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:396: warning: overflow in constant `0xfffffffff' +tst/cq.c:396: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:397: warning: overflow in constant `68719476736' +tst/cq.c:397: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:397: warning: overflow in constant `01000000000000' +tst/cq.c:397: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:397: warning: overflow in constant `0x1000000000' +tst/cq.c:397: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:533: warning: missing return value +tst/cq.c:1169: warning: missing return value +tst/cq.c:5294: warning: unreachable code +tst/cq.c:5303: warning: missing return value diff --git a/code/tools/lcc/sparc/solaris/tst/cq.sbk b/code/tools/lcc/sparc/solaris/tst/cq.sbk new file mode 100644 index 0000000..d688e5f --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/cq.sbk @@ -0,0 +1,13322 @@ +.section ".data" +.type .2,#object +.align 4 +.2: +.word s22 +.word s241 +.word s243 +.word s244 +.word s25 +.word s26 +.word s4 +.word s61 +.word s626 +.word s71 +.word s72 +.word s757 +.word s7813 +.word s714 +.word s715 +.word s81 +.word s84 +.word s85 +.word s86 +.word s88 +.word s9 +.section ".bss" +.size .2,84 +.type .3,#object +.size .3,68 +.local .3 +.common .3,68,4 +.type .4,#object +.size .4,4 +.local .4 +.common .4,4,4 +.global main +.section ".text" +.align 4 +main: +save %sp,-96,%sp +set .3+36,%i4 +set 1,%i3 +st %i3,[%i4] +set .3+40,%i4 +set 1,%i3 +st %i3,[%i4] +set .3+44,%i4 +set 1,%i3 +st %i3,[%i4] +set .3+48,%i4 +set 1,%i3 +st %i3,[%i4] +set .4,%i4 +set .3,%i3 +st %i3,[%i4] +mov %g0,%i5 +ba .L12; nop +.L9: +set .4,%i4 +ld [%i4],%o0 +sll %i5,2,%i4 +set .2,%i3 +ld [%i4+%i3],%i4 +call %i4; nop +set .3+52,%i3 +st %o0,[%i3] +set .3+56,%i4 +set .3+56,%i3 +ld [%i3],%i3 +set .3+52,%i2 +ld [%i2],%i2 +add %i3,%i2,%i3 +st %i3,[%i4] +set .3+36,%i4 +ld [%i4],%i4 +cmp %i4,0; be .L17; nop +set .L20,%o0 +set .3+60,%o1 +set .3+52,%i4 +ld [%i4],%o2 +call printf; nop +.L17: +.L10: +add %i5,1,%i5 +.L12: +mov %i5,%i4 +set 21,%i3 +cmp %i4,%i3; blu .L9; nop +set .3+56,%i4 +ld [%i4],%i4 +cmp %i4,0; bne .L23; nop +set .L26,%o0 +call printf; nop +ba .L24; nop +.L23: +set .L27,%o0 +call printf; nop +.L24: +mov %g0,%i0 +.L1: +ret; restore +.type main,#function +.size main,.-main +.section ".data" +.type .29,#object +.align 1 +.29: +.byte 115 +.byte 50 +.byte 50 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size .29,10 +.type .30,#object +.size .30,8 +.align 1 +.30: +.byte 115 +.byte 50 +.byte 50 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.global s22 +.section ".text" +.align 4 +s22: +save %sp,-96,%sp +mov %g0,%i3 +set .30,%i5 +add %i0,60,%i4 +.L31: +.L32: +mov %i4,%l4 +add %l4,1,%i4 +mov %i5,%l3 +add %l3,1,%i5 +ldsb [%l3],%l3 +stb %l3,[%l4] +sll %l3,8*(4-1),%l4; sra %l4,8*(4-1),%l4 +cmp %l4,0; bne .L31; nop +set 1,%i2 +set 2,%l7 +set 3,%l6 +set 4,%i1 +add %i2,%l7,%l4 +add %l4,%l6,%l4 +add %l4,%i1,%l4 +cmp %l4,10; be .L34; nop +add %i3,1,%i3 +ld [%i0+44],%l4 +cmp %l4,0; be .L36; nop +set .29,%o0 +set 1,%o1 +call printf; nop +.L36: +.L34: +set 2,%l5 +cmp %l5,%i2; bne .L38; nop +add %i3,4,%i3 +ld [%i0+44],%l4 +cmp %l4,0; be .L40; nop +set .29,%o0 +set 4,%o1 +call printf; nop +.L40: +.L38: +mov %i3,%i0 +.L28: +ret; restore +.type s22,#function +.size s22,.-s22 +.section ".data" +.type .43,#object +.align 1 +.43: +.byte 115 +.byte 50 +.byte 52 +.byte 49 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size .43,11 +.type .44,#object +.size .44,8 +.align 1 +.44: +.byte 115 +.byte 50 +.byte 52 +.byte 49 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.type .45,#object +.size .45,156 +.align 4 +.45: +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x0 +.word 0x6 +.word 0x0 +.word 0x8 +.word 0x0 +.word 0xc +.word 0x0 +.word 0x10 +.word 0x0 +.word 0x12 +.word 0x0 +.word 0x14 +.word 0x0 +.word 0x18 +.word 0x0 +.word 0x1c +.word 0x0 +.word 0x1e +.word 0x0 +.word 0x20 +.word 0x0 +.word 0x24 +.global s241 +.section ".text" +.align 4 +s241: +save %sp,-560,%sp +mov %g0,%i2 +mov %g0,%i1 +set .44,%i4 +add %i0,60,%i3 +.L46: +.L47: +mov %i3,%l7 +add %l7,1,%i3 +mov %i4,%l6 +add %l6,1,%i4 +ldsb [%l6],%l6 +stb %l6,[%l7] +sll %l6,8*(4-1),%l7; sra %l7,8*(4-1),%l7 +cmp %l7,0; bne .L46; nop +ba .L49; nop +add %i2,1,%i2 +ld [%i0+44],%l7 +cmp %l7,0; be .L51; nop +set .43,%o0 +set 1,%o1 +call printf; nop +.L51: +.L49: +ba .L53; nop +add %i2,2,%i2 +ld [%i0+44],%l7 +cmp %l7,0; be .L55; nop +set .43,%o0 +set 2,%o1 +call printf; nop +.L55: +.L53: +ba .L57; nop +add %i2,4,%i2 +ld [%i0+44],%l7 +cmp %l7,0; be .L59; nop +set .43,%o0 +set 4,%o1 +call printf; nop +.L59: +.L57: +ba .L61; nop +add %i2,8,%i2 +ld [%i0+44],%l7 +cmp %l7,0; be .L63; nop +set .43,%o0 +set 8,%o1 +call printf; nop +.L63: +.L61: +mov %g0,%i5 +.L65: +sll %i5,2,%l7 +set .45,%l6 +st %i5,[%l7+%l6] +.L66: +add %i5,1,%i5 +cmp %i5,17; bl .L65; nop +set 18,%i5 +.L69: +sll %i5,2,%l7 +set .45,%l6 +add %l7,%l6,%l7 +ld [%l7],%o0 +call pow2; nop +st %o0,[%l7] +sll %i5,2,%l7 +set .45-4,%l6 +set .45,%l5 +ld [%l7+%l5],%l5 +sub %l5,1,%l5 +st %l5,[%l7+%l6] +add %i5,2,%i5 +.L70: +cmp %i5,39; bl .L69; nop +st %g0,[%fp+-156] +st %g0,[%fp+-312] +st %g0,[%fp+-468] +set 1,%l7 +st %l7,[%fp+-152] +set 1,%l7 +st %l7,[%fp+-308] +set 1,%l7 +st %l7,[%fp+-464] +set 2,%l7 +st %l7,[%fp+-148] +set 2,%l7 +st %l7,[%fp+-304] +set 2,%l7 +st %l7,[%fp+-460] +set 3,%l7 +st %l7,[%fp+-144] +set 3,%l7 +st %l7,[%fp+-300] +set 3,%l7 +st %l7,[%fp+-456] +set 4,%l7 +st %l7,[%fp+-140] +set 4,%l7 +st %l7,[%fp+-296] +set 4,%l7 +st %l7,[%fp+-452] +set 5,%l7 +st %l7,[%fp+-136] +set 5,%l7 +st %l7,[%fp+-292] +set 5,%l7 +st %l7,[%fp+-448] +set 6,%l7 +st %l7,[%fp+-132] +set 6,%l7 +st %l7,[%fp+-288] +set 6,%l7 +st %l7,[%fp+-444] +set 7,%l7 +st %l7,[%fp+-128] +set 7,%l7 +st %l7,[%fp+-284] +set 7,%l7 +st %l7,[%fp+-440] +set 8,%l7 +st %l7,[%fp+-124] +set 8,%l7 +st %l7,[%fp+-280] +set 8,%l7 +st %l7,[%fp+-436] +set 9,%l7 +st %l7,[%fp+-120] +set 9,%l7 +st %l7,[%fp+-276] +set 9,%l7 +st %l7,[%fp+-432] +set 10,%l7 +st %l7,[%fp+-116] +set 10,%l7 +st %l7,[%fp+-272] +set 10,%l7 +st %l7,[%fp+-428] +set 11,%l7 +st %l7,[%fp+-112] +set 11,%l7 +st %l7,[%fp+-268] +set 11,%l7 +st %l7,[%fp+-424] +set 12,%l7 +st %l7,[%fp+-108] +set 12,%l7 +st %l7,[%fp+-264] +set 12,%l7 +st %l7,[%fp+-420] +set 13,%l7 +st %l7,[%fp+-104] +set 13,%l7 +st %l7,[%fp+-260] +set 13,%l7 +st %l7,[%fp+-416] +set 14,%l7 +st %l7,[%fp+-100] +set 14,%l7 +st %l7,[%fp+-256] +set 14,%l7 +st %l7,[%fp+-412] +set 15,%l7 +st %l7,[%fp+-96] +set 15,%l7 +st %l7,[%fp+-252] +set 15,%l7 +st %l7,[%fp+-408] +set 16,%l7 +st %l7,[%fp+-92] +set 16,%l7 +st %l7,[%fp+-248] +set 16,%l7 +st %l7,[%fp+-404] +set 63,%l7 +st %l7,[%fp+-88] +set 63,%l7 +st %l7,[%fp+-244] +set 63,%l7 +st %l7,[%fp+-400] +set 64,%l7 +st %l7,[%fp+-84] +set 64,%l7 +st %l7,[%fp+-240] +set 64,%l7 +st %l7,[%fp+-396] +set 255,%l7 +st %l7,[%fp+-80] +set 255,%l7 +st %l7,[%fp+-236] +set 255,%l7 +st %l7,[%fp+-392] +set 256,%l7 +st %l7,[%fp+-76] +set 256,%l7 +st %l7,[%fp+-232] +set 256,%l7 +st %l7,[%fp+-388] +set 4095,%l7 +st %l7,[%fp+-72] +set 4095,%l7 +st %l7,[%fp+-228] +set 4095,%l7 +st %l7,[%fp+-384] +set 4096,%l7 +st %l7,[%fp+-68] +set 4096,%l7 +st %l7,[%fp+-224] +set 4096,%l7 +st %l7,[%fp+-380] +set 65535,%l7 +st %l7,[%fp+-64] +set 65535,%l7 +st %l7,[%fp+-220] +set 65535,%l7 +st %l7,[%fp+-376] +set 65536,%l7 +st %l7,[%fp+-60] +set 65536,%l7 +st %l7,[%fp+-216] +set 65536,%l7 +st %l7,[%fp+-372] +set 262143,%l7 +st %l7,[%fp+-56] +set 262143,%l7 +st %l7,[%fp+-212] +set 262143,%l7 +st %l7,[%fp+-368] +set 262144,%l7 +st %l7,[%fp+-52] +set 262144,%l7 +st %l7,[%fp+-208] +set 262144,%l7 +st %l7,[%fp+-364] +set 1048575,%l7 +st %l7,[%fp+-48] +set 1048575,%l7 +st %l7,[%fp+-204] +set 1048575,%l7 +st %l7,[%fp+-360] +set 1048576,%l7 +st %l7,[%fp+-44] +set 1048576,%l7 +st %l7,[%fp+-200] +set 1048576,%l7 +st %l7,[%fp+-356] +set 16777215,%l7 +st %l7,[%fp+-40] +set 16777215,%l7 +st %l7,[%fp+-196] +set 16777215,%l7 +st %l7,[%fp+-352] +set 16777216,%l7 +st %l7,[%fp+-36] +set 16777216,%l7 +st %l7,[%fp+-192] +set 16777216,%l7 +st %l7,[%fp+-348] +set 268435455,%l7 +st %l7,[%fp+-32] +set 268435455,%l7 +st %l7,[%fp+-188] +set 268435455,%l7 +st %l7,[%fp+-344] +set 268435456,%l7 +st %l7,[%fp+-28] +set 268435456,%l7 +st %l7,[%fp+-184] +set 268435456,%l7 +st %l7,[%fp+-340] +set 1073741823,%l7 +st %l7,[%fp+-24] +set 1073741823,%l7 +st %l7,[%fp+-180] +set 1073741823,%l7 +st %l7,[%fp+-336] +set 1073741824,%l7 +st %l7,[%fp+-20] +set 1073741824,%l7 +st %l7,[%fp+-176] +set 1073741824,%l7 +st %l7,[%fp+-332] +set 0xffffffff,%l7 +st %l7,[%fp+-16] +set 0xffffffff,%l7 +st %l7,[%fp+-172] +set 0xffffffff,%l7 +st %l7,[%fp+-328] +set 0xffffffff,%l7 +st %l7,[%fp+-12] +set 0xffffffff,%l7 +st %l7,[%fp+-168] +set 0xffffffff,%l7 +st %l7,[%fp+-324] +set 0xffffffff,%l7 +st %l7,[%fp+-8] +set 0xffffffff,%l7 +st %l7,[%fp+-164] +set 0xffffffff,%l7 +st %l7,[%fp+-320] +set 0xffffffff,%l7 +st %l7,[%fp+-4] +set 0xffffffff,%l7 +st %l7,[%fp+-160] +set 0xffffffff,%l7 +st %l7,[%fp+-316] +mov %g0,%i5 +.L188: +sll %i5,2,%l7 +add -156,%fp,%l6 +ld [%l7+%l6],%l6 +set .45,%l5 +ld [%l7+%l5],%l5 +cmp %l5,%l6; bne .L195; nop +add -312,%fp,%l5 +ld [%l7+%l5],%l5 +cmp %l6,%l5; bne .L195; nop +add -468,%fp,%l6 +ld [%l7+%l6],%l7 +cmp %l5,%l7; be .L192; nop +.L195: +ld [%i0+40],%l7 +cmp %l7,0; be .L196; nop +set .L198,%o0 +call printf; nop +set .L199,%o0 +call printf; nop +.L196: +.L192: +.L189: +add %i5,1,%i5 +cmp %i5,39; bl .L188; nop +cmp %i1,0; be .L200; nop +set 16,%i2 +.L200: +mov %i2,%i0 +.L42: +ret; restore +.type s241,#function +.size s241,.-s241 +.global pow2 +.align 4 +pow2: +set 1,%o5 +ba .L204; nop +.L203: +sll %o5,1,%o5 +.L204: +mov %o0,%o4 +sub %o4,1,%o0 +cmp %o4,0; bne .L203; nop +mov %o5,%o0 +.L202: +retl; nop +.type pow2,#function +.size pow2,.-pow2 +.section ".data" +.type .207,#object +.align 1 +.207: +.byte 115 +.byte 50 +.byte 52 +.byte 51 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size .207,11 +.type .208,#object +.size .208,8 +.align 1 +.208: +.byte 115 +.byte 50 +.byte 52 +.byte 51 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.global s243 +.section ".text" +.align 4 +s243: +save %sp,-352,%sp +mov %g0,%i3 +set .208,%i5 +add %i0,60,%i4 +.L209: +.L210: +mov %i4,%i2 +add %i2,1,%i4 +mov %i5,%i1 +add %i1,1,%i5 +ldsb [%i1],%i1 +stb %i1,[%i2] +sll %i1,8*(4-1),%i2; sra %i2,8*(4-1),%i2 +cmp %i2,0; bne .L209; nop +add -256,%fp,%o0 +call zerofill; nop +set 1,%i2 +stb %i2,[%fp+-159] +set 1,%i2 +stb %i2,[%fp+-191] +set 1,%i2 +stb %i2,[%fp+-130] +set 1,%i2 +stb %i2,[%fp+-208] +set 1,%i2 +stb %i2,[%fp+-158] +set 1,%i2 +stb %i2,[%fp+-190] +set 1,%i2 +stb %i2,[%fp+-223] +set 1,%i2 +stb %i2,[%fp+-207] +set 1,%i2 +stb %i2,[%fp+-157] +set 1,%i2 +stb %i2,[%fp+-189] +set 1,%i2 +stb %i2,[%fp+-222] +set 1,%i2 +stb %i2,[%fp+-206] +set 1,%i2 +stb %i2,[%fp+-156] +set 1,%i2 +stb %i2,[%fp+-188] +set 1,%i2 +stb %i2,[%fp+-221] +set 1,%i2 +stb %i2,[%fp+-205] +set 1,%i2 +stb %i2,[%fp+-155] +set 1,%i2 +stb %i2,[%fp+-187] +set 1,%i2 +stb %i2,[%fp+-219] +set 1,%i2 +stb %i2,[%fp+-204] +set 1,%i2 +stb %i2,[%fp+-154] +set 1,%i2 +stb %i2,[%fp+-186] +set 1,%i2 +stb %i2,[%fp+-218] +set 1,%i2 +stb %i2,[%fp+-203] +set 1,%i2 +stb %i2,[%fp+-153] +set 1,%i2 +stb %i2,[%fp+-185] +set 1,%i2 +stb %i2,[%fp+-216] +set 1,%i2 +stb %i2,[%fp+-202] +set 1,%i2 +stb %i2,[%fp+-152] +set 1,%i2 +stb %i2,[%fp+-184] +set 1,%i2 +stb %i2,[%fp+-215] +set 1,%i2 +stb %i2,[%fp+-201] +set 1,%i2 +stb %i2,[%fp+-151] +set 1,%i2 +stb %i2,[%fp+-183] +set 1,%i2 +stb %i2,[%fp+-161] +set 1,%i2 +stb %i2,[%fp+-200] +set 1,%i2 +stb %i2,[%fp+-150] +set 1,%i2 +stb %i2,[%fp+-182] +set 1,%i2 +stb %i2,[%fp+-195] +set 1,%i2 +stb %i2,[%fp+-199] +set 1,%i2 +stb %i2,[%fp+-149] +set 1,%i2 +stb %i2,[%fp+-181] +set 1,%i2 +stb %i2,[%fp+-211] +set 1,%i2 +stb %i2,[%fp+-148] +set 1,%i2 +stb %i2,[%fp+-180] +set 1,%i2 +stb %i2,[%fp+-162] +set 1,%i2 +stb %i2,[%fp+-147] +set 1,%i2 +stb %i2,[%fp+-179] +set 1,%i2 +stb %i2,[%fp+-132] +set 1,%i2 +stb %i2,[%fp+-246] +set 1,%i2 +stb %i2,[%fp+-146] +set 1,%i2 +stb %i2,[%fp+-178] +set 1,%i2 +stb %i2,[%fp+-247] +set 1,%i2 +stb %i2,[%fp+-145] +set 1,%i2 +stb %i2,[%fp+-177] +set 1,%i2 +stb %i2,[%fp+-133] +set 1,%i2 +stb %i2,[%fp+-248] +set 1,%i2 +stb %i2,[%fp+-144] +set 1,%i2 +stb %i2,[%fp+-176] +set 1,%i2 +stb %i2,[%fp+-131] +set 1,%i2 +stb %i2,[%fp+-243] +set 1,%i2 +stb %i2,[%fp+-143] +set 1,%i2 +stb %i2,[%fp+-175] +set 1,%i2 +stb %i2,[%fp+-165] +set 1,%i2 +stb %i2,[%fp+-244] +set 1,%i2 +stb %i2,[%fp+-142] +set 1,%i2 +stb %i2,[%fp+-174] +set 1,%i2 +stb %i2,[%fp+-163] +set 1,%i2 +stb %i2,[%fp+-141] +set 1,%i2 +stb %i2,[%fp+-173] +set 1,%i2 +stb %i2,[%fp+-213] +set 1,%i2 +stb %i2,[%fp+-164] +set 1,%i2 +stb %i2,[%fp+-140] +set 1,%i2 +stb %i2,[%fp+-172] +set 1,%i2 +stb %i2,[%fp+-197] +set 1,%i2 +stb %i2,[%fp+-217] +set 1,%i2 +stb %i2,[%fp+-139] +set 1,%i2 +stb %i2,[%fp+-171] +set 1,%i2 +stb %i2,[%fp+-214] +set 1,%i2 +stb %i2,[%fp+-138] +set 1,%i2 +stb %i2,[%fp+-170] +set 1,%i2 +stb %i2,[%fp+-198] +set 1,%i2 +stb %i2,[%fp+-256] +stb %i2,[%fp+-137] +set 1,%i2 +stb %i2,[%fp+-169] +set 1,%i2 +stb %i2,[%fp+-196] +set 1,%i2 +stb %i2,[%fp+-224] +set 1,%i2 +stb %i2,[%fp+-136] +set 1,%i2 +stb %i2,[%fp+-168] +set 1,%i2 +stb %i2,[%fp+-194] +set 1,%i2 +stb %i2,[%fp+-135] +set 1,%i2 +stb %i2,[%fp+-167] +set 1,%i2 +stb %i2,[%fp+-212] +set 1,%i2 +stb %i2,[%fp+-134] +set 1,%i2 +stb %i2,[%fp+-166] +set 1,%i2 +stb %i2,[%fp+-210] +set 1,%i2 +stb %i2,[%fp+-193] +set 1,%i2 +stb %i2,[%fp+-209] +add -256,%fp,%o0 +call sumof; nop +cmp %o0,98; be .L309; nop +add %i3,1,%i3 +ld [%i0+44],%i2 +cmp %i2,0; be .L311; nop +set .207,%o0 +set 1,%o1 +call printf; nop +.L311: +.L309: +ba .L313; nop +add %i3,8,%i3 +ld [%i0+44],%i2 +cmp %i2,0; be .L315; nop +set .207,%o0 +set 8,%o1 +call printf; nop +.L315: +.L313: +mov %i3,%i0 +.L206: +ret; restore +.type s243,#function +.size s243,.-s243 +.global zerofill +.align 4 +zerofill: +mov %g0,%o5 +.L318: +mov %o0,%o4 +add %o4,1,%o0 +stb %g0,[%o4] +.L319: +add %o5,1,%o5 +cmp %o5,256; bl .L318; nop +mov %g0,%o0 +.L317: +retl; nop +.type zerofill,#function +.size zerofill,.-zerofill +.global sumof +.align 4 +sumof: +mov %o0,%o3 +mov %g0,%o5 +mov %g0,%o4 +.L323: +mov %o3,%o2 +add %o2,1,%o3 +ldsb [%o2],%o2 +add %o5,%o2,%o5 +.L324: +add %o4,1,%o4 +cmp %o4,256; bl .L323; nop +mov %o5,%o0 +.L322: +retl; nop +.type sumof,#function +.size sumof,.-sumof +.section ".data" +.type .328,#object +.align 1 +.328: +.byte 115 +.byte 50 +.byte 52 +.byte 52 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size .328,11 +.type .329,#object +.size .329,8 +.align 1 +.329: +.byte 115 +.byte 50 +.byte 52 +.byte 52 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.global s244 +.section ".text" +.align 4 +s244: +save %sp,-160,%sp +set .329,%i4 +add %i0,60,%i3 +.L330: +.L331: +mov %i3,%l7 +add %l7,1,%i3 +mov %i4,%l6 +add %l6,1,%i4 +ldsb [%l6],%l6 +stb %l6,[%l7] +sll %l6,8*(4-1),%l7; sra %l7,8*(4-1),%l7 +cmp %l7,0; bne .L330; nop +mov %g0,%i1 +mov %g0,%i2 +set .L333,%l7 +ld2 [%l7],%f30 +std %f30,[%fp+-64] +std %f30,[%fp+-56] +set .L333,%l7 +ld2 [%l7],%f30 +std %f30,[%fp+-48] +set .L333,%l7 +ld2 [%l7],%f30 +std %f30,[%fp+-40] +set .L333,%l7 +ld2 [%l7],%f30 +std %f30,[%fp+-32] +set .L333,%l7 +ld2 [%l7],%f30 +std %f30,[%fp+-24] +set .L333,%l7 +ld2 [%l7],%f30 +std %f30,[%fp+-16] +set .L333,%l7 +ld2 [%l7],%f30 +std %f30,[%fp+-8] +mov %g0,%i2 +mov %g0,%i5 +.L341: +sll %i5,3,%l7 +add -64,%fp,%l6 +add %l7,%l6,%l6 +ld2 [%l6],%f30 +add -56,%fp,%l6 +add %l7,%l6,%l7 +ld2 [%l7],%f28 +fcmped %f30,%f28; nop; fbue .L345; nop +set 1,%i2 +.L345: +.L342: +add %i5,1,%i5 +cmp %i5,7; bl .L341; nop +cmp %i2,0; be .L348; nop +ld [%i0+44],%l7 +cmp %l7,0; be .L350; nop +set .328,%o0 +set 1,%o1 +call printf; nop +.L350: +add %i1,1,%i1 +.L348: +ba .L352; nop +ld [%i0+44],%l7 +cmp %l7,0; be .L354; nop +set .328,%o0 +set 2,%o1 +call printf; nop +.L354: +add %i1,2,%i1 +.L352: +mov %i1,%i0 +.L327: +ret; restore +.type s244,#function +.size s244,.-s244 +.section ".data" +.type .357,#object +.align 1 +.357: +.byte 115 +.byte 50 +.byte 53 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size .357,10 +.type .358,#object +.size .358,8 +.align 1 +.358: +.byte 115 +.byte 50 +.byte 53 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.global s25 +.section ".text" +.align 4 +s25: +save %sp,-96,%sp +set .358,%i2 +add %i0,60,%i1 +.L359: +.L360: +mov %i1,%l5 +add %l5,1,%i1 +mov %i2,%l4 +add %l4,1,%i2 +ldsb [%l4],%l4 +stb %l4,[%l5] +sll %l4,8*(4-1),%l5; sra %l5,8*(4-1),%l5 +cmp %l5,0; bne .L359; nop +mov %g0,%l7 +set .L362,%i4 +ldsb [%i4+1],%l5 +ldsb [%i4],%l4 +cmp %l4,%l5; bne .L366; nop +ldsb [%i4+2],%l4 +cmp %l5,%l4; bne .L366; nop +cmp %l4,46; be .L363; nop +.L366: +add %l7,1,%l7 +ld [%i0+44],%l5 +cmp %l5,0; be .L367; nop +set .357,%o0 +set 1,%o1 +call printf; nop +.L367: +.L363: +ldsb [%i4+3],%l5 +cmp %l5,0; be .L369; nop +add %l7,4,%l7 +ld [%i0+44],%l5 +cmp %l5,0; be .L371; nop +set .357,%o0 +set 4,%o1 +call printf; nop +.L371: +.L369: +set .L375+1,%l5 +ldsb [%l5],%l5 +cmp %l5,34; be .L373; nop +add %l7,8,%l7 +ld [%i0+44],%l5 +cmp %l5,0; be .L377; nop +set .357,%o0 +set 8,%o1 +call printf; nop +.L377: +.L373: +set .L379,%i4 +ldsb [%i4],%l5 +cmp %l5,10; bne .L387; nop +ldsb [%i4+1],%l5 +cmp %l5,9; bne .L387; nop +ldsb [%i4+2],%l5 +cmp %l5,8; bne .L387; nop +ldsb [%i4+3],%l5 +cmp %l5,13; bne .L387; nop +ldsb [%i4+4],%l5 +cmp %l5,12; bne .L387; nop +ldsb [%i4+5],%l5 +cmp %l5,92; bne .L387; nop +ldsb [%i4+6],%l5 +cmp %l5,39; be .L380; nop +.L387: +add %l7,16,%l7 +ld [%i0+44],%l5 +cmp %l5,0; be .L388; nop +set .357,%o0 +set 16,%o1 +call printf; nop +.L388: +.L380: +set .L390,%l5 +mov %l5,%i3 +mov %l5,%i4 +mov %g0,%l6 +mov %g0,%i5 +ba .L394; nop +.L391: +ldsb [%i5+%i4],%l5 +ldsb [%i5+%i3],%l4 +cmp %l5,%l4; be .L395; nop +set 1,%l6 +.L395: +.L392: +add %i5,1,%i5 +.L394: +mov %i5,%l5 +set 7,%l4 +cmp %l5,%l4; blu .L391; nop +cmp %l6,0; be .L397; nop +add %l7,32,%l7 +ld [%i0+44],%l5 +cmp %l5,0; be .L399; nop +set .357,%o0 +set 32,%o1 +call printf; nop +.L399: +.L397: +mov %l7,%i0 +.L356: +ret; restore +.type s25,#function +.size s25,.-s25 +.section ".data" +.type .402,#object +.size .402,8 +.align 1 +.402: +.byte 115 +.byte 50 +.byte 54 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.type .403,#object +.align 1 +.403: +.byte 37 +.byte 51 +.byte 100 +.byte 32 +.byte 98 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 105 +.byte 110 +.byte 32 +.byte 37 +.byte 115 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.size .403,18 +.type .404,#object +.align 1 +.404: +.byte 37 +.byte 101 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 108 +.byte 101 +.byte 97 +.byte 115 +.byte 116 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 99 +.byte 97 +.byte 110 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 97 +.byte 100 +.byte 100 +.byte 101 +.byte 100 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 49 +.byte 46 +.byte 32 +.byte 40 +.byte 37 +.byte 115 +.byte 41 +.byte 46 +.byte 10 +.byte 0 +.size .404,54 +.global s26 +.section ".text" +.align 4 +s26: +save %sp,-128,%sp +set .402,%i4 +add %i0,60,%i3 +.L405: +.L406: +mov %i3,%i1 +add %i1,1,%i3 +mov %i4,%l7 +add %l7,1,%i4 +ldsb [%l7],%l7 +stb %l7,[%i1] +sll %l7,8*(4-1),%i1; sra %i1,8*(4-1),%i1 +cmp %i1,0; bne .L405; nop +st %g0,[%i0] +mov %g0,%i2 +set 1,%i5 +ba .L409; nop +.L408: +sll %i5,8*(4-1),%i1; sra %i1,8*(4-1),%i1 +sll %i1,1,%i1 +mov %i1,%i5 +ld [%i0],%i1 +add %i1,1,%i1 +st %i1,[%i0] +.L409: +sll %i2,8*(4-1),%i1; sra %i1,8*(4-1),%i1 +sll %i5,8*(4-1),%l7; sra %l7,8*(4-1),%l7 +cmp %i1,%l7; bne .L408; nop +ld [%i0],%i1 +sll %i1,2,%i1 +st %i1,[%i0+4] +ld [%i0],%i1 +sll %i1,1,%i1 +st %i1,[%i0+8] +ld [%i0],%i1 +sll %i1,2,%i1 +st %i1,[%i0+12] +ld [%i0],%i1 +sll %i1,2,%i1 +st %i1,[%i0+16] +ld [%i0],%i1 +sll %i1,2,%i1 +st %i1,[%i0+20] +ld [%i0],%i1 +sll %i1,3,%i1 +st %i1,[%i0+24] +set .L411,%i1 +ld [%i1],%f31 +st %f31,[%fp+-12] +st %f31,[%fp+-4] +set .L412,%i1 +ld [%i1],%f31 +st %f31,[%fp+-8] +ba .L414; nop +.L413: +ld [%fp+-4],%f31 +ld [%fp+-12],%f30 +fadds %f30,%f31,%f30 +st %f30,[%fp+-8] +fstod %f31,%f30 +set .L416,%i1 +ld2 [%i1],%f28 +fdivd %f30,%f28,%f30 +fdtos %f30,%f31 +st %f31,[%fp+-4] +.L414: +ld [%fp+-8],%f31 +ld [%fp+-12],%f30 +fcmpes %f31,%f30; nop; fbne .L413; nop +set .L417,%i1 +ld2 [%i1],%f30 +ld [%fp+-4],%f29 +fstod %f29,%f28 +fmuld %f30,%f28,%f30 +fdtos %f30,%f31 +st %f31,[%i0+28] +set .L418,%i1 +ld2 [%i1],%f30 +std %f30,[%fp+-32] +set .L411,%i1 +ld [%i1],%f31 +st %f31,[%fp+-4] +set .L419,%i1 +ld2 [%i1],%f30 +std %f30,[%fp+-24] +ba .L421; nop +.L420: +ld [%fp+-4],%f31 +fstod %f31,%f30 +ldd [%fp+-32],%f28 +faddd %f28,%f30,%f28 +std %f28,[%fp+-24] +set .L416,%i1 +ld2 [%i1],%f28 +fdivd %f30,%f28,%f30 +fdtos %f30,%f31 +st %f31,[%fp+-4] +.L421: +ldd [%fp+-24],%f30 +ldd [%fp+-32],%f28 +fcmped %f30,%f28; nop; fbne .L420; nop +set .L417,%i1 +ld2 [%i1],%f30 +ld [%fp+-4],%f29 +fstod %f29,%f28 +fmuld %f30,%f28,%f30 +fdtos %f30,%f31 +st %f31,[%i0+32] +ld [%i0+40],%i1 +cmp %i1,0; be .L423; nop +set .403,%o0 +ld [%i0],%o1 +set .L425,%o2 +call printf; nop +set .403,%o0 +ld [%i0+4],%o1 +set .L426,%o2 +call printf; nop +set .403,%o0 +ld [%i0+8],%o1 +set .L427,%o2 +call printf; nop +set .403,%o0 +ld [%i0+12],%o1 +set .L428,%o2 +call printf; nop +set .403,%o0 +ld [%i0+16],%o1 +set .L429,%o2 +call printf; nop +set .403,%o0 +ld [%i0+20],%o1 +set .L430,%o2 +call printf; nop +set .403,%o0 +ld [%i0+24],%o1 +set .L431,%o2 +call printf; nop +set .404,%o0 +ld [%i0+28],%f31 +fstod %f31,%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +set .L430,%o3 +call printf; nop +set .404,%o0 +ld [%i0+32],%f31 +fstod %f31,%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +set .L431,%o3 +call printf; nop +.L423: +mov %g0,%i0 +.L401: +ret; restore +.type s26,#function +.size s26,.-s26 +.section ".data" +.type .433,#object +.align 1 +.433: +.byte 115 +.byte 52 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size .433,9 +.type .434,#object +.size .434,8 +.align 1 +.434: +.byte 115 +.byte 52 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.global s4 +.section ".text" +.align 4 +s4: +save %sp,-96,%sp +mov %g0,%l7 +set .434,%i2 +add %i0,60,%i1 +.L435: +.L436: +mov %i1,%l3 +add %l3,1,%i1 +mov %i2,%l2 +add %l2,1,%i2 +ldsb [%l2],%l2 +stb %l2,[%l3] +sll %l2,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,0; bne .L435; nop +mov %g0,%i5 +.L438: +mov %i5,%o0 +call svtest; nop +mov %o0,%l3 +call zero; nop +cmp %l3,%o0; be .L442; nop +set 1,%l7 +ld [%i0+44],%l3 +cmp %l3,0; be .L444; nop +set .433,%o0 +set 1,%o1 +call printf; nop +.L444: +.L442: +.L439: +add %i5,1,%i5 +cmp %i5,3; bl .L438; nop +call setev; nop +call testev; nop +cmp %o0,0; be .L446; nop +add %l7,2,%l7 +ld [%i0+44],%l3 +cmp %l3,0; be .L448; nop +set .433,%o0 +set 2,%o1 +call printf; nop +.L448: +.L446: +ba .L450; nop +add %l7,4,%l7 +ld [%i0+44],%l3 +cmp %l3,0; be .L452; nop +set .433,%o0 +set 4,%o1 +call printf; nop +.L452: +.L450: +set 0xffffffff,%i4 +set 1,%i3 +mov %g0,%i5 +ba .L457; nop +.L454: +and %i3,%i4,%i3 +srl %i4,1,%i4 +.L455: +add %i5,1,%i5 +.L457: +mov %i5,%l3 +ld [%i0],%l2 +sll %l2,2,%l2 +cmp %l3,%l2; blu .L454; nop +set 1,%l3 +cmp %i3,%l3; bne .L460; nop +cmp %i4,%g0; be .L458; nop +.L460: +add %l7,8,%l7 +ld [%i0+44],%l3 +cmp %l3,0; be .L461; nop +set .433,%o0 +set 8,%o1 +call printf; nop +.L461: +.L458: +mov %l7,%i0 +.L432: +ret; restore +.type s4,#function +.size s4,.-s4 +.section ".bss" +.type .464,#object +.size .464,4 +.local .464 +.common .464,4,4 +.global svtest +.section ".text" +.align 4 +svtest: +cmp %o0,0; be .L467; nop +cmp %o0,1; be .L468; nop +cmp %o0,2; be .L471; nop +ba .L465; nop +.L467: +set .464,%o4 +set 1978,%o3 +st %o3,[%o4] +mov %g0,%o5 +ba .L466; nop +.L468: +set .464,%o4 +ld [%o4],%o4 +cmp %o4,1978; be .L469; nop +set 1,%o5 +ba .L466; nop +.L469: +set .464,%o4 +set 1929,%o3 +st %o3,[%o4] +mov %g0,%o5 +ba .L466; nop +.L471: +set .464,%o4 +ld [%o4],%o4 +cmp %o4,1929; be .L472; nop +set 1,%o5 +ba .L466; nop +.L472: +mov %g0,%o5 +.L465: +.L466: +mov %o5,%o0 +.L463: +retl; nop +.type svtest,#function +.size svtest,.-svtest +.section ".bss" +.type .475,#object +.size .475,4 +.local .475 +.common .475,4,4 +.global zero +.section ".text" +.align 4 +zero: +set .475,%o4 +set 2,%o3 +st %o3,[%o4] +mov %g0,%o5 +mov %o5,%o0 +.L474: +retl; nop +.type zero,#function +.size zero,.-zero +.global testev +.align 4 +testev: +set extvar,%o5 +ld [%o5],%o5 +cmp %o5,1066; be .L477; nop +set 1,%o0 +ba .L476; nop +.L477: +mov %g0,%o0 +.L476: +retl; nop +.type testev,#function +.size testev,.-testev +.section ".data" +.type .480,#object +.align 1 +.480: +.byte 115 +.byte 54 +.byte 49 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size .480,10 +.type .481,#object +.size .481,8 +.align 1 +.481: +.byte 115 +.byte 54 +.byte 49 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.type .482,#object +.align 1 +.482: +.byte 65 +.byte 66 +.byte 67 +.byte 68 +.byte 69 +.byte 70 +.byte 71 +.byte 72 +.byte 73 +.byte 74 +.byte 75 +.byte 76 +.byte 77 +.byte 78 +.byte 79 +.byte 80 +.byte 81 +.byte 82 +.byte 83 +.byte 84 +.byte 85 +.byte 86 +.byte 87 +.byte 88 +.byte 89 +.byte 90 +.byte 0 +.size .482,27 +.type .483,#object +.align 1 +.483: +.byte 97 +.byte 98 +.byte 99 +.byte 100 +.byte 101 +.byte 102 +.byte 103 +.byte 104 +.byte 105 +.byte 106 +.byte 107 +.byte 108 +.byte 109 +.byte 110 +.byte 111 +.byte 112 +.byte 113 +.byte 114 +.byte 115 +.byte 116 +.byte 117 +.byte 118 +.byte 119 +.byte 120 +.byte 121 +.byte 122 +.byte 0 +.size .483,27 +.type .484,#object +.align 1 +.484: +.byte 48 +.byte 49 +.byte 50 +.byte 51 +.byte 52 +.byte 53 +.byte 54 +.byte 55 +.byte 56 +.byte 57 +.byte 0 +.size .484,11 +.type .485,#object +.align 1 +.485: +.byte 126 +.byte 33 +.byte 34 +.byte 35 +.byte 37 +.byte 38 +.byte 40 +.byte 41 +.byte 95 +.byte 61 +.byte 45 +.byte 94 +.byte 124 +.byte 123 +.byte 125 +.byte 91 +.byte 93 +.byte 43 +.byte 59 +.byte 42 +.byte 58 +.byte 60 +.byte 62 +.byte 44 +.byte 46 +.byte 63 +.byte 47 +.byte 0 +.size .485,28 +.type .486,#object +.align 1 +.486: +.byte 10 +.byte 9 +.byte 8 +.byte 13 +.byte 12 +.byte 92 +.byte 39 +.byte 0 +.size .486,8 +.type .487,#object +.align 1 +.487: +.byte 32 +.byte 0 +.byte 0 +.size .487,3 +.global s61 +.section ".text" +.align 4 +s61: +save %sp,-120,%sp +set .481,%i3 +add %i0,60,%i2 +mov %g0,%l7 +.L488: +.L489: +mov %i2,%l3 +add %l3,1,%i2 +mov %i3,%l2 +add %l2,1,%i3 +ldsb [%l2],%l2 +stb %l2,[%l3] +sll %l2,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,0; bne .L488; nop +set -19,%l4 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +st %l3,[%fp+-28] +ld [%fp+-28],%l3 +cmp %l3,-19; be .L491; nop +add %l7,1,%l7 +ld [%i0+44],%l3 +cmp %l3,0; be .L493; nop +set .480,%o0 +set 1,%o1 +call printf; nop +.L493: +.L491: +set .482,%l3 +st %l3,[%fp+-24] +set .483,%l3 +st %l3,[%fp+-20] +set .484,%l3 +st %l3,[%fp+-16] +set .485,%l3 +st %l3,[%fp+-12] +set .486,%l3 +st %l3,[%fp+-8] +set .487,%l3 +st %l3,[%fp+-4] +mov %g0,%i4 +mov %g0,%i5 +ba .L505; nop +.L504: +sll %i5,2,%l3 +add -24,%fp,%l2 +add %l3,%l2,%l3 +ld [%l3],%l2 +add %l2,1,%l1 +st %l1,[%l3] +ldsb [%l2],%l3 +cmp %l3,0; bge .L507; nop +set 1,%i4 +.L507: +.L505: +sll %i5,2,%l3 +add -24,%fp,%l2 +ld [%l3+%l2],%l3 +ldsb [%l3],%l3 +cmp %l3,0; bne .L504; nop +.L501: +add %i5,1,%i5 +cmp %i5,6; bl .L505; nop +cmp %i4,0; be .L509; nop +add %l7,2,%l7 +ld [%i0+44],%l3 +cmp %l3,0; be .L511; nop +set .480,%o0 +set 2,%o1 +call printf; nop +.L511: +.L509: +set 1048579,%i1 +mov %i1,%l6 +mov %i1,%l5 +sll %l6,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,%i1; be .L516; nop +cmp %l3,3; bne .L515; nop +.L516: +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,%i1; be .L513; nop +cmp %l3,3; be .L513; nop +.L515: +add %l7,8,%l7 +ld [%i0+44],%l3 +cmp %l3,0; be .L517; nop +set .480,%o0 +set 8,%o1 +call printf; nop +.L517: +.L513: +mov %l7,%i0 +.L479: +ret; restore +.type s61,#function +.size s61,.-s61 +.section ".data" +.type .520,#object +.align 1 +.520: +.byte 115 +.byte 54 +.byte 50 +.byte 54 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size .520,11 +.type .521,#object +.size .521,8 +.align 1 +.521: +.byte 115 +.byte 54 +.byte 50 +.byte 54 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.global s626 +.section ".text" +.align 4 +s626: +save %sp,-176,%sp +set .521,%i2 +add %i0,60,%i1 +st %g0,[%fp+-76] +.L522: +.L523: +mov %i1,%l3 +add %l3,1,%i1 +mov %i2,%l2 +add %l2,1,%i2 +ldsb [%l2],%l2 +stb %l2,[%l3] +sll %l2,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,0; bne .L522; nop +set .L411,%l3 +ld [%l3],%f31 +st %f31,[%fp+-32] +set 1,%l3 +mov %l3,%l7 +mov %l3,%i4 +mov %g0,%i5 +ba .L528; nop +.L525: +set .L529,%l3 +ld [%l3],%f31 +ld [%fp+-32],%f30 +fmuls %f31,%f30,%f31 +st %f31,[%fp+-32] +sll %i4,1,%l3 +or %l3,%l7,%i4 +.L526: +add %i5,1,%i5 +.L528: +ld [%i0+12],%l3 +sub %l3,2,%l3 +cmp %i5,%l3; bl .L525; nop +st %i4,[%sp+64]; ld [%sp+64],%f31; fitos %f31,%f31 +st %f31,[%fp+-84] +ld [%fp+-32],%f31 +ld [%fp+-84],%f30 +fsubs %f31,%f30,%f30 +fdivs %f30,%f31,%f31 +st %f31,[%fp+-32] +ld [%fp+-32],%f31 +fstod %f31,%f30 +set .L416,%l3 +ld2 [%l3],%f28 +ld [%i0+28],%f27 +fstod %f27,%f26 +fmuld %f28,%f26,%f28 +fcmped %f30,%f28; nop; fbule .L530; nop +ld [%fp+-76],%l3 +add %l3,2,%l3 +st %l3,[%fp+-76] +ld [%i0+44],%l3 +cmp %l3,0; be .L532; nop +set .520,%o0 +set 2,%o1 +call printf; nop +.L532: +.L530: +set 125,%l5 +set 125,%l4 +set 125,%l3 +st %l3,[%fp+-48] +set 15625,%l3 +st %l3,[%fp+-68] +set 125,%l3 +st %l3,[%fp+-52] +set 15625,%l3 +st %l3,[%fp+-72] +set 125,%l6 +set 15625,%l3 +st %l3,[%fp+-80] +set .L534,%l3 +ld [%l3],%f31 +st %f31,[%fp+-44] +set .L535,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-64] +set .L536,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +mov %g0,%i5 +.L537: +add -28,%fp,%l3 +stb %g0,[%i5+%l3] +.L538: +add %i5,1,%i5 +cmp %i5,28; bl .L537; nop +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +smul %l3,%l3,%l3 +ld [%fp+-68],%l2 +cmp %l3,%l2; be .L541; nop +set 1,%l3 +stb %l3,[%fp+-28] +.L541: +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +sll %l5,8*(4-1),%l2; sra %l2,8*(4-1),%l2 +smul %l2,%l3,%l3 +ld [%fp+-68],%l2 +cmp %l3,%l2; be .L543; nop +set 1,%l3 +stb %l3,[%fp+-27] +.L543: +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +smul %l3,%l3,%l3 +ld [%fp+-68],%l2 +cmp %l3,%l2; be .L546; nop +set 1,%l3 +stb %l3,[%fp+-26] +.L546: +ld [%fp+-48],%l3 +sll %l5,8*(4-1),%l2; sra %l2,8*(4-1),%l2 +smul %l2,%l3,%l3 +ld [%fp+-68],%l2 +cmp %l3,%l2; be .L549; nop +set 1,%l3 +stb %l3,[%fp+-25] +.L549: +ld [%fp+-48],%l3 +sll %l4,8*(4-2),%l2; sra %l2,8*(4-2),%l2 +smul %l2,%l3,%l3 +ld [%fp+-68],%l2 +cmp %l3,%l2; be .L552; nop +set 1,%l3 +stb %l3,[%fp+-24] +.L552: +ld [%fp+-48],%l3 +smul %l3,%l3,%l3 +ld [%fp+-68],%l2 +cmp %l3,%l2; be .L555; nop +set 1,%l3 +stb %l3,[%fp+-23] +.L555: +ld [%fp+-52],%l3 +sll %l5,8*(4-1),%l2; sra %l2,8*(4-1),%l2 +umul %l2,%l3,%l3 +ld [%fp+-72],%l2 +cmp %l3,%l2; be .L558; nop +set 1,%l3 +stb %l3,[%fp+-22] +.L558: +ld [%fp+-52],%l3 +sll %l4,8*(4-2),%l2; sra %l2,8*(4-2),%l2 +umul %l2,%l3,%l3 +ld [%fp+-72],%l2 +cmp %l3,%l2; be .L561; nop +set 1,%l3 +stb %l3,[%fp+-21] +.L561: +ld [%fp+-52],%l3 +ld [%fp+-48],%l2 +umul %l2,%l3,%l3 +ld [%fp+-72],%l2 +cmp %l3,%l2; be .L564; nop +set 1,%l3 +stb %l3,[%fp+-20] +.L564: +ld [%fp+-52],%l3 +umul %l3,%l3,%l3 +ld [%fp+-72],%l2 +cmp %l3,%l2; be .L567; nop +set 1,%l3 +stb %l3,[%fp+-19] +.L567: +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +smul %l3,%l6,%l3 +ld [%fp+-80],%l2 +cmp %l3,%l2; be .L570; nop +set 1,%l3 +stb %l3,[%fp+-18] +.L570: +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +smul %l3,%l6,%l3 +ld [%fp+-80],%l2 +cmp %l3,%l2; be .L573; nop +set 1,%l3 +stb %l3,[%fp+-17] +.L573: +ld [%fp+-48],%l3 +smul %l3,%l6,%l3 +ld [%fp+-80],%l2 +cmp %l3,%l2; be .L576; nop +set 1,%l3 +stb %l3,[%fp+-16] +.L576: +mov %l6,%l3 +ld [%fp+-52],%l2 +umul %l2,%l3,%l3 +ld [%fp+-72],%l2 +cmp %l3,%l2; be .L579; nop +set 1,%l3 +stb %l3,[%fp+-15] +.L579: +smul %l6,%l6,%l3 +ld [%fp+-80],%l2 +cmp %l3,%l2; be .L582; nop +set 1,%l3 +stb %l3,[%fp+-14] +.L582: +ld [%fp+-44],%f31 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f30; fitos %f30,%f30 +fmuls %f31,%f30,%f31 +fstod %f31,%f30 +ldd [%fp+-40],%f28 +fcmped %f30,%f28; nop; fbue .L585; nop +set 1,%l3 +stb %l3,[%fp+-13] +.L585: +ld [%fp+-44],%f31 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f30; fitos %f30,%f30 +fmuls %f31,%f30,%f31 +fstod %f31,%f30 +ldd [%fp+-40],%f28 +fcmped %f30,%f28; nop; fbue .L588; nop +set 1,%l3 +stb %l3,[%fp+-12] +.L588: +ld [%fp+-44],%f31 +ld [%fp+-48],%l3 +st %l3,[%sp+64]; ld [%sp+64],%f30; fitos %f30,%f30 +fmuls %f31,%f30,%f31 +fstod %f31,%f30 +ldd [%fp+-40],%f28 +fcmped %f30,%f28; nop; fbue .L591; nop +set 1,%l3 +stb %l3,[%fp+-11] +.L591: +ld [%fp+-52],%l3 +ld [%fp+-44],%f31 +set .L596,%l2 +ld2 [%l2],%f28 +srl %l3,1,%l2 +st %l2,[%sp+64]; ld [%sp+64],%f26; fitod %f26,%f26 +fmuld %f28,%f26,%f28 +set 1,%l2 +and %l3,%l2,%l3 +st %l3,[%sp+64]; ld [%sp+64],%f26; fitod %f26,%f26 +faddd %f28,%f26,%f28 +fdtos %f28,%f30 +fmuls %f31,%f30,%f31 +fstod %f31,%f30 +ldd [%fp+-40],%f28 +fcmped %f30,%f28; nop; fbue .L594; nop +set 1,%l3 +stb %l3,[%fp+-10] +.L594: +ld [%fp+-44],%f31 +st %l6,[%sp+64]; ld [%sp+64],%f30; fitos %f30,%f30 +fmuls %f31,%f30,%f31 +fstod %f31,%f30 +ldd [%fp+-40],%f28 +fcmped %f30,%f28; nop; fbue .L598; nop +set 1,%l3 +stb %l3,[%fp+-9] +.L598: +ld [%fp+-44],%f31 +fmuls %f31,%f31,%f31 +fstod %f31,%f30 +ldd [%fp+-40],%f28 +fcmped %f30,%f28; nop; fbue .L601; nop +set 1,%l3 +stb %l3,[%fp+-8] +.L601: +ldd [%fp+-64],%f30 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +fmuld %f30,%f28,%f30 +ldd [%fp+-40],%f28 +fcmped %f30,%f28; nop; fbue .L604; nop +set 1,%l3 +stb %l3,[%fp+-7] +.L604: +ldd [%fp+-64],%f30 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +fmuld %f30,%f28,%f30 +ldd [%fp+-40],%f28 +fcmped %f30,%f28; nop; fbue .L607; nop +set 1,%l3 +stb %l3,[%fp+-6] +.L607: +ldd [%fp+-64],%f30 +ld [%fp+-48],%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +fmuld %f30,%f28,%f30 +ldd [%fp+-40],%f28 +fcmped %f30,%f28; nop; fbue .L610; nop +set 1,%l3 +stb %l3,[%fp+-5] +.L610: +ld [%fp+-52],%l3 +ldd [%fp+-64],%f30 +set .L596,%l2 +ld2 [%l2],%f28 +srl %l3,1,%l2 +st %l2,[%sp+64]; ld [%sp+64],%f26; fitod %f26,%f26 +fmuld %f28,%f26,%f28 +set 1,%l2 +and %l3,%l2,%l3 +st %l3,[%sp+64]; ld [%sp+64],%f26; fitod %f26,%f26 +faddd %f28,%f26,%f28 +fmuld %f30,%f28,%f30 +ldd [%fp+-40],%f28 +fcmped %f30,%f28; nop; fbue .L613; nop +set 1,%l3 +stb %l3,[%fp+-4] +.L613: +ldd [%fp+-64],%f30 +st %l6,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +fmuld %f30,%f28,%f30 +ldd [%fp+-40],%f28 +fcmped %f30,%f28; nop; fbue .L616; nop +set 1,%l3 +stb %l3,[%fp+-3] +.L616: +ldd [%fp+-64],%f30 +ld [%fp+-44],%f29 +fstod %f29,%f28 +fmuld %f30,%f28,%f30 +ldd [%fp+-40],%f28 +fcmped %f30,%f28; nop; fbue .L619; nop +set 1,%l3 +stb %l3,[%fp+-2] +.L619: +ldd [%fp+-64],%f30 +fmuld %f30,%f30,%f30 +ldd [%fp+-40],%f28 +fcmped %f30,%f28; nop; fbue .L622; nop +set 1,%l3 +stb %l3,[%fp+-1] +.L622: +mov %g0,%i3 +mov %g0,%i5 +.L625: +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +add -28,%fp,%l2 +ldsb [%i5+%l2],%l2 +add %l3,%l2,%l3 +mov %l3,%i3 +.L626: +add %i5,1,%i5 +cmp %i5,28; bl .L625; nop +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,0; be .L629; nop +ld [%fp+-76],%l3 +add %l3,4,%l3 +st %l3,[%fp+-76] +ld [%i0+44],%l3 +cmp %l3,0; be .L631; nop +set .520,%o0 +set 4,%o1 +call printf; nop +set .L633,%o0 +call printf; nop +mov %g0,%i5 +.L634: +set .L638,%o0 +add -28,%fp,%l3 +ldsb [%i5+%l3],%o1 +call printf; nop +.L635: +add %i5,1,%i5 +cmp %i5,28; bl .L634; nop +set .L639,%o0 +call printf; nop +.L631: +.L629: +set 32768,%l6 +mov %l6,%l3 +set 0x8000,%l2 +cmp %l3,%l2; bleu .L640; nop +ld [%fp+-76],%l3 +add %l3,8,%l3 +st %l3,[%fp+-76] +ld [%i0+44],%l3 +cmp %l3,0; be .L642; nop +set .520,%o0 +set 8,%o1 +call printf; nop +.L642: +.L640: +ld [%fp+-76],%i0 +.L519: +ret; restore +.type s626,#function +.size s626,.-s626 +.section ".data" +.type .645,#object +.align 1 +.645: +.byte 115 +.byte 55 +.byte 49 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size .645,10 +.type .646,#object +.size .646,8 +.align 1 +.646: +.byte 115 +.byte 55 +.byte 49 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.type .647,#object +.size .647,1 +.align 1 +.647: +.byte 0x71 +.global s71 +.section ".text" +.align 4 +s71: +save %sp,-136,%sp +set .646,%i5 +add %i0,60,%i4 +mov %g0,%i3 +.L648: +.L649: +mov %i4,%l7 +add %l7,1,%i4 +mov %i5,%l6 +add %l6,1,%i5 +ldsb [%l6],%l6 +stb %l6,[%l7] +sll %l6,8*(4-1),%l7; sra %l7,8*(4-1),%l7 +cmp %l7,0; bne .L648; nop +set .L653,%l7 +ldsb [%l7],%l7 +set .647,%l6 +ldsb [%l6],%l6 +cmp %l7,%l6; be .L651; nop +add %i3,1,%i3 +ld [%i0+44],%l7 +cmp %l7,0; be .L654; nop +set .645,%o0 +set 1,%o1 +call printf; nop +.L654: +.L651: +ba .L656; nop +add %i3,2,%i3 +ld [%i0+44],%l7 +cmp %l7,0; be .L658; nop +set .645,%o0 +set 2,%o1 +call printf; nop +.L658: +.L656: +set 1942,%l7 +st %l7,[%fp+-20] +ld [%fp+-20],%l7 +cmp %l7,1942; bne .L666; nop +ld [%fp+-20],%l7 +ld [%fp+-20],%l6 +cmp %l7,%l6; be .L661; nop +.L666: +add %i3,4,%i3 +ld [%i0+44],%l7 +cmp %l7,0; be .L667; nop +set .645,%o0 +set 4,%o1 +call printf; nop +.L667: +.L661: +set -5,%o0 +call McCarthy; nop +cmp %o0,91; be .L669; nop +add %i3,8,%i3 +ld [%i0+44],%l7 +cmp %l7,0; be .L671; nop +set .645,%o0 +set 8,%o1 +call printf; nop +.L671: +.L669: +set 2,%i2 +set 3,%l7 +st %l7,[%fp+-44] +add -44,%fp,%i1 +mov %i2,%o0 +mov %i1,%o1 +call clobber; nop +cmp %i2,2; bne .L675; nop +ld [%fp+-44],%l7 +cmp %l7,2; be .L673; nop +.L675: +add %i3,16,%i3 +ld [%i0+44],%l7 +cmp %l7,0; be .L676; nop +set .645,%o0 +set 16,%o1 +call printf; nop +.L676: +.L673: +ld [%i0+32],%f31 +fcmpes %f31,%f31; nop; fbue .L678; nop +add %i3,32,%i3 +ld [%i0+44],%l7 +cmp %l7,0; be .L680; nop +set .645,%o0 +set 32,%o1 +call printf; nop +.L680: +.L678: +mov %i3,%i0 +.L644: +ret; restore +.type s71,#function +.size s71,.-s71 +.global McCarthy +.align 4 +McCarthy: +save %sp,-96,%sp +cmp %i0,100; ble .L683; nop +sub %i0,10,%i0 +ba .L682; nop +.L683: +add %i0,11,%o0 +call McCarthy; nop +mov %o0,%i5 +call McCarthy; nop +mov %o0,%i0 +.L682: +ret; restore +.type McCarthy,#function +.size McCarthy,.-McCarthy +.global clobber +.align 4 +clobber: +set 3,%o0 +set 2,%o5 +st %o5,[%o1] +mov %g0,%o0 +.L685: +retl; nop +.type clobber,#function +.size clobber,.-clobber +.section ".data" +.type .687,#object +.align 1 +.687: +.byte 76 +.byte 111 +.byte 99 +.byte 97 +.byte 108 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 32 +.byte 37 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.size .687,17 +.type .688,#object +.align 1 +.688: +.byte 115 +.byte 55 +.byte 49 +.byte 52 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size .688,11 +.type .689,#object +.size .689,8 +.align 1 +.689: +.byte 115 +.byte 55 +.byte 49 +.byte 52 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.global s714 +.section ".text" +.align 4 +s714: +save %sp,-184,%sp +set .689,%l3 +st %l3,[%fp+-44] +add %i0,60,%l3 +st %l3,[%fp+-48] +st %g0,[%fp+-52] +mov %g0,%i4 +ld [%i0+48],%i5 +.L690: +.L691: +ld [%fp+-48],%l3 +add %l3,1,%l2 +st %l2,[%fp+-48] +ld [%fp+-44],%l2 +add %l2,1,%l1 +st %l1,[%fp+-44] +ldsb [%l2],%l2 +stb %l2,[%l3] +sll %l2,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,0; bne .L690; nop +set 5,%i3 +set 2,%l5 +mov %l5,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,2; be .L693; nop +set 1,%i4 +cmp %i5,0; be .L695; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L695: +.L693: +set 5,%i3 +set 2,%l4 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,2; be .L697; nop +set 2,%i4 +cmp %i5,0; be .L699; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L699: +.L697: +set 5,%i3 +set 2,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,2; be .L701; nop +set 3,%i4 +cmp %i5,0; be .L703; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L703: +.L701: +set 5,%i3 +set 2,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,2; be .L705; nop +set 4,%i4 +cmp %i5,0; be .L707; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L707: +.L705: +set 5,%i3 +set 2,%l3 +st %l3,[%fp+-12] +ld [%fp+-12],%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,2; be .L709; nop +set 5,%i4 +cmp %i5,0; be .L711; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L711: +.L709: +set 5,%i3 +set .L529,%l3 +ld [%l3],%f31 +st %f31,[%fp+-28] +ld [%fp+-28],%f31 +fstoi %f31,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,2; be .L713; nop +set 6,%i4 +cmp %i5,0; be .L715; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L715: +.L713: +set 5,%i3 +set .L416,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +ldd [%fp+-40],%f30 +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,2; be .L717; nop +set 7,%i4 +cmp %i5,0; be .L719; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L719: +.L717: +set 5,%i2 +set 2,%l5 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,2; be .L721; nop +set 8,%i4 +cmp %i5,0; be .L723; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L723: +.L721: +set 5,%i2 +set 2,%l4 +mov %l4,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,2; be .L725; nop +set 9,%i4 +cmp %i5,0; be .L727; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L727: +.L725: +set 5,%i2 +set 2,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,2; be .L729; nop +set 10,%i4 +cmp %i5,0; be .L731; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L731: +.L729: +set 5,%i2 +set 2,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,2; be .L733; nop +set 11,%i4 +cmp %i5,0; be .L735; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L735: +.L733: +set 5,%i2 +set 2,%l3 +st %l3,[%fp+-12] +ld [%fp+-12],%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,2; be .L737; nop +set 12,%i4 +cmp %i5,0; be .L739; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L739: +.L737: +set 5,%i2 +set .L529,%l3 +ld [%l3],%f31 +st %f31,[%fp+-28] +ld [%fp+-28],%f31 +fstoi %f31,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,2; be .L741; nop +set 13,%i4 +cmp %i5,0; be .L743; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L743: +.L741: +set 5,%i2 +set .L416,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +ldd [%fp+-40],%f30 +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,2; be .L745; nop +set 14,%i4 +cmp %i5,0; be .L747; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L747: +.L745: +set 5,%i1 +set 2,%l5 +sll %l5,8*(4-1),%i1; sra %i1,8*(4-1),%i1 +cmp %i1,2; be .L749; nop +set 15,%i4 +cmp %i5,0; be .L751; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L751: +.L749: +set 5,%i1 +set 2,%l4 +sll %l4,8*(4-2),%i1; sra %i1,8*(4-2),%i1 +cmp %i1,2; be .L753; nop +set 16,%i4 +cmp %i5,0; be .L755; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L755: +.L753: +set 5,%i1 +set 2,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%i1 +cmp %i1,2; be .L757; nop +set 17,%i4 +cmp %i5,0; be .L759; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L759: +.L757: +set 5,%i1 +set 2,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%i1 +cmp %i1,2; be .L761; nop +set 18,%i4 +cmp %i5,0; be .L763; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L763: +.L761: +set 5,%i1 +set 2,%l3 +st %l3,[%fp+-12] +ld [%fp+-12],%l3 +mov %l3,%i1 +cmp %i1,2; be .L765; nop +set 19,%i4 +cmp %i5,0; be .L767; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L767: +.L765: +set 5,%i1 +set .L529,%l3 +ld [%l3],%f31 +st %f31,[%fp+-28] +ld [%fp+-28],%f31 +fstoi %f31,%f0; st %f0,[%sp+64]; ld [%sp+64],%i1 +cmp %i1,2; be .L769; nop +set 20,%i4 +cmp %i5,0; be .L771; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L771: +.L769: +set 5,%i1 +set .L416,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +ldd [%fp+-40],%f30 +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%i1 +cmp %i1,2; be .L773; nop +set 21,%i4 +cmp %i5,0; be .L775; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L775: +.L773: +set 5,%l7 +set 2,%l5 +sll %l5,8*(4-1),%l7; sra %l7,8*(4-1),%l7 +cmp %l7,2; be .L777; nop +set 22,%i4 +cmp %i5,0; be .L779; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L779: +.L777: +set 5,%l7 +set 2,%l4 +sll %l4,8*(4-2),%l7; sra %l7,8*(4-2),%l7 +cmp %l7,2; be .L781; nop +set 23,%i4 +cmp %i5,0; be .L783; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L783: +.L781: +set 5,%l7 +set 2,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l7 +cmp %l7,2; be .L785; nop +set 24,%i4 +cmp %i5,0; be .L787; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L787: +.L785: +set 5,%l7 +set 2,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l7 +cmp %l7,2; be .L789; nop +set 25,%i4 +cmp %i5,0; be .L791; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L791: +.L789: +set 5,%l7 +set 2,%l3 +st %l3,[%fp+-12] +ld [%fp+-12],%l3 +mov %l3,%l7 +cmp %l7,2; be .L793; nop +set 26,%i4 +cmp %i5,0; be .L795; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L795: +.L793: +set 5,%l7 +set .L529,%l3 +ld [%l3],%f31 +st %f31,[%fp+-28] +ld [%fp+-28],%f31 +fstoi %f31,%f0; st %f0,[%sp+64]; ld [%sp+64],%l7 +cmp %l7,2; be .L797; nop +set 27,%i4 +cmp %i5,0; be .L799; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L799: +.L797: +set 5,%l7 +set .L416,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +ldd [%fp+-40],%f30 +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l7 +cmp %l7,2; be .L801; nop +set 28,%i4 +cmp %i5,0; be .L803; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L803: +.L801: +set 5,%l6 +set 2,%l5 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +mov %l3,%l6 +set 2,%l3 +cmp %l6,%l3; be .L805; nop +set 29,%i4 +cmp %i5,0; be .L807; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L807: +.L805: +set 5,%l6 +set 2,%l4 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +mov %l3,%l6 +set 2,%l3 +cmp %l6,%l3; be .L809; nop +set 30,%i4 +cmp %i5,0; be .L811; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L811: +.L809: +set 5,%l6 +set 2,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +mov %l3,%l6 +set 2,%l3 +cmp %l6,%l3; be .L813; nop +set 31,%i4 +cmp %i5,0; be .L815; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L815: +.L813: +set 5,%l6 +set 2,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l3 +mov %l3,%l6 +set 2,%l3 +cmp %l6,%l3; be .L817; nop +set 32,%i4 +cmp %i5,0; be .L819; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L819: +.L817: +set 5,%l6 +set 2,%l3 +st %l3,[%fp+-12] +ld [%fp+-12],%l6 +cmp %l6,%l3; be .L821; nop +set 33,%i4 +cmp %i5,0; be .L823; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L823: +.L821: +set 5,%l6 +set .L529,%l3 +ld [%l3],%f31 +st %f31,[%fp+-28] +ld [%fp+-28],%f31 +set .L828,%l3 +ld [%l3],%f30 +fcmpes %f31,%f30; nop; fbul .L826; nop +fsubs %f31,%f30,%f30 +fstoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +set 0x80000000,%l2 +add %l3,%l2,%l3 +st %l3,[%fp+-56] +ba .L827; nop +.L826: +fstoi %f31,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +st %l3,[%fp+-56] +.L827: +ld [%fp+-56],%l6 +set 2,%l3 +cmp %l6,%l3; be .L829; nop +set 34,%i4 +cmp %i5,0; be .L831; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L831: +.L829: +set 5,%l6 +set .L416,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +ldd [%fp+-40],%f30 +set .L836,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbul .L834; nop +fsubd %f30,%f28,%f28 +fdtoi %f28,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +set 0x80000000,%l2 +add %l3,%l2,%l3 +st %l3,[%fp+-60] +ba .L835; nop +.L834: +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +st %l3,[%fp+-60] +.L835: +ld [%fp+-60],%l6 +set 2,%l3 +cmp %l6,%l3; be .L837; nop +set 35,%i4 +cmp %i5,0; be .L839; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L839: +.L837: +set .L841,%l3 +ld [%l3],%f31 +st %f31,[%fp+-16] +set 2,%l5 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f31; fitos %f31,%f31 +st %f31,[%fp+-16] +ld [%fp+-16],%f31 +set .L529,%l3 +ld [%l3],%f30 +fcmpes %f31,%f30; nop; fbue .L842; nop +set 36,%i4 +cmp %i5,0; be .L844; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L844: +.L842: +set .L841,%l3 +ld [%l3],%f31 +st %f31,[%fp+-16] +set 2,%l4 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f31; fitos %f31,%f31 +st %f31,[%fp+-16] +ld [%fp+-16],%f31 +set .L529,%l3 +ld [%l3],%f30 +fcmpes %f31,%f30; nop; fbue .L846; nop +set 37,%i4 +cmp %i5,0; be .L848; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L848: +.L846: +set .L841,%l3 +ld [%l3],%f31 +st %f31,[%fp+-16] +set 2,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +st %l3,[%sp+64]; ld [%sp+64],%f31; fitos %f31,%f31 +st %f31,[%fp+-16] +ld [%fp+-16],%f31 +set .L529,%l3 +ld [%l3],%f30 +fcmpes %f31,%f30; nop; fbue .L850; nop +set 38,%i4 +cmp %i5,0; be .L852; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L852: +.L850: +set .L841,%l3 +ld [%l3],%f31 +st %f31,[%fp+-16] +set 2,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l3 +st %l3,[%sp+64]; ld [%sp+64],%f31; fitos %f31,%f31 +st %f31,[%fp+-16] +ld [%fp+-16],%f31 +set .L529,%l3 +ld [%l3],%f30 +fcmpes %f31,%f30; nop; fbue .L854; nop +set 39,%i4 +cmp %i5,0; be .L856; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L856: +.L854: +set .L841,%l3 +ld [%l3],%f31 +st %f31,[%fp+-16] +set 2,%l3 +st %l3,[%fp+-12] +ld [%fp+-12],%l3 +set .L596,%l2 +ld2 [%l2],%f30 +srl %l3,1,%l2 +st %l2,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +fmuld %f30,%f28,%f30 +set 1,%l2 +and %l3,%l2,%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +faddd %f30,%f28,%f30 +fdtos %f30,%f31 +st %f31,[%fp+-16] +ld [%fp+-16],%f31 +set .L529,%l3 +ld [%l3],%f30 +fcmpes %f31,%f30; nop; fbue .L858; nop +set 40,%i4 +cmp %i5,0; be .L860; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L860: +.L858: +set .L841,%l3 +ld [%l3],%f31 +st %f31,[%fp+-16] +set .L529,%l3 +ld [%l3],%f31 +st %f31,[%fp+-28] +ld [%fp+-28],%f30 +st %f30,[%fp+-16] +ld [%fp+-16],%f30 +fcmpes %f30,%f31; nop; fbue .L862; nop +set 41,%i4 +cmp %i5,0; be .L864; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L864: +.L862: +set .L841,%l3 +ld [%l3],%f31 +st %f31,[%fp+-16] +set .L416,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +ldd [%fp+-40],%f30 +fdtos %f30,%f31 +st %f31,[%fp+-16] +ld [%fp+-16],%f31 +set .L529,%l3 +ld [%l3],%f30 +fcmpes %f31,%f30; nop; fbue .L866; nop +set 42,%i4 +cmp %i5,0; be .L868; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L868: +.L866: +set .L870,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-24] +set 2,%l5 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f30; fitod %f30,%f30 +std %f30,[%fp+-24] +ldd [%fp+-24],%f30 +set .L416,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L871; nop +set 43,%i4 +cmp %i5,0; be .L873; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L873: +.L871: +set .L870,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-24] +set 2,%l4 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f30; fitod %f30,%f30 +std %f30,[%fp+-24] +ldd [%fp+-24],%f30 +set .L416,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L875; nop +set 44,%i4 +cmp %i5,0; be .L877; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L877: +.L875: +set .L870,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-24] +set 2,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +st %l3,[%sp+64]; ld [%sp+64],%f30; fitod %f30,%f30 +std %f30,[%fp+-24] +ldd [%fp+-24],%f30 +set .L416,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L879; nop +set 45,%i4 +cmp %i5,0; be .L881; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L881: +.L879: +set .L870,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-24] +set 2,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l3 +st %l3,[%sp+64]; ld [%sp+64],%f30; fitod %f30,%f30 +std %f30,[%fp+-24] +ldd [%fp+-24],%f30 +set .L416,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L883; nop +set 46,%i4 +cmp %i5,0; be .L885; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L885: +.L883: +set .L870,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-24] +set 2,%l3 +st %l3,[%fp+-12] +ld [%fp+-12],%l3 +set .L596,%l2 +ld2 [%l2],%f30 +srl %l3,1,%l2 +st %l2,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +fmuld %f30,%f28,%f30 +set 1,%l2 +and %l3,%l2,%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +faddd %f30,%f28,%f30 +std %f30,[%fp+-24] +ldd [%fp+-24],%f30 +set .L416,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L887; nop +set 47,%i4 +cmp %i5,0; be .L889; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L889: +.L887: +set .L870,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-24] +set .L529,%l3 +ld [%l3],%f31 +st %f31,[%fp+-28] +ld [%fp+-28],%f31 +fstod %f31,%f30 +std %f30,[%fp+-24] +ldd [%fp+-24],%f30 +set .L416,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L891; nop +set 48,%i4 +cmp %i5,0; be .L893; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L893: +.L891: +set .L870,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-24] +set .L416,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +ldd [%fp+-40],%f28 +std %f28,[%fp+-24] +ldd [%fp+-24],%f28 +fcmped %f28,%f30; nop; fbue .L895; nop +set 49,%i4 +cmp %i5,0; be .L897; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L897: +.L895: +set 5,%i3 +set 2,%l5 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +sll %l5,8*(4-1),%l2; sra %l2,8*(4-1),%l2 +add %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,7; be .L899; nop +set 50,%i4 +cmp %i5,0; be .L901; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L901: +.L899: +set 5,%i3 +set 2,%l4 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +sll %l4,8*(4-2),%l2; sra %l2,8*(4-2),%l2 +add %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,7; be .L903; nop +set 51,%i4 +cmp %i5,0; be .L905; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L905: +.L903: +set 5,%i3 +set 2,%l3 +st %l3,[%fp+-4] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +ld [%fp+-4],%l2 +add %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,7; be .L907; nop +set 52,%i4 +cmp %i5,0; be .L909; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L909: +.L907: +set 5,%i3 +set 2,%l3 +st %l3,[%fp+-8] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +ld [%fp+-8],%l2 +add %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,7; be .L911; nop +set 53,%i4 +cmp %i5,0; be .L913; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L913: +.L911: +set 5,%i3 +set 2,%l3 +st %l3,[%fp+-12] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +ld [%fp+-12],%l2 +add %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,7; be .L915; nop +set 54,%i4 +cmp %i5,0; be .L917; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L917: +.L915: +set 5,%i3 +set .L529,%l3 +ld [%l3],%f31 +st %f31,[%fp+-28] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f31; fitos %f31,%f31 +ld [%fp+-28],%f30 +fadds %f31,%f30,%f31 +fstoi %f31,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,7; be .L919; nop +set 55,%i4 +cmp %i5,0; be .L921; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L921: +.L919: +set 5,%i3 +set .L416,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f30; fitod %f30,%f30 +ldd [%fp+-40],%f28 +faddd %f30,%f28,%f30 +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,7; be .L923; nop +set 56,%i4 +cmp %i5,0; be .L925; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L925: +.L923: +set 5,%i2 +set 2,%l5 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +sll %l5,8*(4-1),%l2; sra %l2,8*(4-1),%l2 +add %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,7; be .L927; nop +set 57,%i4 +cmp %i5,0; be .L929; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L929: +.L927: +set 5,%i2 +set 2,%l4 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +sll %l4,8*(4-2),%l2; sra %l2,8*(4-2),%l2 +add %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,7; be .L931; nop +set 58,%i4 +cmp %i5,0; be .L933; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L933: +.L931: +set 5,%i2 +set 2,%l3 +st %l3,[%fp+-4] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +ld [%fp+-4],%l2 +add %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,7; be .L935; nop +set 59,%i4 +cmp %i5,0; be .L937; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L937: +.L935: +set 5,%i2 +set 2,%l3 +st %l3,[%fp+-8] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +ld [%fp+-8],%l2 +add %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,7; be .L939; nop +set 60,%i4 +cmp %i5,0; be .L941; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L941: +.L939: +set 5,%i2 +set 2,%l3 +st %l3,[%fp+-12] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +ld [%fp+-12],%l2 +add %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,7; be .L943; nop +set 61,%i4 +cmp %i5,0; be .L945; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L945: +.L943: +set 5,%i2 +set .L529,%l3 +ld [%l3],%f31 +st %f31,[%fp+-28] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f31; fitos %f31,%f31 +ld [%fp+-28],%f30 +fadds %f31,%f30,%f31 +fstoi %f31,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,7; be .L947; nop +set 62,%i4 +cmp %i5,0; be .L949; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L949: +.L947: +set 5,%i2 +set .L416,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f30; fitod %f30,%f30 +ldd [%fp+-40],%f28 +faddd %f30,%f28,%f30 +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,7; be .L951; nop +set 63,%i4 +cmp %i5,0; be .L953; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L953: +.L951: +set 5,%i1 +set 2,%l5 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +add %i1,%l3,%i1 +cmp %i1,7; be .L955; nop +set 64,%i4 +cmp %i5,0; be .L957; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L957: +.L955: +set 5,%i1 +set 2,%l4 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +add %i1,%l3,%i1 +cmp %i1,7; be .L959; nop +set 65,%i4 +cmp %i5,0; be .L961; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L961: +.L959: +set 5,%i1 +set 2,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +add %i1,%l3,%i1 +cmp %i1,7; be .L963; nop +set 66,%i4 +cmp %i5,0; be .L965; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L965: +.L963: +set 5,%i1 +set 2,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l3 +add %i1,%l3,%i1 +cmp %i1,7; be .L967; nop +set 67,%i4 +cmp %i5,0; be .L969; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L969: +.L967: +set 5,%i1 +set 2,%l3 +st %l3,[%fp+-12] +mov %i1,%l3 +ld [%fp+-12],%l2 +add %l3,%l2,%l3 +mov %l3,%i1 +cmp %i1,7; be .L971; nop +set 68,%i4 +cmp %i5,0; be .L973; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L973: +.L971: +set 5,%i1 +set .L529,%l3 +ld [%l3],%f31 +st %f31,[%fp+-28] +st %i1,[%sp+64]; ld [%sp+64],%f31; fitos %f31,%f31 +ld [%fp+-28],%f30 +fadds %f31,%f30,%f31 +fstoi %f31,%f0; st %f0,[%sp+64]; ld [%sp+64],%i1 +cmp %i1,7; be .L975; nop +set 69,%i4 +cmp %i5,0; be .L977; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L977: +.L975: +set 5,%i1 +set .L416,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +st %i1,[%sp+64]; ld [%sp+64],%f30; fitod %f30,%f30 +ldd [%fp+-40],%f28 +faddd %f30,%f28,%f30 +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%i1 +cmp %i1,7; be .L979; nop +set 70,%i4 +cmp %i5,0; be .L981; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L981: +.L979: +set 5,%l7 +set 2,%l5 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +add %l7,%l3,%l7 +cmp %l7,7; be .L983; nop +set 71,%i4 +cmp %i5,0; be .L985; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L985: +.L983: +set 5,%l7 +set 2,%l4 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +add %l7,%l3,%l7 +cmp %l7,7; be .L987; nop +set 72,%i4 +cmp %i5,0; be .L989; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L989: +.L987: +set 5,%l7 +set 2,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +add %l7,%l3,%l7 +cmp %l7,7; be .L991; nop +set 73,%i4 +cmp %i5,0; be .L993; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L993: +.L991: +set 5,%l7 +set 2,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l3 +add %l7,%l3,%l7 +cmp %l7,7; be .L995; nop +set 74,%i4 +cmp %i5,0; be .L997; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L997: +.L995: +set 5,%l7 +set 2,%l3 +st %l3,[%fp+-12] +mov %l7,%l3 +ld [%fp+-12],%l2 +add %l3,%l2,%l3 +mov %l3,%l7 +cmp %l7,7; be .L999; nop +set 75,%i4 +cmp %i5,0; be .L1001; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1001: +.L999: +set 5,%l7 +set .L529,%l3 +ld [%l3],%f31 +st %f31,[%fp+-28] +st %l7,[%sp+64]; ld [%sp+64],%f31; fitos %f31,%f31 +ld [%fp+-28],%f30 +fadds %f31,%f30,%f31 +fstoi %f31,%f0; st %f0,[%sp+64]; ld [%sp+64],%l7 +cmp %l7,7; be .L1003; nop +set 76,%i4 +cmp %i5,0; be .L1005; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1005: +.L1003: +set 5,%l7 +set .L416,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +st %l7,[%sp+64]; ld [%sp+64],%f30; fitod %f30,%f30 +ldd [%fp+-40],%f28 +faddd %f30,%f28,%f30 +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l7 +cmp %l7,7; be .L1007; nop +set 77,%i4 +cmp %i5,0; be .L1009; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1009: +.L1007: +set 5,%l6 +set 2,%l5 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +add %l6,%l3,%l6 +set 7,%l3 +cmp %l6,%l3; be .L1011; nop +set 78,%i4 +cmp %i5,0; be .L1013; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1013: +.L1011: +set 5,%l6 +set 2,%l4 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +add %l6,%l3,%l6 +set 7,%l3 +cmp %l6,%l3; be .L1015; nop +set 79,%i4 +cmp %i5,0; be .L1017; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1017: +.L1015: +set 5,%l6 +set 2,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +add %l6,%l3,%l6 +set 7,%l3 +cmp %l6,%l3; be .L1019; nop +set 80,%i4 +cmp %i5,0; be .L1021; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1021: +.L1019: +set 5,%l6 +set 2,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l3 +add %l6,%l3,%l6 +set 7,%l3 +cmp %l6,%l3; be .L1023; nop +set 81,%i4 +cmp %i5,0; be .L1025; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1025: +.L1023: +set 5,%l6 +set 2,%l3 +st %l3,[%fp+-12] +ld [%fp+-12],%l3 +add %l6,%l3,%l6 +set 7,%l3 +cmp %l6,%l3; be .L1027; nop +set 82,%i4 +cmp %i5,0; be .L1029; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1029: +.L1027: +set 5,%l6 +set .L529,%l3 +ld [%l3],%f31 +st %f31,[%fp+-28] +set .L596,%l3 +ld2 [%l3],%f30 +srl %l6,1,%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +fmuld %f30,%f28,%f30 +set 1,%l3 +and %l6,%l3,%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +faddd %f30,%f28,%f30 +fdtos %f30,%f31 +ld [%fp+-28],%f30 +fadds %f31,%f30,%f31 +set .L828,%l3 +ld [%l3],%f30 +fcmpes %f31,%f30; nop; fbul .L1032; nop +fsubs %f31,%f30,%f30 +fstoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +set 0x80000000,%l2 +add %l3,%l2,%l3 +st %l3,[%fp+-64] +ba .L1033; nop +.L1032: +fstoi %f31,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +st %l3,[%fp+-64] +.L1033: +ld [%fp+-64],%l6 +set 7,%l3 +cmp %l6,%l3; be .L1034; nop +set 83,%i4 +cmp %i5,0; be .L1036; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1036: +.L1034: +set 5,%l6 +set .L416,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +set .L596,%l3 +ld2 [%l3],%f30 +srl %l6,1,%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +fmuld %f30,%f28,%f30 +set 1,%l3 +and %l6,%l3,%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +faddd %f30,%f28,%f30 +ldd [%fp+-40],%f28 +faddd %f30,%f28,%f30 +set .L836,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbul .L1039; nop +fsubd %f30,%f28,%f28 +fdtoi %f28,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +set 0x80000000,%l2 +add %l3,%l2,%l3 +st %l3,[%fp+-68] +ba .L1040; nop +.L1039: +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +st %l3,[%fp+-68] +.L1040: +ld [%fp+-68],%l6 +set 7,%l3 +cmp %l6,%l3; be .L1041; nop +set 84,%i4 +cmp %i5,0; be .L1043; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1043: +.L1041: +set .L841,%l3 +ld [%l3],%f31 +st %f31,[%fp+-16] +set 2,%l5 +ld [%fp+-16],%f31 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f30; fitos %f30,%f30 +fadds %f31,%f30,%f31 +st %f31,[%fp+-16] +ld [%fp+-16],%f31 +set .L1047,%l3 +ld [%l3],%f30 +fcmpes %f31,%f30; nop; fbue .L1045; nop +set 85,%i4 +cmp %i5,0; be .L1048; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1048: +.L1045: +set .L841,%l3 +ld [%l3],%f31 +st %f31,[%fp+-16] +set 2,%l4 +ld [%fp+-16],%f31 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f30; fitos %f30,%f30 +fadds %f31,%f30,%f31 +st %f31,[%fp+-16] +ld [%fp+-16],%f31 +set .L1047,%l3 +ld [%l3],%f30 +fcmpes %f31,%f30; nop; fbue .L1050; nop +set 86,%i4 +cmp %i5,0; be .L1052; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1052: +.L1050: +set .L841,%l3 +ld [%l3],%f31 +st %f31,[%fp+-16] +set 2,%l3 +st %l3,[%fp+-4] +ld [%fp+-16],%f31 +ld [%fp+-4],%l3 +st %l3,[%sp+64]; ld [%sp+64],%f30; fitos %f30,%f30 +fadds %f31,%f30,%f31 +st %f31,[%fp+-16] +ld [%fp+-16],%f31 +set .L1047,%l3 +ld [%l3],%f30 +fcmpes %f31,%f30; nop; fbue .L1054; nop +set 87,%i4 +cmp %i5,0; be .L1056; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1056: +.L1054: +set .L841,%l3 +ld [%l3],%f31 +st %f31,[%fp+-16] +set 2,%l3 +st %l3,[%fp+-8] +ld [%fp+-16],%f31 +ld [%fp+-8],%l3 +st %l3,[%sp+64]; ld [%sp+64],%f30; fitos %f30,%f30 +fadds %f31,%f30,%f31 +st %f31,[%fp+-16] +ld [%fp+-16],%f31 +set .L1047,%l3 +ld [%l3],%f30 +fcmpes %f31,%f30; nop; fbue .L1058; nop +set 88,%i4 +cmp %i5,0; be .L1060; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1060: +.L1058: +set .L841,%l3 +ld [%l3],%f31 +st %f31,[%fp+-16] +set 2,%l3 +st %l3,[%fp+-12] +ld [%fp+-12],%l3 +ld [%fp+-16],%f31 +set .L596,%l2 +ld2 [%l2],%f28 +srl %l3,1,%l2 +st %l2,[%sp+64]; ld [%sp+64],%f26; fitod %f26,%f26 +fmuld %f28,%f26,%f28 +set 1,%l2 +and %l3,%l2,%l3 +st %l3,[%sp+64]; ld [%sp+64],%f26; fitod %f26,%f26 +faddd %f28,%f26,%f28 +fdtos %f28,%f30 +fadds %f31,%f30,%f31 +st %f31,[%fp+-16] +ld [%fp+-16],%f31 +set .L1047,%l3 +ld [%l3],%f30 +fcmpes %f31,%f30; nop; fbue .L1062; nop +set 89,%i4 +cmp %i5,0; be .L1064; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1064: +.L1062: +set .L841,%l3 +ld [%l3],%f31 +st %f31,[%fp+-16] +set .L529,%l3 +ld [%l3],%f31 +st %f31,[%fp+-28] +ld [%fp+-16],%f31 +ld [%fp+-28],%f30 +fadds %f31,%f30,%f31 +st %f31,[%fp+-16] +ld [%fp+-16],%f31 +set .L1047,%l3 +ld [%l3],%f30 +fcmpes %f31,%f30; nop; fbue .L1066; nop +set 90,%i4 +cmp %i5,0; be .L1068; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1068: +.L1066: +set .L841,%l3 +ld [%l3],%f31 +st %f31,[%fp+-16] +set .L416,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +ld [%fp+-16],%f31 +fstod %f31,%f30 +ldd [%fp+-40],%f28 +faddd %f30,%f28,%f30 +fdtos %f30,%f31 +st %f31,[%fp+-16] +ld [%fp+-16],%f31 +set .L1047,%l3 +ld [%l3],%f30 +fcmpes %f31,%f30; nop; fbue .L1070; nop +set 91,%i4 +cmp %i5,0; be .L1072; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1072: +.L1070: +set .L870,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-24] +set 2,%l5 +ldd [%fp+-24],%f30 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +faddd %f30,%f28,%f30 +std %f30,[%fp+-24] +ldd [%fp+-24],%f30 +set .L1076,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L1074; nop +set 92,%i4 +cmp %i5,0; be .L1077; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1077: +.L1074: +set .L870,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-24] +set 2,%l4 +ldd [%fp+-24],%f30 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +faddd %f30,%f28,%f30 +std %f30,[%fp+-24] +ldd [%fp+-24],%f30 +set .L1076,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L1079; nop +set 93,%i4 +cmp %i5,0; be .L1081; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1081: +.L1079: +set .L870,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-24] +set 2,%l3 +st %l3,[%fp+-4] +ldd [%fp+-24],%f30 +ld [%fp+-4],%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +faddd %f30,%f28,%f30 +std %f30,[%fp+-24] +ldd [%fp+-24],%f30 +set .L1076,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L1083; nop +set 94,%i4 +cmp %i5,0; be .L1085; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1085: +.L1083: +set .L870,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-24] +set 2,%l3 +st %l3,[%fp+-8] +ldd [%fp+-24],%f30 +ld [%fp+-8],%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +faddd %f30,%f28,%f30 +std %f30,[%fp+-24] +ldd [%fp+-24],%f30 +set .L1076,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L1087; nop +set 95,%i4 +cmp %i5,0; be .L1089; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1089: +.L1087: +set .L870,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-24] +set 2,%l3 +st %l3,[%fp+-12] +ld [%fp+-12],%l3 +ldd [%fp+-24],%f30 +set .L596,%l2 +ld2 [%l2],%f28 +srl %l3,1,%l2 +st %l2,[%sp+64]; ld [%sp+64],%f26; fitod %f26,%f26 +fmuld %f28,%f26,%f28 +set 1,%l2 +and %l3,%l2,%l3 +st %l3,[%sp+64]; ld [%sp+64],%f26; fitod %f26,%f26 +faddd %f28,%f26,%f28 +faddd %f30,%f28,%f30 +std %f30,[%fp+-24] +ldd [%fp+-24],%f30 +set .L1076,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L1091; nop +set 96,%i4 +cmp %i5,0; be .L1093; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1093: +.L1091: +set .L870,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-24] +set .L529,%l3 +ld [%l3],%f31 +st %f31,[%fp+-28] +ldd [%fp+-24],%f30 +ld [%fp+-28],%f29 +fstod %f29,%f28 +faddd %f30,%f28,%f30 +std %f30,[%fp+-24] +ldd [%fp+-24],%f30 +set .L1076,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L1095; nop +set 97,%i4 +cmp %i5,0; be .L1097; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1097: +.L1095: +set .L870,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-24] +set .L416,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +ldd [%fp+-24],%f30 +ldd [%fp+-40],%f28 +faddd %f30,%f28,%f30 +std %f30,[%fp+-24] +ldd [%fp+-24],%f30 +set .L1076,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L1099; nop +set 98,%i4 +cmp %i5,0; be .L1101; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1101: +.L1099: +set 5,%i3 +set 2,%l5 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +sll %l5,8*(4-1),%l2; sra %l2,8*(4-1),%l2 +sub %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,3; be .L1103; nop +set 99,%i4 +cmp %i5,0; be .L1105; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1105: +.L1103: +set 5,%i3 +set 2,%l4 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +sll %l4,8*(4-2),%l2; sra %l2,8*(4-2),%l2 +sub %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,3; be .L1107; nop +set 100,%i4 +cmp %i5,0; be .L1109; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1109: +.L1107: +set 5,%i3 +set 2,%l3 +st %l3,[%fp+-4] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +ld [%fp+-4],%l2 +sub %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,3; be .L1111; nop +set 101,%i4 +cmp %i5,0; be .L1113; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1113: +.L1111: +set 5,%i3 +set 2,%l3 +st %l3,[%fp+-8] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +ld [%fp+-8],%l2 +sub %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,3; be .L1115; nop +set 102,%i4 +cmp %i5,0; be .L1117; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1117: +.L1115: +set 5,%i3 +set 2,%l3 +st %l3,[%fp+-12] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +ld [%fp+-12],%l2 +sub %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,3; be .L1119; nop +set 103,%i4 +cmp %i5,0; be .L1121; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1121: +.L1119: +set 5,%i3 +set .L529,%l3 +ld [%l3],%f31 +st %f31,[%fp+-28] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f31; fitos %f31,%f31 +ld [%fp+-28],%f30 +fsubs %f31,%f30,%f31 +fstoi %f31,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,3; be .L1123; nop +set 104,%i4 +cmp %i5,0; be .L1125; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1125: +.L1123: +set 5,%i3 +set .L416,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f30; fitod %f30,%f30 +ldd [%fp+-40],%f28 +fsubd %f30,%f28,%f30 +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,3; be .L1127; nop +set 105,%i4 +cmp %i5,0; be .L1129; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1129: +.L1127: +set 5,%i2 +set 2,%l5 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +sll %l5,8*(4-1),%l2; sra %l2,8*(4-1),%l2 +sub %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,3; be .L1131; nop +set 106,%i4 +cmp %i5,0; be .L1133; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1133: +.L1131: +set 5,%i2 +set 2,%l4 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +sll %l4,8*(4-2),%l2; sra %l2,8*(4-2),%l2 +sub %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,3; be .L1135; nop +set 107,%i4 +cmp %i5,0; be .L1137; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1137: +.L1135: +set 5,%i2 +set 2,%l3 +st %l3,[%fp+-4] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +ld [%fp+-4],%l2 +sub %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,3; be .L1139; nop +set 108,%i4 +cmp %i5,0; be .L1141; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1141: +.L1139: +set 5,%i2 +set 2,%l3 +st %l3,[%fp+-8] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +ld [%fp+-8],%l2 +sub %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,3; be .L1143; nop +set 109,%i4 +cmp %i5,0; be .L1145; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1145: +.L1143: +set 5,%i2 +set 2,%l3 +st %l3,[%fp+-12] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +ld [%fp+-12],%l2 +sub %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,3; be .L1147; nop +set 110,%i4 +cmp %i5,0; be .L1149; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1149: +.L1147: +set 5,%i2 +set .L529,%l3 +ld [%l3],%f31 +st %f31,[%fp+-28] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f31; fitos %f31,%f31 +ld [%fp+-28],%f30 +fsubs %f31,%f30,%f31 +fstoi %f31,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,3; be .L1151; nop +set 111,%i4 +cmp %i5,0; be .L1153; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1153: +.L1151: +set 5,%i2 +set .L416,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f30; fitod %f30,%f30 +ldd [%fp+-40],%f28 +fsubd %f30,%f28,%f30 +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,3; be .L1155; nop +set 112,%i4 +cmp %i5,0; be .L1157; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1157: +.L1155: +set 5,%i1 +set 2,%l5 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +sub %i1,%l3,%i1 +cmp %i1,3; be .L1159; nop +set 113,%i4 +cmp %i5,0; be .L1161; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1161: +.L1159: +set 5,%i1 +set 2,%l4 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +sub %i1,%l3,%i1 +cmp %i1,3; be .L1163; nop +set 114,%i4 +cmp %i5,0; be .L1165; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1165: +.L1163: +set 5,%i1 +set 2,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +sub %i1,%l3,%i1 +cmp %i1,3; be .L1167; nop +set 115,%i4 +cmp %i5,0; be .L1169; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1169: +.L1167: +set 5,%i1 +set 2,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l3 +sub %i1,%l3,%i1 +cmp %i1,3; be .L1171; nop +set 116,%i4 +cmp %i5,0; be .L1173; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1173: +.L1171: +set 5,%i1 +set 2,%l3 +st %l3,[%fp+-12] +mov %i1,%l3 +ld [%fp+-12],%l2 +sub %l3,%l2,%l3 +mov %l3,%i1 +cmp %i1,3; be .L1175; nop +set 117,%i4 +cmp %i5,0; be .L1177; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1177: +.L1175: +set 5,%i1 +set .L529,%l3 +ld [%l3],%f31 +st %f31,[%fp+-28] +st %i1,[%sp+64]; ld [%sp+64],%f31; fitos %f31,%f31 +ld [%fp+-28],%f30 +fsubs %f31,%f30,%f31 +fstoi %f31,%f0; st %f0,[%sp+64]; ld [%sp+64],%i1 +cmp %i1,3; be .L1179; nop +set 118,%i4 +cmp %i5,0; be .L1181; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1181: +.L1179: +set 5,%i1 +set .L416,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +st %i1,[%sp+64]; ld [%sp+64],%f30; fitod %f30,%f30 +ldd [%fp+-40],%f28 +fsubd %f30,%f28,%f30 +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%i1 +cmp %i1,3; be .L1183; nop +set 119,%i4 +cmp %i5,0; be .L1185; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1185: +.L1183: +set 5,%l7 +set 2,%l5 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +sub %l7,%l3,%l7 +cmp %l7,3; be .L1187; nop +set 120,%i4 +cmp %i5,0; be .L1189; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1189: +.L1187: +set 5,%l7 +set 2,%l4 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +sub %l7,%l3,%l7 +cmp %l7,3; be .L1191; nop +set 121,%i4 +cmp %i5,0; be .L1193; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1193: +.L1191: +set 5,%l7 +set 2,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +sub %l7,%l3,%l7 +cmp %l7,3; be .L1195; nop +set 122,%i4 +cmp %i5,0; be .L1197; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1197: +.L1195: +set 5,%l7 +set 2,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l3 +sub %l7,%l3,%l7 +cmp %l7,3; be .L1199; nop +set 123,%i4 +cmp %i5,0; be .L1201; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1201: +.L1199: +set 5,%l7 +set 2,%l3 +st %l3,[%fp+-12] +mov %l7,%l3 +ld [%fp+-12],%l2 +sub %l3,%l2,%l3 +mov %l3,%l7 +cmp %l7,3; be .L1203; nop +set 124,%i4 +cmp %i5,0; be .L1205; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1205: +.L1203: +set 5,%l7 +set .L529,%l3 +ld [%l3],%f31 +st %f31,[%fp+-28] +st %l7,[%sp+64]; ld [%sp+64],%f31; fitos %f31,%f31 +ld [%fp+-28],%f30 +fsubs %f31,%f30,%f31 +fstoi %f31,%f0; st %f0,[%sp+64]; ld [%sp+64],%l7 +cmp %l7,3; be .L1207; nop +set 125,%i4 +cmp %i5,0; be .L1209; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1209: +.L1207: +set 5,%l7 +set .L416,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +st %l7,[%sp+64]; ld [%sp+64],%f30; fitod %f30,%f30 +ldd [%fp+-40],%f28 +fsubd %f30,%f28,%f30 +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l7 +cmp %l7,3; be .L1211; nop +set 126,%i4 +cmp %i5,0; be .L1213; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1213: +.L1211: +set 5,%l6 +set 2,%l5 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +sub %l6,%l3,%l6 +set 3,%l3 +cmp %l6,%l3; be .L1215; nop +set 127,%i4 +cmp %i5,0; be .L1217; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1217: +.L1215: +set 5,%l6 +set 2,%l4 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +sub %l6,%l3,%l6 +set 3,%l3 +cmp %l6,%l3; be .L1219; nop +set 128,%i4 +cmp %i5,0; be .L1221; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1221: +.L1219: +set 5,%l6 +set 2,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +sub %l6,%l3,%l6 +set 3,%l3 +cmp %l6,%l3; be .L1223; nop +set 129,%i4 +cmp %i5,0; be .L1225; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1225: +.L1223: +set 5,%l6 +set 2,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l3 +sub %l6,%l3,%l6 +set 3,%l3 +cmp %l6,%l3; be .L1227; nop +set 130,%i4 +cmp %i5,0; be .L1229; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1229: +.L1227: +set 5,%l6 +set 2,%l3 +st %l3,[%fp+-12] +ld [%fp+-12],%l3 +sub %l6,%l3,%l6 +set 3,%l3 +cmp %l6,%l3; be .L1231; nop +set 131,%i4 +cmp %i5,0; be .L1233; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1233: +.L1231: +set 5,%l6 +set .L529,%l3 +ld [%l3],%f31 +st %f31,[%fp+-28] +set .L596,%l3 +ld2 [%l3],%f30 +srl %l6,1,%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +fmuld %f30,%f28,%f30 +set 1,%l3 +and %l6,%l3,%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +faddd %f30,%f28,%f30 +fdtos %f30,%f31 +ld [%fp+-28],%f30 +fsubs %f31,%f30,%f31 +set .L828,%l3 +ld [%l3],%f30 +fcmpes %f31,%f30; nop; fbul .L1236; nop +fsubs %f31,%f30,%f30 +fstoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +set 0x80000000,%l2 +add %l3,%l2,%l3 +st %l3,[%fp+-72] +ba .L1237; nop +.L1236: +fstoi %f31,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +st %l3,[%fp+-72] +.L1237: +ld [%fp+-72],%l6 +set 3,%l3 +cmp %l6,%l3; be .L1238; nop +set 132,%i4 +cmp %i5,0; be .L1240; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1240: +.L1238: +set 5,%l6 +set .L416,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +set .L596,%l3 +ld2 [%l3],%f30 +srl %l6,1,%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +fmuld %f30,%f28,%f30 +set 1,%l3 +and %l6,%l3,%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +faddd %f30,%f28,%f30 +ldd [%fp+-40],%f28 +fsubd %f30,%f28,%f30 +set .L836,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbul .L1243; nop +fsubd %f30,%f28,%f28 +fdtoi %f28,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +set 0x80000000,%l2 +add %l3,%l2,%l3 +st %l3,[%fp+-76] +ba .L1244; nop +.L1243: +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +st %l3,[%fp+-76] +.L1244: +ld [%fp+-76],%l6 +set 3,%l3 +cmp %l6,%l3; be .L1245; nop +set 133,%i4 +cmp %i5,0; be .L1247; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1247: +.L1245: +set .L841,%l3 +ld [%l3],%f31 +st %f31,[%fp+-16] +set 2,%l5 +ld [%fp+-16],%f31 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f30; fitos %f30,%f30 +fsubs %f31,%f30,%f31 +st %f31,[%fp+-16] +ld [%fp+-16],%f31 +set .L1251,%l3 +ld [%l3],%f30 +fcmpes %f31,%f30; nop; fbue .L1249; nop +set 134,%i4 +cmp %i5,0; be .L1252; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1252: +.L1249: +set .L841,%l3 +ld [%l3],%f31 +st %f31,[%fp+-16] +set 2,%l4 +ld [%fp+-16],%f31 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f30; fitos %f30,%f30 +fsubs %f31,%f30,%f31 +st %f31,[%fp+-16] +ld [%fp+-16],%f31 +set .L1251,%l3 +ld [%l3],%f30 +fcmpes %f31,%f30; nop; fbue .L1254; nop +set 135,%i4 +cmp %i5,0; be .L1256; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1256: +.L1254: +set .L841,%l3 +ld [%l3],%f31 +st %f31,[%fp+-16] +set 2,%l3 +st %l3,[%fp+-4] +ld [%fp+-16],%f31 +ld [%fp+-4],%l3 +st %l3,[%sp+64]; ld [%sp+64],%f30; fitos %f30,%f30 +fsubs %f31,%f30,%f31 +st %f31,[%fp+-16] +ld [%fp+-16],%f31 +set .L1251,%l3 +ld [%l3],%f30 +fcmpes %f31,%f30; nop; fbue .L1258; nop +set 136,%i4 +cmp %i5,0; be .L1260; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1260: +.L1258: +set .L841,%l3 +ld [%l3],%f31 +st %f31,[%fp+-16] +set 2,%l3 +st %l3,[%fp+-8] +ld [%fp+-16],%f31 +ld [%fp+-8],%l3 +st %l3,[%sp+64]; ld [%sp+64],%f30; fitos %f30,%f30 +fsubs %f31,%f30,%f31 +st %f31,[%fp+-16] +ld [%fp+-16],%f31 +set .L1251,%l3 +ld [%l3],%f30 +fcmpes %f31,%f30; nop; fbue .L1262; nop +set 137,%i4 +cmp %i5,0; be .L1264; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1264: +.L1262: +set .L841,%l3 +ld [%l3],%f31 +st %f31,[%fp+-16] +set 2,%l3 +st %l3,[%fp+-12] +ld [%fp+-12],%l3 +ld [%fp+-16],%f31 +set .L596,%l2 +ld2 [%l2],%f28 +srl %l3,1,%l2 +st %l2,[%sp+64]; ld [%sp+64],%f26; fitod %f26,%f26 +fmuld %f28,%f26,%f28 +set 1,%l2 +and %l3,%l2,%l3 +st %l3,[%sp+64]; ld [%sp+64],%f26; fitod %f26,%f26 +faddd %f28,%f26,%f28 +fdtos %f28,%f30 +fsubs %f31,%f30,%f31 +st %f31,[%fp+-16] +ld [%fp+-16],%f31 +set .L1251,%l3 +ld [%l3],%f30 +fcmpes %f31,%f30; nop; fbue .L1266; nop +set 138,%i4 +cmp %i5,0; be .L1268; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1268: +.L1266: +set .L841,%l3 +ld [%l3],%f31 +st %f31,[%fp+-16] +set .L529,%l3 +ld [%l3],%f31 +st %f31,[%fp+-28] +ld [%fp+-16],%f31 +ld [%fp+-28],%f30 +fsubs %f31,%f30,%f31 +st %f31,[%fp+-16] +ld [%fp+-16],%f31 +set .L1251,%l3 +ld [%l3],%f30 +fcmpes %f31,%f30; nop; fbue .L1270; nop +set 139,%i4 +cmp %i5,0; be .L1272; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1272: +.L1270: +set .L841,%l3 +ld [%l3],%f31 +st %f31,[%fp+-16] +set .L416,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +ld [%fp+-16],%f31 +fstod %f31,%f30 +ldd [%fp+-40],%f28 +fsubd %f30,%f28,%f30 +fdtos %f30,%f31 +st %f31,[%fp+-16] +ld [%fp+-16],%f31 +set .L1251,%l3 +ld [%l3],%f30 +fcmpes %f31,%f30; nop; fbue .L1274; nop +set 140,%i4 +cmp %i5,0; be .L1276; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1276: +.L1274: +set .L870,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-24] +set 2,%l5 +ldd [%fp+-24],%f30 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +fsubd %f30,%f28,%f30 +std %f30,[%fp+-24] +ldd [%fp+-24],%f30 +set .L1280,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L1278; nop +set 141,%i4 +cmp %i5,0; be .L1281; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1281: +.L1278: +set .L870,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-24] +set 2,%l4 +ldd [%fp+-24],%f30 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +fsubd %f30,%f28,%f30 +std %f30,[%fp+-24] +ldd [%fp+-24],%f30 +set .L1280,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L1283; nop +set 142,%i4 +cmp %i5,0; be .L1285; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1285: +.L1283: +set .L870,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-24] +set 2,%l3 +st %l3,[%fp+-4] +ldd [%fp+-24],%f30 +ld [%fp+-4],%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +fsubd %f30,%f28,%f30 +std %f30,[%fp+-24] +ldd [%fp+-24],%f30 +set .L1280,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L1287; nop +set 143,%i4 +cmp %i5,0; be .L1289; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1289: +.L1287: +set .L870,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-24] +set 2,%l3 +st %l3,[%fp+-8] +ldd [%fp+-24],%f30 +ld [%fp+-8],%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +fsubd %f30,%f28,%f30 +std %f30,[%fp+-24] +ldd [%fp+-24],%f30 +set .L1280,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L1291; nop +set 144,%i4 +cmp %i5,0; be .L1293; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1293: +.L1291: +set .L870,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-24] +set 2,%l3 +st %l3,[%fp+-12] +ld [%fp+-12],%l3 +ldd [%fp+-24],%f30 +set .L596,%l2 +ld2 [%l2],%f28 +srl %l3,1,%l2 +st %l2,[%sp+64]; ld [%sp+64],%f26; fitod %f26,%f26 +fmuld %f28,%f26,%f28 +set 1,%l2 +and %l3,%l2,%l3 +st %l3,[%sp+64]; ld [%sp+64],%f26; fitod %f26,%f26 +faddd %f28,%f26,%f28 +fsubd %f30,%f28,%f30 +std %f30,[%fp+-24] +ldd [%fp+-24],%f30 +set .L1280,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L1295; nop +set 145,%i4 +cmp %i5,0; be .L1297; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1297: +.L1295: +set .L870,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-24] +set .L529,%l3 +ld [%l3],%f31 +st %f31,[%fp+-28] +ldd [%fp+-24],%f30 +ld [%fp+-28],%f29 +fstod %f29,%f28 +fsubd %f30,%f28,%f30 +std %f30,[%fp+-24] +ldd [%fp+-24],%f30 +set .L1280,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L1299; nop +set 146,%i4 +cmp %i5,0; be .L1301; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1301: +.L1299: +set .L870,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-24] +set .L416,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +ldd [%fp+-24],%f30 +ldd [%fp+-40],%f28 +fsubd %f30,%f28,%f30 +std %f30,[%fp+-24] +ldd [%fp+-24],%f30 +set .L1280,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L1303; nop +set 147,%i4 +cmp %i5,0; be .L1305; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1305: +.L1303: +set 5,%i3 +set 2,%l5 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +sll %l5,8*(4-1),%l2; sra %l2,8*(4-1),%l2 +smul %l2,%l3,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,10; be .L1307; nop +set 148,%i4 +cmp %i5,0; be .L1309; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1309: +.L1307: +set 5,%i3 +set 2,%l4 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +sll %l4,8*(4-2),%l2; sra %l2,8*(4-2),%l2 +smul %l2,%l3,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,10; be .L1311; nop +set 149,%i4 +cmp %i5,0; be .L1313; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1313: +.L1311: +set 5,%i3 +set 2,%l3 +st %l3,[%fp+-4] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +ld [%fp+-4],%l2 +smul %l2,%l3,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,10; be .L1315; nop +set 150,%i4 +cmp %i5,0; be .L1317; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1317: +.L1315: +set 5,%i3 +set 2,%l3 +st %l3,[%fp+-8] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +ld [%fp+-8],%l2 +smul %l2,%l3,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,10; be .L1319; nop +set 151,%i4 +cmp %i5,0; be .L1321; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1321: +.L1319: +set 5,%i3 +set 2,%l3 +st %l3,[%fp+-12] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +ld [%fp+-12],%l2 +umul %l2,%l3,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,10; be .L1323; nop +set 152,%i4 +cmp %i5,0; be .L1325; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1325: +.L1323: +set 5,%i3 +set .L529,%l3 +ld [%l3],%f31 +st %f31,[%fp+-28] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f31; fitos %f31,%f31 +ld [%fp+-28],%f30 +fmuls %f31,%f30,%f31 +fstoi %f31,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,10; be .L1327; nop +set 153,%i4 +cmp %i5,0; be .L1329; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1329: +.L1327: +set 5,%i3 +set .L416,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f30; fitod %f30,%f30 +ldd [%fp+-40],%f28 +fmuld %f30,%f28,%f30 +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,10; be .L1331; nop +set 154,%i4 +cmp %i5,0; be .L1333; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1333: +.L1331: +set 5,%i2 +set 2,%l5 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +sll %l5,8*(4-1),%l2; sra %l2,8*(4-1),%l2 +smul %l2,%l3,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,10; be .L1335; nop +set 155,%i4 +cmp %i5,0; be .L1337; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1337: +.L1335: +set 5,%i2 +set 2,%l4 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +sll %l4,8*(4-2),%l2; sra %l2,8*(4-2),%l2 +smul %l2,%l3,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,10; be .L1339; nop +set 156,%i4 +cmp %i5,0; be .L1341; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1341: +.L1339: +set 5,%i2 +set 2,%l3 +st %l3,[%fp+-4] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +ld [%fp+-4],%l2 +smul %l2,%l3,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,10; be .L1343; nop +set 157,%i4 +cmp %i5,0; be .L1345; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1345: +.L1343: +set 5,%i2 +set 2,%l3 +st %l3,[%fp+-8] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +ld [%fp+-8],%l2 +smul %l2,%l3,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,10; be .L1347; nop +set 158,%i4 +cmp %i5,0; be .L1349; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1349: +.L1347: +set 5,%i2 +set 2,%l3 +st %l3,[%fp+-12] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +ld [%fp+-12],%l2 +umul %l2,%l3,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,10; be .L1351; nop +set 159,%i4 +cmp %i5,0; be .L1353; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1353: +.L1351: +set 5,%i2 +set .L529,%l3 +ld [%l3],%f31 +st %f31,[%fp+-28] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f31; fitos %f31,%f31 +ld [%fp+-28],%f30 +fmuls %f31,%f30,%f31 +fstoi %f31,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,10; be .L1355; nop +set 160,%i4 +cmp %i5,0; be .L1357; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1357: +.L1355: +set 5,%i2 +set .L416,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f30; fitod %f30,%f30 +ldd [%fp+-40],%f28 +fmuld %f30,%f28,%f30 +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,10; be .L1359; nop +set 161,%i4 +cmp %i5,0; be .L1361; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1361: +.L1359: +set 5,%i1 +set 2,%l5 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +smul %l3,%i1,%i1 +cmp %i1,10; be .L1363; nop +set 162,%i4 +cmp %i5,0; be .L1365; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1365: +.L1363: +set 5,%i1 +set 2,%l4 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +smul %l3,%i1,%i1 +cmp %i1,10; be .L1367; nop +set 163,%i4 +cmp %i5,0; be .L1369; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1369: +.L1367: +set 5,%i1 +set 2,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +smul %l3,%i1,%i1 +cmp %i1,10; be .L1371; nop +set 164,%i4 +cmp %i5,0; be .L1373; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1373: +.L1371: +set 5,%i1 +set 2,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l3 +smul %l3,%i1,%i1 +cmp %i1,10; be .L1375; nop +set 165,%i4 +cmp %i5,0; be .L1377; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1377: +.L1375: +set 5,%i1 +set 2,%l3 +st %l3,[%fp+-12] +mov %i1,%l3 +ld [%fp+-12],%l2 +umul %l2,%l3,%l3 +mov %l3,%i1 +cmp %i1,10; be .L1379; nop +set 166,%i4 +cmp %i5,0; be .L1381; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1381: +.L1379: +set 5,%i1 +set .L529,%l3 +ld [%l3],%f31 +st %f31,[%fp+-28] +st %i1,[%sp+64]; ld [%sp+64],%f31; fitos %f31,%f31 +ld [%fp+-28],%f30 +fmuls %f31,%f30,%f31 +fstoi %f31,%f0; st %f0,[%sp+64]; ld [%sp+64],%i1 +cmp %i1,10; be .L1383; nop +set 167,%i4 +cmp %i5,0; be .L1385; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1385: +.L1383: +set 5,%i1 +set .L416,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +st %i1,[%sp+64]; ld [%sp+64],%f30; fitod %f30,%f30 +ldd [%fp+-40],%f28 +fmuld %f30,%f28,%f30 +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%i1 +cmp %i1,10; be .L1387; nop +set 168,%i4 +cmp %i5,0; be .L1389; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1389: +.L1387: +set 5,%l7 +set 2,%l5 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +smul %l3,%l7,%l7 +cmp %l7,10; be .L1391; nop +set 169,%i4 +cmp %i5,0; be .L1393; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1393: +.L1391: +set 5,%l7 +set 2,%l4 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +smul %l3,%l7,%l7 +cmp %l7,10; be .L1395; nop +set 170,%i4 +cmp %i5,0; be .L1397; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1397: +.L1395: +set 5,%l7 +set 2,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +smul %l3,%l7,%l7 +cmp %l7,10; be .L1399; nop +set 171,%i4 +cmp %i5,0; be .L1401; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1401: +.L1399: +set 5,%l7 +set 2,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l3 +smul %l3,%l7,%l7 +cmp %l7,10; be .L1403; nop +set 172,%i4 +cmp %i5,0; be .L1405; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1405: +.L1403: +set 5,%l7 +set 2,%l3 +st %l3,[%fp+-12] +mov %l7,%l3 +ld [%fp+-12],%l2 +umul %l2,%l3,%l3 +mov %l3,%l7 +cmp %l7,10; be .L1407; nop +set 173,%i4 +cmp %i5,0; be .L1409; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1409: +.L1407: +set 5,%l7 +set .L529,%l3 +ld [%l3],%f31 +st %f31,[%fp+-28] +st %l7,[%sp+64]; ld [%sp+64],%f31; fitos %f31,%f31 +ld [%fp+-28],%f30 +fmuls %f31,%f30,%f31 +fstoi %f31,%f0; st %f0,[%sp+64]; ld [%sp+64],%l7 +cmp %l7,10; be .L1411; nop +set 174,%i4 +cmp %i5,0; be .L1413; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1413: +.L1411: +set 5,%l7 +set .L416,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +st %l7,[%sp+64]; ld [%sp+64],%f30; fitod %f30,%f30 +ldd [%fp+-40],%f28 +fmuld %f30,%f28,%f30 +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l7 +cmp %l7,10; be .L1415; nop +set 175,%i4 +cmp %i5,0; be .L1417; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1417: +.L1415: +set 5,%l6 +set 2,%l5 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +umul %l3,%l6,%l6 +set 10,%l3 +cmp %l6,%l3; be .L1419; nop +set 176,%i4 +cmp %i5,0; be .L1421; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1421: +.L1419: +set 5,%l6 +set 2,%l4 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +umul %l3,%l6,%l6 +set 10,%l3 +cmp %l6,%l3; be .L1423; nop +set 177,%i4 +cmp %i5,0; be .L1425; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1425: +.L1423: +set 5,%l6 +set 2,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +umul %l3,%l6,%l6 +set 10,%l3 +cmp %l6,%l3; be .L1427; nop +set 178,%i4 +cmp %i5,0; be .L1429; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1429: +.L1427: +set 5,%l6 +set 2,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l3 +umul %l3,%l6,%l6 +set 10,%l3 +cmp %l6,%l3; be .L1431; nop +set 179,%i4 +cmp %i5,0; be .L1433; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1433: +.L1431: +set 5,%l6 +set 2,%l3 +st %l3,[%fp+-12] +ld [%fp+-12],%l3 +umul %l3,%l6,%l6 +set 10,%l3 +cmp %l6,%l3; be .L1435; nop +set 180,%i4 +cmp %i5,0; be .L1437; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1437: +.L1435: +set 5,%l6 +set .L529,%l3 +ld [%l3],%f31 +st %f31,[%fp+-28] +set .L596,%l3 +ld2 [%l3],%f30 +srl %l6,1,%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +fmuld %f30,%f28,%f30 +set 1,%l3 +and %l6,%l3,%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +faddd %f30,%f28,%f30 +fdtos %f30,%f31 +ld [%fp+-28],%f30 +fmuls %f31,%f30,%f31 +set .L828,%l3 +ld [%l3],%f30 +fcmpes %f31,%f30; nop; fbul .L1440; nop +fsubs %f31,%f30,%f30 +fstoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +set 0x80000000,%l2 +add %l3,%l2,%l3 +st %l3,[%fp+-80] +ba .L1441; nop +.L1440: +fstoi %f31,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +st %l3,[%fp+-80] +.L1441: +ld [%fp+-80],%l6 +set 10,%l3 +cmp %l6,%l3; be .L1442; nop +set 181,%i4 +cmp %i5,0; be .L1444; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1444: +.L1442: +set 5,%l6 +set .L416,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +set .L596,%l3 +ld2 [%l3],%f30 +srl %l6,1,%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +fmuld %f30,%f28,%f30 +set 1,%l3 +and %l6,%l3,%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +faddd %f30,%f28,%f30 +ldd [%fp+-40],%f28 +fmuld %f30,%f28,%f30 +set .L836,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbul .L1447; nop +fsubd %f30,%f28,%f28 +fdtoi %f28,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +set 0x80000000,%l2 +add %l3,%l2,%l3 +st %l3,[%fp+-84] +ba .L1448; nop +.L1447: +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +st %l3,[%fp+-84] +.L1448: +ld [%fp+-84],%l6 +set 10,%l3 +cmp %l6,%l3; be .L1449; nop +set 182,%i4 +cmp %i5,0; be .L1451; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1451: +.L1449: +set .L841,%l3 +ld [%l3],%f31 +st %f31,[%fp+-16] +set 2,%l5 +ld [%fp+-16],%f31 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f30; fitos %f30,%f30 +fmuls %f31,%f30,%f31 +st %f31,[%fp+-16] +ld [%fp+-16],%f31 +set .L1455,%l3 +ld [%l3],%f30 +fcmpes %f31,%f30; nop; fbue .L1453; nop +set 183,%i4 +cmp %i5,0; be .L1456; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1456: +.L1453: +set .L841,%l3 +ld [%l3],%f31 +st %f31,[%fp+-16] +set 2,%l4 +ld [%fp+-16],%f31 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f30; fitos %f30,%f30 +fmuls %f31,%f30,%f31 +st %f31,[%fp+-16] +ld [%fp+-16],%f31 +set .L1455,%l3 +ld [%l3],%f30 +fcmpes %f31,%f30; nop; fbue .L1458; nop +set 184,%i4 +cmp %i5,0; be .L1460; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1460: +.L1458: +set .L841,%l3 +ld [%l3],%f31 +st %f31,[%fp+-16] +set 2,%l3 +st %l3,[%fp+-4] +ld [%fp+-16],%f31 +ld [%fp+-4],%l3 +st %l3,[%sp+64]; ld [%sp+64],%f30; fitos %f30,%f30 +fmuls %f31,%f30,%f31 +st %f31,[%fp+-16] +ld [%fp+-16],%f31 +set .L1455,%l3 +ld [%l3],%f30 +fcmpes %f31,%f30; nop; fbue .L1462; nop +set 185,%i4 +cmp %i5,0; be .L1464; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1464: +.L1462: +set .L841,%l3 +ld [%l3],%f31 +st %f31,[%fp+-16] +set 2,%l3 +st %l3,[%fp+-8] +ld [%fp+-16],%f31 +ld [%fp+-8],%l3 +st %l3,[%sp+64]; ld [%sp+64],%f30; fitos %f30,%f30 +fmuls %f31,%f30,%f31 +st %f31,[%fp+-16] +ld [%fp+-16],%f31 +set .L1455,%l3 +ld [%l3],%f30 +fcmpes %f31,%f30; nop; fbue .L1466; nop +set 186,%i4 +cmp %i5,0; be .L1468; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1468: +.L1466: +set .L841,%l3 +ld [%l3],%f31 +st %f31,[%fp+-16] +set 2,%l3 +st %l3,[%fp+-12] +ld [%fp+-12],%l3 +ld [%fp+-16],%f31 +set .L596,%l2 +ld2 [%l2],%f28 +srl %l3,1,%l2 +st %l2,[%sp+64]; ld [%sp+64],%f26; fitod %f26,%f26 +fmuld %f28,%f26,%f28 +set 1,%l2 +and %l3,%l2,%l3 +st %l3,[%sp+64]; ld [%sp+64],%f26; fitod %f26,%f26 +faddd %f28,%f26,%f28 +fdtos %f28,%f30 +fmuls %f31,%f30,%f31 +st %f31,[%fp+-16] +ld [%fp+-16],%f31 +set .L1455,%l3 +ld [%l3],%f30 +fcmpes %f31,%f30; nop; fbue .L1470; nop +set 187,%i4 +cmp %i5,0; be .L1472; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1472: +.L1470: +set .L841,%l3 +ld [%l3],%f31 +st %f31,[%fp+-16] +set .L529,%l3 +ld [%l3],%f31 +st %f31,[%fp+-28] +ld [%fp+-16],%f31 +ld [%fp+-28],%f30 +fmuls %f31,%f30,%f31 +st %f31,[%fp+-16] +ld [%fp+-16],%f31 +set .L1455,%l3 +ld [%l3],%f30 +fcmpes %f31,%f30; nop; fbue .L1474; nop +set 188,%i4 +cmp %i5,0; be .L1476; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1476: +.L1474: +set .L841,%l3 +ld [%l3],%f31 +st %f31,[%fp+-16] +set .L416,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +ld [%fp+-16],%f31 +fstod %f31,%f30 +ldd [%fp+-40],%f28 +fmuld %f30,%f28,%f30 +fdtos %f30,%f31 +st %f31,[%fp+-16] +ld [%fp+-16],%f31 +set .L1455,%l3 +ld [%l3],%f30 +fcmpes %f31,%f30; nop; fbue .L1478; nop +set 189,%i4 +cmp %i5,0; be .L1480; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1480: +.L1478: +set .L870,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-24] +set 2,%l5 +ldd [%fp+-24],%f30 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +fmuld %f30,%f28,%f30 +std %f30,[%fp+-24] +ldd [%fp+-24],%f30 +set .L1484,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L1482; nop +set 190,%i4 +cmp %i5,0; be .L1485; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1485: +.L1482: +set .L870,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-24] +set 2,%l4 +ldd [%fp+-24],%f30 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +fmuld %f30,%f28,%f30 +std %f30,[%fp+-24] +ldd [%fp+-24],%f30 +set .L1484,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L1487; nop +set 191,%i4 +cmp %i5,0; be .L1489; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1489: +.L1487: +set .L870,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-24] +set 2,%l3 +st %l3,[%fp+-4] +ldd [%fp+-24],%f30 +ld [%fp+-4],%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +fmuld %f30,%f28,%f30 +std %f30,[%fp+-24] +ldd [%fp+-24],%f30 +set .L1484,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L1491; nop +set 192,%i4 +cmp %i5,0; be .L1493; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1493: +.L1491: +set .L870,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-24] +set 2,%l3 +st %l3,[%fp+-8] +ldd [%fp+-24],%f30 +ld [%fp+-8],%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +fmuld %f30,%f28,%f30 +std %f30,[%fp+-24] +ldd [%fp+-24],%f30 +set .L1484,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L1495; nop +set 193,%i4 +cmp %i5,0; be .L1497; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1497: +.L1495: +set .L870,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-24] +set 2,%l3 +st %l3,[%fp+-12] +ld [%fp+-12],%l3 +ldd [%fp+-24],%f30 +set .L596,%l2 +ld2 [%l2],%f28 +srl %l3,1,%l2 +st %l2,[%sp+64]; ld [%sp+64],%f26; fitod %f26,%f26 +fmuld %f28,%f26,%f28 +set 1,%l2 +and %l3,%l2,%l3 +st %l3,[%sp+64]; ld [%sp+64],%f26; fitod %f26,%f26 +faddd %f28,%f26,%f28 +fmuld %f30,%f28,%f30 +std %f30,[%fp+-24] +ldd [%fp+-24],%f30 +set .L1484,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L1499; nop +set 194,%i4 +cmp %i5,0; be .L1501; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1501: +.L1499: +set .L870,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-24] +set .L529,%l3 +ld [%l3],%f31 +st %f31,[%fp+-28] +ldd [%fp+-24],%f30 +ld [%fp+-28],%f29 +fstod %f29,%f28 +fmuld %f30,%f28,%f30 +std %f30,[%fp+-24] +ldd [%fp+-24],%f30 +set .L1484,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L1503; nop +set 195,%i4 +cmp %i5,0; be .L1505; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1505: +.L1503: +set .L870,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-24] +set .L416,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +ldd [%fp+-24],%f30 +ldd [%fp+-40],%f28 +fmuld %f30,%f28,%f30 +std %f30,[%fp+-24] +ldd [%fp+-24],%f30 +set .L1484,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L1507; nop +set 196,%i4 +cmp %i5,0; be .L1509; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1509: +.L1507: +set 5,%i3 +set 2,%l5 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +sll %l5,8*(4-1),%l2; sra %l2,8*(4-1),%l2 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,2; be .L1511; nop +set 197,%i4 +cmp %i5,0; be .L1513; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1513: +.L1511: +set 5,%i3 +set 2,%l4 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +sll %l4,8*(4-2),%l2; sra %l2,8*(4-2),%l2 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,2; be .L1515; nop +set 198,%i4 +cmp %i5,0; be .L1517; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1517: +.L1515: +set 5,%i3 +set 2,%l3 +st %l3,[%fp+-4] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +ld [%fp+-4],%l2 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,2; be .L1519; nop +set 199,%i4 +cmp %i5,0; be .L1521; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1521: +.L1519: +set 5,%i3 +set 2,%l3 +st %l3,[%fp+-8] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +ld [%fp+-8],%l2 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,2; be .L1523; nop +set 200,%i4 +cmp %i5,0; be .L1525; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1525: +.L1523: +set 5,%i3 +set 2,%l3 +st %l3,[%fp+-12] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +ld [%fp+-12],%l2 +wr %g0,%g0,%y; nop; nop; nop; udiv %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,2; be .L1527; nop +set 201,%i4 +cmp %i5,0; be .L1529; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1529: +.L1527: +set 5,%i3 +set .L529,%l3 +ld [%l3],%f31 +st %f31,[%fp+-28] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f31; fitos %f31,%f31 +ld [%fp+-28],%f30 +fdivs %f31,%f30,%f31 +fstoi %f31,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,2; be .L1531; nop +set 202,%i4 +cmp %i5,0; be .L1533; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1533: +.L1531: +set 5,%i3 +set .L416,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f30; fitod %f30,%f30 +ldd [%fp+-40],%f28 +fdivd %f30,%f28,%f30 +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,2; be .L1535; nop +set 203,%i4 +cmp %i5,0; be .L1537; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1537: +.L1535: +set 5,%i2 +set 2,%l5 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +sll %l5,8*(4-1),%l2; sra %l2,8*(4-1),%l2 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,2; be .L1539; nop +set 204,%i4 +cmp %i5,0; be .L1541; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1541: +.L1539: +set 5,%i2 +set 2,%l4 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +sll %l4,8*(4-2),%l2; sra %l2,8*(4-2),%l2 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,2; be .L1543; nop +set 205,%i4 +cmp %i5,0; be .L1545; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1545: +.L1543: +set 5,%i2 +set 2,%l3 +st %l3,[%fp+-4] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +ld [%fp+-4],%l2 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,2; be .L1547; nop +set 206,%i4 +cmp %i5,0; be .L1549; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1549: +.L1547: +set 5,%i2 +set 2,%l3 +st %l3,[%fp+-8] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +ld [%fp+-8],%l2 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,2; be .L1551; nop +set 207,%i4 +cmp %i5,0; be .L1553; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1553: +.L1551: +set 5,%i2 +set 2,%l3 +st %l3,[%fp+-12] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +ld [%fp+-12],%l2 +wr %g0,%g0,%y; nop; nop; nop; udiv %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,2; be .L1555; nop +set 208,%i4 +cmp %i5,0; be .L1557; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1557: +.L1555: +set 5,%i2 +set .L529,%l3 +ld [%l3],%f31 +st %f31,[%fp+-28] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f31; fitos %f31,%f31 +ld [%fp+-28],%f30 +fdivs %f31,%f30,%f31 +fstoi %f31,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,2; be .L1559; nop +set 209,%i4 +cmp %i5,0; be .L1561; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1561: +.L1559: +set 5,%i2 +set .L416,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f30; fitod %f30,%f30 +ldd [%fp+-40],%f28 +fdivd %f30,%f28,%f30 +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,2; be .L1563; nop +set 210,%i4 +cmp %i5,0; be .L1565; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1565: +.L1563: +set 5,%i1 +set 2,%l5 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +sra %i1,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %i1,%l3,%i1 +cmp %i1,2; be .L1567; nop +set 211,%i4 +cmp %i5,0; be .L1569; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1569: +.L1567: +set 5,%i1 +set 2,%l4 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +sra %i1,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %i1,%l3,%i1 +cmp %i1,2; be .L1571; nop +set 212,%i4 +cmp %i5,0; be .L1573; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1573: +.L1571: +set 5,%i1 +set 2,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +sra %i1,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %i1,%l3,%i1 +cmp %i1,2; be .L1575; nop +set 213,%i4 +cmp %i5,0; be .L1577; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1577: +.L1575: +set 5,%i1 +set 2,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l3 +sra %i1,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %i1,%l3,%i1 +cmp %i1,2; be .L1579; nop +set 214,%i4 +cmp %i5,0; be .L1581; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1581: +.L1579: +set 5,%i1 +set 2,%l3 +st %l3,[%fp+-12] +mov %i1,%l3 +ld [%fp+-12],%l2 +wr %g0,%g0,%y; nop; nop; nop; udiv %l3,%l2,%l3 +mov %l3,%i1 +cmp %i1,2; be .L1583; nop +set 215,%i4 +cmp %i5,0; be .L1585; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1585: +.L1583: +set 5,%i1 +set .L529,%l3 +ld [%l3],%f31 +st %f31,[%fp+-28] +st %i1,[%sp+64]; ld [%sp+64],%f31; fitos %f31,%f31 +ld [%fp+-28],%f30 +fdivs %f31,%f30,%f31 +fstoi %f31,%f0; st %f0,[%sp+64]; ld [%sp+64],%i1 +cmp %i1,2; be .L1587; nop +set 216,%i4 +cmp %i5,0; be .L1589; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1589: +.L1587: +set 5,%i1 +set .L416,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +st %i1,[%sp+64]; ld [%sp+64],%f30; fitod %f30,%f30 +ldd [%fp+-40],%f28 +fdivd %f30,%f28,%f30 +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%i1 +cmp %i1,2; be .L1591; nop +set 217,%i4 +cmp %i5,0; be .L1593; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1593: +.L1591: +set 5,%l7 +set 2,%l5 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +sra %l7,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l7,%l3,%l7 +cmp %l7,2; be .L1595; nop +set 218,%i4 +cmp %i5,0; be .L1597; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1597: +.L1595: +set 5,%l7 +set 2,%l4 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +sra %l7,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l7,%l3,%l7 +cmp %l7,2; be .L1599; nop +set 219,%i4 +cmp %i5,0; be .L1601; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1601: +.L1599: +set 5,%l7 +set 2,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +sra %l7,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l7,%l3,%l7 +cmp %l7,2; be .L1603; nop +set 220,%i4 +cmp %i5,0; be .L1605; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1605: +.L1603: +set 5,%l7 +set 2,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l3 +sra %l7,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l7,%l3,%l7 +cmp %l7,2; be .L1607; nop +set 221,%i4 +cmp %i5,0; be .L1609; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1609: +.L1607: +set 5,%l7 +set 2,%l3 +st %l3,[%fp+-12] +mov %l7,%l3 +ld [%fp+-12],%l2 +wr %g0,%g0,%y; nop; nop; nop; udiv %l3,%l2,%l3 +mov %l3,%l7 +cmp %l7,2; be .L1611; nop +set 222,%i4 +cmp %i5,0; be .L1613; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1613: +.L1611: +set 5,%l7 +set .L529,%l3 +ld [%l3],%f31 +st %f31,[%fp+-28] +st %l7,[%sp+64]; ld [%sp+64],%f31; fitos %f31,%f31 +ld [%fp+-28],%f30 +fdivs %f31,%f30,%f31 +fstoi %f31,%f0; st %f0,[%sp+64]; ld [%sp+64],%l7 +cmp %l7,2; be .L1615; nop +set 223,%i4 +cmp %i5,0; be .L1617; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1617: +.L1615: +set 5,%l7 +set .L416,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +st %l7,[%sp+64]; ld [%sp+64],%f30; fitod %f30,%f30 +ldd [%fp+-40],%f28 +fdivd %f30,%f28,%f30 +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l7 +cmp %l7,2; be .L1619; nop +set 224,%i4 +cmp %i5,0; be .L1621; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1621: +.L1619: +set 5,%l6 +set 2,%l5 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +wr %g0,%g0,%y; nop; nop; nop; udiv %l6,%l3,%l6 +set 2,%l3 +cmp %l6,%l3; be .L1623; nop +set 225,%i4 +cmp %i5,0; be .L1625; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1625: +.L1623: +set 5,%l6 +set 2,%l4 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +wr %g0,%g0,%y; nop; nop; nop; udiv %l6,%l3,%l6 +set 2,%l3 +cmp %l6,%l3; be .L1627; nop +set 226,%i4 +cmp %i5,0; be .L1629; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1629: +.L1627: +set 5,%l6 +set 2,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +wr %g0,%g0,%y; nop; nop; nop; udiv %l6,%l3,%l6 +set 2,%l3 +cmp %l6,%l3; be .L1631; nop +set 227,%i4 +cmp %i5,0; be .L1633; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1633: +.L1631: +set 5,%l6 +set 2,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l3 +wr %g0,%g0,%y; nop; nop; nop; udiv %l6,%l3,%l6 +set 2,%l3 +cmp %l6,%l3; be .L1635; nop +set 228,%i4 +cmp %i5,0; be .L1637; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1637: +.L1635: +set 5,%l6 +set 2,%l3 +st %l3,[%fp+-12] +ld [%fp+-12],%l2 +wr %g0,%g0,%y; nop; nop; nop; udiv %l6,%l2,%l6 +cmp %l6,%l3; be .L1639; nop +set 229,%i4 +cmp %i5,0; be .L1641; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1641: +.L1639: +set 5,%l6 +set .L529,%l3 +ld [%l3],%f31 +st %f31,[%fp+-28] +set .L596,%l3 +ld2 [%l3],%f30 +srl %l6,1,%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +fmuld %f30,%f28,%f30 +set 1,%l3 +and %l6,%l3,%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +faddd %f30,%f28,%f30 +fdtos %f30,%f31 +ld [%fp+-28],%f30 +fdivs %f31,%f30,%f31 +set .L828,%l3 +ld [%l3],%f30 +fcmpes %f31,%f30; nop; fbul .L1644; nop +fsubs %f31,%f30,%f30 +fstoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +set 0x80000000,%l2 +add %l3,%l2,%l3 +st %l3,[%fp+-88] +ba .L1645; nop +.L1644: +fstoi %f31,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +st %l3,[%fp+-88] +.L1645: +ld [%fp+-88],%l6 +set 2,%l3 +cmp %l6,%l3; be .L1646; nop +set 230,%i4 +cmp %i5,0; be .L1648; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1648: +.L1646: +set 5,%l6 +set .L416,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +set .L596,%l3 +ld2 [%l3],%f30 +srl %l6,1,%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +fmuld %f30,%f28,%f30 +set 1,%l3 +and %l6,%l3,%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +faddd %f30,%f28,%f30 +ldd [%fp+-40],%f28 +fdivd %f30,%f28,%f30 +set .L836,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbul .L1651; nop +fsubd %f30,%f28,%f28 +fdtoi %f28,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +set 0x80000000,%l2 +add %l3,%l2,%l3 +st %l3,[%fp+-92] +ba .L1652; nop +.L1651: +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +st %l3,[%fp+-92] +.L1652: +ld [%fp+-92],%l6 +set 2,%l3 +cmp %l6,%l3; be .L1653; nop +set 231,%i4 +cmp %i5,0; be .L1655; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1655: +.L1653: +set .L841,%l3 +ld [%l3],%f31 +st %f31,[%fp+-16] +set 2,%l5 +ld [%fp+-16],%f31 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f30; fitos %f30,%f30 +fdivs %f31,%f30,%f31 +st %f31,[%fp+-16] +ld [%fp+-16],%f31 +fstod %f31,%f30 +set .L1659,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L1657; nop +set 232,%i4 +cmp %i5,0; be .L1660; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1660: +.L1657: +set .L841,%l3 +ld [%l3],%f31 +st %f31,[%fp+-16] +set 2,%l4 +ld [%fp+-16],%f31 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f30; fitos %f30,%f30 +fdivs %f31,%f30,%f31 +st %f31,[%fp+-16] +ld [%fp+-16],%f31 +fstod %f31,%f30 +set .L1659,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L1662; nop +set 233,%i4 +cmp %i5,0; be .L1664; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1664: +.L1662: +set .L841,%l3 +ld [%l3],%f31 +st %f31,[%fp+-16] +set 2,%l3 +st %l3,[%fp+-4] +ld [%fp+-16],%f31 +ld [%fp+-4],%l3 +st %l3,[%sp+64]; ld [%sp+64],%f30; fitos %f30,%f30 +fdivs %f31,%f30,%f31 +st %f31,[%fp+-16] +ld [%fp+-16],%f31 +fstod %f31,%f30 +set .L1659,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L1666; nop +set 234,%i4 +cmp %i5,0; be .L1668; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1668: +.L1666: +set .L841,%l3 +ld [%l3],%f31 +st %f31,[%fp+-16] +set 2,%l3 +st %l3,[%fp+-8] +ld [%fp+-16],%f31 +ld [%fp+-8],%l3 +st %l3,[%sp+64]; ld [%sp+64],%f30; fitos %f30,%f30 +fdivs %f31,%f30,%f31 +st %f31,[%fp+-16] +ld [%fp+-16],%f31 +fstod %f31,%f30 +set .L1659,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L1670; nop +set 235,%i4 +cmp %i5,0; be .L1672; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1672: +.L1670: +set .L841,%l3 +ld [%l3],%f31 +st %f31,[%fp+-16] +set 2,%l3 +st %l3,[%fp+-12] +ld [%fp+-12],%l3 +ld [%fp+-16],%f31 +set .L596,%l2 +ld2 [%l2],%f28 +srl %l3,1,%l2 +st %l2,[%sp+64]; ld [%sp+64],%f26; fitod %f26,%f26 +fmuld %f28,%f26,%f28 +set 1,%l2 +and %l3,%l2,%l3 +st %l3,[%sp+64]; ld [%sp+64],%f26; fitod %f26,%f26 +faddd %f28,%f26,%f28 +fdtos %f28,%f30 +fdivs %f31,%f30,%f31 +st %f31,[%fp+-16] +ld [%fp+-16],%f31 +fstod %f31,%f30 +set .L1659,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L1674; nop +set 236,%i4 +cmp %i5,0; be .L1676; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1676: +.L1674: +set .L841,%l3 +ld [%l3],%f31 +st %f31,[%fp+-16] +set .L529,%l3 +ld [%l3],%f31 +st %f31,[%fp+-28] +ld [%fp+-16],%f31 +ld [%fp+-28],%f30 +fdivs %f31,%f30,%f31 +st %f31,[%fp+-16] +ld [%fp+-16],%f31 +fstod %f31,%f30 +set .L1659,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L1678; nop +set 237,%i4 +cmp %i5,0; be .L1680; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1680: +.L1678: +set .L841,%l3 +ld [%l3],%f31 +st %f31,[%fp+-16] +set .L416,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +ld [%fp+-16],%f31 +fstod %f31,%f30 +ldd [%fp+-40],%f28 +fdivd %f30,%f28,%f30 +fdtos %f30,%f31 +st %f31,[%fp+-16] +ld [%fp+-16],%f31 +fstod %f31,%f30 +set .L1659,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L1682; nop +set 238,%i4 +cmp %i5,0; be .L1684; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1684: +.L1682: +set .L870,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-24] +set 2,%l5 +ldd [%fp+-24],%f30 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +fdivd %f30,%f28,%f30 +std %f30,[%fp+-24] +ldd [%fp+-24],%f30 +set .L1659,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L1686; nop +set 239,%i4 +cmp %i5,0; be .L1688; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1688: +.L1686: +set .L870,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-24] +set 2,%l4 +ldd [%fp+-24],%f30 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +fdivd %f30,%f28,%f30 +std %f30,[%fp+-24] +ldd [%fp+-24],%f30 +set .L1659,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L1690; nop +set 240,%i4 +cmp %i5,0; be .L1692; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1692: +.L1690: +set .L870,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-24] +set 2,%l3 +st %l3,[%fp+-4] +ldd [%fp+-24],%f30 +ld [%fp+-4],%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +fdivd %f30,%f28,%f30 +std %f30,[%fp+-24] +ldd [%fp+-24],%f30 +set .L1659,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L1694; nop +set 241,%i4 +cmp %i5,0; be .L1696; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1696: +.L1694: +set .L870,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-24] +set 2,%l3 +st %l3,[%fp+-8] +ldd [%fp+-24],%f30 +ld [%fp+-8],%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +fdivd %f30,%f28,%f30 +std %f30,[%fp+-24] +ldd [%fp+-24],%f30 +set .L1659,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L1698; nop +set 242,%i4 +cmp %i5,0; be .L1700; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1700: +.L1698: +set .L870,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-24] +set 2,%l3 +st %l3,[%fp+-12] +ld [%fp+-12],%l3 +ldd [%fp+-24],%f30 +set .L596,%l2 +ld2 [%l2],%f28 +srl %l3,1,%l2 +st %l2,[%sp+64]; ld [%sp+64],%f26; fitod %f26,%f26 +fmuld %f28,%f26,%f28 +set 1,%l2 +and %l3,%l2,%l3 +st %l3,[%sp+64]; ld [%sp+64],%f26; fitod %f26,%f26 +faddd %f28,%f26,%f28 +fdivd %f30,%f28,%f30 +std %f30,[%fp+-24] +ldd [%fp+-24],%f30 +set .L1659,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L1702; nop +set 243,%i4 +cmp %i5,0; be .L1704; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1704: +.L1702: +set .L870,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-24] +set .L529,%l3 +ld [%l3],%f31 +st %f31,[%fp+-28] +ldd [%fp+-24],%f30 +ld [%fp+-28],%f29 +fstod %f29,%f28 +fdivd %f30,%f28,%f30 +std %f30,[%fp+-24] +ldd [%fp+-24],%f30 +set .L1659,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L1706; nop +set 244,%i4 +cmp %i5,0; be .L1708; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1708: +.L1706: +set .L870,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-24] +set .L416,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-40] +ldd [%fp+-24],%f30 +ldd [%fp+-40],%f28 +fdivd %f30,%f28,%f30 +std %f30,[%fp+-24] +ldd [%fp+-24],%f30 +set .L1659,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L1710; nop +set 245,%i4 +cmp %i5,0; be .L1712; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1712: +.L1710: +set 5,%i3 +set 2,%l5 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +sll %l5,8*(4-1),%l2; sra %l2,8*(4-1),%l2 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,%l2,%g1 +; smul %g1,%l2,%g1; sub %l3,%g1,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,1; be .L1714; nop +set 246,%i4 +cmp %i5,0; be .L1716; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1716: +.L1714: +set 5,%i3 +set 2,%l4 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +sll %l4,8*(4-2),%l2; sra %l2,8*(4-2),%l2 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,%l2,%g1 +; smul %g1,%l2,%g1; sub %l3,%g1,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,1; be .L1718; nop +set 247,%i4 +cmp %i5,0; be .L1720; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1720: +.L1718: +set 5,%i3 +set 2,%l3 +st %l3,[%fp+-4] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +ld [%fp+-4],%l2 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,%l2,%g1 +; smul %g1,%l2,%g1; sub %l3,%g1,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,1; be .L1722; nop +set 248,%i4 +cmp %i5,0; be .L1724; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1724: +.L1722: +set 5,%i3 +set 2,%l3 +st %l3,[%fp+-8] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +ld [%fp+-8],%l2 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,%l2,%g1 +; smul %g1,%l2,%g1; sub %l3,%g1,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,1; be .L1726; nop +set 249,%i4 +cmp %i5,0; be .L1728; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1728: +.L1726: +set 5,%i3 +set 2,%l3 +st %l3,[%fp+-12] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +ld [%fp+-12],%l2 +wr %g0,%g0,%y; nop; nop; nop; udiv %l3,%l2,%g1 +; umul %g1,%l2,%g1; sub %l3,%g1,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,1; be .L1730; nop +set 250,%i4 +cmp %i5,0; be .L1732; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1732: +.L1730: +set 5,%i2 +set 2,%l5 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +sll %l5,8*(4-1),%l2; sra %l2,8*(4-1),%l2 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,%l2,%g1 +; smul %g1,%l2,%g1; sub %l3,%g1,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,1; be .L1734; nop +set 251,%i4 +cmp %i5,0; be .L1736; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1736: +.L1734: +set 5,%i2 +set 2,%l4 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +sll %l4,8*(4-2),%l2; sra %l2,8*(4-2),%l2 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,%l2,%g1 +; smul %g1,%l2,%g1; sub %l3,%g1,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,1; be .L1738; nop +set 252,%i4 +cmp %i5,0; be .L1740; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1740: +.L1738: +set 5,%i2 +set 2,%l3 +st %l3,[%fp+-4] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +ld [%fp+-4],%l2 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,%l2,%g1 +; smul %g1,%l2,%g1; sub %l3,%g1,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,1; be .L1742; nop +set 253,%i4 +cmp %i5,0; be .L1744; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1744: +.L1742: +set 5,%i2 +set 2,%l3 +st %l3,[%fp+-8] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +ld [%fp+-8],%l2 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,%l2,%g1 +; smul %g1,%l2,%g1; sub %l3,%g1,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,1; be .L1746; nop +set 254,%i4 +cmp %i5,0; be .L1748; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1748: +.L1746: +set 5,%i2 +set 2,%l3 +st %l3,[%fp+-12] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +ld [%fp+-12],%l2 +wr %g0,%g0,%y; nop; nop; nop; udiv %l3,%l2,%g1 +; umul %g1,%l2,%g1; sub %l3,%g1,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,1; be .L1750; nop +set 255,%i4 +cmp %i5,0; be .L1752; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1752: +.L1750: +set 5,%i1 +set 2,%l5 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +sra %i1,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %i1,%l3,%g1 +; smul %g1,%l3,%g1; sub %i1,%g1,%i1 +cmp %i1,1; be .L1754; nop +set 256,%i4 +cmp %i5,0; be .L1756; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1756: +.L1754: +set 5,%i1 +set 2,%l4 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +sra %i1,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %i1,%l3,%g1 +; smul %g1,%l3,%g1; sub %i1,%g1,%i1 +cmp %i1,1; be .L1758; nop +set 257,%i4 +cmp %i5,0; be .L1760; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1760: +.L1758: +set 5,%i1 +set 2,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +sra %i1,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %i1,%l3,%g1 +; smul %g1,%l3,%g1; sub %i1,%g1,%i1 +cmp %i1,1; be .L1762; nop +set 258,%i4 +cmp %i5,0; be .L1764; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1764: +.L1762: +set 5,%i1 +set 2,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l3 +sra %i1,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %i1,%l3,%g1 +; smul %g1,%l3,%g1; sub %i1,%g1,%i1 +cmp %i1,1; be .L1766; nop +set 259,%i4 +cmp %i5,0; be .L1768; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1768: +.L1766: +set 5,%i1 +set 2,%l3 +st %l3,[%fp+-12] +mov %i1,%l3 +ld [%fp+-12],%l2 +wr %g0,%g0,%y; nop; nop; nop; udiv %l3,%l2,%g1 +; umul %g1,%l2,%g1; sub %l3,%g1,%l3 +mov %l3,%i1 +cmp %i1,1; be .L1770; nop +set 260,%i4 +cmp %i5,0; be .L1772; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1772: +.L1770: +set 5,%l7 +set 2,%l5 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +sra %l7,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l7,%l3,%g1 +; smul %g1,%l3,%g1; sub %l7,%g1,%l7 +cmp %l7,1; be .L1774; nop +set 261,%i4 +cmp %i5,0; be .L1776; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1776: +.L1774: +set 5,%l7 +set 2,%l4 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +sra %l7,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l7,%l3,%g1 +; smul %g1,%l3,%g1; sub %l7,%g1,%l7 +cmp %l7,1; be .L1778; nop +set 262,%i4 +cmp %i5,0; be .L1780; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1780: +.L1778: +set 5,%l7 +set 2,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +sra %l7,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l7,%l3,%g1 +; smul %g1,%l3,%g1; sub %l7,%g1,%l7 +cmp %l7,1; be .L1782; nop +set 263,%i4 +cmp %i5,0; be .L1784; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1784: +.L1782: +set 5,%l7 +set 2,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l3 +sra %l7,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l7,%l3,%g1 +; smul %g1,%l3,%g1; sub %l7,%g1,%l7 +cmp %l7,1; be .L1786; nop +set 264,%i4 +cmp %i5,0; be .L1788; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1788: +.L1786: +set 5,%l7 +set 2,%l3 +st %l3,[%fp+-12] +mov %l7,%l3 +ld [%fp+-12],%l2 +wr %g0,%g0,%y; nop; nop; nop; udiv %l3,%l2,%g1 +; umul %g1,%l2,%g1; sub %l3,%g1,%l3 +mov %l3,%l7 +cmp %l7,1; be .L1790; nop +set 265,%i4 +cmp %i5,0; be .L1792; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1792: +.L1790: +set 5,%l6 +set 2,%l5 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +wr %g0,%g0,%y; nop; nop; nop; udiv %l6,%l3,%g1 +; umul %g1,%l3,%g1; sub %l6,%g1,%l6 +set 1,%l3 +cmp %l6,%l3; be .L1794; nop +set 266,%i4 +cmp %i5,0; be .L1796; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1796: +.L1794: +set 5,%l6 +set 2,%l4 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +wr %g0,%g0,%y; nop; nop; nop; udiv %l6,%l3,%g1 +; umul %g1,%l3,%g1; sub %l6,%g1,%l6 +set 1,%l3 +cmp %l6,%l3; be .L1798; nop +set 267,%i4 +cmp %i5,0; be .L1800; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1800: +.L1798: +set 5,%l6 +set 2,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +wr %g0,%g0,%y; nop; nop; nop; udiv %l6,%l3,%g1 +; umul %g1,%l3,%g1; sub %l6,%g1,%l6 +set 1,%l3 +cmp %l6,%l3; be .L1802; nop +set 268,%i4 +cmp %i5,0; be .L1804; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1804: +.L1802: +set 5,%l6 +set 2,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l3 +wr %g0,%g0,%y; nop; nop; nop; udiv %l6,%l3,%g1 +; umul %g1,%l3,%g1; sub %l6,%g1,%l6 +set 1,%l3 +cmp %l6,%l3; be .L1806; nop +set 269,%i4 +cmp %i5,0; be .L1808; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1808: +.L1806: +set 5,%l6 +set 2,%l3 +st %l3,[%fp+-12] +ld [%fp+-12],%l3 +wr %g0,%g0,%y; nop; nop; nop; udiv %l6,%l3,%g1 +; umul %g1,%l3,%g1; sub %l6,%g1,%l6 +set 1,%l3 +cmp %l6,%l3; be .L1810; nop +set 270,%i4 +cmp %i5,0; be .L1812; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1812: +.L1810: +set 5,%i3 +set 2,%l5 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +sll %l5,8*(4-1),%l2; sra %l2,8*(4-1),%l2 +sra %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,1; be .L1814; nop +set 271,%i4 +cmp %i5,0; be .L1816; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1816: +.L1814: +set 5,%i3 +set 2,%l4 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +sll %l4,8*(4-2),%l2; sra %l2,8*(4-2),%l2 +sra %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,1; be .L1818; nop +set 272,%i4 +cmp %i5,0; be .L1820; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1820: +.L1818: +set 5,%i3 +set 2,%l3 +st %l3,[%fp+-4] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +ld [%fp+-4],%l2 +sra %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,1; be .L1822; nop +set 273,%i4 +cmp %i5,0; be .L1824; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1824: +.L1822: +set 5,%i3 +set 2,%l3 +st %l3,[%fp+-8] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +ld [%fp+-8],%l2 +sra %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,1; be .L1826; nop +set 274,%i4 +cmp %i5,0; be .L1828; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1828: +.L1826: +set 5,%i3 +set 2,%l3 +st %l3,[%fp+-12] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +ld [%fp+-12],%l2 +sra %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,1; be .L1830; nop +set 275,%i4 +cmp %i5,0; be .L1832; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1832: +.L1830: +set 5,%i2 +set 2,%l5 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +sll %l5,8*(4-1),%l2; sra %l2,8*(4-1),%l2 +sra %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,1; be .L1834; nop +set 276,%i4 +cmp %i5,0; be .L1836; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1836: +.L1834: +set 5,%i2 +set 2,%l4 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +sll %l4,8*(4-2),%l2; sra %l2,8*(4-2),%l2 +sra %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,1; be .L1838; nop +set 277,%i4 +cmp %i5,0; be .L1840; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1840: +.L1838: +set 5,%i2 +set 2,%l3 +st %l3,[%fp+-4] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +ld [%fp+-4],%l2 +sra %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,1; be .L1842; nop +set 278,%i4 +cmp %i5,0; be .L1844; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1844: +.L1842: +set 5,%i2 +set 2,%l3 +st %l3,[%fp+-8] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +ld [%fp+-8],%l2 +sra %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,1; be .L1846; nop +set 279,%i4 +cmp %i5,0; be .L1848; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1848: +.L1846: +set 5,%i2 +set 2,%l3 +st %l3,[%fp+-12] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +ld [%fp+-12],%l2 +sra %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,1; be .L1850; nop +set 280,%i4 +cmp %i5,0; be .L1852; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1852: +.L1850: +set 5,%i1 +set 2,%l5 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +sra %i1,%l3,%i1 +cmp %i1,1; be .L1854; nop +set 281,%i4 +cmp %i5,0; be .L1856; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1856: +.L1854: +set 5,%i1 +set 2,%l4 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +sra %i1,%l3,%i1 +cmp %i1,1; be .L1858; nop +set 282,%i4 +cmp %i5,0; be .L1860; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1860: +.L1858: +set 5,%i1 +set 2,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +sra %i1,%l3,%i1 +cmp %i1,1; be .L1862; nop +set 283,%i4 +cmp %i5,0; be .L1864; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1864: +.L1862: +set 5,%i1 +set 2,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l3 +sra %i1,%l3,%i1 +cmp %i1,1; be .L1866; nop +set 284,%i4 +cmp %i5,0; be .L1868; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1868: +.L1866: +set 5,%i1 +set 2,%l3 +st %l3,[%fp+-12] +ld [%fp+-12],%l3 +sra %i1,%l3,%i1 +cmp %i1,1; be .L1870; nop +set 285,%i4 +cmp %i5,0; be .L1872; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1872: +.L1870: +set 5,%l7 +set 2,%l5 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +sra %l7,%l3,%l7 +cmp %l7,1; be .L1874; nop +set 286,%i4 +cmp %i5,0; be .L1876; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1876: +.L1874: +set 5,%l7 +set 2,%l4 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +sra %l7,%l3,%l7 +cmp %l7,1; be .L1878; nop +set 287,%i4 +cmp %i5,0; be .L1880; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1880: +.L1878: +set 5,%l7 +set 2,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +sra %l7,%l3,%l7 +cmp %l7,1; be .L1882; nop +set 288,%i4 +cmp %i5,0; be .L1884; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1884: +.L1882: +set 5,%l7 +set 2,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l3 +sra %l7,%l3,%l7 +cmp %l7,1; be .L1886; nop +set 289,%i4 +cmp %i5,0; be .L1888; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1888: +.L1886: +set 5,%l7 +set 2,%l3 +st %l3,[%fp+-12] +ld [%fp+-12],%l3 +sra %l7,%l3,%l7 +cmp %l7,1; be .L1890; nop +set 290,%i4 +cmp %i5,0; be .L1892; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1892: +.L1890: +set 5,%l6 +set 2,%l5 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +srl %l6,%l3,%l6 +set 1,%l3 +cmp %l6,%l3; be .L1894; nop +set 291,%i4 +cmp %i5,0; be .L1896; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1896: +.L1894: +set 5,%l6 +set 2,%l4 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +srl %l6,%l3,%l6 +set 1,%l3 +cmp %l6,%l3; be .L1898; nop +set 292,%i4 +cmp %i5,0; be .L1900; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1900: +.L1898: +set 5,%l6 +set 2,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +srl %l6,%l3,%l6 +set 1,%l3 +cmp %l6,%l3; be .L1902; nop +set 293,%i4 +cmp %i5,0; be .L1904; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1904: +.L1902: +set 5,%l6 +set 2,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l3 +srl %l6,%l3,%l6 +set 1,%l3 +cmp %l6,%l3; be .L1906; nop +set 294,%i4 +cmp %i5,0; be .L1908; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1908: +.L1906: +set 5,%l6 +set 2,%l3 +st %l3,[%fp+-12] +ld [%fp+-12],%l3 +srl %l6,%l3,%l6 +set 1,%l3 +cmp %l6,%l3; be .L1910; nop +set 295,%i4 +cmp %i5,0; be .L1912; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1912: +.L1910: +set 5,%i3 +set 2,%l5 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +sll %l5,8*(4-1),%l2; sra %l2,8*(4-1),%l2 +sll %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,20; be .L1914; nop +set 296,%i4 +cmp %i5,0; be .L1916; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1916: +.L1914: +set 5,%i3 +set 2,%l4 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +sll %l4,8*(4-2),%l2; sra %l2,8*(4-2),%l2 +sll %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,20; be .L1918; nop +set 297,%i4 +cmp %i5,0; be .L1920; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1920: +.L1918: +set 5,%i3 +set 2,%l3 +st %l3,[%fp+-4] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +ld [%fp+-4],%l2 +sll %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,20; be .L1922; nop +set 298,%i4 +cmp %i5,0; be .L1924; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1924: +.L1922: +set 5,%i3 +set 2,%l3 +st %l3,[%fp+-8] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +ld [%fp+-8],%l2 +sll %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,20; be .L1926; nop +set 299,%i4 +cmp %i5,0; be .L1928; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1928: +.L1926: +set 5,%i3 +set 2,%l3 +st %l3,[%fp+-12] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +ld [%fp+-12],%l2 +sll %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,20; be .L1930; nop +set 300,%i4 +cmp %i5,0; be .L1932; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1932: +.L1930: +set 5,%i2 +set 2,%l5 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +sll %l5,8*(4-1),%l2; sra %l2,8*(4-1),%l2 +sll %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,20; be .L1934; nop +set 301,%i4 +cmp %i5,0; be .L1936; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1936: +.L1934: +set 5,%i2 +set 2,%l4 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +sll %l4,8*(4-2),%l2; sra %l2,8*(4-2),%l2 +sll %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,20; be .L1938; nop +set 302,%i4 +cmp %i5,0; be .L1940; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1940: +.L1938: +set 5,%i2 +set 2,%l3 +st %l3,[%fp+-4] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +ld [%fp+-4],%l2 +sll %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,20; be .L1942; nop +set 303,%i4 +cmp %i5,0; be .L1944; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1944: +.L1942: +set 5,%i2 +set 2,%l3 +st %l3,[%fp+-8] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +ld [%fp+-8],%l2 +sll %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,20; be .L1946; nop +set 304,%i4 +cmp %i5,0; be .L1948; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1948: +.L1946: +set 5,%i2 +set 2,%l3 +st %l3,[%fp+-12] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +ld [%fp+-12],%l2 +sll %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,20; be .L1950; nop +set 305,%i4 +cmp %i5,0; be .L1952; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1952: +.L1950: +set 5,%i1 +set 2,%l5 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +sll %i1,%l3,%i1 +cmp %i1,20; be .L1954; nop +set 306,%i4 +cmp %i5,0; be .L1956; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1956: +.L1954: +set 5,%i1 +set 2,%l4 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +sll %i1,%l3,%i1 +cmp %i1,20; be .L1958; nop +set 307,%i4 +cmp %i5,0; be .L1960; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1960: +.L1958: +set 5,%i1 +set 2,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +sll %i1,%l3,%i1 +cmp %i1,20; be .L1962; nop +set 308,%i4 +cmp %i5,0; be .L1964; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1964: +.L1962: +set 5,%i1 +set 2,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l3 +sll %i1,%l3,%i1 +cmp %i1,20; be .L1966; nop +set 309,%i4 +cmp %i5,0; be .L1968; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1968: +.L1966: +set 5,%i1 +set 2,%l3 +st %l3,[%fp+-12] +ld [%fp+-12],%l3 +sll %i1,%l3,%i1 +cmp %i1,20; be .L1970; nop +set 310,%i4 +cmp %i5,0; be .L1972; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1972: +.L1970: +set 5,%l7 +set 2,%l5 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +sll %l7,%l3,%l7 +cmp %l7,20; be .L1974; nop +set 311,%i4 +cmp %i5,0; be .L1976; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1976: +.L1974: +set 5,%l7 +set 2,%l4 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +sll %l7,%l3,%l7 +cmp %l7,20; be .L1978; nop +set 312,%i4 +cmp %i5,0; be .L1980; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1980: +.L1978: +set 5,%l7 +set 2,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +sll %l7,%l3,%l7 +cmp %l7,20; be .L1982; nop +set 313,%i4 +cmp %i5,0; be .L1984; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1984: +.L1982: +set 5,%l7 +set 2,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l3 +sll %l7,%l3,%l7 +cmp %l7,20; be .L1986; nop +set 314,%i4 +cmp %i5,0; be .L1988; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1988: +.L1986: +set 5,%l7 +set 2,%l3 +st %l3,[%fp+-12] +ld [%fp+-12],%l3 +sll %l7,%l3,%l7 +cmp %l7,20; be .L1990; nop +set 315,%i4 +cmp %i5,0; be .L1992; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1992: +.L1990: +set 5,%l6 +set 2,%l5 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +sll %l6,%l3,%l6 +set 20,%l3 +cmp %l6,%l3; be .L1994; nop +set 316,%i4 +cmp %i5,0; be .L1996; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L1996: +.L1994: +set 5,%l6 +set 2,%l4 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +sll %l6,%l3,%l6 +set 20,%l3 +cmp %l6,%l3; be .L1998; nop +set 317,%i4 +cmp %i5,0; be .L2000; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2000: +.L1998: +set 5,%l6 +set 2,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +sll %l6,%l3,%l6 +set 20,%l3 +cmp %l6,%l3; be .L2002; nop +set 318,%i4 +cmp %i5,0; be .L2004; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2004: +.L2002: +set 5,%l6 +set 2,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l3 +sll %l6,%l3,%l6 +set 20,%l3 +cmp %l6,%l3; be .L2006; nop +set 319,%i4 +cmp %i5,0; be .L2008; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2008: +.L2006: +set 5,%l6 +set 2,%l3 +st %l3,[%fp+-12] +ld [%fp+-12],%l3 +sll %l6,%l3,%l6 +set 20,%l3 +cmp %l6,%l3; be .L2010; nop +set 320,%i4 +cmp %i5,0; be .L2012; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2012: +.L2010: +set 12,%i3 +set 10,%l5 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +sll %l5,8*(4-1),%l2; sra %l2,8*(4-1),%l2 +and %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,8; be .L2014; nop +set 321,%i4 +cmp %i5,0; be .L2016; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2016: +.L2014: +set 12,%i3 +set 10,%l4 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +sll %l4,8*(4-2),%l2; sra %l2,8*(4-2),%l2 +and %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,8; be .L2018; nop +set 322,%i4 +cmp %i5,0; be .L2020; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2020: +.L2018: +set 12,%i3 +set 10,%l3 +st %l3,[%fp+-4] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +ld [%fp+-4],%l2 +and %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,8; be .L2022; nop +set 323,%i4 +cmp %i5,0; be .L2024; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2024: +.L2022: +set 12,%i3 +set 10,%l3 +st %l3,[%fp+-8] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +ld [%fp+-8],%l2 +and %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,8; be .L2026; nop +set 324,%i4 +cmp %i5,0; be .L2028; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2028: +.L2026: +set 12,%i3 +set 10,%l3 +st %l3,[%fp+-12] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +ld [%fp+-12],%l2 +and %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,8; be .L2030; nop +set 325,%i4 +cmp %i5,0; be .L2032; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2032: +.L2030: +set 12,%i2 +set 10,%l5 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +sll %l5,8*(4-1),%l2; sra %l2,8*(4-1),%l2 +and %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,8; be .L2034; nop +set 326,%i4 +cmp %i5,0; be .L2036; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2036: +.L2034: +set 12,%i2 +set 10,%l4 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +sll %l4,8*(4-2),%l2; sra %l2,8*(4-2),%l2 +and %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,8; be .L2038; nop +set 327,%i4 +cmp %i5,0; be .L2040; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2040: +.L2038: +set 12,%i2 +set 10,%l3 +st %l3,[%fp+-4] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +ld [%fp+-4],%l2 +and %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,8; be .L2042; nop +set 328,%i4 +cmp %i5,0; be .L2044; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2044: +.L2042: +set 12,%i2 +set 10,%l3 +st %l3,[%fp+-8] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +ld [%fp+-8],%l2 +and %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,8; be .L2046; nop +set 329,%i4 +cmp %i5,0; be .L2048; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2048: +.L2046: +set 12,%i2 +set 10,%l3 +st %l3,[%fp+-12] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +ld [%fp+-12],%l2 +and %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,8; be .L2050; nop +set 330,%i4 +cmp %i5,0; be .L2052; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2052: +.L2050: +set 12,%i1 +set 10,%l5 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +and %i1,%l3,%i1 +cmp %i1,8; be .L2054; nop +set 331,%i4 +cmp %i5,0; be .L2056; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2056: +.L2054: +set 12,%i1 +set 10,%l4 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +and %i1,%l3,%i1 +cmp %i1,8; be .L2058; nop +set 332,%i4 +cmp %i5,0; be .L2060; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2060: +.L2058: +set 12,%i1 +set 10,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +and %i1,%l3,%i1 +cmp %i1,8; be .L2062; nop +set 333,%i4 +cmp %i5,0; be .L2064; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2064: +.L2062: +set 12,%i1 +set 10,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l3 +and %i1,%l3,%i1 +cmp %i1,8; be .L2066; nop +set 334,%i4 +cmp %i5,0; be .L2068; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2068: +.L2066: +set 12,%i1 +set 10,%l3 +st %l3,[%fp+-12] +mov %i1,%l3 +ld [%fp+-12],%l2 +and %l3,%l2,%l3 +mov %l3,%i1 +cmp %i1,8; be .L2070; nop +set 335,%i4 +cmp %i5,0; be .L2072; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2072: +.L2070: +set 12,%l7 +set 10,%l5 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +and %l7,%l3,%l7 +cmp %l7,8; be .L2074; nop +set 336,%i4 +cmp %i5,0; be .L2076; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2076: +.L2074: +set 12,%l7 +set 10,%l4 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +and %l7,%l3,%l7 +cmp %l7,8; be .L2078; nop +set 337,%i4 +cmp %i5,0; be .L2080; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2080: +.L2078: +set 12,%l7 +set 10,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +and %l7,%l3,%l7 +cmp %l7,8; be .L2082; nop +set 338,%i4 +cmp %i5,0; be .L2084; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2084: +.L2082: +set 12,%l7 +set 10,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l3 +and %l7,%l3,%l7 +cmp %l7,8; be .L2086; nop +set 339,%i4 +cmp %i5,0; be .L2088; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2088: +.L2086: +set 12,%l7 +set 10,%l3 +st %l3,[%fp+-12] +mov %l7,%l3 +ld [%fp+-12],%l2 +and %l3,%l2,%l3 +mov %l3,%l7 +cmp %l7,8; be .L2090; nop +set 340,%i4 +cmp %i5,0; be .L2092; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2092: +.L2090: +set 12,%l6 +set 10,%l5 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +and %l6,%l3,%l6 +set 8,%l3 +cmp %l6,%l3; be .L2094; nop +set 341,%i4 +cmp %i5,0; be .L2096; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2096: +.L2094: +set 12,%l6 +set 10,%l4 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +and %l6,%l3,%l6 +set 8,%l3 +cmp %l6,%l3; be .L2098; nop +set 342,%i4 +cmp %i5,0; be .L2100; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2100: +.L2098: +set 12,%l6 +set 10,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +and %l6,%l3,%l6 +set 8,%l3 +cmp %l6,%l3; be .L2102; nop +set 343,%i4 +cmp %i5,0; be .L2104; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2104: +.L2102: +set 12,%l6 +set 10,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l3 +and %l6,%l3,%l6 +set 8,%l3 +cmp %l6,%l3; be .L2106; nop +set 344,%i4 +cmp %i5,0; be .L2108; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2108: +.L2106: +set 12,%l6 +set 10,%l3 +st %l3,[%fp+-12] +ld [%fp+-12],%l3 +and %l6,%l3,%l6 +set 8,%l3 +cmp %l6,%l3; be .L2110; nop +set 345,%i4 +cmp %i5,0; be .L2112; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2112: +.L2110: +set 12,%i3 +set 10,%l5 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +sll %l5,8*(4-1),%l2; sra %l2,8*(4-1),%l2 +xor %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,6; be .L2114; nop +set 346,%i4 +cmp %i5,0; be .L2116; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2116: +.L2114: +set 12,%i3 +set 10,%l4 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +sll %l4,8*(4-2),%l2; sra %l2,8*(4-2),%l2 +xor %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,6; be .L2118; nop +set 347,%i4 +cmp %i5,0; be .L2120; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2120: +.L2118: +set 12,%i3 +set 10,%l3 +st %l3,[%fp+-4] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +ld [%fp+-4],%l2 +xor %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,6; be .L2122; nop +set 348,%i4 +cmp %i5,0; be .L2124; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2124: +.L2122: +set 12,%i3 +set 10,%l3 +st %l3,[%fp+-8] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +ld [%fp+-8],%l2 +xor %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,6; be .L2126; nop +set 349,%i4 +cmp %i5,0; be .L2128; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2128: +.L2126: +set 12,%i3 +set 10,%l3 +st %l3,[%fp+-12] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +ld [%fp+-12],%l2 +xor %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,6; be .L2130; nop +set 350,%i4 +cmp %i5,0; be .L2132; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2132: +.L2130: +set 12,%i2 +set 10,%l5 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +sll %l5,8*(4-1),%l2; sra %l2,8*(4-1),%l2 +xor %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,6; be .L2134; nop +set 351,%i4 +cmp %i5,0; be .L2136; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2136: +.L2134: +set 12,%i2 +set 10,%l4 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +sll %l4,8*(4-2),%l2; sra %l2,8*(4-2),%l2 +xor %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,6; be .L2138; nop +set 352,%i4 +cmp %i5,0; be .L2140; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2140: +.L2138: +set 12,%i2 +set 10,%l3 +st %l3,[%fp+-4] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +ld [%fp+-4],%l2 +xor %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,6; be .L2142; nop +set 353,%i4 +cmp %i5,0; be .L2144; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2144: +.L2142: +set 12,%i2 +set 10,%l3 +st %l3,[%fp+-8] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +ld [%fp+-8],%l2 +xor %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,6; be .L2146; nop +set 354,%i4 +cmp %i5,0; be .L2148; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2148: +.L2146: +set 12,%i2 +set 10,%l3 +st %l3,[%fp+-12] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +ld [%fp+-12],%l2 +xor %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,6; be .L2150; nop +set 355,%i4 +cmp %i5,0; be .L2152; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2152: +.L2150: +set 12,%i1 +set 10,%l5 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +xor %i1,%l3,%i1 +cmp %i1,6; be .L2154; nop +set 356,%i4 +cmp %i5,0; be .L2156; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2156: +.L2154: +set 12,%i1 +set 10,%l4 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +xor %i1,%l3,%i1 +cmp %i1,6; be .L2158; nop +set 357,%i4 +cmp %i5,0; be .L2160; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2160: +.L2158: +set 12,%i1 +set 10,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +xor %i1,%l3,%i1 +cmp %i1,6; be .L2162; nop +set 358,%i4 +cmp %i5,0; be .L2164; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2164: +.L2162: +set 12,%i1 +set 10,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l3 +xor %i1,%l3,%i1 +cmp %i1,6; be .L2166; nop +set 359,%i4 +cmp %i5,0; be .L2168; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2168: +.L2166: +set 12,%i1 +set 10,%l3 +st %l3,[%fp+-12] +mov %i1,%l3 +ld [%fp+-12],%l2 +xor %l3,%l2,%l3 +mov %l3,%i1 +cmp %i1,6; be .L2170; nop +set 360,%i4 +cmp %i5,0; be .L2172; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2172: +.L2170: +set 12,%l7 +set 10,%l5 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +xor %l7,%l3,%l7 +cmp %l7,6; be .L2174; nop +set 361,%i4 +cmp %i5,0; be .L2176; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2176: +.L2174: +set 12,%l7 +set 10,%l4 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +xor %l7,%l3,%l7 +cmp %l7,6; be .L2178; nop +set 362,%i4 +cmp %i5,0; be .L2180; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2180: +.L2178: +set 12,%l7 +set 10,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +xor %l7,%l3,%l7 +cmp %l7,6; be .L2182; nop +set 363,%i4 +cmp %i5,0; be .L2184; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2184: +.L2182: +set 12,%l7 +set 10,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l3 +xor %l7,%l3,%l7 +cmp %l7,6; be .L2186; nop +set 364,%i4 +cmp %i5,0; be .L2188; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2188: +.L2186: +set 12,%l7 +set 10,%l3 +st %l3,[%fp+-12] +mov %l7,%l3 +ld [%fp+-12],%l2 +xor %l3,%l2,%l3 +mov %l3,%l7 +cmp %l7,6; be .L2190; nop +set 365,%i4 +cmp %i5,0; be .L2192; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2192: +.L2190: +set 12,%l6 +set 10,%l5 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +xor %l6,%l3,%l6 +set 6,%l3 +cmp %l6,%l3; be .L2194; nop +set 366,%i4 +cmp %i5,0; be .L2196; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2196: +.L2194: +set 12,%l6 +set 10,%l4 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +xor %l6,%l3,%l6 +set 6,%l3 +cmp %l6,%l3; be .L2198; nop +set 367,%i4 +cmp %i5,0; be .L2200; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2200: +.L2198: +set 12,%l6 +set 10,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +xor %l6,%l3,%l6 +set 6,%l3 +cmp %l6,%l3; be .L2202; nop +set 368,%i4 +cmp %i5,0; be .L2204; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2204: +.L2202: +set 12,%l6 +set 10,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l3 +xor %l6,%l3,%l6 +set 6,%l3 +cmp %l6,%l3; be .L2206; nop +set 369,%i4 +cmp %i5,0; be .L2208; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2208: +.L2206: +set 12,%l6 +set 10,%l3 +st %l3,[%fp+-12] +ld [%fp+-12],%l3 +xor %l6,%l3,%l6 +set 6,%l3 +cmp %l6,%l3; be .L2210; nop +set 370,%i4 +cmp %i5,0; be .L2212; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2212: +.L2210: +set 12,%i3 +set 10,%l5 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +sll %l5,8*(4-1),%l2; sra %l2,8*(4-1),%l2 +or %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,14; be .L2214; nop +set 371,%i4 +cmp %i5,0; be .L2216; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2216: +.L2214: +set 12,%i3 +set 10,%l4 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +sll %l4,8*(4-2),%l2; sra %l2,8*(4-2),%l2 +or %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,14; be .L2218; nop +set 372,%i4 +cmp %i5,0; be .L2220; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2220: +.L2218: +set 12,%i3 +set 10,%l3 +st %l3,[%fp+-4] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +ld [%fp+-4],%l2 +or %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,14; be .L2222; nop +set 373,%i4 +cmp %i5,0; be .L2224; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2224: +.L2222: +set 12,%i3 +set 10,%l3 +st %l3,[%fp+-8] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +ld [%fp+-8],%l2 +or %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,14; be .L2226; nop +set 374,%i4 +cmp %i5,0; be .L2228; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2228: +.L2226: +set 12,%i3 +set 10,%l3 +st %l3,[%fp+-12] +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +ld [%fp+-12],%l2 +or %l3,%l2,%l3 +mov %l3,%i3 +sll %i3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,14; be .L2230; nop +set 375,%i4 +cmp %i5,0; be .L2232; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2232: +.L2230: +set 12,%i2 +set 10,%l5 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +sll %l5,8*(4-1),%l2; sra %l2,8*(4-1),%l2 +or %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,14; be .L2234; nop +set 376,%i4 +cmp %i5,0; be .L2236; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2236: +.L2234: +set 12,%i2 +set 10,%l4 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +sll %l4,8*(4-2),%l2; sra %l2,8*(4-2),%l2 +or %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,14; be .L2238; nop +set 377,%i4 +cmp %i5,0; be .L2240; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2240: +.L2238: +set 12,%i2 +set 10,%l3 +st %l3,[%fp+-4] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +ld [%fp+-4],%l2 +or %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,14; be .L2242; nop +set 378,%i4 +cmp %i5,0; be .L2244; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2244: +.L2242: +set 12,%i2 +set 10,%l3 +st %l3,[%fp+-8] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +ld [%fp+-8],%l2 +or %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,14; be .L2246; nop +set 379,%i4 +cmp %i5,0; be .L2248; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2248: +.L2246: +set 12,%i2 +set 10,%l3 +st %l3,[%fp+-12] +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +ld [%fp+-12],%l2 +or %l3,%l2,%l3 +mov %l3,%i2 +sll %i2,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,14; be .L2250; nop +set 380,%i4 +cmp %i5,0; be .L2252; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2252: +.L2250: +set 12,%i1 +set 10,%l5 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +or %i1,%l3,%i1 +cmp %i1,14; be .L2254; nop +set 381,%i4 +cmp %i5,0; be .L2256; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2256: +.L2254: +set 12,%i1 +set 10,%l4 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +or %i1,%l3,%i1 +cmp %i1,14; be .L2258; nop +set 382,%i4 +cmp %i5,0; be .L2260; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2260: +.L2258: +set 12,%i1 +set 10,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +or %i1,%l3,%i1 +cmp %i1,14; be .L2262; nop +set 383,%i4 +cmp %i5,0; be .L2264; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2264: +.L2262: +set 12,%i1 +set 10,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l3 +or %i1,%l3,%i1 +cmp %i1,14; be .L2266; nop +set 384,%i4 +cmp %i5,0; be .L2268; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2268: +.L2266: +set 12,%i1 +set 10,%l3 +st %l3,[%fp+-12] +mov %i1,%l3 +ld [%fp+-12],%l2 +or %l3,%l2,%l3 +mov %l3,%i1 +cmp %i1,14; be .L2270; nop +set 385,%i4 +cmp %i5,0; be .L2272; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2272: +.L2270: +set 12,%l7 +set 10,%l5 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +or %l7,%l3,%l7 +cmp %l7,14; be .L2274; nop +set 386,%i4 +cmp %i5,0; be .L2276; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2276: +.L2274: +set 12,%l7 +set 10,%l4 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +or %l7,%l3,%l7 +cmp %l7,14; be .L2278; nop +set 387,%i4 +cmp %i5,0; be .L2280; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2280: +.L2278: +set 12,%l7 +set 10,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +or %l7,%l3,%l7 +cmp %l7,14; be .L2282; nop +set 388,%i4 +cmp %i5,0; be .L2284; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2284: +.L2282: +set 12,%l7 +set 10,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l3 +or %l7,%l3,%l7 +cmp %l7,14; be .L2286; nop +set 389,%i4 +cmp %i5,0; be .L2288; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2288: +.L2286: +set 12,%l7 +set 10,%l3 +st %l3,[%fp+-12] +mov %l7,%l3 +ld [%fp+-12],%l2 +or %l3,%l2,%l3 +mov %l3,%l7 +cmp %l7,14; be .L2290; nop +set 390,%i4 +cmp %i5,0; be .L2292; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2292: +.L2290: +set 12,%l6 +set 10,%l5 +sll %l5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +or %l6,%l3,%l6 +set 14,%l3 +cmp %l6,%l3; be .L2294; nop +set 391,%i4 +cmp %i5,0; be .L2296; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2296: +.L2294: +set 12,%l6 +set 10,%l4 +sll %l4,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +or %l6,%l3,%l6 +set 14,%l3 +cmp %l6,%l3; be .L2298; nop +set 392,%i4 +cmp %i5,0; be .L2300; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2300: +.L2298: +set 12,%l6 +set 10,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +or %l6,%l3,%l6 +set 14,%l3 +cmp %l6,%l3; be .L2302; nop +set 393,%i4 +cmp %i5,0; be .L2304; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2304: +.L2302: +set 12,%l6 +set 10,%l3 +st %l3,[%fp+-8] +ld [%fp+-8],%l3 +or %l6,%l3,%l6 +set 14,%l3 +cmp %l6,%l3; be .L2306; nop +set 394,%i4 +cmp %i5,0; be .L2308; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2308: +.L2306: +set 12,%l6 +set 10,%l3 +st %l3,[%fp+-12] +ld [%fp+-12],%l3 +or %l6,%l3,%l6 +set 14,%l3 +cmp %l6,%l3; be .L2310; nop +set 395,%i4 +cmp %i5,0; be .L2312; nop +set .687,%o0 +mov %i4,%o1 +call printf; nop +.L2312: +.L2310: +cmp %i4,0; be .L2314; nop +set 1,%l3 +st %l3,[%fp+-52] +ld [%i0+44],%l3 +cmp %l3,0; be .L2316; nop +set .688,%o0 +set 1,%o1 +call printf; nop +.L2316: +.L2314: +ld [%fp+-52],%i0 +.L686: +ret; restore +.type s714,#function +.size s714,.-s714 +.section ".data" +.type .2319,#object +.align 1 +.2319: +.byte 115 +.byte 55 +.byte 49 +.byte 53 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size .2319,11 +.type .2320,#object +.size .2320,8 +.align 1 +.2320: +.byte 115 +.byte 55 +.byte 49 +.byte 53 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.global s715 +.section ".text" +.align 4 +s715: +save %sp,-96,%sp +mov %g0,%l6 +mov %g0,%i1 +set .2320,%i5 +add %i0,60,%i4 +mov %g0,%i2 +.L2321: +.L2322: +mov %i4,%l5 +add %l5,1,%i4 +mov %i5,%l4 +add %l4,1,%i5 +ldsb [%l4],%l4 +stb %l4,[%l5] +sll %l4,8*(4-1),%l5; sra %l5,8*(4-1),%l5 +cmp %l5,0; bne .L2321; nop +set 1,%l5 +mov %l5,%i3 +add %i3,1,%i3 +add %i3,1,%i3 +add %i3,1,%i3 +add %i3,1,%i3 +add %i3,1,%l5 +mov %l5,%i3 +cmp %l5,6; be .L2324; nop +ld [%i0+44],%l5 +cmp %l5,0; be .L2326; nop +set .2319,%o0 +set 1,%o1 +call printf; nop +.L2326: +add %i2,1,%i2 +.L2324: +mov %i1,%o0 +set 3,%l7 +add %l7,2,%o1 +mov %l6,%o2 +call s715f; nop +cmp %o0,5; be .L2328; nop +ld [%i0+44],%l5 +cmp %l5,0; be .L2330; nop +set .2319,%o0 +set 2,%o1 +call printf; nop +.L2330: +add %i2,2,%i2 +.L2328: +mov %i2,%i0 +.L2318: +ret; restore +.type s715,#function +.size s715,.-s715 +.global s715f +.align 4 +s715f: +mov %o1,%o0 +.L2332: +retl; nop +.type s715f,#function +.size s715f,.-s715f +.section ".data" +.type .2334,#object +.align 1 +.2334: +.byte 115 +.byte 55 +.byte 50 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size .2334,10 +.type .2335,#object +.size .2335,8 +.align 1 +.2335: +.byte 115 +.byte 55 +.byte 50 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.global s72 +.section ".text" +.align 4 +s72: +save %sp,-120,%sp +set .2335,%i4 +add %i0,60,%i3 +mov %g0,%i1 +.L2336: +.L2337: +mov %i3,%l3 +add %l3,1,%i3 +mov %i4,%l2 +add %l2,1,%i4 +ldsb [%l2],%l2 +stb %l2,[%l3] +sll %l2,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,0; bne .L2336; nop +set 2,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +cmp %l3,2; be .L2339; nop +set 1,%l3 +add %i1,1,%i1 +set .2334,%o0 +mov %l3,%o1 +call printf; nop +.L2339: +ld [%fp+-4],%l3 +neg %l3,%l2 +add %l3,%l2,%l3 +cmp %l3,0; be .L2341; nop +set 2,%l3 +add %i1,2,%i1 +set .2334,%o0 +mov %l3,%o1 +call printf; nop +.L2341: +st %g0,[%fp+-4] +mov %g0,%i5 +ba .L2346; nop +.L2343: +ld [%fp+-4],%l3 +sll %l3,1,%l3 +or %l3,1,%l3 +st %l3,[%fp+-4] +.L2344: +add %i5,1,%i5 +.L2346: +ld [%i0+4],%l3 +cmp %i5,%l3; bl .L2343; nop +ld [%fp+-4],%l3 +not %l3,%l3 +cmp %l3,0; be .L2347; nop +set 4,%l3 +add %i1,4,%i1 +set .2334,%o0 +mov %l3,%o1 +call printf; nop +.L2347: +set 5,%l3 +st %l3,[%fp+-4] +ld [%fp+-4],%l3 +add %l3,1,%l3 +st %l3,[%fp+-4] +cmp %l3,6; bne .L2354; nop +ld [%fp+-4],%l3 +sub %l3,1,%l3 +st %l3,[%fp+-4] +cmp %l3,5; bne .L2354; nop +ld [%fp+-4],%l3 +add %l3,1,%l2 +st %l2,[%fp+-4] +cmp %l3,5; bne .L2354; nop +ld [%fp+-4],%l3 +sub %l3,1,%l2 +st %l2,[%fp+-4] +cmp %l3,6; bne .L2354; nop +ld [%fp+-4],%l3 +cmp %l3,5; be .L2349; nop +.L2354: +set 8,%l3 +add %i1,8,%i1 +set .2334,%o0 +mov %l3,%o1 +call printf; nop +.L2349: +set 26,%l6 +set 26,%l4 +set .L2355,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-16] +set 26,%l5 +set 26,%l3 +st %l3,[%fp+-8] +set 26,%l7 +set .L2356,%l3 +ld [%l3],%f31 +st %f31,[%fp+-20] +mov %g0,%i2 +sll %l5,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +sll %l3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,26; bne .L2363; nop +mov %l7,%l3 +sll %l3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,26; bne .L2363; nop +mov %l4,%l3 +sll %l3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,26; bne .L2363; nop +ld [%fp+-8],%l3 +sll %l3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,26; bne .L2363; nop +ld [%fp+-20],%f31 +fstoi %f31,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +sll %l3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,26; bne .L2363; nop +ldd [%fp+-16],%f30 +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +sll %l3,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,26; be .L2357; nop +.L2363: +add %i2,1,%i2 +.L2357: +sll %l6,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +sll %l3,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,26; bne .L2370; nop +mov %l7,%l3 +sll %l3,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,26; bne .L2370; nop +mov %l4,%l3 +sll %l3,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,26; bne .L2370; nop +ld [%fp+-8],%l3 +sll %l3,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,26; bne .L2370; nop +ld [%fp+-20],%f31 +fstoi %f31,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +sll %l3,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,26; bne .L2370; nop +ldd [%fp+-16],%f30 +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +sll %l3,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,26; be .L2364; nop +.L2370: +add %i2,2,%i2 +.L2364: +sll %l6,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,26; bne .L2377; nop +sll %l5,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,26; bne .L2377; nop +cmp %l4,26; bne .L2377; nop +ld [%fp+-8],%l3 +cmp %l3,26; bne .L2377; nop +ld [%fp+-20],%f31 +fstoi %f31,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +cmp %l3,26; bne .L2377; nop +ldd [%fp+-16],%f30 +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +cmp %l3,26; be .L2371; nop +.L2377: +add %i2,4,%i2 +.L2371: +sll %l6,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,26; bne .L2384; nop +sll %l5,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +cmp %l3,26; bne .L2384; nop +cmp %l7,26; bne .L2384; nop +ld [%fp+-8],%l3 +cmp %l3,26; bne .L2384; nop +ld [%fp+-20],%f31 +fstoi %f31,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +cmp %l3,26; bne .L2384; nop +ldd [%fp+-16],%f30 +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +cmp %l3,26; be .L2378; nop +.L2384: +add %i2,8,%i2 +.L2378: +set 26,%l3 +sll %l6,8*(4-1),%l2; sra %l2,8*(4-1),%l2 +cmp %l2,%l3; bne .L2393; nop +sll %l5,8*(4-2),%l2; sra %l2,8*(4-2),%l2 +cmp %l2,%l3; bne .L2393; nop +mov %l7,%l2 +cmp %l2,%l3; bne .L2393; nop +mov %l4,%l2 +cmp %l2,%l3; bne .L2393; nop +ld [%fp+-20],%f31 +set .L828,%l3 +ld [%l3],%f30 +fcmpes %f31,%f30; nop; fbul .L2394; nop +fsubs %f31,%f30,%f30 +fstoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +set 0x80000000,%l2 +add %l3,%l2,%l3 +st %l3,[%fp+-24] +ba .L2395; nop +.L2394: +fstoi %f31,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +st %l3,[%fp+-24] +.L2395: +ld [%fp+-24],%l3 +set 26,%l2 +cmp %l3,%l2; bne .L2393; nop +ldd [%fp+-16],%f30 +set .L836,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbul .L2396; nop +fsubd %f30,%f28,%f28 +fdtoi %f28,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +set 0x80000000,%l2 +add %l3,%l2,%l3 +st %l3,[%fp+-28] +ba .L2397; nop +.L2396: +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +st %l3,[%fp+-28] +.L2397: +ld [%fp+-28],%l3 +set 26,%l2 +cmp %l3,%l2; be .L2385; nop +.L2393: +add %i2,16,%i2 +.L2385: +set .L2355,%l3 +ld2 [%l3],%f30 +sll %l6,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f29; fitos %f29,%f29 +fstod %f29,%f28 +fcmped %f28,%f30; nop; fbne .L2404; nop +sll %l5,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f29; fitos %f29,%f29 +fstod %f29,%f28 +fcmped %f28,%f30; nop; fbne .L2404; nop +st %l7,[%sp+64]; ld [%sp+64],%f29; fitos %f29,%f29 +fstod %f29,%f28 +fcmped %f28,%f30; nop; fbne .L2404; nop +st %l4,[%sp+64]; ld [%sp+64],%f29; fitos %f29,%f29 +fstod %f29,%f28 +fcmped %f28,%f30; nop; fbne .L2404; nop +ld [%fp+-8],%l3 +set .L596,%l2 +ld2 [%l2],%f28 +srl %l3,1,%l2 +st %l2,[%sp+64]; ld [%sp+64],%f26; fitod %f26,%f26 +fmuld %f28,%f26,%f28 +set 1,%l2 +and %l3,%l2,%l3 +st %l3,[%sp+64]; ld [%sp+64],%f26; fitod %f26,%f26 +faddd %f28,%f26,%f28 +fdtos %f28,%f29 +fstod %f29,%f28 +fcmped %f28,%f30; nop; fbne .L2404; nop +ldd [%fp+-16],%f28 +fdtos %f28,%f29 +fstod %f29,%f28 +fcmped %f28,%f30; nop; fbue .L2398; nop +.L2404: +add %i2,32,%i2 +.L2398: +set .L2355,%l3 +ld2 [%l3],%f30 +sll %l6,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +fcmped %f28,%f30; nop; fbne .L2411; nop +sll %l5,8*(4-2),%l3; sra %l3,8*(4-2),%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +fcmped %f28,%f30; nop; fbne .L2411; nop +st %l7,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +fcmped %f28,%f30; nop; fbne .L2411; nop +st %l4,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +fcmped %f28,%f30; nop; fbne .L2411; nop +ld [%fp+-8],%l3 +set .L596,%l2 +ld2 [%l2],%f28 +srl %l3,1,%l2 +st %l2,[%sp+64]; ld [%sp+64],%f26; fitod %f26,%f26 +fmuld %f28,%f26,%f28 +set 1,%l2 +and %l3,%l2,%l3 +st %l3,[%sp+64]; ld [%sp+64],%f26; fitod %f26,%f26 +faddd %f28,%f26,%f28 +fcmped %f28,%f30; nop; fbne .L2411; nop +ld [%fp+-20],%f29 +fstod %f29,%f28 +fcmped %f28,%f30; nop; fbue .L2405; nop +.L2411: +add %i2,64,%i2 +.L2405: +cmp %i2,0; be .L2412; nop +set 16,%l3 +add %i1,16,%i1 +set .2334,%o0 +mov %l3,%o1 +call printf; nop +.L2412: +mov %i1,%i0 +.L2333: +ret; restore +.type s72,#function +.size s72,.-s72 +.section ".data" +.type .2415,#object +.align 1 +.2415: +.byte 115 +.byte 55 +.byte 53 +.byte 55 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size .2415,11 +.type .2416,#object +.size .2416,8 +.align 1 +.2416: +.byte 115 +.byte 55 +.byte 53 +.byte 55 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.global s757 +.section ".text" +.align 4 +s757: +save %sp,-208,%sp +set .2416,%l3 +st %l3,[%fp+-76] +add %i0,60,%l3 +st %l3,[%fp+-80] +st %g0,[%fp+-84] +.L2417: +.L2418: +ld [%fp+-80],%l3 +add %l3,1,%l2 +st %l2,[%fp+-80] +ld [%fp+-76],%l2 +add %l2,1,%l1 +st %l1,[%fp+-76] +ldsb [%l2],%l2 +stb %l2,[%l3] +sll %l2,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,0; bne .L2417; nop +set 40,%l3 +st %l3,[%fp+-88] +ld [%fp+-88],%l3 +sll %l3,3,%l2 +sll %l2,2,%l2 +cmp %l2,1280; bne .L2422; nop +sra %l3,3,%l3 +sra %l3,2,%l3 +cmp %l3,1; be .L2420; nop +.L2422: +ld [%fp+-84],%l3 +add %l3,1,%l3 +st %l3,[%fp+-84] +ld [%i0+44],%l3 +cmp %l3,0; be .L2423; nop +set .2415,%o0 +set 1,%o1 +call printf; nop +.L2423: +.L2420: +mov %g0,%i1 +mov %g0,%l4 +ba .L2428; nop +.L2425: +set 1,%l6 +ld [%i0+16],%l3 +sub %l3,1,%l3 +sll %l6,%l3,%l5 +st %g0,[%fp+-68] +ld [%fp+-68],%l3 +not %l3,%l3 +srl %l3,%l4,%l2 +st %l2,[%fp+-72] +sll %l3,%l4,%l3 +st %l3,[%fp+-68] +mov %g0,%l7 +ba .L2432; nop +.L2429: +cmp %l7,%l4; bge .L2440; nop +set 1,%l3 +st %l3,[%fp+-96] +ba .L2441; nop +.L2440: +st %g0,[%fp+-96] +.L2441: +ld [%fp+-68],%l3 +and %l6,%l3,%l3 +cmp %l3,%g0; bne .L2442; nop +set 1,%l3 +st %l3,[%fp+-100] +ba .L2443; nop +.L2442: +st %g0,[%fp+-100] +.L2443: +ld [%fp+-96],%l3 +ld [%fp+-100],%l2 +cmp %l3,%l2; bne .L2439; nop +cmp %l7,%l4; bge .L2444; nop +set 1,%l3 +st %l3,[%fp+-104] +ba .L2445; nop +.L2444: +st %g0,[%fp+-104] +.L2445: +ld [%fp+-72],%l3 +and %l5,%l3,%l3 +cmp %l3,%g0; bne .L2446; nop +set 1,%l3 +st %l3,[%fp+-108] +ba .L2447; nop +.L2446: +st %g0,[%fp+-108] +.L2447: +ld [%fp+-104],%l3 +ld [%fp+-108],%l2 +cmp %l3,%l2; be .L2433; nop +.L2439: +set 1,%i1 +.L2433: +sll %l6,1,%l6 +srl %l5,1,%l5 +.L2430: +add %l7,1,%l7 +.L2432: +ld [%i0+16],%l3 +cmp %l7,%l3; bl .L2429; nop +.L2426: +add %l4,1,%l4 +.L2428: +ld [%i0+16],%l3 +cmp %l4,%l3; bl .L2425; nop +cmp %i1,0; be .L2448; nop +ld [%fp+-84],%l3 +add %l3,2,%l3 +st %l3,[%fp+-84] +ld [%i0+44],%l3 +cmp %l3,0; be .L2450; nop +set .2415,%o0 +set 2,%o1 +call printf; nop +.L2450: +.L2448: +set 3,%i2 +set 2,%i3 +set 1,%i4 +cmp %i2,%i3; bge .L2458; nop +set 1,%l3 +st %l3,[%fp+-100] +ba .L2459; nop +.L2458: +st %g0,[%fp+-100] +.L2459: +ld [%fp+-100],%l3 +cmp %l3,%i4; bge .L2456; nop +set 1,%l3 +st %l3,[%fp+-96] +ba .L2457; nop +.L2456: +st %g0,[%fp+-96] +.L2457: +ld [%fp+-96],%l3 +cmp %l3,1; be .L2452; nop +ld [%fp+-84],%l3 +add %l3,4,%l3 +st %l3,[%fp+-84] +ld [%i0+44],%l3 +cmp %l3,0; be .L2460; nop +set .2415,%o0 +set 4,%o1 +call printf; nop +.L2460: +.L2452: +add -60,%fp,%l3 +add -64,%fp,%l2 +cmp %l3,%l2; bne .L2462; nop +ld [%fp+-84],%l3 +add %l3,8,%l3 +st %l3,[%fp+-84] +ld [%i0+44],%l3 +cmp %l3,0; be .L2465; nop +set .2415,%o0 +set 8,%o1 +call printf; nop +.L2465: +.L2462: +add -60,%fp,%l3 +add -64,%fp,%l2 +cmp %l3,%l2; bgeu .L2467; nop +ld [%i0+40],%l3 +cmp %l3,0; be .L2470; nop +set .L2472,%o0 +call printf; nop +.L2470: +.L2467: +mov %g0,%i1 +mov %g0,%l7 +.L2473: +sll %l7,2,%l3 +add -64,%fp,%l2 +set 1,%l1 +st %l1,[%l3+%l2] +.L2474: +add %l7,1,%l7 +cmp %l7,16; bl .L2473; nop +st %g0,[%fp+-60] +st %g0,[%fp+-48] +st %g0,[%fp+-40] +st %g0,[%fp+-36] +st %g0,[%fp+-28] +st %g0,[%fp+-12] +mov %g0,%i2 +.L2483: +mov %g0,%i3 +.L2487: +mov %g0,%i4 +.L2491: +mov %g0,%i5 +.L2495: +cmp %i2,%i3; bge .L2506; nop +set 1,%l3 +st %l3,[%fp+-108] +ba .L2507; nop +.L2506: +st %g0,[%fp+-108] +.L2507: +cmp %i4,%i5; bge .L2508; nop +set 1,%l3 +st %l3,[%fp+-112] +ba .L2509; nop +.L2508: +st %g0,[%fp+-112] +.L2509: +ld [%fp+-108],%l3 +ld [%fp+-112],%l2 +cmp %l3,%l2; bne .L2504; nop +set 1,%l3 +st %l3,[%fp+-104] +ba .L2505; nop +.L2504: +st %g0,[%fp+-104] +.L2505: +ld [%fp+-104],%l3 +sll %i2,3,%l2 +sll %i3,2,%l1 +add %l2,%l1,%l2 +sll %i4,1,%l1 +add %l2,%l1,%l2 +add %l2,%i5,%l2 +sll %l2,2,%l2 +add -64,%fp,%l1 +ld [%l2+%l1],%l2 +cmp %l3,%l2; be .L2499; nop +set 1,%i1 +.L2499: +.L2496: +add %i5,1,%i5 +cmp %i5,2; bl .L2495; nop +.L2492: +add %i4,1,%i4 +cmp %i4,2; bl .L2491; nop +.L2488: +add %i3,1,%i3 +cmp %i3,2; bl .L2487; nop +.L2484: +add %i2,1,%i2 +cmp %i2,2; bl .L2483; nop +cmp %i1,0; be .L2510; nop +ld [%fp+-84],%l3 +add %l3,16,%l3 +st %l3,[%fp+-84] +ld [%i0+44],%l3 +cmp %l3,0; be .L2512; nop +set .2415,%o0 +set 16,%o1 +call printf; nop +.L2512: +.L2510: +st %g0,[%fp+-92] +ld [%fp+-92],%l3 +cmp %l3,%g0; be .L2514; nop +ld [%fp+-84],%l3 +add %l3,32,%l3 +st %l3,[%fp+-84] +ld [%i0+44],%l3 +cmp %l3,0; be .L2516; nop +set .2415,%o0 +set 32,%o1 +call printf; nop +.L2516: +.L2514: +ld [%fp+-84],%i0 +.L2414: +ret; restore +.type s757,#function +.size s757,.-s757 +.section ".data" +.type .2519,#object +.align 1 +.2519: +.byte 76 +.byte 111 +.byte 99 +.byte 97 +.byte 108 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 32 +.byte 37 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.size .2519,17 +.type .2520,#object +.align 1 +.2520: +.byte 115 +.byte 55 +.byte 56 +.byte 49 +.byte 51 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size .2520,12 +.type .2521,#object +.size .2521,8 +.align 1 +.2521: +.byte 115 +.byte 55 +.byte 56 +.byte 49 +.byte 51 +.byte 32 +.byte 32 +.byte 0 +.global s7813 +.section ".text" +.align 4 +s7813: +save %sp,-144,%sp +set .2521,%l7 +add %i0,60,%l6 +mov %g0,%i4 +mov %g0,%l5 +ld [%i0+48],%i5 +.L2522: +.L2523: +mov %l6,%l3 +add %l3,1,%l6 +mov %l7,%l2 +add %l2,1,%l7 +ldsb [%l2],%l2 +stb %l2,[%l3] +sll %l2,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,0; bne .L2522; nop +ba .L2525; nop +set 1,%i4 +cmp %i5,0; be .L2527; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2527: +.L2525: +ba .L2529; nop +set 2,%i4 +cmp %i5,0; be .L2531; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2531: +.L2529: +ba .L2533; nop +set 3,%i4 +cmp %i5,0; be .L2535; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2535: +.L2533: +ba .L2537; nop +set 4,%i4 +cmp %i5,0; be .L2539; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2539: +.L2537: +ba .L2541; nop +set 5,%i4 +cmp %i5,0; be .L2543; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2543: +.L2541: +ba .L2545; nop +set 6,%i4 +cmp %i5,0; be .L2547; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2547: +.L2545: +ba .L2549; nop +set 7,%i4 +cmp %i5,0; be .L2551; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2551: +.L2549: +ba .L2553; nop +set 8,%i4 +cmp %i5,0; be .L2555; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2555: +.L2553: +ba .L2557; nop +set 9,%i4 +cmp %i5,0; be .L2559; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2559: +.L2557: +ba .L2561; nop +set 10,%i4 +cmp %i5,0; be .L2563; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2563: +.L2561: +ba .L2565; nop +set 11,%i4 +cmp %i5,0; be .L2567; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2567: +.L2565: +ba .L2569; nop +set 12,%i4 +cmp %i5,0; be .L2571; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2571: +.L2569: +ba .L2573; nop +set 13,%i4 +cmp %i5,0; be .L2575; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2575: +.L2573: +ba .L2577; nop +set 14,%i4 +cmp %i5,0; be .L2579; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2579: +.L2577: +ba .L2581; nop +set 15,%i4 +cmp %i5,0; be .L2583; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2583: +.L2581: +ba .L2585; nop +set 16,%i4 +cmp %i5,0; be .L2587; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2587: +.L2585: +ba .L2589; nop +set 17,%i4 +cmp %i5,0; be .L2591; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2591: +.L2589: +ba .L2593; nop +set 18,%i4 +cmp %i5,0; be .L2595; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2595: +.L2593: +ba .L2597; nop +set 16,%i4 +cmp %i5,0; be .L2599; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2599: +.L2597: +ba .L2601; nop +set 20,%i4 +cmp %i5,0; be .L2603; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2603: +.L2601: +ba .L2605; nop +set 21,%i4 +cmp %i5,0; be .L2607; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2607: +.L2605: +ba .L2609; nop +set 22,%i4 +cmp %i5,0; be .L2611; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2611: +.L2609: +ba .L2613; nop +set 23,%i4 +cmp %i5,0; be .L2615; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2615: +.L2613: +ba .L2617; nop +set 24,%i4 +cmp %i5,0; be .L2619; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2619: +.L2617: +ba .L2621; nop +set 25,%i4 +cmp %i5,0; be .L2623; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2623: +.L2621: +ba .L2625; nop +set 26,%i4 +cmp %i5,0; be .L2627; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2627: +.L2625: +ba .L2629; nop +set 27,%i4 +cmp %i5,0; be .L2631; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2631: +.L2629: +ba .L2633; nop +set 28,%i4 +cmp %i5,0; be .L2635; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2635: +.L2633: +ba .L2637; nop +set 26,%i4 +cmp %i5,0; be .L2639; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2639: +.L2637: +ba .L2641; nop +set 30,%i4 +cmp %i5,0; be .L2643; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2643: +.L2641: +ba .L2645; nop +set 31,%i4 +cmp %i5,0; be .L2647; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2647: +.L2645: +ba .L2649; nop +set 32,%i4 +cmp %i5,0; be .L2651; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2651: +.L2649: +ba .L2653; nop +set 33,%i4 +cmp %i5,0; be .L2655; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2655: +.L2653: +ba .L2657; nop +set 34,%i4 +cmp %i5,0; be .L2659; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2659: +.L2657: +ba .L2661; nop +set 35,%i4 +cmp %i5,0; be .L2663; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2663: +.L2661: +ba .L2665; nop +set 36,%i4 +cmp %i5,0; be .L2667; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2667: +.L2665: +ba .L2669; nop +set 37,%i4 +cmp %i5,0; be .L2671; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2671: +.L2669: +ba .L2673; nop +set 38,%i4 +cmp %i5,0; be .L2675; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2675: +.L2673: +ba .L2677; nop +set 39,%i4 +cmp %i5,0; be .L2679; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2679: +.L2677: +ba .L2681; nop +set 40,%i4 +cmp %i5,0; be .L2683; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2683: +.L2681: +ba .L2685; nop +set 41,%i4 +cmp %i5,0; be .L2687; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2687: +.L2685: +ba .L2689; nop +set 42,%i4 +cmp %i5,0; be .L2691; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2691: +.L2689: +ba .L2693; nop +set 43,%i4 +cmp %i5,0; be .L2695; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2695: +.L2693: +ba .L2697; nop +set 44,%i4 +cmp %i5,0; be .L2699; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2699: +.L2697: +ba .L2701; nop +set 45,%i4 +cmp %i5,0; be .L2703; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2703: +.L2701: +ba .L2705; nop +set 46,%i4 +cmp %i5,0; be .L2707; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2707: +.L2705: +ba .L2709; nop +set 47,%i4 +cmp %i5,0; be .L2711; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2711: +.L2709: +ba .L2713; nop +set 48,%i4 +cmp %i5,0; be .L2715; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2715: +.L2713: +ba .L2717; nop +set 49,%i4 +cmp %i5,0; be .L2719; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2719: +.L2717: +ba .L2721; nop +set 50,%i4 +cmp %i5,0; be .L2723; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2723: +.L2721: +ba .L2725; nop +set 51,%i4 +cmp %i5,0; be .L2727; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2727: +.L2725: +ba .L2729; nop +set 52,%i4 +cmp %i5,0; be .L2731; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2731: +.L2729: +ba .L2733; nop +set 53,%i4 +cmp %i5,0; be .L2735; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2735: +.L2733: +ba .L2737; nop +set 54,%i4 +cmp %i5,0; be .L2739; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2739: +.L2737: +ba .L2741; nop +set 55,%i4 +cmp %i5,0; be .L2743; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2743: +.L2741: +ba .L2745; nop +set 56,%i4 +cmp %i5,0; be .L2747; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2747: +.L2745: +ba .L2749; nop +set 57,%i4 +cmp %i5,0; be .L2751; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2751: +.L2749: +ba .L2753; nop +set 58,%i4 +cmp %i5,0; be .L2755; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2755: +.L2753: +ba .L2757; nop +set 56,%i4 +cmp %i5,0; be .L2759; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2759: +.L2757: +ba .L2761; nop +set 60,%i4 +cmp %i5,0; be .L2763; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2763: +.L2761: +ba .L2765; nop +set 61,%i4 +cmp %i5,0; be .L2767; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2767: +.L2765: +ba .L2769; nop +set 62,%i4 +cmp %i5,0; be .L2771; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2771: +.L2769: +ba .L2773; nop +set 63,%i4 +cmp %i5,0; be .L2775; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2775: +.L2773: +ba .L2777; nop +set 64,%i4 +cmp %i5,0; be .L2779; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2779: +.L2777: +ba .L2781; nop +set 65,%i4 +cmp %i5,0; be .L2783; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2783: +.L2781: +ba .L2785; nop +set 66,%i4 +cmp %i5,0; be .L2787; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2787: +.L2785: +ba .L2789; nop +set 67,%i4 +cmp %i5,0; be .L2791; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2791: +.L2789: +ba .L2793; nop +set 68,%i4 +cmp %i5,0; be .L2795; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2795: +.L2793: +ba .L2797; nop +set 69,%i4 +cmp %i5,0; be .L2799; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2799: +.L2797: +ba .L2801; nop +set 70,%i4 +cmp %i5,0; be .L2803; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2803: +.L2801: +ba .L2805; nop +set 71,%i4 +cmp %i5,0; be .L2807; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2807: +.L2805: +ba .L2809; nop +set 72,%i4 +cmp %i5,0; be .L2811; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2811: +.L2809: +ba .L2813; nop +set 73,%i4 +cmp %i5,0; be .L2815; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2815: +.L2813: +ba .L2817; nop +set 74,%i4 +cmp %i5,0; be .L2819; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2819: +.L2817: +ba .L2821; nop +set 75,%i4 +cmp %i5,0; be .L2823; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2823: +.L2821: +cmp %i4,0; be .L2825; nop +ld [%i0+44],%l3 +cmp %l3,0; be .L2827; nop +set .2520,%o0 +set 1,%o1 +call printf; nop +.L2827: +add %l5,1,%l5 +.L2825: +mov %g0,%i4 +mov %g0,%i2 +mov %g0,%i3 +mov %i3,%l3 +add %l3,1,%i3 +mov %g0,%l2 +cmp %l3,%l2; be .L2830; nop +mov %i2,%l3 +add %l3,1,%i2 +cmp %l3,%l2; be .L2830; nop +set 1,%l3 +st %l3,[%fp+-8] +ba .L2831; nop +.L2830: +st %g0,[%fp+-8] +.L2831: +ld [%fp+-8],%i1 +cmp %i3,1; be .L2832; nop +set 1,%i4 +cmp %i5,0; be .L2834; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2834: +.L2832: +cmp %i2,0; be .L2836; nop +set 2,%i4 +cmp %i5,0; be .L2838; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2838: +.L2836: +cmp %i1,0; be .L2840; nop +set 3,%i4 +cmp %i5,0; be .L2842; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2842: +.L2840: +cmp %i3,%g0; be .L2845; nop +mov %i2,%l2 +add %l2,1,%i2 +cmp %l2,%g0; be .L2845; nop +set 1,%l3 +st %l3,[%fp+-12] +ba .L2846; nop +.L2845: +st %g0,[%fp+-12] +.L2846: +ld [%fp+-12],%i1 +cmp %i3,1; be .L2847; nop +set 4,%i4 +cmp %i5,0; be .L2849; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2849: +.L2847: +cmp %i2,1; be .L2851; nop +set 5,%i4 +cmp %i5,0; be .L2853; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2853: +.L2851: +cmp %i1,0; be .L2855; nop +set 6,%i4 +cmp %i5,0; be .L2857; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2857: +.L2855: +mov %i3,%l3 +sub %l3,1,%i3 +mov %g0,%l2 +cmp %l3,%l2; be .L2860; nop +cmp %i2,%l2; be .L2860; nop +set 1,%l3 +st %l3,[%fp+-16] +ba .L2861; nop +.L2860: +st %g0,[%fp+-16] +.L2861: +ld [%fp+-16],%i1 +cmp %i3,0; be .L2862; nop +set 7,%i4 +cmp %i5,0; be .L2864; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2864: +.L2862: +cmp %i2,1; be .L2866; nop +set 8,%i4 +cmp %i5,0; be .L2868; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2868: +.L2866: +cmp %i1,1; be .L2870; nop +set 9,%i4 +cmp %i5,0; be .L2872; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2872: +.L2870: +cmp %i3,%g0; be .L2875; nop +mov %i2,%l2 +sub %l2,1,%i2 +cmp %l2,%g0; be .L2875; nop +set 1,%l3 +st %l3,[%fp+-20] +ba .L2876; nop +.L2875: +st %g0,[%fp+-20] +.L2876: +ld [%fp+-20],%i1 +cmp %i3,0; be .L2877; nop +set 10,%i4 +cmp %i5,0; be .L2879; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2879: +.L2877: +cmp %i2,1; be .L2881; nop +set 11,%i4 +cmp %i5,0; be .L2883; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2883: +.L2881: +cmp %i1,0; be .L2885; nop +set 12,%i4 +cmp %i5,0; be .L2887; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2887: +.L2885: +cmp %i4,0; be .L2889; nop +ld [%i0+44],%l3 +cmp %l3,0; be .L2891; nop +set .2520,%o0 +set 2,%o1 +call printf; nop +.L2891: +add %l5,2,%l5 +.L2889: +mov %g0,%i4 +mov %g0,%i2 +mov %g0,%i3 +mov %i3,%l3 +add %l3,1,%i3 +mov %g0,%l2 +cmp %l3,%l2; bne .L2896; nop +cmp %i2,%l2; be .L2894; nop +.L2896: +set 1,%l3 +st %l3,[%fp+-24] +ba .L2895; nop +.L2894: +st %g0,[%fp+-24] +.L2895: +ld [%fp+-24],%i1 +cmp %i3,1; be .L2897; nop +set 1,%i4 +cmp %i5,0; be .L2899; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2899: +.L2897: +cmp %i2,0; be .L2901; nop +set 2,%i4 +cmp %i5,0; be .L2903; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2903: +.L2901: +cmp %i1,0; be .L2905; nop +set 3,%i4 +cmp %i5,0; be .L2907; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2907: +.L2905: +mov %i2,%l3 +add %l3,1,%i2 +mov %g0,%l2 +cmp %l3,%l2; bne .L2912; nop +cmp %i3,%l2; be .L2910; nop +.L2912: +set 1,%l3 +st %l3,[%fp+-28] +ba .L2911; nop +.L2910: +st %g0,[%fp+-28] +.L2911: +ld [%fp+-28],%i1 +cmp %i3,1; be .L2913; nop +set 4,%i4 +cmp %i5,0; be .L2915; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2915: +.L2913: +cmp %i2,1; be .L2917; nop +set 5,%i4 +cmp %i5,0; be .L2919; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2919: +.L2917: +cmp %i1,1; be .L2921; nop +set 6,%i4 +cmp %i5,0; be .L2923; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2923: +.L2921: +mov %i3,%l3 +sub %l3,1,%i3 +mov %g0,%l2 +cmp %l3,%l2; bne .L2928; nop +mov %i2,%l3 +sub %l3,1,%i2 +cmp %l3,%l2; be .L2926; nop +.L2928: +set 1,%l3 +st %l3,[%fp+-32] +ba .L2927; nop +.L2926: +st %g0,[%fp+-32] +.L2927: +ld [%fp+-32],%i1 +cmp %i3,0; be .L2929; nop +set 7,%i4 +cmp %i5,0; be .L2931; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2931: +.L2929: +cmp %i2,1; be .L2933; nop +set 8,%i4 +cmp %i5,0; be .L2935; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2935: +.L2933: +cmp %i1,1; be .L2937; nop +set 9,%i4 +cmp %i5,0; be .L2939; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2939: +.L2937: +mov %g0,%l3 +cmp %i3,%l3; bne .L2944; nop +mov %i2,%l2 +sub %l2,1,%i2 +cmp %l2,%l3; be .L2942; nop +.L2944: +set 1,%l3 +st %l3,[%fp+-36] +ba .L2943; nop +.L2942: +st %g0,[%fp+-36] +.L2943: +ld [%fp+-36],%i1 +cmp %i3,0; be .L2945; nop +set 10,%i4 +cmp %i5,0; be .L2947; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2947: +.L2945: +cmp %i2,0; be .L2949; nop +set 11,%i4 +cmp %i5,0; be .L2951; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2951: +.L2949: +cmp %i1,1; be .L2953; nop +set 12,%i4 +cmp %i5,0; be .L2955; nop +set .2519,%o0 +mov %i4,%o1 +call printf; nop +.L2955: +.L2953: +cmp %i4,0; be .L2957; nop +ld [%i0+44],%l3 +cmp %l3,0; be .L2959; nop +set .2520,%o0 +set 4,%o1 +call printf; nop +.L2959: +add %l5,4,%l5 +.L2957: +mov %g0,%l3 +mov %l3,%i2 +mov %l3,%i3 +mov %l3,%l4 +set 1,%l2 +st %l2,[%fp+-4] +ld [%fp+-4],%l2 +cmp %l2,%l3; be .L2963; nop +st %l4,[%fp+-40] +ba .L2964; nop +.L2963: +ld [%fp+-4],%l3 +cmp %l3,0; be .L2965; nop +mov %i3,%l3 +add %l3,1,%i3 +st %l3,[%fp+-44] +ba .L2966; nop +.L2965: +mov %i2,%l3 +add %l3,1,%i2 +st %l3,[%fp+-44] +.L2966: +ld [%fp+-44],%l3 +st %l3,[%fp+-40] +.L2964: +ld [%fp+-40],%i1 +cmp %i1,%g0; bne .L2970; nop +cmp %i3,%g0; bne .L2970; nop +cmp %i2,%g0; be .L2967; nop +.L2970: +ld [%i0+44],%l3 +cmp %l3,0; be .L2971; nop +set .2520,%o0 +set 8,%o1 +call printf; nop +.L2971: +add %l5,8,%l5 +.L2967: +ld [%fp+-4],%l3 +cmp %l3,0; be .L2978; nop +st %l4,[%fp+-48] +ba .L2979; nop +.L2978: +set 1,%l3 +st %l3,[%fp+-48] +.L2979: +ld [%fp+-48],%l2 +cmp %l2,%g0; bne .L2977; nop +cmp %l4,%g0; be .L2980; nop +set 1,%l3 +st %l3,[%fp+-52] +ba .L2981; nop +.L2980: +st %l4,[%fp+-52] +.L2981: +ld [%fp+-52],%l3 +cmp %l3,0; be .L2973; nop +.L2977: +ld [%i0+44],%l3 +cmp %l3,0; be .L2982; nop +set .2520,%o0 +set 16,%o1 +call printf; nop +.L2982: +add %l5,16,%l5 +.L2973: +mov %l5,%i0 +.L2518: +ret; restore +.type s7813,#function +.size s7813,.-s7813 +.section ".data" +.type .2985,#object +.align 1 +.2985: +.byte 115 +.byte 56 +.byte 49 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size .2985,10 +.type .2986,#object +.size .2986,8 +.align 1 +.2986: +.byte 115 +.byte 56 +.byte 49 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.type .2987,#object +.align 1 +.2987: +.byte 82 +.byte 101 +.byte 103 +.byte 105 +.byte 115 +.byte 116 +.byte 101 +.byte 114 +.byte 32 +.byte 99 +.byte 111 +.byte 117 +.byte 110 +.byte 116 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 37 +.byte 115 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 117 +.byte 110 +.byte 114 +.byte 101 +.byte 108 +.byte 105 +.byte 97 +.byte 98 +.byte 108 +.byte 101 +.byte 46 +.byte 10 +.byte 0 +.size .2987,38 +.type .2988,#object +.align 1 +.2988: +.byte 37 +.byte 100 +.byte 32 +.byte 114 +.byte 101 +.byte 103 +.byte 105 +.byte 115 +.byte 116 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 97 +.byte 115 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 101 +.byte 100 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 37 +.byte 115 +.byte 32 +.byte 118 +.byte 97 +.byte 114 +.byte 105 +.byte 97 +.byte 98 +.byte 108 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.size .2988,40 +.global s81 +.section ".text" +.align 4 +s81: +save %sp,-112,%sp +st %g0,[%fp+-20] +st %g0,[%fp+-8] +st %g0,[%fp+-12] +st %g0,[%fp+-16] +set .2986,%l5 +add %i0,60,%l4 +.L2989: +.L2990: +mov %l4,%l3 +add %l3,1,%l4 +mov %l5,%l2 +add %l2,1,%l5 +ldsb [%l2],%l2 +stb %l2,[%l3] +sll %l2,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,0; bne .L2989; nop +set 1,%l3 +st %l3,[%fp+-4] +mov %g0,%i2 +.L2992: +ld [%fp+-4],%l3 +mov %l3,%l2 +mov %l2,%i5 +mov %l2,%i1 +add -4,%fp,%i4 +add -4,%fp,%l7 +mov %l3,%i3 +mov %l3,%l6 +sll %i5,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +sll %i1,8*(4-1),%l2; sra %l2,8*(4-1),%l2 +cmp %l3,%l2; be .L2996; nop +set 1,%l3 +st %l3,[%fp+-8] +.L2996: +mov %i4,%l3 +mov %l7,%l2 +cmp %l3,%l2; be .L2998; nop +set 1,%l3 +st %l3,[%fp+-12] +.L2998: +cmp %i3,%l6; be .L3000; nop +set 1,%l3 +st %l3,[%fp+-16] +.L3000: +ld [%fp+-4],%l3 +sll %l3,1,%l3 +st %l3,[%fp+-4] +.L2993: +add %i2,1,%i2 +cmp %i2,50; bl .L2992; nop +ld [%fp+-8],%l3 +cmp %l3,0; be .L3002; nop +ld [%fp+-20],%l3 +add %l3,1,%l3 +st %l3,[%fp+-20] +ld [%i0+44],%l3 +cmp %l3,0; be .L3004; nop +set .2985,%o0 +set 1,%o1 +call printf; nop +.L3004: +.L3002: +ld [%fp+-12],%l3 +cmp %l3,0; be .L3006; nop +ld [%fp+-20],%l3 +add %l3,2,%l3 +st %l3,[%fp+-20] +ld [%i0+44],%l3 +cmp %l3,0; be .L3008; nop +set .2985,%o0 +set 2,%o1 +call printf; nop +.L3008: +.L3006: +ld [%fp+-16],%l3 +cmp %l3,0; be .L3010; nop +ld [%fp+-20],%l3 +add %l3,4,%l3 +st %l3,[%fp+-20] +ld [%i0+44],%l3 +cmp %l3,0; be .L3012; nop +set .2985,%o0 +set 4,%o1 +call printf; nop +.L3012: +.L3010: +call regc; nop +st %o0,[%fp+-4] +ld [%i0+40],%l3 +cmp %l3,0; be .L3014; nop +ld [%fp+-4],%l3 +cmp %l3,0; bge .L3016; nop +set .2987,%o0 +set .L425,%o1 +call printf; nop +ba .L3017; nop +.L3016: +set .2988,%o0 +ld [%fp+-4],%o1 +set .L425,%o2 +call printf; nop +.L3017: +.L3014: +call regp; nop +st %o0,[%fp+-4] +ld [%i0+40],%l3 +cmp %l3,0; be .L3018; nop +ld [%fp+-4],%l3 +cmp %l3,0; bge .L3020; nop +set .2987,%o0 +set .L3022,%o1 +call printf; nop +ba .L3021; nop +.L3020: +set .2988,%o0 +ld [%fp+-4],%o1 +set .L3022,%o2 +call printf; nop +.L3021: +.L3018: +call regi; nop +st %o0,[%fp+-4] +ld [%i0+40],%l3 +cmp %l3,0; be .L3023; nop +ld [%fp+-4],%l3 +cmp %l3,0; bge .L3025; nop +set .2987,%o0 +set .L426,%o1 +call printf; nop +ba .L3026; nop +.L3025: +set .2988,%o0 +ld [%fp+-4],%o1 +set .L426,%o2 +call printf; nop +.L3026: +.L3023: +ld [%fp+-20],%i0 +.L2984: +ret; restore +.type s81,#function +.size s81,.-s81 +.global regc +.align 4 +regc: +save %sp,-232,%sp +stb %g0,[%fp+-130] +set 1,%l3 +stb %l3,[%fp+-109] +set 2,%l3 +stb %l3,[%fp+-110] +set 3,%l3 +stb %l3,[%fp+-111] +set 4,%i5 +set 5,%l3 +stb %l3,[%fp+-112] +set 6,%i4 +set 7,%l3 +stb %l3,[%fp+-113] +set 8,%i3 +set 9,%l3 +stb %l3,[%fp+-114] +set 10,%i2 +set 11,%l3 +stb %l3,[%fp+-115] +set 12,%i1 +set 13,%l3 +stb %l3,[%fp+-116] +set 14,%i0 +set 15,%l3 +stb %l3,[%fp+-117] +set 16,%l7 +set 17,%l3 +stb %l3,[%fp+-118] +set 18,%l6 +set 19,%l3 +stb %l3,[%fp+-119] +set 20,%l5 +set 21,%l3 +stb %l3,[%fp+-120] +set 22,%l4 +set 23,%l3 +stb %l3,[%fp+-121] +set 24,%l3 +stb %l3,[%fp+-1] +set 25,%l3 +stb %l3,[%fp+-122] +set 26,%l3 +stb %l3,[%fp+-2] +set 27,%l3 +stb %l3,[%fp+-123] +set 28,%l3 +stb %l3,[%fp+-3] +set 29,%l3 +stb %l3,[%fp+-124] +set 30,%l3 +stb %l3,[%fp+-4] +set 31,%l3 +stb %l3,[%fp+-125] +set 32,%l3 +stb %l3,[%fp+-5] +set 33,%l3 +stb %l3,[%fp+-126] +set 34,%l3 +stb %l3,[%fp+-6] +set 35,%l3 +stb %l3,[%fp+-127] +set 36,%l3 +stb %l3,[%fp+-128] +set 37,%l3 +stb %l3,[%fp+-129] +set 38,%l3 +stb %l3,[%fp+-131] +add -109,%fp,%l3 +add -130,%fp,%l2 +sub %l3,%l2,%l2 +st %l2,[%fp+-96] +add -110,%fp,%l2 +sub %l2,%l3,%l3 +st %l3,[%fp+-92] +add -111,%fp,%l3 +add -110,%fp,%l2 +sub %l3,%l2,%l3 +st %l3,[%fp+-88] +add -112,%fp,%l3 +add -111,%fp,%l2 +sub %l3,%l2,%l3 +st %l3,[%fp+-84] +add -113,%fp,%l3 +add -112,%fp,%l2 +sub %l3,%l2,%l3 +st %l3,[%fp+-80] +add -114,%fp,%l3 +add -113,%fp,%l2 +sub %l3,%l2,%l3 +st %l3,[%fp+-76] +add -115,%fp,%l3 +add -114,%fp,%l2 +sub %l3,%l2,%l3 +st %l3,[%fp+-72] +add -116,%fp,%l3 +add -115,%fp,%l2 +sub %l3,%l2,%l3 +st %l3,[%fp+-68] +add -117,%fp,%l3 +add -116,%fp,%l2 +sub %l3,%l2,%l3 +st %l3,[%fp+-64] +add -118,%fp,%l3 +add -117,%fp,%l2 +sub %l3,%l2,%l3 +st %l3,[%fp+-60] +add -119,%fp,%l3 +add -118,%fp,%l2 +sub %l3,%l2,%l3 +st %l3,[%fp+-56] +add -120,%fp,%l3 +add -119,%fp,%l2 +sub %l3,%l2,%l3 +st %l3,[%fp+-52] +add -121,%fp,%l3 +add -120,%fp,%l2 +sub %l3,%l2,%l3 +st %l3,[%fp+-48] +add -122,%fp,%l3 +add -121,%fp,%l2 +sub %l3,%l2,%l3 +st %l3,[%fp+-44] +add -123,%fp,%l3 +add -122,%fp,%l2 +sub %l3,%l2,%l3 +st %l3,[%fp+-40] +add -124,%fp,%l3 +add -123,%fp,%l2 +sub %l3,%l2,%l3 +st %l3,[%fp+-36] +add -125,%fp,%l3 +add -124,%fp,%l2 +sub %l3,%l2,%l3 +st %l3,[%fp+-32] +add -126,%fp,%l3 +add -125,%fp,%l2 +sub %l3,%l2,%l3 +st %l3,[%fp+-28] +add -127,%fp,%l3 +add -126,%fp,%l2 +sub %l3,%l2,%l3 +st %l3,[%fp+-24] +add -128,%fp,%l3 +add -127,%fp,%l2 +sub %l3,%l2,%l3 +st %l3,[%fp+-20] +add -129,%fp,%l3 +add -128,%fp,%l2 +sub %l3,%l2,%l3 +st %l3,[%fp+-16] +add -131,%fp,%l3 +add -129,%fp,%l2 +sub %l3,%l2,%l3 +st %l3,[%fp+-12] +ld [%fp+-96],%l3 +st %l3,[%fp+-108] +set 1,%l3 +st %l3,[%fp+-104] +st %g0,[%fp+-100] +.L3049: +ld [%fp+-104],%l3 +cmp %l3,1; be .L3055; nop +cmp %l3,2; be .L3058; nop +cmp %l3,3; be .L3063; nop +ba .L3053; nop +.L3055: +ld [%fp+-100],%l3 +sll %l3,2,%l3 +add -96,%fp,%l2 +ld [%l3+%l2],%l3 +ld [%fp+-108],%l2 +cmp %l3,%l2; be .L3054; nop +set 2,%l3 +ld [%fp+-100],%l2 +sll %l2,2,%l2 +add -96,%fp,%l1 +ld [%l2+%l1],%l2 +st %l2,[%fp+-140] +st %l3,[%fp+-104] +set 1,%l3 +st %l3,[%fp+-136] +ba .L3054; nop +.L3058: +ld [%fp+-100],%l3 +sll %l3,2,%l3 +add -96,%fp,%l2 +ld [%l3+%l2],%l3 +ld [%fp+-108],%l2 +cmp %l3,%l2; bne .L3059; nop +set 3,%l3 +st %l3,[%fp+-104] +ba .L3054; nop +.L3059: +ld [%fp+-100],%l3 +sll %l3,2,%l3 +add -96,%fp,%l2 +ld [%l3+%l2],%l3 +ld [%fp+-140],%l2 +cmp %l3,%l2; bne .L3061; nop +ld [%fp+-136],%l3 +add %l3,1,%l3 +st %l3,[%fp+-136] +ba .L3054; nop +.L3061: +set 4,%l3 +st %l3,[%fp+-104] +ba .L3054; nop +.L3063: +ld [%fp+-100],%l3 +sll %l3,2,%l3 +add -96,%fp,%l2 +ld [%l3+%l2],%l3 +ld [%fp+-108],%l2 +cmp %l3,%l2; be .L3054; nop +set 4,%l3 +st %l3,[%fp+-104] +.L3053: +.L3054: +.L3050: +ld [%fp+-100],%l3 +add %l3,1,%l3 +st %l3,[%fp+-100] +ld [%fp+-100],%l3 +cmp %l3,22; bl .L3049; nop +ld [%fp+-104],%l3 +cmp %l3,3; bne .L3066; nop +set 16,%l3 +ld [%fp+-136],%l2 +sub %l3,%l2,%i0 +ba .L3027; nop +.L3066: +set -1,%i0 +.L3027: +ret; restore +.type regc,#function +.size regc,.-regc +.global regi +.align 4 +regi: +save %sp,-320,%sp +st %g0,[%fp+-212] +set 1,%l3 +st %l3,[%fp+-128] +set 2,%l3 +st %l3,[%fp+-132] +set 3,%l3 +st %l3,[%fp+-136] +set 4,%i5 +set 5,%l3 +st %l3,[%fp+-140] +set 6,%i4 +set 7,%l3 +st %l3,[%fp+-144] +set 8,%i3 +set 9,%l3 +st %l3,[%fp+-148] +set 10,%i2 +set 11,%l3 +st %l3,[%fp+-152] +set 12,%i1 +set 13,%l3 +st %l3,[%fp+-156] +set 14,%i0 +set 15,%l3 +st %l3,[%fp+-160] +set 16,%l7 +set 17,%l3 +st %l3,[%fp+-164] +set 18,%l6 +set 19,%l3 +st %l3,[%fp+-168] +set 20,%l5 +set 21,%l3 +st %l3,[%fp+-172] +set 22,%l4 +set 23,%l3 +st %l3,[%fp+-176] +set 24,%l3 +st %l3,[%fp+-4] +set 25,%l3 +st %l3,[%fp+-180] +set 26,%l3 +st %l3,[%fp+-8] +set 27,%l3 +st %l3,[%fp+-184] +set 28,%l3 +st %l3,[%fp+-12] +set 29,%l3 +st %l3,[%fp+-188] +set 30,%l3 +st %l3,[%fp+-16] +set 31,%l3 +st %l3,[%fp+-192] +set 32,%l3 +st %l3,[%fp+-20] +set 33,%l3 +st %l3,[%fp+-196] +set 34,%l3 +st %l3,[%fp+-24] +set 35,%l3 +st %l3,[%fp+-200] +set 36,%l3 +st %l3,[%fp+-204] +set 37,%l3 +st %l3,[%fp+-208] +set 38,%l3 +st %l3,[%fp+-216] +add -128,%fp,%l3 +add -212,%fp,%l2 +sub %l3,%l2,%l2 +sra %l2,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l2,4,%l2 +st %l2,[%fp+-112] +add -132,%fp,%l2 +sub %l2,%l3,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-108] +add -136,%fp,%l3 +add -132,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-104] +add -140,%fp,%l3 +add -136,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-100] +add -144,%fp,%l3 +add -140,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-96] +add -148,%fp,%l3 +add -144,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-92] +add -152,%fp,%l3 +add -148,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-88] +add -156,%fp,%l3 +add -152,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-84] +add -160,%fp,%l3 +add -156,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-80] +add -164,%fp,%l3 +add -160,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-76] +add -168,%fp,%l3 +add -164,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-72] +add -172,%fp,%l3 +add -168,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-68] +add -176,%fp,%l3 +add -172,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-64] +add -180,%fp,%l3 +add -176,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-60] +add -184,%fp,%l3 +add -180,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-56] +add -188,%fp,%l3 +add -184,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-52] +add -192,%fp,%l3 +add -188,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-48] +add -196,%fp,%l3 +add -192,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-44] +add -200,%fp,%l3 +add -196,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-40] +add -204,%fp,%l3 +add -200,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-36] +add -208,%fp,%l3 +add -204,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-32] +add -216,%fp,%l3 +add -208,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-28] +ld [%fp+-112],%l3 +st %l3,[%fp+-124] +set 1,%l3 +st %l3,[%fp+-120] +st %g0,[%fp+-116] +.L3090: +ld [%fp+-120],%l3 +cmp %l3,1; be .L3096; nop +cmp %l3,2; be .L3099; nop +cmp %l3,3; be .L3104; nop +ba .L3094; nop +.L3096: +ld [%fp+-116],%l3 +sll %l3,2,%l3 +add -112,%fp,%l2 +ld [%l3+%l2],%l3 +ld [%fp+-124],%l2 +cmp %l3,%l2; be .L3095; nop +set 2,%l3 +ld [%fp+-116],%l2 +sll %l2,2,%l2 +add -112,%fp,%l1 +ld [%l2+%l1],%l2 +st %l2,[%fp+-224] +st %l3,[%fp+-120] +set 1,%l3 +st %l3,[%fp+-220] +ba .L3095; nop +.L3099: +ld [%fp+-116],%l3 +sll %l3,2,%l3 +add -112,%fp,%l2 +ld [%l3+%l2],%l3 +ld [%fp+-124],%l2 +cmp %l3,%l2; bne .L3100; nop +set 3,%l3 +st %l3,[%fp+-120] +ba .L3095; nop +.L3100: +ld [%fp+-116],%l3 +sll %l3,2,%l3 +add -112,%fp,%l2 +ld [%l3+%l2],%l3 +ld [%fp+-224],%l2 +cmp %l3,%l2; bne .L3102; nop +ld [%fp+-220],%l3 +add %l3,1,%l3 +st %l3,[%fp+-220] +ba .L3095; nop +.L3102: +set 4,%l3 +st %l3,[%fp+-120] +ba .L3095; nop +.L3104: +ld [%fp+-116],%l3 +sll %l3,2,%l3 +add -112,%fp,%l2 +ld [%l3+%l2],%l3 +ld [%fp+-124],%l2 +cmp %l3,%l2; be .L3095; nop +set 4,%l3 +st %l3,[%fp+-120] +.L3094: +.L3095: +.L3091: +ld [%fp+-116],%l3 +add %l3,1,%l3 +st %l3,[%fp+-116] +ld [%fp+-116],%l3 +cmp %l3,22; bl .L3090; nop +ld [%fp+-120],%l3 +cmp %l3,3; bne .L3107; nop +set 16,%l3 +ld [%fp+-220],%l2 +sub %l3,%l2,%i0 +ba .L3068; nop +.L3107: +set -1,%i0 +.L3068: +ret; restore +.type regi,#function +.size regi,.-regi +.global regp +.align 4 +regp: +save %sp,-320,%sp +add -212,%fp,%l3 +st %l3,[%fp+-212] +add -188,%fp,%l3 +st %l3,[%fp+-188] +add -192,%fp,%l3 +st %l3,[%fp+-192] +add -196,%fp,%l3 +st %l3,[%fp+-196] +add -124,%fp,%i5 +add -124,%fp,%l3 +st %l3,[%fp+-124] +add -128,%fp,%i4 +add -128,%fp,%l3 +st %l3,[%fp+-128] +add -132,%fp,%i3 +add -132,%fp,%l3 +st %l3,[%fp+-132] +add -136,%fp,%i2 +add -136,%fp,%l3 +st %l3,[%fp+-136] +add -140,%fp,%i1 +add -140,%fp,%l3 +st %l3,[%fp+-140] +add -144,%fp,%i0 +add -144,%fp,%l3 +st %l3,[%fp+-144] +add -148,%fp,%l7 +add -148,%fp,%l3 +st %l3,[%fp+-148] +add -152,%fp,%l6 +add -152,%fp,%l3 +st %l3,[%fp+-152] +add -156,%fp,%l5 +add -156,%fp,%l3 +st %l3,[%fp+-156] +add -160,%fp,%l4 +add -160,%fp,%l3 +st %l3,[%fp+-160] +add -164,%fp,%l3 +st %l3,[%fp+-4] +add -164,%fp,%l3 +st %l3,[%fp+-164] +add -168,%fp,%l3 +st %l3,[%fp+-8] +add -168,%fp,%l3 +st %l3,[%fp+-168] +add -172,%fp,%l3 +st %l3,[%fp+-12] +add -172,%fp,%l3 +st %l3,[%fp+-172] +add -176,%fp,%l3 +st %l3,[%fp+-16] +add -176,%fp,%l3 +st %l3,[%fp+-176] +add -180,%fp,%l3 +st %l3,[%fp+-20] +add -180,%fp,%l3 +st %l3,[%fp+-180] +add -184,%fp,%l3 +st %l3,[%fp+-24] +add -184,%fp,%l3 +st %l3,[%fp+-184] +add -200,%fp,%l3 +st %l3,[%fp+-200] +add -204,%fp,%l3 +st %l3,[%fp+-204] +add -216,%fp,%l3 +st %l3,[%fp+-216] +add -188,%fp,%l3 +add -212,%fp,%l2 +sub %l3,%l2,%l2 +sra %l2,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l2,4,%l2 +st %l2,[%fp+-112] +add -192,%fp,%l2 +sub %l2,%l3,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-108] +add -196,%fp,%l3 +add -192,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-104] +add -124,%fp,%l3 +add -196,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-100] +add -128,%fp,%l3 +add -124,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-96] +add -132,%fp,%l3 +add -128,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-92] +add -136,%fp,%l3 +add -132,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-88] +add -140,%fp,%l3 +add -136,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-84] +add -144,%fp,%l3 +add -140,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-80] +add -148,%fp,%l3 +add -144,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-76] +add -152,%fp,%l3 +add -148,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-72] +add -156,%fp,%l3 +add -152,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-68] +add -160,%fp,%l3 +add -156,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-64] +add -164,%fp,%l3 +add -160,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-60] +add -168,%fp,%l3 +add -164,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-56] +add -172,%fp,%l3 +add -168,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-52] +add -176,%fp,%l3 +add -172,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-48] +add -180,%fp,%l3 +add -176,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-44] +add -184,%fp,%l3 +add -180,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-40] +add -200,%fp,%l3 +add -184,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-36] +add -204,%fp,%l3 +add -200,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-32] +add -216,%fp,%l3 +add -204,%fp,%l2 +sub %l3,%l2,%l3 +sra %l3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l3,4,%l3 +st %l3,[%fp+-28] +ld [%fp+-112],%l3 +st %l3,[%fp+-208] +set 1,%l3 +st %l3,[%fp+-120] +st %g0,[%fp+-116] +.L3131: +ld [%fp+-120],%l3 +cmp %l3,1; be .L3137; nop +cmp %l3,2; be .L3140; nop +cmp %l3,3; be .L3145; nop +ba .L3135; nop +.L3137: +ld [%fp+-116],%l3 +sll %l3,2,%l3 +add -112,%fp,%l2 +ld [%l3+%l2],%l3 +ld [%fp+-208],%l2 +cmp %l3,%l2; be .L3136; nop +set 2,%l3 +ld [%fp+-116],%l2 +sll %l2,2,%l2 +add -112,%fp,%l1 +ld [%l2+%l1],%l2 +st %l2,[%fp+-224] +st %l3,[%fp+-120] +set 1,%l3 +st %l3,[%fp+-220] +ba .L3136; nop +.L3140: +ld [%fp+-116],%l3 +sll %l3,2,%l3 +add -112,%fp,%l2 +ld [%l3+%l2],%l3 +ld [%fp+-208],%l2 +cmp %l3,%l2; bne .L3141; nop +set 3,%l3 +st %l3,[%fp+-120] +ba .L3136; nop +.L3141: +ld [%fp+-116],%l3 +sll %l3,2,%l3 +add -112,%fp,%l2 +ld [%l3+%l2],%l3 +ld [%fp+-224],%l2 +cmp %l3,%l2; bne .L3143; nop +ld [%fp+-220],%l3 +add %l3,1,%l3 +st %l3,[%fp+-220] +ba .L3136; nop +.L3143: +set 4,%l3 +st %l3,[%fp+-120] +ba .L3136; nop +.L3145: +ld [%fp+-116],%l3 +sll %l3,2,%l3 +add -112,%fp,%l2 +ld [%l3+%l2],%l3 +ld [%fp+-208],%l2 +cmp %l3,%l2; be .L3136; nop +set 4,%l3 +st %l3,[%fp+-120] +.L3135: +.L3136: +.L3132: +ld [%fp+-116],%l3 +add %l3,1,%l3 +st %l3,[%fp+-116] +ld [%fp+-116],%l3 +cmp %l3,22; bl .L3131; nop +ld [%fp+-120],%l3 +cmp %l3,3; bne .L3148; nop +set 16,%l3 +ld [%fp+-220],%l2 +sub %l3,%l2,%i0 +ba .L3109; nop +.L3148: +set -1,%i0 +.L3109: +ret; restore +.type regp,#function +.size regp,.-regp +.section ".bss" +.type .3151,#object +.size .3151,420 +.local .3151 +.common .3151,420,4 +.section ".data" +.type .3152,#object +.align 1 +.3152: +.byte 115 +.byte 56 +.byte 52 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size .3152,10 +.type .3153,#object +.size .3153,8 +.align 1 +.3153: +.byte 115 +.byte 56 +.byte 52 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.global s84 +.section ".text" +.align 4 +s84: +save %sp,-232,%sp +set .3153,%i2 +add %i0,60,%i1 +mov %g0,%l7 +.L3154: +.L3155: +mov %i1,%l4 +add %l4,1,%i1 +mov %i2,%l3 +add %l3,1,%i2 +ldsb [%l3],%l3 +stb %l3,[%l4] +sll %l3,8*(4-1),%l4; sra %l4,8*(4-1),%l4 +cmp %l4,0; bne .L3154; nop +set 3,%o0 +call fip; nop +mov %o0,%l6 +ld [%l6],%l4 +cmp %l4,3; be .L3157; nop +ld [%i0+44],%l4 +cmp %l4,0; be .L3159; nop +set .3152,%o0 +set 1,%o1 +call printf; nop +.L3159: +add %l7,1,%l7 +.L3157: +set glork,%l5 +set 4,%o0 +call %l5; nop +cmp %o0,4; be .L3161; nop +ld [%i0+44],%l4 +cmp %l4,0; be .L3163; nop +set .3152,%o0 +set 2,%o1 +call printf; nop +.L3163: +add %l7,2,%l7 +.L3161: +mov %g0,%i4 +.L3165: +sll %i4,2,%l4 +add -68,%fp,%l3 +st %i4,[%sp+64]; ld [%sp+64],%f31; fitos %f31,%f31 +st %f31,[%l4+%l3] +sll %i4,2,%l4 +add -136,%fp,%l3 +add -68,%fp,%l2 +add %l4,%l2,%l2 +st %l2,[%l4+%l3] +.L3166: +add %i4,1,%i4 +cmp %i4,17; bl .L3165; nop +set .L412,%l4 +ld [%l4],%f31 +st %f31,[%fp+-140] +mov %g0,%i4 +.L3169: +ld [%fp+-140],%f31 +sll %i4,2,%l4 +add -136,%fp,%l3 +ld [%l4+%l3],%l4 +ld [%l4],%f30 +fadds %f31,%f30,%f31 +st %f31,[%fp+-140] +.L3170: +add %i4,1,%i4 +cmp %i4,17; bl .L3169; nop +ld [%fp+-140],%f31 +set .L3175,%l4 +ld [%l4],%f30 +fcmpes %f31,%f30; nop; fbue .L3173; nop +ld [%i0+44],%l4 +cmp %l4,0; be .L3176; nop +set .3152,%o0 +set 4,%o1 +call printf; nop +.L3176: +add %l7,4,%l7 +.L3173: +mov %g0,%i3 +.L3178: +mov %g0,%i4 +.L3182: +mov %g0,%i5 +.L3186: +sll %i5,2,%l4 +smul %i4,28,%l3 +smul %i3,140,%l2 +set .3151,%l1 +add %l2,%l1,%l2 +add %l3,%l2,%l3 +smul %i3,35,%l2 +smul %i4,7,%l1 +add %l2,%l1,%l2 +add %l2,%i5,%l2 +st %l2,[%l4+%l3] +.L3187: +add %i5,1,%i5 +cmp %i5,7; bl .L3186; nop +.L3183: +add %i4,1,%i4 +cmp %i4,5; bl .L3182; nop +.L3179: +add %i3,1,%i3 +cmp %i3,3; bl .L3178; nop +set 1,%i3 +set 2,%i4 +set 3,%i5 +set .3151,%o0 +set 105,%o1 +mov %g0,%o2 +call array; nop +mov %o0,%l4 +smul %i3,140,%l3 +set .3151,%l2 +add %l3,%l2,%o0 +set 35,%l3 +mov %l3,%o1 +mov %l3,%o2 +call array; nop +mov %o0,%l3 +smul %i4,28,%l2 +smul %i3,140,%l1 +set .3151,%l0 +add %l1,%l0,%l1 +add %l2,%l1,%o0 +set 7,%o1 +set 49,%o2 +call array; nop +add %l4,%l3,%l4 +add %l4,%o0,%l4 +sll %i5,2,%l3 +smul %i4,28,%l2 +smul %i3,140,%l1 +set .3151,%l0 +add %l1,%l0,%l1 +add %l2,%l1,%l2 +ld [%l3+%l2],%l3 +add %l4,%l3,%l4 +sub %l4,52,%l4 +cmp %l4,0; be .L3190; nop +ld [%i0+44],%l4 +cmp %l4,0; be .L3192; nop +set .3152,%o0 +set 8,%o1 +call printf; nop +.L3192: +add %l7,8,%l7 +.L3190: +mov %l7,%i0 +.L3150: +ret; restore +.type s84,#function +.size s84,.-s84 +.global array +.align 4 +array: +mov %g0,%o5 +ba .L3198; nop +.L3195: +sll %o5,2,%o4 +ld [%o4+%o0],%o4 +add %o5,%o2,%o3 +cmp %o4,%o3; be .L3199; nop +set 1,%o0 +ba .L3194; nop +.L3199: +.L3196: +add %o5,1,%o5 +.L3198: +cmp %o5,%o1; bl .L3195; nop +mov %g0,%o0 +.L3194: +retl; nop +.type array,#function +.size array,.-array +.section ".bss" +.type .3202,#object +.size .3202,4 +.local .3202 +.common .3202,4,4 +.global fip +.section ".text" +.align 4 +fip: +set .3202,%o5 +st %o0,[%o5] +mov %o5,%o0 +.L3201: +retl; nop +.type fip,#function +.size fip,.-fip +.global glork +.align 4 +glork: +.L3203: +retl; nop +.type glork,#function +.size glork,.-glork +.section ".data" +.type .3205,#object +.align 1 +.3205: +.byte 115 +.byte 56 +.byte 53 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size .3205,10 +.type .3206,#object +.size .3206,8 +.align 1 +.3206: +.byte 115 +.byte 56 +.byte 53 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.type .3214,#object +.align 4 +.3214: +.word .L425 +.word .L427 +.word .L426 +.word .L428 +.word .L429 +.word .L430 +.word .L431 +.size .3214,28 +.type .3215,#object +.align 1 +.3215: +.byte 32 +.byte 97 +.byte 108 +.byte 105 +.byte 103 +.byte 110 +.byte 109 +.byte 101 +.byte 110 +.byte 116 +.byte 58 +.byte 32 +.byte 0 +.size .3215,13 +.global s85 +.section ".text" +.align 4 +s85: +save %sp,-488,%sp +set .3206,%i4 +add %i0,60,%i3 +mov %g0,%i2 +.L3219: +.L3220: +mov %i3,%i1 +add %i1,1,%i3 +mov %i4,%l7 +add %l7,1,%i4 +ldsb [%l7],%l7 +stb %l7,[%i1] +sll %l7,8*(4-1),%i1; sra %i1,8*(4-1),%i1 +cmp %i1,0; bne .L3219; nop +add -284,%fp,%l7 +add -304,%fp,%l6 +sub %l7,%l6,%l7 +cmp %l7,%g0; ble .L3230; nop +add -280,%fp,%l7 +add -284,%fp,%l6 +sub %l7,%l6,%l7 +cmp %l7,%g0; ble .L3230; nop +add -276,%fp,%l7 +add -280,%fp,%l6 +sub %l7,%l6,%l7 +cmp %l7,%g0; bg .L3222; nop +.L3230: +ld [%i0+44],%i1 +cmp %i1,0; be .L3231; nop +set .3205,%o0 +set 1,%o1 +call printf; nop +.L3231: +add %i2,1,%i2 +.L3222: +add -337,%fp,%i1 +add -338,%fp,%l7 +sub %i1,%l7,%i1 +st %i1,[%fp+-268] +add -340,%fp,%i1 +add -342,%fp,%l7 +sub %i1,%l7,%i1 +st %i1,[%fp+-264] +add -348,%fp,%i1 +add -352,%fp,%l7 +sub %i1,%l7,%i1 +st %i1,[%fp+-260] +add -356,%fp,%i1 +add -360,%fp,%l7 +sub %i1,%l7,%i1 +st %i1,[%fp+-256] +add -364,%fp,%i1 +add -368,%fp,%l7 +sub %i1,%l7,%i1 +st %i1,[%fp+-252] +add -372,%fp,%i1 +add -376,%fp,%l7 +sub %i1,%l7,%i1 +st %i1,[%fp+-248] +add -384,%fp,%i1 +add -392,%fp,%l7 +sub %i1,%l7,%i1 +st %i1,[%fp+-244] +ld [%i0+40],%i1 +cmp %i1,0; be .L3246; nop +mov %g0,%i5 +.L3248: +set .L3252,%o0 +sll %i5,2,%i1 +set .3214,%l7 +ld [%i1+%l7],%o1 +set .3215,%o2 +add -268,%fp,%l7 +ld [%i1+%l7],%o3 +call printf; nop +.L3249: +add %i5,1,%i5 +cmp %i5,7; bl .L3248; nop +.L3246: +ld [%fp+-272],%i1 +set 0x1c000000,%l7 +or %i1,%l7,%i1 +st %i1,[%fp+-272] +ld [%fp+-272],%i1 +mov %i1,%l7 +set 0x3fffffff,%l6 +and %l7,%l6,%l7 +sll %i1,3,%i1 +sra %i1,29,%i1 +sll %i1,30,%i1 +sra %i1,30,%i1 +sll %i1,30,%i1 +set 0xc0000000,%l6 +and %i1,%l6,%i1 +or %l7,%i1,%i1 +st %i1,[%fp+-272] +ld [%fp+-272],%i1 +mov %i1,%l7 +set 0xe3ffffff,%l6 +and %l7,%l6,%l7 +sra %i1,30,%i1 +sll %i1,29,%i1 +sra %i1,29,%i1 +sll %i1,26,%i1 +set 0x1c000000,%l6 +and %i1,%l6,%i1 +or %l7,%i1,%i1 +st %i1,[%fp+-272] +ld [%fp+-272],%i1 +sll %i1,3,%i1 +sra %i1,29,%i1 +cmp %i1,3; be .L3253; nop +ld [%fp+-272],%i1 +sll %i1,3,%i1 +sra %i1,29,%i1 +cmp %i1,-1; bne .L3255; nop +ld [%i0+40],%i1 +cmp %i1,0; be .L3256; nop +set .L3259,%o0 +call printf; nop +ba .L3256; nop +.L3255: +ld [%i0+44],%i1 +cmp %i1,0; be .L3260; nop +set .3205,%o0 +set 2,%o1 +call printf; nop +.L3260: +add %i2,2,%i2 +.L3256: +.L3253: +ld [%fp+-272],%i1 +set 0x2000000,%l7 +or %i1,%l7,%i1 +st %i1,[%fp+-272] +ld [%fp+-272],%i1 +sll %i1,6,%i1 +sra %i1,31,%i1 +cmp %i1,1; be .L3262; nop +ld [%i0+40],%i1 +cmp %i1,0; be .L3264; nop +set .L3266,%o0 +call printf; nop +.L3264: +.L3262: +add -240,%fp,%i1 +sub %i1,%i1,%i1 +cmp %i1,%g0; bne .L3274; nop +cmp %i1,%g0; bne .L3274; nop +cmp %i1,%g0; bne .L3274; nop +cmp %i1,%g0; bne .L3274; nop +cmp %i1,%g0; bne .L3274; nop +cmp %i1,%g0; bne .L3274; nop +cmp %i1,%g0; be .L3267; nop +.L3274: +ld [%i0+44],%i1 +cmp %i1,0; be .L3275; nop +set .3205,%o0 +set 4,%o1 +call printf; nop +.L3275: +add %i2,4,%i2 +.L3267: +ba .L3277; nop +ld [%i0+44],%i1 +cmp %i1,0; be .L3279; nop +set .3205,%o0 +set 8,%o1 +call printf; nop +.L3279: +add %i2,8,%i2 +.L3277: +add -336,%fp,%i1 +st %i1,[%fp+-276] +set 2,%i1 +stb %i1,[%fp+-336] +ld [%fp+-276],%i1 +ldsb [%i1],%l7 +add %l7,1,%l7 +stb %l7,[%i1] +ldsb [%fp+-336],%i1 +cmp %i1,3; be .L3283; nop +ld [%i0+44],%i1 +cmp %i1,0; be .L3285; nop +set .3205,%o0 +set 16,%o1 +call printf; nop +.L3285: +add %i2,16,%i2 +.L3283: +mov %i2,%i0 +.L3204: +ret; restore +.type s85,#function +.size s85,.-s85 +.section ".data" +.type .3288,#object +.align 1 +.3288: +.byte 115 +.byte 56 +.byte 54 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size .3288,10 +.type .3289,#object +.size .3289,8 +.align 1 +.3289: +.byte 115 +.byte 56 +.byte 54 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.type .3290,#object +.align 4 +.3290: +.word 0x1 +.word 0x3 +.word 0x5 +.size .3290,12 +.type .3291,#object +.size .3291,4 +.align 4 +.3291: +.word .3290+8 +.section ".bss" +.type .3293,#object +.size .3293,40 +.local .3293 +.common .3293,40,4 +.section ".data" +.type .3294,#object +.align 4 +.3294: +.word 0x3f800000 +.word 0x40400000 +.word 0x40a00000 +.word 0x40000000 +.word 0x40800000 +.word 0x40c00000 +.word 0x40400000 +.word 0x40a00000 +.word 0x40e00000 +.word 0x0 +.word 0x0 +.word 0x0 +.size .3294,48 +.type .3295,#object +.size .3295,48 +.align 4 +.3295: +.word 0x3f800000 +.word 0x40400000 +.word 0x40a00000 +.word 0x40000000 +.word 0x40800000 +.word 0x40c00000 +.word 0x40400000 +.word 0x40a00000 +.word 0x40e00000 +.skip 12 +.type .3296,#object +.size .3296,48 +.align 4 +.3296: +.word 0x3f800000 +.word 0x40400000 +.word 0x40a00000 +.word 0x40000000 +.word 0x40800000 +.word 0x40c00000 +.word 0x40400000 +.word 0x40a00000 +.word 0x40e00000 +.skip 12 +.type .3297,#object +.size .3297,48 +.align 4 +.3297: +.word 0x3f800000 +.skip 8 +.word 0x40000000 +.skip 8 +.word 0x40400000 +.skip 8 +.word 0x40800000 +.skip 8 +.global s86 +.section ".text" +.align 4 +s86: +save %sp,-96,%sp +set .3291,%l3 +ld [%l3],%l3 +add %l3,-4,%l4 +call one; nop +sll %o0,2,%l3 +add %l3,%l4,%i5 +set .3289,%l7 +add %i0,60,%l6 +mov %g0,%l5 +.L3298: +.L3299: +mov %l6,%l3 +add %l3,1,%l6 +mov %l7,%l2 +add %l2,1,%l7 +ldsb [%l2],%l2 +stb %l2,[%l3] +sll %l2,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +cmp %l3,0; bne .L3298; nop +set .3291,%l3 +ld [%l3],%l3 +ld [%l3],%l3 +cmp %l3,5; be .L3301; nop +ld [%i0+44],%l3 +cmp %l3,0; be .L3303; nop +set .3288,%o0 +set 1,%o1 +call printf; nop +.L3303: +add %l5,1,%l5 +.L3301: +ld [%l4],%l3 +cmp %l3,3; be .L3305; nop +ld [%i0+44],%l3 +cmp %l3,0; be .L3307; nop +set .3288,%o0 +set 2,%o1 +call printf; nop +.L3307: +add %l5,2,%l5 +.L3305: +ld [%i5],%l3 +cmp %l3,5; be .L3309; nop +ld [%i0+44],%l3 +cmp %l3,0; be .L3311; nop +set .3288,%o0 +set 4,%o1 +call printf; nop +.L3311: +add %l5,4,%l5 +.L3309: +mov %g0,%i1 +mov %g0,%i4 +.L3313: +sll %i4,2,%l3 +set .3293,%l2 +ld [%l3+%l2],%l3 +cmp %l3,0; be .L3317; nop +set 1,%i1 +.L3317: +.L3314: +add %i4,1,%i4 +cmp %i4,10; bl .L3313; nop +cmp %i1,0; be .L3319; nop +ld [%i0+44],%l3 +cmp %l3,0; be .L3321; nop +set .3288,%o0 +set 8,%o1 +call printf; nop +.L3321: +add %l5,8,%l5 +.L3319: +mov %g0,%i1 +mov %g0,%i3 +.L3323: +mov %g0,%i4 +.L3327: +smul %i3,3,%l3 +add %l3,%i4,%i2 +sll %i4,2,%l3 +smul %i3,12,%l2 +set .3295,%l1 +add %l2,%l1,%l1 +ld [%l3+%l1],%f31 +set .3296,%l1 +add %l2,%l1,%l2 +ld [%l3+%l2],%f30 +fcmpes %f31,%f30; nop; fbne .L3333; nop +sll %i2,2,%l3 +set .3294,%l2 +ld [%l3+%l2],%f30 +fcmpes %f31,%f30; nop; fbue .L3331; nop +.L3333: +set 1,%i1 +.L3331: +.L3328: +add %i4,1,%i4 +cmp %i4,3; bl .L3327; nop +.L3324: +add %i3,1,%i3 +cmp %i3,4; bl .L3323; nop +cmp %i1,0; be .L3334; nop +ld [%i0+44],%l3 +cmp %l3,0; be .L3336; nop +set .3288,%o0 +set 16,%o1 +call printf; nop +.L3336: +add %l5,16,%l5 +.L3334: +mov %g0,%i1 +mov %g0,%i4 +.L3338: +smul %i4,12,%l3 +set .3297,%l2 +ld [%l3+%l2],%f31 +add %i4,1,%l3 +st %l3,[%sp+64]; ld [%sp+64],%f30; fitos %f30,%f30 +fcmpes %f31,%f30; nop; fbue .L3342; nop +set 1,%i1 +.L3342: +.L3339: +add %i4,1,%i4 +cmp %i4,4; bl .L3338; nop +cmp %i1,0; be .L3344; nop +ld [%i0+44],%l3 +cmp %l3,0; be .L3346; nop +set .3288,%o0 +set 32,%o1 +call printf; nop +.L3346: +add %l5,32,%l5 +.L3344: +mov %l5,%i0 +.L3287: +ret; restore +.type s86,#function +.size s86,.-s86 +.global one +.align 4 +one: +set 1,%o0 +.L3348: +retl; nop +.type one,#function +.size one,.-one +.section ".data" +.type .3350,#object +.align 1 +.3350: +.byte 115 +.byte 56 +.byte 56 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size .3350,10 +.type .3351,#object +.size .3351,8 +.align 1 +.3351: +.byte 115 +.byte 56 +.byte 56 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.global s88 +.section ".text" +.align 4 +s88: +save %sp,-112,%sp +set .3351,%i5 +add %i0,60,%i4 +mov %g0,%i3 +.L3353: +.L3354: +mov %i4,%i1 +add %i1,1,%i4 +mov %i5,%l7 +add %l7,1,%i5 +ldsb [%l7],%l7 +stb %l7,[%i1] +sll %l7,8*(4-1),%i1; sra %i1,8*(4-1),%i1 +cmp %i1,0; bne .L3353; nop +ba .L3356; nop +ld [%i0+44],%i1 +cmp %i1,0; be .L3358; nop +set .3350,%o0 +set 1,%o1 +call printf; nop +.L3358: +add %i3,1,%i3 +.L3356: +set metricp,%i1 +add -20,%fp,%l7 +st %l7,[%i1] +set 2,%l7 +st %l7,[%fp+-20] +ld [%i1],%i1 +set 3,%l7 +st %l7,[%i1] +ld [%fp+-20],%i1 +cmp %i1,3; be .L3360; nop +ld [%i0+44],%i1 +cmp %i1,0; be .L3362; nop +set .3350,%o0 +set 2,%o1 +call printf; nop +.L3362: +add %i3,2,%i3 +.L3360: +set .L419,%i1 +ld2 [%i1],%f30 +std %f30,[%fp+-16] +std %f30,[%fp+-8] +add -16,%fp,%i2 +set .L418,%i1 +ld2 [%i1],%f30 +st2 %f30,[%i2] +set .L418,%i1 +ld2 [%i1],%f30 +st2 %f30,[%i2+8] +ldd [%fp+-16],%f30 +ldd [%fp+-8],%f28 +faddd %f30,%f28,%f30 +set .L416,%i1 +ld2 [%i1],%f28 +fcmped %f30,%f28; nop; fbue .L3365; nop +ld [%i0+44],%i1 +cmp %i1,0; be .L3368; nop +set .3350,%o0 +set 4,%o1 +call printf; nop +.L3368: +add %i3,4,%i3 +.L3365: +mov %i3,%i0 +.L3349: +ret; restore +.type s88,#function +.size s88,.-s88 +.section ".data" +.type .3371,#object +.align 1 +.3371: +.byte 115 +.byte 57 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size .3371,9 +.type .3372,#object +.size .3372,8 +.align 1 +.3372: +.byte 115 +.byte 57 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.global s9 +.section ".text" +.align 4 +s9: +save %sp,-96,%sp +set .3372,%i3 +add %i0,60,%i2 +mov %g0,%i1 +.L3373: +.L3374: +mov %i2,%l7 +add %l7,1,%i2 +mov %i3,%l6 +add %l6,1,%i3 +ldsb [%l6],%l6 +stb %l6,[%l7] +sll %l6,8*(4-1),%l7; sra %l7,8*(4-1),%l7 +cmp %l7,0; bne .L3373; nop +mov %g0,%i4 +mov %g0,%i5 +.L3376: +set 2,%l5 +mov %l5,%l7 +mov %l5,%l6 +set 3,%l3 +mov %l3,%l5 +mov %l3,%l4 +cmp %l4,3; bne .L3382; nop +cmp %l5,3; be .L3380; nop +.L3382: +set 1,%i4 +.L3380: +cmp %l6,2; bne .L3385; nop +cmp %l7,2; be .L3383; nop +.L3385: +set 1,%i4 +.L3383: +.L3377: +add %i5,1,%i5 +cmp %i5,2; bl .L3376; nop +cmp %i4,0; be .L3390; nop +ld [%i0+44],%l7 +cmp %l7,0; be .L3388; nop +set .3371,%o0 +set 1,%o1 +call printf; nop +.L3388: +add %i1,1,%i1 +ba .L3390; nop +ld [%i0+44],%l7 +cmp %l7,0; be .L3391; nop +set .3371,%o0 +set 2,%o1 +call printf; nop +.L3391: +add %i1,2,%i1 +.L3390: +mov %i1,%i0 +.L3370: +ret; restore +.type s9,#function +.size s9,.-s9 +.global setev +.align 4 +setev: +set extvar,%o5 +set 1066,%o4 +st %o4,[%o5] +mov %g0,%o0 +.L3393: +retl; nop +.type setev,#function +.size setev,.-setev +.section ".bss" +.global rfs +.type rfs,#object +.size rfs,8 +.common rfs,8,1 +.global crc +.type crc,#object +.size crc,4 +.common crc,4,4 +.global rrc +.type rrc,#object +.size rrc,4 +.common rrc,4,4 +.global flgl +.type flgl,#object +.size flgl,4 +.common flgl,4,4 +.global flgd +.type flgd,#object +.size flgd,4 +.common flgd,4,4 +.global flgm +.type flgm,#object +.size flgm,4 +.common flgm,4,4 +.global flgs +.type flgs,#object +.size flgs,4 +.common flgs,4,4 +.global dprec +.type dprec,#object +.size dprec,4 +.common dprec,4,4 +.global fprec +.type fprec,#object +.size fprec,4 +.common fprec,4,4 +.global dbits +.type dbits,#object +.size dbits,4 +.common dbits,4,4 +.global fbits +.type fbits,#object +.size fbits,4 +.common fbits,4,4 +.global ubits +.type ubits,#object +.size ubits,4 +.common ubits,4,4 +.global lbits +.type lbits,#object +.size lbits,4 +.common lbits,4,4 +.global metricp +.type metricp,#object +.size metricp,4 +.common metricp,4,4 +.global extvar +.type extvar,#object +.size extvar,4 +.common extvar,4,4 +.section ".rodata" +.align 1 +.L3266: +.byte 66 +.byte 101 +.byte 32 +.byte 101 +.byte 115 +.byte 112 +.byte 101 +.byte 99 +.byte 105 +.byte 97 +.byte 108 +.byte 108 +.byte 121 +.byte 32 +.byte 99 +.byte 97 +.byte 114 +.byte 101 +.byte 102 +.byte 117 +.byte 108 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 49 +.byte 45 +.byte 98 +.byte 105 +.byte 116 +.byte 32 +.byte 102 +.byte 105 +.byte 101 +.byte 108 +.byte 100 +.byte 115 +.byte 33 +.byte 10 +.byte 0 +.align 1 +.L3259: +.byte 83 +.byte 105 +.byte 103 +.byte 110 +.byte 32 +.byte 101 +.byte 120 +.byte 116 +.byte 101 +.byte 110 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 105 +.byte 110 +.byte 32 +.byte 102 +.byte 105 +.byte 101 +.byte 108 +.byte 100 +.byte 115 +.byte 10 +.byte 0 +.align 1 +.L3252: +.byte 37 +.byte 115 +.byte 37 +.byte 115 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 4 +.L3175: +.word 0x43080000 +.align 1 +.L3022: +.byte 112 +.byte 111 +.byte 105 +.byte 110 +.byte 116 +.byte 101 +.byte 114 +.byte 0 +.align 1 +.L2472: +.byte 73 +.byte 110 +.byte 99 +.byte 114 +.byte 101 +.byte 97 +.byte 115 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 97 +.byte 114 +.byte 114 +.byte 97 +.byte 121 +.byte 32 +.byte 101 +.byte 108 +.byte 101 +.byte 109 +.byte 101 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 97 +.byte 115 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 101 +.byte 100 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 100 +.byte 101 +.byte 99 +.byte 114 +.byte 101 +.byte 97 +.byte 115 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 108 +.byte 111 +.byte 99 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 10 +.byte 0 +.align 4 +.L2356: +.word 0x41d00000 +.align 8 +.L2355: +.word 0x403a0000 +.word 0x0 +.align 8 +.L1659: +.word 0x40040000 +.word 0x0 +.align 8 +.L1484: +.word 0x40240000 +.word 0x0 +.align 4 +.L1455: +.word 0x41200000 +.align 8 +.L1280: +.word 0x40080000 +.word 0x0 +.align 4 +.L1251: +.word 0x40400000 +.align 8 +.L1076: +.word 0x401c0000 +.word 0x0 +.align 4 +.L1047: +.word 0x40e00000 +.align 8 +.L870: +.word 0x40140000 +.word 0x0 +.align 4 +.L841: +.word 0x40a00000 +.align 8 +.L836: +.word 0x41e00000 +.word 0x0 +.align 4 +.L828: +.word 0x4f000000 +.align 1 +.L653: +.byte 113 +.byte 117 +.byte 101 +.byte 101 +.byte 112 +.byte 0 +.align 1 +.L639: +.byte 10 +.byte 0 +.align 1 +.L638: +.byte 37 +.byte 100 +.byte 0 +.align 1 +.L633: +.byte 32 +.byte 32 +.byte 32 +.byte 107 +.byte 101 +.byte 121 +.byte 61 +.byte 0 +.align 8 +.L596: +.word 0x40000000 +.word 0x0 +.align 8 +.L536: +.word 0x40ce8480 +.word 0x0 +.align 8 +.L535: +.word 0x405f4000 +.word 0x0 +.align 4 +.L534: +.word 0x42fa0000 +.align 4 +.L529: +.word 0x40000000 +.align 1 +.L431: +.byte 100 +.byte 111 +.byte 117 +.byte 98 +.byte 108 +.byte 101 +.byte 0 +.align 1 +.L430: +.byte 102 +.byte 108 +.byte 111 +.byte 97 +.byte 116 +.byte 0 +.align 1 +.L429: +.byte 117 +.byte 110 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 101 +.byte 100 +.byte 0 +.align 1 +.L428: +.byte 108 +.byte 111 +.byte 110 +.byte 103 +.byte 0 +.align 1 +.L427: +.byte 115 +.byte 104 +.byte 111 +.byte 114 +.byte 116 +.byte 0 +.align 1 +.L426: +.byte 105 +.byte 110 +.byte 116 +.byte 0 +.align 1 +.L425: +.byte 99 +.byte 104 +.byte 97 +.byte 114 +.byte 0 +.align 8 +.L419: +.word 0x0 +.word 0x0 +.align 8 +.L418: +.word 0x3ff00000 +.word 0x0 +.align 8 +.L417: +.word 0x40100000 +.word 0x0 +.align 8 +.L416: +.word 0x40000000 +.word 0x0 +.align 4 +.L412: +.word 0x0 +.align 4 +.L411: +.word 0x3f800000 +.align 1 +.L390: +.byte 113 +.byte 117 +.byte 101 +.byte 101 +.byte 112 +.byte 33 +.byte 0 +.align 1 +.L379: +.byte 10 +.byte 9 +.byte 8 +.byte 13 +.byte 12 +.byte 92 +.byte 39 +.byte 0 +.align 1 +.L375: +.byte 46 +.byte 34 +.byte 46 +.byte 0 +.align 1 +.L362: +.byte 46 +.byte 46 +.byte 46 +.byte 0 +.align 8 +.L333: +.word 0x40938800 +.word 0x0 +.align 1 +.L199: +.byte 32 +.byte 32 +.byte 32 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 101 +.byte 110 +.byte 116 +.byte 32 +.byte 114 +.byte 101 +.byte 115 +.byte 117 +.byte 108 +.byte 116 +.byte 115 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 110 +.byte 32 +.byte 97 +.byte 115 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 101 +.byte 100 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 108 +.byte 111 +.byte 110 +.byte 103 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L198: +.byte 68 +.byte 101 +.byte 99 +.byte 105 +.byte 109 +.byte 97 +.byte 108 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 111 +.byte 99 +.byte 116 +.byte 97 +.byte 108 +.byte 47 +.byte 104 +.byte 101 +.byte 120 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 115 +.byte 116 +.byte 97 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 115 +.byte 111 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 109 +.byte 101 +.byte 115 +.byte 32 +.byte 103 +.byte 105 +.byte 118 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.L27: +.byte 10 +.byte 70 +.byte 97 +.byte 105 +.byte 108 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L26: +.byte 10 +.byte 78 +.byte 111 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 115 +.byte 32 +.byte 100 +.byte 101 +.byte 116 +.byte 101 +.byte 99 +.byte 116 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L20: +.byte 83 +.byte 101 +.byte 99 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 37 +.byte 115 +.byte 32 +.byte 114 +.byte 101 +.byte 116 +.byte 117 +.byte 114 +.byte 110 +.byte 101 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 46 +.byte 10 +.byte 0 diff --git a/code/tools/lcc/sparc/solaris/tst/cvt.1bk b/code/tools/lcc/sparc/solaris/tst/cvt.1bk new file mode 100644 index 0000000..b28b302 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/cvt.1bk @@ -0,0 +1,11 @@ +1 1 1 1 1 1 1 1 1.000000 1.000000 1.000000 +2 2 2 2 2 2 2 2 2.000000 2.000000 2.000000 +3 3 3 3 3 3 3 3 3.000000 3.000000 3.000000 +4 4 4 4 4 4 4 4 4.000000 4.000000 4.000000 +5 5 5 5 5 5 5 5 5.000000 5.000000 5.000000 +6 6 6 6 6 6 6 6 6.000000 6.000000 6.000000 +7 7 7 7 7 7 7 7 7.000000 7.000000 7.000000 +8 8 8 8 8 8 8 8 8.000000 8.000000 8.000000 +9 9 9 9 9 9 9 9 9.000000 9.000000 9.000000 +10 10 10 10 10 10 10 10 10.000000 10.000000 10.000000 +11 11 11 11 11 11 11 11 11.000000 11.000000 11.000000 diff --git a/code/tools/lcc/sparc/solaris/tst/cvt.2bk b/code/tools/lcc/sparc/solaris/tst/cvt.2bk new file mode 100644 index 0000000..241527d --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/cvt.2bk @@ -0,0 +1,2 @@ +tst/cvt.c:32: warning: conversion from `pointer to void function(void)' to `pointer to void' is compiler dependent +tst/cvt.c:33: warning: conversion from `pointer to void' to `pointer to void function(void)' is compiler dependent diff --git a/code/tools/lcc/sparc/solaris/tst/cvt.sbk b/code/tools/lcc/sparc/solaris/tst/cvt.sbk new file mode 100644 index 0000000..262427e --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/cvt.sbk @@ -0,0 +1,715 @@ +.global print +.section ".text" +.align 4 +print: +save %sp,-128,%sp +set .L2,%o0 +set c,%i5 +ldsb [%i5],%o1 +set s,%i5 +ldsh [%i5],%o2 +set i,%i5 +ld [%i5],%o3 +set l,%i5 +ld [%i5],%o4 +set C,%i5 +ldub [%i5],%o5 +set S,%i5 +lduh [%i5],%i5 +st %i5,[%sp+4*6+68] +set I,%i5 +ld [%i5],%i5 +st %i5,[%sp+4*7+68] +set L,%i5 +ld [%i5],%i5 +st %i5,[%sp+4*8+68] +set f,%i5 +ld [%i5],%f31 +fstod %f31,%f30 +st %f30,[%sp+4*9+68] +st %f31,[%sp+4*10+68] +set d,%i5 +ld2 [%i5],%f30 +st %f30,[%sp+4*11+68] +st %f31,[%sp+4*12+68] +set D,%i5 +ld2 [%i5],%f30 +st %f30,[%sp+4*13+68] +st %f31,[%sp+4*14+68] +call printf; nop +.L1: +ret; restore +.type print,#function +.size print,.-print +.global main +.align 4 +main: +save %sp,-104,%sp +set c,%i5 +set 1,%i4 +stb %i4,[%i5] +ldsb [%i5],%i5 +set s,%i4 +mov %i5,%i3 +sth %i3,[%i4] +set i,%i4 +st %i5,[%i4] +set l,%i4 +st %i5,[%i4] +set C,%i3 +mov %i5,%i2 +stb %i2,[%i3] +set S,%i3 +mov %i5,%i2 +sth %i2,[%i3] +set I,%i3 +st %i5,[%i3] +set L,%i3 +st %i5,[%i3] +set f,%i4 +st %i5,[%sp+64]; ld [%sp+64],%f31; fitos %f31,%f31 +st %f31,[%i4] +st %i5,[%sp+64]; ld [%sp+64],%f30; fitod %f30,%f30 +set d,%i5 +st2 %f30,[%i5] +set D,%i5 +st2 %f30,[%i5] +call print; nop +set s,%i5 +set 2,%i4 +sth %i4,[%i5] +ldsh [%i5],%i5 +set c,%i4 +mov %i5,%i3 +stb %i3,[%i4] +set i,%i4 +st %i5,[%i4] +set l,%i4 +st %i5,[%i4] +set C,%i3 +mov %i5,%i2 +stb %i2,[%i3] +set S,%i3 +mov %i5,%i2 +sth %i2,[%i3] +set I,%i3 +st %i5,[%i3] +set L,%i3 +st %i5,[%i3] +set f,%i4 +st %i5,[%sp+64]; ld [%sp+64],%f31; fitos %f31,%f31 +st %f31,[%i4] +st %i5,[%sp+64]; ld [%sp+64],%f30; fitod %f30,%f30 +set d,%i5 +st2 %f30,[%i5] +set D,%i5 +st2 %f30,[%i5] +call print; nop +set i,%i5 +set 3,%i4 +st %i4,[%i5] +ld [%i5],%i5 +set c,%i4 +mov %i5,%i3 +stb %i3,[%i4] +set s,%i4 +mov %i5,%i3 +sth %i3,[%i4] +set l,%i4 +st %i5,[%i4] +set C,%i3 +mov %i5,%i2 +stb %i2,[%i3] +set S,%i3 +mov %i5,%i2 +sth %i2,[%i3] +set I,%i3 +st %i5,[%i3] +set L,%i3 +st %i5,[%i3] +set f,%i4 +st %i5,[%sp+64]; ld [%sp+64],%f31; fitos %f31,%f31 +st %f31,[%i4] +st %i5,[%sp+64]; ld [%sp+64],%f30; fitod %f30,%f30 +set d,%i5 +st2 %f30,[%i5] +set D,%i5 +st2 %f30,[%i5] +call print; nop +set l,%i5 +set 4,%i4 +st %i4,[%i5] +ld [%i5],%i5 +set c,%i4 +mov %i5,%i3 +stb %i3,[%i4] +set s,%i4 +mov %i5,%i3 +sth %i3,[%i4] +set i,%i4 +st %i5,[%i4] +set C,%i3 +mov %i5,%i2 +stb %i2,[%i3] +set S,%i3 +mov %i5,%i2 +sth %i2,[%i3] +set I,%i3 +st %i5,[%i3] +set L,%i3 +st %i5,[%i3] +set f,%i4 +st %i5,[%sp+64]; ld [%sp+64],%f31; fitos %f31,%f31 +st %f31,[%i4] +st %i5,[%sp+64]; ld [%sp+64],%f30; fitod %f30,%f30 +set d,%i5 +st2 %f30,[%i5] +set D,%i5 +st2 %f30,[%i5] +call print; nop +set C,%i5 +set 5,%i4 +stb %i4,[%i5] +ldub [%i5],%i5 +set c,%i4 +mov %i5,%i3 +stb %i3,[%i4] +set s,%i4 +mov %i5,%i3 +sth %i3,[%i4] +set i,%i4 +st %i5,[%i4] +set l,%i4 +st %i5,[%i4] +set S,%i3 +mov %i5,%i2 +sth %i2,[%i3] +set I,%i3 +st %i5,[%i3] +set L,%i3 +st %i5,[%i3] +set f,%i4 +st %i5,[%sp+64]; ld [%sp+64],%f31; fitos %f31,%f31 +st %f31,[%i4] +st %i5,[%sp+64]; ld [%sp+64],%f30; fitod %f30,%f30 +set d,%i5 +st2 %f30,[%i5] +set D,%i5 +st2 %f30,[%i5] +call print; nop +set S,%i5 +set 6,%i4 +sth %i4,[%i5] +lduh [%i5],%i5 +set c,%i4 +mov %i5,%i3 +stb %i3,[%i4] +set s,%i4 +mov %i5,%i3 +sth %i3,[%i4] +set i,%i4 +st %i5,[%i4] +set l,%i4 +st %i5,[%i4] +set C,%i3 +mov %i5,%i2 +stb %i2,[%i3] +set I,%i3 +st %i5,[%i3] +set L,%i3 +st %i5,[%i3] +set f,%i4 +st %i5,[%sp+64]; ld [%sp+64],%f31; fitos %f31,%f31 +st %f31,[%i4] +st %i5,[%sp+64]; ld [%sp+64],%f30; fitod %f30,%f30 +set d,%i5 +st2 %f30,[%i5] +set D,%i5 +st2 %f30,[%i5] +call print; nop +set I,%i5 +set 7,%i4 +st %i4,[%i5] +ld [%i5],%i5 +set c,%i3 +mov %i5,%i2 +stb %i2,[%i3] +set s,%i3 +mov %i5,%i2 +sth %i2,[%i3] +set i,%i3 +st %i5,[%i3] +set l,%i3 +st %i5,[%i3] +set C,%i4 +mov %i5,%i3 +stb %i3,[%i4] +set S,%i4 +mov %i5,%i3 +sth %i3,[%i4] +set L,%i4 +st %i5,[%i4] +set .L4,%i4 +ld2 [%i4],%f30 +srl %i5,1,%i4 +st %i4,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +fmuld %f30,%f28,%f30 +set 1,%i4 +and %i5,%i4,%i5 +st %i5,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +faddd %f30,%f28,%f30 +set f,%i5 +fdtos %f30,%f29 +st %f29,[%i5] +set d,%i5 +st2 %f30,[%i5] +set D,%i5 +st2 %f30,[%i5] +call print; nop +set L,%i5 +set 8,%i4 +st %i4,[%i5] +ld [%i5],%i5 +set c,%i3 +mov %i5,%i2 +stb %i2,[%i3] +set s,%i3 +mov %i5,%i2 +sth %i2,[%i3] +set i,%i3 +st %i5,[%i3] +set l,%i3 +st %i5,[%i3] +set C,%i4 +mov %i5,%i3 +stb %i3,[%i4] +set S,%i4 +mov %i5,%i3 +sth %i3,[%i4] +set I,%i3 +lduh [%i4],%i4 +st %i4,[%i3] +set .L4,%i4 +ld2 [%i4],%f30 +srl %i5,1,%i4 +st %i4,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +fmuld %f30,%f28,%f30 +set 1,%i4 +and %i5,%i4,%i5 +st %i5,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +faddd %f30,%f28,%f30 +set f,%i5 +fdtos %f30,%f29 +st %f29,[%i5] +set d,%i5 +st2 %f30,[%i5] +set D,%i5 +st2 %f30,[%i5] +call print; nop +set f,%i1 +set .L5,%i0 +ld [%i0],%f31 +st %f31,[%i1] +ld [%i1],%f31 +fstoi %f31,%f0; st %f0,[%sp+64]; ld [%sp+64],%i1 +set c,%i0 +mov %i1,%l7 +stb %l7,[%i0] +set s,%i0 +mov %i1,%l7 +sth %l7,[%i0] +set i,%i0 +st %i1,[%i0] +set l,%i0 +st %i1,[%i0] +set .L9,%i1 +ld [%i1],%f30 +fcmpes %f31,%f30; nop; fbul .L7; nop +fsubs %f31,%f30,%f30 +fstoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%i1 +set 0x80000000,%i0 +add %i1,%i0,%i5 +ba .L8; nop +.L7: +fstoi %f31,%f0; st %f0,[%sp+64]; ld [%sp+64],%i1 +mov %i1,%i5 +.L8: +set C,%i1 +mov %i5,%i0 +stb %i0,[%i1] +set f,%i1 +ld [%i1],%f31 +set .L9,%i1 +ld [%i1],%f30 +fcmpes %f31,%f30; nop; fbul .L11; nop +fsubs %f31,%f30,%f30 +fstoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%i1 +set 0x80000000,%i0 +add %i1,%i0,%i4 +ba .L12; nop +.L11: +fstoi %f31,%f0; st %f0,[%sp+64]; ld [%sp+64],%i1 +mov %i1,%i4 +.L12: +set S,%i1 +mov %i4,%i0 +sth %i0,[%i1] +set f,%i1 +ld [%i1],%f31 +set .L9,%i1 +ld [%i1],%f30 +fcmpes %f31,%f30; nop; fbul .L14; nop +fsubs %f31,%f30,%f30 +fstoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%i1 +set 0x80000000,%i0 +add %i1,%i0,%i3 +ba .L15; nop +.L14: +fstoi %f31,%f0; st %f0,[%sp+64]; ld [%sp+64],%i1 +mov %i1,%i3 +.L15: +set I,%i1 +st %i3,[%i1] +set f,%i1 +ld [%i1],%f31 +set .L9,%i1 +ld [%i1],%f30 +fcmpes %f31,%f30; nop; fbul .L17; nop +fsubs %f31,%f30,%f30 +fstoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%i1 +set 0x80000000,%i0 +add %i1,%i0,%i2 +ba .L18; nop +.L17: +fstoi %f31,%f0; st %f0,[%sp+64]; ld [%sp+64],%i1 +mov %i1,%i2 +.L18: +set L,%i1 +st %i2,[%i1] +set f,%i1 +ld [%i1],%f31 +fstod %f31,%f30 +set d,%i1 +st2 %f30,[%i1] +set D,%i1 +st2 %f30,[%i1] +call print; nop +set d,%l5 +set .L19,%l4 +ld2 [%l4],%f30 +st2 %f30,[%l5] +ld2 [%l5],%f30 +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l5 +set c,%l4 +mov %l5,%l3 +stb %l3,[%l4] +set s,%l4 +mov %l5,%l3 +sth %l3,[%l4] +set i,%l4 +st %l5,[%l4] +set l,%l4 +st %l5,[%l4] +set .L23,%l5 +ld2 [%l5],%f28 +fcmped %f30,%f28; nop; fbul .L21; nop +fsubd %f30,%f28,%f28 +fdtoi %f28,%f0; st %f0,[%sp+64]; ld [%sp+64],%l5 +set 0x80000000,%l4 +add %l5,%l4,%i1 +ba .L22; nop +.L21: +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l5 +mov %l5,%i1 +.L22: +set C,%l5 +mov %i1,%l4 +stb %l4,[%l5] +set d,%l5 +ld2 [%l5],%f30 +set .L23,%l5 +ld2 [%l5],%f28 +fcmped %f30,%f28; nop; fbul .L25; nop +fsubd %f30,%f28,%f28 +fdtoi %f28,%f0; st %f0,[%sp+64]; ld [%sp+64],%l5 +set 0x80000000,%l4 +add %l5,%l4,%i0 +ba .L26; nop +.L25: +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l5 +mov %l5,%i0 +.L26: +set S,%l5 +mov %i0,%l4 +sth %l4,[%l5] +set d,%l5 +ld2 [%l5],%f30 +set .L23,%l5 +ld2 [%l5],%f28 +fcmped %f30,%f28; nop; fbul .L28; nop +fsubd %f30,%f28,%f28 +fdtoi %f28,%f0; st %f0,[%sp+64]; ld [%sp+64],%l5 +set 0x80000000,%l4 +add %l5,%l4,%l7 +ba .L29; nop +.L28: +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l5 +mov %l5,%l7 +.L29: +set I,%l5 +st %l7,[%l5] +set d,%l5 +ld2 [%l5],%f30 +set .L23,%l5 +ld2 [%l5],%f28 +fcmped %f30,%f28; nop; fbul .L31; nop +fsubd %f30,%f28,%f28 +fdtoi %f28,%f0; st %f0,[%sp+64]; ld [%sp+64],%l5 +set 0x80000000,%l4 +add %l5,%l4,%l6 +ba .L32; nop +.L31: +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l5 +mov %l5,%l6 +.L32: +set L,%l5 +st %l6,[%l5] +set d,%l5 +ld2 [%l5],%f30 +set f,%l5 +fdtos %f30,%f29 +st %f29,[%l5] +set D,%l5 +st2 %f30,[%l5] +call print; nop +set D,%l3 +set .L33,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +ld2 [%l3],%f30 +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +set c,%l2 +mov %l3,%l1 +stb %l1,[%l2] +set s,%l2 +mov %l3,%l1 +sth %l1,[%l2] +set i,%l2 +st %l3,[%l2] +set l,%l2 +st %l3,[%l2] +set .L37,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbul .L35; nop +fsubd %f30,%f28,%f28 +fdtoi %f28,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +set 0x80000000,%l2 +add %l3,%l2,%l5 +ba .L36; nop +.L35: +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +mov %l3,%l5 +.L36: +set C,%l3 +mov %l5,%l2 +stb %l2,[%l3] +set D,%l3 +ld2 [%l3],%f30 +set .L37,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbul .L39; nop +fsubd %f30,%f28,%f28 +fdtoi %f28,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +set 0x80000000,%l2 +add %l3,%l2,%l4 +ba .L40; nop +.L39: +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +mov %l3,%l4 +.L40: +set S,%l3 +mov %l4,%l2 +sth %l2,[%l3] +set D,%l3 +ld2 [%l3],%f30 +set .L37,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbul .L42; nop +fsubd %f30,%f28,%f28 +fdtoi %f28,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +set 0x80000000,%l2 +add %l3,%l2,%l3 +st %l3,[%fp+-4] +ba .L43; nop +.L42: +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +st %l3,[%fp+-4] +.L43: +set I,%l3 +ld [%fp+-4],%l2 +st %l2,[%l3] +set D,%l3 +ld2 [%l3],%f30 +set .L37,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbul .L45; nop +fsubd %f30,%f28,%f28 +fdtoi %f28,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +set 0x80000000,%l2 +add %l3,%l2,%l3 +st %l3,[%fp+-8] +ba .L46; nop +.L45: +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l3 +st %l3,[%fp+-8] +.L46: +set L,%l3 +ld [%fp+-8],%l2 +st %l2,[%l3] +set D,%l3 +ld2 [%l3],%f30 +set f,%l3 +fdtos %f30,%f29 +st %f29,[%l3] +set d,%l3 +st2 %f30,[%l3] +call print; nop +set p,%l3 +st %g0,[%l3] +st %g0,[%l3] +st %g0,[%l3] +st %g0,[%l3] +set P,%l2 +ld [%l2],%l1 +st %l1,[%l3] +mov %g0,%l1 +st %l1,[%l2] +st %l1,[%l2] +st %l1,[%l2] +st %l1,[%l2] +ld [%l3],%l3 +st %l3,[%l2] +mov %g0,%i0 +.L3: +ret; restore +.type main,#function +.size main,.-main +.section ".bss" +.global P +.type P,#object +.size P,4 +.common P,4,4 +.global p +.type p,#object +.size p,4 +.common p,4,4 +.global D +.type D,#object +.size D,8 +.common D,8,8 +.global d +.type d,#object +.size d,8 +.common d,8,8 +.global f +.type f,#object +.size f,4 +.common f,4,4 +.global L +.type L,#object +.size L,4 +.common L,4,4 +.global I +.type I,#object +.size I,4 +.common I,4,4 +.global S +.type S,#object +.size S,2 +.common S,2,2 +.global C +.type C,#object +.size C,1 +.common C,1,1 +.global l +.type l,#object +.size l,4 +.common l,4,4 +.global i +.type i,#object +.size i,4 +.common i,4,4 +.global s +.type s,#object +.size s,2 +.common s,2,2 +.global c +.type c,#object +.size c,1 +.common c,1,1 +.section ".rodata" +.align 8 +.L37: +.word 0x41e00000 +.word 0x0 +.align 8 +.L33: +.word 0x40260000 +.word 0x0 +.align 8 +.L23: +.word 0x41e00000 +.word 0x0 +.align 8 +.L19: +.word 0x40240000 +.word 0x0 +.align 4 +.L9: +.word 0x4f000000 +.align 4 +.L5: +.word 0x41100000 +.align 8 +.L4: +.word 0x40000000 +.word 0x0 +.align 1 +.L2: +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 108 +.byte 100 +.byte 32 +.byte 37 +.byte 117 +.byte 32 +.byte 37 +.byte 117 +.byte 32 +.byte 37 +.byte 117 +.byte 32 +.byte 37 +.byte 108 +.byte 117 +.byte 32 +.byte 37 +.byte 102 +.byte 32 +.byte 37 +.byte 102 +.byte 32 +.byte 37 +.byte 108 +.byte 102 +.byte 10 +.byte 0 diff --git a/code/tools/lcc/sparc/solaris/tst/fields.1bk b/code/tools/lcc/sparc/solaris/tst/fields.1bk new file mode 100644 index 0000000..56fdeb9 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/fields.1bk @@ -0,0 +1,5 @@ +x = 1 2 3 4 -3 6 +y = 3 8 9 +x = 1 2 3 0 0 6 +y = 2 8 16 +p->a = 0x3, p->b = 0xf diff --git a/code/tools/lcc/sparc/solaris/tst/fields.2bk b/code/tools/lcc/sparc/solaris/tst/fields.2bk new file mode 100644 index 0000000..51e1736 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/fields.2bk @@ -0,0 +1,4 @@ +tst/fields.c:6: warning: initializer exceeds bit-field width +tst/fields.c:8: warning: initializer exceeds bit-field width +tst/fields.c:30: warning: missing return value +tst/fields.c:34: warning: missing return value diff --git a/code/tools/lcc/sparc/solaris/tst/fields.sbk b/code/tools/lcc/sparc/solaris/tst/fields.sbk new file mode 100644 index 0000000..e23fbe2 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/fields.sbk @@ -0,0 +1,309 @@ +.section ".data" +.global x +.type x,#object +.size x,16 +.align 4 +x: +.word 0x1 +.byte 0x2 +.skip 3 +.byte 0x0 +.byte 0x34 +.skip 2 +.byte 0xa +.byte 0x6 +.skip 2 +.global i +.type i,#object +.size i,4 +.align 4 +i: +.word 0x10 +.global y +.type y,#object +.size y,8 +.align 4 +y: +.byte 0xe0 +.skip 3 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x9 +.global main +.section ".text" +.align 4 +main: +save %sp,-96,%sp +set .L4,%o0 +set x,%i5 +ld [%i5],%o1 +set x+4,%i5 +ldsb [%i5],%o2 +set x+8,%i5 +ld [%i5],%i5 +sra %i5,20,%o3 +set x+8,%i5 +ld [%i5],%i5 +sll %i5,12,%i5 +sra %i5,28,%o4 +set x+12,%i5 +ld [%i5],%i5 +sll %i5,4,%i5 +sra %i5,29,%o5 +set x+13,%i5 +ldsb [%i5],%i5 +st %i5,[%sp+4*6+68] +call printf; nop +set .L10,%o0 +set y,%i5 +ld [%i5],%i5 +srl %i5,30,%i4 +set 3,%i3 +and %i4,%i3,%o1 +srl %i5,26,%i5 +set 15,%i4 +and %i5,%i4,%o2 +set y+4,%i5 +ld [%i5],%o3 +call printf; nop +set x+8,%i5 +ld [%i5],%i4 +set 0xfff0ffff,%i3 +and %i4,%i3,%i4 +set i,%i3 +ld [%i3],%i3 +sll %i3,28,%i3 +sra %i3,28,%i3 +sll %i3,16,%i3 +set 0xf0000,%i2 +and %i3,%i2,%i3 +or %i4,%i3,%i4 +st %i4,[%i5] +set x+12,%i5 +ld [%i5],%i4 +set 0xf1ffffff,%i3 +and %i4,%i3,%i4 +st %i4,[%i5] +set .L4,%o0 +set x,%i5 +ld [%i5],%o1 +set x+4,%i5 +ldsb [%i5],%o2 +set x+8,%i5 +ld [%i5],%i5 +sra %i5,20,%o3 +set x+8,%i5 +ld [%i5],%i5 +sll %i5,12,%i5 +sra %i5,28,%o4 +set x+12,%i5 +ld [%i5],%i5 +sll %i5,4,%i5 +sra %i5,29,%o5 +set x+13,%i5 +ldsb [%i5],%i5 +st %i5,[%sp+4*6+68] +call printf; nop +set y,%i5 +ld [%i5],%i4 +set 0x3fffffff,%i3 +and %i4,%i3,%i4 +set 0x80000000,%i3 +or %i4,%i3,%i4 +st %i4,[%i5] +set y+4,%i5 +set i,%i4 +ld [%i4],%i4 +st %i4,[%i5] +set .L10,%o0 +set y,%i5 +ld [%i5],%i5 +srl %i5,30,%i4 +set 3,%i3 +and %i4,%i3,%o1 +srl %i5,26,%i5 +set 15,%i4 +and %i5,%i4,%o2 +set y+4,%i5 +ld [%i5],%o3 +call printf; nop +set x,%o0 +call f2; nop +mov %g0,%i0 +.L3: +ret; restore +.type main,#function +.size main,.-main +.global f1 +.align 4 +f1: +save %sp,-96,%sp +ld [%i0],%i5 +set 0xc3ffffff,%i4 +and %i5,%i4,%i5 +st %i5,[%i0] +ld [%i0],%i5 +set 0x3fffffff,%i4 +and %i5,%i4,%i5 +set 3,%i4 +and %g0,%i4,%i4 +sll %i4,30,%i4 +set 0xc0000000,%i3 +and %i4,%i3,%i4 +or %i5,%i4,%i5 +st %i5,[%i0] +ld [%i0],%i5 +set 0x3c000000,%i4 +and %i5,%i4,%i5 +cmp %i5,%g0; be .L22; nop +set .L24,%o0 +call printf; nop +.L22: +ld [%i0],%i5 +set 0xc0000000,%i4 +or %i5,%i4,%i5 +st %i5,[%i0] +ld [%i0],%i5 +set 0x3c000000,%i4 +or %i5,%i4,%i5 +st %i5,[%i0] +set .L25,%o0 +ld [%i0],%i5 +srl %i5,30,%i4 +set 3,%i3 +and %i4,%i3,%o1 +srl %i5,26,%i5 +set 15,%i4 +and %i5,%i4,%o2 +call printf; nop +mov %g0,%i0 +.L21: +ret; restore +.type f1,#function +.size f1,.-f1 +.global f2 +.align 4 +f2: +save %sp,-96,%sp +set i,%i4 +ld [%i4],%i4 +cmp %i4,0; bne .L28; nop +set 1,%i5 +ba .L29; nop +.L28: +mov %g0,%i5 +.L29: +ld [%i0],%i4 +set 0x3fffffff,%i3 +and %i4,%i3,%i4 +mov %i5,%i3 +set 3,%i2 +and %i3,%i2,%i3 +sll %i3,30,%i3 +set 0xc0000000,%i2 +and %i3,%i2,%i3 +or %i4,%i3,%i4 +st %i4,[%i0] +mov %i0,%o0 +call f1; nop +ld [%i0],%i4 +set 0xc3ffffff,%i3 +and %i4,%i3,%i4 +mov %g0,%i3 +set 15,%i2 +and %i3,%i2,%i3 +sll %i3,26,%i3 +set 0x3c000000,%i2 +and %i3,%i2,%i3 +or %i4,%i3,%i4 +st %i4,[%i0] +mov %g0,%i0 +.L26: +ret; restore +.type f2,#function +.size f2,.-f2 +.section ".rodata" +.align 1 +.L25: +.byte 112 +.byte 45 +.byte 62 +.byte 97 +.byte 32 +.byte 61 +.byte 32 +.byte 48 +.byte 120 +.byte 37 +.byte 120 +.byte 44 +.byte 32 +.byte 112 +.byte 45 +.byte 62 +.byte 98 +.byte 32 +.byte 61 +.byte 32 +.byte 48 +.byte 120 +.byte 37 +.byte 120 +.byte 10 +.byte 0 +.align 1 +.L24: +.byte 112 +.byte 45 +.byte 62 +.byte 98 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 33 +.byte 10 +.byte 0 +.align 1 +.L10: +.byte 121 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.L4: +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 diff --git a/code/tools/lcc/sparc/solaris/tst/front.2bk b/code/tools/lcc/sparc/solaris/tst/front.2bk new file mode 100644 index 0000000..bbd390a --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/front.2bk @@ -0,0 +1,29 @@ +tst/front.c:3: warning: missing return value +tst/front.c:10: warning: missing return value +tst/front.c:20: type error in argument 1 to `s'; found `pointer to struct D' expected `pointer to incomplete struct D defined at tst/front.c:14' +tst/front.c:21: warning: missing return value +tst/front.c:32: warning: missing return value +tst/front.c:36: operands of = have illegal types `pointer to int' and `pointer to const int' +tst/front.c:38: warning: missing return value +tst/front.c:62: operands of = have illegal types `pointer to char' and `pointer to const void' +tst/front.c:63: warning: missing return value +tst/front.c:68: warning: missing return value +tst/front.c:69: warning: inconsistent linkage for `yy' previously declared at tst/front.c:68 +tst/front.c:69: warning: missing return value +tst/front.c:71: invalid storage class `static' for `int function goo' +tst/front.c:71: warning: declaration of `goo' does not match previous declaration at tst/front.c:70 +tst/front.c:71: warning: missing return value +tst/front.c:74: warning: declaration of `xr' does not match previous declaration at tst/front.c:72 +tst/front.c:74: warning: missing return value +tst/front.c:81: warning: missing return value +tst/front.c:82: warning: declaration of `ss2' does not match previous declaration at tst/front.c:81 +tst/front.c:84: warning: inconsistent linkage for `ss5' previously declared at tst/front.c:80 +tst/front.c:92: type error in argument 1 to `gx1'; found `pointer to double' expected `double' +tst/front.c:92: warning: missing return value +tst/front.c:95: redeclaration of `hx1' previously declared at tst/front.c:94 +tst/front.c:98: warning: missing return value +tst/front.c:101: conflicting argument declarations for function `gg1' +tst/front.c:101: warning: missing return value +tst/front.c:112: type error in argument 4 to `qsort'; found `pointer to int function(pointer to pointer to char,pointer to pointer to char)' expected `pointer to int function(pointer to const void,pointer to const void)' +tst/front.c:113: warning: missing return value +tst/front.c:120: warning: missing return value diff --git a/code/tools/lcc/sparc/solaris/tst/front.sbk b/code/tools/lcc/sparc/solaris/tst/front.sbk new file mode 100644 index 0000000..a4f977b --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/front.sbk @@ -0,0 +1,260 @@ +.global main +.section ".text" +.align 4 +main: +save %sp,-96,%sp +mov %g0,%o0 +call exit; nop +mov %g0,%i0 +.L1: +ret; restore +.type main,#function +.size main,.-main +.global nested +.align 4 +nested: +cmp %o0,4; bge .L6; nop +cmp %o1,114; be .L9; nop +.L6: +cmp %o0,1; bne .L8; nop +cmp %o1,104; be .L9; nop +cmp %o1,105; be .L9; nop +.L8: +cmp %o0,2; bne .L3; nop +cmp %o1,111; be .L9; nop +cmp %o1,121; bne .L3; nop +.L9: +mov %o1,%o0 +.L3: +mov %g0,%o0 +.L2: +retl; nop +.type nested,#function +.size nested,.-nested +.global s +.align 4 +s: +.L10: +retl; nop +.type s,#function +.size s,.-s +.section ".data" +.global Dy +.type Dy,#object +.size Dy,8 +.align 4 +Dy: +.word 0x0 +.skip 4 +.global Dz +.type Dz,#object +.size Dz,8 +.align 4 +Dz: +.word 0x1 +.skip 4 +.global Dfunc +.section ".text" +.align 4 +Dfunc: +save %sp,-96,%sp +ret; restore +.type Dfunc,#function +.size Dfunc,.-Dfunc +.global f +.align 4 +f: +retl; nop +.type f,#function +.size f,.-f +.global f1 +.align 4 +f1: +retl; nop +.type f1,#function +.size f1,.-f1 +.global f2 +.align 4 +f2: +save %sp,-96,%sp +ret; restore +.type f2,#function +.size f2,.-f2 +.global g +.align 4 +g: +save %sp,-96,%sp +ret; restore +.type g,#function +.size g,.-g +.global h +.align 4 +h: +save %sp,-96,%sp +ret; restore +.type h,#function +.size h,.-h +.global h1 +.align 4 +h1: +save %sp,-96,%sp +ret; restore +.type h1,#function +.size h1,.-h1 +.global h2 +.align 4 +h2: +retl; nop +.type h2,#function +.size h2,.-h2 +.section ".data" +.type .21,#object +.size .21,4 +.align 4 +.21: +.word 0x1 +.global set1 +.section ".text" +.align 4 +set1: +retl; nop +.type set1,#function +.size set1,.-set1 +.section ".data" +.type .23,#object +.size .23,4 +.align 4 +.23: +.word 0x2 +.global set2 +.section ".text" +.align 4 +set2: +retl; nop +.type set2,#function +.size set2,.-set2 +.align 4 +goo: +retl; nop +.type goo,#function +.size goo,.-goo +.global sss +.align 4 +sss: +retl; nop +.type sss,#function +.size sss,.-sss +.section ".bss" +.type .27,#object +.size .27,4 +.local .27 +.common .27,4,4 +.global rrr +.section ".text" +.align 4 +rrr: +retl; nop +.type rrr,#function +.size rrr,.-rrr +.global setstatic +.align 4 +setstatic: +retl; nop +.type setstatic,#function +.size setstatic,.-setstatic +.global gx1 +.align 4 +gx1: +save %sp,-96,%sp +st %r24,[%fp+68] +st %r25,[%fp+72] +ret; restore +.type gx1,#function +.size gx1,.-gx1 +.global ff1 +.align 4 +ff1: +save %sp,-96,%sp +st %r24,[%fp+68] +st %r25,[%fp+72] +ret; restore +.type ff1,#function +.size ff1,.-ff1 +.global gg1 +.align 4 +gg1: +retl; nop +.type gg1,#function +.size gg1,.-gg1 +.global hh1 +.align 4 +hh1: +retl; nop +.type hh1,#function +.size hh1,.-hh1 +.global cmp +.align 4 +cmp: +save %sp,-96,%sp +ret; restore +.type cmp,#function +.size cmp,.-cmp +.global sort +.align 4 +sort: +save %sp,-96,%sp +ret; restore +.type sort,#function +.size sort,.-sort +.global onearg +.align 4 +onearg: +save %sp,-96,%sp +ret; restore +.type onearg,#function +.size onearg,.-onearg +.section ".bss" +.global ss4 +.type ss4,#object +.size ss4,4 +.common ss4,4,4 +.type ss2,#object +.size ss2,4 +.local ss2 +.common ss2,4,4 +.type ss5,#object +.size ss5,4 +.local ss5 +.common ss5,4,4 +.global ss3 +.type ss3,#object +.size ss3,4 +.common ss3,4,4 +.type ss1,#object +.size ss1,4 +.local ss1 +.common ss1,4,4 +.type yy,#object +.size yy,4 +.local yy +.common yy,4,4 +.global z +.type z,#object +.size z,4 +.common z,4,4 +.global y +.type y,#object +.size y,4 +.common y,4,4 +.global x +.type x,#object +.size x,4 +.common x,4,4 +.global b +.type b,#object +.size b,4 +.common b,4,4 +.global a +.type a,#object +.size a,4 +.common a,4,4 diff --git a/code/tools/lcc/sparc/solaris/tst/incr.1bk b/code/tools/lcc/sparc/solaris/tst/incr.1bk new file mode 100644 index 0000000..e69de29 diff --git a/code/tools/lcc/sparc/solaris/tst/incr.2bk b/code/tools/lcc/sparc/solaris/tst/incr.2bk new file mode 100644 index 0000000..d9ef13c --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/incr.2bk @@ -0,0 +1,9 @@ +tst/incr.c:1: warning: missing return value +tst/incr.c:6: warning: expression with no effect elided +tst/incr.c:6: warning: expression with no effect elided +tst/incr.c:11: warning: missing return value +tst/incr.c:16: warning: expression with no effect elided +tst/incr.c:16: warning: expression with no effect elided +tst/incr.c:21: warning: missing return value +tst/incr.c:30: warning: missing return value +tst/incr.c:39: warning: missing return value diff --git a/code/tools/lcc/sparc/solaris/tst/incr.sbk b/code/tools/lcc/sparc/solaris/tst/incr.sbk new file mode 100644 index 0000000..a7427e5 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/incr.sbk @@ -0,0 +1,107 @@ +.global main +.section ".text" +.align 4 +main: +mov %g0,%o0 +.L1: +retl; nop +.type main,#function +.size main,.-main +.global memchar +.align 4 +memchar: +save %sp,-104,%sp +ld [%fp+-8],%i5 +add %i5,1,%i4 +st %i4,[%fp+-8] +ldsb [%i5],%i5 +stb %i5,[%fp+-1] +ld [%fp+-8],%i5 +add %i5,1,%i5 +st %i5,[%fp+-8] +ldsb [%i5],%i5 +stb %i5,[%fp+-1] +ld [%fp+-8],%i5 +add %i5,-1,%i4 +st %i4,[%fp+-8] +ldsb [%i5],%i5 +stb %i5,[%fp+-1] +ld [%fp+-8],%i5 +add %i5,-1,%i5 +st %i5,[%fp+-8] +ldsb [%i5],%i5 +stb %i5,[%fp+-1] +mov %g0,%i0 +.L2: +ret; restore +.type memchar,#function +.size memchar,.-memchar +.global memint +.align 4 +memint: +save %sp,-104,%sp +ld [%fp+-8],%i5 +add %i5,4,%i4 +st %i4,[%fp+-8] +ld [%i5],%i5 +st %i5,[%fp+-4] +ld [%fp+-8],%i5 +add %i5,4,%i5 +st %i5,[%fp+-8] +ld [%i5],%i5 +st %i5,[%fp+-4] +ld [%fp+-8],%i5 +add %i5,-4,%i4 +st %i4,[%fp+-8] +ld [%i5],%i5 +st %i5,[%fp+-4] +ld [%fp+-8],%i5 +add %i5,-4,%i5 +st %i5,[%fp+-8] +ld [%i5],%i5 +st %i5,[%fp+-4] +mov %g0,%i0 +.L3: +ret; restore +.type memint,#function +.size memint,.-memint +.global regchar +.align 4 +regchar: +mov %o4,%o3 +add %o3,1,%o4 +ldsb [%o3],%o5 +add %o4,1,%o3 +mov %o3,%o4 +ldsb [%o3],%o5 +mov %o4,%o3 +add %o3,-1,%o4 +ldsb [%o3],%o5 +add %o4,-1,%o3 +mov %o3,%o4 +ldsb [%o3],%o5 +mov %g0,%o0 +.L4: +retl; nop +.type regchar,#function +.size regchar,.-regchar +.global regint +.align 4 +regint: +mov %o4,%o3 +add %o3,4,%o4 +ld [%o3],%o5 +add %o4,4,%o3 +mov %o3,%o4 +ld [%o3],%o5 +mov %o4,%o3 +add %o3,-4,%o4 +ld [%o3],%o5 +add %o4,-4,%o3 +mov %o3,%o4 +ld [%o3],%o5 +mov %g0,%o0 +.L5: +retl; nop +.type regint,#function +.size regint,.-regint diff --git a/code/tools/lcc/sparc/solaris/tst/init.1bk b/code/tools/lcc/sparc/solaris/tst/init.1bk new file mode 100644 index 0000000..77aff09 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/init.1bk @@ -0,0 +1,16 @@ + 1 2 3 4 + 5 6 + 7 +if +for +else +while +1 2 3 if +4 5 0 for +6 7 8 else +9 10 11 while +1 2 3 if +4 5 0 for +6 7 8 else +9 10 11 while +0 0 0 diff --git a/code/tools/lcc/sparc/solaris/tst/init.2bk b/code/tools/lcc/sparc/solaris/tst/init.2bk new file mode 100644 index 0000000..aafe415 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/init.2bk @@ -0,0 +1,3 @@ +tst/init.c:36: warning: missing return value +tst/init.c:49: warning: missing return value +tst/init.c:59: warning: missing return value diff --git a/code/tools/lcc/sparc/solaris/tst/init.sbk b/code/tools/lcc/sparc/solaris/tst/init.sbk new file mode 100644 index 0000000..e84f9c9 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/init.sbk @@ -0,0 +1,277 @@ +.section ".data" +.global words +.type words,#object +.align 4 +words: +.word 0x1 +.word 0x2 +.word 0x3 +.byte 105 +.byte 102 +.byte 0 +.skip 3 +.skip 2 +.word 0x4 +.word 0x5 +.skip 4 +.byte 102 +.byte 111 +.byte 114 +.skip 3 +.skip 2 +.word 0x6 +.word 0x7 +.word 0x8 +.byte 101 +.byte 108 +.byte 115 +.byte 101 +.byte 0 +.skip 1 +.skip 2 +.word 0x9 +.word 0xa +.word 0xb +.byte 119 +.byte 104 +.byte 105 +.byte 108 +.byte 101 +.skip 1 +.skip 2 +.word 0x0 +.skip 8 +.skip 8 +.size words,100 +.global wordlist +.type wordlist,#object +.size wordlist,4 +.align 4 +wordlist: +.word words +.global x +.type x,#object +.align 4 +x: +.word 0x1 +.word 0x2 +.word 0x3 +.word 0x4 +.word 0x0 +.word 0x5 +.word 0x6 +.skip 12 +.word 0x7 +.skip 16 +.size x,60 +.global y +.type y,#object +.align 4 +y: +.word x +.word x+20 +.word x+40 +.word 0x0 +.size y,16 +.global main +.section ".text" +.align 4 +main: +save %sp,-96,%sp +mov %g0,%i4 +ba .L8; nop +.L5: +mov %g0,%i5 +ba .L12; nop +.L9: +set .L13,%o0 +sll %i5,2,%i3 +sll %i4,2,%i2 +set y,%i1 +ld [%i2+%i1],%i2 +ld [%i3+%i2],%o1 +call printf; nop +.L10: +add %i5,1,%i5 +.L12: +sll %i5,2,%i3 +sll %i4,2,%i2 +set y,%i1 +ld [%i2+%i1],%i2 +ld [%i3+%i2],%i3 +cmp %i3,0; bne .L9; nop +set .L14,%o0 +call printf; nop +.L6: +add %i4,1,%i4 +.L8: +sll %i4,2,%i3 +set y,%i2 +ld [%i3+%i2],%i3 +cmp %i3,%g0; bne .L5; nop +call f; nop +set wordlist,%i3 +ld [%i3],%o0 +call g; nop +mov %g0,%i0 +.L4: +ret; restore +.type main,#function +.size main,.-main +.section ".data" +.type .16,#object +.align 4 +.16: +.word .L17 +.word .L18 +.word .L19 +.word .L20 +.word 0x0 +.size .16,20 +.global f +.section ".text" +.align 4 +f: +save %sp,-96,%sp +set .16,%i5 +ba .L24; nop +.L21: +set .L25,%o0 +ld [%i5],%o1 +call printf; nop +.L22: +add %i5,4,%i5 +.L24: +ld [%i5],%i4 +cmp %i4,%g0; bne .L21; nop +mov %g0,%i0 +.L15: +ret; restore +.type f,#function +.size f,.-f +.global g +.align 4 +g: +save %sp,-96,%sp +ba .L30; nop +.L27: +mov %g0,%i5 +ba .L34; nop +.L31: +set .L35,%o0 +sll %i5,2,%i4 +ld [%i4+%i0],%o1 +call printf; nop +.L32: +add %i5,1,%i5 +.L34: +mov %i5,%i4 +set 3,%i3 +cmp %i4,%i3; blu .L31; nop +set .L25,%o0 +add %i0,12,%o1 +call printf; nop +.L28: +add %i0,20,%i0 +.L30: +ld [%i0],%i4 +cmp %i4,0; bne .L27; nop +call h; nop +mov %g0,%i0 +.L26: +ret; restore +.type g,#function +.size g,.-g +.global h +.align 4 +h: +save %sp,-96,%sp +mov %g0,%i5 +ba .L40; nop +.L37: +set .L41,%o0 +smul %i5,20,%i4 +set words,%i3 +ld [%i4+%i3],%o1 +set words+4,%i3 +ld [%i4+%i3],%o2 +set words+8,%i3 +ld [%i4+%i3],%o3 +set words+12,%i3 +add %i4,%i3,%o4 +call printf; nop +.L38: +add %i5,1,%i5 +.L40: +mov %i5,%i4 +set 5,%i3 +cmp %i4,%i3; blu .L37; nop +mov %g0,%i0 +.L36: +ret; restore +.type h,#function +.size h,.-h +.section ".rodata" +.align 1 +.L41: +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 1 +.L35: +.byte 37 +.byte 100 +.byte 32 +.byte 0 +.align 1 +.L25: +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 1 +.L20: +.byte 119 +.byte 104 +.byte 105 +.byte 108 +.byte 101 +.byte 0 +.align 1 +.L19: +.byte 101 +.byte 108 +.byte 115 +.byte 101 +.byte 0 +.align 1 +.L18: +.byte 102 +.byte 111 +.byte 114 +.byte 0 +.align 1 +.L17: +.byte 105 +.byte 102 +.byte 0 +.align 1 +.L14: +.byte 10 +.byte 0 +.align 1 +.L13: +.byte 32 +.byte 37 +.byte 100 +.byte 0 diff --git a/code/tools/lcc/sparc/solaris/tst/limits.1bk b/code/tools/lcc/sparc/solaris/tst/limits.1bk new file mode 100644 index 0000000..9beee8c --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/limits.1bk @@ -0,0 +1,14 @@ +UCHAR_MAX: 000000ff=255 +USHRT_MAX: 0000ffff=65535 +UINT_MAX: ffffffff=-1 +ULONG_MAX: ffffffff=-1 +CHAR_MAX: 0000007f=127 +SCHAR_MAX: 0000007f=127 +SHRT_MAX: 00007fff=32767 +INT_MAX: 7fffffff=2147483647 +LONG_MAX: 7fffffff=2147483647 +CHAR_MIN: ffffff80=-128 +SCHAR_MIN: ffffff80=-128 +SHRT_MIN: ffff8000=-32768 +INT_MIN: 80000000=-2147483648 +LONG_MIN: 80000000=-2147483648 diff --git a/code/tools/lcc/sparc/solaris/tst/limits.2bk b/code/tools/lcc/sparc/solaris/tst/limits.2bk new file mode 100644 index 0000000..e69de29 diff --git a/code/tools/lcc/sparc/solaris/tst/limits.sbk b/code/tools/lcc/sparc/solaris/tst/limits.sbk new file mode 100644 index 0000000..2537c0c --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/limits.sbk @@ -0,0 +1,384 @@ +.global main +.section ".text" +.align 4 +main: +save %sp,-96,%sp +set .L2,%o0 +set 255,%i5 +mov %i5,%o1 +mov %i5,%o2 +call printf; nop +set .L3,%o0 +set 65535,%i5 +mov %i5,%o1 +mov %i5,%o2 +call printf; nop +set .L4,%o0 +set 0xffffffff,%i5 +mov %i5,%o1 +mov %i5,%o2 +call printf; nop +set .L5,%o0 +set 0xffffffff,%i5 +mov %i5,%o1 +mov %i5,%o2 +call printf; nop +set .L6,%o0 +set 127,%i5 +mov %i5,%o1 +mov %i5,%o2 +call printf; nop +set .L7,%o0 +set 127,%i5 +mov %i5,%o1 +mov %i5,%o2 +call printf; nop +set .L8,%o0 +set 32767,%i5 +mov %i5,%o1 +mov %i5,%o2 +call printf; nop +set .L9,%o0 +set 2147483647,%i5 +mov %i5,%o1 +mov %i5,%o2 +call printf; nop +set .L10,%o0 +set 2147483647,%i5 +mov %i5,%o1 +mov %i5,%o2 +call printf; nop +set .L11,%o0 +set -128,%i5 +mov %i5,%o1 +mov %i5,%o2 +call printf; nop +set .L12,%o0 +set -128,%i5 +mov %i5,%o1 +mov %i5,%o2 +call printf; nop +set .L13,%o0 +set -32768,%i5 +mov %i5,%o1 +mov %i5,%o2 +call printf; nop +set .L14,%o0 +set -2147483648,%i5 +mov %i5,%o1 +mov %i5,%o2 +call printf; nop +set .L15,%o0 +set -2147483648,%i5 +mov %i5,%o1 +mov %i5,%o2 +call printf; nop +mov %g0,%i0 +.L1: +ret; restore +.type main,#function +.size main,.-main +.section ".rodata" +.align 1 +.L15: +.byte 76 +.byte 79 +.byte 78 +.byte 71 +.byte 95 +.byte 77 +.byte 73 +.byte 78 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 108 +.byte 120 +.byte 61 +.byte 37 +.byte 108 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.L14: +.byte 73 +.byte 78 +.byte 84 +.byte 95 +.byte 77 +.byte 73 +.byte 78 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.L13: +.byte 83 +.byte 72 +.byte 82 +.byte 84 +.byte 95 +.byte 77 +.byte 73 +.byte 78 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.L12: +.byte 83 +.byte 67 +.byte 72 +.byte 65 +.byte 82 +.byte 95 +.byte 77 +.byte 73 +.byte 78 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.L11: +.byte 67 +.byte 72 +.byte 65 +.byte 82 +.byte 95 +.byte 77 +.byte 73 +.byte 78 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.L10: +.byte 76 +.byte 79 +.byte 78 +.byte 71 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 108 +.byte 120 +.byte 61 +.byte 37 +.byte 108 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.L9: +.byte 73 +.byte 78 +.byte 84 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.L8: +.byte 83 +.byte 72 +.byte 82 +.byte 84 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.L7: +.byte 83 +.byte 67 +.byte 72 +.byte 65 +.byte 82 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.L6: +.byte 67 +.byte 72 +.byte 65 +.byte 82 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.L5: +.byte 85 +.byte 76 +.byte 79 +.byte 78 +.byte 71 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 108 +.byte 120 +.byte 61 +.byte 37 +.byte 108 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.L4: +.byte 85 +.byte 73 +.byte 78 +.byte 84 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.L3: +.byte 85 +.byte 83 +.byte 72 +.byte 82 +.byte 84 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.L2: +.byte 85 +.byte 67 +.byte 72 +.byte 65 +.byte 82 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 diff --git a/code/tools/lcc/sparc/solaris/tst/paranoia.1bk b/code/tools/lcc/sparc/solaris/tst/paranoia.1bk new file mode 100644 index 0000000..09e21fa --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/paranoia.1bk @@ -0,0 +1,178 @@ +Lest this program stop prematurely, i.e. before displaying + + `END OF TEST', + +try to persuade the computer NOT to terminate execution when an +error like Over/Underflow or Division by Zero occurs, but rather +to persevere with a surrogate value after, perhaps, displaying some +warning. If persuasion avails naught, don't despair but run this +program anyway to see how many milestones it passes, and then +amend it to make further progress. + +Answer questions with Y, y, N or n (unless otherwise indicated). + + +Diagnosis resumes after milestone Number 0 Page: 1 + +Users are invited to help debug and augment this program so it will +cope with unanticipated and newly uncovered arithmetic pathologies. + +Please send suggestions and interesting results to + Richard Karpinski + Computer Center U-76 + University of California + San Francisco, CA 94143-0704, USA + +In doing so, please include the following information: + Precision: double; + Version: 10 February 1989; + Computer: + + Compiler: + + Optimization level: + + Other relevant compiler options: + +Diagnosis resumes after milestone Number 1 Page: 2 + +Running this program should reveal these characteristics: + Radix = 1, 2, 4, 8, 10, 16, 100, 256 ... + Precision = number of significant digits carried. + U2 = Radix/Radix^Precision = One Ulp + (OneUlpnit in the Last Place) of 1.000xxx . + U1 = 1/Radix^Precision = One Ulp of numbers a little less than 1.0 . + Adequacy of guard digits for Mult., Div. and Subt. + Whether arithmetic is chopped, correctly rounded, or something else + for Mult., Div., Add/Subt. and Sqrt. + Whether a Sticky Bit used correctly for rounding. + UnderflowThreshold = an underflow threshold. + E0 and PseudoZero tell whether underflow is abrupt, gradual, or fuzzy. + V = an overflow threshold, roughly. + V0 tells, roughly, whether Infinity is represented. + Comparisions are checked for consistency with subtraction + and for contamination with pseudo-zeros. + Sqrt is tested. Y^X is not tested. + Extra-precise subexpressions are revealed but NOT YET tested. + Decimal-Binary conversion is NOT YET tested for accuracy. + +Diagnosis resumes after milestone Number 2 Page: 3 + +The program attempts to discriminate among + FLAWs, like lack of a sticky bit, + Serious DEFECTs, like lack of a guard digit, and + FAILUREs, like 2+2 == 5 . +Failures may confound subsequent diagnoses. + +The diagnostic capabilities of this program go beyond an earlier +program called `MACHAR', which can be found at the end of the +book `Software Manual for the Elementary Functions' (1980) by +W. J. Cody and W. Waite. Although both programs try to discover +the Radix, Precision and range (over/underflow thresholds) +of the arithmetic, this program tries to cope with a wider variety +of pathologies, and to say how well the arithmetic is implemented. + +The program is based upon a conventional radix representation for +floating-point numbers, but also allows logarithmic encoding +as used by certain early WANG machines. + +BASIC version of this program (C) 1983 by Prof. W. M. Kahan; +see source comments for more history. + +Diagnosis resumes after milestone Number 3 Page: 4 + +Program is now RUNNING tests on small integers: +-1, 0, 1/2, 1, 2, 3, 4, 5, 9, 27, 32 & 240 are O.K. + +Searching for Radix and Precision. +Radix = 2.000000 . +Closest relative separation found is U1 = 1.1102230e-16 . + +Recalculating radix and precision + confirms closest relative separation U1 . +Radix confirmed. +The number of significant digits of the Radix is 53.000000 . + +Diagnosis resumes after milestone Number 30 Page: 5 + +Subtraction appears to be normalized, as it should be. +Checking for guard digit in *, /, and -. + *, /, and - appear to have guard digits, as they should. + +Diagnosis resumes after milestone Number 40 Page: 6 + +Checking rounding on multiply, divide and add/subtract. +Multiplication appears to round correctly. +Division appears to round correctly. +Addition/Subtraction appears to round correctly. +Checking for sticky bit. +Sticky bit apparently used correctly. + +Does Multiplication commute? Testing on 20 random pairs. + No failures found in 20 integer pairs. + +Running test of square root(x). +Testing if sqrt(X * X) == X for 20 Integers X. +Test for sqrt monotonicity. +sqrt has passed a test for Monotonicity. +Testing whether sqrt is rounded or chopped. +Square root appears to be correctly rounded. + +Diagnosis resumes after milestone Number 90 Page: 7 + +Testing powers Z^i for small Integers Z and i. +... no discrepancis found. + +Seeking Underflow thresholds UfThold and E0. +Smallest strictly positive number found is E0 = 4.94066e-324 . +Since comparison denies Z = 0, evaluating (Z + Z) / Z should be safe. +What the machine gets for (Z + Z) / Z is 2.00000000000000000e+00 . +This is O.K., provided Over/Underflow has NOT just been signaled. +Underflow is gradual; it incurs Absolute Error = +(roundoff in UfThold) < E0. +The Underflow threshold is 2.22507385850720188e-308, below which +calculation may suffer larger Relative error than merely roundoff. +Since underflow occurs below the threshold +UfThold = (2.00000000000000000e+00) ^ (-1.02200000000000000e+03) +only underflow should afflict the expression + (2.00000000000000000e+00) ^ (-1.02200000000000000e+03); +actually calculating yields: 0.00000000000000000e+00 . +This computed value is O.K. + +Testing X^((X + 1) / (X - 1)) vs. exp(2) = 7.38905609893065218e+00 as X -> 1. +Accuracy seems adequate. +Testing powers Z^Q at four nearly extreme values. + ... no discrepancies found. + + +Diagnosis resumes after milestone Number 160 Page: 8 + +Searching for Overflow threshold: +This may generate an error. +Can `Z = -Y' overflow? +Trying it on Y = -Infinity . +Seems O.K. +Overflow threshold is V = 1.79769313486231571e+308 . +Overflow saturates at V0 = Infinity . +No Overflow should be signaled for V * 1 = 1.79769313486231571e+308 + nor for V / 1 = 1.79769313486231571e+308 . +Any overflow signal separating this * from the one +above is a DEFECT. + + +Diagnosis resumes after milestone Number 190 Page: 9 + + +What message and/or values does Division by Zero produce? + Trying to compute 1 / 0 produces ... Infinity . + + Trying to compute 0 / 0 produces ... NaN . + +Diagnosis resumes after milestone Number 220 Page: 10 + + + +No failures, defects nor flaws have been discovered. +Rounding appears to conform to the proposed IEEE standard P754. +The arithmetic diagnosed appears to be Excellent! +END OF TEST. diff --git a/code/tools/lcc/sparc/solaris/tst/paranoia.2bk b/code/tools/lcc/sparc/solaris/tst/paranoia.2bk new file mode 100644 index 0000000..2718174 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/paranoia.2bk @@ -0,0 +1,16 @@ +tst/paranoia.c:1867: warning: missing return value +tst/paranoia.c:1874: warning: missing return value +tst/paranoia.c:1884: warning: missing return value +tst/paranoia.c:1924: warning: missing return value +tst/paranoia.c:1939: warning: missing return value +tst/paranoia.c:1956: warning: missing return value +tst/paranoia.c:1975: warning: missing return value +tst/paranoia.c:1988: warning: missing return value +tst/paranoia.c:1995: warning: missing return value +tst/paranoia.c:2055: warning: missing return value +tst/paranoia.c:2062: warning: missing return value +tst/paranoia.c:2070: warning: missing return value +tst/paranoia.c:2087: warning: missing return value +tst/paranoia.c:2115: warning: missing return value +tst/paranoia.c:2144: warning: missing return value +tst/paranoia.c:2173: warning: missing return value diff --git a/code/tools/lcc/sparc/solaris/tst/paranoia.sbk b/code/tools/lcc/sparc/solaris/tst/paranoia.sbk new file mode 100644 index 0000000..4b4bd7e --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/paranoia.sbk @@ -0,0 +1,21068 @@ +.section ".data" +.global Zero +.type Zero,#object +.size Zero,8 +.align 8 +Zero: +.word 0x0 +.word 0x0 +.global Half +.type Half,#object +.size Half,8 +.align 8 +Half: +.word 0x3fe00000 +.word 0x0 +.global One +.type One,#object +.size One,8 +.align 8 +One: +.word 0x3ff00000 +.word 0x0 +.global Two +.type Two,#object +.size Two,8 +.align 8 +Two: +.word 0x40000000 +.word 0x0 +.global Three +.type Three,#object +.size Three,8 +.align 8 +Three: +.word 0x40080000 +.word 0x0 +.global Four +.type Four,#object +.size Four,8 +.align 8 +Four: +.word 0x40100000 +.word 0x0 +.global Five +.type Five,#object +.size Five,8 +.align 8 +Five: +.word 0x40140000 +.word 0x0 +.global Eight +.type Eight,#object +.size Eight,8 +.align 8 +Eight: +.word 0x40200000 +.word 0x0 +.global Nine +.type Nine,#object +.size Nine,8 +.align 8 +Nine: +.word 0x40220000 +.word 0x0 +.global TwentySeven +.type TwentySeven,#object +.size TwentySeven,8 +.align 8 +TwentySeven: +.word 0x403b0000 +.word 0x0 +.global ThirtyTwo +.type ThirtyTwo,#object +.size ThirtyTwo,8 +.align 8 +ThirtyTwo: +.word 0x40400000 +.word 0x0 +.global TwoForty +.type TwoForty,#object +.size TwoForty,8 +.align 8 +TwoForty: +.word 0x406e0000 +.word 0x0 +.global MinusOne +.type MinusOne,#object +.size MinusOne,8 +.align 8 +MinusOne: +.word 0xbff00000 +.word 0x0 +.global OneAndHalf +.type OneAndHalf,#object +.size OneAndHalf,8 +.align 8 +OneAndHalf: +.word 0x3ff80000 +.word 0x0 +.global NoTrials +.type NoTrials,#object +.size NoTrials,4 +.align 4 +NoTrials: +.word 0x14 +.global sigfpe +.section ".text" +.align 4 +sigfpe: +save %sp,-96,%sp +set fpecount,%i5 +ld [%i5],%i4 +add %i4,1,%i4 +st %i4,[%i5] +set .L3,%o0 +call printf; nop +set __iob+16,%o0 +call fflush; nop +set sigsave,%i5 +ld [%i5],%i5 +cmp %i5,%g0; be .L5; nop +set 8,%o0 +set sigsave,%i5 +ld [%i5],%o1 +call signal; nop +set sigsave,%i5 +st %g0,[%i5] +set ovfl_buf,%o0 +set 1,%o1 +call longjmp; nop +.L5: +call abort; nop +.L2: +ret; restore +.type sigfpe,#function +.size sigfpe,.-sigfpe +.section ".data" +.type .758,#object +.align 4 +.758: +.word .L759 +.word .L760 +.word .L761 +.word .L762 +.size .758,16 +.global main +.section ".text" +.align 4 +main: +save %sp,-216,%sp +set Zero,%i5 +set .L8,%i4 +ld2 [%i4],%f30 +st2 %f30,[%i5] +set One,%i5 +set .L9,%i4 +ld2 [%i4],%f30 +st2 %f30,[%i5] +set Two,%i4 +ld2 [%i5],%f30 +faddd %f30,%f30,%f28 +st2 %f28,[%i4] +set Three,%i5 +ld2 [%i4],%f28 +faddd %f28,%f30,%f26 +st2 %f26,[%i5] +set Four,%i4 +ld2 [%i5],%f26 +faddd %f26,%f30,%f24 +st2 %f24,[%i4] +set Five,%i5 +ld2 [%i4],%f24 +faddd %f24,%f30,%f22 +st2 %f22,[%i5] +set Eight,%i4 +faddd %f24,%f24,%f22 +st2 %f22,[%i4] +set Nine,%i3 +fmuld %f26,%f26,%f22 +st2 %f22,[%i3] +set TwentySeven,%i2 +ld2 [%i3],%f22 +fmuld %f22,%f26,%f22 +st2 %f22,[%i2] +set ThirtyTwo,%i3 +ld2 [%i4],%f22 +fmuld %f24,%f22,%f22 +st2 %f22,[%i3] +set TwoForty,%i4 +ld2 [%i5],%f22 +fmuld %f24,%f22,%f22 +fmuld %f22,%f26,%f26 +fmuld %f26,%f24,%f26 +st2 %f26,[%i4] +set MinusOne,%i5 +fnegs %f30,%f26; fmovs %f31,%f27 +st2 %f26,[%i5] +set Half,%i5 +fdivd %f30,%f28,%f28 +st2 %f28,[%i5] +set OneAndHalf,%i4 +ld2 [%i5],%f28 +faddd %f30,%f28,%f30 +st2 %f30,[%i4] +set ErrCnt,%i4 +st %g0,[%i4] +set ErrCnt+4,%i4 +st %g0,[%i4] +set ErrCnt+8,%i5 +st %g0,[%i5] +set ErrCnt+12,%i5 +st %g0,[%i5] +set PageNo,%i5 +set 1,%i4 +st %i4,[%i5] +set Milestone,%i5 +st %g0,[%i5] +set 8,%o0 +set sigfpe,%o1 +call signal; nop +call Instructions; nop +call Pause; nop +call Heading; nop +call Pause; nop +call Characteristics; nop +call Pause; nop +call History; nop +call Pause; nop +set Milestone,%i5 +set 7,%i4 +st %i4,[%i5] +set .L13,%o0 +call printf; nop +mov %g0,%o0 +set Zero,%i4 +ld2 [%i4],%f30 +faddd %f30,%f30,%f28 +fcmped %f28,%f30; nop; fbne .L16; nop +set One,%i4 +ld2 [%i4],%f28 +fsubd %f28,%f28,%f26 +fcmped %f26,%f30; nop; fbne .L16; nop +fcmped %f28,%f30; nop; fbule .L16; nop +faddd %f28,%f28,%f30 +set Two,%i4 +ld2 [%i4],%f28 +fcmped %f30,%f28; nop; fbne .L16; nop +set 1,%i5 +ba .L17; nop +.L16: +mov %g0,%i5 +.L17: +mov %i5,%o1 +set .L15,%o2 +call TstCond; nop +set Z,%i4 +set Zero,%i3 +ld2 [%i3],%f30 +fnegs %f30,%f30; fmovs %f31,%f31 +st2 %f30,[%i4] +ld2 [%i4],%f30 +set .L8,%i4 +ld2 [%i4],%f28 +fcmped %f30,%f28; nop; fbue .L18; nop +set ErrCnt,%i4 +ld [%i4],%i3 +add %i3,1,%i3 +st %i3,[%i4] +set .L20,%o0 +call printf; nop +set U1,%i4 +set .L21,%i3 +ld2 [%i3],%f30 +st2 %f30,[%i4] +set Radix,%i4 +set .L9,%i3 +ld2 [%i3],%f30 +st2 %f30,[%i4] +call TstPtUf; nop +.L18: +mov %g0,%o0 +set Three,%i3 +ld2 [%i3],%f30 +set Two,%i3 +ld2 [%i3],%f28 +set One,%i3 +ld2 [%i3],%f26 +faddd %f28,%f26,%f24 +fcmped %f30,%f24; nop; fbne .L24; nop +set Four,%i3 +ld2 [%i3],%f24 +faddd %f30,%f26,%f22 +fcmped %f24,%f22; nop; fbne .L24; nop +set Zero,%i3 +ld2 [%i3],%f22 +fnegs %f28,%f20; fmovs %f29,%f21 +fmuld %f28,%f20,%f28 +faddd %f24,%f28,%f28 +fcmped %f28,%f22; nop; fbne .L24; nop +fsubd %f24,%f30,%f30 +fsubd %f30,%f26,%f30 +fcmped %f30,%f22; nop; fbne .L24; nop +set 1,%i4 +ba .L25; nop +.L24: +mov %g0,%i4 +.L25: +mov %i4,%o1 +set .L23,%o2 +call TstCond; nop +set MinusOne,%i2 +ld2 [%i2],%f30 +std %f30,[%fp+-8] +set One,%i2 +ld2 [%i2],%f28 +set .L8,%i2 +ld2 [%i2],%f26 +fsubd %f26,%f28,%f26 +fcmped %f30,%f26; nop; fbne .L28; nop +set Zero,%i2 +ld2 [%i2],%f26 +faddd %f30,%f28,%f24 +fcmped %f24,%f26; nop; fbne .L28; nop +faddd %f28,%f30,%f24 +fcmped %f24,%f26; nop; fbne .L28; nop +st %f28,[%sp+4*0+68] +st %f29,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call fabs; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set Zero,%i2 +ld2 [%i2],%f28 +ldd [%fp+-8],%f26 +faddd %f26,%f30,%f30 +fcmped %f30,%f28; nop; fbne .L28; nop +set MinusOne,%i2 +ld2 [%i2],%f30 +fmuld %f30,%f30,%f26 +faddd %f30,%f26,%f30 +fcmped %f30,%f28; nop; fbne .L28; nop +set 1,%i3 +ba .L29; nop +.L28: +mov %g0,%i3 +.L29: +mov %g0,%o0 +mov %i3,%o1 +set .L27,%o2 +call TstCond; nop +mov %g0,%o0 +set Half,%i1 +ld2 [%i1],%f30 +set MinusOne,%i1 +ld2 [%i1],%f28 +faddd %f30,%f28,%f28 +faddd %f28,%f30,%f30 +set Zero,%i1 +ld2 [%i1],%f28 +fcmped %f30,%f28; nop; fbne .L32; nop +set 1,%i2 +ba .L33; nop +.L32: +mov %g0,%i2 +.L33: +mov %i2,%o1 +set .L31,%o2 +call TstCond; nop +set Milestone,%i0 +set 10,%l7 +st %l7,[%i0] +mov %g0,%o0 +set Nine,%i0 +ld2 [%i0],%f30 +set Three,%i0 +ld2 [%i0],%f28 +fmuld %f28,%f28,%f26 +fcmped %f30,%f26; nop; fbne .L36; nop +set TwentySeven,%i0 +ld2 [%i0],%f26 +fmuld %f30,%f28,%f30 +fcmped %f26,%f30; nop; fbne .L36; nop +set Eight,%i0 +ld2 [%i0],%f30 +set Four,%i0 +ld2 [%i0],%f28 +faddd %f28,%f28,%f24 +fcmped %f30,%f24; nop; fbne .L36; nop +set ThirtyTwo,%i0 +ld2 [%i0],%f24 +fmuld %f30,%f28,%f30 +fcmped %f24,%f30; nop; fbne .L36; nop +fsubd %f24,%f26,%f30 +fsubd %f30,%f28,%f30 +set One,%i0 +ld2 [%i0],%f28 +fsubd %f30,%f28,%f30 +set Zero,%i0 +ld2 [%i0],%f28 +fcmped %f30,%f28; nop; fbne .L36; nop +set 1,%i1 +ba .L37; nop +.L36: +mov %g0,%i1 +.L37: +mov %i1,%o1 +set .L35,%o2 +call TstCond; nop +mov %g0,%o0 +set Five,%l7 +ld2 [%l7],%f30 +set Four,%l7 +ld2 [%l7],%f28 +set One,%l7 +ld2 [%l7],%f26 +faddd %f28,%f26,%f26 +fcmped %f30,%f26; nop; fbne .L40; nop +set TwoForty,%l7 +ld2 [%l7],%f26 +set Three,%l7 +ld2 [%l7],%f24 +fmuld %f28,%f30,%f22 +fmuld %f22,%f24,%f22 +fmuld %f22,%f28,%f22 +fcmped %f26,%f22; nop; fbne .L40; nop +set Zero,%l7 +ld2 [%l7],%f22 +fdivd %f26,%f24,%f20 +fmuld %f28,%f28,%f18 +fmuld %f18,%f30,%f18 +fsubd %f20,%f18,%f20 +fcmped %f20,%f22; nop; fbne .L40; nop +fdivd %f26,%f28,%f20 +fmuld %f30,%f24,%f18 +fmuld %f18,%f28,%f18 +fsubd %f20,%f18,%f20 +fcmped %f20,%f22; nop; fbne .L40; nop +fdivd %f26,%f30,%f30 +fmuld %f28,%f24,%f26 +fmuld %f26,%f28,%f28 +fsubd %f30,%f28,%f30 +fcmped %f30,%f22; nop; fbne .L40; nop +set 1,%i0 +ba .L41; nop +.L40: +mov %g0,%i0 +.L41: +mov %i0,%o1 +set .L39,%o2 +call TstCond; nop +set ErrCnt,%l7 +ld [%l7],%l7 +cmp %l7,0; bne .L42; nop +set .L44,%o0 +call printf; nop +set .L45,%o0 +call printf; nop +.L42: +set .L46,%o0 +call printf; nop +set W,%l7 +set One,%l6 +ld2 [%l6],%f30 +st2 %f30,[%l7] +.L47: +set W,%l7 +ld2 [%l7],%f30 +faddd %f30,%f30,%f30 +st2 %f30,[%l7] +set Y,%l6 +ld2 [%l7],%f30 +set One,%l7 +ld2 [%l7],%f28 +faddd %f30,%f28,%f26 +st2 %f26,[%l6] +set Z,%l7 +ld2 [%l6],%f26 +fsubd %f26,%f30,%f30 +st2 %f30,[%l7] +ld2 [%l7],%f30 +fsubd %f30,%f28,%f30 +st2 %f30,[%l6] +.L48: +set Y,%l7 +ld2 [%l7],%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call fabs; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set MinusOne,%l7 +ld2 [%l7],%f28 +faddd %f28,%f30,%f30 +set Zero,%l7 +ld2 [%l7],%f28 +fcmped %f30,%f28; nop; fbul .L47; nop +set Precision,%l7 +set Zero,%l6 +ld2 [%l6],%f30 +st2 %f30,[%l7] +set Y,%l7 +set One,%l6 +ld2 [%l6],%f30 +st2 %f30,[%l7] +.L50: +set Radix,%l7 +set W,%l6 +ld2 [%l6],%f30 +set Y,%l6 +ld2 [%l6],%f28 +faddd %f30,%f28,%f26 +st2 %f26,[%l7] +faddd %f28,%f28,%f28 +st2 %f28,[%l6] +ld2 [%l7],%f28 +fsubd %f28,%f30,%f30 +st2 %f30,[%l7] +.L51: +set Radix,%l7 +ld2 [%l7],%f30 +set Zero,%l7 +ld2 [%l7],%f28 +fcmped %f30,%f28; nop; fbue .L50; nop +set Radix,%l7 +ld2 [%l7],%f30 +set Two,%l7 +ld2 [%l7],%f28 +fcmped %f30,%f28; nop; fbuge .L53; nop +set Radix,%l7 +set One,%l6 +ld2 [%l6],%f30 +st2 %f30,[%l7] +.L53: +set .L55,%o0 +set Radix,%l7 +ld2 [%l7],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +set Radix,%l7 +ld2 [%l7],%f30 +set .L9,%l7 +ld2 [%l7],%f28 +fcmped %f30,%f28; nop; fbue .L56; nop +set W,%l7 +set One,%l6 +ld2 [%l6],%f30 +st2 %f30,[%l7] +.L58: +set Precision,%l7 +set One,%l6 +ld2 [%l6],%f30 +ld2 [%l7],%f28 +faddd %f28,%f30,%f28 +st2 %f28,[%l7] +set W,%l7 +ld2 [%l7],%f28 +set Radix,%l6 +ld2 [%l6],%f26 +fmuld %f28,%f26,%f28 +st2 %f28,[%l7] +set Y,%l6 +ld2 [%l7],%f28 +faddd %f28,%f30,%f30 +st2 %f30,[%l6] +.L59: +set Y,%l7 +ld2 [%l7],%f30 +set W,%l7 +ld2 [%l7],%f28 +fsubd %f30,%f28,%f30 +set One,%l7 +ld2 [%l7],%f28 +fcmped %f30,%f28; nop; fbue .L58; nop +.L56: +set U1,%l7 +set One,%l6 +ld2 [%l6],%f30 +set W,%l6 +ld2 [%l6],%f28 +fdivd %f30,%f28,%f30 +st2 %f30,[%l7] +ld2 [%l7],%f30 +set U2,%l7 +set Radix,%l6 +ld2 [%l6],%f28 +fmuld %f28,%f30,%f28 +st2 %f28,[%l7] +set .L61,%o0 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +set .L62,%o0 +call printf; nop +set E0,%l7 +set Radix,%l6 +ld2 [%l6],%f30 +st2 %f30,[%l7] +set E1,%l7 +set U1,%l6 +ld2 [%l6],%f30 +st2 %f30,[%l7] +set E9,%l7 +set U2,%l6 +ld2 [%l6],%f30 +st2 %f30,[%l7] +set E3,%l7 +set Precision,%l6 +ld2 [%l6],%f30 +st2 %f30,[%l7] +set X,%l7 +set Four,%l6 +ld2 [%l6],%f30 +set Three,%l6 +ld2 [%l6],%f28 +fdivd %f30,%f28,%f30 +st2 %f30,[%l7] +set Third,%l6 +ld2 [%l7],%f30 +set One,%l5 +ld2 [%l5],%f28 +fsubd %f30,%f28,%f30 +st2 %f30,[%l6] +set F6,%l5 +ld2 [%l6],%f30 +set Half,%l6 +ld2 [%l6],%f28 +fsubd %f28,%f30,%f28 +st2 %f28,[%l5] +ld2 [%l5],%f28 +faddd %f28,%f28,%f28 +st2 %f28,[%l7] +ld2 [%l7],%f28 +fsubd %f28,%f30,%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call fabs; nop +fmovs %f0,%f30; fmovs %f1,%f31 +st2 %f30,[%l7] +set X,%l7 +ld2 [%l7],%f30 +set U2,%l7 +ld2 [%l7],%f28 +fcmped %f30,%f28; nop; fbuge .L63; nop +set X,%l7 +set U2,%l6 +ld2 [%l6],%f30 +st2 %f30,[%l7] +.L63: +.L65: +set U2,%l7 +set X,%l6 +ld2 [%l6],%f30 +st2 %f30,[%l7] +set Y,%l5 +ld2 [%l7],%f30 +set Half,%l7 +ld2 [%l7],%f28 +fmuld %f28,%f30,%f28 +set ThirtyTwo,%l7 +ld2 [%l7],%f26 +fmuld %f26,%f30,%f26 +fmuld %f26,%f30,%f30 +faddd %f28,%f30,%f30 +st2 %f30,[%l5] +set One,%l7 +ld2 [%l7],%f30 +ld2 [%l5],%f28 +faddd %f30,%f28,%f28 +st2 %f28,[%l5] +ld2 [%l5],%f28 +fsubd %f28,%f30,%f30 +st2 %f30,[%l6] +.L66: +set X,%l7 +ld2 [%l7],%f30 +set U2,%l7 +ld2 [%l7],%f28 +fcmped %f28,%f30; nop; fbule .L68; nop +set Zero,%l7 +ld2 [%l7],%f28 +fcmped %f30,%f28; nop; fbug .L65; nop +.L68: +set X,%l7 +set Two,%l6 +ld2 [%l6],%f30 +set Three,%l6 +ld2 [%l6],%f28 +fdivd %f30,%f28,%f30 +st2 %f30,[%l7] +set F6,%l6 +set Half,%l5 +ld2 [%l5],%f30 +ld2 [%l7],%f28 +fsubd %f28,%f30,%f28 +st2 %f28,[%l6] +set Third,%l5 +ld2 [%l6],%f28 +faddd %f28,%f28,%f26 +st2 %f26,[%l5] +ld2 [%l5],%f26 +fsubd %f26,%f30,%f30 +st2 %f30,[%l7] +ld2 [%l7],%f30 +faddd %f30,%f28,%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call fabs; nop +fmovs %f0,%f30; fmovs %f1,%f31 +st2 %f30,[%l7] +set X,%l7 +ld2 [%l7],%f30 +set U1,%l7 +ld2 [%l7],%f28 +fcmped %f30,%f28; nop; fbuge .L69; nop +set X,%l7 +set U1,%l6 +ld2 [%l6],%f30 +st2 %f30,[%l7] +.L69: +.L71: +set U1,%l7 +set X,%l6 +ld2 [%l6],%f30 +st2 %f30,[%l7] +set Y,%l5 +set Half,%l4 +ld2 [%l4],%f30 +ld2 [%l7],%f28 +fmuld %f30,%f28,%f26 +set ThirtyTwo,%l7 +ld2 [%l7],%f24 +fmuld %f24,%f28,%f24 +fmuld %f24,%f28,%f28 +faddd %f26,%f28,%f28 +st2 %f28,[%l5] +ld2 [%l5],%f28 +fsubd %f30,%f28,%f28 +st2 %f28,[%l5] +ld2 [%l5],%f28 +faddd %f30,%f28,%f28 +st2 %f28,[%l6] +ld2 [%l6],%f28 +fsubd %f30,%f28,%f28 +st2 %f28,[%l5] +ld2 [%l5],%f28 +faddd %f30,%f28,%f30 +st2 %f30,[%l6] +.L72: +set X,%l7 +ld2 [%l7],%f30 +set U1,%l7 +ld2 [%l7],%f28 +fcmped %f28,%f30; nop; fbule .L74; nop +set Zero,%l7 +ld2 [%l7],%f28 +fcmped %f30,%f28; nop; fbug .L71; nop +.L74: +set U1,%l7 +ld2 [%l7],%f30 +set E1,%l7 +ld2 [%l7],%f28 +fcmped %f30,%f28; nop; fbne .L75; nop +set .L77,%o0 +call printf; nop +ba .L76; nop +.L75: +set .L78,%o0 +set U1,%l7 +ld2 [%l7],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +.L76: +set U1,%l7 +ld2 [%l7],%f30 +set W,%l7 +set One,%l6 +ld2 [%l6],%f28 +fdivd %f28,%f30,%f28 +st2 %f28,[%l7] +set Half,%l7 +ld2 [%l7],%f28 +set F9,%l7 +fsubd %f28,%f30,%f26 +faddd %f26,%f28,%f28 +st2 %f28,[%l7] +set U2,%l7 +ld2 [%l7],%f28 +fdivd %f28,%f30,%f30 +set .L79,%l7 +ld2 [%l7],%f28 +faddd %f30,%f28,%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call floor; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set Radix,%l7 +st2 %f30,[%l7] +set Radix,%l7 +ld2 [%l7],%f30 +set E0,%l7 +ld2 [%l7],%f28 +fcmped %f30,%f28; nop; fbne .L80; nop +set .L82,%o0 +call printf; nop +ba .L81; nop +.L80: +set .L83,%o0 +set Radix,%l7 +ld2 [%l7],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +.L81: +set 2,%o0 +set Eight,%l6 +ld2 [%l6],%f30 +set Radix,%l6 +ld2 [%l6],%f28 +faddd %f30,%f30,%f30 +fcmped %f28,%f30; nop; fbug .L86; nop +set 1,%l7 +ba .L87; nop +.L86: +mov %g0,%l7 +.L87: +mov %l7,%o1 +set .L85,%o2 +call TstCond; nop +set 3,%o0 +set Radix,%l5 +ld2 [%l5],%f30 +set Two,%l5 +ld2 [%l5],%f28 +fcmped %f30,%f28; nop; fbue .L93; nop +set .L94,%l5 +ld2 [%l5],%f28 +fcmped %f30,%f28; nop; fbue .L93; nop +set One,%l5 +ld2 [%l5],%f28 +fcmped %f30,%f28; nop; fbne .L90; nop +.L93: +set 1,%l6 +ba .L91; nop +.L90: +mov %g0,%l6 +.L91: +mov %l6,%o1 +set .L89,%o2 +call TstCond; nop +set Milestone,%l4 +set 20,%l3 +st %l3,[%l4] +mov %g0,%o0 +set Half,%l4 +ld2 [%l4],%f30 +set F9,%l4 +ld2 [%l4],%f28 +fsubd %f28,%f30,%f28 +fcmped %f28,%f30; nop; fbuge .L97; nop +set 1,%l5 +ba .L98; nop +.L97: +mov %g0,%l5 +.L98: +mov %l5,%o1 +set .L96,%o2 +call TstCond; nop +set X,%l3 +set F9,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set I,%l2 +set 1,%l1 +st %l1,[%l2] +set Y,%l2 +set Half,%l1 +ld2 [%l1],%f30 +ld2 [%l3],%f28 +fsubd %f28,%f30,%f28 +st2 %f28,[%l2] +set Z,%l3 +ld2 [%l2],%f28 +fsubd %f28,%f30,%f30 +st2 %f30,[%l3] +mov %g0,%o0 +set X,%l3 +ld2 [%l3],%f30 +set One,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbne .L103; nop +set Z,%l3 +ld2 [%l3],%f30 +set Zero,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbne .L101; nop +.L103: +set 1,%l4 +ba .L102; nop +.L101: +mov %g0,%l4 +.L102: +mov %l4,%o1 +set .L100,%o2 +call TstCond; nop +set One,%l3 +ld2 [%l3],%f30 +set U2,%l3 +ld2 [%l3],%f28 +set X,%l3 +faddd %f30,%f28,%f26 +st2 %f26,[%l3] +set I,%l3 +st %g0,[%l3] +set Milestone,%l3 +set 25,%l2 +st %l2,[%l3] +set BMinusU2,%l3 +set Radix,%l2 +ld2 [%l2],%f26 +fsubd %f26,%f30,%f24 +st2 %f24,[%l3] +ld2 [%l3],%f24 +fsubd %f24,%f28,%f28 +faddd %f28,%f30,%f28 +st2 %f28,[%l3] +fcmped %f26,%f30; nop; fbue .L104; nop +set U1,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call log; nop +fmovs %f0,%f30; fmovs %f1,%f31 +std %f30,[%fp+-16] +set Radix,%l3 +ld2 [%l3],%f28 +st %f28,[%sp+4*0+68] +st %f29,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call log; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set X,%l3 +set TwoForty,%l2 +ld2 [%l2],%f28 +fnegs %f28,%f28; fmovs %f29,%f29 +ldd [%fp+-16],%f26 +fmuld %f28,%f26,%f28 +fdivd %f28,%f30,%f30 +st2 %f30,[%l3] +set Half,%l3 +ld2 [%l3],%f30 +set X,%l3 +ld2 [%l3],%f28 +faddd %f30,%f28,%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call floor; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set Y,%l3 +st2 %f30,[%l3] +set X,%l3 +ld2 [%l3],%f30 +set Y,%l3 +ld2 [%l3],%f28 +fsubd %f30,%f28,%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call fabs; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set Four,%l3 +ld2 [%l3],%f28 +fmuld %f30,%f28,%f30 +set One,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbuge .L106; nop +set X,%l3 +set Y,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +.L106: +set Precision,%l3 +set X,%l2 +ld2 [%l2],%f30 +set TwoForty,%l2 +ld2 [%l2],%f28 +fdivd %f30,%f28,%f30 +st2 %f30,[%l3] +set Half,%l2 +ld2 [%l2],%f30 +ld2 [%l3],%f28 +faddd %f30,%f28,%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call floor; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set Y,%l3 +st2 %f30,[%l3] +set Precision,%l3 +ld2 [%l3],%f30 +set Y,%l3 +ld2 [%l3],%f28 +fsubd %f30,%f28,%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call fabs; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set TwoForty,%l3 +ld2 [%l3],%f28 +fmuld %f30,%f28,%f30 +set Half,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbuge .L108; nop +set Precision,%l3 +set Y,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +.L108: +.L104: +set Precision,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-16] +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call floor; nop +fmovs %f0,%f30; fmovs %f1,%f31 +ldd [%fp+-16],%f28 +fcmped %f28,%f30; nop; fbne .L112; nop +set Radix,%l3 +ld2 [%l3],%f30 +set One,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbne .L110; nop +.L112: +set .L113,%o0 +call printf; nop +set .L114,%o0 +call printf; nop +.L110: +set Radix,%l3 +ld2 [%l3],%f30 +set One,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbne .L115; nop +set .L117,%o0 +call printf; nop +ba .L116; nop +.L115: +set .L118,%o0 +set Precision,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +.L116: +set 1,%o0 +set Nine,%l3 +ld2 [%l3],%f30 +set U2,%l3 +ld2 [%l3],%f28 +fmuld %f28,%f30,%f28 +fmuld %f28,%f30,%f30 +set TwoForty,%l3 +ld2 [%l3],%f28 +fmuld %f30,%f28,%f30 +set One,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbuge .L121; nop +set 1,%l3 +st %l3,[%fp+-20] +ba .L122; nop +.L121: +st %g0,[%fp+-20] +.L122: +ld [%fp+-20],%o1 +set .L120,%o2 +call TstCond; nop +set Milestone,%l3 +set 30,%l2 +st %l2,[%l3] +set Four,%l3 +ld2 [%l3],%f30 +set Three,%l3 +ld2 [%l3],%f28 +set One,%l3 +ld2 [%l3],%f26 +fdivd %f26,%f30,%f24 +fdivd %f30,%f28,%f30 +fsubd %f30,%f26,%f30 +fsubd %f30,%f24,%f30 +fmuld %f30,%f28,%f30 +fsubd %f30,%f24,%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call fabs; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set X,%l3 +st2 %f30,[%l3] +.L123: +set Z2,%l3 +set X,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set One,%l1 +ld2 [%l1],%f30 +ld2 [%l3],%f28 +set Half,%l3 +ld2 [%l3],%f26 +fmuld %f26,%f28,%f26 +set ThirtyTwo,%l3 +ld2 [%l3],%f24 +fmuld %f24,%f28,%f24 +fmuld %f24,%f28,%f28 +faddd %f26,%f28,%f28 +faddd %f30,%f28,%f28 +fsubd %f28,%f30,%f30 +st2 %f30,[%l2] +.L124: +set X,%l3 +ld2 [%l3],%f30 +set Z2,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbule .L126; nop +set Zero,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbug .L123; nop +.L126: +set Three,%l3 +ld2 [%l3],%f30 +set Four,%l3 +ld2 [%l3],%f28 +fdivd %f30,%f28,%f26 +set Two,%l3 +ld2 [%l3],%f24 +fdivd %f24,%f30,%f24 +fsubd %f26,%f24,%f26 +fmuld %f26,%f30,%f30 +set One,%l3 +ld2 [%l3],%f26 +fdivd %f26,%f28,%f28 +fsubd %f30,%f28,%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call fabs; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set Z,%l3 +st2 %f30,[%l3] +set Y,%l3 +st2 %f30,[%l3] +set X,%l3 +st2 %f30,[%l3] +.L127: +set Z1,%l3 +set Z,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set One,%l1 +ld2 [%l1],%f30 +set Two,%l1 +ld2 [%l1],%f28 +fdivd %f30,%f28,%f30 +ld2 [%l3],%f28 +set Half,%l3 +ld2 [%l3],%f26 +fmuld %f26,%f28,%f26 +set ThirtyTwo,%l3 +ld2 [%l3],%f24 +fmuld %f24,%f28,%f24 +fmuld %f24,%f28,%f28 +faddd %f26,%f28,%f28 +fsubd %f30,%f28,%f28 +faddd %f28,%f30,%f28 +fsubd %f30,%f28,%f28 +faddd %f28,%f30,%f30 +st2 %f30,[%l2] +.L128: +set Z,%l3 +ld2 [%l3],%f30 +set Z1,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbule .L130; nop +set Zero,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbug .L127; nop +.L130: +.L131: +.L134: +set Y1,%l3 +set Y,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set Half,%l1 +ld2 [%l1],%f30 +ld2 [%l3],%f28 +fmuld %f30,%f28,%f26 +set ThirtyTwo,%l3 +ld2 [%l3],%f24 +fmuld %f24,%f28,%f24 +fmuld %f24,%f28,%f28 +faddd %f26,%f28,%f28 +fsubd %f30,%f28,%f28 +faddd %f28,%f30,%f28 +fsubd %f30,%f28,%f28 +faddd %f28,%f30,%f30 +st2 %f30,[%l2] +.L135: +set Y,%l3 +ld2 [%l3],%f30 +set Y1,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbule .L137; nop +set Zero,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbug .L134; nop +.L137: +set X1,%l3 +set X,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +ld2 [%l3],%f30 +set F9,%l3 +ld2 [%l3],%f28 +set Half,%l3 +ld2 [%l3],%f26 +fmuld %f26,%f30,%f26 +set ThirtyTwo,%l3 +ld2 [%l3],%f24 +fmuld %f24,%f30,%f24 +fmuld %f24,%f30,%f30 +faddd %f26,%f30,%f30 +fsubd %f30,%f28,%f30 +faddd %f30,%f28,%f30 +st2 %f30,[%l2] +.L132: +set X,%l3 +ld2 [%l3],%f30 +set X1,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbule .L138; nop +set Zero,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbug .L131; nop +.L138: +set X1,%l3 +ld2 [%l3],%f30 +set Y1,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbne .L141; nop +set Z1,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L139; nop +.L141: +set 1,%o0 +set .L142,%o1 +call BadCond; nop +set .L143,%o0 +set X1,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +set Y1,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*3+68] +st %f31,[%sp+4*4+68] +ld [%sp+4*3+68],%o3 +ld [%sp+4*4+68],%o4 +set Z1,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*5+68] +st %f31,[%sp+4*6+68] +ld [%sp+4*5+68],%o5 +call printf; nop +set .L144,%o0 +call printf; nop +set .L145,%o0 +call printf; nop +set .L146,%o0 +call notify; nop +set U1,%l3 +ld2 [%l3],%f30 +set X1,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbue .L150; nop +set Y1,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbue .L150; nop +set Z1,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L140; nop +.L150: +set .L151,%o0 +call printf; nop +ba .L140; nop +.L139: +set Z1,%l3 +ld2 [%l3],%f30 +set U1,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbne .L154; nop +set Z2,%l3 +ld2 [%l3],%f30 +set U2,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L152; nop +.L154: +set Z1,%l3 +ld2 [%l3],%f30 +set U1,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbuge .L157; nop +set Z2,%l3 +ld2 [%l3],%f30 +set U2,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbul .L155; nop +.L157: +mov %g0,%o0 +set .L158,%o1 +call BadCond; nop +set .L159,%o0 +call notify; nop +set .L160,%o0 +set U1,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +set Z1,%l3 +ld2 [%l3],%f28 +fsubd %f28,%f30,%f30 +st %f30,[%sp+4*3+68] +st %f31,[%sp+4*4+68] +ld [%sp+4*3+68],%o3 +ld [%sp+4*4+68],%o4 +call printf; nop +set .L161,%o0 +set U2,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +set Z2,%l3 +ld2 [%l3],%f28 +fsubd %f28,%f30,%f30 +st %f30,[%sp+4*3+68] +st %f31,[%sp+4*4+68] +ld [%sp+4*3+68],%o3 +ld [%sp+4*4+68],%o4 +call printf; nop +ba .L156; nop +.L155: +set Zero,%l3 +ld2 [%l3],%f30 +set Z1,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbule .L164; nop +set Z2,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbug .L162; nop +.L164: +set .L165,%o0 +set Radix,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +set .L166,%o0 +call printf; nop +set .L167,%o0 +set Z1,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +set Z2,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*3+68] +st %f31,[%sp+4*4+68] +ld [%sp+4*3+68],%o3 +ld [%sp+4*4+68],%o4 +call printf; nop +set .L168,%o0 +call notify; nop +.L162: +set Z1,%l3 +ld2 [%l3],%f30 +set Z2,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbne .L171; nop +set Zero,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbule .L169; nop +.L171: +set X,%l3 +set Z1,%l2 +ld2 [%l2],%f30 +set U1,%l2 +ld2 [%l2],%f28 +fdivd %f30,%f28,%f30 +st2 %f30,[%l3] +set Y,%l2 +set Z2,%l1 +ld2 [%l1],%f30 +set U2,%l1 +ld2 [%l1],%f28 +fdivd %f30,%f28,%f30 +st2 %f30,[%l2] +ld2 [%l2],%f30 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbule .L172; nop +set X,%l3 +set Y,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +.L172: +set X,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call log; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set Q,%l3 +fnegs %f30,%f30; fmovs %f31,%f31 +st2 %f30,[%l3] +set .L174,%o0 +call printf; nop +set Radix,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call log; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set .L175,%o0 +set Q,%l3 +ld2 [%l3],%f28 +fdivd %f28,%f30,%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +set .L94,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call log; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set .L176,%o0 +set Q,%l3 +ld2 [%l3],%f28 +fdivd %f28,%f30,%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +.L169: +set .L151,%o0 +call printf; nop +.L156: +.L152: +.L140: +call Pause; nop +set Milestone,%l3 +set 35,%l2 +st %l2,[%l3] +set Radix,%l3 +ld2 [%l3],%f30 +set Two,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbul .L177; nop +set X,%l3 +set Radix,%l2 +ld2 [%l2],%f30 +set W,%l2 +ld2 [%l2],%f28 +fmuld %f30,%f30,%f30 +fdivd %f28,%f30,%f30 +st2 %f30,[%l3] +set Y,%l2 +ld2 [%l3],%f30 +set One,%l1 +ld2 [%l1],%f28 +faddd %f30,%f28,%f28 +st2 %f28,[%l2] +set Z,%l1 +ld2 [%l2],%f28 +fsubd %f28,%f30,%f30 +st2 %f30,[%l1] +set T,%l2 +ld2 [%l1],%f30 +set U2,%l1 +ld2 [%l1],%f28 +faddd %f30,%f28,%f26 +st2 %f26,[%l2] +ld2 [%l2],%f26 +fsubd %f26,%f30,%f30 +st2 %f30,[%l3] +mov %g0,%o0 +ld2 [%l3],%f30 +fcmped %f30,%f28; nop; fbne .L181; nop +set 1,%l3 +st %l3,[%fp+-24] +ba .L182; nop +.L181: +st %g0,[%fp+-24] +.L182: +ld [%fp+-24],%o1 +set .L180,%o2 +call TstCond; nop +set X,%l3 +ld2 [%l3],%f30 +set U2,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbne .L183; nop +set .L185,%o0 +call printf; nop +.L183: +.L177: +set .L186,%o0 +call printf; nop +set Y,%l3 +set F9,%l2 +ld2 [%l2],%f30 +set One,%l2 +ld2 [%l2],%f28 +fmuld %f30,%f28,%f26 +st2 %f26,[%l3] +set Z,%l2 +fmuld %f28,%f30,%f26 +st2 %f26,[%l2] +set X,%l1 +set Half,%l0 +ld2 [%l0],%f26 +fsubd %f30,%f26,%f30 +st2 %f30,[%l1] +ld2 [%l1],%f30 +ld2 [%l3],%f24 +fsubd %f24,%f26,%f24 +fsubd %f24,%f30,%f24 +st2 %f24,[%l3] +ld2 [%l2],%f24 +fsubd %f24,%f26,%f26 +fsubd %f26,%f30,%f30 +st2 %f30,[%l2] +set U2,%l3 +ld2 [%l3],%f30 +faddd %f28,%f30,%f26 +st2 %f26,[%l1] +set T,%l3 +ld2 [%l1],%f26 +set Radix,%l2 +ld2 [%l2],%f24 +fmuld %f26,%f24,%f22 +st2 %f22,[%l3] +set R,%l2 +fmuld %f24,%f26,%f26 +st2 %f26,[%l2] +ld2 [%l3],%f26 +fsubd %f26,%f24,%f26 +st2 %f26,[%l1] +fmuld %f24,%f30,%f30 +ld2 [%l1],%f26 +fsubd %f26,%f30,%f26 +st2 %f26,[%l1] +ld2 [%l2],%f26 +fsubd %f26,%f24,%f26 +st2 %f26,[%l3] +ld2 [%l3],%f26 +fsubd %f26,%f30,%f30 +st2 %f30,[%l3] +fsubd %f24,%f28,%f30 +ld2 [%l1],%f28 +fmuld %f28,%f30,%f28 +st2 %f28,[%l1] +ld2 [%l3],%f28 +fmuld %f28,%f30,%f30 +st2 %f30,[%l3] +set Zero,%l3 +ld2 [%l3],%f30 +set X,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L187; nop +set Y,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L187; nop +set Z,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L187; nop +set T,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L187; nop +set GMult,%l3 +set 1,%l2 +st %l2,[%l3] +ba .L188; nop +.L187: +mov %g0,%l3 +set GMult,%l2 +st %l3,[%l2] +set 1,%o0 +mov %l3,%o1 +set .L189,%o2 +call TstCond; nop +.L188: +set Z,%l3 +set Radix,%l2 +ld2 [%l2],%f30 +set U2,%l2 +ld2 [%l2],%f28 +fmuld %f30,%f28,%f30 +st2 %f30,[%l3] +set X,%l2 +ld2 [%l3],%f30 +set One,%l3 +ld2 [%l3],%f28 +faddd %f28,%f30,%f28 +st2 %f28,[%l2] +ld2 [%l2],%f28 +faddd %f28,%f30,%f30 +fmuld %f28,%f28,%f28 +fsubd %f30,%f28,%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call fabs; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set U2,%l3 +ld2 [%l3],%f28 +set Y,%l3 +fsubd %f30,%f28,%f30 +st2 %f30,[%l3] +set X,%l3 +set One,%l2 +ld2 [%l2],%f30 +fsubd %f30,%f28,%f30 +st2 %f30,[%l3] +ld2 [%l3],%f30 +fsubd %f30,%f28,%f28 +fmuld %f30,%f30,%f30 +fsubd %f28,%f30,%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call fabs; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set Z,%l3 +set U1,%l2 +ld2 [%l2],%f28 +fsubd %f30,%f28,%f30 +st2 %f30,[%l3] +mov %g0,%o0 +set Zero,%l3 +ld2 [%l3],%f30 +set Y,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbug .L192; nop +set Z,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbug .L192; nop +set 1,%l3 +st %l3,[%fp+-24] +ba .L193; nop +.L192: +st %g0,[%fp+-24] +.L193: +ld [%fp+-24],%o1 +set .L191,%o2 +call TstCond; nop +set Y,%l3 +set One,%l2 +ld2 [%l2],%f30 +set U2,%l2 +ld2 [%l2],%f28 +fsubd %f30,%f28,%f26 +st2 %f26,[%l3] +set X,%l2 +faddd %f30,%f28,%f28 +st2 %f28,[%l2] +set Z,%l1 +ld2 [%l3],%f28 +fdivd %f30,%f28,%f28 +st2 %f28,[%l1] +ld2 [%l1],%f28 +ld2 [%l2],%f26 +fsubd %f28,%f26,%f28 +st2 %f28,[%l3] +set Three,%l3 +ld2 [%l3],%f28 +fdivd %f30,%f28,%f30 +st2 %f30,[%l2] +set Nine,%l3 +ld2 [%l3],%f30 +fdivd %f28,%f30,%f28 +st2 %f28,[%l1] +ld2 [%l1],%f28 +ld2 [%l2],%f26 +fsubd %f26,%f28,%f26 +st2 %f26,[%l2] +set T,%l3 +set TwentySeven,%l2 +ld2 [%l2],%f26 +fdivd %f30,%f26,%f30 +st2 %f30,[%l3] +ld2 [%l3],%f30 +fsubd %f28,%f30,%f30 +st2 %f30,[%l1] +set 2,%o0 +set Zero,%l3 +ld2 [%l3],%f30 +set X,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L196; nop +set Y,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L196; nop +set Z,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L196; nop +set 1,%l3 +st %l3,[%fp+-28] +ba .L197; nop +.L196: +st %g0,[%fp+-28] +.L197: +ld [%fp+-28],%o1 +set .L195,%o2 +call TstCond; nop +set Y,%l3 +set F9,%l2 +ld2 [%l2],%f30 +set One,%l2 +ld2 [%l2],%f28 +fdivd %f30,%f28,%f26 +st2 %f26,[%l3] +set X,%l2 +set Half,%l1 +ld2 [%l1],%f26 +fsubd %f30,%f26,%f30 +st2 %f30,[%l2] +ld2 [%l3],%f30 +fsubd %f30,%f26,%f30 +ld2 [%l2],%f26 +fsubd %f30,%f26,%f30 +st2 %f30,[%l3] +set U2,%l3 +ld2 [%l3],%f30 +faddd %f28,%f30,%f30 +st2 %f30,[%l2] +set T,%l3 +ld2 [%l2],%f30 +fdivd %f30,%f28,%f28 +st2 %f28,[%l3] +ld2 [%l3],%f28 +fsubd %f28,%f30,%f30 +st2 %f30,[%l2] +set Zero,%l3 +ld2 [%l3],%f30 +set X,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L198; nop +set Y,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L198; nop +set Z,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L198; nop +set GDiv,%l3 +set 1,%l2 +st %l2,[%l3] +ba .L199; nop +.L198: +mov %g0,%l3 +set GDiv,%l2 +st %l3,[%l2] +set 1,%o0 +mov %l3,%o1 +set .L200,%o2 +call TstCond; nop +.L199: +set X,%l3 +set One,%l2 +ld2 [%l2],%f30 +set U2,%l2 +ld2 [%l2],%f28 +faddd %f30,%f28,%f28 +fdivd %f30,%f28,%f30 +st2 %f30,[%l3] +set Y,%l2 +set Half,%l1 +ld2 [%l1],%f30 +ld2 [%l3],%f28 +fsubd %f28,%f30,%f28 +fsubd %f28,%f30,%f30 +st2 %f30,[%l2] +set 1,%o0 +ld2 [%l2],%f30 +set Zero,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbuge .L203; nop +set 1,%l3 +st %l3,[%fp+-32] +ba .L204; nop +.L203: +st %g0,[%fp+-32] +.L204: +ld [%fp+-32],%o1 +set .L202,%o2 +call TstCond; nop +set X,%l3 +set One,%l2 +ld2 [%l2],%f30 +set U2,%l2 +ld2 [%l2],%f28 +fsubd %f30,%f28,%f26 +st2 %f26,[%l3] +set Y,%l2 +set Radix,%l1 +ld2 [%l1],%f26 +fmuld %f26,%f28,%f28 +faddd %f30,%f28,%f30 +st2 %f30,[%l2] +set Z,%l1 +ld2 [%l3],%f30 +fmuld %f30,%f26,%f28 +st2 %f28,[%l1] +set T,%l0 +ld2 [%l2],%f28 +fmuld %f28,%f26,%f24 +st2 %f24,[%l0] +set R,%o5 +ld2 [%l1],%f24 +fdivd %f24,%f26,%f24 +st2 %f24,[%o5] +set StickyBit,%l1 +ld2 [%l0],%f24 +fdivd %f24,%f26,%f26 +st2 %f26,[%l1] +ld2 [%o5],%f26 +fsubd %f26,%f30,%f30 +st2 %f30,[%l3] +ld2 [%l1],%f30 +fsubd %f30,%f28,%f30 +st2 %f30,[%l2] +mov %g0,%o0 +set Zero,%l3 +ld2 [%l3],%f30 +set X,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L207; nop +set Y,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L207; nop +set 1,%l3 +st %l3,[%fp+-36] +ba .L208; nop +.L207: +st %g0,[%fp+-36] +.L208: +ld [%fp+-36],%o1 +set .L206,%o2 +call TstCond; nop +set Y,%l3 +set One,%l2 +ld2 [%l2],%f30 +set U1,%l2 +ld2 [%l2],%f28 +fsubd %f30,%f28,%f28 +st2 %f28,[%l3] +set X,%l2 +set F9,%l1 +ld2 [%l1],%f28 +fsubd %f30,%f28,%f28 +st2 %f28,[%l2] +ld2 [%l3],%f28 +fsubd %f30,%f28,%f30 +st2 %f30,[%l3] +set T,%l3 +set Radix,%l2 +ld2 [%l2],%f30 +set U2,%l2 +ld2 [%l2],%f28 +fsubd %f30,%f28,%f28 +st2 %f28,[%l3] +set Z,%l2 +set BMinusU2,%l1 +ld2 [%l1],%f28 +fsubd %f30,%f28,%f28 +st2 %f28,[%l2] +ld2 [%l3],%f28 +fsubd %f30,%f28,%f30 +st2 %f30,[%l3] +set U1,%l3 +ld2 [%l3],%f30 +set X,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L209; nop +set Y,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L209; nop +set U2,%l3 +ld2 [%l3],%f30 +set Z,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L209; nop +set T,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L209; nop +set GAddSub,%l3 +set 1,%l2 +st %l2,[%l3] +ba .L210; nop +.L209: +mov %g0,%l3 +set GAddSub,%l2 +st %l3,[%l2] +set 1,%o0 +mov %l3,%o1 +set .L211,%o2 +call TstCond; nop +.L210: +set F9,%l3 +ld2 [%l3],%f30 +set One,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L212; nop +fsubd %f30,%f28,%f30 +set Zero,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbul .L212; nop +set 1,%o0 +set .L214,%o1 +call BadCond; nop +set .L215,%o0 +call printf; nop +set .L216,%o0 +call printf; nop +set .L217,%o0 +call printf; nop +.L212: +set GMult,%l3 +ld [%l3],%l3 +cmp %l3,1; bne .L218; nop +set GDiv,%l3 +ld [%l3],%l3 +cmp %l3,1; bne .L218; nop +set GAddSub,%l3 +ld [%l3],%l3 +cmp %l3,1; bne .L218; nop +set .L220,%o0 +call printf; nop +.L218: +set Milestone,%l3 +set 40,%l2 +st %l2,[%l3] +call Pause; nop +set .L221,%o0 +call printf; nop +set RMult,%l2 +st %g0,[%l2] +set RDiv,%l2 +st %g0,[%l2] +set RAddSub,%l2 +st %g0,[%l2] +set Two,%l2 +ld2 [%l2],%f30 +set RadixD2,%l2 +set Radix,%l1 +ld2 [%l1],%f28 +fdivd %f28,%f30,%f28 +st2 %f28,[%l2] +set A1,%l2 +st2 %f30,[%l2] +set Done,%l2 +st %g0,[%l2] +.L222: +set AInvrse,%l3 +set Radix,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +.L225: +set AInvrse,%l3 +ld2 [%l3],%f30 +set X,%l2 +st2 %f30,[%l2] +set A1,%l2 +ld2 [%l2],%f28 +fdivd %f30,%f28,%f30 +st2 %f30,[%l3] +.L226: +set AInvrse,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call floor; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set AInvrse,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L225; nop +set X,%l3 +ld2 [%l3],%f30 +set One,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L231; nop +set A1,%l3 +ld2 [%l3],%f30 +set Three,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbule .L229; nop +.L231: +set 1,%l3 +st %l3,[%fp+-40] +ba .L230; nop +.L229: +st %g0,[%fp+-40] +.L230: +set Done,%l3 +ld [%fp+-40],%l2 +st %l2,[%l3] +set Done,%l3 +ld [%l3],%l3 +cmp %l3,0; bne .L232; nop +set A1,%l3 +set Nine,%l2 +ld2 [%l2],%f30 +set One,%l2 +ld2 [%l2],%f28 +faddd %f30,%f28,%f30 +st2 %f30,[%l3] +.L232: +.L223: +set Done,%l3 +ld [%l3],%l3 +cmp %l3,0; be .L222; nop +set X,%l3 +ld2 [%l3],%f30 +set One,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbne .L234; nop +set A1,%l3 +set Radix,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +.L234: +set AInvrse,%l3 +set A1,%l2 +ld2 [%l2],%f30 +set One,%l2 +ld2 [%l2],%f28 +fdivd %f28,%f30,%f28 +st2 %f28,[%l3] +set X,%l2 +st2 %f30,[%l2] +set Y,%l2 +ld2 [%l3],%f30 +st2 %f30,[%l2] +set Done,%l3 +st %g0,[%l3] +.L236: +set Z,%l3 +set Half,%l2 +ld2 [%l2],%f30 +set X,%l2 +ld2 [%l2],%f28 +set Y,%l2 +ld2 [%l2],%f26 +fmuld %f28,%f26,%f28 +fsubd %f28,%f30,%f28 +st2 %f28,[%l3] +mov %g0,%o0 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L241; nop +set 1,%l3 +st %l3,[%fp+-40] +ba .L242; nop +.L241: +st %g0,[%fp+-40] +.L242: +ld [%fp+-40],%o1 +set .L240,%o2 +call TstCond; nop +set X,%l3 +ld2 [%l3],%f30 +set Radix,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbne .L244; nop +set 1,%l3 +st %l3,[%fp+-44] +ba .L245; nop +.L244: +st %g0,[%fp+-44] +.L245: +set Done,%l3 +ld [%fp+-44],%l2 +st %l2,[%l3] +set X,%l3 +set Radix,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set Y,%l2 +set One,%l1 +ld2 [%l1],%f30 +ld2 [%l3],%f28 +fdivd %f30,%f28,%f30 +st2 %f30,[%l2] +.L237: +set Done,%l3 +ld [%l3],%l3 +cmp %l3,0; be .L236; nop +set Y2,%l3 +set One,%l2 +ld2 [%l2],%f30 +set U2,%l2 +ld2 [%l2],%f28 +faddd %f30,%f28,%f26 +st2 %f26,[%l3] +set Y1,%l2 +fsubd %f30,%f28,%f30 +st2 %f30,[%l2] +set X,%l1 +set OneAndHalf,%l0 +ld2 [%l0],%f30 +fsubd %f30,%f28,%f26 +st2 %f26,[%l1] +set Y,%l0 +faddd %f30,%f28,%f26 +st2 %f26,[%l0] +set Z,%o5 +ld2 [%l1],%f26 +ld2 [%l3],%f24 +fsubd %f26,%f28,%f22 +fmuld %f22,%f24,%f22 +st2 %f22,[%o5] +set T,%l3 +ld2 [%l0],%f22 +ld2 [%l2],%f20 +fmuld %f22,%f20,%f18 +st2 %f18,[%l3] +ld2 [%o5],%f18 +fsubd %f18,%f26,%f18 +st2 %f18,[%o5] +ld2 [%l3],%f18 +fsubd %f18,%f26,%f18 +st2 %f18,[%l3] +fmuld %f26,%f24,%f26 +st2 %f26,[%l1] +faddd %f22,%f28,%f28 +fmuld %f28,%f20,%f28 +st2 %f28,[%l0] +ld2 [%l1],%f28 +fsubd %f28,%f30,%f28 +st2 %f28,[%l1] +ld2 [%l0],%f28 +fsubd %f28,%f30,%f30 +st2 %f30,[%l0] +set Zero,%l3 +ld2 [%l3],%f30 +set X,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L246; nop +set Y,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L246; nop +set Z,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L246; nop +set T,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbug .L246; nop +set X,%l3 +set OneAndHalf,%l2 +ld2 [%l2],%f30 +set U2,%l2 +ld2 [%l2],%f28 +faddd %f30,%f28,%f26 +set Y2,%l2 +ld2 [%l2],%f24 +fmuld %f26,%f24,%f22 +st2 %f22,[%l3] +set Y,%l2 +fsubd %f30,%f28,%f30 +fsubd %f30,%f28,%f22 +st2 %f22,[%l2] +set Z,%l1 +faddd %f26,%f28,%f26 +st2 %f26,[%l1] +set T,%l0 +set Y1,%o5 +ld2 [%o5],%f26 +fmuld %f30,%f26,%f30 +st2 %f30,[%l0] +ld2 [%l1],%f30 +faddd %f30,%f28,%f22 +ld2 [%l3],%f20 +fsubd %f20,%f22,%f20 +st2 %f20,[%l3] +set StickyBit,%l3 +ld2 [%l2],%f20 +fmuld %f20,%f26,%f18 +st2 %f18,[%l3] +set S,%o4 +fmuld %f30,%f24,%f30 +st2 %f30,[%o4] +ld2 [%l0],%f30 +fsubd %f30,%f20,%f30 +st2 %f30,[%l0] +fsubd %f28,%f20,%f30 +ld2 [%l3],%f20 +faddd %f30,%f20,%f30 +st2 %f30,[%l2] +ld2 [%o4],%f30 +faddd %f22,%f28,%f22 +fsubd %f30,%f22,%f30 +st2 %f30,[%l1] +faddd %f24,%f28,%f30 +fmuld %f30,%f26,%f30 +st2 %f30,[%l3] +fmuld %f24,%f26,%f30 +st2 %f30,[%o5] +ld2 [%l3],%f30 +fsubd %f30,%f24,%f30 +st2 %f30,[%l3] +ld2 [%o5],%f30 +set Half,%l3 +ld2 [%l3],%f28 +fsubd %f30,%f28,%f30 +st2 %f30,[%o5] +set Zero,%l3 +ld2 [%l3],%f30 +set X,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L248; nop +set Y,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L248; nop +set Z,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L248; nop +set T,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L248; nop +set StickyBit,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L248; nop +set Y1,%l3 +ld2 [%l3],%f30 +set Half,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbne .L248; nop +set RMult,%l3 +set 1,%l2 +st %l2,[%l3] +set .L250,%o0 +call printf; nop +ba .L249; nop +.L248: +set U2,%l3 +ld2 [%l3],%f30 +set Zero,%l3 +ld2 [%l3],%f28 +set X,%l3 +ld2 [%l3],%f26 +faddd %f26,%f30,%f26 +fcmped %f26,%f28; nop; fbne .L251; nop +set Y,%l3 +ld2 [%l3],%f26 +fcmped %f26,%f28; nop; fbuge .L251; nop +set Z,%l3 +ld2 [%l3],%f26 +faddd %f26,%f30,%f26 +fcmped %f26,%f28; nop; fbne .L251; nop +set T,%l3 +ld2 [%l3],%f26 +fcmped %f26,%f28; nop; fbuge .L251; nop +set StickyBit,%l3 +ld2 [%l3],%f26 +faddd %f26,%f30,%f30 +fcmped %f30,%f28; nop; fbne .L251; nop +set Y1,%l3 +ld2 [%l3],%f30 +set Half,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbuge .L251; nop +set RMult,%l3 +set 2,%l2 +st %l2,[%l3] +set .L253,%o0 +call printf; nop +ba .L252; nop +.L251: +set .L254,%o0 +call printf; nop +.L252: +.L249: +set RMult,%l3 +ld [%l3],%l3 +cmp %l3,1; bne .L247; nop +set GMult,%l3 +ld [%l3],%l3 +cmp %l3,0; bne .L247; nop +set .L257,%o0 +call notify; nop +ba .L247; nop +.L246: +set .L254,%o0 +call printf; nop +.L247: +set Milestone,%l3 +set 45,%l2 +st %l2,[%l3] +set Y2,%l3 +set One,%l2 +ld2 [%l2],%f30 +set U2,%l2 +ld2 [%l2],%f28 +faddd %f30,%f28,%f26 +st2 %f26,[%l3] +set Y1,%l2 +fsubd %f30,%f28,%f30 +st2 %f30,[%l2] +set Z,%l1 +set OneAndHalf,%l0 +ld2 [%l0],%f30 +faddd %f30,%f28,%f26 +faddd %f26,%f28,%f24 +st2 %f24,[%l1] +set X,%l0 +ld2 [%l1],%f24 +ld2 [%l3],%f22 +fdivd %f24,%f22,%f20 +st2 %f20,[%l0] +set T,%l3 +fsubd %f30,%f28,%f20 +fsubd %f20,%f28,%f20 +st2 %f20,[%l3] +set Y,%o5 +ld2 [%l3],%f20 +ld2 [%l2],%f18 +fsubd %f20,%f28,%f16 +fdivd %f16,%f18,%f16 +st2 %f16,[%o5] +faddd %f24,%f28,%f24 +fdivd %f24,%f22,%f24 +st2 %f24,[%l1] +ld2 [%l0],%f24 +fsubd %f24,%f30,%f24 +st2 %f24,[%l0] +ld2 [%o5],%f24 +fsubd %f24,%f20,%f24 +st2 %f24,[%o5] +fdivd %f20,%f18,%f24 +st2 %f24,[%l3] +ld2 [%l1],%f24 +fsubd %f24,%f26,%f26 +st2 %f26,[%l1] +fsubd %f28,%f30,%f30 +ld2 [%l3],%f28 +faddd %f30,%f28,%f30 +st2 %f30,[%l3] +set Zero,%l3 +ld2 [%l3],%f30 +set X,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbug .L258; nop +set Y,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbug .L258; nop +set Z,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbug .L258; nop +set T,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbug .L258; nop +set X,%l3 +set OneAndHalf,%l2 +ld2 [%l2],%f30 +set Y2,%l2 +ld2 [%l2],%f28 +fdivd %f30,%f28,%f26 +st2 %f26,[%l3] +set Y,%l1 +set U2,%l0 +ld2 [%l0],%f26 +fsubd %f30,%f26,%f24 +st2 %f24,[%l1] +set Z,%l0 +faddd %f30,%f26,%f24 +st2 %f24,[%l0] +ld2 [%l1],%f24 +ld2 [%l3],%f22 +fsubd %f22,%f24,%f22 +st2 %f22,[%l3] +set T,%l3 +set Y1,%o5 +ld2 [%o5],%f22 +fdivd %f30,%f22,%f20 +st2 %f20,[%l3] +fdivd %f24,%f22,%f24 +st2 %f24,[%l1] +ld2 [%l0],%f24 +ld2 [%l3],%f22 +faddd %f24,%f26,%f20 +fsubd %f22,%f20,%f22 +st2 %f22,[%l3] +ld2 [%l1],%f22 +fsubd %f22,%f24,%f22 +st2 %f22,[%l1] +fdivd %f24,%f28,%f24 +st2 %f24,[%l0] +faddd %f28,%f26,%f26 +fdivd %f26,%f28,%f26 +st2 %f26,[%o5] +ld2 [%l0],%f26 +fsubd %f26,%f30,%f30 +st2 %f30,[%l0] +ld2 [%o5],%f30 +fsubd %f30,%f28,%f30 +st2 %f30,[%l2] +set F9,%l3 +ld2 [%l3],%f30 +set U1,%l3 +ld2 [%l3],%f28 +fsubd %f30,%f28,%f28 +fdivd %f28,%f30,%f30 +st2 %f30,[%o5] +set Zero,%l3 +ld2 [%l3],%f30 +set X,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L260; nop +set Y,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L260; nop +set Z,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L260; nop +set T,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L260; nop +set Y2,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L260; nop +fcmped %f28,%f30; nop; fbne .L260; nop +set Half,%l3 +ld2 [%l3],%f30 +set Y1,%l3 +ld2 [%l3],%f28 +fsubd %f28,%f30,%f28 +set F9,%l3 +ld2 [%l3],%f26 +fsubd %f26,%f30,%f30 +fcmped %f28,%f30; nop; fbne .L260; nop +set RDiv,%l3 +set 1,%l2 +st %l2,[%l3] +set .L262,%o0 +call printf; nop +set GDiv,%l3 +ld [%l3],%l3 +cmp %l3,0; bne .L261; nop +set .L265,%o0 +call notify; nop +ba .L261; nop +.L260: +set Zero,%l3 +ld2 [%l3],%f30 +set X,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbuge .L266; nop +set Y,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbuge .L266; nop +set Z,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbuge .L266; nop +set T,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbuge .L266; nop +set Y2,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbuge .L266; nop +set Half,%l3 +ld2 [%l3],%f30 +set Y1,%l3 +ld2 [%l3],%f28 +fsubd %f28,%f30,%f28 +set F9,%l3 +ld2 [%l3],%f26 +fsubd %f26,%f30,%f30 +fcmped %f28,%f30; nop; fbuge .L266; nop +set RDiv,%l3 +set 2,%l2 +st %l2,[%l3] +set .L268,%o0 +call printf; nop +.L266: +.L261: +.L258: +set RDiv,%l3 +ld [%l3],%l3 +cmp %l3,0; bne .L269; nop +set .L271,%o0 +call printf; nop +.L269: +set BInvrse,%l3 +set Radix,%l2 +ld2 [%l2],%f30 +set One,%l2 +ld2 [%l2],%f28 +fdivd %f28,%f30,%f28 +st2 %f28,[%l3] +mov %g0,%o0 +set Half,%l2 +ld2 [%l2],%f28 +ld2 [%l3],%f26 +fmuld %f26,%f30,%f30 +fsubd %f30,%f28,%f30 +fcmped %f30,%f28; nop; fbne .L274; nop +set 1,%l3 +st %l3,[%fp+-40] +ba .L275; nop +.L274: +st %g0,[%fp+-40] +.L275: +ld [%fp+-40],%o1 +set .L273,%o2 +call TstCond; nop +set Milestone,%l3 +set 50,%l2 +st %l2,[%l3] +mov %g0,%o0 +set Half,%l3 +ld2 [%l3],%f30 +set F9,%l3 +ld2 [%l3],%f28 +set U1,%l3 +ld2 [%l3],%f26 +faddd %f28,%f26,%f28 +fsubd %f28,%f30,%f28 +fcmped %f28,%f30; nop; fbne .L278; nop +set One,%l3 +ld2 [%l3],%f30 +set BMinusU2,%l3 +ld2 [%l3],%f28 +set U2,%l3 +ld2 [%l3],%f26 +faddd %f28,%f26,%f28 +fsubd %f28,%f30,%f28 +set Radix,%l3 +ld2 [%l3],%f26 +fsubd %f26,%f30,%f30 +fcmped %f28,%f30; nop; fbne .L278; nop +set 1,%l3 +st %l3,[%fp+-44] +ba .L279; nop +.L278: +st %g0,[%fp+-44] +.L279: +ld [%fp+-44],%o1 +set .L277,%o2 +call TstCond; nop +set X,%l3 +set One,%l2 +ld2 [%l2],%f30 +set U1,%l2 +ld2 [%l2],%f28 +fmuld %f28,%f28,%f28 +fsubd %f30,%f28,%f28 +st2 %f28,[%l3] +set Y,%l2 +set U2,%l1 +ld2 [%l1],%f28 +fsubd %f30,%f28,%f26 +fmuld %f28,%f26,%f28 +faddd %f30,%f28,%f28 +st2 %f28,[%l2] +set Z,%l1 +set Half,%l0 +ld2 [%l0],%f28 +set F9,%l0 +ld2 [%l0],%f26 +fsubd %f26,%f28,%f26 +st2 %f26,[%l1] +ld2 [%l3],%f26 +fsubd %f26,%f28,%f28 +ld2 [%l1],%f26 +fsubd %f28,%f26,%f28 +st2 %f28,[%l3] +ld2 [%l2],%f28 +fsubd %f28,%f30,%f30 +st2 %f30,[%l2] +set Zero,%l3 +ld2 [%l3],%f30 +set X,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L280; nop +set Y,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L280; nop +set RAddSub,%l3 +set 2,%l2 +st %l2,[%l3] +set .L282,%o0 +call printf; nop +.L280: +set GAddSub,%l3 +ld [%l3],%l3 +cmp %l3,1; bne .L283; nop +set X,%l3 +set Half,%l2 +ld2 [%l2],%f30 +set U2,%l2 +ld2 [%l2],%f28 +faddd %f30,%f28,%f26 +fmuld %f26,%f28,%f26 +st2 %f26,[%l3] +set Y,%l2 +fsubd %f30,%f28,%f30 +fmuld %f30,%f28,%f30 +st2 %f30,[%l2] +set One,%l1 +ld2 [%l1],%f30 +ld2 [%l3],%f26 +faddd %f30,%f26,%f26 +st2 %f26,[%l3] +ld2 [%l2],%f26 +faddd %f30,%f26,%f26 +st2 %f26,[%l2] +faddd %f30,%f28,%f28 +ld2 [%l3],%f26 +fsubd %f28,%f26,%f28 +st2 %f28,[%l3] +ld2 [%l2],%f28 +fsubd %f30,%f28,%f30 +st2 %f30,[%l2] +set Zero,%l3 +ld2 [%l3],%f30 +set X,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L285; nop +set Y,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L285; nop +set X,%l3 +set Half,%l2 +ld2 [%l2],%f30 +set U2,%l2 +ld2 [%l2],%f28 +set U1,%l2 +ld2 [%l2],%f26 +faddd %f30,%f28,%f24 +fmuld %f24,%f26,%f24 +st2 %f24,[%l3] +set Y,%l2 +fsubd %f30,%f28,%f30 +fmuld %f30,%f26,%f30 +st2 %f30,[%l2] +set One,%l1 +ld2 [%l1],%f30 +ld2 [%l3],%f28 +fsubd %f30,%f28,%f28 +st2 %f28,[%l3] +ld2 [%l2],%f28 +fsubd %f30,%f28,%f28 +st2 %f28,[%l2] +set F9,%l1 +ld2 [%l1],%f28 +ld2 [%l3],%f26 +fsubd %f28,%f26,%f28 +st2 %f28,[%l3] +ld2 [%l2],%f28 +fsubd %f30,%f28,%f30 +st2 %f30,[%l2] +set Zero,%l3 +ld2 [%l3],%f30 +set X,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L287; nop +set Y,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L287; nop +set RAddSub,%l3 +set 1,%l2 +st %l2,[%l3] +set .L289,%o0 +call printf; nop +set GAddSub,%l3 +ld [%l3],%l3 +cmp %l3,0; bne .L284; nop +set .L292,%o0 +call notify; nop +ba .L284; nop +.L287: +set .L293,%o0 +call printf; nop +ba .L284; nop +.L285: +set .L293,%o0 +call printf; nop +ba .L284; nop +.L283: +set .L293,%o0 +call printf; nop +.L284: +set One,%l3 +ld2 [%l3],%f30 +set S,%l3 +st2 %f30,[%l3] +set X,%l3 +set Half,%l2 +ld2 [%l2],%f28 +faddd %f30,%f28,%f26 +fmuld %f28,%f26,%f26 +faddd %f30,%f26,%f26 +st2 %f26,[%l3] +set Y,%l2 +set U2,%l1 +ld2 [%l1],%f26 +faddd %f30,%f26,%f30 +fmuld %f30,%f28,%f30 +st2 %f30,[%l2] +set Z,%l1 +ld2 [%l3],%f30 +ld2 [%l2],%f28 +fsubd %f30,%f28,%f26 +st2 %f26,[%l1] +set T,%l3 +fsubd %f28,%f30,%f30 +st2 %f30,[%l3] +set StickyBit,%l2 +ld2 [%l1],%f30 +ld2 [%l3],%f28 +faddd %f30,%f28,%f30 +st2 %f30,[%l2] +ld2 [%l2],%f30 +set Zero,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L294; nop +set S,%l3 +set Zero,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set 3,%o0 +set .L296,%o1 +call BadCond; nop +.L294: +set StickyBit,%l3 +set Zero,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set GMult,%l3 +ld [%l3],%l3 +cmp %l3,1; bne .L297; nop +set GDiv,%l3 +ld [%l3],%l3 +cmp %l3,1; bne .L297; nop +set GAddSub,%l3 +ld [%l3],%l3 +cmp %l3,1; bne .L297; nop +set RMult,%l3 +ld [%l3],%l3 +cmp %l3,1; bne .L297; nop +set RDiv,%l3 +ld [%l3],%l3 +cmp %l3,1; bne .L297; nop +set RAddSub,%l3 +ld [%l3],%l3 +cmp %l3,1; bne .L297; nop +set RadixD2,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call floor; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set RadixD2,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbne .L297; nop +set .L299,%o0 +call printf; nop +set X,%l3 +set Half,%l2 +ld2 [%l2],%f30 +set U2,%l2 +ld2 [%l2],%f28 +set U1,%l2 +ld2 [%l2],%f26 +faddd %f30,%f26,%f26 +fmuld %f26,%f28,%f26 +st2 %f26,[%l3] +set Y,%l2 +fmuld %f30,%f28,%f30 +st2 %f30,[%l2] +set One,%l1 +ld2 [%l1],%f30 +set Z,%l1 +ld2 [%l2],%f28 +faddd %f30,%f28,%f28 +st2 %f28,[%l1] +set T,%l2 +ld2 [%l3],%f28 +faddd %f30,%f28,%f30 +st2 %f30,[%l2] +set One,%l3 +ld2 [%l3],%f30 +set Z,%l3 +ld2 [%l3],%f28 +fsubd %f28,%f30,%f28 +set Zero,%l3 +ld2 [%l3],%f26 +fcmped %f28,%f26; nop; fbug .L300; nop +set T,%l3 +ld2 [%l3],%f28 +fsubd %f28,%f30,%f30 +set U2,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbul .L300; nop +set Z,%l3 +set Y,%l2 +set T,%l1 +ld2 [%l1],%f30 +ld2 [%l2],%f28 +faddd %f30,%f28,%f30 +st2 %f30,[%l3] +ld2 [%l3],%f30 +set X,%l3 +ld2 [%l3],%f28 +fsubd %f30,%f28,%f30 +st2 %f30,[%l2] +set T,%l3 +ld2 [%l3],%f30 +set Z,%l3 +ld2 [%l3],%f28 +fsubd %f28,%f30,%f28 +set U2,%l3 +ld2 [%l3],%f26 +fcmped %f28,%f26; nop; fbul .L302; nop +set Y,%l3 +ld2 [%l3],%f28 +fsubd %f28,%f30,%f30 +set Zero,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbne .L302; nop +set X,%l3 +set Half,%l2 +ld2 [%l2],%f30 +set U1,%l2 +ld2 [%l2],%f28 +faddd %f30,%f28,%f26 +fmuld %f26,%f28,%f26 +st2 %f26,[%l3] +set Y,%l2 +fmuld %f30,%f28,%f30 +st2 %f30,[%l2] +set One,%l1 +ld2 [%l1],%f30 +set Z,%l1 +ld2 [%l2],%f28 +fsubd %f30,%f28,%f28 +st2 %f28,[%l1] +set T,%l2 +ld2 [%l3],%f28 +fsubd %f30,%f28,%f30 +st2 %f30,[%l2] +set Zero,%l3 +ld2 [%l3],%f30 +set Z,%l3 +ld2 [%l3],%f28 +set One,%l3 +ld2 [%l3],%f26 +fsubd %f28,%f26,%f28 +fcmped %f28,%f30; nop; fbne .L304; nop +set T,%l3 +ld2 [%l3],%f28 +set F9,%l3 +ld2 [%l3],%f26 +fsubd %f28,%f26,%f28 +fcmped %f28,%f30; nop; fbne .L304; nop +set Z,%l3 +set U1,%l2 +ld2 [%l2],%f30 +set Half,%l2 +ld2 [%l2],%f28 +fsubd %f28,%f30,%f28 +fmuld %f28,%f30,%f30 +st2 %f30,[%l3] +set F9,%l2 +ld2 [%l2],%f30 +set T,%l2 +ld2 [%l3],%f28 +fsubd %f30,%f28,%f28 +st2 %f28,[%l2] +set Q,%l3 +set Y,%l2 +ld2 [%l2],%f28 +fsubd %f30,%f28,%f30 +st2 %f30,[%l3] +set F9,%l3 +ld2 [%l3],%f30 +set Zero,%l3 +ld2 [%l3],%f28 +set T,%l3 +ld2 [%l3],%f26 +fsubd %f26,%f30,%f26 +fcmped %f26,%f28; nop; fbne .L306; nop +set U1,%l3 +ld2 [%l3],%f26 +fsubd %f30,%f26,%f30 +set Q,%l3 +ld2 [%l3],%f26 +fsubd %f30,%f26,%f30 +fcmped %f30,%f28; nop; fbne .L306; nop +set Z,%l3 +set One,%l2 +ld2 [%l2],%f30 +set U2,%l2 +ld2 [%l2],%f28 +set OneAndHalf,%l2 +ld2 [%l2],%f26 +faddd %f30,%f28,%f24 +fmuld %f24,%f26,%f24 +st2 %f24,[%l3] +set T,%l2 +faddd %f26,%f28,%f26 +ld2 [%l3],%f24 +fsubd %f26,%f24,%f26 +faddd %f26,%f28,%f26 +st2 %f26,[%l2] +set X,%l2 +set Radix,%l1 +ld2 [%l1],%f26 +set Half,%l1 +ld2 [%l1],%f24 +fdivd %f24,%f26,%f24 +faddd %f30,%f24,%f24 +st2 %f24,[%l2] +set Y,%l1 +fmuld %f26,%f28,%f28 +faddd %f30,%f28,%f30 +st2 %f30,[%l1] +ld2 [%l2],%f30 +ld2 [%l1],%f28 +fmuld %f30,%f28,%f30 +st2 %f30,[%l3] +set Zero,%l3 +ld2 [%l3],%f30 +set T,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L308; nop +set X,%l3 +ld2 [%l3],%f28 +set Radix,%l3 +ld2 [%l3],%f26 +set U2,%l3 +ld2 [%l3],%f24 +fmuld %f26,%f24,%f26 +faddd %f28,%f26,%f28 +set Z,%l3 +ld2 [%l3],%f26 +fsubd %f28,%f26,%f28 +fcmped %f28,%f30; nop; fbne .L308; nop +set Radix,%l3 +ld2 [%l3],%f30 +set Two,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L310; nop +set X,%l3 +set Two,%l2 +ld2 [%l2],%f30 +set U2,%l2 +ld2 [%l2],%f28 +faddd %f30,%f28,%f28 +st2 %f28,[%l3] +set Y,%l2 +ld2 [%l3],%f28 +fdivd %f28,%f30,%f30 +st2 %f30,[%l2] +ld2 [%l2],%f30 +set One,%l3 +ld2 [%l3],%f28 +fsubd %f30,%f28,%f30 +set Zero,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbne .L311; nop +set StickyBit,%l3 +set S,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +ba .L311; nop +.L310: +set StickyBit,%l3 +set S,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +.L311: +.L308: +.L306: +.L304: +.L302: +.L300: +.L297: +set StickyBit,%l3 +ld2 [%l3],%f30 +set One,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbne .L314; nop +set .L316,%o0 +call printf; nop +ba .L315; nop +.L314: +set .L317,%o0 +call printf; nop +.L315: +set 3,%o0 +set GMult,%l2 +ld [%l2],%l2 +cmp %l2,%g0; be .L320; nop +set GDiv,%l2 +ld [%l2],%l2 +cmp %l2,%g0; be .L320; nop +set GAddSub,%l2 +ld [%l2],%l2 +cmp %l2,%g0; be .L320; nop +set RMult,%l2 +ld [%l2],%l2 +cmp %l2,%g0; be .L320; nop +set RDiv,%l2 +ld [%l2],%l2 +cmp %l2,%g0; be .L320; nop +set RAddSub,%l2 +ld [%l2],%l2 +cmp %l2,%g0; be .L320; nop +set 1,%l3 +st %l3,[%fp+-48] +ba .L321; nop +.L320: +st %g0,[%fp+-48] +.L321: +ld [%fp+-48],%o1 +set .L319,%o2 +call TstCond; nop +set Milestone,%l3 +set 60,%l2 +st %l2,[%l3] +set .L45,%o0 +call printf; nop +set .L322,%o0 +call printf; nop +set .L323,%o0 +set NoTrials,%l3 +ld [%l3],%o1 +call printf; nop +set .L324,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call sqrt; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set Random9,%l3 +st2 %f30,[%l3] +set Random1,%l3 +set Third,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set I,%l3 +set 1,%l2 +st %l2,[%l3] +.L325: +call Random; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set X,%l3 +st2 %f30,[%l3] +call Random; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set Y,%l3 +st2 %f30,[%l3] +set Z9,%l3 +set Y,%l2 +ld2 [%l2],%f30 +set X,%l2 +ld2 [%l2],%f28 +fmuld %f30,%f28,%f26 +st2 %f26,[%l3] +set Z,%l2 +fmuld %f28,%f30,%f30 +st2 %f30,[%l2] +ld2 [%l2],%f30 +ld2 [%l3],%f28 +fsubd %f30,%f28,%f30 +st2 %f30,[%l3] +set I,%l3 +ld [%l3],%l2 +add %l2,1,%l2 +st %l2,[%l3] +.L326: +set I,%l3 +ld [%l3],%l3 +set NoTrials,%l2 +ld [%l2],%l2 +cmp %l3,%l2; bg .L328; nop +set Z9,%l3 +ld2 [%l3],%f30 +set Zero,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L325; nop +.L328: +set I,%l3 +ld [%l3],%l3 +set NoTrials,%l2 +ld [%l2],%l2 +cmp %l3,%l2; bne .L329; nop +set Random1,%l3 +set One,%l2 +ld2 [%l2],%f30 +set Half,%l2 +ld2 [%l2],%f28 +set Three,%l2 +ld2 [%l2],%f26 +fdivd %f28,%f26,%f28 +faddd %f30,%f28,%f28 +st2 %f28,[%l3] +set Random2,%l2 +set U2,%l1 +ld2 [%l1],%f26 +set U1,%l1 +ld2 [%l1],%f24 +faddd %f26,%f24,%f26 +faddd %f26,%f30,%f30 +st2 %f30,[%l2] +ld2 [%l3],%f26 +ld2 [%l2],%f24 +set Z,%l3 +fmuld %f26,%f24,%f22 +st2 %f22,[%l3] +set Y,%l3 +fmuld %f24,%f26,%f26 +st2 %f26,[%l3] +fmuld %f28,%f30,%f30 +set Z9,%l3 +fsubd %f30,%f30,%f30 +st2 %f30,[%l3] +.L329: +set I,%l3 +ld [%l3],%l3 +set NoTrials,%l2 +ld [%l2],%l2 +cmp %l3,%l2; be .L331; nop +set Z9,%l3 +ld2 [%l3],%f30 +set Zero,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L331; nop +set 2,%o0 +set .L333,%o1 +call BadCond; nop +ba .L332; nop +.L331: +set .L334,%o0 +set NoTrials,%l3 +ld [%l3],%o1 +call printf; nop +.L332: +set Milestone,%l3 +set 70,%l2 +st %l2,[%l3] +set .L335,%o0 +call printf; nop +set Zero,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-64] +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call sqrt; nop +fmovs %f0,%f30; fmovs %f1,%f31 +ldd [%fp+-64],%f28 +fcmped %f28,%f30; nop; fbne .L338; nop +set Zero,%l3 +ld2 [%l3],%f30 +fnegs %f30,%f30; fmovs %f31,%f31 +std %f30,[%fp+-72] +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call sqrt; nop +fmovs %f0,%f30; fmovs %f1,%f31 +ldd [%fp+-72],%f28 +fcmped %f28,%f30; nop; fbne .L338; nop +set One,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-80] +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call sqrt; nop +fmovs %f0,%f30; fmovs %f1,%f31 +ldd [%fp+-80],%f28 +fcmped %f28,%f30; nop; fbne .L338; nop +set 1,%l3 +st %l3,[%fp+-52] +ba .L339; nop +.L338: +st %g0,[%fp+-52] +.L339: +mov %g0,%o0 +ld [%fp+-52],%o1 +set .L337,%o2 +call TstCond; nop +set Zero,%l3 +ld2 [%l3],%f30 +set MinSqEr,%l3 +st2 %f30,[%l3] +set MaxSqEr,%l3 +st2 %f30,[%l3] +set J,%l3 +st2 %f30,[%l3] +set X,%l3 +set Radix,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set OneUlp,%l3 +set U2,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set 1,%o0 +call SqXMinX; nop +set BInvrse,%l3 +ld2 [%l3],%f30 +set X,%l3 +st2 %f30,[%l3] +set OneUlp,%l3 +set U1,%l2 +ld2 [%l2],%f28 +fmuld %f30,%f28,%f30 +st2 %f30,[%l3] +set 1,%o0 +call SqXMinX; nop +set U1,%l3 +ld2 [%l3],%f30 +set X,%l3 +st2 %f30,[%l3] +set OneUlp,%l3 +fmuld %f30,%f30,%f30 +st2 %f30,[%l3] +set 1,%o0 +call SqXMinX; nop +set J,%l3 +ld2 [%l3],%f30 +set Zero,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L340; nop +call Pause; nop +.L340: +set .L342,%o0 +set NoTrials,%l3 +ld [%l3],%o1 +call printf; nop +set J,%l3 +set Zero,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set X,%l3 +set Two,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set Radix,%l3 +ld2 [%l3],%f30 +set Y,%l3 +st2 %f30,[%l3] +set One,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L343; nop +.L345: +set Y,%l3 +ld2 [%l3],%f30 +set X,%l2 +st2 %f30,[%l2] +set Radix,%l2 +ld2 [%l2],%f28 +fmuld %f28,%f30,%f30 +st2 %f30,[%l3] +.L346: +set Y,%l3 +ld2 [%l3],%f30 +set X,%l3 +ld2 [%l3],%f28 +fsubd %f30,%f28,%f30 +set NoTrials,%l3 +ld [%l3],%l3 +st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +fcmped %f30,%f28; nop; fbul .L345; nop +.L343: +set OneUlp,%l3 +set X,%l2 +ld2 [%l2],%f30 +set U2,%l2 +ld2 [%l2],%f28 +fmuld %f30,%f28,%f30 +st2 %f30,[%l3] +set I,%l3 +set 1,%l2 +st %l2,[%l3] +ba .L349; nop +.L348: +set X,%l3 +ld2 [%l3],%f30 +set One,%l2 +ld2 [%l2],%f28 +faddd %f30,%f28,%f30 +st2 %f30,[%l3] +set 2,%o0 +call SqXMinX; nop +set J,%l3 +ld2 [%l3],%f30 +set Zero,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbule .L351; nop +ba .L350; nop +.L351: +set I,%l3 +ld [%l3],%l2 +add %l2,1,%l2 +st %l2,[%l3] +.L349: +set I,%l3 +ld [%l3],%l3 +set NoTrials,%l2 +ld [%l2],%l2 +cmp %l3,%l2; ble .L348; nop +.L350: +set .L353,%o0 +call printf; nop +set I,%l3 +set -1,%l2 +st %l2,[%l3] +set X,%l3 +set BMinusU2,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set Radix,%l3 +ld2 [%l3],%f30 +set Y,%l3 +st2 %f30,[%l3] +set Z,%l3 +set U2,%l2 +ld2 [%l2],%f28 +fmuld %f30,%f28,%f28 +faddd %f30,%f28,%f30 +st2 %f30,[%l3] +set NotMonot,%l2 +st %g0,[%l2] +set Monot,%l2 +st %g0,[%l2] +ba .L355; nop +.L354: +set I,%l3 +ld [%l3],%l2 +add %l2,1,%l2 +st %l2,[%l3] +set X,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call sqrt; nop +fmovs %f0,%f30; fmovs %f1,%f31 +st2 %f30,[%l3] +set Y,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call sqrt; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set Q,%l3 +st2 %f30,[%l3] +set Z,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call sqrt; nop +fmovs %f0,%f30; fmovs %f1,%f31 +st2 %f30,[%l3] +set Q,%l3 +ld2 [%l3],%f30 +set X,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbug .L359; nop +set Z,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbule .L357; nop +.L359: +set NotMonot,%l3 +set 1,%l2 +st %l2,[%l3] +ba .L358; nop +.L357: +set Q,%l3 +ld2 [%l3],%f30 +set Half,%l2 +ld2 [%l2],%f28 +faddd %f30,%f28,%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call floor; nop +fmovs %f0,%f30; fmovs %f1,%f31 +st2 %f30,[%l3] +set I,%l3 +ld [%l3],%l3 +cmp %l3,0; bg .L362; nop +set Q,%l3 +ld2 [%l3],%f30 +set Radix,%l3 +ld2 [%l3],%f28 +fmuld %f30,%f30,%f30 +fcmped %f28,%f30; nop; fbne .L360; nop +.L362: +set Monot,%l3 +set 1,%l2 +st %l2,[%l3] +ba .L361; nop +.L360: +set I,%l3 +ld [%l3],%l3 +cmp %l3,0; ble .L363; nop +set I,%l3 +ld [%l3],%l3 +cmp %l3,1; ble .L365; nop +set Monot,%l3 +set 1,%l2 +st %l2,[%l3] +ba .L364; nop +.L365: +set Y,%l3 +ld2 [%l3],%f30 +set BInvrse,%l2 +ld2 [%l2],%f28 +fmuld %f30,%f28,%f30 +st2 %f30,[%l3] +ld2 [%l3],%f30 +set U1,%l3 +ld2 [%l3],%f28 +set X,%l3 +fsubd %f30,%f28,%f26 +st2 %f26,[%l3] +set Z,%l3 +faddd %f30,%f28,%f30 +st2 %f30,[%l3] +ba .L364; nop +.L363: +set Y,%l3 +set Q,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +ld2 [%l3],%f30 +set U2,%l3 +ld2 [%l3],%f28 +set X,%l3 +fsubd %f30,%f28,%f26 +st2 %f26,[%l3] +set Z,%l3 +faddd %f30,%f28,%f30 +st2 %f30,[%l3] +.L364: +.L361: +.L358: +.L355: +set NotMonot,%l2 +ld [%l2],%l2 +cmp %l2,%g0; bne .L367; nop +set Monot,%l2 +ld [%l2],%l2 +cmp %l2,%g0; be .L354; nop +.L367: +set Monot,%l3 +ld [%l3],%l3 +cmp %l3,0; be .L368; nop +set .L370,%o0 +call printf; nop +ba .L369; nop +.L368: +set 2,%o0 +set .L158,%o1 +call BadCond; nop +set .L371,%o0 +set Y,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +.L369: +set Milestone,%l3 +set 80,%l2 +st %l2,[%l3] +set MinSqEr,%l3 +set Half,%l2 +ld2 [%l2],%f30 +ld2 [%l3],%f28 +faddd %f28,%f30,%f28 +st2 %f28,[%l3] +set MaxSqEr,%l3 +ld2 [%l3],%f28 +fsubd %f28,%f30,%f30 +st2 %f30,[%l3] +set One,%l3 +ld2 [%l3],%f30 +set U2,%l3 +ld2 [%l3],%f28 +faddd %f30,%f28,%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call sqrt; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set One,%l3 +ld2 [%l3],%f28 +set U2,%l3 +ld2 [%l3],%f26 +set Y,%l3 +fsubd %f30,%f28,%f30 +fdivd %f30,%f26,%f30 +st2 %f30,[%l3] +set SqEr,%l3 +set Y,%l2 +ld2 [%l2],%f30 +fsubd %f30,%f28,%f30 +set Eight,%l2 +ld2 [%l2],%f28 +fdivd %f26,%f28,%f28 +faddd %f30,%f28,%f30 +st2 %f30,[%l3] +ld2 [%l3],%f30 +set MaxSqEr,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbule .L372; nop +set MaxSqEr,%l3 +set SqEr,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +.L372: +set SqEr,%l3 +set Y,%l2 +ld2 [%l2],%f30 +set U2,%l2 +ld2 [%l2],%f28 +set Eight,%l2 +ld2 [%l2],%f26 +fdivd %f28,%f26,%f28 +faddd %f30,%f28,%f30 +st2 %f30,[%l3] +ld2 [%l3],%f30 +set MinSqEr,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbuge .L374; nop +set MinSqEr,%l3 +set SqEr,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +.L374: +set F9,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call sqrt; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set U2,%l3 +ld2 [%l3],%f28 +set U1,%l3 +ld2 [%l3],%f26 +set Y,%l3 +fsubd %f30,%f28,%f30 +set One,%l2 +ld2 [%l2],%f24 +fsubd %f24,%f28,%f28 +fsubd %f30,%f28,%f30 +fdivd %f30,%f26,%f30 +st2 %f30,[%l3] +set SqEr,%l3 +set Y,%l2 +ld2 [%l2],%f30 +set Eight,%l2 +ld2 [%l2],%f28 +fdivd %f26,%f28,%f28 +faddd %f30,%f28,%f30 +st2 %f30,[%l3] +ld2 [%l3],%f30 +set MaxSqEr,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbule .L376; nop +set MaxSqEr,%l3 +set SqEr,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +.L376: +set SqEr,%l3 +set Y,%l2 +ld2 [%l2],%f30 +set One,%l2 +ld2 [%l2],%f28 +faddd %f30,%f28,%f30 +set U1,%l2 +ld2 [%l2],%f28 +set Eight,%l2 +ld2 [%l2],%f26 +fdivd %f28,%f26,%f28 +faddd %f30,%f28,%f30 +st2 %f30,[%l3] +ld2 [%l3],%f30 +set MinSqEr,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbuge .L378; nop +set MinSqEr,%l3 +set SqEr,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +.L378: +set OneUlp,%l3 +set U2,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set X,%l2 +ld2 [%l3],%f30 +st2 %f30,[%l2] +set Indx,%l3 +set 1,%l2 +st %l2,[%l3] +.L380: +set X,%l3 +ld2 [%l3],%f30 +set U1,%l3 +ld2 [%l3],%f28 +faddd %f30,%f28,%f28 +faddd %f28,%f30,%f30 +set F9,%l3 +ld2 [%l3],%f28 +faddd %f30,%f28,%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call sqrt; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set Y,%l3 +st2 %f30,[%l3] +set Y,%l3 +set U2,%l2 +ld2 [%l2],%f30 +set X,%l2 +ld2 [%l2],%f28 +set OneUlp,%l2 +ld2 [%l2],%f26 +ld2 [%l3],%f24 +fsubd %f24,%f30,%f24 +set One,%l2 +ld2 [%l2],%f22 +fsubd %f22,%f30,%f30 +faddd %f30,%f28,%f30 +fsubd %f24,%f30,%f30 +fdivd %f30,%f26,%f30 +st2 %f30,[%l3] +set Z,%l2 +set Half,%l1 +ld2 [%l1],%f30 +set U1,%l1 +ld2 [%l1],%f24 +fsubd %f24,%f28,%f24 +set F9,%l1 +ld2 [%l1],%f22 +faddd %f24,%f22,%f24 +fmuld %f24,%f30,%f24 +fmuld %f24,%f28,%f24 +fmuld %f24,%f28,%f28 +fdivd %f28,%f26,%f28 +st2 %f28,[%l2] +set SqEr,%l1 +ld2 [%l3],%f28 +faddd %f28,%f30,%f30 +ld2 [%l2],%f28 +faddd %f30,%f28,%f30 +st2 %f30,[%l1] +ld2 [%l1],%f30 +set MinSqEr,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbuge .L384; nop +set MinSqEr,%l3 +set SqEr,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +.L384: +set SqEr,%l3 +set Y,%l2 +ld2 [%l2],%f30 +set Half,%l2 +ld2 [%l2],%f28 +fsubd %f30,%f28,%f30 +set Z,%l2 +ld2 [%l2],%f28 +faddd %f30,%f28,%f30 +st2 %f30,[%l3] +ld2 [%l3],%f30 +set MaxSqEr,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbule .L386; nop +set MaxSqEr,%l3 +set SqEr,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +.L386: +set Indx,%l3 +ld [%l3],%l3 +cmp %l3,1; be .L390; nop +cmp %l3,3; bne .L388; nop +.L390: +set X,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call Sign; nop +fmovs %f0,%f30; fmovs %f1,%f31 +std %f30,[%fp+-88] +set OneUlp,%l2 +ld2 [%l2],%f28 +st %f28,[%sp+4*0+68] +st %f29,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call sqrt; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set Eight,%l2 +ld2 [%l2],%f28 +set Nine,%l2 +ld2 [%l2],%f26 +fmuld %f26,%f30,%f30 +fdivd %f28,%f30,%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call floor; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set OneUlp,%l2 +ld2 [%l2],%f28 +ldd [%fp+-88],%f26 +fmuld %f28,%f26,%f28 +fmuld %f28,%f30,%f30 +st2 %f30,[%l3] +ba .L389; nop +.L388: +set OneUlp,%l3 +set U1,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set X,%l2 +ld2 [%l3],%f30 +fnegs %f30,%f30; fmovs %f31,%f31 +st2 %f30,[%l2] +.L389: +.L381: +set Indx,%l3 +ld [%l3],%l2 +add %l2,1,%l2 +st %l2,[%l3] +set Indx,%l3 +ld [%l3],%l3 +cmp %l3,3; ble .L380; nop +set Milestone,%l3 +set 85,%l2 +st %l2,[%l3] +set SqRWrng,%l2 +st %g0,[%l2] +set Anomaly,%l2 +st %g0,[%l2] +set RSqrt,%l2 +st %g0,[%l2] +set Radix,%l3 +ld2 [%l3],%f30 +set One,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L391; nop +set .L393,%o0 +call printf; nop +set Precision,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-88] +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call floor; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set Radix,%l3 +ld2 [%l3],%f28 +st %f28,[%sp+4*0+68] +st %f29,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +set One,%l3 +ld2 [%l3],%f28 +ldd [%fp+-88],%f26 +faddd %f28,%f26,%f28 +fsubd %f28,%f30,%f30 +st %f30,[%sp+4*2+68] +st %f31,[%sp+4*3+68] +ld [%sp+4*2+68],%o2 +ld [%sp+4*3+68],%o3 +call pow; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set Half,%l3 +ld2 [%l3],%f28 +faddd %f28,%f30,%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call floor; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set D,%l3 +st2 %f30,[%l3] +set D,%l3 +ld2 [%l3],%f30 +set X,%l3 +set Radix,%l2 +ld2 [%l2],%f28 +fdivd %f30,%f28,%f28 +st2 %f28,[%l3] +set Y,%l3 +set A1,%l2 +ld2 [%l2],%f28 +fdivd %f30,%f28,%f30 +st2 %f30,[%l3] +set X,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-96] +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call floor; nop +fmovs %f0,%f30; fmovs %f1,%f31 +ldd [%fp+-96],%f28 +fcmped %f28,%f30; nop; fbne .L396; nop +set Y,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-104] +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call floor; nop +fmovs %f0,%f30; fmovs %f1,%f31 +ldd [%fp+-104],%f28 +fcmped %f28,%f30; nop; fbue .L394; nop +.L396: +set Anomaly,%l3 +set 1,%l2 +st %l2,[%l3] +ba .L395; nop +.L394: +set X,%l3 +set Zero,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set Z2,%l2 +ld2 [%l3],%f30 +st2 %f30,[%l2] +set Y,%l3 +set One,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set Y2,%l2 +ld2 [%l3],%f28 +st2 %f28,[%l2] +set Z1,%l3 +set Radix,%l2 +ld2 [%l2],%f28 +fsubd %f28,%f30,%f30 +st2 %f30,[%l3] +set FourD,%l3 +set Four,%l2 +ld2 [%l2],%f30 +set D,%l2 +ld2 [%l2],%f28 +fmuld %f30,%f28,%f30 +st2 %f30,[%l3] +.L397: +set Y2,%l3 +ld2 [%l3],%f30 +set Z2,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbule .L400; nop +set Q,%l3 +set Radix,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set Y1,%l3 +set Y,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +.L402: +set Q,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-112] +set Half,%l3 +ld2 [%l3],%f28 +set Y1,%l3 +ld2 [%l3],%f26 +fdivd %f30,%f26,%f26 +fsubd %f28,%f26,%f28 +st %f28,[%sp+4*0+68] +st %f29,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call floor; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set Y1,%l3 +ld2 [%l3],%f28 +fmuld %f30,%f28,%f30 +ldd [%fp+-112],%f28 +faddd %f28,%f30,%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call fabs; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set X1,%l3 +st2 %f30,[%l3] +set Y1,%l3 +set Q,%l2 +ld2 [%l3],%f30 +st2 %f30,[%l2] +set X1,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +.L403: +set X1,%l3 +ld2 [%l3],%f30 +set Zero,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbug .L402; nop +set Q,%l3 +ld2 [%l3],%f30 +set One,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbug .L405; nop +set Z2,%l3 +set Y2,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set Z,%l3 +set Y,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +.L405: +.L400: +set Y,%l3 +ld2 [%l3],%f30 +set Two,%l2 +ld2 [%l2],%f28 +faddd %f30,%f28,%f30 +st2 %f30,[%l3] +set X,%l3 +ld2 [%l3],%f30 +set Eight,%l2 +ld2 [%l2],%f28 +faddd %f30,%f28,%f30 +st2 %f30,[%l3] +set Y2,%l2 +ld2 [%l2],%f30 +ld2 [%l3],%f28 +faddd %f30,%f28,%f30 +st2 %f30,[%l2] +ld2 [%l2],%f30 +set FourD,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbul .L407; nop +set Y2,%l3 +ld2 [%l3],%f30 +set FourD,%l2 +ld2 [%l2],%f28 +fsubd %f30,%f28,%f30 +st2 %f30,[%l3] +.L407: +.L398: +set Y,%l3 +ld2 [%l3],%f30 +set D,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbul .L397; nop +set X8,%l3 +set FourD,%l2 +ld2 [%l2],%f30 +set Z2,%l2 +ld2 [%l2],%f28 +fsubd %f30,%f28,%f28 +st2 %f28,[%l3] +set Q,%l2 +ld2 [%l3],%f28 +set Z,%l1 +ld2 [%l1],%f26 +fmuld %f26,%f26,%f26 +faddd %f28,%f26,%f26 +fdivd %f26,%f30,%f30 +st2 %f30,[%l2] +set Eight,%l1 +ld2 [%l1],%f30 +fdivd %f28,%f30,%f30 +st2 %f30,[%l3] +ld2 [%l2],%f30 +std %f30,[%fp+-112] +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call floor; nop +fmovs %f0,%f30; fmovs %f1,%f31 +ldd [%fp+-112],%f28 +fcmped %f28,%f30; nop; fbue .L409; nop +set Anomaly,%l3 +set 1,%l2 +st %l2,[%l3] +ba .L410; nop +.L409: +set Break,%l3 +st %g0,[%l3] +.L411: +set X,%l3 +set Z1,%l2 +ld2 [%l2],%f30 +set Z,%l2 +ld2 [%l2],%f28 +fmuld %f30,%f28,%f30 +st2 %f30,[%l3] +ld2 [%l3],%f30 +std %f30,[%fp+-120] +set Radix,%l2 +ld2 [%l2],%f28 +fdivd %f30,%f28,%f28 +st %f28,[%sp+4*0+68] +st %f29,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call floor; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set Radix,%l2 +ld2 [%l2],%f28 +fmuld %f30,%f28,%f30 +ldd [%fp+-120],%f28 +fsubd %f28,%f30,%f30 +st2 %f30,[%l3] +set X,%l3 +ld2 [%l3],%f30 +set One,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbne .L414; nop +set Break,%l3 +set 1,%l2 +st %l2,[%l3] +ba .L415; nop +.L414: +set Z1,%l3 +ld2 [%l3],%f30 +set One,%l2 +ld2 [%l2],%f28 +fsubd %f30,%f28,%f30 +st2 %f30,[%l3] +.L415: +.L412: +set Break,%l3 +ld [%l3],%l3 +cmp %l3,0; bne .L416; nop +set Z1,%l3 +ld2 [%l3],%f30 +set Zero,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbug .L411; nop +.L416: +set Z1,%l3 +ld2 [%l3],%f30 +set Zero,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbug .L417; nop +set Break,%l3 +ld [%l3],%l3 +cmp %l3,0; bne .L417; nop +set Anomaly,%l3 +set 1,%l2 +st %l2,[%l3] +ba .L418; nop +.L417: +set Z1,%l3 +ld2 [%l3],%f30 +set RadixD2,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbule .L419; nop +set Z1,%l3 +ld2 [%l3],%f30 +set Radix,%l2 +ld2 [%l2],%f28 +fsubd %f30,%f28,%f30 +st2 %f30,[%l3] +.L419: +.L421: +call NewD; nop +.L422: +set U2,%l3 +ld2 [%l3],%f30 +set D,%l3 +ld2 [%l3],%f28 +fmuld %f30,%f28,%f30 +set F9,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbul .L421; nop +set D,%l3 +ld2 [%l3],%f30 +set Radix,%l3 +ld2 [%l3],%f28 +fmuld %f30,%f28,%f28 +fsubd %f28,%f30,%f28 +set W,%l3 +ld2 [%l3],%f26 +fsubd %f26,%f30,%f30 +fcmped %f28,%f30; nop; fbue .L424; nop +set Anomaly,%l3 +set 1,%l2 +st %l2,[%l3] +ba .L425; nop +.L424: +set D,%l3 +ld2 [%l3],%f30 +set Z2,%l3 +st2 %f30,[%l3] +set I,%l3 +st %g0,[%l3] +set Z,%l3 +ld2 [%l3],%f28 +set Y,%l3 +set One,%l2 +ld2 [%l2],%f26 +faddd %f26,%f28,%f26 +set Half,%l2 +ld2 [%l2],%f24 +fmuld %f26,%f24,%f26 +faddd %f30,%f26,%f26 +st2 %f26,[%l3] +set X,%l3 +faddd %f30,%f28,%f30 +set Q,%l2 +ld2 [%l2],%f28 +faddd %f30,%f28,%f30 +st2 %f30,[%l3] +call SR3750; nop +set D,%l3 +ld2 [%l3],%f30 +set Z,%l3 +ld2 [%l3],%f28 +set Y,%l3 +set One,%l2 +ld2 [%l2],%f26 +fsubd %f26,%f28,%f26 +set Half,%l2 +ld2 [%l2],%f24 +fmuld %f26,%f24,%f26 +faddd %f30,%f26,%f26 +faddd %f26,%f30,%f26 +st2 %f26,[%l3] +set X,%l3 +fsubd %f30,%f28,%f28 +faddd %f28,%f30,%f30 +st2 %f30,[%l3] +ld2 [%l3],%f30 +set Q,%l2 +ld2 [%l2],%f28 +faddd %f30,%f28,%f28 +faddd %f28,%f30,%f30 +st2 %f30,[%l3] +call SR3750; nop +call NewD; nop +set Z2,%l3 +ld2 [%l3],%f30 +set D,%l3 +ld2 [%l3],%f28 +fsubd %f28,%f30,%f28 +set W,%l3 +ld2 [%l3],%f26 +fsubd %f26,%f30,%f30 +fcmped %f28,%f30; nop; fbue .L426; nop +set Anomaly,%l3 +set 1,%l2 +st %l2,[%l3] +ba .L427; nop +.L426: +set Z2,%l3 +ld2 [%l3],%f30 +set D,%l3 +ld2 [%l3],%f28 +fsubd %f28,%f30,%f28 +set Z,%l3 +ld2 [%l3],%f26 +set Y,%l3 +set One,%l2 +ld2 [%l2],%f24 +fsubd %f24,%f26,%f24 +set Half,%l2 +ld2 [%l2],%f22 +fmuld %f24,%f22,%f24 +faddd %f30,%f24,%f24 +faddd %f28,%f24,%f24 +st2 %f24,[%l3] +set X,%l3 +fsubd %f30,%f26,%f30 +set Q,%l2 +ld2 [%l2],%f26 +faddd %f30,%f26,%f30 +faddd %f28,%f30,%f30 +st2 %f30,[%l3] +call SR3750; nop +set Y,%l3 +set One,%l2 +ld2 [%l2],%f30 +set Z,%l2 +ld2 [%l2],%f28 +faddd %f30,%f28,%f30 +set Half,%l2 +ld2 [%l2],%f28 +fmuld %f30,%f28,%f30 +st2 %f30,[%l3] +set X,%l3 +set Q,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +call SR3750; nop +set I,%l3 +ld [%l3],%l3 +cmp %l3,0; bne .L428; nop +set Anomaly,%l3 +set 1,%l2 +st %l2,[%l3] +.L428: +.L427: +.L425: +.L418: +.L410: +.L395: +set I,%l2 +ld [%l2],%l2 +cmp %l2,%g0; be .L432; nop +set Anomaly,%l2 +ld [%l2],%l2 +cmp %l2,%g0; be .L430; nop +.L432: +mov %g0,%o0 +set .L433,%o1 +call BadCond; nop +set .L434,%o0 +set W,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +set .L435,%o0 +call printf; nop +set SqRWrng,%l3 +set 1,%l2 +st %l2,[%l3] +.L430: +.L391: +set Anomaly,%l3 +ld [%l3],%l3 +cmp %l3,0; bne .L436; nop +set Zero,%l3 +ld2 [%l3],%f30 +set MinSqEr,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbul .L438; nop +set MaxSqEr,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbug .L438; nop +set RSqrt,%l3 +set 1,%l2 +st %l2,[%l3] +set .L440,%o0 +call printf; nop +ba .L439; nop +.L438: +set U2,%l3 +ld2 [%l3],%f30 +set Half,%l3 +ld2 [%l3],%f28 +set MaxSqEr,%l3 +ld2 [%l3],%f26 +faddd %f26,%f30,%f26 +fsubd %f30,%f28,%f30 +fcmped %f26,%f30; nop; fbug .L444; nop +set MinSqEr,%l3 +ld2 [%l3],%f30 +fcmped %f30,%f28; nop; fbug .L444; nop +set Radix,%l3 +ld2 [%l3],%f26 +faddd %f30,%f26,%f30 +fcmped %f30,%f28; nop; fbuge .L441; nop +.L444: +set SqRWrng,%l3 +set 1,%l2 +st %l2,[%l3] +ba .L442; nop +.L441: +set RSqrt,%l3 +set 2,%l2 +st %l2,[%l3] +set .L445,%o0 +call printf; nop +.L442: +.L439: +.L436: +set SqRWrng,%l3 +ld [%l3],%l3 +cmp %l3,0; be .L446; nop +set .L448,%o0 +call printf; nop +set .L449,%o0 +set MinSqEr,%l3 +ld2 [%l3],%f30 +set Half,%l3 +ld2 [%l3],%f28 +fsubd %f30,%f28,%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +set .L450,%o0 +set Half,%l3 +ld2 [%l3],%f30 +set MaxSqEr,%l3 +ld2 [%l3],%f28 +faddd %f30,%f28,%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +set 1,%o0 +set Radix,%l3 +ld2 [%l3],%f30 +set MaxSqEr,%l3 +ld2 [%l3],%f28 +set MinSqEr,%l3 +ld2 [%l3],%f26 +fsubd %f28,%f26,%f28 +fmuld %f30,%f30,%f30 +fcmped %f28,%f30; nop; fbuge .L453; nop +set 1,%l3 +st %l3,[%fp+-84] +ba .L454; nop +.L453: +st %g0,[%fp+-84] +.L454: +ld [%fp+-84],%o1 +set .L452,%o2 +call TstCond; nop +.L446: +set Milestone,%l3 +set 90,%l2 +st %l2,[%l3] +call Pause; nop +set .L455,%o0 +call printf; nop +set N,%l2 +st %g0,[%l2] +set I,%l2 +st %g0,[%l2] +set Z,%l2 +set Zero,%l1 +ld2 [%l1],%f30 +fnegs %f30,%f30; fmovs %f31,%f31 +st2 %f30,[%l2] +set M,%l2 +set 3,%l1 +st %l1,[%l2] +set Break,%l2 +st %g0,[%l2] +.L456: +set X,%l3 +set One,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +call SR3980; nop +set I,%l3 +ld [%l3],%l3 +cmp %l3,10; bg .L459; nop +set I,%l3 +set 1023,%l2 +st %l2,[%l3] +call SR3980; nop +.L459: +set Z,%l3 +ld2 [%l3],%f30 +set MinusOne,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbne .L461; nop +set Break,%l3 +set 1,%l2 +st %l2,[%l3] +ba .L462; nop +.L461: +set Z,%l3 +set MinusOne,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +call PrintIfNPositive; nop +set N,%l3 +st %g0,[%l3] +set I,%l3 +set -4,%l2 +st %l2,[%l3] +.L462: +.L457: +set Break,%l3 +ld [%l3],%l3 +cmp %l3,0; be .L456; nop +call PrintIfNPositive; nop +set N,%l3 +set N1,%l2 +ld [%l3],%l1 +st %l1,[%l2] +st %g0,[%l3] +set Z,%l3 +set A1,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set W,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call log; nop +fmovs %f0,%f30; fmovs %f1,%f31 +std %f30,[%fp+-88] +set A1,%l3 +ld2 [%l3],%f28 +st %f28,[%sp+4*0+68] +st %f29,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call log; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set Two,%l3 +ld2 [%l3],%f28 +ldd [%fp+-88],%f26 +fmuld %f28,%f26,%f28 +fdivd %f28,%f30,%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call floor; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set M,%l3 +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%l2 +st %l2,[%l3] +set Break,%l3 +st %g0,[%l3] +.L463: +set X,%l3 +set Z,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set I,%l3 +set 1,%l2 +st %l2,[%l3] +call SR3980; nop +set Z,%l3 +ld2 [%l3],%f30 +set AInvrse,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbne .L466; nop +set Break,%l3 +set 1,%l2 +st %l2,[%l3] +ba .L467; nop +.L466: +set Z,%l3 +set AInvrse,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +.L467: +.L464: +set Break,%l3 +ld [%l3],%l3 +cmp %l3,0; be .L463; nop +set Milestone,%l3 +set 100,%l2 +st %l2,[%l3] +set M,%l3 +set NoTrials,%l2 +ld [%l2],%l2 +st %l2,[%l3] +set Z,%l3 +set Three,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +.L468: +set X,%l3 +set Z,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set I,%l3 +set 1,%l2 +st %l2,[%l3] +call SR3980; nop +.L471: +set Z,%l3 +ld2 [%l3],%f30 +set Two,%l2 +ld2 [%l2],%f28 +faddd %f30,%f28,%f30 +st2 %f30,[%l3] +.L472: +set Three,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-96] +set Z,%l3 +ld2 [%l3],%f28 +fdivd %f28,%f30,%f28 +st %f28,[%sp+4*0+68] +st %f29,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call floor; nop +fmovs %f0,%f30; fmovs %f1,%f31 +ldd [%fp+-96],%f28 +fmuld %f28,%f30,%f30 +set Z,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L471; nop +.L469: +set Z,%l3 +ld2 [%l3],%f30 +set Eight,%l3 +ld2 [%l3],%f28 +set Three,%l3 +ld2 [%l3],%f26 +fmuld %f28,%f26,%f28 +fcmped %f30,%f28; nop; fbul .L468; nop +set N,%l3 +ld [%l3],%l3 +cmp %l3,0; ble .L474; nop +set .L476,%o0 +call printf; nop +set .L477,%o0 +call printf; nop +.L474: +call PrintIfNPositive; nop +set N,%l3 +ld [%l3],%l2 +set N1,%l1 +ld [%l1],%l1 +add %l2,%l1,%l2 +st %l2,[%l3] +ld [%l3],%l3 +cmp %l3,0; bne .L478; nop +set .L480,%o0 +call printf; nop +.L478: +set N,%l3 +ld [%l3],%l3 +cmp %l3,0; ble .L481; nop +call Pause; nop +ba .L482; nop +.L481: +set .L45,%o0 +call printf; nop +.L482: +set Milestone,%l3 +set 110,%l2 +st %l2,[%l3] +set .L483,%o0 +call printf; nop +set D,%l3 +set U1,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set Precision,%l3 +ld2 [%l3],%f30 +std %f30,[%fp+-96] +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call floor; nop +fmovs %f0,%f30; fmovs %f1,%f31 +ldd [%fp+-96],%f28 +fcmped %f28,%f30; nop; fbue .L484; nop +set D,%l3 +set BInvrse,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set X,%l3 +set Precision,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +.L486: +set D,%l3 +ld2 [%l3],%f30 +set BInvrse,%l2 +ld2 [%l2],%f28 +fmuld %f30,%f28,%f30 +st2 %f30,[%l3] +set X,%l3 +ld2 [%l3],%f30 +set One,%l2 +ld2 [%l2],%f28 +fsubd %f30,%f28,%f30 +st2 %f30,[%l3] +.L487: +set X,%l3 +ld2 [%l3],%f30 +set Zero,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbug .L486; nop +.L484: +set Y,%l3 +set One,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set Z,%l3 +set D,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +.L489: +set Y,%l3 +set C,%l2 +ld2 [%l3],%f30 +st2 %f30,[%l2] +set Z,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +ld2 [%l3],%f30 +fmuld %f30,%f30,%f30 +st2 %f30,[%l2] +.L490: +set Z,%l3 +ld2 [%l3],%f30 +set Y,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbule .L492; nop +faddd %f30,%f30,%f28 +fcmped %f28,%f30; nop; fbug .L489; nop +.L492: +set Y,%l3 +set C,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set Z,%l2 +ld2 [%l3],%f30 +set D,%l3 +ld2 [%l3],%f28 +fmuld %f30,%f28,%f30 +st2 %f30,[%l2] +.L493: +set Y,%l3 +set C,%l2 +ld2 [%l3],%f30 +st2 %f30,[%l2] +set Z,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +ld2 [%l3],%f30 +set D,%l3 +ld2 [%l3],%f28 +fmuld %f30,%f28,%f30 +st2 %f30,[%l2] +.L494: +set Z,%l3 +ld2 [%l3],%f30 +set Y,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbule .L496; nop +faddd %f30,%f30,%f28 +fcmped %f28,%f30; nop; fbug .L493; nop +.L496: +set Radix,%l3 +ld2 [%l3],%f30 +set Two,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbuge .L497; nop +set HInvrse,%l3 +set Two,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +ba .L498; nop +.L497: +set HInvrse,%l3 +set Radix,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +.L498: +set H,%l3 +set One,%l2 +ld2 [%l2],%f30 +set HInvrse,%l2 +ld2 [%l2],%f28 +fdivd %f30,%f28,%f28 +st2 %f28,[%l3] +set C,%l2 +ld2 [%l2],%f28 +set CInvrse,%l2 +fdivd %f30,%f28,%f30 +st2 %f30,[%l2] +set E0,%l2 +st2 %f28,[%l2] +set Z,%l1 +ld2 [%l2],%f30 +ld2 [%l3],%f28 +fmuld %f30,%f28,%f30 +st2 %f30,[%l1] +.L499: +set E0,%l3 +set Y,%l2 +ld2 [%l3],%f30 +st2 %f30,[%l2] +set Z,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +ld2 [%l3],%f30 +set H,%l3 +ld2 [%l3],%f28 +fmuld %f30,%f28,%f30 +st2 %f30,[%l2] +.L500: +set Z,%l3 +ld2 [%l3],%f30 +set E0,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbule .L502; nop +faddd %f30,%f30,%f28 +fcmped %f28,%f30; nop; fbug .L499; nop +.L502: +set UfThold,%l3 +set E0,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set Zero,%l3 +ld2 [%l3],%f30 +set E1,%l3 +st2 %f30,[%l3] +set Q,%l3 +st2 %f30,[%l3] +set E9,%l3 +set U2,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set S,%l2 +set One,%l1 +ld2 [%l1],%f30 +ld2 [%l3],%f28 +faddd %f30,%f28,%f30 +st2 %f30,[%l2] +set D,%l3 +set C,%l1 +ld2 [%l1],%f30 +ld2 [%l2],%f28 +fmuld %f30,%f28,%f28 +st2 %f28,[%l3] +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbug .L503; nop +set E9,%l3 +set Radix,%l2 +ld2 [%l2],%f30 +set U2,%l2 +ld2 [%l2],%f28 +fmuld %f30,%f28,%f30 +st2 %f30,[%l3] +set S,%l2 +set One,%l1 +ld2 [%l1],%f30 +ld2 [%l3],%f28 +faddd %f30,%f28,%f30 +st2 %f30,[%l2] +set D,%l3 +set C,%l1 +ld2 [%l1],%f30 +ld2 [%l2],%f28 +fmuld %f30,%f28,%f28 +st2 %f28,[%l3] +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbug .L504; nop +mov %g0,%o0 +set .L507,%o1 +call BadCond; nop +set Underflow,%l3 +set E0,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set Y1,%l3 +set Zero,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set PseudoZero,%l3 +set Z,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +call Pause; nop +ba .L504; nop +.L503: +set Underflow,%l3 +set D,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set PseudoZero,%l2 +ld2 [%l3],%f30 +set H,%l3 +ld2 [%l3],%f28 +fmuld %f30,%f28,%f30 +st2 %f30,[%l2] +set UfThold,%l3 +set Zero,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +.L508: +set Underflow,%l3 +set Y1,%l2 +ld2 [%l3],%f30 +st2 %f30,[%l2] +set PseudoZero,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set E1,%l3 +ld2 [%l3],%f30 +faddd %f30,%f30,%f28 +fcmped %f28,%f30; nop; fbug .L511; nop +set Y2,%l3 +set Underflow,%l2 +ld2 [%l2],%f30 +set HInvrse,%l2 +ld2 [%l2],%f28 +fmuld %f30,%f28,%f30 +st2 %f30,[%l3] +set Y1,%l2 +ld2 [%l2],%f30 +ld2 [%l3],%f28 +fsubd %f30,%f28,%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call fabs; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set E1,%l3 +st2 %f30,[%l3] +set Q,%l3 +set Y1,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set UfThold,%l3 +ld2 [%l3],%f30 +set Zero,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbne .L513; nop +set Y1,%l3 +ld2 [%l3],%f30 +set Y2,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L513; nop +set UfThold,%l3 +set Y1,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +.L513: +.L511: +set PseudoZero,%l3 +ld2 [%l3],%f30 +set H,%l2 +ld2 [%l2],%f28 +fmuld %f30,%f28,%f30 +st2 %f30,[%l3] +.L509: +set PseudoZero,%l3 +ld2 [%l3],%f30 +set Underflow,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbule .L515; nop +faddd %f30,%f30,%f28 +fcmped %f28,%f30; nop; fbug .L508; nop +.L515: +.L504: +set PseudoZero,%l3 +ld2 [%l3],%f30 +set Zero,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L516; nop +set .L45,%o0 +call printf; nop +set PseudoZero,%l3 +ld2 [%l3],%f30 +set Z,%l3 +st2 %f30,[%l3] +set Zero,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbug .L518; nop +mov %g0,%o0 +set .L520,%o1 +call BadCond; nop +set .L521,%o0 +call printf; nop +set .L522,%o0 +set PseudoZero,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +set X,%l3 +set PseudoZero,%l2 +ld2 [%l2],%f30 +fnegs %f30,%f30; fmovs %f31,%f31 +st2 %f30,[%l3] +ld2 [%l3],%f30 +set Zero,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbug .L519; nop +set .L525,%o0 +call printf; nop +set .L526,%o0 +set X,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +ba .L519; nop +.L518: +set 3,%o0 +set .L527,%o1 +call BadCond; nop +set .L528,%o0 +set PseudoZero,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +.L519: +call TstPtUf; nop +.L516: +set Milestone,%l3 +set 120,%l2 +st %l2,[%l3] +set CInvrse,%l3 +ld2 [%l3],%f30 +set Y,%l3 +ld2 [%l3],%f28 +fmuld %f30,%f28,%f28 +set Y1,%l3 +ld2 [%l3],%f26 +fmuld %f30,%f26,%f30 +fcmped %f28,%f30; nop; fbule .L529; nop +set S,%l3 +set H,%l2 +ld2 [%l2],%f30 +ld2 [%l3],%f28 +fmuld %f30,%f28,%f30 +st2 %f30,[%l3] +set E0,%l3 +set Underflow,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +.L529: +set E1,%l3 +ld2 [%l3],%f30 +set Zero,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L531; nop +set E0,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L531; nop +set 2,%o0 +set .L158,%o1 +call BadCond; nop +set E1,%l3 +ld2 [%l3],%f30 +set E0,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbuge .L533; nop +set .L535,%o0 +call printf; nop +set .L536,%o0 +call printf; nop +set PseudoZero,%l3 +ld2 [%l3],%f30 +set Zero,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbne .L534; nop +set E0,%l3 +set E1,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +ba .L534; nop +.L533: +set .L539,%o0 +call printf; nop +set .L540,%o0 +call printf; nop +.L534: +.L531: +set .L541,%o0 +set E0,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +set Z,%l3 +set E0,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +call TstPtUf; nop +set Underflow,%l3 +set E0,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set N,%l3 +ld [%l3],%l3 +cmp %l3,1; bne .L542; nop +set Underflow,%l3 +set Y,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +.L542: +set I,%l3 +set 4,%l2 +st %l2,[%l3] +set E1,%l3 +ld2 [%l3],%f30 +set Zero,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbne .L544; nop +set I,%l3 +set 3,%l2 +st %l2,[%l3] +.L544: +set UfThold,%l3 +ld2 [%l3],%f30 +set Zero,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbne .L546; nop +set I,%l3 +ld [%l3],%l2 +sub %l2,2,%l2 +st %l2,[%l3] +.L546: +set UfNGrad,%l3 +set 1,%l2 +st %l2,[%l3] +set I,%l3 +ld [%l3],%l3 +cmp %l3,1; bl .L548; nop +cmp %l3,4; bg .L548; nop +sll %l3,2,%l3 +set .L571-4,%l2 +ld [%l3+%l2],%l3 +jmp %l3; nop +.section ".rodata" +.align 4 +.L571: +.word .L550 +.word .L557 +.word .L562 +.word .L563 +.section ".text" +.L550: +set UfThold,%l3 +set Underflow,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set CInvrse,%l3 +ld2 [%l3],%f30 +set Q,%l3 +ld2 [%l3],%f28 +fmuld %f30,%f28,%f28 +set Y,%l3 +ld2 [%l3],%f26 +fmuld %f30,%f26,%f30 +set S,%l3 +ld2 [%l3],%f26 +fmuld %f30,%f26,%f30 +fcmped %f28,%f30; nop; fbue .L551; nop +set UfThold,%l3 +set Y,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +mov %g0,%o0 +set .L553,%o1 +call BadCond; nop +set .L554,%o0 +set UfThold,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +set .L555,%o0 +set C,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +set .L556,%o0 +call printf; nop +.L551: +call Pause; nop +ba .L549; nop +.L557: +mov %g0,%o0 +set .L558,%o1 +call BadCond; nop +set .L559,%o0 +call printf; nop +set .L560,%o0 +set Q,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +set Y2,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*3+68] +st %f31,[%sp+4*4+68] +ld [%sp+4*3+68],%o3 +ld [%sp+4*4+68],%o4 +call printf; nop +set Q,%l3 +ld2 [%l3],%f30 +set Y2,%l3 +ld2 [%l3],%f28 +fsubd %f30,%f28,%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call fabs; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set .L561,%o0 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +set UfThold,%l3 +set Q,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +ba .L549; nop +.L562: +set X,%l3 +ld2 [%l3],%f30 +st2 %f30,[%l3] +ba .L549; nop +.L563: +set UfThold,%l3 +ld2 [%l3],%f30 +set Q,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L564; nop +set E1,%l3 +ld2 [%l3],%f28 +set E0,%l3 +ld2 [%l3],%f26 +fcmped %f28,%f26; nop; fbne .L564; nop +set E9,%l3 +ld2 [%l3],%f26 +fdivd %f28,%f26,%f28 +fsubd %f30,%f28,%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call fabs; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set E1,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbug .L564; nop +set UfNGrad,%l3 +st %g0,[%l3] +set .L566,%o0 +call printf; nop +set .L567,%o0 +call printf; nop +set Y,%l3 +set E0,%l2 +ld2 [%l2],%f30 +set CInvrse,%l2 +ld2 [%l2],%f28 +fmuld %f30,%f28,%f26 +st2 %f26,[%l3] +set U2,%l2 +ld2 [%l2],%f26 +ld2 [%l3],%f24 +set OneAndHalf,%l2 +ld2 [%l2],%f22 +faddd %f22,%f26,%f22 +fmuld %f24,%f22,%f24 +st2 %f24,[%l3] +set X,%l2 +set One,%l1 +ld2 [%l1],%f24 +faddd %f24,%f26,%f26 +fmuld %f28,%f26,%f28 +st2 %f28,[%l2] +ld2 [%l3],%f28 +ld2 [%l2],%f26 +fdivd %f28,%f26,%f28 +st2 %f28,[%l3] +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L569; nop +set 1,%l3 +st %l3,[%fp+-100] +ba .L570; nop +.L569: +st %g0,[%fp+-100] +.L570: +set IEEE,%l3 +ld [%fp+-100],%l2 +st %l2,[%l3] +.L564: +.L548: +.L549: +set UfNGrad,%l3 +ld [%l3],%l3 +cmp %l3,0; be .L573; nop +set .L45,%o0 +call printf; nop +set sigsave,%l3 +set sigfpe,%l2 +st %l2,[%l3] +set ovfl_buf,%o0 +call setjmp; nop +cmp %o0,0; be .L575; nop +set .L577,%o0 +call printf; nop +set H,%l3 +ld2 [%l3],%f30 +set R,%l3 +faddd %f30,%f30,%f30 +st2 %f30,[%l3] +ba .L576; nop +.L575: +set Underflow,%l3 +ld2 [%l3],%f30 +set UfThold,%l3 +ld2 [%l3],%f28 +fdivd %f30,%f28,%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call sqrt; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set R,%l3 +st2 %f30,[%l3] +.L576: +set sigsave,%l3 +st %g0,[%l3] +set R,%l3 +ld2 [%l3],%f30 +set H,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbug .L578; nop +set Z,%l3 +set R,%l2 +ld2 [%l2],%f30 +set UfThold,%l2 +ld2 [%l2],%f28 +fmuld %f30,%f28,%f28 +st2 %f28,[%l3] +set One,%l2 +ld2 [%l2],%f28 +set H,%l2 +ld2 [%l2],%f26 +set X,%l2 +ld2 [%l3],%f24 +fmuld %f30,%f26,%f30 +faddd %f28,%f26,%f26 +fmuld %f30,%f26,%f30 +faddd %f28,%f30,%f30 +fmuld %f24,%f30,%f30 +st2 %f30,[%l2] +ba .L579; nop +.L578: +set Z,%l3 +set UfThold,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set One,%l2 +ld2 [%l2],%f30 +set H,%l2 +ld2 [%l2],%f28 +set X,%l2 +ld2 [%l3],%f26 +fmuld %f28,%f28,%f24 +faddd %f30,%f28,%f28 +fmuld %f24,%f28,%f28 +faddd %f30,%f28,%f30 +fmuld %f26,%f30,%f30 +st2 %f30,[%l2] +.L579: +set X,%l3 +ld2 [%l3],%f30 +set Z,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L580; nop +fsubd %f30,%f28,%f30 +set Zero,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbne .L580; nop +set 3,%o0 +set .L158,%o1 +call BadCond; nop +set .L582,%o0 +set X,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +set Z,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*3+68] +st %f31,[%sp+4*4+68] +ld [%sp+4*3+68],%o3 +ld [%sp+4*4+68],%o4 +call printf; nop +set Z9,%l3 +set X,%l2 +ld2 [%l2],%f30 +set Z,%l2 +ld2 [%l2],%f28 +fsubd %f30,%f28,%f30 +st2 %f30,[%l3] +set .L583,%o0 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +set .L584,%o0 +call printf; nop +set .L585,%o0 +call printf; nop +set .L586,%o0 +call printf; nop +set .L587,%o0 +call printf; nop +set .L588,%o0 +call printf; nop +set .L589,%o0 +call printf; nop +set sigsave,%l3 +set sigfpe,%l2 +st %l2,[%l3] +set ovfl_buf,%o0 +call setjmp; nop +cmp %o0,0; be .L590; nop +set .L592,%o0 +call printf; nop +ba .L591; nop +.L590: +set .L593,%o0 +set Half,%l3 +ld2 [%l3],%f30 +set X,%l3 +ld2 [%l3],%f28 +set Z,%l3 +ld2 [%l3],%f26 +fdivd %f28,%f26,%f28 +fsubd %f28,%f30,%f28 +fsubd %f28,%f30,%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +.L591: +set sigsave,%l3 +st %g0,[%l3] +.L580: +.L573: +set .L594,%o0 +set UfThold,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +set .L595,%o3 +call printf; nop +set .L596,%o0 +call printf; nop +set .L597,%o0 +call printf; nop +set Y2,%l3 +set U1,%l2 +ld2 [%l2],%f30 +fmuld %f30,%f30,%f28 +st2 %f28,[%l3] +set Y,%l2 +ld2 [%l3],%f28 +fmuld %f28,%f28,%f28 +st2 %f28,[%l2] +ld2 [%l2],%f28 +fmuld %f28,%f30,%f30 +st2 %f30,[%l3] +ld2 [%l3],%f30 +set UfThold,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbug .L598; nop +set Y,%l3 +ld2 [%l3],%f30 +set E0,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbule .L600; nop +set 2,%o0 +set .L158,%o1 +call BadCond; nop +set I,%l3 +set 5,%l2 +st %l2,[%l3] +ba .L601; nop +.L600: +set 1,%o0 +set .L158,%o1 +call BadCond; nop +set I,%l3 +set 4,%l2 +st %l2,[%l3] +.L601: +set .L602,%o0 +set I,%l3 +ld [%l3],%o1 +call printf; nop +.L598: +set Milestone,%l3 +set 130,%l2 +st %l2,[%l3] +set UfThold,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call log; nop +fmovs %f0,%f30; fmovs %f1,%f31 +std %f30,[%fp+-104] +set HInvrse,%l3 +ld2 [%l3],%f28 +st %f28,[%sp+4*0+68] +st %f29,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call log; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set Half,%l3 +ld2 [%l3],%f28 +set TwoForty,%l3 +ld2 [%l3],%f26 +ldd [%fp+-104],%f24 +fmuld %f26,%f24,%f26 +fdivd %f26,%f30,%f30 +fsubd %f28,%f30,%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call floor; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set Y,%l3 +fnegs %f30,%f30; fmovs %f31,%f31 +set TwoForty,%l2 +ld2 [%l2],%f28 +fdivd %f30,%f28,%f30 +st2 %f30,[%l3] +set Y,%l3 +ld2 [%l3],%f30 +set Y2,%l3 +faddd %f30,%f30,%f30 +st2 %f30,[%l3] +set .L603,%o0 +call printf; nop +set .L604,%o0 +set HInvrse,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +set Y,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*3+68] +st %f31,[%sp+4*4+68] +ld [%sp+4*3+68],%o3 +ld [%sp+4*4+68],%o4 +call printf; nop +set .L605,%o0 +set HInvrse,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +set Y,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*3+68] +st %f31,[%sp+4*4+68] +ld [%sp+4*3+68],%o3 +ld [%sp+4*4+68],%o4 +call printf; nop +set HInvrse,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +set Y2,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*2+68] +st %f31,[%sp+4*3+68] +ld [%sp+4*2+68],%o2 +ld [%sp+4*3+68],%o3 +call pow; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set V9,%l3 +st2 %f30,[%l3] +set .L606,%o0 +set V9,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +set V9,%l3 +ld2 [%l3],%f30 +set Zero,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbul .L609; nop +set Radix,%l3 +ld2 [%l3],%f28 +faddd %f28,%f28,%f28 +set E9,%l3 +ld2 [%l3],%f26 +faddd %f28,%f26,%f28 +set UfThold,%l3 +ld2 [%l3],%f26 +fmuld %f28,%f26,%f28 +fcmped %f30,%f28; nop; fbule .L607; nop +.L609: +set 1,%o0 +set .L610,%o1 +call BadCond; nop +set .L611,%o0 +set UfThold,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +ba .L608; nop +.L607: +set V9,%l3 +ld2 [%l3],%f30 +set UfThold,%l3 +ld2 [%l3],%f28 +set One,%l3 +ld2 [%l3],%f26 +set E9,%l3 +ld2 [%l3],%f24 +faddd %f26,%f24,%f26 +fmuld %f28,%f26,%f28 +fcmped %f30,%f28; nop; fbug .L612; nop +set .L614,%o0 +call printf; nop +ba .L613; nop +.L612: +set 2,%o0 +set .L610,%o1 +call BadCond; nop +set .L611,%o0 +set UfThold,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +.L613: +.L608: +set Milestone,%l3 +set 140,%l2 +st %l2,[%l3] +set .L45,%o0 +call printf; nop +set Zero,%l3 +ld2 [%l3],%f30 +set X,%l3 +st2 %f30,[%l3] +set I,%l3 +set 2,%l2 +st %l2,[%l3] +set Y,%l3 +set Two,%l2 +ld2 [%l2],%f28 +set Three,%l2 +ld2 [%l2],%f26 +fmuld %f28,%f26,%f28 +st2 %f28,[%l3] +set Q,%l3 +st2 %f30,[%l3] +set N,%l3 +st %g0,[%l3] +.L615: +set Z,%l3 +set X,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set I,%l1 +ld [%l1],%l0 +add %l0,1,%l0 +st %l0,[%l1] +set Y,%l0 +ld [%l1],%l1 +ld2 [%l0],%f30 +add %l1,%l1,%l1 +st %l1,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28 +fdivd %f30,%f28,%f30 +st2 %f30,[%l0] +set R,%l1 +set Q,%o5 +ld2 [%l0],%f30 +ld2 [%o5],%f28 +faddd %f30,%f28,%f30 +st2 %f30,[%l1] +ld2 [%l3],%f30 +ld2 [%l1],%f28 +faddd %f30,%f28,%f26 +st2 %f26,[%l2] +ld2 [%l2],%f26 +fsubd %f30,%f26,%f30 +faddd %f30,%f28,%f30 +st2 %f30,[%o5] +.L616: +set X,%l3 +ld2 [%l3],%f30 +set Z,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbug .L615; nop +set Z,%l3 +set OneAndHalf,%l2 +ld2 [%l2],%f30 +set X,%l2 +set One,%l1 +ld2 [%l1],%f28 +set Eight,%l1 +ld2 [%l1],%f26 +fdivd %f28,%f26,%f28 +faddd %f30,%f28,%f28 +ld2 [%l2],%f26 +set ThirtyTwo,%l1 +ld2 [%l1],%f24 +fmuld %f30,%f24,%f30 +fdivd %f26,%f30,%f30 +faddd %f28,%f30,%f30 +st2 %f30,[%l3] +ld2 [%l3],%f30 +fmuld %f30,%f30,%f30 +st2 %f30,[%l2] +set Exp2,%l3 +ld2 [%l2],%f30 +fmuld %f30,%f30,%f30 +st2 %f30,[%l3] +set F9,%l1 +ld2 [%l1],%f30 +st2 %f30,[%l2] +set Y,%l1 +ld2 [%l2],%f30 +set U1,%l2 +ld2 [%l2],%f28 +fsubd %f30,%f28,%f30 +st2 %f30,[%l1] +set .L618,%o0 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +set I,%l3 +set 1,%l2 +st %l2,[%l3] +.L619: +set Z,%l3 +set X,%l2 +ld2 [%l2],%f30 +set BInvrse,%l2 +ld2 [%l2],%f28 +fsubd %f30,%f28,%f26 +st2 %f26,[%l3] +set One,%l2 +ld2 [%l2],%f26 +faddd %f30,%f26,%f24 +ld2 [%l3],%f22 +fsubd %f26,%f28,%f28 +fsubd %f22,%f28,%f28 +fdivd %f24,%f28,%f28 +st2 %f28,[%l3] +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +ld2 [%l3],%f30 +st %f30,[%sp+4*2+68] +st %f31,[%sp+4*3+68] +ld [%sp+4*2+68],%o2 +ld [%sp+4*3+68],%o3 +call pow; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set Q,%l3 +set Exp2,%l2 +ld2 [%l2],%f28 +fsubd %f30,%f28,%f30 +st2 %f30,[%l3] +set Q,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call fabs; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set TwoForty,%l3 +ld2 [%l3],%f28 +set U2,%l3 +ld2 [%l3],%f26 +fmuld %f28,%f26,%f28 +fcmped %f30,%f28; nop; fbule .L623; nop +set N,%l3 +set 1,%l2 +st %l2,[%l3] +set BInvrse,%l3 +ld2 [%l3],%f30 +set V9,%l3 +set X,%l2 +ld2 [%l2],%f28 +fsubd %f28,%f30,%f28 +set One,%l2 +ld2 [%l2],%f26 +fsubd %f26,%f30,%f30 +fsubd %f28,%f30,%f30 +st2 %f30,[%l3] +set 2,%o0 +set .L625,%o1 +call BadCond; nop +set X,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +set Z,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*2+68] +st %f31,[%sp+4*3+68] +ld [%sp+4*2+68],%o2 +ld [%sp+4*3+68],%o3 +call pow; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set .L626,%o0 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +set .L627,%o0 +set V9,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +set Z,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*3+68] +st %f31,[%sp+4*4+68] +ld [%sp+4*3+68],%o3 +ld [%sp+4*4+68],%o4 +call printf; nop +set .L628,%o0 +set Q,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +set .L629,%o0 +call printf; nop +set .L630,%o0 +call printf; nop +ba .L621; nop +.L623: +set Z,%l3 +set Y,%l2 +ld2 [%l2],%f30 +set X,%l1 +ld2 [%l1],%f28 +fsubd %f30,%f28,%f28 +set Two,%l0 +ld2 [%l0],%f26 +fmuld %f28,%f26,%f28 +faddd %f28,%f30,%f28 +st2 %f28,[%l3] +st2 %f30,[%l1] +ld2 [%l3],%f30 +st2 %f30,[%l2] +ld2 [%l1],%f30 +set F9,%l2 +ld2 [%l2],%f28 +fsubd %f30,%f28,%f30 +set One,%l2 +ld2 [%l2],%f28 +fmuld %f30,%f30,%f30 +faddd %f28,%f30,%f30 +st2 %f30,[%l3] +set Z,%l3 +ld2 [%l3],%f30 +set One,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbule .L631; nop +set I,%l3 +ld [%l3],%l3 +set NoTrials,%l2 +ld [%l2],%l2 +cmp %l3,%l2; bge .L631; nop +set I,%l3 +ld [%l3],%l2 +add %l2,1,%l2 +st %l2,[%l3] +ba .L619; nop +.L631: +set X,%l3 +ld2 [%l3],%f30 +set One,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbule .L633; nop +set N,%l3 +ld [%l3],%l3 +cmp %l3,0; bne .L621; nop +set .L637,%o0 +call printf; nop +ba .L621; nop +.L633: +set X,%l3 +set U2,%l2 +ld2 [%l2],%f30 +set One,%l2 +ld2 [%l2],%f28 +faddd %f28,%f30,%f28 +st2 %f28,[%l3] +set Y,%l2 +faddd %f30,%f30,%f30 +st2 %f30,[%l2] +ld2 [%l2],%f30 +ld2 [%l3],%f28 +faddd %f30,%f28,%f30 +st2 %f30,[%l2] +set I,%l3 +set 1,%l2 +st %l2,[%l3] +ba .L619; nop +.L621: +set Milestone,%l3 +set 150,%l2 +st %l2,[%l3] +set .L638,%o0 +call printf; nop +set N,%l3 +st %g0,[%l3] +set Z,%l3 +set A1,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set C,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call log; nop +fmovs %f0,%f30; fmovs %f1,%f31 +std %f30,[%fp+-112] +set A1,%l3 +ld2 [%l3],%f28 +st %f28,[%sp+4*0+68] +st %f29,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call log; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set Half,%l3 +ld2 [%l3],%f28 +ldd [%fp+-112],%f26 +fdivd %f26,%f30,%f30 +fsubd %f28,%f30,%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call floor; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set Q,%l3 +st2 %f30,[%l3] +set Break,%l3 +st %g0,[%l3] +.L639: +set X,%l3 +set CInvrse,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set Z,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +set Q,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*2+68] +st %f31,[%sp+4*3+68] +ld [%sp+4*2+68],%o2 +ld [%sp+4*3+68],%o3 +call pow; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set Y,%l3 +st2 %f30,[%l3] +call IsYeqX; nop +set Q,%l3 +ld2 [%l3],%f30 +fnegs %f30,%f30; fmovs %f31,%f31 +st2 %f30,[%l3] +set X,%l2 +set C,%l1 +ld2 [%l1],%f30 +st2 %f30,[%l2] +set Z,%l2 +ld2 [%l2],%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +ld2 [%l3],%f30 +st %f30,[%sp+4*2+68] +st %f31,[%sp+4*3+68] +ld [%sp+4*2+68],%o2 +ld [%sp+4*3+68],%o3 +call pow; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set Y,%l3 +st2 %f30,[%l3] +call IsYeqX; nop +set Z,%l3 +ld2 [%l3],%f30 +set One,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbuge .L642; nop +set Break,%l3 +set 1,%l2 +st %l2,[%l3] +ba .L643; nop +.L642: +set Z,%l3 +set AInvrse,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +.L643: +.L640: +set Break,%l3 +ld [%l3],%l3 +cmp %l3,0; be .L639; nop +call PrintIfNPositive; nop +set N,%l3 +ld [%l3],%l3 +cmp %l3,0; bne .L644; nop +set .L646,%o0 +call printf; nop +.L644: +set .L45,%o0 +call printf; nop +set Milestone,%l3 +set 160,%l2 +st %l2,[%l3] +call Pause; nop +set .L647,%o0 +call printf; nop +set .L648,%o0 +call printf; nop +set Y,%l3 +set CInvrse,%l2 +ld2 [%l2],%f30 +fnegs %f30,%f30; fmovs %f31,%f31 +st2 %f30,[%l3] +set V9,%l2 +set HInvrse,%l1 +ld2 [%l1],%f30 +ld2 [%l3],%f28 +fmuld %f30,%f28,%f30 +st2 %f30,[%l2] +set sigsave,%l3 +set sigfpe,%l2 +st %l2,[%l3] +set ovfl_buf,%o0 +call setjmp; nop +cmp %o0,0; be .L649; nop +set I,%l3 +st %g0,[%l3] +set V9,%l3 +set Y,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +ba .L651; nop +.L649: +.L652: +set Y,%l3 +set V,%l2 +ld2 [%l3],%f30 +st2 %f30,[%l2] +set V9,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set HInvrse,%l1 +ld2 [%l1],%f30 +ld2 [%l3],%f28 +fmuld %f30,%f28,%f30 +st2 %f30,[%l2] +.L653: +set V9,%l3 +ld2 [%l3],%f30 +set Y,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbul .L652; nop +set I,%l3 +set 1,%l2 +st %l2,[%l3] +.L651: +set sigsave,%l3 +st %g0,[%l3] +set Z,%l3 +set V9,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set .L655,%o0 +call printf; nop +set .L656,%o0 +set Y,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +set V9,%l3 +set Y,%l2 +ld2 [%l2],%f30 +fnegs %f30,%f28; fmovs %f31,%f29 +st2 %f28,[%l3] +set V0,%l2 +ld2 [%l3],%f28 +st2 %f28,[%l2] +set V,%l3 +ld2 [%l3],%f28 +fsubd %f28,%f30,%f30 +ld2 [%l2],%f26 +faddd %f28,%f26,%f28 +fcmped %f30,%f28; nop; fbne .L657; nop +set .L659,%o0 +call printf; nop +ba .L658; nop +.L657: +set .L660,%o0 +call printf; nop +set 3,%o0 +set .L661,%o1 +call BadCond; nop +.L658: +set Z,%l3 +ld2 [%l3],%f30 +set Y,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L662; nop +set 1,%o0 +set .L158,%o1 +call BadCond; nop +set .L664,%o0 +set Y,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +set Z,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*3+68] +st %f31,[%sp+4*4+68] +ld [%sp+4*3+68],%o3 +ld [%sp+4*4+68],%o4 +call printf; nop +.L662: +set I,%l3 +ld [%l3],%l3 +cmp %l3,0; be .L665; nop +set Y,%l3 +set V,%l2 +ld2 [%l2],%f30 +set HInvrse,%l2 +ld2 [%l2],%f28 +set U2,%l2 +ld2 [%l2],%f26 +fmuld %f28,%f26,%f24 +fsubd %f24,%f28,%f24 +fmuld %f30,%f24,%f24 +st2 %f24,[%l3] +set Z,%l2 +ld2 [%l3],%f24 +set One,%l3 +ld2 [%l3],%f22 +fsubd %f22,%f28,%f28 +fmuld %f28,%f26,%f28 +fmuld %f28,%f30,%f30 +faddd %f24,%f30,%f30 +st2 %f30,[%l2] +ld2 [%l2],%f30 +set V0,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbuge .L667; nop +set Y,%l3 +set Z,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +.L667: +set Y,%l3 +ld2 [%l3],%f30 +set V0,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbuge .L669; nop +set V,%l3 +set Y,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +.L669: +set V0,%l3 +ld2 [%l3],%f30 +set V,%l3 +ld2 [%l3],%f28 +fsubd %f30,%f28,%f28 +fcmped %f28,%f30; nop; fbuge .L666; nop +set V,%l3 +set V0,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +ba .L666; nop +.L665: +set V,%l3 +set Y,%l2 +ld2 [%l2],%f30 +set HInvrse,%l2 +ld2 [%l2],%f28 +set U2,%l2 +ld2 [%l2],%f26 +fmuld %f28,%f26,%f24 +fsubd %f24,%f28,%f24 +fmuld %f30,%f24,%f24 +st2 %f24,[%l3] +ld2 [%l3],%f24 +set One,%l2 +ld2 [%l2],%f22 +fsubd %f22,%f28,%f28 +fmuld %f28,%f26,%f28 +fmuld %f28,%f30,%f30 +faddd %f24,%f30,%f30 +st2 %f30,[%l3] +.L666: +set .L673,%o0 +set V,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +set I,%l3 +ld [%l3],%l3 +cmp %l3,0; be .L674; nop +set .L676,%o0 +set V0,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +ba .L675; nop +.L674: +set .L677,%o0 +call printf; nop +.L675: +set V9,%l3 +set V,%l2 +ld2 [%l2],%f30 +set One,%l2 +ld2 [%l2],%f28 +fmuld %f30,%f28,%f30 +st2 %f30,[%l3] +set .L678,%o0 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +set V9,%l3 +set V,%l2 +ld2 [%l2],%f30 +set One,%l2 +ld2 [%l2],%f28 +fdivd %f30,%f28,%f30 +st2 %f30,[%l3] +set .L679,%o0 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +set .L680,%o0 +call printf; nop +set .L681,%o0 +call printf; nop +set Milestone,%l3 +set 170,%l2 +st %l2,[%l3] +set V,%l3 +ld2 [%l3],%f30 +fnegs %f30,%f28; fmovs %f31,%f29 +fcmped %f28,%f30; nop; fbuge .L686; nop +set V0,%l3 +ld2 [%l3],%f28 +fnegs %f28,%f26; fmovs %f29,%f27 +fcmped %f26,%f28; nop; fbuge .L686; nop +set UfThold,%l3 +ld2 [%l3],%f28 +fnegs %f28,%f26; fmovs %f29,%f27 +fcmped %f26,%f30; nop; fbuge .L686; nop +fcmped %f28,%f30; nop; fbul .L682; nop +.L686: +mov %g0,%o0 +set .L687,%o1 +call BadCond; nop +set .L688,%o0 +set V,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +set V0,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*3+68] +st %f31,[%sp+4*4+68] +ld [%sp+4*3+68],%o3 +ld [%sp+4*4+68],%o4 +set UfThold,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*5+68] +st %f31,[%sp+4*6+68] +ld [%sp+4*5+68],%o5 +call printf; nop +.L682: +set Milestone,%l3 +set 175,%l2 +st %l2,[%l3] +set .L45,%o0 +call printf; nop +set Indx,%l3 +set 1,%l2 +st %l2,[%l3] +.L689: +set Indx,%l3 +ld [%l3],%l3 +cmp %l3,1; be .L695; nop +cmp %l3,2; be .L696; nop +cmp %l3,3; be .L697; nop +ba .L693; nop +.L695: +set Z,%l3 +set UfThold,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +ba .L694; nop +.L696: +set Z,%l3 +set E0,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +ba .L694; nop +.L697: +set Z,%l3 +set PseudoZero,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +.L693: +.L694: +set Z,%l3 +ld2 [%l3],%f30 +set Zero,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbue .L698; nop +set Z,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call sqrt; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set V9,%l3 +st2 %f30,[%l3] +set V9,%l3 +ld2 [%l3],%f30 +set Y,%l3 +fmuld %f30,%f30,%f30 +st2 %f30,[%l3] +set Y,%l3 +ld2 [%l3],%f30 +set One,%l3 +ld2 [%l3],%f28 +set Radix,%l3 +ld2 [%l3],%f26 +set E9,%l3 +ld2 [%l3],%f24 +fmuld %f26,%f24,%f26 +set Z,%l3 +ld2 [%l3],%f24 +fsubd %f28,%f26,%f22 +fdivd %f30,%f22,%f22 +fcmped %f22,%f24; nop; fbul .L702; nop +faddd %f28,%f26,%f28 +fmuld %f28,%f24,%f28 +fcmped %f30,%f28; nop; fbule .L700; nop +.L702: +set V9,%l3 +ld2 [%l3],%f30 +set U1,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbule .L703; nop +set 1,%o0 +set .L158,%o1 +call BadCond; nop +ba .L704; nop +.L703: +set 2,%o0 +set .L158,%o1 +call BadCond; nop +.L704: +set .L705,%o0 +set Z,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +set .L706,%o0 +set Y,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +.L700: +.L698: +.L690: +set Indx,%l3 +ld [%l3],%l2 +add %l2,1,%l2 +st %l2,[%l3] +set Indx,%l3 +ld [%l3],%l3 +cmp %l3,3; ble .L689; nop +set Milestone,%l3 +set 180,%l2 +st %l2,[%l3] +set Indx,%l3 +set 1,%l2 +st %l2,[%l3] +.L707: +set Indx,%l3 +ld [%l3],%l3 +cmp %l3,1; bne .L711; nop +set Z,%l3 +set V,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +ba .L712; nop +.L711: +set Z,%l3 +set V0,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +.L712: +set Z,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call sqrt; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set V9,%l3 +st2 %f30,[%l3] +set X,%l3 +set V9,%l2 +ld2 [%l2],%f30 +set One,%l1 +ld2 [%l1],%f28 +set Radix,%l1 +ld2 [%l1],%f26 +set E9,%l1 +ld2 [%l1],%f24 +fmuld %f26,%f24,%f26 +fsubd %f28,%f26,%f28 +fmuld %f28,%f30,%f28 +st2 %f28,[%l3] +ld2 [%l3],%f28 +fmuld %f30,%f28,%f30 +st2 %f30,[%l2] +set V9,%l3 +ld2 [%l3],%f30 +set Z,%l3 +ld2 [%l3],%f28 +set One,%l3 +ld2 [%l3],%f26 +set Two,%l3 +ld2 [%l3],%f24 +set Radix,%l3 +ld2 [%l3],%f22 +fmuld %f24,%f22,%f24 +set E9,%l3 +ld2 [%l3],%f22 +fmuld %f24,%f22,%f24 +fsubd %f26,%f24,%f26 +fmuld %f26,%f28,%f26 +fcmped %f30,%f26; nop; fbul .L715; nop +fcmped %f30,%f28; nop; fbule .L713; nop +.L715: +set Y,%l3 +set V9,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set X,%l3 +ld2 [%l3],%f30 +set W,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbuge .L716; nop +set 1,%o0 +set .L158,%o1 +call BadCond; nop +ba .L717; nop +.L716: +set 2,%o0 +set .L158,%o1 +call BadCond; nop +.L717: +set .L718,%o0 +set Z,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +set .L719,%o0 +set Y,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +.L713: +.L708: +set Indx,%l3 +ld [%l3],%l2 +add %l2,1,%l2 +st %l2,[%l3] +set Indx,%l3 +ld [%l3],%l3 +cmp %l3,2; ble .L707; nop +set Milestone,%l3 +set 190,%l2 +st %l2,[%l3] +call Pause; nop +set X,%l3 +set UfThold,%l2 +ld2 [%l2],%f30 +set V,%l2 +ld2 [%l2],%f28 +fmuld %f30,%f28,%f30 +st2 %f30,[%l3] +set Radix,%l3 +ld2 [%l3],%f30 +set Y,%l3 +fmuld %f30,%f30,%f30 +st2 %f30,[%l3] +set X,%l3 +ld2 [%l3],%f30 +set Y,%l3 +ld2 [%l3],%f28 +fmuld %f30,%f28,%f26 +set One,%l3 +ld2 [%l3],%f24 +fcmped %f26,%f24; nop; fbul .L722; nop +fcmped %f30,%f28; nop; fbule .L720; nop +.L722: +set X,%l3 +ld2 [%l3],%f30 +set Y,%l3 +ld2 [%l3],%f28 +set U1,%l3 +ld2 [%l3],%f26 +fmuld %f30,%f28,%f24 +fcmped %f24,%f26; nop; fbul .L725; nop +fdivd %f28,%f26,%f28 +fcmped %f30,%f28; nop; fbule .L723; nop +.L725: +set 2,%o0 +set .L726,%o1 +call BadCond; nop +ba .L724; nop +.L723: +set 3,%o0 +set .L158,%o1 +call BadCond; nop +.L724: +set .L727,%o0 +set X,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +set .L728,%o3 +call printf; nop +.L720: +set Milestone,%l3 +set 200,%l2 +st %l2,[%l3] +set Indx,%l3 +set 1,%l2 +st %l2,[%l3] +.L729: +set X,%l3 +set F9,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set Indx,%l3 +ld [%l3],%l3 +cmp %l3,2; bl .L733; nop +cmp %l3,5; bg .L733; nop +sll %l3,2,%l3 +set .L739-8,%l2 +ld [%l3+%l2],%l3 +jmp %l3; nop +.section ".rodata" +.align 4 +.L739: +.word .L735 +.word .L736 +.word .L737 +.word .L738 +.section ".text" +.L735: +set X,%l3 +set One,%l2 +ld2 [%l2],%f30 +set U2,%l2 +ld2 [%l2],%f28 +faddd %f30,%f28,%f30 +st2 %f30,[%l3] +ba .L734; nop +.L736: +set X,%l3 +set V,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +ba .L734; nop +.L737: +set X,%l3 +set UfThold,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +ba .L734; nop +.L738: +set X,%l3 +set Radix,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +.L733: +.L734: +set Y,%l3 +set X,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set sigsave,%l3 +set sigfpe,%l2 +st %l2,[%l3] +set ovfl_buf,%o0 +call setjmp; nop +cmp %o0,0; be .L741; nop +set .L743,%o0 +set X,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +ba .L742; nop +.L741: +set V9,%l3 +set Half,%l2 +ld2 [%l2],%f30 +set Y,%l2 +ld2 [%l2],%f28 +set X,%l2 +ld2 [%l2],%f26 +fdivd %f28,%f26,%f28 +fsubd %f28,%f30,%f28 +fsubd %f28,%f30,%f30 +st2 %f30,[%l3] +ld2 [%l3],%f30 +set Zero,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbne .L744; nop +ba .L730; nop +.L744: +set V9,%l3 +ld2 [%l3],%f30 +set U1,%l3 +ld2 [%l3],%f28 +fnegs %f28,%f28; fmovs %f29,%f29 +fcmped %f30,%f28; nop; fbne .L746; nop +set Indx,%l3 +ld [%l3],%l3 +cmp %l3,5; bge .L746; nop +set 3,%o0 +set .L158,%o1 +call BadCond; nop +ba .L747; nop +.L746: +set 1,%o0 +set .L158,%o1 +call BadCond; nop +.L747: +set .L748,%o0 +set X,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +set .L749,%o0 +set V9,%l3 +ld2 [%l3],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +.L742: +set sigsave,%l3 +st %g0,[%l3] +.L730: +set Indx,%l3 +ld [%l3],%l2 +add %l2,1,%l2 +st %l2,[%l3] +set Indx,%l3 +ld [%l3],%l3 +cmp %l3,5; ble .L729; nop +set Milestone,%l3 +set 210,%l2 +st %l2,[%l3] +set MyZero,%l3 +set Zero,%l2 +ld2 [%l2],%f30 +st2 %f30,[%l3] +set .L45,%o0 +call printf; nop +set .L750,%o0 +call printf; nop +set sigsave,%l3 +set sigfpe,%l2 +st %l2,[%l3] +set .L751,%o0 +call printf; nop +set ovfl_buf,%o0 +call setjmp; nop +cmp %o0,0; bne .L752; nop +set .L754,%o0 +set One,%l3 +ld2 [%l3],%f30 +set MyZero,%l3 +ld2 [%l3],%f28 +fdivd %f30,%f28,%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +.L752: +set sigsave,%l3 +st %g0,[%l3] +set sigfpe,%l2 +st %l2,[%l3] +set .L755,%o0 +call printf; nop +set ovfl_buf,%o0 +call setjmp; nop +cmp %o0,0; bne .L756; nop +set .L754,%o0 +set Zero,%l3 +ld2 [%l3],%f30 +set MyZero,%l3 +ld2 [%l3],%f28 +fdivd %f30,%f28,%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +.L756: +set sigsave,%l3 +st %g0,[%l3] +set Milestone,%l3 +set 220,%l2 +st %l2,[%l3] +call Pause; nop +set .L45,%o0 +call printf; nop +st %g0,[%fp+-116] +.L763: +ld [%fp+-116],%l3 +sll %l3,2,%l3 +set ErrCnt,%l2 +ld [%l3+%l2],%l3 +cmp %l3,0; be .L767; nop +set .L769,%o0 +ld [%fp+-116],%l3 +sll %l3,2,%l3 +set .758,%l2 +ld [%l3+%l2],%o1 +set ErrCnt,%l2 +ld [%l3+%l2],%o2 +call printf; nop +.L767: +.L764: +ld [%fp+-116],%l3 +add %l3,1,%l3 +st %l3,[%fp+-116] +ld [%fp+-116],%l3 +cmp %l3,4; bl .L763; nop +set .L45,%o0 +call printf; nop +set ErrCnt,%l3 +ld [%l3],%l3 +set ErrCnt+4,%l2 +ld [%l2],%l2 +add %l3,%l2,%l3 +set ErrCnt+8,%l2 +ld [%l2],%l2 +add %l3,%l2,%l3 +set ErrCnt+12,%l2 +ld [%l2],%l2 +add %l3,%l2,%l3 +cmp %l3,0; ble .L770; nop +set ErrCnt,%l2 +ld [%l2],%l2 +set ErrCnt+4,%l1 +ld [%l1],%l1 +add %l2,%l1,%l2 +set ErrCnt+8,%l1 +ld [%l1],%l1 +add %l2,%l1,%l2 +cmp %l2,%g0; bne .L775; nop +set ErrCnt+12,%l2 +ld [%l2],%l2 +cmp %l2,%g0; ble .L775; nop +set .L780,%o0 +call printf; nop +set .L781,%o0 +call printf; nop +.L775: +set ErrCnt,%l2 +ld [%l2],%l2 +set ErrCnt+4,%l1 +ld [%l1],%l1 +add %l2,%l1,%l2 +cmp %l2,%g0; bne .L782; nop +set ErrCnt+8,%l2 +ld [%l2],%l2 +cmp %l2,%g0; ble .L782; nop +set .L786,%o0 +call printf; nop +set .L787,%o0 +call printf; nop +.L782: +set ErrCnt,%l3 +ld [%l3],%l3 +set ErrCnt+4,%l2 +ld [%l2],%l2 +add %l3,%l2,%l3 +cmp %l3,0; ble .L788; nop +set .L791,%o0 +call printf; nop +set .L792,%o0 +call printf; nop +.L788: +set ErrCnt,%l3 +ld [%l3],%l3 +cmp %l3,0; ble .L771; nop +set .L795,%o0 +call printf; nop +set .L796,%o0 +call printf; nop +ba .L771; nop +.L770: +set .L797,%o0 +call printf; nop +set RMult,%l3 +ld [%l3],%l3 +cmp %l3,1; bne .L802; nop +set RDiv,%l3 +ld [%l3],%l3 +cmp %l3,1; bne .L802; nop +set RAddSub,%l3 +ld [%l3],%l3 +cmp %l3,1; bne .L802; nop +set RSqrt,%l3 +ld [%l3],%l3 +cmp %l3,1; be .L798; nop +.L802: +set .L803,%o0 +call printf; nop +ba .L799; nop +.L798: +set One,%l3 +ld2 [%l3],%f30 +set StickyBit,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbul .L804; nop +set Radix,%l3 +ld2 [%l3],%f28 +set Two,%l3 +ld2 [%l3],%f26 +fsubd %f28,%f26,%f26 +set Nine,%l3 +ld2 [%l3],%f24 +fsubd %f28,%f24,%f28 +fsubd %f28,%f30,%f30 +fmuld %f26,%f30,%f30 +set Zero,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbne .L804; nop +set .L806,%o0 +call printf; nop +set .L807,%o0 +call printf; nop +set Two,%l3 +ld2 [%l3],%f30 +set Radix,%l3 +ld2 [%l3],%f28 +fcmped %f28,%f30; nop; fbne .L808; nop +set Precision,%l3 +ld2 [%l3],%f28 +set TwentySeven,%l3 +ld2 [%l3],%f26 +set Four,%l3 +ld2 [%l3],%f24 +set Three,%l3 +ld2 [%l3],%f22 +fmuld %f24,%f22,%f24 +fmuld %f24,%f30,%f30 +fsubd %f28,%f30,%f30 +fsubd %f28,%f26,%f28 +fsubd %f28,%f26,%f28 +set One,%l3 +ld2 [%l3],%f26 +faddd %f28,%f26,%f28 +fmuld %f30,%f28,%f30 +set Zero,%l3 +ld2 [%l3],%f28 +fcmped %f30,%f28; nop; fbne .L808; nop +set .L810,%o0 +call printf; nop +ba .L809; nop +.L808: +set .L811,%o0 +call printf; nop +.L809: +set IEEE,%l3 +ld [%l3],%l3 +cmp %l3,0; be .L812; nop +set .L814,%o0 +call printf; nop +ba .L813; nop +.L812: +set .L815,%o0 +call printf; nop +set .L816,%o0 +call printf; nop +.L813: +.L804: +set .L817,%o0 +call printf; nop +.L799: +.L771: +set fpecount,%l3 +ld [%l3],%l3 +cmp %l3,0; be .L818; nop +set .L820,%o0 +set fpecount,%l3 +ld [%l3],%o1 +call printf; nop +.L818: +set .L821,%o0 +call printf; nop +mov %g0,%i0 +.L7: +ret; restore +.type main,#function +.size main,.-main +.global Sign +.align 4 +Sign: +save %sp,-104,%sp +st %r24,[%fp+68] +st %r25,[%fp+72] +ld2 [%fp+68],%f30 +set .L8,%i5 +ld2 [%i5],%f28 +fcmped %f30,%f28; nop; fbul .L824; nop +set .L9,%i5 +ld2 [%i5],%f30 +std %f30,[%fp+-8] +ba .L825; nop +.L824: +set .L826,%i5 +ld2 [%i5],%f30 +std %f30,[%fp+-8] +.L825: +ldd [%fp+-8],%f0 +.L822: +ret; restore +.type Sign,#function +.size Sign,.-Sign +.global Pause +.align 4 +Pause: +save %sp,-96,%sp +set .L828,%o0 +set Milestone,%i5 +ld [%i5],%o1 +call printf; nop +set .L829,%o0 +set PageNo,%i5 +ld [%i5],%o1 +call printf; nop +set Milestone,%i5 +ld [%i5],%i4 +add %i4,1,%i4 +st %i4,[%i5] +set PageNo,%i5 +ld [%i5],%i4 +add %i4,1,%i4 +st %i4,[%i5] +mov %g0,%i0 +.L827: +ret; restore +.type Pause,#function +.size Pause,.-Pause +.global TstCond +.align 4 +TstCond: +save %sp,-96,%sp +cmp %i1,0; bne .L831; nop +mov %i0,%o0 +mov %i2,%o1 +call BadCond; nop +set .L814,%o0 +call printf; nop +.L831: +mov %g0,%i0 +.L830: +ret; restore +.type TstCond,#function +.size TstCond,.-TstCond +.section ".data" +.type .834,#object +.align 4 +.834: +.word .L835 +.word .L836 +.word .L837 +.word .L838 +.size .834,16 +.global BadCond +.section ".text" +.align 4 +BadCond: +save %sp,-96,%sp +sll %i0,2,%i5 +set ErrCnt,%i4 +add %i5,%i4,%i5 +ld [%i5],%i4 +add %i4,1,%i4 +st %i4,[%i5] +set .L839,%o0 +sll %i0,2,%i5 +set .834,%i4 +ld [%i5+%i4],%o1 +mov %i1,%o2 +call printf; nop +mov %g0,%i0 +.L833: +ret; restore +.type BadCond,#function +.size BadCond,.-BadCond +.global Random +.align 4 +Random: +save %sp,-120,%sp +set Random1,%i5 +ld2 [%i5],%f30 +set Random9,%i5 +ld2 [%i5],%f28 +faddd %f30,%f28,%f30 +std %f30,[%fp+-8] +ldd [%fp+-8],%f30 +fmuld %f30,%f30,%f28 +std %f28,[%fp+-16] +ldd [%fp+-16],%f28 +fmuld %f28,%f28,%f28 +std %f28,[%fp+-16] +ldd [%fp+-16],%f28 +fmuld %f30,%f28,%f30 +std %f30,[%fp+-8] +ldd [%fp+-8],%f30 +std %f30,[%fp+-24] +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call floor; nop +fmovs %f0,%f30; fmovs %f1,%f31 +ldd [%fp+-24],%f28 +fsubd %f28,%f30,%f30 +std %f30,[%fp+-16] +set Random1,%i5 +ldd [%fp+-16],%f30 +set .L841,%i4 +ld2 [%i4],%f28 +ldd [%fp+-8],%f26 +fmuld %f28,%f26,%f28 +faddd %f30,%f28,%f30 +st2 %f30,[%i5] +ld2 [%i5],%f0 +.L840: +ret; restore +.type Random,#function +.size Random,.-Random +.global SqXMinX +.align 4 +SqXMinX: +save %sp,-112,%sp +set X,%i5 +ld2 [%i5],%f30 +set BInvrse,%i5 +ld2 [%i5],%f28 +fmuld %f30,%f28,%f28 +std %f28,[%fp+-8] +ldd [%fp+-8],%f28 +fsubd %f30,%f28,%f28 +std %f28,[%fp+-16] +fmuld %f30,%f30,%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call sqrt; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set SqEr,%i5 +ldd [%fp+-8],%f28 +fsubd %f30,%f28,%f30 +ldd [%fp+-16],%f28 +fsubd %f30,%f28,%f30 +set OneUlp,%i4 +ld2 [%i4],%f28 +fdivd %f30,%f28,%f30 +st2 %f30,[%i5] +set SqEr,%i5 +ld2 [%i5],%f30 +set Zero,%i5 +ld2 [%i5],%f28 +fcmped %f30,%f28; nop; fbue .L843; nop +set SqEr,%i5 +ld2 [%i5],%f30 +set MinSqEr,%i5 +ld2 [%i5],%f28 +fcmped %f30,%f28; nop; fbuge .L845; nop +set MinSqEr,%i5 +set SqEr,%i4 +ld2 [%i4],%f30 +st2 %f30,[%i5] +.L845: +set SqEr,%i5 +ld2 [%i5],%f30 +set MaxSqEr,%i5 +ld2 [%i5],%f28 +fcmped %f30,%f28; nop; fbule .L847; nop +set MaxSqEr,%i5 +set SqEr,%i4 +ld2 [%i4],%f30 +st2 %f30,[%i5] +.L847: +set J,%i5 +ld2 [%i5],%f30 +set .L9,%i4 +ld2 [%i4],%f28 +faddd %f30,%f28,%f30 +st2 %f30,[%i5] +mov %i0,%o0 +set .L45,%o1 +call BadCond; nop +set .L849,%o0 +set X,%i5 +ld2 [%i5],%f30 +fmuld %f30,%f30,%f28 +st %f28,[%sp+4*1+68] +st %f29,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +st %f30,[%sp+4*3+68] +st %f31,[%sp+4*4+68] +ld [%sp+4*3+68],%o3 +ld [%sp+4*4+68],%o4 +set OneUlp,%i5 +ld2 [%i5],%f30 +set SqEr,%i5 +ld2 [%i5],%f28 +fmuld %f30,%f28,%f30 +st %f30,[%sp+4*5+68] +st %f31,[%sp+4*6+68] +ld [%sp+4*5+68],%o5 +call printf; nop +set .L850,%o0 +call printf; nop +.L843: +mov %g0,%i0 +.L842: +ret; restore +.type SqXMinX,#function +.size SqXMinX,.-SqXMinX +.global NewD +.align 4 +NewD: +save %sp,-96,%sp +set X,%i5 +set Z1,%i4 +ld2 [%i4],%f30 +set Q,%i4 +ld2 [%i4],%f28 +fmuld %f30,%f28,%f30 +st2 %f30,[%i5] +set Half,%i4 +ld2 [%i4],%f30 +ld2 [%i5],%f28 +set Radix,%i4 +ld2 [%i4],%f26 +fdivd %f28,%f26,%f28 +fsubd %f30,%f28,%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call floor; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set Radix,%i4 +ld2 [%i4],%f28 +set X,%i4 +fmuld %f30,%f28,%f30 +ld2 [%i4],%f26 +faddd %f30,%f26,%f30 +st2 %f30,[%i5] +set Q,%i5 +ld2 [%i4],%f30 +set Z,%i4 +ld2 [%i4],%f26 +set D,%i3 +ld2 [%i3],%f24 +ld2 [%i5],%f22 +fmuld %f30,%f26,%f20 +fsubd %f22,%f20,%f22 +fdivd %f22,%f28,%f22 +fmuld %f30,%f30,%f20 +fdivd %f24,%f28,%f28 +fmuld %f20,%f28,%f28 +faddd %f22,%f28,%f28 +st2 %f28,[%i5] +set Two,%i5 +ld2 [%i5],%f28 +fmuld %f28,%f30,%f30 +fmuld %f30,%f24,%f30 +fsubd %f26,%f30,%f30 +st2 %f30,[%i4] +ld2 [%i4],%f30 +set Zero,%i5 +ld2 [%i5],%f28 +fcmped %f30,%f28; nop; fbug .L852; nop +set Z,%i5 +ld2 [%i5],%f30 +fnegs %f30,%f30; fmovs %f31,%f31 +st2 %f30,[%i5] +set Z1,%i5 +ld2 [%i5],%f30 +fnegs %f30,%f30; fmovs %f31,%f31 +st2 %f30,[%i5] +.L852: +set D,%i5 +set Radix,%i4 +ld2 [%i4],%f30 +ld2 [%i5],%f28 +fmuld %f30,%f28,%f30 +st2 %f30,[%i5] +mov %g0,%i0 +.L851: +ret; restore +.type NewD,#function +.size NewD,.-NewD +.global SR3750 +.align 4 +SR3750: +save %sp,-96,%sp +set X,%i5 +ld2 [%i5],%f30 +set Radix,%i5 +ld2 [%i5],%f28 +set Z2,%i5 +ld2 [%i5],%f26 +fsubd %f30,%f28,%f24 +fsubd %f26,%f28,%f28 +fcmped %f24,%f28; nop; fbul .L855; nop +fsubd %f30,%f26,%f30 +set W,%i5 +ld2 [%i5],%f28 +fsubd %f28,%f26,%f28 +fcmped %f30,%f28; nop; fbug .L855; nop +set I,%i5 +ld [%i5],%i4 +add %i4,1,%i4 +st %i4,[%i5] +set X,%i5 +ld2 [%i5],%f30 +set D,%i5 +ld2 [%i5],%f28 +fmuld %f30,%f28,%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call sqrt; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set X2,%i5 +st2 %f30,[%i5] +set Y2,%i5 +set X2,%i4 +set Z2,%i3 +ld2 [%i3],%f30 +set Y,%i3 +ld2 [%i3],%f28 +ld2 [%i4],%f26 +fsubd %f26,%f30,%f26 +fsubd %f28,%f30,%f30 +fsubd %f26,%f30,%f30 +st2 %f30,[%i5] +set Half,%i3 +ld2 [%i3],%f30 +set X8,%i3 +ld2 [%i3],%f26 +fsubd %f28,%f30,%f28 +fdivd %f26,%f28,%f28 +st2 %f28,[%i4] +ld2 [%i4],%f28 +fmuld %f30,%f28,%f26 +fmuld %f26,%f28,%f26 +fsubd %f28,%f26,%f28 +st2 %f28,[%i4] +set SqEr,%i3 +ld2 [%i5],%f28 +faddd %f28,%f30,%f28 +ld2 [%i4],%f26 +fsubd %f30,%f26,%f30 +faddd %f28,%f30,%f30 +st2 %f30,[%i3] +ld2 [%i3],%f30 +set MinSqEr,%i5 +ld2 [%i5],%f28 +fcmped %f30,%f28; nop; fbuge .L857; nop +set MinSqEr,%i5 +set SqEr,%i4 +ld2 [%i4],%f30 +st2 %f30,[%i5] +.L857: +set SqEr,%i5 +set Y2,%i4 +ld2 [%i4],%f30 +set X2,%i4 +ld2 [%i4],%f28 +fsubd %f30,%f28,%f30 +st2 %f30,[%i5] +ld2 [%i5],%f30 +set MaxSqEr,%i5 +ld2 [%i5],%f28 +fcmped %f30,%f28; nop; fbule .L859; nop +set MaxSqEr,%i5 +set SqEr,%i4 +ld2 [%i4],%f30 +st2 %f30,[%i5] +.L859: +.L855: +mov %g0,%i0 +.L854: +ret; restore +.type SR3750,#function +.size SR3750,.-SR3750 +.global IsYeqX +.align 4 +IsYeqX: +save %sp,-96,%sp +set Y,%i5 +ld2 [%i5],%f30 +set X,%i5 +ld2 [%i5],%f28 +fcmped %f30,%f28; nop; fbue .L862; nop +set N,%i5 +ld [%i5],%i5 +cmp %i5,0; bg .L864; nop +set Zero,%i5 +ld2 [%i5],%f30 +set Z,%i5 +ld2 [%i5],%f28 +fcmped %f28,%f30; nop; fbne .L866; nop +set Q,%i5 +ld2 [%i5],%f28 +fcmped %f28,%f30; nop; fbug .L866; nop +set .L868,%o0 +call printf; nop +ba .L867; nop +.L866: +set 2,%o0 +set .L869,%o1 +call BadCond; nop +.L867: +set .L870,%o0 +set Z,%i5 +ld2 [%i5],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +set Q,%i5 +ld2 [%i5],%f30 +st %f30,[%sp+4*3+68] +st %f31,[%sp+4*4+68] +ld [%sp+4*3+68],%o3 +ld [%sp+4*4+68],%o4 +call printf; nop +set .L871,%o0 +set Y,%i5 +ld2 [%i5],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +set .L872,%o0 +set X,%i5 +ld2 [%i5],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +set .L873,%o0 +set Y,%i5 +ld2 [%i5],%f30 +set X,%i5 +ld2 [%i5],%f28 +fsubd %f30,%f28,%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +.L864: +set N,%i5 +ld [%i5],%i4 +add %i4,1,%i4 +st %i4,[%i5] +.L862: +mov %g0,%i0 +.L861: +ret; restore +.type IsYeqX,#function +.size IsYeqX,.-IsYeqX +.global SR3980 +.align 4 +SR3980: +save %sp,-96,%sp +.L875: +set Q,%i5 +set I,%i4 +ld [%i4],%i4 +st %i4,[%sp+64]; ld [%sp+64],%f30; fitod %f30,%f30 +st2 %f30,[%i5] +set Z,%i4 +ld2 [%i4],%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +ld2 [%i5],%f30 +st %f30,[%sp+4*2+68] +st %f31,[%sp+4*3+68] +ld [%sp+4*2+68],%o2 +ld [%sp+4*3+68],%o3 +call pow; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set Y,%i5 +st2 %f30,[%i5] +call IsYeqX; nop +set I,%i5 +ld [%i5],%i4 +add %i4,1,%i4 +st %i4,[%i5] +set M,%i5 +ld [%i5],%i5 +cmp %i4,%i5; ble .L878; nop +ba .L877; nop +.L878: +set X,%i5 +set Z,%i4 +ld2 [%i4],%f30 +ld2 [%i5],%f28 +fmuld %f30,%f28,%f30 +st2 %f30,[%i5] +.L876: +set X,%i5 +ld2 [%i5],%f30 +set W,%i5 +ld2 [%i5],%f28 +fcmped %f30,%f28; nop; fbul .L875; nop +.L877: +mov %g0,%i0 +.L874: +ret; restore +.type SR3980,#function +.size SR3980,.-SR3980 +.global PrintIfNPositive +.align 4 +PrintIfNPositive: +save %sp,-96,%sp +set N,%i5 +ld [%i5],%i5 +cmp %i5,0; ble .L881; nop +set .L883,%o0 +set N,%i5 +ld [%i5],%o1 +call printf; nop +.L881: +mov %g0,%i0 +.L880: +ret; restore +.type PrintIfNPositive,#function +.size PrintIfNPositive,.-PrintIfNPositive +.global TstPtUf +.align 4 +TstPtUf: +save %sp,-96,%sp +set N,%i5 +st %g0,[%i5] +set Z,%i5 +ld2 [%i5],%f30 +set Zero,%i5 +ld2 [%i5],%f28 +fcmped %f30,%f28; nop; fbue .L885; nop +set .L887,%o0 +call printf; nop +set .L888,%o0 +call printf; nop +set sigsave,%i5 +set sigfpe,%i4 +st %i4,[%i5] +set ovfl_buf,%o0 +call setjmp; nop +cmp %o0,0; be .L889; nop +ba .L891; nop +.L889: +set Q9,%i5 +set Z,%i4 +ld2 [%i4],%f30 +faddd %f30,%f30,%f28 +fdivd %f28,%f30,%f30 +st2 %f30,[%i5] +set .L892,%o0 +ld2 [%i5],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +set Q9,%i5 +ld2 [%i5],%f30 +set Two,%i5 +ld2 [%i5],%f28 +fsubd %f30,%f28,%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call fabs; nop +fmovs %f0,%f30; fmovs %f1,%f31 +set Radix,%i5 +ld2 [%i5],%f28 +set U2,%i5 +ld2 [%i5],%f26 +fmuld %f28,%f26,%f28 +fcmped %f30,%f28; nop; fbuge .L893; nop +set .L895,%o0 +call printf; nop +set .L896,%o0 +call printf; nop +ba .L894; nop +.L893: +set Q9,%i5 +ld2 [%i5],%f30 +set One,%i5 +ld2 [%i5],%f28 +fcmped %f30,%f28; nop; fbul .L899; nop +set Two,%i5 +ld2 [%i5],%f28 +fcmped %f30,%f28; nop; fbule .L897; nop +.L899: +.L891: +set 1,%i5 +set N,%i4 +st %i5,[%i4] +set ErrCnt+4,%i5 +set ErrCnt+4,%i4 +ld [%i4],%i4 +add %i4,1,%i4 +st %i4,[%i5] +set .L902,%o0 +call printf; nop +ba .L898; nop +.L897: +set 1,%i5 +set N,%i4 +st %i5,[%i4] +set ErrCnt+8,%i5 +set ErrCnt+8,%i4 +ld [%i4],%i4 +add %i4,1,%i4 +st %i4,[%i5] +set .L905,%o0 +call printf; nop +.L898: +.L894: +set sigsave,%i5 +st %g0,[%i5] +set V9,%i5 +set Z,%i4 +ld2 [%i4],%f30 +set One,%i4 +ld2 [%i4],%f28 +fmuld %f30,%f28,%f26 +st2 %f26,[%i5] +set Random1,%i4 +ld2 [%i5],%f26 +st2 %f26,[%i4] +fmuld %f28,%f30,%f26 +st2 %f26,[%i5] +set Random2,%i4 +ld2 [%i5],%f26 +st2 %f26,[%i4] +fdivd %f30,%f28,%f30 +st2 %f30,[%i5] +set Z,%i5 +ld2 [%i5],%f30 +set Random1,%i5 +ld2 [%i5],%f28 +fcmped %f30,%f28; nop; fbne .L906; nop +set Random2,%i5 +ld2 [%i5],%f28 +fcmped %f30,%f28; nop; fbne .L906; nop +set V9,%i5 +ld2 [%i5],%f28 +fcmped %f30,%f28; nop; fbne .L906; nop +set N,%i5 +ld [%i5],%i5 +cmp %i5,0; ble .L907; nop +call Pause; nop +ba .L907; nop +.L906: +set N,%i5 +set 1,%i4 +st %i4,[%i5] +set 2,%o0 +set .L910,%o1 +call BadCond; nop +set .L911,%o0 +set Z,%i5 +ld2 [%i5],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +set Z,%i5 +ld2 [%i5],%f30 +set Random1,%i5 +ld2 [%i5],%f28 +fcmped %f30,%f28; nop; fbue .L912; nop +set .L914,%o0 +set Random1,%i5 +ld2 [%i5],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +.L912: +set Random2,%i5 +ld2 [%i5],%f30 +set Z,%i5 +ld2 [%i5],%f28 +fcmped %f28,%f30; nop; fbue .L915; nop +set Random1,%i5 +ld2 [%i5],%f28 +fcmped %f30,%f28; nop; fbue .L915; nop +set .L917,%o0 +set Random2,%i5 +ld2 [%i5],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +.L915: +set Z,%i5 +ld2 [%i5],%f30 +set V9,%i5 +ld2 [%i5],%f28 +fcmped %f30,%f28; nop; fbue .L918; nop +set .L920,%o0 +set V9,%i5 +ld2 [%i5],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +.L918: +set Random2,%i5 +ld2 [%i5],%f30 +set Random1,%i5 +ld2 [%i5],%f28 +fcmped %f30,%f28; nop; fbue .L921; nop +set ErrCnt+8,%i5 +set ErrCnt+8,%i4 +ld [%i4],%i4 +add %i4,1,%i4 +st %i4,[%i5] +set 2,%o0 +set .L925,%o1 +call BadCond; nop +set .L926,%o0 +set Random2,%i5 +ld2 [%i5],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +set .L927,%o0 +set Random1,%i5 +ld2 [%i5],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +.L921: +call Pause; nop +.L907: +.L885: +mov %g0,%i0 +.L884: +ret; restore +.type TstPtUf,#function +.size TstPtUf,.-TstPtUf +.global notify +.align 4 +notify: +save %sp,-96,%sp +set .L929,%o0 +mov %i0,%o1 +call printf; nop +set .L930,%o0 +call printf; nop +mov %g0,%i0 +.L928: +ret; restore +.type notify,#function +.size notify,.-notify +.global msglist +.align 4 +msglist: +save %sp,-96,%sp +ba .L933; nop +.L932: +set .L935,%o0 +mov %i0,%i5 +add %i5,4,%i0 +ld [%i5],%o1 +call printf; nop +.L933: +ld [%i0],%i5 +cmp %i5,%g0; bne .L932; nop +mov %g0,%i0 +.L931: +ret; restore +.type msglist,#function +.size msglist,.-msglist +.section ".data" +.type .937,#object +.align 4 +.937: +.word .L938 +.word .L939 +.word .L940 +.word .L941 +.word .L942 +.word .L943 +.word .L944 +.word .L945 +.word .L946 +.word 0x0 +.size .937,40 +.global Instructions +.section ".text" +.align 4 +Instructions: +save %sp,-96,%sp +set .937,%o0 +call msglist; nop +mov %g0,%i0 +.L936: +ret; restore +.type Instructions,#function +.size Instructions,.-Instructions +.section ".data" +.type .948,#object +.align 4 +.948: +.word .L949 +.word .L950 +.word .L951 +.word .L952 +.word .L953 +.word .L954 +.word .L955 +.word .L956 +.word .L957 +.word .L958 +.word .L959 +.word .L960 +.word .L961 +.word .L962 +.word 0x0 +.size .948,60 +.global Heading +.section ".text" +.align 4 +Heading: +save %sp,-96,%sp +set .948,%o0 +call msglist; nop +mov %g0,%i0 +.L947: +ret; restore +.type Heading,#function +.size Heading,.-Heading +.section ".data" +.type .964,#object +.align 4 +.964: +.word .L965 +.word .L966 +.word .L967 +.word .L968 +.word .L969 +.word .L970 +.word .L971 +.word .L972 +.word .L973 +.word .L974 +.word .L975 +.word .L976 +.word .L977 +.word .L978 +.word .L979 +.word .L980 +.word .L981 +.word .L982 +.word .L983 +.word 0x0 +.size .964,80 +.global Characteristics +.section ".text" +.align 4 +Characteristics: +save %sp,-96,%sp +set .964,%o0 +call msglist; nop +mov %g0,%i0 +.L963: +ret; restore +.type Characteristics,#function +.size Characteristics,.-Characteristics +.section ".data" +.type .985,#object +.align 4 +.985: +.word .L986 +.word .L987 +.word .L988 +.word .L989 +.word .L990 +.word .L991 +.word .L992 +.word .L993 +.word .L994 +.word .L995 +.word .L996 +.word .L997 +.word .L998 +.word .L999 +.word .L1000 +.word .L1001 +.word .L1002 +.word 0x0 +.size .985,72 +.global History +.section ".text" +.align 4 +History: +save %sp,-96,%sp +set .985,%o0 +call msglist; nop +mov %g0,%i0 +.L984: +ret; restore +.type History,#function +.size History,.-History +.global pow +.align 4 +pow: +save %sp,-120,%sp +st %r24,[%fp+68] +st %r25,[%fp+72] +st %r26,[%fp+76] +st %r27,[%fp+80] +mov %g0,%i4 +mov %g0,%i3 +ld2 [%fp+76],%f30 +set .L8,%i2 +ld2 [%i2],%f28 +fcmped %f30,%f28; nop; fbne .L1004; nop +set .L9,%i2 +ld2 [%i2],%f0 +ba .L1003; nop +.L1004: +ld2 [%fp+76],%f30 +set .L1009,%i2 +ld2 [%i2],%f28 +fcmped %f30,%f28; nop; fbul .L1008; nop +set .L1010,%i2 +ld2 [%i2],%f28 +fcmped %f30,%f28; nop; fbule .L1006; nop +.L1008: +ld2 [%fp+68],%f30 +set .L826,%i2 +ld2 [%i2],%f28 +fcmped %f30,%f28; nop; fbue .L1006; nop +ld2 [%fp+68],%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call log; nop +fmovs %f0,%f30; fmovs %f1,%f31 +ld2 [%fp+76],%f28 +fmuld %f28,%f30,%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call exp; nop +fmovs %f0,%f30; fmovs %f1,%f31 +fmovs %f30,%f0; fmovs %f31,%f1 +ba .L1003; nop +.L1006: +ld2 [%fp+76],%f30 +set .L8,%i2 +ld2 [%i2],%f28 +fcmped %f30,%f28; nop; fbuge .L1011; nop +ld2 [%fp+76],%f30 +fnegs %f30,%f30; fmovs %f31,%f31 +st2 %f30,[%fp+76] +set 1,%i3 +.L1011: +ld2 [%fp+76],%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +add -24,%fp,%o2 +call modf; nop +fmovs %f0,%f30; fmovs %f1,%f31 +st2 %f30,[%fp+76] +ld2 [%fp+76],%f30 +set .L8,%i2 +ld2 [%i2],%f28 +fcmped %f30,%f28; nop; fbue .L1013; nop +ld2 [%fp+68],%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call log; nop +fmovs %f0,%f30; fmovs %f1,%f31 +ld2 [%fp+76],%f28 +fmuld %f28,%f30,%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +call exp; nop +fmovs %f0,%f30; fmovs %f1,%f31 +std %f30,[%fp+-16] +ba .L1014; nop +.L1013: +set .L9,%i2 +ld2 [%i2],%f30 +std %f30,[%fp+-16] +.L1014: +ld2 [%fp+68],%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +add -4,%fp,%o2 +call frexp; nop +fmovs %f0,%f30; fmovs %f1,%f31 +st2 %f30,[%fp+68] +ldd [%fp+-24],%f30 +fdtoi %f30,%f0; st %f0,[%sp+64]; ld [%sp+64],%i2 +mov %i2,%i5 +cmp %i2,0; be .L1015; nop +.L1017: +and %i5,1,%i2 +cmp %i2,0; be .L1021; nop +ldd [%fp+-16],%f30 +ld2 [%fp+68],%f28 +fmuld %f30,%f28,%f30 +std %f30,[%fp+-16] +ld [%fp+-4],%i2 +add %i4,%i2,%i4 +.L1021: +sra %i5,1,%i2 +mov %i2,%i5 +cmp %i2,0; bne .L1023; nop +ba .L1019; nop +.L1023: +ld2 [%fp+68],%f30 +fmuld %f30,%f30,%f30 +st2 %f30,[%fp+68] +ld [%fp+-4],%i2 +sll %i2,1,%i2 +st %i2,[%fp+-4] +ld2 [%fp+68],%f30 +set .L1027,%i2 +ld2 [%i2],%f28 +fcmped %f30,%f28; nop; fbuge .L1017; nop +set .L1028,%i2 +ld2 [%i2],%f30 +ld2 [%fp+68],%f28 +fmuld %f30,%f28,%f30 +st2 %f30,[%fp+68] +ld [%fp+-4],%i2 +sub %i2,1,%i2 +st %i2,[%fp+-4] +ba .L1017; nop +.L1019: +.L1015: +cmp %i3,0; be .L1029; nop +set .L9,%i2 +ld2 [%i2],%f30 +ldd [%fp+-16],%f28 +fdivd %f30,%f28,%f30 +std %f30,[%fp+-16] +neg %i4,%i4 +.L1029: +ldd [%fp+-16],%f30 +st %f30,[%sp+4*0+68] +st %f31,[%sp+4*1+68] +ld [%sp+4*0+68],%o0 +ld [%sp+4*1+68],%o1 +mov %i4,%o2 +call ldexp; nop +fmovs %f0,%f30; fmovs %f1,%f31 +fmovs %f30,%f0; fmovs %f31,%f1 +.L1003: +ret; restore +.type pow,#function +.size pow,.-pow +.section ".bss" +.global UfNGrad +.type UfNGrad,#object +.size UfNGrad,4 +.common UfNGrad,4,4 +.global SqRWrng +.type SqRWrng,#object +.size SqRWrng,4 +.common SqRWrng,4,4 +.global IEEE +.type IEEE,#object +.size IEEE,4 +.common IEEE,4,4 +.global Anomaly +.type Anomaly,#object +.size Anomaly,4 +.common Anomaly,4,4 +.global Monot +.type Monot,#object +.size Monot,4 +.common Monot,4,4 +.global NotMonot +.type NotMonot,#object +.size NotMonot,4 +.common NotMonot,4,4 +.global Done +.type Done,#object +.size Done,4 +.common Done,4,4 +.global Break +.type Break,#object +.size Break,4 +.common Break,4,4 +.global RSqrt +.type RSqrt,#object +.size RSqrt,4 +.common RSqrt,4,4 +.global RAddSub +.type RAddSub,#object +.size RAddSub,4 +.common RAddSub,4,4 +.global RDiv +.type RDiv,#object +.size RDiv,4 +.common RDiv,4,4 +.global RMult +.type RMult,#object +.size RMult,4 +.common RMult,4,4 +.global GAddSub +.type GAddSub,#object +.size GAddSub,4 +.common GAddSub,4,4 +.global GDiv +.type GDiv,#object +.size GDiv,4 +.common GDiv,4,4 +.global GMult +.type GMult,#object +.size GMult,4 +.common GMult,4,4 +.global N1 +.type N1,#object +.size N1,4 +.common N1,4,4 +.global N +.type N,#object +.size N,4 +.common N,4,4 +.global M +.type M,#object +.size M,4 +.common M,4,4 +.global PageNo +.type PageNo,#object +.size PageNo,4 +.common PageNo,4,4 +.global Milestone +.type Milestone,#object +.size Milestone,4 +.common Milestone,4,4 +.global fpecount +.type fpecount,#object +.size fpecount,4 +.common fpecount,4,4 +.global ErrCnt +.type ErrCnt,#object +.size ErrCnt,16 +.common ErrCnt,16,4 +.global Z9 +.type Z9,#object +.size Z9,8 +.common Z9,8,8 +.global Z2 +.type Z2,#object +.size Z2,8 +.common Z2,8,8 +.global Z1 +.type Z1,#object +.size Z1,8 +.common Z1,8,8 +.global PseudoZero +.type PseudoZero,#object +.size PseudoZero,8 +.common PseudoZero,8,8 +.global Z +.type Z,#object +.size Z,8 +.common Z,8,8 +.global Random2 +.type Random2,#object +.size Random2,8 +.common Random2,8,8 +.global Y2 +.type Y2,#object +.size Y2,8 +.common Y2,8,8 +.global Y1 +.type Y1,#object +.size Y1,8 +.common Y1,8,8 +.global Y +.type Y,#object +.size Y,8 +.common Y,8,8 +.global Random1 +.type Random1,#object +.size Random1,8 +.common Random1,8,8 +.global X8 +.type X8,#object +.size X8,8 +.common X8,8,8 +.global X2 +.type X2,#object +.size X2,8 +.common X2,8,8 +.global X1 +.type X1,#object +.size X1,8 +.common X1,8,8 +.global X +.type X,#object +.size X,8 +.common X,8,8 +.global W +.type W,#object +.size W,8 +.common W,8,8 +.global V9 +.type V9,#object +.size V9,8 +.common V9,8,8 +.global V0 +.type V0,#object +.size V0,8 +.common V0,8,8 +.global V +.type V,#object +.size V,8 +.common V,8,8 +.global U2 +.type U2,#object +.size U2,8 +.common U2,8,8 +.global U1 +.type U1,#object +.size U1,8 +.common U1,8,8 +.global UfThold +.type UfThold,#object +.size UfThold,8 +.common UfThold,8,8 +.global OneUlp +.type OneUlp,#object +.size OneUlp,8 +.common OneUlp,8,8 +.global S +.type S,#object +.size S,8 +.common S,8,8 +.global Underflow +.type Underflow,#object +.size Underflow,8 +.common Underflow,8,8 +.global T +.type T,#object +.size T,8 +.common T,8,8 +.global Random9 +.type Random9,#object +.size Random9,8 +.common Random9,8,8 +.global R +.type R,#object +.size R,8 +.common R,8,8 +.global Q9 +.type Q9,#object +.size Q9,8 +.common Q9,8,8 +.global Q +.type Q,#object +.size Q,8 +.common Q,8,8 +.global Precision +.type Precision,#object +.size Precision,8 +.common Precision,8,8 +.global MyZero +.type MyZero,#object +.size MyZero,8 +.common MyZero,8,8 +.global J +.type J,#object +.size J,8 +.common J,8,8 +.global StickyBit +.type StickyBit,#object +.size StickyBit,8 +.common StickyBit,8,8 +.global I +.type I,#object +.size I,4 +.common I,4,4 +.global HInvrse +.type HInvrse,#object +.size HInvrse,8 +.common HInvrse,8,8 +.global H +.type H,#object +.size H,8 +.common H,8,8 +.global F9 +.type F9,#object +.size F9,8 +.common F9,8,8 +.global F6 +.type F6,#object +.size F6,8 +.common F6,8,8 +.global Third +.type Third,#object +.size Third,8 +.common Third,8,8 +.global E9 +.type E9,#object +.size E9,8 +.common E9,8,8 +.global MaxSqEr +.type MaxSqEr,#object +.size MaxSqEr,8 +.common MaxSqEr,8,8 +.global SqEr +.type SqEr,#object +.size SqEr,8 +.common SqEr,8,8 +.global MinSqEr +.type MinSqEr,#object +.size MinSqEr,8 +.common MinSqEr,8,8 +.global E3 +.type E3,#object +.size E3,8 +.common E3,8,8 +.global Exp2 +.type Exp2,#object +.size Exp2,8 +.common Exp2,8,8 +.global E1 +.type E1,#object +.size E1,8 +.common E1,8,8 +.global E0 +.type E0,#object +.size E0,8 +.common E0,8,8 +.global FourD +.type FourD,#object +.size FourD,8 +.common FourD,8,8 +.global D +.type D,#object +.size D,8 +.common D,8,8 +.global CInvrse +.type CInvrse,#object +.size CInvrse,8 +.common CInvrse,8,8 +.global C +.type C,#object +.size C,8 +.common C,8,8 +.global A1 +.type A1,#object +.size A1,8 +.common A1,8,8 +.global AInvrse +.type AInvrse,#object +.size AInvrse,8 +.common AInvrse,8,8 +.global ch +.type ch,#object +.size ch,8 +.common ch,8,1 +.global Indx +.type Indx,#object +.size Indx,4 +.common Indx,4,4 +.global BMinusU2 +.type BMinusU2,#object +.size BMinusU2,8 +.common BMinusU2,8,8 +.global RadixD2 +.type RadixD2,#object +.size RadixD2,8 +.common RadixD2,8,8 +.global BInvrse +.type BInvrse,#object +.size BInvrse,8 +.common BInvrse,8,8 +.global Radix +.type Radix,#object +.size Radix,8 +.common Radix,8,8 +.global sigsave +.type sigsave,#object +.size sigsave,4 +.common sigsave,4,4 +.global ovfl_buf +.type ovfl_buf,#object +.size ovfl_buf,48 +.common ovfl_buf,48,4 +.section ".rodata" +.align 8 +.L1028: +.word 0x40000000 +.word 0x0 +.align 8 +.L1027: +.word 0x3fe00000 +.word 0x0 +.align 8 +.L1010: +.word 0x40913000 +.word 0x0 +.align 8 +.L1009: +.word 0xc0913000 +.word 0x0 +.align 1 +.L1002: +.byte 115 +.byte 101 +.byte 101 +.byte 32 +.byte 115 +.byte 111 +.byte 117 +.byte 114 +.byte 99 +.byte 101 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 109 +.byte 101 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 109 +.byte 111 +.byte 114 +.byte 101 +.byte 32 +.byte 104 +.byte 105 +.byte 115 +.byte 116 +.byte 111 +.byte 114 +.byte 121 +.byte 46 +.byte 0 +.align 1 +.L1001: +.byte 66 +.byte 65 +.byte 83 +.byte 73 +.byte 67 +.byte 32 +.byte 118 +.byte 101 +.byte 114 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 40 +.byte 67 +.byte 41 +.byte 32 +.byte 49 +.byte 57 +.byte 56 +.byte 51 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 80 +.byte 114 +.byte 111 +.byte 102 +.byte 46 +.byte 32 +.byte 87 +.byte 46 +.byte 32 +.byte 77 +.byte 46 +.byte 32 +.byte 75 +.byte 97 +.byte 104 +.byte 97 +.byte 110 +.byte 59 +.byte 0 +.align 1 +.L1000: +.byte 97 +.byte 115 +.byte 32 +.byte 117 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 99 +.byte 101 +.byte 114 +.byte 116 +.byte 97 +.byte 105 +.byte 110 +.byte 32 +.byte 101 +.byte 97 +.byte 114 +.byte 108 +.byte 121 +.byte 32 +.byte 87 +.byte 65 +.byte 78 +.byte 71 +.byte 32 +.byte 109 +.byte 97 +.byte 99 +.byte 104 +.byte 105 +.byte 110 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L999: +.byte 102 +.byte 108 +.byte 111 +.byte 97 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 45 +.byte 112 +.byte 111 +.byte 105 +.byte 110 +.byte 116 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 115 +.byte 44 +.byte 32 +.byte 98 +.byte 117 +.byte 116 +.byte 32 +.byte 97 +.byte 108 +.byte 115 +.byte 111 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 111 +.byte 119 +.byte 115 +.byte 32 +.byte 108 +.byte 111 +.byte 103 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 105 +.byte 99 +.byte 32 +.byte 101 +.byte 110 +.byte 99 +.byte 111 +.byte 100 +.byte 105 +.byte 110 +.byte 103 +.byte 0 +.align 1 +.L998: +.byte 10 +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 98 +.byte 97 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 117 +.byte 112 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 118 +.byte 101 +.byte 110 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 97 +.byte 108 +.byte 32 +.byte 114 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 114 +.byte 101 +.byte 112 +.byte 114 +.byte 101 +.byte 115 +.byte 101 +.byte 110 +.byte 116 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 0 +.align 1 +.L997: +.byte 111 +.byte 102 +.byte 32 +.byte 112 +.byte 97 +.byte 116 +.byte 104 +.byte 111 +.byte 108 +.byte 111 +.byte 103 +.byte 105 +.byte 101 +.byte 115 +.byte 44 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 115 +.byte 97 +.byte 121 +.byte 32 +.byte 104 +.byte 111 +.byte 119 +.byte 32 +.byte 119 +.byte 101 +.byte 108 +.byte 108 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 105 +.byte 109 +.byte 112 +.byte 108 +.byte 101 +.byte 109 +.byte 101 +.byte 110 +.byte 116 +.byte 101 +.byte 100 +.byte 46 +.byte 0 +.align 1 +.L996: +.byte 111 +.byte 102 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 44 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 116 +.byte 114 +.byte 105 +.byte 101 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 99 +.byte 111 +.byte 112 +.byte 101 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 97 +.byte 32 +.byte 119 +.byte 105 +.byte 100 +.byte 101 +.byte 114 +.byte 32 +.byte 118 +.byte 97 +.byte 114 +.byte 105 +.byte 101 +.byte 116 +.byte 121 +.byte 0 +.align 1 +.L995: +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 44 +.byte 32 +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 114 +.byte 97 +.byte 110 +.byte 103 +.byte 101 +.byte 32 +.byte 40 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 47 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 115 +.byte 41 +.byte 0 +.align 1 +.L994: +.byte 87 +.byte 46 +.byte 32 +.byte 74 +.byte 46 +.byte 32 +.byte 67 +.byte 111 +.byte 100 +.byte 121 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 87 +.byte 46 +.byte 32 +.byte 87 +.byte 97 +.byte 105 +.byte 116 +.byte 101 +.byte 46 +.byte 32 +.byte 65 +.byte 108 +.byte 116 +.byte 104 +.byte 111 +.byte 117 +.byte 103 +.byte 104 +.byte 32 +.byte 98 +.byte 111 +.byte 116 +.byte 104 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 115 +.byte 32 +.byte 116 +.byte 114 +.byte 121 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 0 +.align 1 +.L993: +.byte 98 +.byte 111 +.byte 111 +.byte 107 +.byte 32 +.byte 32 +.byte 96 +.byte 83 +.byte 111 +.byte 102 +.byte 116 +.byte 119 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 77 +.byte 97 +.byte 110 +.byte 117 +.byte 97 +.byte 108 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 69 +.byte 108 +.byte 101 +.byte 109 +.byte 101 +.byte 110 +.byte 116 +.byte 97 +.byte 114 +.byte 121 +.byte 32 +.byte 70 +.byte 117 +.byte 110 +.byte 99 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 39 +.byte 32 +.byte 40 +.byte 49 +.byte 57 +.byte 56 +.byte 48 +.byte 41 +.byte 32 +.byte 98 +.byte 121 +.byte 0 +.align 1 +.L992: +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 99 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 100 +.byte 32 +.byte 96 +.byte 77 +.byte 65 +.byte 67 +.byte 72 +.byte 65 +.byte 82 +.byte 39 +.byte 44 +.byte 32 +.byte 119 +.byte 104 +.byte 105 +.byte 99 +.byte 104 +.byte 32 +.byte 99 +.byte 97 +.byte 110 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 102 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 97 +.byte 116 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 101 +.byte 110 +.byte 100 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 0 +.align 1 +.L991: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 100 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 99 +.byte 97 +.byte 112 +.byte 97 +.byte 98 +.byte 105 +.byte 108 +.byte 105 +.byte 116 +.byte 105 +.byte 101 +.byte 115 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 103 +.byte 111 +.byte 32 +.byte 98 +.byte 101 +.byte 121 +.byte 111 +.byte 110 +.byte 100 +.byte 32 +.byte 97 +.byte 110 +.byte 32 +.byte 101 +.byte 97 +.byte 114 +.byte 108 +.byte 105 +.byte 101 +.byte 114 +.byte 0 +.align 1 +.L990: +.byte 70 +.byte 97 +.byte 105 +.byte 108 +.byte 117 +.byte 114 +.byte 101 +.byte 115 +.byte 32 +.byte 109 +.byte 97 +.byte 121 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 102 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 115 +.byte 117 +.byte 98 +.byte 115 +.byte 101 +.byte 113 +.byte 117 +.byte 101 +.byte 110 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L989: +.byte 32 +.byte 32 +.byte 32 +.byte 70 +.byte 65 +.byte 73 +.byte 76 +.byte 85 +.byte 82 +.byte 69 +.byte 115 +.byte 44 +.byte 32 +.byte 108 +.byte 105 +.byte 107 +.byte 101 +.byte 32 +.byte 50 +.byte 43 +.byte 50 +.byte 32 +.byte 61 +.byte 61 +.byte 32 +.byte 53 +.byte 32 +.byte 46 +.byte 0 +.align 1 +.L988: +.byte 32 +.byte 32 +.byte 32 +.byte 83 +.byte 101 +.byte 114 +.byte 105 +.byte 111 +.byte 117 +.byte 115 +.byte 32 +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 115 +.byte 44 +.byte 32 +.byte 108 +.byte 105 +.byte 107 +.byte 101 +.byte 32 +.byte 108 +.byte 97 +.byte 99 +.byte 107 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 97 +.byte 32 +.byte 103 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 44 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 0 +.align 1 +.L987: +.byte 32 +.byte 32 +.byte 32 +.byte 70 +.byte 76 +.byte 65 +.byte 87 +.byte 115 +.byte 44 +.byte 32 +.byte 108 +.byte 105 +.byte 107 +.byte 101 +.byte 32 +.byte 108 +.byte 97 +.byte 99 +.byte 107 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 97 +.byte 32 +.byte 115 +.byte 116 +.byte 105 +.byte 99 +.byte 107 +.byte 121 +.byte 32 +.byte 98 +.byte 105 +.byte 116 +.byte 44 +.byte 0 +.align 1 +.L986: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 97 +.byte 116 +.byte 116 +.byte 101 +.byte 109 +.byte 112 +.byte 116 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 114 +.byte 105 +.byte 109 +.byte 105 +.byte 110 +.byte 97 +.byte 116 +.byte 101 +.byte 32 +.byte 97 +.byte 109 +.byte 111 +.byte 110 +.byte 103 +.byte 0 +.align 1 +.L983: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 68 +.byte 101 +.byte 99 +.byte 105 +.byte 109 +.byte 97 +.byte 108 +.byte 45 +.byte 66 +.byte 105 +.byte 110 +.byte 97 +.byte 114 +.byte 121 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 118 +.byte 101 +.byte 114 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 78 +.byte 79 +.byte 84 +.byte 32 +.byte 89 +.byte 69 +.byte 84 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 97 +.byte 99 +.byte 99 +.byte 117 +.byte 114 +.byte 97 +.byte 99 +.byte 121 +.byte 46 +.byte 0 +.align 1 +.L982: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 69 +.byte 120 +.byte 116 +.byte 114 +.byte 97 +.byte 45 +.byte 112 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 101 +.byte 32 +.byte 115 +.byte 117 +.byte 98 +.byte 101 +.byte 120 +.byte 112 +.byte 114 +.byte 101 +.byte 115 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 114 +.byte 101 +.byte 118 +.byte 101 +.byte 97 +.byte 108 +.byte 101 +.byte 100 +.byte 32 +.byte 98 +.byte 117 +.byte 116 +.byte 32 +.byte 78 +.byte 79 +.byte 84 +.byte 32 +.byte 89 +.byte 69 +.byte 84 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 101 +.byte 100 +.byte 46 +.byte 0 +.align 1 +.L981: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 83 +.byte 113 +.byte 114 +.byte 116 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 101 +.byte 100 +.byte 46 +.byte 32 +.byte 32 +.byte 89 +.byte 94 +.byte 88 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 101 +.byte 100 +.byte 46 +.byte 0 +.align 1 +.L980: +.byte 9 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 116 +.byte 97 +.byte 109 +.byte 105 +.byte 110 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 112 +.byte 115 +.byte 101 +.byte 117 +.byte 100 +.byte 111 +.byte 45 +.byte 122 +.byte 101 +.byte 114 +.byte 111 +.byte 115 +.byte 46 +.byte 0 +.align 1 +.L979: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 99 +.byte 104 +.byte 101 +.byte 99 +.byte 107 +.byte 101 +.byte 100 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 115 +.byte 105 +.byte 115 +.byte 116 +.byte 101 +.byte 110 +.byte 99 +.byte 121 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 115 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 0 +.align 1 +.L978: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 86 +.byte 48 +.byte 32 +.byte 32 +.byte 116 +.byte 101 +.byte 108 +.byte 108 +.byte 115 +.byte 44 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 103 +.byte 104 +.byte 108 +.byte 121 +.byte 44 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 32 +.byte 73 +.byte 110 +.byte 102 +.byte 105 +.byte 110 +.byte 105 +.byte 116 +.byte 121 +.byte 32 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 114 +.byte 101 +.byte 112 +.byte 114 +.byte 101 +.byte 115 +.byte 101 +.byte 110 +.byte 116 +.byte 101 +.byte 100 +.byte 46 +.byte 0 +.align 1 +.L977: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 86 +.byte 32 +.byte 61 +.byte 32 +.byte 97 +.byte 110 +.byte 32 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 44 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 103 +.byte 104 +.byte 108 +.byte 121 +.byte 46 +.byte 0 +.align 1 +.L976: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 69 +.byte 48 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 80 +.byte 115 +.byte 101 +.byte 117 +.byte 100 +.byte 111 +.byte 90 +.byte 101 +.byte 114 +.byte 111 +.byte 32 +.byte 116 +.byte 101 +.byte 108 +.byte 108 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 97 +.byte 98 +.byte 114 +.byte 117 +.byte 112 +.byte 116 +.byte 44 +.byte 32 +.byte 103 +.byte 114 +.byte 97 +.byte 100 +.byte 117 +.byte 97 +.byte 108 +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 102 +.byte 117 +.byte 122 +.byte 122 +.byte 121 +.byte 46 +.byte 0 +.align 1 +.L975: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 84 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 61 +.byte 32 +.byte 97 +.byte 110 +.byte 32 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 46 +.byte 0 +.align 1 +.L974: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 87 +.byte 104 +.byte 101 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 97 +.byte 32 +.byte 83 +.byte 116 +.byte 105 +.byte 99 +.byte 107 +.byte 121 +.byte 32 +.byte 66 +.byte 105 +.byte 116 +.byte 32 +.byte 117 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 105 +.byte 110 +.byte 103 +.byte 46 +.byte 0 +.align 1 +.L973: +.byte 9 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 77 +.byte 117 +.byte 108 +.byte 116 +.byte 46 +.byte 44 +.byte 32 +.byte 68 +.byte 105 +.byte 118 +.byte 46 +.byte 44 +.byte 32 +.byte 65 +.byte 100 +.byte 100 +.byte 47 +.byte 83 +.byte 117 +.byte 98 +.byte 116 +.byte 46 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 83 +.byte 113 +.byte 114 +.byte 116 +.byte 46 +.byte 0 +.align 1 +.L972: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 87 +.byte 104 +.byte 101 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 112 +.byte 101 +.byte 100 +.byte 44 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 100 +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 115 +.byte 111 +.byte 109 +.byte 101 +.byte 116 +.byte 104 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 101 +.byte 108 +.byte 115 +.byte 101 +.byte 0 +.align 1 +.L971: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 65 +.byte 100 +.byte 101 +.byte 113 +.byte 117 +.byte 97 +.byte 99 +.byte 121 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 103 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 77 +.byte 117 +.byte 108 +.byte 116 +.byte 46 +.byte 44 +.byte 32 +.byte 68 +.byte 105 +.byte 118 +.byte 46 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 83 +.byte 117 +.byte 98 +.byte 116 +.byte 46 +.byte 0 +.align 1 +.L970: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 85 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 49 +.byte 47 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 94 +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 61 +.byte 32 +.byte 79 +.byte 110 +.byte 101 +.byte 32 +.byte 85 +.byte 108 +.byte 112 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 108 +.byte 105 +.byte 116 +.byte 116 +.byte 108 +.byte 101 +.byte 32 +.byte 108 +.byte 101 +.byte 115 +.byte 115 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 110 +.byte 32 +.byte 49 +.byte 46 +.byte 48 +.byte 32 +.byte 46 +.byte 0 +.align 1 +.L969: +.byte 9 +.byte 40 +.byte 79 +.byte 110 +.byte 101 +.byte 85 +.byte 108 +.byte 112 +.byte 110 +.byte 105 +.byte 116 +.byte 32 +.byte 105 +.byte 110 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 76 +.byte 97 +.byte 115 +.byte 116 +.byte 32 +.byte 80 +.byte 108 +.byte 97 +.byte 99 +.byte 101 +.byte 41 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 49 +.byte 46 +.byte 48 +.byte 48 +.byte 48 +.byte 120 +.byte 120 +.byte 120 +.byte 32 +.byte 46 +.byte 0 +.align 1 +.L968: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 85 +.byte 50 +.byte 32 +.byte 61 +.byte 32 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 47 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 94 +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 61 +.byte 32 +.byte 79 +.byte 110 +.byte 101 +.byte 32 +.byte 85 +.byte 108 +.byte 112 +.byte 0 +.align 1 +.L967: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 61 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 105 +.byte 102 +.byte 105 +.byte 99 +.byte 97 +.byte 110 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 99 +.byte 97 +.byte 114 +.byte 114 +.byte 105 +.byte 101 +.byte 100 +.byte 46 +.byte 0 +.align 1 +.L966: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 49 +.byte 44 +.byte 32 +.byte 50 +.byte 44 +.byte 32 +.byte 52 +.byte 44 +.byte 32 +.byte 56 +.byte 44 +.byte 32 +.byte 49 +.byte 48 +.byte 44 +.byte 32 +.byte 49 +.byte 54 +.byte 44 +.byte 32 +.byte 49 +.byte 48 +.byte 48 +.byte 44 +.byte 32 +.byte 50 +.byte 53 +.byte 54 +.byte 32 +.byte 46 +.byte 46 +.byte 46 +.byte 0 +.align 1 +.L965: +.byte 82 +.byte 117 +.byte 110 +.byte 110 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 115 +.byte 104 +.byte 111 +.byte 117 +.byte 108 +.byte 100 +.byte 32 +.byte 114 +.byte 101 +.byte 118 +.byte 101 +.byte 97 +.byte 108 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 115 +.byte 101 +.byte 32 +.byte 99 +.byte 104 +.byte 97 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 101 +.byte 114 +.byte 105 +.byte 115 +.byte 116 +.byte 105 +.byte 99 +.byte 115 +.byte 58 +.byte 0 +.align 1 +.L962: +.byte 9 +.byte 79 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 114 +.byte 101 +.byte 108 +.byte 101 +.byte 118 +.byte 97 +.byte 110 +.byte 116 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 105 +.byte 108 +.byte 101 +.byte 114 +.byte 32 +.byte 111 +.byte 112 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 58 +.byte 0 +.align 1 +.L961: +.byte 9 +.byte 79 +.byte 112 +.byte 116 +.byte 105 +.byte 109 +.byte 105 +.byte 122 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 108 +.byte 101 +.byte 118 +.byte 101 +.byte 108 +.byte 58 +.byte 10 +.byte 0 +.align 1 +.L960: +.byte 9 +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 105 +.byte 108 +.byte 101 +.byte 114 +.byte 58 +.byte 10 +.byte 0 +.align 1 +.L959: +.byte 9 +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 101 +.byte 114 +.byte 58 +.byte 10 +.byte 0 +.align 1 +.L958: +.byte 9 +.byte 86 +.byte 101 +.byte 114 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 58 +.byte 9 +.byte 49 +.byte 48 +.byte 32 +.byte 70 +.byte 101 +.byte 98 +.byte 114 +.byte 117 +.byte 97 +.byte 114 +.byte 121 +.byte 32 +.byte 49 +.byte 57 +.byte 56 +.byte 57 +.byte 59 +.byte 0 +.align 1 +.L957: +.byte 9 +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 58 +.byte 9 +.byte 100 +.byte 111 +.byte 117 +.byte 98 +.byte 108 +.byte 101 +.byte 59 +.byte 0 +.align 1 +.L956: +.byte 73 +.byte 110 +.byte 32 +.byte 100 +.byte 111 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 115 +.byte 111 +.byte 44 +.byte 32 +.byte 112 +.byte 108 +.byte 101 +.byte 97 +.byte 115 +.byte 101 +.byte 32 +.byte 105 +.byte 110 +.byte 99 +.byte 108 +.byte 117 +.byte 100 +.byte 101 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 102 +.byte 111 +.byte 108 +.byte 108 +.byte 111 +.byte 119 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 105 +.byte 110 +.byte 102 +.byte 111 +.byte 114 +.byte 109 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 58 +.byte 0 +.align 1 +.L955: +.byte 9 +.byte 83 +.byte 97 +.byte 110 +.byte 32 +.byte 70 +.byte 114 +.byte 97 +.byte 110 +.byte 99 +.byte 105 +.byte 115 +.byte 99 +.byte 111 +.byte 44 +.byte 32 +.byte 67 +.byte 65 +.byte 32 +.byte 57 +.byte 52 +.byte 49 +.byte 52 +.byte 51 +.byte 45 +.byte 48 +.byte 55 +.byte 48 +.byte 52 +.byte 44 +.byte 32 +.byte 85 +.byte 83 +.byte 65 +.byte 10 +.byte 0 +.align 1 +.L954: +.byte 9 +.byte 85 +.byte 110 +.byte 105 +.byte 118 +.byte 101 +.byte 114 +.byte 115 +.byte 105 +.byte 116 +.byte 121 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 67 +.byte 97 +.byte 108 +.byte 105 +.byte 102 +.byte 111 +.byte 114 +.byte 110 +.byte 105 +.byte 97 +.byte 0 +.align 1 +.L953: +.byte 9 +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 101 +.byte 114 +.byte 32 +.byte 67 +.byte 101 +.byte 110 +.byte 116 +.byte 101 +.byte 114 +.byte 32 +.byte 85 +.byte 45 +.byte 55 +.byte 54 +.byte 0 +.align 1 +.L952: +.byte 9 +.byte 82 +.byte 105 +.byte 99 +.byte 104 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 75 +.byte 97 +.byte 114 +.byte 112 +.byte 105 +.byte 110 +.byte 115 +.byte 107 +.byte 105 +.byte 0 +.align 1 +.L951: +.byte 80 +.byte 108 +.byte 101 +.byte 97 +.byte 115 +.byte 101 +.byte 32 +.byte 115 +.byte 101 +.byte 110 +.byte 100 +.byte 32 +.byte 115 +.byte 117 +.byte 103 +.byte 103 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 105 +.byte 110 +.byte 116 +.byte 101 +.byte 114 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 114 +.byte 101 +.byte 115 +.byte 117 +.byte 108 +.byte 116 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 0 +.align 1 +.L950: +.byte 99 +.byte 111 +.byte 112 +.byte 101 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 117 +.byte 110 +.byte 97 +.byte 110 +.byte 116 +.byte 105 +.byte 99 +.byte 105 +.byte 112 +.byte 97 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 110 +.byte 101 +.byte 119 +.byte 108 +.byte 121 +.byte 32 +.byte 117 +.byte 110 +.byte 99 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 101 +.byte 100 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 112 +.byte 97 +.byte 116 +.byte 104 +.byte 111 +.byte 108 +.byte 111 +.byte 103 +.byte 105 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L949: +.byte 85 +.byte 115 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 105 +.byte 110 +.byte 118 +.byte 105 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 104 +.byte 101 +.byte 108 +.byte 112 +.byte 32 +.byte 100 +.byte 101 +.byte 98 +.byte 117 +.byte 103 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 97 +.byte 117 +.byte 103 +.byte 109 +.byte 101 +.byte 110 +.byte 116 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 115 +.byte 111 +.byte 32 +.byte 105 +.byte 116 +.byte 32 +.byte 119 +.byte 105 +.byte 108 +.byte 108 +.byte 0 +.align 1 +.L946: +.byte 65 +.byte 110 +.byte 115 +.byte 119 +.byte 101 +.byte 114 +.byte 32 +.byte 113 +.byte 117 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 89 +.byte 44 +.byte 32 +.byte 121 +.byte 44 +.byte 32 +.byte 78 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 110 +.byte 32 +.byte 40 +.byte 117 +.byte 110 +.byte 108 +.byte 101 +.byte 115 +.byte 115 +.byte 32 +.byte 111 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 119 +.byte 105 +.byte 115 +.byte 101 +.byte 32 +.byte 105 +.byte 110 +.byte 100 +.byte 105 +.byte 99 +.byte 97 +.byte 116 +.byte 101 +.byte 100 +.byte 41 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L945: +.byte 97 +.byte 109 +.byte 101 +.byte 110 +.byte 100 +.byte 32 +.byte 105 +.byte 116 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 109 +.byte 97 +.byte 107 +.byte 101 +.byte 32 +.byte 102 +.byte 117 +.byte 114 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 101 +.byte 115 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L944: +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 97 +.byte 110 +.byte 121 +.byte 119 +.byte 97 +.byte 121 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 115 +.byte 101 +.byte 101 +.byte 32 +.byte 104 +.byte 111 +.byte 119 +.byte 32 +.byte 109 +.byte 97 +.byte 110 +.byte 121 +.byte 32 +.byte 109 +.byte 105 +.byte 108 +.byte 101 +.byte 115 +.byte 116 +.byte 111 +.byte 110 +.byte 101 +.byte 115 +.byte 32 +.byte 105 +.byte 116 +.byte 32 +.byte 112 +.byte 97 +.byte 115 +.byte 115 +.byte 101 +.byte 115 +.byte 44 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 110 +.byte 0 +.align 1 +.L943: +.byte 119 +.byte 97 +.byte 114 +.byte 110 +.byte 105 +.byte 110 +.byte 103 +.byte 46 +.byte 32 +.byte 32 +.byte 73 +.byte 102 +.byte 32 +.byte 112 +.byte 101 +.byte 114 +.byte 115 +.byte 117 +.byte 97 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 118 +.byte 97 +.byte 105 +.byte 108 +.byte 115 +.byte 32 +.byte 110 +.byte 97 +.byte 117 +.byte 103 +.byte 104 +.byte 116 +.byte 44 +.byte 32 +.byte 100 +.byte 111 +.byte 110 +.byte 39 +.byte 116 +.byte 32 +.byte 100 +.byte 101 +.byte 115 +.byte 112 +.byte 97 +.byte 105 +.byte 114 +.byte 32 +.byte 98 +.byte 117 +.byte 116 +.byte 32 +.byte 114 +.byte 117 +.byte 110 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 0 +.align 1 +.L942: +.byte 116 +.byte 111 +.byte 32 +.byte 112 +.byte 101 +.byte 114 +.byte 115 +.byte 101 +.byte 118 +.byte 101 +.byte 114 +.byte 101 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 97 +.byte 32 +.byte 115 +.byte 117 +.byte 114 +.byte 114 +.byte 111 +.byte 103 +.byte 97 +.byte 116 +.byte 101 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 32 +.byte 97 +.byte 102 +.byte 116 +.byte 101 +.byte 114 +.byte 44 +.byte 32 +.byte 112 +.byte 101 +.byte 114 +.byte 104 +.byte 97 +.byte 112 +.byte 115 +.byte 44 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 112 +.byte 108 +.byte 97 +.byte 121 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 115 +.byte 111 +.byte 109 +.byte 101 +.byte 0 +.align 1 +.L941: +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 32 +.byte 108 +.byte 105 +.byte 107 +.byte 101 +.byte 32 +.byte 79 +.byte 118 +.byte 101 +.byte 114 +.byte 47 +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 68 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 90 +.byte 101 +.byte 114 +.byte 111 +.byte 32 +.byte 111 +.byte 99 +.byte 99 +.byte 117 +.byte 114 +.byte 115 +.byte 44 +.byte 32 +.byte 98 +.byte 117 +.byte 116 +.byte 32 +.byte 114 +.byte 97 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 0 +.align 1 +.L940: +.byte 116 +.byte 114 +.byte 121 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 112 +.byte 101 +.byte 114 +.byte 115 +.byte 117 +.byte 97 +.byte 100 +.byte 101 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 101 +.byte 114 +.byte 32 +.byte 78 +.byte 79 +.byte 84 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 116 +.byte 101 +.byte 114 +.byte 109 +.byte 105 +.byte 110 +.byte 97 +.byte 116 +.byte 101 +.byte 32 +.byte 101 +.byte 120 +.byte 101 +.byte 99 +.byte 117 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 110 +.byte 32 +.byte 97 +.byte 110 +.byte 0 +.align 1 +.L939: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 96 +.byte 69 +.byte 78 +.byte 68 +.byte 32 +.byte 79 +.byte 70 +.byte 32 +.byte 84 +.byte 69 +.byte 83 +.byte 84 +.byte 39 +.byte 44 +.byte 10 +.byte 0 +.align 1 +.L938: +.byte 76 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 115 +.byte 116 +.byte 111 +.byte 112 +.byte 32 +.byte 112 +.byte 114 +.byte 101 +.byte 109 +.byte 97 +.byte 116 +.byte 117 +.byte 114 +.byte 101 +.byte 108 +.byte 121 +.byte 44 +.byte 32 +.byte 105 +.byte 46 +.byte 101 +.byte 46 +.byte 32 +.byte 98 +.byte 101 +.byte 102 +.byte 111 +.byte 114 +.byte 101 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 112 +.byte 108 +.byte 97 +.byte 121 +.byte 105 +.byte 110 +.byte 103 +.byte 10 +.byte 0 +.align 1 +.L935: +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 1 +.L930: +.byte 32 +.byte 32 +.byte 32 +.byte 80 +.byte 76 +.byte 69 +.byte 65 +.byte 83 +.byte 69 +.byte 32 +.byte 78 +.byte 79 +.byte 84 +.byte 73 +.byte 70 +.byte 89 +.byte 32 +.byte 75 +.byte 65 +.byte 82 +.byte 80 +.byte 73 +.byte 78 +.byte 75 +.byte 83 +.byte 73 +.byte 33 +.byte 10 +.byte 0 +.align 1 +.L929: +.byte 37 +.byte 115 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 105 +.byte 110 +.byte 99 +.byte 111 +.byte 110 +.byte 115 +.byte 105 +.byte 115 +.byte 116 +.byte 101 +.byte 110 +.byte 116 +.byte 46 +.byte 46 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L927: +.byte 9 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 90 +.byte 32 +.byte 42 +.byte 32 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.L926: +.byte 9 +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 103 +.byte 101 +.byte 115 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 49 +.byte 32 +.byte 42 +.byte 32 +.byte 90 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.L925: +.byte 77 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 105 +.byte 99 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 100 +.byte 111 +.byte 101 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 109 +.byte 117 +.byte 116 +.byte 101 +.byte 33 +.byte 10 +.byte 0 +.align 1 +.L920: +.byte 90 +.byte 32 +.byte 47 +.byte 32 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.L917: +.byte 49 +.byte 32 +.byte 42 +.byte 32 +.byte 90 +.byte 32 +.byte 61 +.byte 61 +.byte 32 +.byte 37 +.byte 103 +.byte 10 +.byte 0 +.align 1 +.L914: +.byte 90 +.byte 32 +.byte 42 +.byte 32 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 0 +.align 1 +.L911: +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 9 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 101 +.byte 115 +.byte 32 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 101 +.byte 110 +.byte 116 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 32 +.byte 0 +.align 1 +.L910: +.byte 87 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 112 +.byte 114 +.byte 105 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 90 +.byte 32 +.byte 61 +.byte 32 +.byte 0 +.align 1 +.L905: +.byte 84 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 33 +.byte 10 +.byte 0 +.align 1 +.L902: +.byte 84 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 86 +.byte 69 +.byte 82 +.byte 89 +.byte 32 +.byte 83 +.byte 69 +.byte 82 +.byte 73 +.byte 79 +.byte 85 +.byte 83 +.byte 32 +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 33 +.byte 10 +.byte 0 +.align 1 +.L896: +.byte 32 +.byte 104 +.byte 97 +.byte 115 +.byte 32 +.byte 78 +.byte 79 +.byte 84 +.byte 32 +.byte 106 +.byte 117 +.byte 115 +.byte 116 +.byte 32 +.byte 98 +.byte 101 +.byte 101 +.byte 110 +.byte 32 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 97 +.byte 108 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L895: +.byte 84 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 79 +.byte 46 +.byte 75 +.byte 46 +.byte 44 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 118 +.byte 105 +.byte 100 +.byte 101 +.byte 100 +.byte 32 +.byte 79 +.byte 118 +.byte 101 +.byte 114 +.byte 47 +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 0 +.align 1 +.L892: +.byte 87 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 109 +.byte 97 +.byte 99 +.byte 104 +.byte 105 +.byte 110 +.byte 101 +.byte 32 +.byte 103 +.byte 101 +.byte 116 +.byte 115 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 40 +.byte 90 +.byte 32 +.byte 43 +.byte 32 +.byte 90 +.byte 41 +.byte 32 +.byte 47 +.byte 32 +.byte 90 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L888: +.byte 40 +.byte 90 +.byte 32 +.byte 43 +.byte 32 +.byte 90 +.byte 41 +.byte 32 +.byte 47 +.byte 32 +.byte 90 +.byte 32 +.byte 115 +.byte 104 +.byte 111 +.byte 117 +.byte 108 +.byte 100 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 115 +.byte 97 +.byte 102 +.byte 101 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L887: +.byte 83 +.byte 105 +.byte 110 +.byte 99 +.byte 101 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 32 +.byte 100 +.byte 101 +.byte 110 +.byte 105 +.byte 101 +.byte 115 +.byte 32 +.byte 90 +.byte 32 +.byte 61 +.byte 32 +.byte 48 +.byte 44 +.byte 32 +.byte 101 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 97 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 0 +.align 1 +.L883: +.byte 83 +.byte 105 +.byte 109 +.byte 105 +.byte 108 +.byte 97 +.byte 114 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 114 +.byte 101 +.byte 112 +.byte 97 +.byte 110 +.byte 99 +.byte 105 +.byte 101 +.byte 115 +.byte 32 +.byte 104 +.byte 97 +.byte 118 +.byte 101 +.byte 32 +.byte 111 +.byte 99 +.byte 99 +.byte 117 +.byte 114 +.byte 114 +.byte 101 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 116 +.byte 105 +.byte 109 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L873: +.byte 9 +.byte 9 +.byte 116 +.byte 104 +.byte 101 +.byte 121 +.byte 32 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L872: +.byte 9 +.byte 119 +.byte 104 +.byte 105 +.byte 99 +.byte 104 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 101 +.byte 100 +.byte 32 +.byte 117 +.byte 110 +.byte 101 +.byte 113 +.byte 117 +.byte 97 +.byte 108 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 59 +.byte 10 +.byte 0 +.align 1 +.L871: +.byte 9 +.byte 121 +.byte 105 +.byte 101 +.byte 108 +.byte 100 +.byte 101 +.byte 100 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 59 +.byte 10 +.byte 0 +.align 1 +.L870: +.byte 9 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 32 +.byte 94 +.byte 32 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 10 +.byte 0 +.align 1 +.L869: +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 10 +.byte 0 +.align 1 +.L868: +.byte 87 +.byte 65 +.byte 82 +.byte 78 +.byte 73 +.byte 78 +.byte 71 +.byte 58 +.byte 32 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 10 +.byte 0 +.align 1 +.L850: +.byte 9 +.byte 105 +.byte 110 +.byte 115 +.byte 116 +.byte 101 +.byte 97 +.byte 100 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 32 +.byte 48 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L849: +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 40 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 32 +.byte 45 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 8 +.L841: +.word 0x3ed4f8b5 +.word 0x88e368f1 +.align 1 +.L839: +.byte 37 +.byte 115 +.byte 58 +.byte 32 +.byte 32 +.byte 37 +.byte 115 +.byte 0 +.align 1 +.L838: +.byte 70 +.byte 76 +.byte 65 +.byte 87 +.byte 0 +.align 1 +.L837: +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 0 +.align 1 +.L836: +.byte 83 +.byte 69 +.byte 82 +.byte 73 +.byte 79 +.byte 85 +.byte 83 +.byte 32 +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 0 +.align 1 +.L835: +.byte 70 +.byte 65 +.byte 73 +.byte 76 +.byte 85 +.byte 82 +.byte 69 +.byte 0 +.align 1 +.L829: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 80 +.byte 97 +.byte 103 +.byte 101 +.byte 58 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 10 +.byte 0 +.align 1 +.L828: +.byte 10 +.byte 68 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 105 +.byte 115 +.byte 32 +.byte 114 +.byte 101 +.byte 115 +.byte 117 +.byte 109 +.byte 101 +.byte 115 +.byte 32 +.byte 97 +.byte 102 +.byte 116 +.byte 101 +.byte 114 +.byte 32 +.byte 109 +.byte 105 +.byte 108 +.byte 101 +.byte 115 +.byte 116 +.byte 111 +.byte 110 +.byte 101 +.byte 32 +.byte 78 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 32 +.byte 37 +.byte 100 +.byte 0 +.align 8 +.L826: +.word 0xbff00000 +.word 0x0 +.align 1 +.L821: +.byte 69 +.byte 78 +.byte 68 +.byte 32 +.byte 79 +.byte 70 +.byte 32 +.byte 84 +.byte 69 +.byte 83 +.byte 84 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L820: +.byte 10 +.byte 65 +.byte 32 +.byte 116 +.byte 111 +.byte 116 +.byte 97 +.byte 108 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 102 +.byte 108 +.byte 111 +.byte 97 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 112 +.byte 111 +.byte 105 +.byte 110 +.byte 116 +.byte 32 +.byte 101 +.byte 120 +.byte 99 +.byte 101 +.byte 112 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 119 +.byte 101 +.byte 114 +.byte 101 +.byte 32 +.byte 114 +.byte 101 +.byte 103 +.byte 105 +.byte 115 +.byte 116 +.byte 101 +.byte 114 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L817: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 100 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 69 +.byte 120 +.byte 99 +.byte 101 +.byte 108 +.byte 108 +.byte 101 +.byte 110 +.byte 116 +.byte 33 +.byte 10 +.byte 0 +.align 1 +.L816: +.byte 32 +.byte 100 +.byte 117 +.byte 114 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 71 +.byte 114 +.byte 97 +.byte 100 +.byte 117 +.byte 97 +.byte 108 +.byte 32 +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L815: +.byte 44 +.byte 10 +.byte 101 +.byte 120 +.byte 99 +.byte 101 +.byte 112 +.byte 116 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 112 +.byte 111 +.byte 115 +.byte 115 +.byte 105 +.byte 98 +.byte 108 +.byte 121 +.byte 32 +.byte 68 +.byte 111 +.byte 117 +.byte 98 +.byte 108 +.byte 101 +.byte 32 +.byte 82 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 105 +.byte 110 +.byte 103 +.byte 0 +.align 1 +.L814: +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L811: +.byte 56 +.byte 53 +.byte 52 +.byte 0 +.align 1 +.L810: +.byte 55 +.byte 53 +.byte 52 +.byte 0 +.align 1 +.L807: +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 112 +.byte 111 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 73 +.byte 69 +.byte 69 +.byte 69 +.byte 32 +.byte 115 +.byte 116 +.byte 97 +.byte 110 +.byte 100 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 80 +.byte 0 +.align 1 +.L806: +.byte 82 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 102 +.byte 111 +.byte 114 +.byte 109 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 0 +.align 1 +.L803: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 100 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 115 +.byte 101 +.byte 101 +.byte 109 +.byte 115 +.byte 32 +.byte 83 +.byte 97 +.byte 116 +.byte 105 +.byte 115 +.byte 102 +.byte 97 +.byte 99 +.byte 116 +.byte 111 +.byte 114 +.byte 121 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L797: +.byte 78 +.byte 111 +.byte 32 +.byte 102 +.byte 97 +.byte 105 +.byte 108 +.byte 117 +.byte 114 +.byte 101 +.byte 115 +.byte 44 +.byte 32 +.byte 100 +.byte 101 +.byte 102 +.byte 101 +.byte 99 +.byte 116 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 114 +.byte 32 +.byte 102 +.byte 108 +.byte 97 +.byte 119 +.byte 115 +.byte 32 +.byte 104 +.byte 97 +.byte 118 +.byte 101 +.byte 32 +.byte 98 +.byte 101 +.byte 101 +.byte 110 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L796: +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 39 +.byte 115 +.byte 32 +.byte 115 +.byte 117 +.byte 98 +.byte 115 +.byte 101 +.byte 113 +.byte 117 +.byte 101 +.byte 110 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L795: +.byte 80 +.byte 111 +.byte 116 +.byte 101 +.byte 110 +.byte 116 +.byte 105 +.byte 97 +.byte 108 +.byte 108 +.byte 121 +.byte 32 +.byte 102 +.byte 97 +.byte 116 +.byte 97 +.byte 108 +.byte 32 +.byte 70 +.byte 65 +.byte 73 +.byte 76 +.byte 85 +.byte 82 +.byte 69 +.byte 32 +.byte 109 +.byte 97 +.byte 121 +.byte 32 +.byte 104 +.byte 97 +.byte 118 +.byte 101 +.byte 32 +.byte 115 +.byte 112 +.byte 111 +.byte 105 +.byte 108 +.byte 101 +.byte 100 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 0 +.align 1 +.L792: +.byte 117 +.byte 110 +.byte 97 +.byte 99 +.byte 99 +.byte 101 +.byte 112 +.byte 116 +.byte 97 +.byte 98 +.byte 108 +.byte 101 +.byte 32 +.byte 83 +.byte 101 +.byte 114 +.byte 105 +.byte 111 +.byte 117 +.byte 115 +.byte 32 +.byte 68 +.byte 101 +.byte 102 +.byte 101 +.byte 99 +.byte 116 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L791: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 100 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 104 +.byte 97 +.byte 115 +.byte 32 +.byte 0 +.align 1 +.L787: +.byte 100 +.byte 101 +.byte 115 +.byte 112 +.byte 105 +.byte 116 +.byte 101 +.byte 32 +.byte 105 +.byte 110 +.byte 99 +.byte 111 +.byte 110 +.byte 118 +.byte 101 +.byte 110 +.byte 105 +.byte 101 +.byte 110 +.byte 116 +.byte 32 +.byte 68 +.byte 101 +.byte 102 +.byte 101 +.byte 99 +.byte 116 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L786: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 100 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 109 +.byte 97 +.byte 121 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 65 +.byte 99 +.byte 99 +.byte 101 +.byte 112 +.byte 116 +.byte 97 +.byte 98 +.byte 108 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.L781: +.byte 83 +.byte 97 +.byte 116 +.byte 105 +.byte 115 +.byte 102 +.byte 97 +.byte 99 +.byte 116 +.byte 111 +.byte 114 +.byte 121 +.byte 32 +.byte 116 +.byte 104 +.byte 111 +.byte 117 +.byte 103 +.byte 104 +.byte 32 +.byte 102 +.byte 108 +.byte 97 +.byte 119 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L780: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 100 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 115 +.byte 101 +.byte 101 +.byte 109 +.byte 115 +.byte 32 +.byte 0 +.align 1 +.L769: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 32 +.byte 37 +.byte 45 +.byte 50 +.byte 57 +.byte 115 +.byte 32 +.byte 37 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L762: +.byte 70 +.byte 76 +.byte 65 +.byte 87 +.byte 115 +.byte 32 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 101 +.byte 100 +.byte 32 +.byte 61 +.byte 0 +.align 1 +.L761: +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 115 +.byte 32 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 101 +.byte 100 +.byte 32 +.byte 61 +.byte 0 +.align 1 +.L760: +.byte 83 +.byte 69 +.byte 82 +.byte 73 +.byte 79 +.byte 85 +.byte 83 +.byte 32 +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 115 +.byte 32 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 101 +.byte 100 +.byte 32 +.byte 61 +.byte 0 +.align 1 +.L759: +.byte 70 +.byte 65 +.byte 73 +.byte 76 +.byte 85 +.byte 82 +.byte 69 +.byte 115 +.byte 32 +.byte 32 +.byte 101 +.byte 110 +.byte 99 +.byte 111 +.byte 117 +.byte 110 +.byte 116 +.byte 101 +.byte 114 +.byte 101 +.byte 100 +.byte 32 +.byte 61 +.byte 0 +.align 1 +.L755: +.byte 10 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 84 +.byte 114 +.byte 121 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 101 +.byte 32 +.byte 48 +.byte 32 +.byte 47 +.byte 32 +.byte 48 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 100 +.byte 117 +.byte 99 +.byte 101 +.byte 115 +.byte 32 +.byte 46 +.byte 46 +.byte 46 +.byte 0 +.align 1 +.L754: +.byte 32 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L751: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 84 +.byte 114 +.byte 121 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 101 +.byte 32 +.byte 49 +.byte 32 +.byte 47 +.byte 32 +.byte 48 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 100 +.byte 117 +.byte 99 +.byte 101 +.byte 115 +.byte 32 +.byte 46 +.byte 46 +.byte 46 +.byte 0 +.align 1 +.L750: +.byte 87 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 109 +.byte 101 +.byte 115 +.byte 115 +.byte 97 +.byte 103 +.byte 101 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 47 +.byte 111 +.byte 114 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 115 +.byte 32 +.byte 100 +.byte 111 +.byte 101 +.byte 115 +.byte 32 +.byte 68 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 90 +.byte 101 +.byte 114 +.byte 111 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 100 +.byte 117 +.byte 99 +.byte 101 +.byte 63 +.byte 10 +.byte 0 +.align 1 +.L749: +.byte 32 +.byte 32 +.byte 105 +.byte 110 +.byte 115 +.byte 116 +.byte 101 +.byte 97 +.byte 100 +.byte 44 +.byte 32 +.byte 88 +.byte 32 +.byte 47 +.byte 32 +.byte 88 +.byte 32 +.byte 45 +.byte 32 +.byte 49 +.byte 47 +.byte 50 +.byte 32 +.byte 45 +.byte 32 +.byte 49 +.byte 47 +.byte 50 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L748: +.byte 32 +.byte 32 +.byte 88 +.byte 32 +.byte 47 +.byte 32 +.byte 88 +.byte 32 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 49 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 110 +.byte 32 +.byte 88 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.L743: +.byte 32 +.byte 32 +.byte 88 +.byte 32 +.byte 47 +.byte 32 +.byte 88 +.byte 32 +.byte 32 +.byte 116 +.byte 114 +.byte 97 +.byte 112 +.byte 115 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 110 +.byte 32 +.byte 88 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 103 +.byte 10 +.byte 0 +.align 1 +.L728: +.byte 105 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 102 +.byte 97 +.byte 114 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 49 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L727: +.byte 32 +.byte 117 +.byte 110 +.byte 98 +.byte 97 +.byte 108 +.byte 97 +.byte 110 +.byte 99 +.byte 101 +.byte 100 +.byte 32 +.byte 114 +.byte 97 +.byte 110 +.byte 103 +.byte 101 +.byte 59 +.byte 32 +.byte 85 +.byte 102 +.byte 84 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 42 +.byte 32 +.byte 86 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 9 +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 1 +.L726: +.byte 66 +.byte 97 +.byte 100 +.byte 108 +.byte 121 +.byte 0 +.align 1 +.L719: +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 102 +.byte 97 +.byte 114 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 40 +.byte 90 +.byte 41 +.byte 32 +.byte 94 +.byte 32 +.byte 50 +.byte 32 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L718: +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 103 +.byte 101 +.byte 115 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 90 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.L706: +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 102 +.byte 97 +.byte 114 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 40 +.byte 90 +.byte 41 +.byte 32 +.byte 94 +.byte 32 +.byte 50 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L705: +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 103 +.byte 101 +.byte 115 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 119 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 112 +.byte 114 +.byte 105 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 90 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.L688: +.byte 43 +.byte 45 +.byte 37 +.byte 103 +.byte 44 +.byte 32 +.byte 43 +.byte 45 +.byte 37 +.byte 103 +.byte 10 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 43 +.byte 45 +.byte 37 +.byte 103 +.byte 32 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 102 +.byte 117 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 79 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 46 +.byte 0 +.align 1 +.L687: +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 105 +.byte 110 +.byte 118 +.byte 111 +.byte 108 +.byte 118 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 0 +.align 1 +.L681: +.byte 97 +.byte 98 +.byte 111 +.byte 118 +.byte 101 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L680: +.byte 65 +.byte 110 +.byte 121 +.byte 32 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 97 +.byte 108 +.byte 32 +.byte 115 +.byte 101 +.byte 112 +.byte 97 +.byte 114 +.byte 97 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 42 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 111 +.byte 110 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.L679: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 110 +.byte 111 +.byte 114 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 86 +.byte 32 +.byte 47 +.byte 32 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L678: +.byte 78 +.byte 111 +.byte 32 +.byte 79 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 115 +.byte 104 +.byte 111 +.byte 117 +.byte 108 +.byte 100 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 97 +.byte 108 +.byte 101 +.byte 100 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 86 +.byte 32 +.byte 42 +.byte 32 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.L677: +.byte 84 +.byte 104 +.byte 101 +.byte 114 +.byte 101 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 32 +.byte 115 +.byte 97 +.byte 116 +.byte 117 +.byte 114 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 32 +.byte 98 +.byte 101 +.byte 99 +.byte 97 +.byte 117 +.byte 115 +.byte 101 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 115 +.byte 121 +.byte 115 +.byte 116 +.byte 101 +.byte 109 +.byte 32 +.byte 116 +.byte 114 +.byte 97 +.byte 112 +.byte 115 +.byte 32 +.byte 111 +.byte 110 +.byte 32 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L676: +.byte 79 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 115 +.byte 97 +.byte 116 +.byte 117 +.byte 114 +.byte 97 +.byte 116 +.byte 101 +.byte 115 +.byte 32 +.byte 97 +.byte 116 +.byte 32 +.byte 86 +.byte 48 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L673: +.byte 79 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 86 +.byte 32 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L664: +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 112 +.byte 97 +.byte 115 +.byte 116 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 9 +.byte 115 +.byte 104 +.byte 114 +.byte 105 +.byte 110 +.byte 107 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L661: +.byte 45 +.byte 40 +.byte 45 +.byte 89 +.byte 41 +.byte 32 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 89 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L660: +.byte 102 +.byte 105 +.byte 110 +.byte 100 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 0 +.align 1 +.L659: +.byte 83 +.byte 101 +.byte 101 +.byte 109 +.byte 115 +.byte 32 +.byte 79 +.byte 46 +.byte 75 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L656: +.byte 84 +.byte 114 +.byte 121 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 105 +.byte 116 +.byte 32 +.byte 111 +.byte 110 +.byte 32 +.byte 89 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L655: +.byte 67 +.byte 97 +.byte 110 +.byte 32 +.byte 96 +.byte 90 +.byte 32 +.byte 61 +.byte 32 +.byte 45 +.byte 89 +.byte 39 +.byte 32 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 63 +.byte 10 +.byte 0 +.align 1 +.L648: +.byte 84 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 109 +.byte 97 +.byte 121 +.byte 32 +.byte 103 +.byte 101 +.byte 110 +.byte 101 +.byte 114 +.byte 97 +.byte 116 +.byte 101 +.byte 32 +.byte 97 +.byte 110 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L647: +.byte 83 +.byte 101 +.byte 97 +.byte 114 +.byte 99 +.byte 104 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 79 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 58 +.byte 10 +.byte 0 +.align 1 +.L646: +.byte 32 +.byte 46 +.byte 46 +.byte 46 +.byte 32 +.byte 110 +.byte 111 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 114 +.byte 101 +.byte 112 +.byte 97 +.byte 110 +.byte 99 +.byte 105 +.byte 101 +.byte 115 +.byte 32 +.byte 102 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L638: +.byte 84 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 112 +.byte 111 +.byte 119 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 90 +.byte 94 +.byte 81 +.byte 32 +.byte 97 +.byte 116 +.byte 32 +.byte 102 +.byte 111 +.byte 117 +.byte 114 +.byte 32 +.byte 110 +.byte 101 +.byte 97 +.byte 114 +.byte 108 +.byte 121 +.byte 32 +.byte 101 +.byte 120 +.byte 116 +.byte 114 +.byte 101 +.byte 109 +.byte 101 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L637: +.byte 65 +.byte 99 +.byte 99 +.byte 117 +.byte 114 +.byte 97 +.byte 99 +.byte 121 +.byte 32 +.byte 115 +.byte 101 +.byte 101 +.byte 109 +.byte 115 +.byte 32 +.byte 97 +.byte 100 +.byte 101 +.byte 113 +.byte 117 +.byte 97 +.byte 116 +.byte 101 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L630: +.byte 9 +.byte 99 +.byte 97 +.byte 108 +.byte 99 +.byte 117 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 105 +.byte 110 +.byte 118 +.byte 111 +.byte 108 +.byte 118 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 116 +.byte 105 +.byte 110 +.byte 121 +.byte 32 +.byte 105 +.byte 110 +.byte 116 +.byte 101 +.byte 114 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 114 +.byte 97 +.byte 116 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L629: +.byte 9 +.byte 84 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 109 +.byte 117 +.byte 99 +.byte 104 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 32 +.byte 109 +.byte 97 +.byte 121 +.byte 32 +.byte 115 +.byte 112 +.byte 111 +.byte 105 +.byte 108 +.byte 32 +.byte 102 +.byte 105 +.byte 110 +.byte 97 +.byte 110 +.byte 99 +.byte 105 +.byte 97 +.byte 108 +.byte 10 +.byte 0 +.align 1 +.L628: +.byte 9 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L627: +.byte 9 +.byte 40 +.byte 49 +.byte 32 +.byte 43 +.byte 32 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 32 +.byte 94 +.byte 32 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 59 +.byte 10 +.byte 0 +.align 1 +.L626: +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 10 +.byte 0 +.align 1 +.L625: +.byte 67 +.byte 97 +.byte 108 +.byte 99 +.byte 117 +.byte 108 +.byte 97 +.byte 116 +.byte 101 +.byte 100 +.byte 0 +.align 1 +.L618: +.byte 84 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 88 +.byte 94 +.byte 40 +.byte 40 +.byte 88 +.byte 32 +.byte 43 +.byte 32 +.byte 49 +.byte 41 +.byte 32 +.byte 47 +.byte 32 +.byte 40 +.byte 88 +.byte 32 +.byte 45 +.byte 32 +.byte 49 +.byte 41 +.byte 41 +.byte 32 +.byte 118 +.byte 115 +.byte 46 +.byte 32 +.byte 101 +.byte 120 +.byte 112 +.byte 40 +.byte 50 +.byte 41 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 88 +.byte 32 +.byte 45 +.byte 62 +.byte 32 +.byte 49 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L614: +.byte 84 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 79 +.byte 46 +.byte 75 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L611: +.byte 32 +.byte 32 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L610: +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 98 +.byte 101 +.byte 116 +.byte 119 +.byte 101 +.byte 101 +.byte 110 +.byte 32 +.byte 48 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 10 +.byte 0 +.align 1 +.L606: +.byte 97 +.byte 99 +.byte 116 +.byte 117 +.byte 97 +.byte 108 +.byte 108 +.byte 121 +.byte 32 +.byte 99 +.byte 97 +.byte 108 +.byte 99 +.byte 117 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 121 +.byte 105 +.byte 101 +.byte 108 +.byte 100 +.byte 115 +.byte 58 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L605: +.byte 115 +.byte 104 +.byte 111 +.byte 117 +.byte 108 +.byte 100 +.byte 32 +.byte 97 +.byte 102 +.byte 102 +.byte 108 +.byte 105 +.byte 99 +.byte 116 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 101 +.byte 120 +.byte 112 +.byte 114 +.byte 101 +.byte 115 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 10 +.byte 9 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 32 +.byte 94 +.byte 32 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 59 +.byte 10 +.byte 0 +.align 1 +.L604: +.byte 85 +.byte 102 +.byte 84 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 61 +.byte 32 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 32 +.byte 94 +.byte 32 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 10 +.byte 111 +.byte 110 +.byte 108 +.byte 121 +.byte 32 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 0 +.align 1 +.L603: +.byte 83 +.byte 105 +.byte 110 +.byte 99 +.byte 101 +.byte 32 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 111 +.byte 99 +.byte 99 +.byte 117 +.byte 114 +.byte 115 +.byte 32 +.byte 98 +.byte 101 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.L602: +.byte 82 +.byte 97 +.byte 110 +.byte 103 +.byte 101 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 110 +.byte 97 +.byte 114 +.byte 114 +.byte 111 +.byte 119 +.byte 59 +.byte 32 +.byte 85 +.byte 49 +.byte 94 +.byte 37 +.byte 100 +.byte 32 +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L597: +.byte 109 +.byte 101 +.byte 114 +.byte 101 +.byte 108 +.byte 121 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 111 +.byte 102 +.byte 102 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L596: +.byte 99 +.byte 97 +.byte 108 +.byte 99 +.byte 117 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 109 +.byte 97 +.byte 121 +.byte 32 +.byte 115 +.byte 117 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 32 +.byte 108 +.byte 97 +.byte 114 +.byte 103 +.byte 101 +.byte 114 +.byte 32 +.byte 82 +.byte 101 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 110 +.byte 32 +.byte 0 +.align 1 +.L595: +.byte 32 +.byte 98 +.byte 101 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 119 +.byte 104 +.byte 105 +.byte 99 +.byte 104 +.byte 0 +.align 1 +.L594: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 44 +.byte 32 +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 1 +.L593: +.byte 88 +.byte 32 +.byte 47 +.byte 32 +.byte 90 +.byte 32 +.byte 61 +.byte 32 +.byte 49 +.byte 32 +.byte 43 +.byte 32 +.byte 37 +.byte 103 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L592: +.byte 88 +.byte 32 +.byte 47 +.byte 32 +.byte 90 +.byte 32 +.byte 102 +.byte 97 +.byte 105 +.byte 108 +.byte 115 +.byte 33 +.byte 10 +.byte 0 +.align 1 +.L589: +.byte 101 +.byte 110 +.byte 99 +.byte 111 +.byte 117 +.byte 110 +.byte 116 +.byte 101 +.byte 114 +.byte 32 +.byte 68 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 90 +.byte 101 +.byte 114 +.byte 111 +.byte 32 +.byte 97 +.byte 108 +.byte 116 +.byte 104 +.byte 111 +.byte 117 +.byte 103 +.byte 104 +.byte 32 +.byte 97 +.byte 99 +.byte 116 +.byte 117 +.byte 97 +.byte 108 +.byte 108 +.byte 121 +.byte 10 +.byte 0 +.align 1 +.L588: +.byte 32 +.byte 32 +.byte 46 +.byte 46 +.byte 46 +.byte 32 +.byte 40 +.byte 102 +.byte 40 +.byte 88 +.byte 41 +.byte 32 +.byte 45 +.byte 32 +.byte 102 +.byte 40 +.byte 90 +.byte 41 +.byte 41 +.byte 32 +.byte 47 +.byte 32 +.byte 40 +.byte 88 +.byte 32 +.byte 45 +.byte 32 +.byte 90 +.byte 41 +.byte 32 +.byte 46 +.byte 46 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L587: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 105 +.byte 102 +.byte 32 +.byte 40 +.byte 88 +.byte 32 +.byte 61 +.byte 61 +.byte 32 +.byte 90 +.byte 41 +.byte 32 +.byte 32 +.byte 46 +.byte 46 +.byte 46 +.byte 32 +.byte 32 +.byte 101 +.byte 108 +.byte 115 +.byte 101 +.byte 0 +.align 1 +.L586: +.byte 99 +.byte 111 +.byte 110 +.byte 102 +.byte 117 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 110 +.byte 32 +.byte 105 +.byte 110 +.byte 110 +.byte 111 +.byte 99 +.byte 101 +.byte 110 +.byte 116 +.byte 32 +.byte 115 +.byte 116 +.byte 97 +.byte 116 +.byte 101 +.byte 109 +.byte 101 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 108 +.byte 105 +.byte 107 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.L585: +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 83 +.byte 69 +.byte 82 +.byte 73 +.byte 79 +.byte 85 +.byte 83 +.byte 32 +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 10 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 99 +.byte 97 +.byte 117 +.byte 115 +.byte 101 +.byte 115 +.byte 32 +.byte 0 +.align 1 +.L584: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 83 +.byte 104 +.byte 111 +.byte 117 +.byte 108 +.byte 100 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 78 +.byte 79 +.byte 84 +.byte 32 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 97 +.byte 108 +.byte 32 +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 44 +.byte 32 +.byte 0 +.align 1 +.L583: +.byte 121 +.byte 101 +.byte 116 +.byte 32 +.byte 88 +.byte 32 +.byte 45 +.byte 32 +.byte 90 +.byte 32 +.byte 121 +.byte 105 +.byte 101 +.byte 108 +.byte 100 +.byte 115 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L582: +.byte 88 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 9 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 101 +.byte 113 +.byte 117 +.byte 97 +.byte 108 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 90 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L577: +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 47 +.byte 32 +.byte 85 +.byte 102 +.byte 84 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 102 +.byte 97 +.byte 105 +.byte 108 +.byte 101 +.byte 100 +.byte 33 +.byte 10 +.byte 0 +.align 1 +.L567: +.byte 40 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 111 +.byte 102 +.byte 102 +.byte 32 +.byte 105 +.byte 110 +.byte 32 +.byte 85 +.byte 102 +.byte 84 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 41 +.byte 32 +.byte 60 +.byte 32 +.byte 69 +.byte 48 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L566: +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 103 +.byte 114 +.byte 97 +.byte 100 +.byte 117 +.byte 97 +.byte 108 +.byte 59 +.byte 32 +.byte 105 +.byte 116 +.byte 32 +.byte 105 +.byte 110 +.byte 99 +.byte 117 +.byte 114 +.byte 115 +.byte 32 +.byte 65 +.byte 98 +.byte 115 +.byte 111 +.byte 108 +.byte 117 +.byte 116 +.byte 101 +.byte 32 +.byte 69 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 32 +.byte 61 +.byte 10 +.byte 0 +.align 1 +.L561: +.byte 124 +.byte 81 +.byte 32 +.byte 45 +.byte 32 +.byte 89 +.byte 124 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L560: +.byte 112 +.byte 114 +.byte 105 +.byte 110 +.byte 116 +.byte 32 +.byte 111 +.byte 117 +.byte 116 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 81 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 44 +.byte 32 +.byte 89 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L559: +.byte 81 +.byte 32 +.byte 61 +.byte 61 +.byte 32 +.byte 89 +.byte 32 +.byte 119 +.byte 104 +.byte 105 +.byte 108 +.byte 101 +.byte 32 +.byte 100 +.byte 101 +.byte 110 +.byte 121 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 124 +.byte 81 +.byte 32 +.byte 45 +.byte 32 +.byte 89 +.byte 124 +.byte 32 +.byte 61 +.byte 61 +.byte 32 +.byte 48 +.byte 59 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 115 +.byte 101 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 115 +.byte 10 +.byte 0 +.align 1 +.L558: +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 102 +.byte 117 +.byte 115 +.byte 101 +.byte 115 +.byte 32 +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 44 +.byte 32 +.byte 119 +.byte 104 +.byte 105 +.byte 99 +.byte 104 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 103 +.byte 101 +.byte 115 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 10 +.byte 0 +.align 1 +.L556: +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 101 +.byte 108 +.byte 115 +.byte 101 +.byte 32 +.byte 109 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 105 +.byte 99 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 103 +.byte 101 +.byte 116 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 109 +.byte 97 +.byte 110 +.byte 121 +.byte 32 +.byte 108 +.byte 97 +.byte 115 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 119 +.byte 114 +.byte 111 +.byte 110 +.byte 103 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L555: +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 100 +.byte 111 +.byte 119 +.byte 110 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.L554: +.byte 97 +.byte 112 +.byte 112 +.byte 114 +.byte 111 +.byte 97 +.byte 99 +.byte 104 +.byte 32 +.byte 97 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.L553: +.byte 69 +.byte 105 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 97 +.byte 99 +.byte 99 +.byte 117 +.byte 114 +.byte 97 +.byte 99 +.byte 121 +.byte 32 +.byte 100 +.byte 101 +.byte 116 +.byte 101 +.byte 114 +.byte 105 +.byte 111 +.byte 114 +.byte 97 +.byte 116 +.byte 101 +.byte 115 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 115 +.byte 10 +.byte 0 +.align 1 +.L541: +.byte 83 +.byte 109 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 115 +.byte 116 +.byte 114 +.byte 105 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 112 +.byte 111 +.byte 115 +.byte 105 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 32 +.byte 102 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 69 +.byte 48 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 103 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L540: +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 110 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 100 +.byte 117 +.byte 99 +.byte 116 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L539: +.byte 68 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 101 +.byte 110 +.byte 99 +.byte 101 +.byte 32 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 115 +.byte 32 +.byte 97 +.byte 116 +.byte 32 +.byte 97 +.byte 32 +.byte 104 +.byte 105 +.byte 103 +.byte 104 +.byte 101 +.byte 114 +.byte 0 +.align 1 +.L536: +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 110 +.byte 32 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 101 +.byte 110 +.byte 99 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L535: +.byte 80 +.byte 114 +.byte 111 +.byte 100 +.byte 117 +.byte 99 +.byte 116 +.byte 115 +.byte 32 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 97 +.byte 116 +.byte 32 +.byte 97 +.byte 32 +.byte 104 +.byte 105 +.byte 103 +.byte 104 +.byte 101 +.byte 114 +.byte 0 +.align 1 +.L528: +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 32 +.byte 80 +.byte 115 +.byte 101 +.byte 117 +.byte 100 +.byte 111 +.byte 90 +.byte 101 +.byte 114 +.byte 111 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 112 +.byte 114 +.byte 105 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 111 +.byte 117 +.byte 116 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 37 +.byte 103 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L527: +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 99 +.byte 97 +.byte 110 +.byte 32 +.byte 115 +.byte 116 +.byte 105 +.byte 99 +.byte 107 +.byte 32 +.byte 97 +.byte 116 +.byte 32 +.byte 97 +.byte 110 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 103 +.byte 101 +.byte 100 +.byte 108 +.byte 121 +.byte 32 +.byte 112 +.byte 111 +.byte 115 +.byte 105 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.L526: +.byte 112 +.byte 111 +.byte 115 +.byte 105 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 44 +.byte 32 +.byte 105 +.byte 115 +.byte 110 +.byte 39 +.byte 116 +.byte 59 +.byte 32 +.byte 105 +.byte 116 +.byte 32 +.byte 112 +.byte 114 +.byte 105 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 111 +.byte 117 +.byte 116 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 32 +.byte 37 +.byte 103 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L525: +.byte 66 +.byte 117 +.byte 116 +.byte 32 +.byte 45 +.byte 80 +.byte 115 +.byte 101 +.byte 117 +.byte 100 +.byte 111 +.byte 90 +.byte 101 +.byte 114 +.byte 111 +.byte 44 +.byte 32 +.byte 119 +.byte 104 +.byte 105 +.byte 99 +.byte 104 +.byte 32 +.byte 115 +.byte 104 +.byte 111 +.byte 117 +.byte 108 +.byte 100 +.byte 32 +.byte 98 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.L522: +.byte 80 +.byte 115 +.byte 101 +.byte 117 +.byte 100 +.byte 111 +.byte 90 +.byte 101 +.byte 114 +.byte 111 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 112 +.byte 114 +.byte 105 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 111 +.byte 117 +.byte 116 +.byte 32 +.byte 97 +.byte 115 +.byte 58 +.byte 32 +.byte 37 +.byte 103 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L521: +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 103 +.byte 101 +.byte 100 +.byte 108 +.byte 121 +.byte 32 +.byte 110 +.byte 101 +.byte 103 +.byte 97 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.L520: +.byte 80 +.byte 111 +.byte 115 +.byte 105 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 32 +.byte 101 +.byte 120 +.byte 112 +.byte 114 +.byte 101 +.byte 115 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 99 +.byte 97 +.byte 110 +.byte 32 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 97 +.byte 110 +.byte 10 +.byte 0 +.align 1 +.L507: +.byte 109 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 105 +.byte 99 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 103 +.byte 101 +.byte 116 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 109 +.byte 97 +.byte 110 +.byte 121 +.byte 32 +.byte 108 +.byte 97 +.byte 115 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 119 +.byte 114 +.byte 111 +.byte 110 +.byte 103 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L483: +.byte 83 +.byte 101 +.byte 101 +.byte 107 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 115 +.byte 32 +.byte 85 +.byte 102 +.byte 84 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 69 +.byte 48 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L480: +.byte 46 +.byte 46 +.byte 46 +.byte 32 +.byte 110 +.byte 111 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 114 +.byte 101 +.byte 112 +.byte 97 +.byte 110 +.byte 99 +.byte 105 +.byte 115 +.byte 32 +.byte 102 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L477: +.byte 9 +.byte 105 +.byte 110 +.byte 118 +.byte 111 +.byte 108 +.byte 118 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 105 +.byte 110 +.byte 116 +.byte 101 +.byte 114 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 114 +.byte 97 +.byte 116 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L476: +.byte 69 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 115 +.byte 32 +.byte 108 +.byte 105 +.byte 107 +.byte 101 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 109 +.byte 97 +.byte 121 +.byte 32 +.byte 105 +.byte 110 +.byte 118 +.byte 97 +.byte 108 +.byte 105 +.byte 100 +.byte 97 +.byte 116 +.byte 101 +.byte 32 +.byte 102 +.byte 105 +.byte 110 +.byte 97 +.byte 110 +.byte 99 +.byte 105 +.byte 97 +.byte 108 +.byte 32 +.byte 99 +.byte 97 +.byte 108 +.byte 99 +.byte 117 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 10 +.byte 0 +.align 1 +.L455: +.byte 84 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 112 +.byte 111 +.byte 119 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 90 +.byte 94 +.byte 105 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 115 +.byte 109 +.byte 97 +.byte 108 +.byte 108 +.byte 32 +.byte 73 +.byte 110 +.byte 116 +.byte 101 +.byte 103 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 90 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 105 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L452: +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 32 +.byte 103 +.byte 101 +.byte 116 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 109 +.byte 97 +.byte 110 +.byte 121 +.byte 32 +.byte 108 +.byte 97 +.byte 115 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 119 +.byte 114 +.byte 111 +.byte 110 +.byte 103 +.byte 0 +.align 1 +.L450: +.byte 116 +.byte 111 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 32 +.byte 117 +.byte 108 +.byte 112 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L449: +.byte 79 +.byte 98 +.byte 115 +.byte 101 +.byte 114 +.byte 118 +.byte 101 +.byte 100 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 115 +.byte 32 +.byte 114 +.byte 117 +.byte 110 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 32 +.byte 0 +.align 1 +.L448: +.byte 83 +.byte 113 +.byte 117 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 114 +.byte 111 +.byte 111 +.byte 116 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 101 +.byte 105 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 112 +.byte 101 +.byte 100 +.byte 32 +.byte 110 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L445: +.byte 83 +.byte 113 +.byte 117 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 114 +.byte 111 +.byte 111 +.byte 116 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 112 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L440: +.byte 83 +.byte 113 +.byte 117 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 114 +.byte 111 +.byte 111 +.byte 116 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L435: +.byte 32 +.byte 102 +.byte 97 +.byte 105 +.byte 108 +.byte 115 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 115 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L434: +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 94 +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.L433: +.byte 65 +.byte 110 +.byte 111 +.byte 109 +.byte 97 +.byte 108 +.byte 111 +.byte 117 +.byte 115 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 73 +.byte 110 +.byte 116 +.byte 101 +.byte 103 +.byte 101 +.byte 114 +.byte 32 +.byte 60 +.byte 32 +.byte 0 +.align 1 +.L393: +.byte 84 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 100 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 112 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L371: +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 40 +.byte 88 +.byte 41 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 110 +.byte 45 +.byte 109 +.byte 111 +.byte 110 +.byte 111 +.byte 116 +.byte 111 +.byte 110 +.byte 105 +.byte 99 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 88 +.byte 32 +.byte 110 +.byte 101 +.byte 97 +.byte 114 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L370: +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 32 +.byte 104 +.byte 97 +.byte 115 +.byte 32 +.byte 112 +.byte 97 +.byte 115 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 97 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 77 +.byte 111 +.byte 110 +.byte 111 +.byte 116 +.byte 111 +.byte 110 +.byte 105 +.byte 99 +.byte 105 +.byte 116 +.byte 121 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L353: +.byte 84 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 32 +.byte 109 +.byte 111 +.byte 110 +.byte 111 +.byte 116 +.byte 111 +.byte 110 +.byte 105 +.byte 99 +.byte 105 +.byte 116 +.byte 121 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L342: +.byte 84 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 105 +.byte 102 +.byte 32 +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 40 +.byte 88 +.byte 32 +.byte 42 +.byte 32 +.byte 88 +.byte 41 +.byte 32 +.byte 61 +.byte 61 +.byte 32 +.byte 88 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 73 +.byte 110 +.byte 116 +.byte 101 +.byte 103 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 88 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L337: +.byte 83 +.byte 113 +.byte 117 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 114 +.byte 111 +.byte 111 +.byte 116 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 48 +.byte 46 +.byte 48 +.byte 44 +.byte 32 +.byte 45 +.byte 48 +.byte 46 +.byte 48 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 49 +.byte 46 +.byte 48 +.byte 32 +.byte 119 +.byte 114 +.byte 111 +.byte 110 +.byte 103 +.byte 0 +.align 1 +.L335: +.byte 10 +.byte 82 +.byte 117 +.byte 110 +.byte 110 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 115 +.byte 113 +.byte 117 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 114 +.byte 111 +.byte 111 +.byte 116 +.byte 40 +.byte 120 +.byte 41 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L334: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 78 +.byte 111 +.byte 32 +.byte 102 +.byte 97 +.byte 105 +.byte 108 +.byte 117 +.byte 114 +.byte 101 +.byte 115 +.byte 32 +.byte 102 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 105 +.byte 110 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 105 +.byte 110 +.byte 116 +.byte 101 +.byte 103 +.byte 101 +.byte 114 +.byte 32 +.byte 112 +.byte 97 +.byte 105 +.byte 114 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L333: +.byte 88 +.byte 32 +.byte 42 +.byte 32 +.byte 89 +.byte 32 +.byte 61 +.byte 61 +.byte 32 +.byte 89 +.byte 32 +.byte 42 +.byte 32 +.byte 88 +.byte 32 +.byte 116 +.byte 114 +.byte 105 +.byte 97 +.byte 108 +.byte 32 +.byte 102 +.byte 97 +.byte 105 +.byte 108 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 8 +.L324: +.word 0x40080000 +.word 0x0 +.align 1 +.L323: +.byte 84 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 111 +.byte 110 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 114 +.byte 97 +.byte 110 +.byte 100 +.byte 111 +.byte 109 +.byte 32 +.byte 112 +.byte 97 +.byte 105 +.byte 114 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L322: +.byte 68 +.byte 111 +.byte 101 +.byte 115 +.byte 32 +.byte 77 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 105 +.byte 99 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 109 +.byte 117 +.byte 116 +.byte 101 +.byte 63 +.byte 32 +.byte 32 +.byte 0 +.align 1 +.L319: +.byte 108 +.byte 97 +.byte 99 +.byte 107 +.byte 40 +.byte 115 +.byte 41 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 103 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 102 +.byte 97 +.byte 105 +.byte 108 +.byte 117 +.byte 114 +.byte 101 +.byte 40 +.byte 115 +.byte 41 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 10 +.byte 40 +.byte 110 +.byte 111 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 97 +.byte 98 +.byte 111 +.byte 118 +.byte 101 +.byte 41 +.byte 32 +.byte 99 +.byte 111 +.byte 117 +.byte 110 +.byte 116 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 111 +.byte 110 +.byte 101 +.byte 32 +.byte 102 +.byte 108 +.byte 97 +.byte 119 +.byte 32 +.byte 105 +.byte 110 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 102 +.byte 105 +.byte 110 +.byte 97 +.byte 108 +.byte 32 +.byte 116 +.byte 97 +.byte 108 +.byte 108 +.byte 121 +.byte 32 +.byte 98 +.byte 101 +.byte 108 +.byte 111 +.byte 119 +.byte 0 +.align 1 +.L317: +.byte 83 +.byte 116 +.byte 105 +.byte 99 +.byte 107 +.byte 121 +.byte 32 +.byte 98 +.byte 105 +.byte 116 +.byte 32 +.byte 117 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 105 +.byte 110 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 97 +.byte 116 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L316: +.byte 83 +.byte 116 +.byte 105 +.byte 99 +.byte 107 +.byte 121 +.byte 32 +.byte 98 +.byte 105 +.byte 116 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 97 +.byte 114 +.byte 101 +.byte 110 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 117 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L299: +.byte 67 +.byte 104 +.byte 101 +.byte 99 +.byte 107 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 115 +.byte 116 +.byte 105 +.byte 99 +.byte 107 +.byte 121 +.byte 32 +.byte 98 +.byte 105 +.byte 116 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L296: +.byte 40 +.byte 88 +.byte 32 +.byte 45 +.byte 32 +.byte 89 +.byte 41 +.byte 32 +.byte 43 +.byte 32 +.byte 40 +.byte 89 +.byte 32 +.byte 45 +.byte 32 +.byte 88 +.byte 41 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 110 +.byte 32 +.byte 122 +.byte 101 +.byte 114 +.byte 111 +.byte 33 +.byte 10 +.byte 0 +.align 1 +.L293: +.byte 65 +.byte 100 +.byte 100 +.byte 105 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 47 +.byte 83 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 110 +.byte 101 +.byte 105 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L292: +.byte 65 +.byte 100 +.byte 100 +.byte 47 +.byte 83 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 0 +.align 1 +.L289: +.byte 65 +.byte 100 +.byte 100 +.byte 105 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 47 +.byte 83 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L282: +.byte 65 +.byte 100 +.byte 100 +.byte 47 +.byte 83 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 112 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L277: +.byte 73 +.byte 110 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 108 +.byte 101 +.byte 116 +.byte 101 +.byte 32 +.byte 99 +.byte 97 +.byte 114 +.byte 114 +.byte 121 +.byte 45 +.byte 112 +.byte 114 +.byte 111 +.byte 112 +.byte 97 +.byte 103 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 105 +.byte 110 +.byte 32 +.byte 65 +.byte 100 +.byte 100 +.byte 105 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 0 +.align 1 +.L273: +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 42 +.byte 32 +.byte 40 +.byte 32 +.byte 49 +.byte 32 +.byte 47 +.byte 32 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 41 +.byte 32 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 49 +.byte 0 +.align 1 +.L271: +.byte 47 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 101 +.byte 105 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 112 +.byte 101 +.byte 100 +.byte 32 +.byte 110 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L268: +.byte 68 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L265: +.byte 68 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 0 +.align 1 +.L262: +.byte 68 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L257: +.byte 77 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 105 +.byte 99 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 0 +.align 1 +.L254: +.byte 42 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 101 +.byte 105 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 112 +.byte 101 +.byte 100 +.byte 32 +.byte 110 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L253: +.byte 77 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 105 +.byte 99 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L250: +.byte 77 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 105 +.byte 99 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L240: +.byte 88 +.byte 32 +.byte 42 +.byte 32 +.byte 40 +.byte 49 +.byte 47 +.byte 88 +.byte 41 +.byte 32 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 49 +.byte 0 +.align 1 +.L221: +.byte 67 +.byte 104 +.byte 101 +.byte 99 +.byte 107 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 111 +.byte 110 +.byte 32 +.byte 109 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 121 +.byte 44 +.byte 32 +.byte 100 +.byte 105 +.byte 118 +.byte 105 +.byte 100 +.byte 101 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 97 +.byte 100 +.byte 100 +.byte 47 +.byte 115 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L220: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 42 +.byte 44 +.byte 32 +.byte 47 +.byte 44 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 45 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 104 +.byte 97 +.byte 118 +.byte 101 +.byte 32 +.byte 103 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 44 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 121 +.byte 32 +.byte 115 +.byte 104 +.byte 111 +.byte 117 +.byte 108 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L217: +.byte 32 +.byte 32 +.byte 46 +.byte 46 +.byte 46 +.byte 32 +.byte 32 +.byte 105 +.byte 102 +.byte 32 +.byte 40 +.byte 88 +.byte 32 +.byte 61 +.byte 61 +.byte 32 +.byte 49 +.byte 46 +.byte 48 +.byte 41 +.byte 32 +.byte 123 +.byte 46 +.byte 46 +.byte 46 +.byte 46 +.byte 46 +.byte 125 +.byte 32 +.byte 101 +.byte 108 +.byte 115 +.byte 101 +.byte 32 +.byte 123 +.byte 46 +.byte 46 +.byte 46 +.byte 47 +.byte 40 +.byte 88 +.byte 45 +.byte 49 +.byte 46 +.byte 48 +.byte 41 +.byte 46 +.byte 46 +.byte 46 +.byte 125 +.byte 10 +.byte 0 +.align 1 +.L216: +.byte 32 +.byte 32 +.byte 115 +.byte 117 +.byte 99 +.byte 104 +.byte 32 +.byte 112 +.byte 114 +.byte 101 +.byte 99 +.byte 97 +.byte 117 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 97 +.byte 103 +.byte 97 +.byte 105 +.byte 110 +.byte 115 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 122 +.byte 101 +.byte 114 +.byte 111 +.byte 32 +.byte 97 +.byte 115 +.byte 10 +.byte 0 +.align 1 +.L215: +.byte 32 +.byte 32 +.byte 115 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 121 +.byte 105 +.byte 101 +.byte 108 +.byte 100 +.byte 115 +.byte 32 +.byte 32 +.byte 40 +.byte 49 +.byte 45 +.byte 85 +.byte 49 +.byte 41 +.byte 32 +.byte 45 +.byte 32 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 48 +.byte 32 +.byte 44 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 101 +.byte 98 +.byte 121 +.byte 32 +.byte 118 +.byte 105 +.byte 116 +.byte 105 +.byte 97 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 10 +.byte 0 +.align 1 +.L214: +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 103 +.byte 101 +.byte 115 +.byte 32 +.byte 32 +.byte 40 +.byte 49 +.byte 45 +.byte 85 +.byte 49 +.byte 41 +.byte 32 +.byte 60 +.byte 32 +.byte 49 +.byte 32 +.byte 32 +.byte 97 +.byte 108 +.byte 116 +.byte 104 +.byte 111 +.byte 117 +.byte 103 +.byte 104 +.byte 10 +.byte 0 +.align 1 +.L211: +.byte 45 +.byte 32 +.byte 108 +.byte 97 +.byte 99 +.byte 107 +.byte 115 +.byte 32 +.byte 71 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 68 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 44 +.byte 32 +.byte 115 +.byte 111 +.byte 32 +.byte 99 +.byte 97 +.byte 110 +.byte 99 +.byte 101 +.byte 108 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 111 +.byte 98 +.byte 115 +.byte 99 +.byte 117 +.byte 114 +.byte 101 +.byte 100 +.byte 0 +.align 1 +.L206: +.byte 42 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 47 +.byte 111 +.byte 114 +.byte 32 +.byte 47 +.byte 32 +.byte 103 +.byte 101 +.byte 116 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 109 +.byte 97 +.byte 110 +.byte 121 +.byte 32 +.byte 108 +.byte 97 +.byte 115 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 119 +.byte 114 +.byte 111 +.byte 110 +.byte 103 +.byte 0 +.align 1 +.L202: +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 49 +.byte 47 +.byte 49 +.byte 46 +.byte 48 +.byte 48 +.byte 48 +.byte 46 +.byte 46 +.byte 49 +.byte 32 +.byte 62 +.byte 61 +.byte 32 +.byte 49 +.byte 0 +.align 1 +.L200: +.byte 68 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 108 +.byte 97 +.byte 99 +.byte 107 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 71 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 68 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 44 +.byte 32 +.byte 115 +.byte 111 +.byte 32 +.byte 88 +.byte 47 +.byte 49 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 88 +.byte 0 +.align 1 +.L195: +.byte 68 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 108 +.byte 97 +.byte 99 +.byte 107 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 71 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 68 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 44 +.byte 32 +.byte 115 +.byte 111 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 97 +.byte 110 +.byte 32 +.byte 101 +.byte 120 +.byte 99 +.byte 101 +.byte 101 +.byte 100 +.byte 32 +.byte 49 +.byte 32 +.byte 117 +.byte 108 +.byte 112 +.byte 10 +.byte 111 +.byte 114 +.byte 32 +.byte 32 +.byte 49 +.byte 47 +.byte 51 +.byte 32 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 32 +.byte 51 +.byte 47 +.byte 57 +.byte 32 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 32 +.byte 57 +.byte 47 +.byte 50 +.byte 55 +.byte 32 +.byte 109 +.byte 97 +.byte 121 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 97 +.byte 103 +.byte 114 +.byte 101 +.byte 101 +.byte 0 +.align 1 +.L191: +.byte 42 +.byte 32 +.byte 103 +.byte 101 +.byte 116 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 109 +.byte 97 +.byte 110 +.byte 121 +.byte 32 +.byte 102 +.byte 105 +.byte 110 +.byte 97 +.byte 108 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 119 +.byte 114 +.byte 111 +.byte 110 +.byte 103 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L189: +.byte 42 +.byte 32 +.byte 108 +.byte 97 +.byte 99 +.byte 107 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 71 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 68 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 44 +.byte 32 +.byte 115 +.byte 111 +.byte 32 +.byte 49 +.byte 42 +.byte 88 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 88 +.byte 0 +.align 1 +.L186: +.byte 10 +.byte 67 +.byte 104 +.byte 101 +.byte 99 +.byte 107 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 103 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 32 +.byte 105 +.byte 110 +.byte 32 +.byte 42 +.byte 44 +.byte 32 +.byte 47 +.byte 44 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 45 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L185: +.byte 83 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 110 +.byte 111 +.byte 114 +.byte 109 +.byte 97 +.byte 108 +.byte 105 +.byte 122 +.byte 101 +.byte 100 +.byte 44 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 105 +.byte 116 +.byte 32 +.byte 115 +.byte 104 +.byte 111 +.byte 117 +.byte 108 +.byte 100 +.byte 32 +.byte 98 +.byte 101 +.byte 46 +.byte 0 +.align 1 +.L180: +.byte 83 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 110 +.byte 111 +.byte 114 +.byte 109 +.byte 97 +.byte 108 +.byte 105 +.byte 122 +.byte 101 +.byte 100 +.byte 32 +.byte 88 +.byte 61 +.byte 89 +.byte 44 +.byte 88 +.byte 43 +.byte 90 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 89 +.byte 43 +.byte 90 +.byte 33 +.byte 0 +.align 1 +.L176: +.byte 114 +.byte 111 +.byte 117 +.byte 103 +.byte 104 +.byte 108 +.byte 121 +.byte 32 +.byte 37 +.byte 103 +.byte 32 +.byte 101 +.byte 120 +.byte 116 +.byte 114 +.byte 97 +.byte 32 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 105 +.byte 102 +.byte 105 +.byte 99 +.byte 97 +.byte 110 +.byte 116 +.byte 32 +.byte 100 +.byte 101 +.byte 99 +.byte 105 +.byte 109 +.byte 97 +.byte 108 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L175: +.byte 112 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 101 +.byte 108 +.byte 121 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 97 +.byte 98 +.byte 111 +.byte 117 +.byte 116 +.byte 32 +.byte 37 +.byte 103 +.byte 32 +.byte 101 +.byte 120 +.byte 116 +.byte 114 +.byte 97 +.byte 32 +.byte 66 +.byte 45 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 44 +.byte 32 +.byte 105 +.byte 46 +.byte 101 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L174: +.byte 83 +.byte 111 +.byte 109 +.byte 101 +.byte 32 +.byte 115 +.byte 117 +.byte 98 +.byte 101 +.byte 120 +.byte 112 +.byte 114 +.byte 101 +.byte 115 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 99 +.byte 97 +.byte 108 +.byte 99 +.byte 117 +.byte 108 +.byte 97 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 101 +.byte 120 +.byte 116 +.byte 114 +.byte 97 +.byte 10 +.byte 0 +.align 1 +.L168: +.byte 111 +.byte 102 +.byte 32 +.byte 97 +.byte 110 +.byte 10 +.byte 101 +.byte 120 +.byte 116 +.byte 114 +.byte 97 +.byte 45 +.byte 112 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 0 +.align 1 +.L167: +.byte 90 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 90 +.byte 50 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 32 +.byte 0 +.align 1 +.L166: +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 101 +.byte 120 +.byte 97 +.byte 99 +.byte 116 +.byte 32 +.byte 114 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 97 +.byte 108 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 97 +.byte 32 +.byte 114 +.byte 101 +.byte 115 +.byte 117 +.byte 108 +.byte 116 +.byte 10 +.byte 0 +.align 1 +.L165: +.byte 66 +.byte 101 +.byte 99 +.byte 97 +.byte 117 +.byte 115 +.byte 101 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 117 +.byte 110 +.byte 117 +.byte 115 +.byte 117 +.byte 97 +.byte 108 +.byte 32 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 102 +.byte 0 +.align 1 +.L161: +.byte 9 +.byte 85 +.byte 50 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 44 +.byte 32 +.byte 90 +.byte 50 +.byte 32 +.byte 45 +.byte 32 +.byte 85 +.byte 50 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.L160: +.byte 9 +.byte 85 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 44 +.byte 32 +.byte 90 +.byte 49 +.byte 32 +.byte 45 +.byte 32 +.byte 85 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.L159: +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 0 +.align 1 +.L158: +.byte 0 +.align 1 +.L151: +.byte 84 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 102 +.byte 101 +.byte 97 +.byte 116 +.byte 117 +.byte 114 +.byte 101 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 102 +.byte 117 +.byte 114 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L146: +.byte 80 +.byte 111 +.byte 115 +.byte 115 +.byte 105 +.byte 98 +.byte 108 +.byte 121 +.byte 32 +.byte 115 +.byte 111 +.byte 109 +.byte 101 +.byte 32 +.byte 112 +.byte 97 +.byte 114 +.byte 116 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 0 +.align 1 +.L145: +.byte 98 +.byte 121 +.byte 32 +.byte 101 +.byte 120 +.byte 116 +.byte 114 +.byte 97 +.byte 45 +.byte 112 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 101 +.byte 32 +.byte 101 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 115 +.byte 117 +.byte 98 +.byte 101 +.byte 120 +.byte 112 +.byte 114 +.byte 101 +.byte 115 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L144: +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 115 +.byte 121 +.byte 109 +.byte 112 +.byte 116 +.byte 111 +.byte 109 +.byte 115 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 105 +.byte 110 +.byte 99 +.byte 111 +.byte 110 +.byte 115 +.byte 105 +.byte 115 +.byte 116 +.byte 101 +.byte 110 +.byte 99 +.byte 105 +.byte 101 +.byte 115 +.byte 32 +.byte 105 +.byte 110 +.byte 116 +.byte 114 +.byte 111 +.byte 100 +.byte 117 +.byte 99 +.byte 101 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.L143: +.byte 114 +.byte 101 +.byte 115 +.byte 112 +.byte 101 +.byte 99 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 108 +.byte 121 +.byte 32 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 44 +.byte 32 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 44 +.byte 32 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 44 +.byte 10 +.byte 0 +.align 1 +.L142: +.byte 68 +.byte 105 +.byte 115 +.byte 97 +.byte 103 +.byte 114 +.byte 101 +.byte 101 +.byte 109 +.byte 101 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 97 +.byte 109 +.byte 111 +.byte 110 +.byte 103 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 115 +.byte 32 +.byte 88 +.byte 49 +.byte 44 +.byte 32 +.byte 89 +.byte 49 +.byte 44 +.byte 32 +.byte 90 +.byte 49 +.byte 44 +.byte 10 +.byte 0 +.align 1 +.L120: +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 119 +.byte 111 +.byte 114 +.byte 115 +.byte 101 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 110 +.byte 32 +.byte 53 +.byte 32 +.byte 100 +.byte 101 +.byte 99 +.byte 105 +.byte 109 +.byte 97 +.byte 108 +.byte 32 +.byte 102 +.byte 105 +.byte 103 +.byte 117 +.byte 114 +.byte 101 +.byte 115 +.byte 32 +.byte 32 +.byte 0 +.align 1 +.L118: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 105 +.byte 102 +.byte 105 +.byte 99 +.byte 97 +.byte 110 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 37 +.byte 102 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L117: +.byte 108 +.byte 111 +.byte 103 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 105 +.byte 99 +.byte 32 +.byte 101 +.byte 110 +.byte 99 +.byte 111 +.byte 100 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 104 +.byte 97 +.byte 115 +.byte 32 +.byte 112 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 99 +.byte 104 +.byte 97 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 101 +.byte 114 +.byte 105 +.byte 122 +.byte 101 +.byte 100 +.byte 32 +.byte 115 +.byte 111 +.byte 108 +.byte 101 +.byte 108 +.byte 121 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 85 +.byte 49 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L114: +.byte 111 +.byte 102 +.byte 32 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 105 +.byte 102 +.byte 105 +.byte 99 +.byte 97 +.byte 110 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 98 +.byte 117 +.byte 116 +.byte 44 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 105 +.byte 116 +.byte 115 +.byte 101 +.byte 108 +.byte 102 +.byte 44 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 109 +.byte 105 +.byte 110 +.byte 111 +.byte 114 +.byte 32 +.byte 102 +.byte 108 +.byte 97 +.byte 119 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L113: +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 99 +.byte 97 +.byte 110 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 99 +.byte 104 +.byte 97 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 101 +.byte 114 +.byte 105 +.byte 122 +.byte 101 +.byte 100 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 97 +.byte 110 +.byte 32 +.byte 73 +.byte 110 +.byte 116 +.byte 101 +.byte 103 +.byte 101 +.byte 114 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 10 +.byte 0 +.align 1 +.L100: +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 102 +.byte 117 +.byte 122 +.byte 122 +.byte 121 +.byte 44 +.byte 88 +.byte 61 +.byte 49 +.byte 32 +.byte 98 +.byte 117 +.byte 116 +.byte 32 +.byte 88 +.byte 45 +.byte 49 +.byte 47 +.byte 50 +.byte 45 +.byte 49 +.byte 47 +.byte 50 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 0 +.align 1 +.L96: +.byte 40 +.byte 49 +.byte 45 +.byte 85 +.byte 49 +.byte 41 +.byte 45 +.byte 49 +.byte 47 +.byte 50 +.byte 32 +.byte 60 +.byte 32 +.byte 49 +.byte 47 +.byte 50 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 70 +.byte 65 +.byte 76 +.byte 83 +.byte 69 +.byte 44 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 46 +.byte 32 +.byte 102 +.byte 97 +.byte 105 +.byte 108 +.byte 115 +.byte 63 +.byte 0 +.align 8 +.L94: +.word 0x40240000 +.word 0x0 +.align 1 +.L89: +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 103 +.byte 111 +.byte 111 +.byte 100 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 50 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 49 +.byte 48 +.byte 0 +.align 1 +.L85: +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 98 +.byte 105 +.byte 103 +.byte 58 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 111 +.byte 102 +.byte 102 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 98 +.byte 108 +.byte 101 +.byte 109 +.byte 115 +.byte 0 +.align 1 +.L83: +.byte 77 +.byte 89 +.byte 83 +.byte 84 +.byte 69 +.byte 82 +.byte 89 +.byte 58 +.byte 32 +.byte 114 +.byte 101 +.byte 99 +.byte 97 +.byte 108 +.byte 99 +.byte 117 +.byte 108 +.byte 97 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L82: +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 102 +.byte 105 +.byte 114 +.byte 109 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 8 +.L79: +.word 0x3f847ae1 +.word 0x47ae147b +.align 1 +.L78: +.byte 103 +.byte 101 +.byte 116 +.byte 115 +.byte 32 +.byte 98 +.byte 101 +.byte 116 +.byte 116 +.byte 101 +.byte 114 +.byte 32 +.byte 99 +.byte 108 +.byte 111 +.byte 115 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 114 +.byte 101 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 32 +.byte 115 +.byte 101 +.byte 112 +.byte 97 +.byte 114 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 85 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L77: +.byte 99 +.byte 111 +.byte 110 +.byte 102 +.byte 105 +.byte 114 +.byte 109 +.byte 115 +.byte 32 +.byte 99 +.byte 108 +.byte 111 +.byte 115 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 114 +.byte 101 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 32 +.byte 115 +.byte 101 +.byte 112 +.byte 97 +.byte 114 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 85 +.byte 49 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L62: +.byte 82 +.byte 101 +.byte 99 +.byte 97 +.byte 108 +.byte 99 +.byte 117 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 114 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 112 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 10 +.byte 32 +.byte 0 +.align 1 +.L61: +.byte 67 +.byte 108 +.byte 111 +.byte 115 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 114 +.byte 101 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 32 +.byte 115 +.byte 101 +.byte 112 +.byte 97 +.byte 114 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 102 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 85 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 10 +.byte 0 +.align 1 +.L55: +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 102 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L46: +.byte 83 +.byte 101 +.byte 97 +.byte 114 +.byte 99 +.byte 104 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L45: +.byte 10 +.byte 0 +.align 1 +.L44: +.byte 45 +.byte 49 +.byte 44 +.byte 32 +.byte 48 +.byte 44 +.byte 32 +.byte 49 +.byte 47 +.byte 50 +.byte 44 +.byte 32 +.byte 49 +.byte 44 +.byte 32 +.byte 50 +.byte 44 +.byte 32 +.byte 51 +.byte 44 +.byte 32 +.byte 52 +.byte 44 +.byte 32 +.byte 53 +.byte 44 +.byte 32 +.byte 57 +.byte 44 +.byte 32 +.byte 50 +.byte 55 +.byte 44 +.byte 32 +.byte 51 +.byte 50 +.byte 32 +.byte 38 +.byte 32 +.byte 50 +.byte 52 +.byte 48 +.byte 32 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 79 +.byte 46 +.byte 75 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.L39: +.byte 53 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 52 +.byte 43 +.byte 49 +.byte 44 +.byte 32 +.byte 50 +.byte 52 +.byte 48 +.byte 47 +.byte 51 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 56 +.byte 48 +.byte 44 +.byte 32 +.byte 50 +.byte 52 +.byte 48 +.byte 47 +.byte 52 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 54 +.byte 48 +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 50 +.byte 52 +.byte 48 +.byte 47 +.byte 53 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 52 +.byte 56 +.byte 0 +.align 1 +.L35: +.byte 57 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 51 +.byte 42 +.byte 51 +.byte 44 +.byte 32 +.byte 50 +.byte 55 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 57 +.byte 42 +.byte 51 +.byte 44 +.byte 32 +.byte 51 +.byte 50 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 56 +.byte 42 +.byte 52 +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 51 +.byte 50 +.byte 45 +.byte 50 +.byte 55 +.byte 45 +.byte 52 +.byte 45 +.byte 49 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 0 +.align 1 +.L31: +.byte 49 +.byte 47 +.byte 50 +.byte 32 +.byte 43 +.byte 32 +.byte 40 +.byte 45 +.byte 49 +.byte 41 +.byte 32 +.byte 43 +.byte 32 +.byte 49 +.byte 47 +.byte 50 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 0 +.align 1 +.L27: +.byte 45 +.byte 49 +.byte 43 +.byte 49 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 44 +.byte 32 +.byte 40 +.byte 45 +.byte 49 +.byte 41 +.byte 43 +.byte 97 +.byte 98 +.byte 115 +.byte 40 +.byte 49 +.byte 41 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 45 +.byte 49 +.byte 43 +.byte 40 +.byte 45 +.byte 49 +.byte 41 +.byte 42 +.byte 40 +.byte 45 +.byte 49 +.byte 41 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 0 +.align 1 +.L23: +.byte 51 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 50 +.byte 43 +.byte 49 +.byte 44 +.byte 32 +.byte 52 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 51 +.byte 43 +.byte 49 +.byte 44 +.byte 32 +.byte 52 +.byte 43 +.byte 50 +.byte 42 +.byte 40 +.byte 45 +.byte 50 +.byte 41 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 52 +.byte 45 +.byte 51 +.byte 45 +.byte 49 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 0 +.align 8 +.L21: +.word 0x3f50624d +.word 0xd2f1a9fc +.align 1 +.L20: +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 103 +.byte 101 +.byte 115 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 45 +.byte 48 +.byte 46 +.byte 48 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 78 +.byte 111 +.byte 110 +.byte 45 +.byte 122 +.byte 101 +.byte 114 +.byte 111 +.byte 33 +.byte 10 +.byte 0 +.align 1 +.L15: +.byte 48 +.byte 43 +.byte 48 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 44 +.byte 32 +.byte 49 +.byte 45 +.byte 49 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 44 +.byte 32 +.byte 49 +.byte 32 +.byte 60 +.byte 61 +.byte 32 +.byte 48 +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 49 +.byte 43 +.byte 49 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 50 +.byte 0 +.align 1 +.L13: +.byte 80 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 119 +.byte 32 +.byte 82 +.byte 85 +.byte 78 +.byte 78 +.byte 73 +.byte 78 +.byte 71 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 115 +.byte 32 +.byte 111 +.byte 110 +.byte 32 +.byte 115 +.byte 109 +.byte 97 +.byte 108 +.byte 108 +.byte 32 +.byte 105 +.byte 110 +.byte 116 +.byte 101 +.byte 103 +.byte 101 +.byte 114 +.byte 115 +.byte 58 +.byte 10 +.byte 0 +.align 8 +.L9: +.word 0x3ff00000 +.word 0x0 +.align 8 +.L8: +.word 0x0 +.word 0x0 +.align 1 +.L3: +.byte 10 +.byte 42 +.byte 32 +.byte 42 +.byte 32 +.byte 42 +.byte 32 +.byte 70 +.byte 76 +.byte 79 +.byte 65 +.byte 84 +.byte 73 +.byte 78 +.byte 71 +.byte 45 +.byte 80 +.byte 79 +.byte 73 +.byte 78 +.byte 84 +.byte 32 +.byte 69 +.byte 82 +.byte 82 +.byte 79 +.byte 82 +.byte 32 +.byte 42 +.byte 32 +.byte 42 +.byte 32 +.byte 42 +.byte 10 +.byte 0 diff --git a/code/tools/lcc/sparc/solaris/tst/sort.1bk b/code/tools/lcc/sparc/solaris/tst/sort.1bk new file mode 100644 index 0000000..75e1f0d --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/sort.1bk @@ -0,0 +1,20 @@ +exchange(1,9) +exchange(3,7) +exchange(5,6) +exchange(0,5) +exchange(0,3) +exchange(0,0) +exchange(1,2) +exchange(6,6) +exchange(8,9) +exchange(7,8) +-51 +-1 +0 +1 +3 +10 +18 +32 +567 +789 diff --git a/code/tools/lcc/sparc/solaris/tst/sort.2bk b/code/tools/lcc/sparc/solaris/tst/sort.2bk new file mode 100644 index 0000000..81e6f38 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/sort.2bk @@ -0,0 +1,5 @@ +tst/sort.c:23: warning: missing return value +tst/sort.c:30: warning: missing return value +tst/sort.c:37: warning: missing return value +tst/sort.c:41: warning: missing return value +tst/sort.c:65: warning: missing return value diff --git a/code/tools/lcc/sparc/solaris/tst/sort.sbk b/code/tools/lcc/sparc/solaris/tst/sort.sbk new file mode 100644 index 0000000..709dd46 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/sort.sbk @@ -0,0 +1,202 @@ +.section ".data" +.global in +.type in,#object +.align 4 +in: +.word 0xa +.word 0x20 +.word 0xffffffff +.word 0x237 +.word 0x3 +.word 0x12 +.word 0x1 +.word 0xffffffcd +.word 0x315 +.word 0x0 +.size in,40 +.global main +.section ".text" +.align 4 +main: +save %sp,-96,%sp +set in,%o0 +set 10,%o1 +call sort; nop +mov %g0,%i5 +ba .L5; nop +.L2: +sll %i5,2,%i4 +set in,%i3 +ld [%i4+%i3],%o0 +call putd; nop +set 10,%o0 +call putchar; nop +.L3: +add %i5,1,%i5 +.L5: +mov %i5,%i4 +set 10,%i3 +cmp %i4,%i3; blu .L2; nop +mov %g0,%i0 +.L1: +ret; restore +.type main,#function +.size main,.-main +.global putd +.align 4 +putd: +save %sp,-96,%sp +cmp %i0,0; bge .L7; nop +set 45,%o0 +call putchar; nop +neg %i0,%i0 +.L7: +sra %i0,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %i0,10,%i5 +cmp %i5,0; be .L9; nop +sra %i0,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %i0,10,%o0 +call putd; nop +.L9: +sra %i0,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %i0,10,%g1 +; smul %g1,10,%g1; sub %i0,%g1,%i5 +add %i5,48,%o0 +call putchar; nop +mov %g0,%i0 +.L6: +ret; restore +.type putd,#function +.size putd,.-putd +.global sort +.align 4 +sort: +save %sp,-96,%sp +set xx,%i5 +st %i0,[%i5] +mov %i0,%o0 +mov %g0,%o1 +sub %i1,1,%i5 +mov %i5,%i1 +mov %i5,%o2 +call quick; nop +mov %g0,%i0 +.L11: +ret; restore +.type sort,#function +.size sort,.-sort +.global quick +.align 4 +quick: +save %sp,-96,%sp +cmp %i1,%i2; bl .L13; nop +ba .L12; nop +.L13: +mov %i0,%o0 +mov %i1,%o1 +mov %i2,%o2 +call partition; nop +mov %o0,%i5 +mov %i0,%o0 +mov %i1,%o1 +sub %i5,1,%o2 +call quick; nop +mov %i0,%o0 +add %i5,1,%o1 +mov %i2,%o2 +call quick; nop +mov %g0,%i0 +.L12: +ret; restore +.type quick,#function +.size quick,.-quick +.global partition +.align 4 +partition: +save %sp,-96,%sp +add %i2,1,%i2 +mov %i1,%i4 +sll %i4,2,%i3 +ld [%i3+%i0],%i5 +ba .L17; nop +.L16: +add %i1,1,%i1 +ba .L20; nop +.L19: +add %i1,1,%i1 +.L20: +sll %i1,2,%i3 +ld [%i3+%i0],%i3 +cmp %i3,%i5; bl .L19; nop +sub %i2,1,%i2 +ba .L23; nop +.L22: +sub %i2,1,%i2 +.L23: +sll %i2,2,%i3 +ld [%i3+%i0],%i3 +cmp %i3,%i5; bg .L22; nop +cmp %i1,%i2; bge .L25; nop +sll %i1,2,%i3 +add %i3,%i0,%o0 +sll %i2,2,%i3 +add %i3,%i0,%o1 +call exchange; nop +.L25: +.L17: +cmp %i1,%i2; bl .L16; nop +sll %i4,2,%i3 +add %i3,%i0,%o0 +sll %i2,2,%i3 +add %i3,%i0,%o1 +call exchange; nop +mov %i2,%i0 +.L15: +ret; restore +.type partition,#function +.size partition,.-partition +.global exchange +.align 4 +exchange: +save %sp,-96,%sp +set .L28,%o0 +set xx,%i4 +ld [%i4],%i4 +mov %i0,%i3 +sub %i3,%i4,%i3 +sra %i3,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %i3,4,%o1 +mov %i1,%i3 +sub %i3,%i4,%i4 +sra %i4,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %i4,4,%o2 +call printf; nop +ld [%i0],%i5 +ld [%i1],%i4 +st %i4,[%i0] +st %i5,[%i1] +mov %g0,%i0 +.L27: +ret; restore +.type exchange,#function +.size exchange,.-exchange +.section ".bss" +.global xx +.type xx,#object +.size xx,4 +.common xx,4,4 +.section ".rodata" +.align 1 +.L28: +.byte 101 +.byte 120 +.byte 99 +.byte 104 +.byte 97 +.byte 110 +.byte 103 +.byte 101 +.byte 40 +.byte 37 +.byte 100 +.byte 44 +.byte 37 +.byte 100 +.byte 41 +.byte 10 +.byte 0 diff --git a/code/tools/lcc/sparc/solaris/tst/spill.1bk b/code/tools/lcc/sparc/solaris/tst/spill.1bk new file mode 100644 index 0000000..e69de29 diff --git a/code/tools/lcc/sparc/solaris/tst/spill.2bk b/code/tools/lcc/sparc/solaris/tst/spill.2bk new file mode 100644 index 0000000..afd73e2 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/spill.2bk @@ -0,0 +1,6 @@ +tst/spill.c:1: warning: missing return value +tst/spill.c:3: warning: missing return value +tst/spill.c:5: warning: missing return value +tst/spill.c:7: warning: missing return value +tst/spill.c:9: warning: missing return value +tst/spill.c:17: warning: missing return value diff --git a/code/tools/lcc/sparc/solaris/tst/spill.sbk b/code/tools/lcc/sparc/solaris/tst/spill.sbk new file mode 100644 index 0000000..8b3ff96 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/spill.sbk @@ -0,0 +1,207 @@ +.global main +.section ".text" +.align 4 +main: +mov %g0,%o0 +.L1: +retl; nop +.type main,#function +.size main,.-main +.global f +.align 4 +f: +save %sp,-96,%sp +call f; nop +mov %o0,%i5 +call f; nop +add %i5,%o0,%i0 +mov %g0,%i0 +.L2: +ret; restore +.type f,#function +.size f,.-f +.global f2 +.align 4 +f2: +save %sp,-96,%sp +call f; nop +mov %o0,%i4 +cmp %i0,0; be .L5; nop +call f; nop +mov %o0,%i3 +mov %i3,%i5 +ba .L6; nop +.L5: +set 1,%i5 +.L6: +add %i4,%i5,%i0 +mov %g0,%i0 +.L3: +ret; restore +.type f2,#function +.size f2,.-f2 +.global f3 +.align 4 +f3: +save %sp,-104,%sp +mov %g0,%i5 +mov %g0,%i4 +mov %g0,%i3 +mov %g0,%i2 +mov %g0,%l7 +mov %g0,%l6 +mov %g0,%l5 +mov %g0,%l4 +st %g0,[%fp+-4] +st %g0,[%fp+-8] +mov %i1,%l3 +add %l3,4,%i1 +cmp %i0,0; be .L9; nop +call f; nop +mov %o0,%l2 +st %l2,[%fp+-12] +ba .L10; nop +.L9: +st %g0,[%fp+-12] +.L10: +ld [%fp+-12],%l2 +st %l2,[%l3] +mov %g0,%i0 +.L7: +ret; restore +.type f3,#function +.size f3,.-f3 +.global f4 +.align 4 +f4: +save %sp,-96,%sp +mov %g0,%i5 +mov %g0,%i4 +mov %g0,%i3 +mov %g0,%i2 +mov %g0,%i1 +mov %g0,%i0 +set i,%l6 +ld [%l6],%l6 +sll %l6,3,%l5 +set a,%l4 +add %l5,%l4,%l4 +ld2 [%l4],%f30 +set b,%l4 +add %l5,%l4,%l5 +ld2 [%l5],%f28 +set .L15,%l5 +ld2 [%l5],%f26 +faddd %f30,%f28,%f24 +fcmped %f24,%f26; nop; fbue .L13; nop +cmp %l6,0; be .L13; nop +fsubd %f30,%f28,%f30 +fcmped %f30,%f26; nop; fbue .L13; nop +set 1,%l7 +ba .L14; nop +.L13: +mov %g0,%l7 +.L14: +set i,%l6 +st %l7,[%l6] +mov %g0,%i0 +.L11: +ret; restore +.type f4,#function +.size f4,.-f4 +.global f5 +.align 4 +f5: +save %sp,-96,%sp +set x,%i5 +set k,%i4 +ld [%i4],%i4 +set m,%i3 +ld [%i3],%i3 +set A,%i2 +ld [%i2],%i2 +smul %i3,%i4,%i1 +sll %i1,3,%i1 +add %i1,%i2,%i1 +set j,%i0 +ld [%i0],%i0 +smul %i3,%i0,%i3 +sll %i3,3,%i3 +add %i3,%i2,%i3 +set n,%i2 +ld [%i2],%i2 +set B,%l7 +ld [%l7],%l7 +smul %i2,%i4,%i4 +sll %i4,3,%i4 +add %i4,%l7,%i4 +smul %i2,%i0,%i2 +sll %i2,3,%i2 +add %i2,%l7,%i2 +ld2 [%i1],%f30 +ld2 [%i3],%f28 +fmuld %f30,%f28,%f30 +ld2 [%i4],%f28 +ld2 [%i2],%f26 +fmuld %f28,%f26,%f28 +faddd %f30,%f28,%f30 +st2 %f30,[%i5] +ld2 [%i1],%f30 +ld2 [%i2],%f28 +fmuld %f30,%f28,%f30 +ld2 [%i4],%f28 +ld2 [%i3],%f26 +fmuld %f28,%f26,%f28 +fsubd %f30,%f28,%f30 +st2 %f30,[%i5] +mov %g0,%i0 +.L16: +ret; restore +.type f5,#function +.size f5,.-f5 +.section ".bss" +.global x +.type x,#object +.size x,8 +.common x,8,8 +.global B +.type B,#object +.size B,4 +.common B,4,4 +.global A +.type A,#object +.size A,4 +.common A,4,4 +.global n +.type n,#object +.size n,4 +.common n,4,4 +.global m +.type m,#object +.size m,4 +.common m,4,4 +.global k +.type k,#object +.size k,4 +.common k,4,4 +.global j +.type j,#object +.size j,4 +.common j,4,4 +.global i +.type i,#object +.size i,4 +.common i,4,4 +.global b +.type b,#object +.size b,80 +.common b,80,8 +.global a +.type a,#object +.size a,80 +.common a,80,8 +.section ".rodata" +.align 8 +.L15: +.word 0x0 +.word 0x0 diff --git a/code/tools/lcc/sparc/solaris/tst/stdarg.1bk b/code/tools/lcc/sparc/solaris/tst/stdarg.1bk new file mode 100644 index 0000000..e973176 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/stdarg.1bk @@ -0,0 +1,6 @@ +test 1 +test 2 +test 3 +test 4 +test 5.000000 +{1 2 3 4} {1 2 3 4} {1 2 3 4} {1 2 3 4} {1 2 3 4} {1 2 3 4} diff --git a/code/tools/lcc/sparc/solaris/tst/stdarg.2bk b/code/tools/lcc/sparc/solaris/tst/stdarg.2bk new file mode 100644 index 0000000..2b3f417 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/stdarg.2bk @@ -0,0 +1 @@ +tst/stdarg.c:51: warning: missing return value diff --git a/code/tools/lcc/sparc/solaris/tst/stdarg.sbk b/code/tools/lcc/sparc/solaris/tst/stdarg.sbk new file mode 100644 index 0000000..2cbe140 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/stdarg.sbk @@ -0,0 +1,376 @@ +.section ".data" +.global x +.type x,#object +.size x,16 +.align 4 +x: +.word 0x1 +.word 0x2 +.word 0x3 +.word 0x4 +.global main +.section ".text" +.align 4 +main: +save %sp,-192,%sp +set .L2,%o0 +call print; nop +set .L3,%o0 +set .L4,%o1 +call print; nop +set .L5,%o0 +set 3,%o1 +set 10,%o2 +call print; nop +set .L6,%o0 +set .L7,%o1 +set .L8,%o2 +set 4,%o3 +set 10,%o4 +call print; nop +set .L9,%o0 +set .L7,%o1 +set .L8,%o2 +set .L10,%i5 +ld2 [%i5],%f30 +st %f30,[%sp+4*3+68] +st %f31,[%sp+4*4+68] +ld [%sp+4*3+68],%o3 +ld [%sp+4*4+68],%o4 +set 10,%o5 +call print; nop +set .L11,%o0 +set x,%i5 +add -16,%fp,%i4 +ld [%r29+0],%r1 +ld [%r29+4],%r2 +st %r1,[%r28+0] +st %r2,[%r28+4] +ld [%r29+8],%r1 +ld [%r29+12],%r2 +st %r1,[%r28+8] +st %r2,[%r28+12] +add -16,%fp,%o1 +add -32,%fp,%i4 +ld [%r29+0],%r1 +ld [%r29+4],%r2 +st %r1,[%r28+0] +st %r2,[%r28+4] +ld [%r29+8],%r1 +ld [%r29+12],%r2 +st %r1,[%r28+8] +st %r2,[%r28+12] +add -32,%fp,%o2 +add -48,%fp,%i4 +ld [%r29+0],%r1 +ld [%r29+4],%r2 +st %r1,[%r28+0] +st %r2,[%r28+4] +ld [%r29+8],%r1 +ld [%r29+12],%r2 +st %r1,[%r28+8] +st %r2,[%r28+12] +add -48,%fp,%o3 +add -64,%fp,%i4 +ld [%r29+0],%r1 +ld [%r29+4],%r2 +st %r1,[%r28+0] +st %r2,[%r28+4] +ld [%r29+8],%r1 +ld [%r29+12],%r2 +st %r1,[%r28+8] +st %r2,[%r28+12] +add -64,%fp,%o4 +add -80,%fp,%i4 +ld [%r29+0],%r1 +ld [%r29+4],%r2 +st %r1,[%r28+0] +st %r2,[%r28+4] +ld [%r29+8],%r1 +ld [%r29+12],%r2 +st %r1,[%r28+8] +st %r2,[%r28+12] +add -80,%fp,%o5 +add -96,%fp,%i4 +ld [%r29+0],%r1 +ld [%r29+4],%r2 +st %r1,[%r28+0] +st %r2,[%r28+4] +ld [%r29+8],%r1 +ld [%r29+12],%r2 +st %r1,[%r28+8] +st %r2,[%r28+12] +add -96,%fp,%i5 +st %i5,[%sp+4*6+68] +call print; nop +mov %g0,%i0 +.L1: +ret; restore +.type main,#function +.size main,.-main +.global print +.align 4 +print: +save %sp,-112,%sp +st %i1,[%fp+72] +st %i2,[%fp+76] +st %i3,[%fp+80] +st %i4,[%fp+84] +st %i5,[%fp+88] +st %i0,[%fp+68] +add 72,%fp,%i5 +ba .L18; nop +.L15: +ld [%fp+68],%i4 +ldsb [%i4],%i4 +cmp %i4,37; bne .L19; nop +ld [%fp+68],%i3 +add %i3,1,%i3 +st %i3,[%fp+68] +ldsb [%i3],%i4 +cmp %i4,115; be .L35; nop +cmp %i4,115; bg .L40; nop +.L39: +cmp %i4,98; bl .L21; nop +cmp %i4,102; bg .L21; nop +sll %i4,2,%i3 +set .L41-392,%i2 +ld [%i3+%i2],%i3 +jmp %i3; nop +.section ".rodata" +.align 4 +.L41: +.word .L24 +.word .L29 +.word .L31 +.word .L21 +.word .L37 +.section ".text" +.L40: +cmp %i4,119; be .L33; nop +ba .L21; nop +.L24: +add %i5,4,%i3 +mov %i3,%i5 +add -16,%fp,%i2 +ld [%i3+-4],%i3 +ld [%r27+0],%r1 +ld [%r27+4],%r2 +st %r1,[%r26+0] +st %r2,[%r26+4] +ld [%r27+8],%r1 +ld [%r27+12],%r2 +st %r1,[%r26+8] +st %r2,[%r26+12] +set .L25,%o0 +ld [%fp+-16],%o1 +ld [%fp+-12],%o2 +ld [%fp+-8],%o3 +ld [%fp+-4],%o4 +call printf; nop +ba .L20; nop +.L29: +set .L30,%o0 +add %i5,4,%i3 +mov %i3,%i5 +ldsb [%i3+-1],%o1 +call printf; nop +ba .L20; nop +.L31: +set .L32,%o0 +set 4,%i3 +add %i5,%i3,%i3 +mov %i3,%i5 +ld [%i3+-4],%o1 +call printf; nop +ba .L20; nop +.L33: +set .L34,%o0 +add %i5,4,%i3 +mov %i3,%i5 +ldsh [%i3+-2],%o1 +call printf; nop +ba .L20; nop +.L35: +set .L36,%o0 +set 4,%i3 +add %i5,%i3,%i3 +mov %i3,%i5 +ld [%i3+-4],%o1 +call printf; nop +ba .L20; nop +.L37: +set .L38,%o0 +set 8,%i3 +add %i5,%i3,%i3 +mov %i3,%i5 +ld2 [%i3+-8],%f30 +st %f30,[%sp+4*1+68] +st %f31,[%sp+4*2+68] +ld [%sp+4*1+68],%o1 +ld [%sp+4*2+68],%o2 +call printf; nop +ba .L20; nop +.L21: +set .L30,%o0 +ld [%fp+68],%i3 +ldsb [%i3],%o1 +call printf; nop +ba .L20; nop +.L19: +set .L30,%o0 +ld [%fp+68],%i3 +ldsb [%i3],%o1 +call printf; nop +.L20: +.L16: +ld [%fp+68],%i3 +add %i3,1,%i3 +st %i3,[%fp+68] +.L18: +ld [%fp+68],%i3 +ldsb [%i3],%i3 +cmp %i3,0; bne .L15; nop +mov %g0,%i0 +.L12: +ret; restore +.type print,#function +.size print,.-print +.section ".rodata" +.align 1 +.L38: +.byte 37 +.byte 102 +.byte 0 +.align 1 +.L36: +.byte 37 +.byte 115 +.byte 0 +.align 1 +.L34: +.byte 37 +.byte 120 +.byte 0 +.align 1 +.L32: +.byte 37 +.byte 100 +.byte 0 +.align 1 +.L30: +.byte 37 +.byte 99 +.byte 0 +.align 1 +.L25: +.byte 123 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 125 +.byte 0 +.align 1 +.L11: +.byte 37 +.byte 98 +.byte 32 +.byte 37 +.byte 98 +.byte 32 +.byte 37 +.byte 98 +.byte 32 +.byte 37 +.byte 98 +.byte 32 +.byte 37 +.byte 98 +.byte 32 +.byte 37 +.byte 98 +.byte 10 +.byte 0 +.align 8 +.L10: +.word 0x40140000 +.word 0x0 +.align 1 +.L9: +.byte 37 +.byte 115 +.byte 37 +.byte 115 +.byte 32 +.byte 37 +.byte 102 +.byte 37 +.byte 99 +.byte 0 +.align 1 +.L8: +.byte 115 +.byte 116 +.byte 0 +.align 1 +.L7: +.byte 116 +.byte 101 +.byte 0 +.align 1 +.L6: +.byte 37 +.byte 115 +.byte 37 +.byte 115 +.byte 32 +.byte 37 +.byte 119 +.byte 37 +.byte 99 +.byte 0 +.align 1 +.L5: +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 37 +.byte 100 +.byte 37 +.byte 99 +.byte 0 +.align 1 +.L4: +.byte 50 +.byte 0 +.align 1 +.L3: +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 1 +.L2: +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 49 +.byte 10 +.byte 0 diff --git a/code/tools/lcc/sparc/solaris/tst/struct.1bk b/code/tools/lcc/sparc/solaris/tst/struct.1bk new file mode 100644 index 0000000..807f3da --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/struct.1bk @@ -0,0 +1,5 @@ +(-1,-1) is not within [10,10; 310,310] +(1,1) is not within [10,10; 310,310] +(20,300) is within [10,10; 310,310] +(500,400) is not within [10,10; 310,310] +ab diff --git a/code/tools/lcc/sparc/solaris/tst/struct.2bk b/code/tools/lcc/sparc/solaris/tst/struct.2bk new file mode 100644 index 0000000..cb0fbd0 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/struct.2bk @@ -0,0 +1,2 @@ +tst/struct.c:49: warning: missing return value +tst/struct.c:68: warning: missing return value diff --git a/code/tools/lcc/sparc/solaris/tst/struct.sbk b/code/tools/lcc/sparc/solaris/tst/struct.sbk new file mode 100644 index 0000000..3c4bfb5 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/struct.sbk @@ -0,0 +1,377 @@ +.global addpoint +.section ".text" +.align 4 +addpoint: +save %sp,-96,%sp +ld [%i0],%i5 +ld [%i1],%i4 +add %i5,%i4,%i5 +st %i5,[%i0] +add %i0,4,%i5 +ld [%i5],%i4 +ld [%i1+4],%i3 +add %i4,%i3,%i4 +st %i4,[%i5] +ld [%fp+64],%i5 +ld [%r24+0],%r1 +ld [%r24+4],%r2 +st %r1,[%r29+0] +st %r2,[%r29+4] +.L1: +jmp %i7+12; restore +.type addpoint,#function +.size addpoint,.-addpoint +.global canonrect +.align 4 +canonrect: +save %sp,-112,%sp +ld [%i0],%i3 +ld [%i0+8],%i2 +cmp %i3,%i2; bge .L6; nop +ld [%i0],%i5 +ba .L7; nop +.L6: +ld [%i0+8],%i5 +.L7: +st %i5,[%fp+-16] +ld [%i0+4],%i3 +ld [%i0+12],%i2 +cmp %i3,%i2; bge .L10; nop +ld [%i0+4],%i4 +ba .L11; nop +.L10: +ld [%i0+12],%i4 +.L11: +st %i4,[%fp+-12] +ld [%i0],%i2 +ld [%i0+8],%i1 +cmp %i2,%i1; ble .L14; nop +ld [%i0],%i3 +ba .L15; nop +.L14: +ld [%i0+8],%i3 +.L15: +st %i3,[%fp+-8] +ld [%i0+4],%i1 +ld [%i0+12],%l7 +cmp %i1,%l7; ble .L19; nop +ld [%i0+4],%i2 +ba .L20; nop +.L19: +ld [%i0+12],%i2 +.L20: +st %i2,[%fp+-4] +ld [%fp+64],%i1 +add -16,%fp,%l7 +ld [%r23+0],%r1 +ld [%r23+4],%r2 +st %r1,[%r25+0] +st %r2,[%r25+4] +ld [%r23+8],%r1 +ld [%r23+12],%r2 +st %r1,[%r25+8] +st %r2,[%r25+12] +.L3: +jmp %i7+12; restore +.type canonrect,#function +.size canonrect,.-canonrect +.global makepoint +.align 4 +makepoint: +save %sp,-104,%sp +st %i0,[%fp+-8] +st %i1,[%fp+-4] +ld [%fp+64],%i5 +add -8,%fp,%i4 +ld [%r28+0],%r1 +ld [%r28+4],%r2 +st %r1,[%r29+0] +st %r2,[%r29+4] +.L21: +jmp %i7+12; restore +.type makepoint,#function +.size makepoint,.-makepoint +.global makerect +.align 4 +makerect: +save %sp,-128,%sp +add -16,%fp,%i5 +ld [%r24+0],%r1 +ld [%r24+4],%r2 +st %r1,[%r29+0] +st %r2,[%r29+4] +add -8,%fp,%i5 +ld [%r25+0],%r1 +ld [%r25+4],%r2 +st %r1,[%r29+0] +st %r2,[%r29+4] +add -32,%fp,%i5 +add -16,%fp,%i4 +ld [%r28+0],%r1 +ld [%r28+4],%r2 +st %r1,[%r29+0] +st %r2,[%r29+4] +ld [%r28+8],%r1 +ld [%r28+12],%r2 +st %r1,[%r29+8] +st %r2,[%r29+12] +add -32,%fp,%o0 +ld [%fp+64],%i5 +call canonrect; st %i5,[%sp+64]; unimp 16&0xfff +.L24: +jmp %i7+12; restore +.type makerect,#function +.size makerect,.-makerect +.global ptinrect +.align 4 +ptinrect: +ld [%o0],%o4 +ld [%o1],%o3 +cmp %o4,%o3; bl .L29; nop +ld [%o1+8],%o3 +cmp %o4,%o3; bge .L29; nop +ld [%o0+4],%o4 +ld [%o1+4],%o3 +cmp %o4,%o3; bl .L29; nop +ld [%o1+12],%o3 +cmp %o4,%o3; bge .L29; nop +set 1,%o5 +ba .L30; nop +.L29: +mov %g0,%o5 +.L30: +mov %o5,%o0 +.L27: +retl; nop +.type ptinrect,#function +.size ptinrect,.-ptinrect +.section ".data" +.global y +.type y,#object +.size y,3 +.align 1 +y: +.byte 97 +.byte 98 +.byte 0 +.global odd +.section ".text" +.align 4 +odd: +save %sp,-96,%sp +add -3,%fp,%i5 +ldub [%r24+0],%r1 +ldub [%r24+1],%r2 +stb %r1,[%r29+0] +stb %r2,[%r29+1] +ldub [%r24+2],%r1 +stb %r1,[%r29+2] +set .L32,%o0 +add -3,%fp,%o1 +call printf; nop +mov %g0,%i0 +.L31: +ret; restore +.type odd,#function +.size odd,.-odd +.section ".rodata" +.align 4 +.L34: +.word 0x0 +.word 0x0 +.align 4 +.L35: +.word 0x140 +.word 0x140 +.align 4 +.L36: +.word 0xffffffff +.word 0xffffffff +.word 0x1 +.word 0x1 +.word 0x14 +.word 0x12c +.word 0x1f4 +.word 0x190 +.global main +.section ".text" +.align 4 +main: +save %sp,-240,%sp +add -64,%fp,%i4 +set .L34,%i3 +ld [%r27+0],%r1 +ld [%r27+4],%r2 +st %r1,[%r28+0] +st %r2,[%r28+4] +add -72,%fp,%i4 +set .L35,%i3 +ld [%r27+0],%r1 +ld [%r27+4],%r2 +st %r1,[%r28+0] +st %r2,[%r28+4] +add -32,%fp,%i4 +set .L36,%i3 +add %r27,32,%r27 +add %r28,32,%r3 +1: dec 8,%r3 +ld [%r27+-8],%r1 +ld [%r27+-4],%r2 +st %r1,[%r3+0] +st %r2,[%r3+4] +cmp %r3,%r28; bgt 1b; dec 8,%r27 +set -10,%i4 +mov %i4,%o0 +mov %i4,%o1 +add -80,%fp,%i4 +call makepoint; st %i4,[%sp+64]; unimp 8&0xfff +add -88,%fp,%i4 +add -72,%fp,%i3 +ld [%r27+0],%r1 +ld [%r27+4],%r2 +st %r1,[%r28+0] +st %r2,[%r28+4] +add -88,%fp,%o0 +add -80,%fp,%o1 +add -96,%fp,%i4 +call addpoint; st %i4,[%sp+64]; unimp 8&0xfff +set 10,%i4 +mov %i4,%o0 +mov %i4,%o1 +add -104,%fp,%i4 +call makepoint; st %i4,[%sp+64]; unimp 8&0xfff +add -112,%fp,%i4 +add -64,%fp,%i3 +ld [%r27+0],%r1 +ld [%r27+4],%r2 +st %r1,[%r28+0] +st %r2,[%r28+4] +add -112,%fp,%o0 +add -104,%fp,%o1 +add -120,%fp,%i4 +call addpoint; st %i4,[%sp+64]; unimp 8&0xfff +add -96,%fp,%o0 +add -120,%fp,%o1 +add -48,%fp,%i4 +call makerect; st %i4,[%sp+64]; unimp 16&0xfff +mov %g0,%i5 +ba .L40; nop +.L37: +sll %i5,3,%i4 +add -32,%fp,%i3 +ld [%i4+%i3],%o0 +add -28,%fp,%i3 +ld [%i4+%i3],%o1 +add -56,%fp,%i4 +call makepoint; st %i4,[%sp+64]; unimp 8&0xfff +set .L41,%o0 +sll %i5,3,%i4 +add -32,%fp,%i3 +ld [%i4+%i3],%o1 +ld [%fp+-52],%o2 +call printf; nop +add -128,%fp,%i4 +add -56,%fp,%i3 +ld [%r27+0],%r1 +ld [%r27+4],%r2 +st %r1,[%r28+0] +st %r2,[%r28+4] +add -128,%fp,%o0 +add -144,%fp,%i4 +add -48,%fp,%i3 +ld [%r27+0],%r1 +ld [%r27+4],%r2 +st %r1,[%r28+0] +st %r2,[%r28+4] +ld [%r27+8],%r1 +ld [%r27+12],%r2 +st %r1,[%r28+8] +st %r2,[%r28+12] +add -144,%fp,%o1 +call ptinrect; nop +cmp %o0,0; bne .L44; nop +set .L46,%o0 +call printf; nop +.L44: +set .L47,%o0 +ld [%fp+-48],%o1 +ld [%fp+-44],%o2 +ld [%fp+-40],%o3 +ld [%fp+-36],%o4 +call printf; nop +.L38: +add %i5,1,%i5 +.L40: +mov %i5,%i4 +set 4,%i3 +cmp %i4,%i3; blu .L37; nop +add -123,%fp,%i4 +set y,%i3 +ldub [%r27+0],%r1 +ldub [%r27+1],%r2 +stb %r1,[%r28+0] +stb %r2,[%r28+1] +ldub [%r27+2],%r1 +stb %r1,[%r28+2] +add -123,%fp,%o0 +call odd; nop +mov %g0,%o0 +call exit; nop +mov %g0,%i0 +.L33: +ret; restore +.type main,#function +.size main,.-main +.section ".rodata" +.align 1 +.L47: +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 105 +.byte 110 +.byte 32 +.byte 91 +.byte 37 +.byte 100 +.byte 44 +.byte 37 +.byte 100 +.byte 59 +.byte 32 +.byte 37 +.byte 100 +.byte 44 +.byte 37 +.byte 100 +.byte 93 +.byte 10 +.byte 0 +.align 1 +.L46: +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 0 +.align 1 +.L41: +.byte 40 +.byte 37 +.byte 100 +.byte 44 +.byte 37 +.byte 100 +.byte 41 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 0 +.align 1 +.L32: +.byte 37 +.byte 115 +.byte 10 +.byte 0 diff --git a/code/tools/lcc/sparc/solaris/tst/switch.1bk b/code/tools/lcc/sparc/solaris/tst/switch.1bk new file mode 100644 index 0000000..de46a73 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/switch.1bk @@ -0,0 +1,76 @@ +b = 0x8 +f = 0xc +n = 0xa +r = 0xd +t = 0x9 +v = 0xb +x = 0x78 +f: +x = 0 +x = 1 +x = 2 +x = 2 +x = 2 +x = 2 +x = 2 +x = 7 +x = 8 +x = 9 +x = 9 +x = 9 +x = 9 +x = 9 +x = 9 +x = 9 +x = 16 +x = 17 +x = 18 +x = 19 +x = 20 +g: +1 1 +1 2 +2 3 +2 4 +2 5 +3 6 +d 6 +3 7 +d 7 +3 8 +d 8 +d 9 +d 10 +h: +i = 8 +i = 16 +i = 120 +i = 128 +i = 248 +i = 264 +i = 272 +i = 280 +i = 288 +i = 296 +i = 304 +i = 312 +488 defaults +x = 0x1000000 +x = 0x2000000 +x = 0x3000000 +x = 0x4000000 +x = 0x5000000 +x = 0x6000000 (default) +x = 0x7000000 (default) +0 +1 +2 +3 +4 +5 +0 +1 +2 +3 +4 +5 diff --git a/code/tools/lcc/sparc/solaris/tst/switch.2bk b/code/tools/lcc/sparc/solaris/tst/switch.2bk new file mode 100644 index 0000000..709b419 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/switch.2bk @@ -0,0 +1,5 @@ +tst/switch.c:55: warning: missing return value +tst/switch.c:73: warning: missing return value +tst/switch.c:97: warning: missing return value +tst/switch.c:112: warning: missing return value +tst/switch.c:137: warning: missing return value diff --git a/code/tools/lcc/sparc/solaris/tst/switch.sbk b/code/tools/lcc/sparc/solaris/tst/switch.sbk new file mode 100644 index 0000000..2566d07 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/switch.sbk @@ -0,0 +1,713 @@ +.global main +.section ".text" +.align 4 +main: +save %sp,-96,%sp +set .L6,%i5 +ba .L5; nop +.L2: +ldsb [%i5],%o0 +call backslash; nop +mov %o0,%i3 +set .L7,%o0 +ldsb [%i5],%o1 +mov %i3,%o2 +call printf; nop +.L3: +add %i5,1,%i5 +.L5: +ldsb [%i5],%i3 +cmp %i3,0; bne .L2; nop +call f; nop +call g; nop +call h; nop +set 16777216,%i4 +ba .L11; nop +.L8: +mov %i4,%o0 +call big; nop +.L9: +set 16777216,%i3 +add %i4,%i3,%i4 +.L11: +set 117440512,%i3 +and %i4,%i3,%i3 +cmp %i3,0; bne .L8; nop +call limit; nop +mov %g0,%i0 +.L1: +ret; restore +.type main,#function +.size main,.-main +.global backslash +.align 4 +backslash: +cmp %o0,102; be .L16; nop +cmp %o0,102; bg .L22; nop +.L21: +cmp %o0,98; be .L15; nop +ba .L13; nop +.L22: +cmp %o0,110; be .L17; nop +cmp %o0,110; bl .L13; nop +.L23: +cmp %o0,114; be .L18; nop +cmp %o0,116; be .L19; nop +cmp %o0,118; be .L20; nop +ba .L13; nop +.L15: +set 8,%o0 +ba .L12; nop +.L16: +set 12,%o0 +ba .L12; nop +.L17: +set 10,%o0 +ba .L12; nop +.L18: +set 13,%o0 +ba .L12; nop +.L19: +set 9,%o0 +ba .L12; nop +.L20: +set 11,%o0 +ba .L12; nop +.L13: +.L12: +retl; nop +.type backslash,#function +.size backslash,.-backslash +.global f +.align 4 +f: +save %sp,-96,%sp +mov %g0,%i4 +set .L25,%o0 +call printf; nop +mov %g0,%i5 +.L26: +mov %i5,%i3 +cmp %i5,1; bl .L30; nop +cmp %i5,20; bg .L30; nop +sll %i5,2,%i2 +set .L42-4,%i1 +ld [%i2+%i1],%i2 +jmp %i2; nop +.section ".rodata" +.align 4 +.L42: +.word .L32 +.word .L33 +.word .L30 +.word .L30 +.word .L30 +.word .L30 +.word .L34 +.word .L35 +.word .L36 +.word .L30 +.word .L30 +.word .L30 +.word .L30 +.word .L30 +.word .L30 +.word .L37 +.word .L38 +.word .L39 +.word .L40 +.word .L41 +.section ".text" +.L32: +mov %i5,%i4 +ba .L31; nop +.L33: +mov %i5,%i4 +ba .L31; nop +.L34: +mov %i5,%i4 +ba .L31; nop +.L35: +mov %i5,%i4 +ba .L31; nop +.L36: +mov %i5,%i4 +ba .L31; nop +.L37: +mov %i5,%i4 +ba .L31; nop +.L38: +mov %i5,%i4 +ba .L31; nop +.L39: +mov %i5,%i4 +ba .L31; nop +.L40: +mov %i5,%i4 +ba .L31; nop +.L41: +mov %i5,%i4 +.L30: +.L31: +set .L44,%o0 +mov %i4,%o1 +call printf; nop +.L27: +add %i5,1,%i5 +cmp %i5,20; ble .L26; nop +mov %g0,%i0 +.L24: +ret; restore +.type f,#function +.size f,.-f +.global g +.align 4 +g: +save %sp,-96,%sp +set .L46,%o0 +call printf; nop +set 1,%i5 +.L47: +cmp %i5,1001; bl .L64; nop +cmp %i5,1004; bg .L65; nop +sll %i5,2,%i4 +set .L66-4004,%i3 +ld [%i4+%i3],%i4 +jmp %i4; nop +.section ".rodata" +.align 4 +.L66: +.word .L60 +.word .L60 +.word .L60 +.word .L60 +.section ".text" +.L64: +cmp %i5,1; bl .L51; nop +cmp %i5,8; bg .L51; nop +sll %i5,2,%i4 +set .L68-4,%i3 +ld [%i4+%i3],%i4 +jmp %i4; nop +.section ".rodata" +.align 4 +.L68: +.word .L53 +.word .L53 +.word .L55 +.word .L55 +.word .L55 +.word .L57 +.word .L57 +.word .L57 +.section ".text" +.L65: +cmp %i5,3001; bl .L51; nop +cmp %i5,3004; bg .L51; nop +sll %i5,2,%i4 +set .L70-12004,%i3 +ld [%i4+%i3],%i4 +jmp %i4; nop +.section ".rodata" +.align 4 +.L70: +.word .L62 +.word .L62 +.word .L62 +.word .L62 +.section ".text" +.L53: +set .L54,%o0 +mov %i5,%o1 +call printf; nop +ba .L52; nop +.L55: +set .L56,%o0 +mov %i5,%o1 +call printf; nop +ba .L52; nop +.L57: +set .L58,%o0 +mov %i5,%o1 +call printf; nop +.L51: +set .L59,%o0 +mov %i5,%o1 +call printf; nop +ba .L52; nop +.L60: +set .L61,%o0 +mov %i5,%o1 +call printf; nop +ba .L52; nop +.L62: +set .L63,%o0 +mov %i5,%o1 +call printf; nop +.L52: +.L48: +add %i5,1,%i5 +cmp %i5,10; ble .L47; nop +mov %g0,%i0 +.L45: +ret; restore +.type g,#function +.size g,.-g +.global h +.align 4 +h: +save %sp,-96,%sp +mov %g0,%i4 +set .L73,%o0 +call printf; nop +set 1,%i5 +.L74: +cmp %i5,264; be .L86; nop +cmp %i5,264; bg .L94; nop +.L93: +cmp %i5,120; be .L84; nop +cmp %i5,120; bg .L96; nop +.L95: +cmp %i5,8; be .L83; nop +cmp %i5,8; bl .L78; nop +.L97: +cmp %i5,16; be .L82; nop +ba .L78; nop +.L96: +cmp %i5,128; be .L80; nop +cmp %i5,128; bl .L78; nop +.L98: +cmp %i5,248; be .L87; nop +ba .L78; nop +.L94: +cmp %i5,288; be .L91; nop +cmp %i5,288; bg .L100; nop +.L99: +cmp %i5,272; be .L88; nop +cmp %i5,272; bl .L78; nop +.L101: +cmp %i5,280; be .L85; nop +ba .L78; nop +.L100: +cmp %i5,304; be .L89; nop +cmp %i5,304; bg .L103; nop +.L102: +cmp %i5,296; be .L90; nop +ba .L78; nop +.L103: +cmp %i5,312; be .L92; nop +ba .L78; nop +.L78: +add %i4,1,%i4 +ba .L75; nop +.L80: +set .L81,%o0 +mov %i5,%o1 +call printf; nop +ba .L79; nop +.L82: +set .L81,%o0 +mov %i5,%o1 +call printf; nop +ba .L79; nop +.L83: +set .L81,%o0 +mov %i5,%o1 +call printf; nop +ba .L79; nop +.L84: +set .L81,%o0 +mov %i5,%o1 +call printf; nop +ba .L79; nop +.L85: +set .L81,%o0 +mov %i5,%o1 +call printf; nop +ba .L79; nop +.L86: +set .L81,%o0 +mov %i5,%o1 +call printf; nop +ba .L79; nop +.L87: +set .L81,%o0 +mov %i5,%o1 +call printf; nop +ba .L79; nop +.L88: +set .L81,%o0 +mov %i5,%o1 +call printf; nop +ba .L79; nop +.L89: +set .L81,%o0 +mov %i5,%o1 +call printf; nop +ba .L79; nop +.L90: +set .L81,%o0 +mov %i5,%o1 +call printf; nop +ba .L79; nop +.L91: +set .L81,%o0 +mov %i5,%o1 +call printf; nop +ba .L79; nop +.L92: +set .L81,%o0 +mov %i5,%o1 +call printf; nop +.L79: +.L75: +add %i5,1,%i5 +cmp %i5,500; ble .L74; nop +set .L104,%o0 +mov %i4,%o1 +call printf; nop +mov %g0,%i0 +.L72: +ret; restore +.type h,#function +.size h,.-h +.global big +.align 4 +big: +save %sp,-96,%sp +set 0x6000000,%i4 +and %i0,%i4,%i5 +set 33554432,%i3 +cmp %i5,%i3; be .L111; nop +cmp %i5,%i3; bg .L115; nop +.L114: +cmp %i5,-2; be .L109; nop +cmp %i5,-1; be .L109; nop +cmp %i5,0; be .L109; nop +ba .L106; nop +.L115: +mov %i5,%i4 +set 67108864,%i3 +cmp %i4,%i3; be .L112; nop +ba .L106; nop +.L109: +set .L110,%o0 +mov %i0,%o1 +call printf; nop +ba .L107; nop +.L111: +set .L110,%o0 +mov %i0,%o1 +call printf; nop +ba .L107; nop +.L112: +set .L110,%o0 +mov %i0,%o1 +call printf; nop +ba .L107; nop +.L106: +set .L113,%o0 +mov %i0,%o1 +call printf; nop +.L107: +mov %g0,%i0 +.L105: +ret; restore +.type big,#function +.size big,.-big +.global limit +.align 4 +limit: +save %sp,-96,%sp +set -2147483648,%i5 +.L117: +set -2147483648,%i4 +cmp %i5,%i4; bl .L121; nop +set -2147483644,%i3 +cmp %i5,%i3; bg .L121; nop +sll %i5,2,%i3 +sll %i4,2,%i4 +sub %i3,%i4,%i4 +set .L134,%i3 +ld [%i4+%i3],%i4 +jmp %i4; nop +.section ".rodata" +.align 4 +.L134: +.word .L123 +.word .L125 +.word .L127 +.word .L129 +.word .L131 +.section ".text" +.L123: +set .L124,%o0 +call printf; nop +ba .L122; nop +.L125: +set .L126,%o0 +call printf; nop +ba .L122; nop +.L127: +set .L128,%o0 +call printf; nop +ba .L122; nop +.L129: +set .L130,%o0 +call printf; nop +ba .L122; nop +.L131: +set .L132,%o0 +call printf; nop +ba .L122; nop +.L121: +set .L133,%o0 +call printf; nop +.L122: +.L118: +add %i5,1,%i5 +set -2147483643,%i4 +cmp %i5,%i4; ble .L117; nop +set 2147483647,%i5 +.L135: +set 2147483643,%i4 +cmp %i5,%i4; bl .L139; nop +set 2147483647,%i3 +cmp %i5,%i3; bg .L139; nop +sll %i5,2,%i3 +sll %i4,2,%i4 +sub %i3,%i4,%i4 +set .L146,%i3 +ld [%i4+%i3],%i4 +jmp %i4; nop +.section ".rodata" +.align 4 +.L146: +.word .L145 +.word .L144 +.word .L143 +.word .L142 +.word .L141 +.section ".text" +.L141: +set .L124,%o0 +call printf; nop +ba .L140; nop +.L142: +set .L126,%o0 +call printf; nop +ba .L140; nop +.L143: +set .L128,%o0 +call printf; nop +ba .L140; nop +.L144: +set .L130,%o0 +call printf; nop +ba .L140; nop +.L145: +set .L132,%o0 +call printf; nop +ba .L140; nop +.L139: +set .L133,%o0 +call printf; nop +.L140: +.L136: +sub %i5,1,%i5 +set 2147483642,%i4 +cmp %i5,%i4; bge .L135; nop +mov %g0,%i0 +.L116: +ret; restore +.type limit,#function +.size limit,.-limit +.section ".rodata" +.align 1 +.L133: +.byte 53 +.byte 10 +.byte 0 +.align 1 +.L132: +.byte 52 +.byte 10 +.byte 0 +.align 1 +.L130: +.byte 51 +.byte 10 +.byte 0 +.align 1 +.L128: +.byte 50 +.byte 10 +.byte 0 +.align 1 +.L126: +.byte 49 +.byte 10 +.byte 0 +.align 1 +.L124: +.byte 48 +.byte 10 +.byte 0 +.align 1 +.L113: +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 48 +.byte 120 +.byte 37 +.byte 120 +.byte 32 +.byte 40 +.byte 100 +.byte 101 +.byte 102 +.byte 97 +.byte 117 +.byte 108 +.byte 116 +.byte 41 +.byte 10 +.byte 0 +.align 1 +.L110: +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 48 +.byte 120 +.byte 37 +.byte 120 +.byte 10 +.byte 0 +.align 1 +.L104: +.byte 37 +.byte 100 +.byte 32 +.byte 100 +.byte 101 +.byte 102 +.byte 97 +.byte 117 +.byte 108 +.byte 116 +.byte 115 +.byte 10 +.byte 0 +.align 1 +.L81: +.byte 105 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.L73: +.byte 104 +.byte 58 +.byte 10 +.byte 0 +.align 1 +.L63: +.byte 54 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.L61: +.byte 53 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.L59: +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.L58: +.byte 51 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.L56: +.byte 50 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.L54: +.byte 49 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.L46: +.byte 103 +.byte 58 +.byte 10 +.byte 0 +.align 1 +.L44: +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.L25: +.byte 102 +.byte 58 +.byte 10 +.byte 0 +.align 1 +.L7: +.byte 37 +.byte 99 +.byte 32 +.byte 61 +.byte 32 +.byte 48 +.byte 120 +.byte 37 +.byte 120 +.byte 10 +.byte 0 +.align 1 +.L6: +.byte 98 +.byte 102 +.byte 110 +.byte 114 +.byte 116 +.byte 118 +.byte 120 +.byte 0 diff --git a/code/tools/lcc/sparc/solaris/tst/wf1.1bk b/code/tools/lcc/sparc/solaris/tst/wf1.1bk new file mode 100644 index 0000000..a846267 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/wf1.1bk @@ -0,0 +1,74 @@ +5 a +2 and +5 buf +16 c +8 char +1 compare +4 cond +5 count +1 d +1 die +3 else +1 entry +1 eof +4 err +1 error +1 exit +1 folded +1 for +1 free +1 frequencies +1 frequency +1 get +2 getchar +3 getword +14 if +2 in +1 index +1 input +1 install +8 int +1 into +1 is +4 isletter +1 it +1 itself +5 left +1 letter +7 lookup +1 main +2 malloc +1 message +2 n +1 necessary +12 next +9 node +4 of +1 on +1 or +1 otherwise +2 out +8 p +3 print +2 printf +16 return +5 right +4 root +25 s +2 storage +3 strcmp +1 strcpy +1 strlen +8 struct +1 structures +2 subtree +1 t +5 tprint +9 tree +1 uses +1 version +1 wf +3 while +21 word +9 words +2 z diff --git a/code/tools/lcc/sparc/solaris/tst/wf1.2bk b/code/tools/lcc/sparc/solaris/tst/wf1.2bk new file mode 100644 index 0000000..190e4a1 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/wf1.2bk @@ -0,0 +1,2 @@ +tst/wf1.c:29: warning: missing return value +tst/wf1.c:87: warning: missing return value diff --git a/code/tools/lcc/sparc/solaris/tst/wf1.sbk b/code/tools/lcc/sparc/solaris/tst/wf1.sbk new file mode 100644 index 0000000..1964f30 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/wf1.sbk @@ -0,0 +1,311 @@ +.global main +.section ".text" +.align 4 +main: +save %sp,-120,%sp +st %g0,[%fp+-24] +set next,%i5 +st %g0,[%i5] +ba .L3; nop +.L2: +add -20,%fp,%o0 +add -24,%fp,%o1 +call lookup; nop +ld [%o0],%i4 +add %i4,1,%i4 +st %i4,[%o0] +.L3: +add -20,%fp,%o0 +call getword; nop +cmp %o0,0; bne .L2; nop +ld [%fp+-24],%o0 +call tprint; nop +mov %g0,%i0 +.L1: +ret; restore +.type main,#function +.size main,.-main +.global err +.align 4 +err: +save %sp,-96,%sp +set .L6,%o0 +mov %i0,%o1 +call printf; nop +set 1,%o0 +call exit; nop +mov %g0,%i0 +.L5: +ret; restore +.type err,#function +.size err,.-err +.global getword +.align 4 +getword: +save %sp,-96,%sp +.L8: +.L9: +call getchar; nop +mov %o0,%i3 +mov %i3,%i5 +cmp %i3,-1; be .L11; nop +mov %i5,%o0 +call isletter; nop +cmp %o0,0; be .L8; nop +.L11: +mov %i0,%i4 +ba .L15; nop +.L12: +mov %i4,%i3 +add %i3,1,%i4 +mov %i5,%i2 +stb %i2,[%i3] +.L13: +call getchar; nop +mov %o0,%i5 +.L15: +mov %i5,%o0 +call isletter; nop +mov %o0,%i5 +cmp %o0,0; bne .L12; nop +stb %g0,[%i4] +mov %i4,%i3 +mov %i0,%i2 +cmp %i3,%i2; bleu .L16; nop +set 1,%i0 +ba .L7; nop +.L16: +mov %g0,%i0 +.L7: +ret; restore +.type getword,#function +.size getword,.-getword +.global isletter +.align 4 +isletter: +cmp %o0,65; bl .L19; nop +cmp %o0,90; bg .L19; nop +add %o0,32,%o0 +.L19: +cmp %o0,97; bl .L21; nop +cmp %o0,122; bg .L21; nop +ba .L18; nop +.L21: +mov %g0,%o0 +.L18: +retl; nop +.type isletter,#function +.size isletter,.-isletter +.global lookup +.align 4 +lookup: +save %sp,-96,%sp +ld [%i1],%i4 +cmp %i4,%g0; be .L24; nop +mov %i0,%o0 +ld [%i1],%i4 +ld [%i4+12],%o1 +call strcmp; nop +mov %o0,%i5 +cmp %i5,0; bge .L26; nop +mov %i0,%o0 +ld [%i1],%i4 +add %i4,4,%o1 +call lookup; nop +mov %o0,%i0 +ba .L23; nop +.L26: +cmp %i5,0; ble .L28; nop +mov %i0,%o0 +ld [%i1],%i4 +add %i4,8,%o1 +call lookup; nop +mov %o0,%i0 +ba .L23; nop +.L28: +ld [%i1],%i0 +ba .L23; nop +.L24: +set next,%i4 +ld [%i4],%i4 +cmp %i4,2000; bl .L30; nop +set .L32,%o0 +call err; nop +.L30: +set next,%i4 +ld [%i4],%i4 +sll %i4,4,%i4 +set words,%i3 +st %g0,[%i4+%i3] +set next,%i4 +ld [%i4],%i4 +sll %i4,4,%i4 +set words+8,%i2 +st %g0,[%i4+%i2] +set words+4,%i2 +st %g0,[%i4+%i2] +mov %i0,%o0 +call strlen; nop +mov %o0,%i4 +add %i4,1,%o0 +call malloc; nop +set next,%i3 +ld [%i3],%i3 +sll %i3,4,%i3 +set words+12,%i2 +st %o0,[%i3+%i2] +set next,%i4 +ld [%i4],%i4 +sll %i4,4,%i4 +set words+12,%i3 +ld [%i4+%i3],%i4 +cmp %i4,%g0; bne .L36; nop +set .L39,%o0 +call err; nop +.L36: +set next,%i4 +ld [%i4],%i4 +sll %i4,4,%i4 +set words+12,%i3 +ld [%i4+%i3],%o0 +mov %i0,%o1 +call strcpy; nop +set next,%i4 +ld [%i4],%i3 +add %i3,1,%i2 +st %i2,[%i4] +sll %i3,4,%i4 +set words,%i3 +add %i4,%i3,%i4 +st %i4,[%i1] +mov %i4,%i0 +.L23: +ret; restore +.type lookup,#function +.size lookup,.-lookup +.global tprint +.align 4 +tprint: +save %sp,-96,%sp +mov %i0,%i5 +cmp %i5,%g0; be .L42; nop +ld [%i0+4],%o0 +call tprint; nop +set .L44,%o0 +ld [%i0],%o1 +ld [%i0+12],%o2 +call printf; nop +ld [%i0+8],%o0 +call tprint; nop +.L42: +mov %g0,%i0 +.L41: +ret; restore +.type tprint,#function +.size tprint,.-tprint +.global strcmp +.align 4 +strcmp: +save %sp,-96,%sp +ba .L47; nop +.L46: +mov %i0,%i5 +add %i5,1,%i0 +ldsb [%i5],%i5 +cmp %i5,0; bne .L49; nop +mov %g0,%i0 +ba .L45; nop +.L49: +add %i1,1,%i1 +.L47: +ldsb [%i0],%i5 +ldsb [%i1],%i4 +cmp %i5,%i4; be .L46; nop +ldsb [%i0],%i5 +cmp %i5,0; bne .L51; nop +set -1,%i0 +ba .L45; nop +.L51: +ldsb [%i1],%i5 +cmp %i5,0; bne .L53; nop +set 1,%i0 +ba .L45; nop +.L53: +ldsb [%i0],%i5 +ldsb [%i1],%i4 +sub %i5,%i4,%i0 +.L45: +ret; restore +.type strcmp,#function +.size strcmp,.-strcmp +.section ".bss" +.global next +.type next,#object +.size next,4 +.common next,4,4 +.global words +.type words,#object +.size words,32000 +.common words,32000,4 +.section ".rodata" +.align 1 +.L44: +.byte 37 +.byte 100 +.byte 9 +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 1 +.L39: +.byte 111 +.byte 117 +.byte 116 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 119 +.byte 111 +.byte 114 +.byte 100 +.byte 32 +.byte 115 +.byte 116 +.byte 111 +.byte 114 +.byte 97 +.byte 103 +.byte 101 +.byte 0 +.align 1 +.L32: +.byte 111 +.byte 117 +.byte 116 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 110 +.byte 111 +.byte 100 +.byte 101 +.byte 32 +.byte 115 +.byte 116 +.byte 111 +.byte 114 +.byte 97 +.byte 103 +.byte 101 +.byte 0 +.align 1 +.L6: +.byte 63 +.byte 32 +.byte 37 +.byte 115 +.byte 10 +.byte 0 diff --git a/code/tools/lcc/sparc/solaris/tst/yacc.1bk b/code/tools/lcc/sparc/solaris/tst/yacc.1bk new file mode 100644 index 0000000..60de9b5 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/yacc.1bk @@ -0,0 +1,10 @@ +a +b +load +negate +push 5 +c +load +multiply +add +store diff --git a/code/tools/lcc/sparc/solaris/tst/yacc.2bk b/code/tools/lcc/sparc/solaris/tst/yacc.2bk new file mode 100644 index 0000000..9a4fd61 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/yacc.2bk @@ -0,0 +1,3 @@ +tst/yacc.c:345: warning: missing return value +tst/yacc.c:349: warning: missing return value +tst/yacc.c:359: warning: missing return value diff --git a/code/tools/lcc/sparc/solaris/tst/yacc.sbk b/code/tools/lcc/sparc/solaris/tst/yacc.sbk new file mode 100644 index 0000000..1368ff5 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/yacc.sbk @@ -0,0 +1,2247 @@ +.section ".data" +.global yyin +.type yyin,#object +.size yyin,4 +.align 4 +yyin: +.word __iob +.global yyout +.type yyout,#object +.size yyout,4 +.align 4 +yyout: +.word __iob+16 +.global yylex +.section ".text" +.align 4 +yylex: +save %sp,-96,%sp +ba .L5; nop +.L4: +.L7: +cmp %i5,-1; bl .L8; nop +cmp %i5,4; bg .L8; nop +sll %i5,2,%i4 +set .L19+4,%i3 +ld [%i4+%i3],%i4 +jmp %i4; nop +.section ".rodata" +.align 4 +.L19: +.word .L9 +.word .L10 +.word .L13 +.word .L14 +.word .L9 +.word .L16 +.section ".text" +.L10: +call yywrap; nop +cmp %o0,0; be .L9; nop +mov %g0,%i0 +ba .L3; nop +.L13: +set 257,%i0 +ba .L3; nop +.L14: +set 258,%i0 +ba .L3; nop +.L16: +set yytext,%i4 +ldsb [%i4],%i0 +ba .L3; nop +.L8: +set yyout,%i4 +ld [%i4],%o0 +set .L18,%o1 +mov %i5,%o2 +call fprintf; nop +.L9: +.L5: +call yylook; nop +mov %o0,%i5 +cmp %o0,0; bge .L4; nop +mov %g0,%i0 +.L3: +ret; restore +.type yylex,#function +.size yylex,.-yylex +.section ".data" +.global yyvstop +.type yyvstop,#object +.align 4 +yyvstop: +.word 0x0 +.word 0x4 +.word 0x0 +.word 0x3 +.word 0x4 +.word 0x0 +.word 0x2 +.word 0x4 +.word 0x0 +.word 0x1 +.word 0x4 +.word 0x0 +.word 0x2 +.word 0x0 +.word 0x1 +.word 0x0 +.word 0x0 +.size yyvstop,68 +.global yycrank +.type yycrank,#object +.align 1 +yycrank: +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x1 +.byte 0x3 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x1 +.byte 0x4 +.byte 0x1 +.byte 0x3 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x1 +.byte 0x5 +.byte 0x5 +.byte 0x7 +.byte 0x5 +.byte 0x7 +.byte 0x5 +.byte 0x7 +.byte 0x5 +.byte 0x7 +.byte 0x5 +.byte 0x7 +.byte 0x5 +.byte 0x7 +.byte 0x5 +.byte 0x7 +.byte 0x5 +.byte 0x7 +.byte 0x5 +.byte 0x7 +.byte 0x5 +.byte 0x7 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x1 +.byte 0x6 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x6 +.byte 0x8 +.byte 0x0 +.byte 0x0 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x6 +.byte 0x8 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.byte 0x0 +.size yycrank,290 +.global yysvec +.type yysvec,#object +.align 4 +yysvec: +.word 0x0 +.word 0x0 +.word 0x0 +.word yycrank-2 +.word 0x0 +.word 0x0 +.word yycrank +.word yysvec+12 +.word 0x0 +.word yycrank +.word 0x0 +.word yyvstop+4 +.word yycrank +.word 0x0 +.word yyvstop+12 +.word yycrank+4 +.word 0x0 +.word yyvstop+24 +.word yycrank+38 +.word 0x0 +.word yyvstop+36 +.word yycrank +.word yysvec+60 +.word yyvstop+48 +.word yycrank +.word yysvec+72 +.word yyvstop+56 +.word 0x0 +.word 0x0 +.word 0x0 +.size yysvec,120 +.global yytop +.type yytop,#object +.size yytop,4 +.align 4 +yytop: +.word yycrank+282 +.global yybgin +.type yybgin,#object +.size yybgin,4 +.align 4 +yybgin: +.word yysvec+12 +.global yymatch +.type yymatch,#object +.align 1 +yymatch: +.byte 0 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 9 +.byte 10 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 9 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 48 +.byte 48 +.byte 48 +.byte 48 +.byte 48 +.byte 48 +.byte 48 +.byte 48 +.byte 48 +.byte 48 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 65 +.byte 1 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 0 +.size yymatch,129 +.global yyextra +.type yyextra,#object +.align 1 +yyextra: +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.size yyextra,9 +.global yylineno +.type yylineno,#object +.size yylineno,4 +.align 4 +yylineno: +.word 0x1 +.global yysptr +.type yysptr,#object +.size yysptr,4 +.align 4 +yysptr: +.word yysbuf +.global yyprevious +.type yyprevious,#object +.size yyprevious,4 +.align 4 +yyprevious: +.word 0xa +.global yylook +.section ".text" +.align 4 +yylook: +save %sp,-96,%sp +set yymorfg,%l6 +ld [%l6],%l6 +cmp %l6,0; bne .L36; nop +set yytext,%i2 +ba .L37; nop +.L36: +set yymorfg,%l6 +st %g0,[%l6] +set yyleng,%l6 +ld [%l6],%l6 +set yytext,%l5 +add %l6,%l5,%i2 +.L37: +.L38: +set yylstate,%i4 +set yybgin,%l6 +ld [%l6],%l6 +mov %l6,%i5 +set yyestate,%l5 +st %l6,[%l5] +set yyprevious,%l6 +ld [%l6],%l6 +cmp %l6,10; bne .L42; nop +add %i5,12,%i5 +.L42: +.L44: +ld [%i5],%i3 +mov %i3,%l6 +set yycrank,%l5 +cmp %l6,%l5; bne .L48; nop +ld [%i5+4],%l7 +mov %l7,%l6 +cmp %l6,%g0; bne .L50; nop +ba .L95; nop +.L50: +ld [%l7],%l6 +set yycrank,%l5 +cmp %l6,%l5; bne .L52; nop +ba .L95; nop +.L52: +.L48: +mov %i2,%l3 +add %l3,1,%i2 +set yysptr,%l2 +ld [%l2],%l2 +set yysbuf,%l1 +cmp %l2,%l1; bleu .L62; nop +set yysptr,%l2 +ld [%l2],%l1 +add %l1,-1,%l1 +st %l1,[%l2] +ldsb [%l1],%l4 +ba .L63; nop +.L62: +set yyin,%l2 +ld [%l2],%l2 +ld [%l2],%l1 +sub %l1,1,%l1 +st %l1,[%l2] +cmp %l1,0; bge .L64; nop +set yyin,%l2 +ld [%l2],%o0 +call __filbuf; nop +mov %o0,%l2 +st %l2,[%fp+-4] +ba .L65; nop +.L64: +set yyin,%l2 +ld [%l2],%l2 +add %l2,4,%l2 +ld [%l2],%l1 +add %l1,1,%l0 +st %l0,[%l2] +ldub [%l1],%l2 +st %l2,[%fp+-4] +.L65: +ld [%fp+-4],%l4 +.L63: +set yytchar,%l2 +st %l4,[%l2] +cmp %l4,10; bne .L60; nop +set yylineno,%l2 +ld [%l2],%l1 +add %l1,1,%l1 +st %l1,[%l2] +set yytchar,%l2 +ld [%l2],%l5 +ba .L61; nop +.L60: +set yytchar,%l2 +ld [%l2],%l5 +.L61: +cmp %l5,-1; bne .L58; nop +mov %g0,%l6 +ba .L59; nop +.L58: +set yytchar,%l2 +ld [%l2],%l6 +.L59: +mov %l6,%i1 +mov %l6,%l2 +stb %l2,[%l3] +.L66: +mov %i3,%i0 +mov %i3,%l3 +set yycrank,%l2 +cmp %l3,%l2; bleu .L67; nop +sll %i1,1,%l3 +add %l3,%i0,%i3 +mov %i3,%l3 +set yytop,%l2 +ld [%l2],%l2 +cmp %l3,%l2; bgu .L68; nop +ldsb [%i3],%l3 +smul %l3,12,%l3 +set yysvec,%l2 +add %l3,%l2,%l3 +mov %i5,%l2 +cmp %l3,%l2; bne .L68; nop +set yysvec,%l3 +ldsb [%i3+1],%l2 +smul %l2,12,%l2 +add %l2,%l3,%l2 +cmp %l2,%l3; bne .L71; nop +add %i2,-1,%l3 +mov %l3,%i2 +set yytchar,%l2 +ldsb [%l3],%l3 +st %l3,[%l2] +ld [%l2],%l3 +cmp %l3,10; bne .L73; nop +set yylineno,%l3 +ld [%l3],%l2 +sub %l2,1,%l2 +st %l2,[%l3] +.L73: +set yysptr,%l3 +ld [%l3],%l2 +add %l2,1,%l1 +st %l1,[%l3] +set yytchar,%l3 +ld [%l3],%l3 +stb %l3,[%l2] +ba .L95; nop +.L71: +mov %i4,%l3 +add %l3,4,%i4 +ldsb [%i3+1],%l2 +smul %l2,12,%l2 +set yysvec,%l1 +add %l2,%l1,%l2 +mov %l2,%i5 +st %l2,[%l3] +ba .L44; nop +.L67: +mov %i3,%l3 +set yycrank,%l2 +cmp %l3,%l2; bgeu .L76; nop +set yycrank,%l3 +mov %l3,%l2 +mov %i3,%l1 +sub %l2,%l1,%l2 +sra %l2,31,%g1; wr %g0,%g1,%y; nop; nop; nop; sdiv %l2,2,%l2 +sll %l2,1,%l2 +add %l2,%l3,%l3 +mov %l3,%i0 +mov %l3,%i3 +sll %i1,1,%l3 +add %l3,%i3,%i3 +mov %i3,%l3 +set yytop,%l2 +ld [%l2],%l2 +cmp %l3,%l2; bgu .L78; nop +ldsb [%i3],%l3 +smul %l3,12,%l3 +set yysvec,%l2 +add %l3,%l2,%l3 +mov %i5,%l2 +cmp %l3,%l2; bne .L78; nop +set yysvec,%l3 +ldsb [%i3+1],%l2 +smul %l2,12,%l2 +add %l2,%l3,%l2 +cmp %l2,%l3; bne .L80; nop +add %i2,-1,%l3 +mov %l3,%i2 +set yytchar,%l2 +ldsb [%l3],%l3 +st %l3,[%l2] +ld [%l2],%l3 +cmp %l3,10; bne .L82; nop +set yylineno,%l3 +ld [%l3],%l2 +sub %l2,1,%l2 +st %l2,[%l3] +.L82: +set yysptr,%l3 +ld [%l3],%l2 +add %l2,1,%l1 +st %l1,[%l3] +set yytchar,%l3 +ld [%l3],%l3 +stb %l3,[%l2] +ba .L95; nop +.L80: +mov %i4,%l3 +add %l3,4,%i4 +ldsb [%i3+1],%l2 +smul %l2,12,%l2 +set yysvec,%l1 +add %l2,%l1,%l2 +mov %l2,%i5 +st %l2,[%l3] +ba .L44; nop +.L78: +set yymatch,%l3 +ldsb [%i1+%l3],%l3 +sll %l3,1,%l3 +add %l3,%i0,%i3 +mov %i3,%l3 +set yytop,%l2 +ld [%l2],%l2 +cmp %l3,%l2; bgu .L84; nop +ldsb [%i3],%l3 +smul %l3,12,%l3 +set yysvec,%l2 +add %l3,%l2,%l3 +mov %i5,%l2 +cmp %l3,%l2; bne .L84; nop +set yysvec,%l3 +ldsb [%i3+1],%l2 +smul %l2,12,%l2 +add %l2,%l3,%l2 +cmp %l2,%l3; bne .L86; nop +add %i2,-1,%l3 +mov %l3,%i2 +set yytchar,%l2 +ldsb [%l3],%l3 +st %l3,[%l2] +ld [%l2],%l3 +cmp %l3,10; bne .L88; nop +set yylineno,%l3 +ld [%l3],%l2 +sub %l2,1,%l2 +st %l2,[%l3] +.L88: +set yysptr,%l3 +ld [%l3],%l2 +add %l2,1,%l1 +st %l1,[%l3] +set yytchar,%l3 +ld [%l3],%l3 +stb %l3,[%l2] +ba .L95; nop +.L86: +mov %i4,%l3 +add %l3,4,%i4 +ldsb [%i3+1],%l2 +smul %l2,12,%l2 +set yysvec,%l1 +add %l2,%l1,%l2 +mov %l2,%i5 +st %l2,[%l3] +ba .L44; nop +.L84: +.L76: +.L68: +ld [%i5+4],%l3 +mov %l3,%i5 +cmp %l3,%g0; be .L90; nop +ld [%i5],%l3 +mov %l3,%i3 +set yycrank,%l2 +cmp %l3,%l2; be .L90; nop +ba .L66; nop +.L90: +add %i2,-1,%l3 +mov %l3,%i2 +set yytchar,%l2 +ldsb [%l3],%l3 +st %l3,[%l2] +ld [%l2],%l3 +cmp %l3,10; bne .L92; nop +set yylineno,%l3 +ld [%l3],%l2 +sub %l2,1,%l2 +st %l2,[%l3] +.L92: +set yysptr,%l3 +ld [%l3],%l2 +add %l2,1,%l1 +st %l1,[%l3] +set yytchar,%l3 +ld [%l3],%l3 +stb %l3,[%l2] +ba .L95; nop +.L94: +mov %i2,%l6 +add %l6,-1,%i2 +stb %g0,[%l6] +ld [%i4],%l6 +mov %l6,%l4 +cmp %l4,%g0; be .L97; nop +set yyfnd,%l4 +ld [%l6+8],%l6 +st %l6,[%l4] +cmp %l6,%g0; be .L97; nop +ld [%l4],%l6 +ld [%l6],%l6 +cmp %l6,0; ble .L97; nop +set yyolsp,%l6 +st %i4,[%l6] +set yyfnd,%l6 +ld [%l6],%l6 +ld [%l6],%l6 +set yyextra,%l5 +ldsb [%l6+%l5],%l6 +cmp %l6,0; be .L99; nop +ba .L102; nop +.L101: +add %i4,-4,%i4 +mov %i2,%l6 +add %l6,-1,%i2 +set yytchar,%l5 +ldsb [%l6],%l6 +st %l6,[%l5] +ld [%l5],%l6 +cmp %l6,10; bne .L104; nop +set yylineno,%l6 +ld [%l6],%l5 +sub %l5,1,%l5 +st %l5,[%l6] +.L104: +set yysptr,%l6 +ld [%l6],%l5 +add %l5,1,%l4 +st %l4,[%l6] +set yytchar,%l6 +ld [%l6],%l6 +stb %l6,[%l5] +.L102: +ld [%i4],%l6 +ld [%l6+8],%o0 +set yyfnd,%l6 +ld [%l6],%l6 +ld [%l6],%l6 +neg %l6,%o1 +call yyback; nop +cmp %o0,1; be .L106; nop +mov %i4,%l6 +set yylstate,%l5 +cmp %l6,%l5; bgu .L101; nop +.L106: +.L99: +set yyprevious,%l6 +ldsb [%i2],%l5 +st %l5,[%l6] +set yylsp,%l6 +st %i4,[%l6] +set yyleng,%l6 +set yytext,%l5 +mov %i2,%l4 +mov %l5,%l3 +sub %l4,%l3,%l4 +add %l4,1,%l4 +st %l4,[%l6] +ld [%l6],%l6 +stb %g0,[%l6+%l5] +set yyfnd,%l6 +ld [%l6],%l5 +add %l5,4,%l4 +st %l4,[%l6] +ld [%l5],%i0 +ba .L35; nop +.L97: +set yytchar,%l6 +ldsb [%i2],%l5 +st %l5,[%l6] +ld [%l6],%l6 +cmp %l6,10; bne .L107; nop +set yylineno,%l6 +ld [%l6],%l5 +sub %l5,1,%l5 +st %l5,[%l6] +.L107: +set yysptr,%l6 +ld [%l6],%l5 +add %l5,1,%l4 +st %l4,[%l6] +set yytchar,%l6 +ld [%l6],%l6 +stb %l6,[%l5] +.L95: +mov %i4,%l6 +add %l6,-4,%i4 +set yylstate,%l5 +cmp %l6,%l5; bgu .L94; nop +set yytext,%l6 +ldsb [%l6],%l6 +cmp %l6,0; bne .L109; nop +set yysptr,%l6 +set yysbuf,%l5 +st %l5,[%l6] +mov %g0,%i0 +ba .L35; nop +.L109: +set yysptr,%l3 +ld [%l3],%l3 +set yysbuf,%l2 +cmp %l3,%l2; bleu .L119; nop +set yysptr,%l3 +ld [%l3],%l2 +add %l2,-1,%l2 +st %l2,[%l3] +ldsb [%l2],%l4 +ba .L120; nop +.L119: +set yyin,%l3 +ld [%l3],%l3 +ld [%l3],%l2 +sub %l2,1,%l2 +st %l2,[%l3] +cmp %l2,0; bge .L121; nop +set yyin,%l3 +ld [%l3],%o0 +call __filbuf; nop +mov %o0,%l3 +st %l3,[%fp+-4] +ba .L122; nop +.L121: +set yyin,%l3 +ld [%l3],%l3 +add %l3,4,%l3 +ld [%l3],%l2 +add %l2,1,%l1 +st %l1,[%l3] +ldub [%l2],%l3 +st %l3,[%fp+-4] +.L122: +ld [%fp+-4],%l4 +.L120: +set yytchar,%l3 +st %l4,[%l3] +cmp %l4,10; bne .L117; nop +set yylineno,%l3 +ld [%l3],%l2 +add %l2,1,%l2 +st %l2,[%l3] +set yytchar,%l3 +ld [%l3],%l5 +ba .L118; nop +.L117: +set yytchar,%l3 +ld [%l3],%l5 +.L118: +cmp %l5,-1; bne .L115; nop +mov %g0,%l6 +ba .L116; nop +.L115: +set yytchar,%l3 +ld [%l3],%l6 +.L116: +set yytext,%l2 +stb %l6,[%l2] +set yyprevious,%l2 +sll %l6,8*(4-1),%l3; sra %l3,8*(4-1),%l3 +st %l3,[%l2] +set yyprevious,%l3 +ld [%l3],%l3 +cmp %l3,0; ble .L123; nop +set yyout,%l3 +ld [%l3],%l3 +ld [%l3],%l2 +sub %l2,1,%l2 +st %l2,[%l3] +cmp %l2,0; bge .L126; nop +set yyprevious,%l3 +ld [%l3],%l3 +and %l3,0xff,%l3 +mov %l3,%o0 +set yyout,%l3 +ld [%l3],%o1 +call __flsbuf; nop +ba .L127; nop +.L126: +set yyout,%l3 +ld [%l3],%l3 +add %l3,4,%l3 +ld [%l3],%l2 +add %l2,1,%l1 +st %l1,[%l3] +set yyprevious,%l3 +ld [%l3],%l3 +stb %l3,[%l2] +.L127: +.L123: +set yytext,%i2 +ba .L38; nop +.L35: +ret; restore +.type yylook,#function +.size yylook,.-yylook +.global yyback +.align 4 +yyback: +save %sp,-96,%sp +mov %i0,%i5 +cmp %i5,%g0; bne .L132; nop +mov %g0,%i0 +ba .L128; nop +.L131: +mov %i0,%i5 +add %i5,4,%i0 +ld [%i5],%i5 +cmp %i5,%i1; bne .L134; nop +set 1,%i0 +ba .L128; nop +.L134: +.L132: +ld [%i0],%i5 +cmp %i5,0; bne .L131; nop +mov %g0,%i0 +.L128: +ret; restore +.type yyback,#function +.size yyback,.-yyback +.global yyinput +.align 4 +yyinput: +save %sp,-96,%sp +set yysptr,%i1 +ld [%i1],%i1 +set yysbuf,%i0 +cmp %i1,%i0; bleu .L145; nop +set yysptr,%i1 +ld [%i1],%i0 +add %i0,-1,%i0 +st %i0,[%i1] +ldsb [%i0],%i3 +ba .L146; nop +.L145: +set yyin,%i1 +ld [%i1],%i1 +ld [%i1],%i0 +sub %i0,1,%i0 +st %i0,[%i1] +cmp %i0,0; bge .L147; nop +set yyin,%i1 +ld [%i1],%o0 +call __filbuf; nop +mov %o0,%i1 +mov %i1,%i2 +ba .L148; nop +.L147: +set yyin,%i1 +ld [%i1],%i1 +add %i1,4,%i1 +ld [%i1],%i0 +add %i0,1,%l7 +st %l7,[%i1] +ldub [%i0],%i2 +.L148: +mov %i2,%i3 +.L146: +set yytchar,%i1 +st %i3,[%i1] +cmp %i3,10; bne .L143; nop +set yylineno,%i1 +ld [%i1],%i0 +add %i0,1,%i0 +st %i0,[%i1] +set yytchar,%i1 +ld [%i1],%i4 +ba .L144; nop +.L143: +set yytchar,%i1 +ld [%i1],%i4 +.L144: +cmp %i4,-1; bne .L141; nop +mov %g0,%i5 +ba .L142; nop +.L141: +set yytchar,%i1 +ld [%i1],%i5 +.L142: +mov %i5,%i0 +.L136: +ret; restore +.type yyinput,#function +.size yyinput,.-yyinput +.global yyoutput +.align 4 +yyoutput: +save %sp,-96,%sp +set yyout,%i5 +ld [%i5],%i5 +ld [%i5],%i4 +sub %i4,1,%i4 +st %i4,[%i5] +cmp %i4,0; bge .L151; nop +mov %i0,%i5 +and %i5,0xff,%i5 +mov %i5,%o0 +set yyout,%i5 +ld [%i5],%o1 +call __flsbuf; nop +ba .L152; nop +.L151: +set yyout,%i5 +ld [%i5],%i5 +add %i5,4,%i5 +ld [%i5],%i4 +add %i4,1,%i3 +st %i3,[%i5] +mov %i0,%i5 +stb %i5,[%i4] +.L152: +mov %g0,%i0 +.L149: +ret; restore +.type yyoutput,#function +.size yyoutput,.-yyoutput +.global yyunput +.align 4 +yyunput: +save %sp,-96,%sp +set yytchar,%i5 +st %i0,[%i5] +ld [%i5],%i5 +cmp %i5,10; bne .L154; nop +set yylineno,%i5 +ld [%i5],%i4 +sub %i4,1,%i4 +st %i4,[%i5] +.L154: +set yysptr,%i5 +ld [%i5],%i4 +add %i4,1,%i3 +st %i3,[%i5] +set yytchar,%i5 +ld [%i5],%i5 +stb %i5,[%i4] +mov %g0,%i0 +.L153: +ret; restore +.type yyunput,#function +.size yyunput,.-yyunput +.global main +.align 4 +main: +save %sp,-96,%sp +call yyparse; nop +mov %g0,%i0 +.L156: +ret; restore +.type main,#function +.size main,.-main +.global yyerror +.align 4 +yyerror: +save %sp,-96,%sp +set .L158,%o0 +mov %i0,%o1 +call printf; nop +mov %g0,%i0 +.L157: +ret; restore +.type yyerror,#function +.size yyerror,.-yyerror +.section ".data" +.global yyexca +.type yyexca,#object +.align 2 +yyexca: +.half 0xffffffff +.half 0x1 +.half 0x0 +.half 0xffffffff +.half 0xfffffffe +.half 0x0 +.size yyexca,12 +.global yyact +.type yyact,#object +.align 2 +yyact: +.half 0xc +.half 0x2 +.half 0x9 +.half 0x8 +.half 0x11 +.half 0xb +.half 0x19 +.half 0x11 +.half 0xf +.half 0x12 +.half 0x10 +.half 0xa +.half 0x12 +.half 0x11 +.half 0xf +.half 0x7 +.half 0x10 +.half 0xd +.half 0x12 +.half 0x5 +.half 0x3 +.half 0x1 +.half 0x0 +.half 0x13 +.half 0x14 +.half 0x0 +.half 0x0 +.half 0x15 +.half 0x16 +.half 0x17 +.half 0x18 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x6 +.half 0xe +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x4 +.half 0x6 +.size yyact,498 +.global yypact +.type yypact,#object +.align 2 +yypact: +.half 0xfffffc18 +.half 0xfffffff7 +.half 0xfffffc18 +.half 0x5 +.half 0xfffffff9 +.half 0xffffffc5 +.half 0xfffffc18 +.half 0xfffffc18 +.half 0xfffffc18 +.half 0xffffffd8 +.half 0xffffffe3 +.half 0xffffffd8 +.half 0xffffffd8 +.half 0xfffffc18 +.half 0xfffffc18 +.half 0xffffffd8 +.half 0xffffffd8 +.half 0xffffffd8 +.half 0xffffffd8 +.half 0xffffffda +.half 0xffffffdd +.half 0xffffffda +.half 0xffffffda +.half 0xfffffc18 +.half 0xfffffc18 +.half 0xfffffc18 +.size yypact,52 +.global yypgo +.type yypgo,#object +.align 2 +yypgo: +.half 0x0 +.half 0x15 +.half 0x14 +.half 0x11 +.half 0xb +.size yypgo,10 +.global yyr1 +.type yyr1,#object +.align 2 +yyr1: +.half 0x0 +.half 0x1 +.half 0x1 +.half 0x1 +.half 0x1 +.half 0x2 +.half 0x4 +.half 0x4 +.half 0x4 +.half 0x4 +.half 0x4 +.half 0x4 +.half 0x4 +.half 0x4 +.half 0x3 +.size yyr1,30 +.global yyr2 +.type yyr2,#object +.align 2 +yyr2: +.half 0x0 +.half 0x0 +.half 0x2 +.half 0x3 +.half 0x3 +.half 0x3 +.half 0x3 +.half 0x3 +.half 0x3 +.half 0x3 +.half 0x2 +.half 0x3 +.half 0x1 +.half 0x1 +.half 0x1 +.size yyr2,30 +.global yychk +.type yychk,#object +.align 2 +yychk: +.half 0xfffffc18 +.half 0xffffffff +.half 0xa +.half 0xfffffffe +.half 0x100 +.half 0xfffffffd +.half 0x101 +.half 0xa +.half 0xa +.half 0x3d +.half 0xfffffffc +.half 0x2d +.half 0x28 +.half 0xfffffffd +.half 0x102 +.half 0x2b +.half 0x2d +.half 0x2a +.half 0x2f +.half 0xfffffffc +.half 0xfffffffc +.half 0xfffffffc +.half 0xfffffffc +.half 0xfffffffc +.half 0xfffffffc +.half 0x29 +.size yychk,52 +.global yydef +.type yydef,#object +.align 2 +yydef: +.half 0x1 +.half 0xfffffffe +.half 0x2 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0xe +.half 0x3 +.half 0x4 +.half 0x0 +.half 0x5 +.half 0x0 +.half 0x0 +.half 0xc +.half 0xd +.half 0x0 +.half 0x0 +.half 0x0 +.half 0x0 +.half 0xa +.half 0x0 +.half 0x6 +.half 0x7 +.half 0x8 +.half 0x9 +.half 0xb +.size yydef,52 +.global yychar +.type yychar,#object +.size yychar,4 +.align 4 +yychar: +.word 0xffffffff +.global yynerrs +.type yynerrs,#object +.size yynerrs,4 +.align 4 +yynerrs: +.word 0x0 +.global yyerrflag +.type yyerrflag,#object +.size yyerrflag,2 +.align 2 +yyerrflag: +.half 0x0 +.global yyparse +.section ".text" +.align 4 +yyparse: +save %sp,-392,%sp +mov %g0,%l5 +mov %l5,%i4 +set yychar,%l4 +set -1,%l3 +st %l3,[%l4] +set yynerrs,%l4 +st %g0,[%l4] +set yyerrflag,%l4 +sth %l5,[%l4] +add -302,%fp,%i3 +set yyv-4,%i1 +.L162: +add %i3,2,%l5 +mov %l5,%i3 +add 0,%fp,%l4 +cmp %l5,%l4; bleu .L163; nop +set .L166,%o0 +call yyerror; nop +set 1,%i0 +ba .L159; nop +.L163: +sth %i4,[%i3] +add %i1,4,%i1 +set yyval,%l5 +ld [%l5],%l5 +st %l5,[%i1] +.L167: +sll %i4,8*(4-2),%l5; sra %l5,8*(4-2),%l5 +sll %l5,1,%l5 +set yypact,%l4 +ldsh [%l5+%l4],%i2 +sll %i2,8*(4-2),%l5; sra %l5,8*(4-2),%l5 +cmp %l5,-1000; bg .L168; nop +ba .L170; nop +.L168: +set yychar,%l5 +ld [%l5],%l5 +cmp %l5,0; bge .L171; nop +call yylex; nop +set yychar,%l4 +st %o0,[%l4] +cmp %o0,0; bge .L173; nop +set yychar,%l5 +st %g0,[%l5] +.L173: +.L171: +sll %i2,8*(4-2),%l5; sra %l5,8*(4-2),%l5 +set yychar,%l4 +ld [%l4],%l4 +add %l5,%l4,%l5 +mov %l5,%i2 +sll %l5,8*(4-2),%l5; sra %l5,8*(4-2),%l5 +cmp %l5,0; bl .L177; nop +sll %i2,8*(4-2),%l5; sra %l5,8*(4-2),%l5 +cmp %l5,249; bl .L175; nop +.L177: +ba .L170; nop +.L175: +sll %i2,8*(4-2),%l5; sra %l5,8*(4-2),%l5 +sll %l5,1,%l5 +set yyact,%l4 +ldsh [%l5+%l4],%l5 +mov %l5,%i2 +sll %l5,8*(4-2),%l5; sra %l5,8*(4-2),%l5 +sll %l5,1,%l5 +set yychk,%l4 +ldsh [%l5+%l4],%l5 +set yychar,%l4 +ld [%l4],%l4 +cmp %l5,%l4; bne .L178; nop +set yychar,%l5 +set -1,%l4 +st %l4,[%l5] +set yyval,%l5 +set yylval,%l4 +ld [%l4],%l4 +st %l4,[%l5] +mov %i2,%i4 +set yyerrflag,%l5 +ldsh [%l5],%l5 +cmp %l5,0; ble .L162; nop +set yyerrflag,%l5 +ldsh [%l5],%l4 +sub %l4,1,%l4 +sth %l4,[%l5] +ba .L162; nop +.L178: +.L170: +sll %i4,8*(4-2),%l5; sra %l5,8*(4-2),%l5 +sll %l5,1,%l5 +set yydef,%l4 +ldsh [%l5+%l4],%l5 +mov %l5,%i2 +sll %l5,8*(4-2),%l5; sra %l5,8*(4-2),%l5 +cmp %l5,-2; bne .L182; nop +set yychar,%l5 +ld [%l5],%l5 +cmp %l5,0; bge .L184; nop +call yylex; nop +set yychar,%l4 +st %o0,[%l4] +cmp %o0,0; bge .L186; nop +set yychar,%l5 +st %g0,[%l5] +.L186: +.L184: +set yyexca,%i0 +ba .L191; nop +.L188: +.L189: +add %i0,4,%i0 +.L191: +ldsh [%i0],%l5 +cmp %l5,-1; bne .L188; nop +ldsh [%i0+2],%l5 +sll %i4,8*(4-2),%l4; sra %l4,8*(4-2),%l4 +cmp %l5,%l4; bne .L188; nop +ba .L193; nop +.L192: +ldsh [%i0],%l5 +set yychar,%l4 +ld [%l4],%l4 +cmp %l5,%l4; bne .L195; nop +ba .L194; nop +.L195: +.L193: +add %i0,4,%l5 +mov %l5,%i0 +ldsh [%l5],%l5 +cmp %l5,0; bge .L192; nop +.L194: +ldsh [%i0+2],%l5 +mov %l5,%i2 +sll %l5,8*(4-2),%l5; sra %l5,8*(4-2),%l5 +cmp %l5,0; bge .L197; nop +mov %g0,%i0 +ba .L159; nop +.L197: +.L182: +sll %i2,8*(4-2),%l5; sra %l5,8*(4-2),%l5 +cmp %l5,0; bne .L199; nop +set yyerrflag,%l4 +ldsh [%l4],%l5 +cmp %l5,0; bl .L201; nop +cmp %l5,3; bg .L201; nop +sll %l5,2,%l4 +set .L217,%l3 +ld [%l4+%l3],%l4 +jmp %l4; nop +.section ".rodata" +.align 4 +.L217: +.word .L204 +.word .L207 +.word .L207 +.word .L214 +.section ".text" +.L204: +set .L205,%o0 +call yyerror; nop +.L206: +set yynerrs,%l4 +ld [%l4],%l3 +add %l3,1,%l3 +st %l3,[%l4] +.L207: +set yyerrflag,%l4 +set 3,%l3 +sth %l3,[%l4] +ba .L209; nop +.L208: +ldsh [%i3],%l4 +sll %l4,1,%l4 +set yypact,%l3 +ldsh [%l4+%l3],%l4 +add %l4,256,%l4 +mov %l4,%i2 +sll %i2,8*(4-2),%l4; sra %l4,8*(4-2),%l4 +cmp %l4,0; bl .L211; nop +cmp %l4,249; bge .L211; nop +sll %l4,1,%l4 +set yyact,%l3 +ldsh [%l4+%l3],%l4 +sll %l4,1,%l4 +set yychk,%l3 +ldsh [%l4+%l3],%l4 +cmp %l4,256; bne .L211; nop +sll %i2,8*(4-2),%l4; sra %l4,8*(4-2),%l4 +sll %l4,1,%l4 +set yyact,%l3 +ldsh [%l4+%l3],%i4 +ba .L162; nop +.L211: +ldsh [%i3],%l4 +sll %l4,1,%l4 +set yypact,%l3 +ldsh [%l4+%l3],%i2 +add %i3,-2,%i3 +add %i1,-4,%i1 +.L209: +mov %i3,%l4 +add -300,%fp,%l3 +cmp %l4,%l3; bgeu .L208; nop +.L213: +set 1,%i0 +ba .L159; nop +.L214: +set yychar,%l4 +ld [%l4],%l4 +cmp %l4,0; bne .L215; nop +ba .L213; nop +.L215: +set yychar,%l4 +set -1,%l3 +st %l3,[%l4] +ba .L167; nop +.L201: +.L199: +sll %i2,8*(4-2),%l5; sra %l5,8*(4-2),%l5 +sll %l5,1,%l5 +set yyr2,%l4 +add %l5,%l4,%l4 +ldsh [%l4],%l3 +sll %l3,1,%l3 +sub %i3,%l3,%i3 +mov %i1,%i5 +ldsh [%l4],%l4 +sll %l4,2,%l4 +sub %i1,%l4,%i1 +set yyval,%l4 +ld [%i1+4],%l3 +st %l3,[%l4] +mov %i2,%l6 +set yyr1,%l4 +ldsh [%l5+%l4],%i2 +sll %i2,8*(4-2),%l5; sra %l5,8*(4-2),%l5 +sll %l5,1,%l5 +set yypgo,%l4 +ldsh [%l5+%l4],%l5 +ldsh [%i3],%l4 +add %l5,%l4,%l5 +add %l5,1,%l5 +mov %l5,%l7 +sll %l7,8*(4-2),%l5; sra %l5,8*(4-2),%l5 +cmp %l5,249; bge .L220; nop +sll %l5,1,%l5 +set yyact,%l4 +ldsh [%l5+%l4],%l5 +mov %l5,%i4 +sll %l5,8*(4-2),%l5; sra %l5,8*(4-2),%l5 +sll %l5,1,%l5 +set yychk,%l4 +ldsh [%l5+%l4],%l5 +sll %i2,8*(4-2),%l4; sra %l4,8*(4-2),%l4 +neg %l4,%l4 +cmp %l5,%l4; be .L218; nop +.L220: +sll %i2,8*(4-2),%l5; sra %l5,8*(4-2),%l5 +sll %l5,1,%l5 +set yypgo,%l4 +ldsh [%l5+%l4],%l5 +sll %l5,1,%l5 +set yyact,%l4 +ldsh [%l5+%l4],%i4 +.L218: +sll %l6,8*(4-2),%l5; sra %l5,8*(4-2),%l5 +cmp %l5,4; bl .L162; nop +cmp %l5,14; bg .L162; nop +sll %l5,2,%l4 +set .L242-16,%l3 +ld [%l4+%l3],%l4 +jmp %l4; nop +.section ".rodata" +.align 4 +.L242: +.word .L224 +.word .L225 +.word .L227 +.word .L229 +.word .L231 +.word .L233 +.word .L235 +.word .L162 +.word .L237 +.word .L239 +.word .L241 +.section ".text" +.L224: +set yyerrflag,%l4 +sth %g0,[%l4] +ba .L162; nop +.L225: +set .L226,%o0 +call printf; nop +ba .L162; nop +.L227: +set .L228,%o0 +call printf; nop +ba .L162; nop +.L229: +set .L230,%o0 +call printf; nop +ba .L162; nop +.L231: +set .L232,%o0 +call printf; nop +ba .L162; nop +.L233: +set .L234,%o0 +call printf; nop +ba .L162; nop +.L235: +set .L236,%o0 +call printf; nop +ba .L162; nop +.L237: +set .L238,%o0 +call printf; nop +ba .L162; nop +.L239: +set .L240,%o0 +set yytext,%o1 +call printf; nop +ba .L162; nop +.L241: +set .L158,%o0 +set yytext,%o1 +call printf; nop +ba .L162; nop +.L159: +ret; restore +.type yyparse,#function +.size yyparse,.-yyparse +.global yywrap +.align 4 +yywrap: +set 1,%o0 +.L244: +retl; nop +.type yywrap,#function +.size yywrap,.-yywrap +.section ".bss" +.global yyv +.type yyv,#object +.size yyv,600 +.common yyv,600,4 +.global yyfnd +.type yyfnd,#object +.size yyfnd,4 +.common yyfnd,4,4 +.global yyolsp +.type yyolsp,#object +.size yyolsp,4 +.common yyolsp,4,4 +.global yylsp +.type yylsp,#object +.size yylsp,4 +.common yylsp,4,4 +.global yylstate +.type yylstate,#object +.size yylstate,800 +.common yylstate,800,4 +.global yyestate +.type yyestate,#object +.size yyestate,4 +.common yyestate,4,4 +.global yytchar +.type yytchar,#object +.size yytchar,4 +.common yytchar,4,4 +.global yysbuf +.type yysbuf,#object +.size yysbuf,200 +.common yysbuf,200,1 +.global yymorfg +.type yymorfg,#object +.size yymorfg,4 +.common yymorfg,4,4 +.global yytext +.type yytext,#object +.size yytext,200 +.common yytext,200,1 +.global yyleng +.type yyleng,#object +.size yyleng,4 +.common yyleng,4,4 +.global yyval +.type yyval,#object +.size yyval,4 +.common yyval,4,4 +.global yylval +.type yylval,#object +.size yylval,4 +.common yylval,4,4 +.section ".rodata" +.align 1 +.L240: +.byte 112 +.byte 117 +.byte 115 +.byte 104 +.byte 32 +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 1 +.L238: +.byte 108 +.byte 111 +.byte 97 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.L236: +.byte 110 +.byte 101 +.byte 103 +.byte 97 +.byte 116 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.L234: +.byte 100 +.byte 105 +.byte 118 +.byte 105 +.byte 100 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.L232: +.byte 109 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 121 +.byte 10 +.byte 0 +.align 1 +.L230: +.byte 110 +.byte 101 +.byte 103 +.byte 97 +.byte 116 +.byte 101 +.byte 10 +.byte 97 +.byte 100 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.L228: +.byte 97 +.byte 100 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.L226: +.byte 115 +.byte 116 +.byte 111 +.byte 114 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.L205: +.byte 115 +.byte 121 +.byte 110 +.byte 116 +.byte 97 +.byte 120 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 0 +.align 1 +.L166: +.byte 121 +.byte 97 +.byte 99 +.byte 99 +.byte 32 +.byte 115 +.byte 116 +.byte 97 +.byte 99 +.byte 107 +.byte 32 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 0 +.align 1 +.L158: +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 1 +.L18: +.byte 98 +.byte 97 +.byte 100 +.byte 32 +.byte 115 +.byte 119 +.byte 105 +.byte 116 +.byte 99 +.byte 104 +.byte 32 +.byte 121 +.byte 121 +.byte 108 +.byte 111 +.byte 111 +.byte 107 +.byte 32 +.byte 37 +.byte 100 +.byte 0 diff --git a/code/tools/lcc/src/2html.c b/code/tools/lcc/src/2html.c new file mode 100644 index 0000000..8a0be3a --- /dev/null +++ b/code/tools/lcc/src/2html.c @@ -0,0 +1,555 @@ +#include +#include +#include +#include +#include +#include "c.h" +#include "rcc.h" +#if WIN32 +#include +#include +#endif + + +static void do_int(int x) { + printf("%d", x); +} + +static void do_scope(int x) { +#define xx(c) if (x == c) { printf(#c); return; } + xx(CONSTANTS) + xx(LABELS) + xx(GLOBAL) + xx(PARAM) + xx(LOCAL) +#undef xx + if (x > LOCAL) + printf("LOCAL+%d", x-LOCAL); + else + do_int(x); +} + +static void do_sclass(int x) { +#define xx(c) if (x == c) { printf(#c); return; } + xx(REGISTER) + xx(AUTO) + xx(EXTERN) + xx(STATIC) + xx(TYPEDEF) +#undef xx + do_int(x); +} + +static void do_flags(int x) { + char *bar = ""; +#define xx(f,n) if ((x>>n)&1) { printf("%s" #f, bar); bar = "|"; } + xx(structarg,0) + xx(addressed,1) + xx(computed,2) + xx(temporary,3) + xx(generated,4) +#undef xx + if (*bar == '\0') + do_int(x); +} + +static void do_seg(int x) { +#define xx(s) if (x == s) { printf(#s); return; } + xx(CODE) + xx(BSS) + xx(DATA) + xx(LIT) +#undef xx + do_int(x); +} + +#define xx(ptr,field,type) do { printf("
  • " #field " = "); do_##type(ptr->field); printf("
  • \n"); } while (0) + +static void do_op(int x) { + static char *opnames[] = { + "", + "CNST", + "ARG", + "ASGN", + "INDIR", + "CVC", + "CVD", + "CVF", + "CVI", + "CVP", + "CVS", + "CVU", + "NEG", + "CALL", + "*LOAD*", + "RET", + "ADDRG", + "ADDRF", + "ADDRL", + "ADD", + "SUB", + "LSH", + "MOD", + "RSH", + "BAND", + "BCOM", + "BOR", + "BXOR", + "DIV", + "MUL", + "EQ", + "GE", + "GT", + "LE", + "LT", + "NE", + "JUMP", + "LABEL", + "AND", + "NOT", + "OR", + "COND", + "RIGHT", + "FIELD" + }; + int op = opindex(x); + if (op < 1 || op >= sizeof opnames/sizeof opnames[0]) + printf("%d", x); + else + printf("%s", opnames[op]); +} + +static void do_define_uid(int x) { + printf("%d", x, x); +} + +static void do_define_label(int x) { + printf("%d", x, x); +} + +static void do_uid(int x) { + printf("%d", x, x, x); +} + +static void do_label(int x) { + printf("%d", x, x, x); +} + +static int nextid; + +static void do_list(list_ty x, void do_one(void *), char *type, char *listhtml, char *separator) { + int count = Seq_length(x); + + if (count == 0) + printf("empty %s list\n", type); + else { + int i; + printf("%s list", type); + if (listhtml != NULL) + printf("<%s>\n", listhtml); + for (i = 0; i < count; i++) { + if (listhtml != NULL) + printf("
  • "); + printf(separator); + do_one(Seq_get(x, i)); + if (listhtml != NULL) + printf("
  • \n"); + } + if (listhtml != NULL) + printf("\n", listhtml); + } +} + +static void do_uid_list(list_ty x) { + int i, count = Seq_length(x); + + if (count == 0) + printf("empty int list\n"); + else { + int i; + printf("int list"); + for (i= 0; i < count; i++) { + printf(" "); + do_uid(*(int *)Seq_get(x, i)); + } + } +} + +static void do_identifier(const char *x) { + printf("%s", x); +} + +static void do_real(rcc_real_ty x) { + double d; + unsigned *p = (unsigned *)&d; + static union { int x; char endian; } little = { 1 }; + + p[1-little.endian] = x->msb; + p[little.endian] = x->lsb; + printf("(%#X,%#X) = %g", x->msb, x->lsb, d); +} + +static void do_suffix(int x) { + static char suffixes[] = "0F234IUPVB"; + + if (x < 0 || x >= (sizeof suffixes/sizeof suffixes[0]) - 1) + printf("%d", x); + else + printf("%c", suffixes[x]); +} + +static void do_enum(void *x) { + rcc_enum__ty e = x; + + do_identifier(e->id); + printf("="); + do_int(e->value); +} + +static void do_enum_list(list_ty x) { + do_list(x, do_enum, "enum", NULL, " "); +} + +static void do_field(void *x) { + rcc_field_ty f = x; + + printf("field
      \n"); + xx(f,id,identifier); + xx(f,type,uid); + xx(f,offset,int); + xx(f,bitsize,int); + xx(f,lsb,int); + printf("
    \n"); +} + +static void do_field_list(list_ty x) { + do_list(x, do_field, "field", "ol", ""); +} + +static void do_symbol(rcc_symbol_ty x) { + printf("symbol
      \n"); + xx(x,id,identifier); + xx(x,type,uid); + xx(x,scope,scope); + xx(x,sclass,sclass); + xx(x,ref,int); + xx(x,flags,flags); + printf("
    \n"); +} + +#define caselabel(kind) case rcc_##kind##_enum: \ + printf("" #kind " : %s", typename); \ + printf("
      \n"); attributes +#define yy(kind,field,type) xx((&x->v.rcc_##kind),field,type) + +static void do_type(rcc_type_ty x) { +#define attributes xx(x,size,int); xx(x,align,int) + switch (x->kind) { + static char *typename = "type"; + caselabel(INT); break; + caselabel(UNSIGNED); break; + caselabel(FLOAT); break; + caselabel(VOID); break; + caselabel(POINTER); + yy(POINTER,type,uid); + break; + caselabel(ENUM); + yy(ENUM,tag,identifier); + yy(ENUM,ids,enum_list); + break; + caselabel(STRUCT); + yy(STRUCT,tag,identifier); + yy(STRUCT,fields,field_list); + break; + caselabel(UNION); + yy(UNION,tag,identifier); + yy(UNION,fields,field_list); + break; + caselabel(ARRAY); + yy(ARRAY,type,uid); + break; + caselabel(FUNCTION); + yy(FUNCTION,type,uid); + yy(FUNCTION,formals,uid_list); + break; + caselabel(CONST); + yy(CONST,type,uid); + break; + caselabel(VOLATILE); + yy(VOLATILE,type,uid); + break; + default: assert(0); + } +#undef attributes + printf("
    \n"); +} + +static void do_item(rcc_item_ty x) { + printf("", x->uid); +#define attributes xx(x,uid,define_uid) + printf(""); + switch (x->kind) { + static char *typename = "item"; + caselabel(Symbol); + yy(Symbol,symbol,symbol); + break; + caselabel(Type); + yy(Type,type,type); + break; + default: assert(0); + } +#undef attributes + printf("\n"); +} + +static void do_item_list(list_ty x) { + int count = Seq_length(x); + + if (count == 0) + printf("empty item list\n"); + else { + int i; + printf("item list"); + printf("
      \n"); + for (i = 0; i < count; i++) { + rcc_item_ty item = Seq_get(x, i); + printf("
    1. ", item->uid); + do_item(item); + printf("
    2. \n"); + } + printf("
    \n"); + } +} + +static void do_string(string_ty x) { + printf("%d,'%s'", x.len, x.str); +} + +static void do_generic_string(void *x) { + do_string(*(string_ty *)x); +} + +static void do_string_list(list_ty x) { + do_list(x, do_generic_string, "string", "ol", ""); +} + +static void do_node(void *y) { + rcc_node_ty x = y; + + if (x->kind == rcc_LABEL_enum) + printf("", x->v.rcc_LABEL.label); +#define attributes xx(x,suffix,suffix); xx(x,size,int) + switch (x->kind) { + static char *typename = "node"; + caselabel(CNST); + yy(CNST,value,int); + break; + caselabel(CNSTF); + yy(CNSTF,value,real); + break; + caselabel(ARG); + yy(ARG,left,node); + yy(ARG,len,int); + yy(ARG,align,int); + break; + caselabel(ASGN); + yy(ASGN,left,node); + yy(ASGN,right,node); + yy(ASGN,len,int); + yy(ASGN,align,int); + break; + caselabel(CVT); + yy(CVT,op,op); + yy(CVT,left,node); + yy(CVT,fromsize,int); + break; + caselabel(CALL); + yy(CALL,left,node); + yy(CALL,type,uid); + break; + caselabel(CALLB); + yy(CALLB,left,node); + yy(CALLB,right,node); + yy(CALLB,type,uid); + break; + caselabel(RET); break; + caselabel(ADDRG); + yy(ADDRG,uid,uid); + break; + caselabel(ADDRL); + yy(ADDRL,uid,uid); + break; + caselabel(ADDRF); + yy(ADDRF,uid,uid); + break; + caselabel(Unary); + yy(Unary,op,op); + yy(Unary,left,node); + break; + caselabel(Binary); + yy(Binary,op,op); + yy(Binary,left,node); + yy(Binary,right,node); + break; + caselabel(Compare); + yy(Compare,op,op); + yy(Compare,left,node); + yy(Compare,right,node); + yy(Compare,label,label); + break; + caselabel(LABEL); + yy(LABEL,label,define_label); + break; + caselabel(BRANCH); + yy(BRANCH,label,label); + break; + caselabel(CSE); + yy(CSE,uid,uid); + yy(CSE,node,node); + break; + default: assert(0); + } +#undef attributes + printf(""); +} + +static void do_node_list(list_ty x) { + do_list(x, do_node, "node", "ol", ""); +} + +static void do_interface(void *); + +static void do_interface_list(list_ty x) { + do_list(x, do_interface, "interface", "ol", ""); +} + +static void do_interface(void *y) { + rcc_interface_ty x = y; + + if (x->kind == rcc_Address_enum) + printf("", x->v.rcc_Address.uid); + else if (x->kind == rcc_Local_enum) + printf("", x->v.rcc_Local.uid); +#define attributes + switch (x->kind) { + static char *typename = "interface"; + caselabel(Export); + yy(Export,p,uid); + break; + caselabel(Import); + yy(Import,p,uid); + break; + caselabel(Global); + yy(Global,p,uid); + yy(Global,seg,seg); + break; + caselabel(Local); + yy(Local,uid,define_uid); + yy(Local,p,symbol); + break; + caselabel(Address); + yy(Address,uid,define_uid); + yy(Address,q,symbol); + yy(Address,p,uid); + yy(Address,n,int); + break; + caselabel(Segment); + yy(Segment,seg,seg); + break; + caselabel(Defaddress); + yy(Defaddress,p,uid); + break; + caselabel(Deflabel); + yy(Deflabel,label,label); + break; + caselabel(Defconst); + yy(Defconst,suffix,suffix); + yy(Defconst,size,int); + yy(Defconst,value,int); + break; + caselabel(Defconstf); + yy(Defconstf,size,int); + yy(Defconstf,value,real); + break; + caselabel(Defstring); + yy(Defstring,s,string); + break; + caselabel(Space); + yy(Space,n,int); + break; + caselabel(Function); + yy(Function,f,uid); + yy(Function,caller,uid_list); + yy(Function,callee,uid_list); + yy(Function,ncalls,int); + yy(Function,codelist,interface_list); + break; + caselabel(Forest); + yy(Forest,nodes,node_list); + break; + case rcc_Blockbeg_enum: printf("Blockbeg : %s", typename); return; + case rcc_Blockend_enum: printf("Blockend : %s", typename); return; + default: assert(0); + } +#undef attributes + printf("\n"); +} + +static void do_program(rcc_program_ty x) { + printf("
      \n"); + xx(x,nuids,int); + xx(x,nlabels,int); + xx(x,items,item_list); + xx(x,interfaces,interface_list); + xx(x,argc,int); + xx(x,argv,string_list); + printf("
    \n"); +} + +int main(int argc, char *argv[]) { + int i, version; + float stamp = (assert(strstr(rcsid, ",v")), strtod(strstr(rcsid, ",v")+2, NULL)) +; + char *infile = NULL, *outfile = NULL; + rcc_program_ty pickle; + + for (i = 1; i < argc; i++) + if (*argv[i] != '-' || strcmp(argv[i], "-") == 0) { + if (infile == NULL) + infile = argv[i]; + else if (outfile == NULL) + outfile = argv[i]; + } + if (infile != NULL && strcmp(infile, "-") != 0 + && freopen(infile, "rb", stdin) == NULL) { + fprintf(stderr, "%s: can't read `%s'\n", argv[0], infile); + exit(EXIT_FAILURE); + } + if (infile == NULL || strcmp(infile, "-") == 0) + infile = "Standard Input"; +#if WIN32 + else + _setmode(_fileno(stdin), _O_BINARY); +#endif + if (outfile != NULL && strcmp(outfile, "-") != 0 + && freopen(outfile, "w", stdout) == NULL) { + fprintf(stderr, "%s: can't write `%s'\n", argv[0], outfile); + exit(EXIT_FAILURE); + } + version = read_int(stdin); + assert(version/100 == (int)stamp); + pickle = rcc_read_program(stdin); + printf("%s\n" + "\n" + "\n

    %s

    \n", infile, infile); + printf("

    version = %d.%d

    ", version/100, version%100); + do_program(pickle); + { + time_t t; + time(&t); + printf("
    %s
    \n", ctime(&t)); + } + printf("\n"); + return EXIT_SUCCESS; +} diff --git a/code/tools/lcc/src/alloc.c b/code/tools/lcc/src/alloc.c new file mode 100644 index 0000000..e0566df --- /dev/null +++ b/code/tools/lcc/src/alloc.c @@ -0,0 +1,94 @@ +#include "c.h" +struct block { + struct block *next; + char *limit; + char *avail; +}; +union align { + long l; + char *p; + double d; + int (*f)(void); +}; +union header { + struct block b; + union align a; +}; +#ifdef PURIFY +union header *arena[3]; + +void *allocate(unsigned long n, unsigned a) { + union header *new = malloc(sizeof *new + n); + + assert(a < NELEMS(arena)); + if (new == NULL) { + error("insufficient memory\n"); + exit(1); + } + new->b.next = (void *)arena[a]; + arena[a] = new; + return new + 1; +} + +void deallocate(unsigned a) { + union header *p, *q; + + assert(a < NELEMS(arena)); + for (p = arena[a]; p; p = q) { + q = (void *)p->b.next; + free(p); + } + arena[a] = NULL; +} + +void *newarray(unsigned long m, unsigned long n, unsigned a) { + return allocate(m*n, a); +} +#else +static struct block + first[] = { { NULL }, { NULL }, { NULL } }, + *arena[] = { &first[0], &first[1], &first[2] }; +static struct block *freeblocks; + +void *allocate(unsigned long n, unsigned a) { + struct block *ap; + + assert(a < NELEMS(arena)); + assert(n > 0); + ap = arena[a]; + n = roundup(n, sizeof (union align)); + while (n > ap->limit - ap->avail) { + if ((ap->next = freeblocks) != NULL) { + freeblocks = freeblocks->next; + ap = ap->next; + } else + { + unsigned m = sizeof (union header) + n + roundup(10*1024, sizeof (union align)); + ap->next = malloc(m); + ap = ap->next; + if (ap == NULL) { + error("insufficient memory\n"); + exit(1); + } + ap->limit = (char *)ap + m; + } + ap->avail = (char *)((union header *)ap + 1); + ap->next = NULL; + arena[a] = ap; + + } + ap->avail += n; + return ap->avail - n; +} + +void *newarray(unsigned long m, unsigned long n, unsigned a) { + return allocate(m*n, a); +} +void deallocate(unsigned a) { + assert(a < NELEMS(arena)); + arena[a]->next = freeblocks; + freeblocks = first[a].next; + first[a].next = NULL; + arena[a] = &first[a]; +} +#endif diff --git a/code/tools/lcc/src/alpha.md b/code/tools/lcc/src/alpha.md new file mode 100644 index 0000000..450dfd3 --- /dev/null +++ b/code/tools/lcc/src/alpha.md @@ -0,0 +1,1192 @@ +%{ +#define INTTMP ((0xff<<1)|(1<<22)|(1<<25)|(1<<27)) +#define INTVAR (0x3f<<9) +#define FLTTMP ((0x3f<<10)|(0x1ff<<22)) +#define FLTVAR (0xff<<2) + +#define INTRET 0x00000001 +#define FLTRET 0x00000003 + +#define readsreg(p) \ + (generic((p)->op)==INDIR && (p)->kids[0]->op==VREG+P) +#define setsrc(d) ((d) && (d)->x.regnode && \ + (d)->x.regnode->set == src->x.regnode->set && \ + (d)->x.regnode->mask&src->x.regnode->mask) + +#define relink(a, b) ((b)->x.prev = (a), (a)->x.next = (b)) + +#include "c.h" +#define NODEPTR_TYPE Node +#define OP_LABEL(p) ((p)->op) +#define LEFT_CHILD(p) ((p)->kids[0]) +#define RIGHT_CHILD(p) ((p)->kids[1]) +#define STATE_LABEL(p) ((p)->x.state) +static void address(Symbol, Symbol, long); +static void blkfetch(int, int, int, int); +static void blkloop(int, int, int, int, int, int[]); +static void blkstore(int, int, int, int); +static void defaddress(Symbol); +static void defconst(int, int, Value); +static void defstring(int, char *); +static void defsymbol(Symbol); +static void doarg(Node); +static void emit2(Node); +static void export(Symbol); +static void clobber(Node); +static void function(Symbol, Symbol [], Symbol [], int); +static void global(Symbol); +static void import(Symbol); +static void local(Symbol); +static void progbeg(int, char **); +static void progend(void); +static void segment(int); +static void space(int); +static void target(Node); +static Symbol ireg[32], freg[32]; +static Symbol iregw, fregw; + +static int tmpregs[] = {4, 2, 3}; +static Symbol blkreg; + +static int cseg; + +static char *currentfile; + +%} +%start stmt +%term CNSTF4=4113 +%term CNSTF8=8209 +%term CNSTF16=16401 +%term CNSTI1=1045 +%term CNSTI2=2069 +%term CNSTI4=4117 +%term CNSTI8=8213 +%term CNSTP4=4119 +%term CNSTP8=8215 +%term CNSTU1=1046 +%term CNSTU2=2070 +%term CNSTU4=4118 +%term CNSTU8=8214 + +%term ARGB=41 +%term ARGF4=4129 +%term ARGF8=8225 +%term ARGF16=16417 +%term ARGI4=4133 +%term ARGI8=8229 +%term ARGP4=4135 +%term ARGP8=8231 +%term ARGU4=4134 +%term ARGU8=8230 + +%term ASGNB=57 +%term ASGNF4=4145 +%term ASGNF8=8241 +%term ASGNF16=16433 +%term ASGNI1=1077 +%term ASGNI2=2101 +%term ASGNI4=4149 +%term ASGNI8=8245 +%term ASGNP4=4151 +%term ASGNP8=8247 +%term ASGNU1=1078 +%term ASGNU2=2102 +%term ASGNU4=4150 +%term ASGNU8=8246 + +%term INDIRB=73 +%term INDIRF4=4161 +%term INDIRF8=8257 +%term INDIRF16=16449 +%term INDIRI1=1093 +%term INDIRI2=2117 +%term INDIRI4=4165 +%term INDIRI8=8261 +%term INDIRP4=4167 +%term INDIRP8=8263 +%term INDIRU1=1094 +%term INDIRU2=2118 +%term INDIRU4=4166 +%term INDIRU8=8262 + +%term CVFF4=4209 +%term CVFF8=8305 +%term CVFF16=16497 +%term CVFI4=4213 +%term CVFI8=8309 + +%term CVIF4=4225 +%term CVIF8=8321 +%term CVIF16=16513 +%term CVII1=1157 +%term CVII2=2181 +%term CVII4=4229 +%term CVII8=8325 +%term CVIU1=1158 +%term CVIU2=2182 +%term CVIU4=4230 +%term CVIU8=8326 + +%term CVPP4=4247 +%term CVPP8=8343 +%term CVPP16=16535 +%term CVPU4=4246 +%term CVPU8=8342 + +%term CVUI1=1205 +%term CVUI2=2229 +%term CVUI4=4277 +%term CVUI8=8373 +%term CVUP4=4279 +%term CVUP8=8375 +%term CVUP16=16567 +%term CVUU1=1206 +%term CVUU2=2230 +%term CVUU4=4278 +%term CVUU8=8374 + +%term NEGF4=4289 +%term NEGF8=8385 +%term NEGF16=16577 +%term NEGI4=4293 +%term NEGI8=8389 + +%term CALLB=217 +%term CALLF4=4305 +%term CALLF8=8401 +%term CALLF16=16593 +%term CALLI4=4309 +%term CALLI8=8405 +%term CALLP4=4311 +%term CALLP8=8407 +%term CALLU4=4310 +%term CALLU8=8406 +%term CALLV=216 + +%term RETF4=4337 +%term RETF8=8433 +%term RETF16=16625 +%term RETI4=4341 +%term RETI8=8437 +%term RETP4=4343 +%term RETP8=8439 +%term RETU4=4342 +%term RETU8=8438 +%term RETV=248 + +%term ADDRGP4=4359 +%term ADDRGP8=8455 + +%term ADDRFP4=4375 +%term ADDRFP8=8471 + +%term ADDRLP4=4391 +%term ADDRLP8=8487 + +%term ADDF4=4401 +%term ADDF8=8497 +%term ADDF16=16689 +%term ADDI4=4405 +%term ADDI8=8501 +%term ADDP4=4407 +%term ADDP8=8503 +%term ADDU4=4406 +%term ADDU8=8502 + +%term SUBF4=4417 +%term SUBF8=8513 +%term SUBF16=16705 +%term SUBI4=4421 +%term SUBI8=8517 +%term SUBP4=4423 +%term SUBP8=8519 +%term SUBU4=4422 +%term SUBU8=8518 + +%term LSHI4=4437 +%term LSHI8=8533 +%term LSHU4=4438 +%term LSHU8=8534 + +%term MODI4=4453 +%term MODI8=8549 +%term MODU4=4454 +%term MODU8=8550 + +%term RSHI4=4469 +%term RSHI8=8565 +%term RSHU4=4470 +%term RSHU8=8566 + +%term BANDI4=4485 +%term BANDI8=8581 +%term BANDU4=4486 +%term BANDU8=8582 + +%term BCOMI4=4501 +%term BCOMI8=8597 +%term BCOMU4=4502 +%term BCOMU8=8598 + +%term BORI4=4517 +%term BORI8=8613 +%term BORU4=4518 +%term BORU8=8614 + +%term BXORI4=4533 +%term BXORI8=8629 +%term BXORU4=4534 +%term BXORU8=8630 + +%term DIVF4=4545 +%term DIVF8=8641 +%term DIVF16=16833 +%term DIVI4=4549 +%term DIVI8=8645 +%term DIVU4=4550 +%term DIVU8=8646 + +%term MULF4=4561 +%term MULF8=8657 +%term MULF16=16849 +%term MULI4=4565 +%term MULI8=8661 +%term MULU4=4566 +%term MULU8=8662 + +%term EQF4=4577 +%term EQF8=8673 +%term EQF16=16865 +%term EQI4=4581 +%term EQI8=8677 +%term EQU4=4582 +%term EQU8=8678 + +%term GEF4=4593 +%term GEF8=8689 +%term GEI4=4597 +%term GEI8=8693 +%term GEI16=16885 +%term GEU4=4598 +%term GEU8=8694 + +%term GTF4=4609 +%term GTF8=8705 +%term GTF16=16897 +%term GTI4=4613 +%term GTI8=8709 +%term GTU4=4614 +%term GTU8=8710 + +%term LEF4=4625 +%term LEF8=8721 +%term LEF16=16913 +%term LEI4=4629 +%term LEI8=8725 +%term LEU4=4630 +%term LEU8=8726 + +%term LTF4=4641 +%term LTF8=8737 +%term LTF16=16929 +%term LTI4=4645 +%term LTI8=8741 +%term LTU4=4646 +%term LTU8=8742 + +%term NEF4=4657 +%term NEF8=8753 +%term NEF16=16945 +%term NEI4=4661 +%term NEI8=8757 +%term NEU4=4662 +%term NEU8=8758 + +%term JUMPV=584 + +%term LABELV=600 + +%term LOADB=233 +%term LOADF4=4321 +%term LOADF8=8417 +%term LOADF16=16609 +%term LOADI1=1253 +%term LOADI2=2277 +%term LOADI4=4325 +%term LOADI8=8421 +%term LOADP4=4327 +%term LOADP8=8423 +%term LOADU1=1254 +%term LOADU2=2278 +%term LOADU4=4326 +%term LOADU8=8422 + +%term VREGP=711 +%% +reg: INDIRI1(VREGP) "# read register\n" +reg: INDIRU1(VREGP) "# read register\n" + +reg: INDIRI2(VREGP) "# read register\n" +reg: INDIRU2(VREGP) "# read register\n" + +reg: INDIRF4(VREGP) "# read register\n" +reg: INDIRI4(VREGP) "# read register\n" +reg: INDIRP4(VREGP) "# read register\n" +reg: INDIRU4(VREGP) "# read register\n" + +reg: INDIRF8(VREGP) "# read register\n" +reg: INDIRI8(VREGP) "# read register\n" +reg: INDIRP8(VREGP) "# read register\n" +reg: INDIRU8(VREGP) "# read register\n" + +stmt: ASGNI1(VREGP,reg) "# write register\n" +stmt: ASGNU1(VREGP,reg) "# write register\n" + +stmt: ASGNI2(VREGP,reg) "# write register\n" +stmt: ASGNU2(VREGP,reg) "# write register\n" + +stmt: ASGNF4(VREGP,reg) "# write register\n" +stmt: ASGNI4(VREGP,reg) "# write register\n" +stmt: ASGNP4(VREGP,reg) "# write register\n" +stmt: ASGNU4(VREGP,reg) "# write register\n" + +stmt: ASGNF8(VREGP,reg) "# write register\n" +stmt: ASGNI8(VREGP,reg) "# write register\n" +stmt: ASGNP8(VREGP,reg) "# write register\n" +stmt: ASGNU8(VREGP,reg) "# write register\n" +con: CNSTI1 "%a" +con: CNSTU1 "%a" + +con: CNSTI2 "%a" +con: CNSTU2 "%a" + +con: CNSTI4 "%a" +con: CNSTU4 "%a" +con: CNSTP4 "%a" + +con: CNSTI8 "%a" +con: CNSTU8 "%a" +con: CNSTP8 "%a" +stmt: reg "" +acon: con "%0" +acon: ADDRGP8 "%a" + +addr: ADDI4(reg,acon) "%1($%0)" +addr: ADDI8(reg,acon) "%1($%0)" +addr: ADDU8(reg,acon) "%1($%0)" +addr: ADDP8(reg,acon) "%1($%0)" + +addr: acon "%0" +addr: reg "($%0)" + +addr: ADDRFP8 "%a+%F($sp)" +addr: ADDRLP8 "%a+%F($sp)" + +reg: addr "lda $%c,%0\n" 1 + +reg: CNSTI1 "# reg\n" range(a, 0, 0) +reg: CNSTI2 "# reg\n" range(a, 0, 0) +reg: CNSTI4 "# reg\n" range(a, 0, 0) +reg: CNSTI8 "# reg\n" range(a, 0, 0) +reg: CNSTU1 "# reg\n" range(a, 0, 0) +reg: CNSTU2 "# reg\n" range(a, 0, 0) +reg: CNSTU4 "# reg\n" range(a, 0, 0) +reg: CNSTU8 "# reg\n" range(a, 0, 0) +reg: CNSTP8 "# reg\n" range(a, 0, 0) + +stmt: ASGNI1(addr,reg) "stb $%1,%0\n" 1 +stmt: ASGNU1(addr,reg) "stb $%1,%0\n" 1 +stmt: ASGNI2(addr,reg) "stw $%1,%0\n" 1 +stmt: ASGNU2(addr,reg) "stw $%1,%0\n" 1 + +stmt: ASGNI4(addr,reg) "stl $%1,%0\n" 1 +stmt: ASGNU4(addr,reg) "stl $%1,%0\n" 1 +stmt: ASGNI8(addr,reg) "stq $%1,%0\n" 1 +stmt: ASGNU8(addr,reg) "stq $%1,%0\n" 1 +stmt: ASGNP8(addr,reg) "stq $%1,%0\n" 1 + +reg: INDIRI1(reg) "ldb $%c,($%0)\n" 1 +reg: INDIRI2(reg) "ldw $%c,($%0)\n" 1 +reg: INDIRI4(addr) "ldl $%c,%0\n" 1 +reg: INDIRI8(addr) "ldq $%c,%0\n" 1 +reg: INDIRP8(addr) "ldq $%c,%0\n" 1 +reg: INDIRU1(reg) "ldbu $%c,($%0)\n" 1 +reg: INDIRU2(reg) "ldwu $%c,($%0)\n" 1 +reg: INDIRU4(addr) "ldl $%c,%0\nzap $%c,240,$%c\n" 2 +reg: INDIRU8(addr) "ldq $%c,%0\n" 1 + +reg: CVII4(INDIRI1(reg)) "ldb $%c,($%0)\n" 1 +reg: CVII8(INDIRI1(reg)) "ldb $%c,($%0)\n" 1 +reg: CVII4(INDIRI2(reg)) "ldw $%c,($%0)\n" 1 +reg: CVII8(INDIRI2(reg)) "ldw $%c,($%0)\n" 1 +reg: CVII8(INDIRI4(addr)) "ldl $%c,%0\n" 1 + +reg: CVUU4(INDIRU1(reg)) "ldbu $%c,($%0)\n" 1 +reg: CVUU8(INDIRU1(reg)) "ldbu $%c,($%0)\n" 1 +reg: CVUU4(INDIRU2(reg)) "ldwu $%c,($%0)\n" 1 +reg: CVUU8(INDIRU2(reg)) "ldwu $%c,($%0)\n" 1 +reg: CVUU8(INDIRU4(addr)) "ldl $%c,%0\nzap $%c,240,$%c\n" 2 + +reg: CVUI4(INDIRU1(reg)) "ldbu $%c,($%0)\n" 1 +reg: CVUI8(INDIRU1(reg)) "ldbu $%c,($%0)\n" 1 +reg: CVUI4(INDIRU2(reg)) "ldwu $%c,($%0)\n" 1 +reg: CVUI8(INDIRU2(reg)) "ldwu $%c,($%0)\n" 1 +reg: CVUI8(INDIRU4(addr)) "ldl $%c,%0\nzap $%c,240,$%c\n" 2 + +reg: CVIU8(reg) "mov $%0,$%c\n" move(a) + +reg: INDIRF4(addr) "lds $f%c,%0\n" 1 +reg: INDIRF8(addr) "ldt $f%c,%0\n" 1 +stmt: ASGNF4(addr,reg) "sts $f%1,%0\n" 1 +stmt: ASGNF8(addr,reg) "stt $f%1,%0\n" 1 + +reg: MULI4(reg,rc) "mull $%0,%1,$%c\n" 1 +reg: MULI8(reg,rc) "mulq $%0,%1,$%c\n" 1 +reg: MULU4(reg,rc) "mull $%0,%1,$%c\nzap $%c,240,$%c\n" 2 +reg: MULU8(reg,rc) "mulq $%0,%1,$%c\n" 1 + +reg: DIVI4(reg,rc) "divl $%0,%1,$%c\n" 1 +reg: DIVI8(reg,rc) "divq $%0,%1,$%c\n" 1 +reg: DIVU4(reg,rc) "divlu $%0,%1,$%c\n" 1 +reg: DIVU8(reg,rc) "divqu $%0,%1,$%c\n" 1 +reg: MODI4(reg,rc) "reml $%0,%1,$%c\n" 1 +reg: MODI8(reg,rc) "remq $%0,%1,$%c\n" 1 +reg: MODU4(reg,rc) "remlu $%0,%1,$%c\n" 1 +reg: MODU8(reg,rc) "remqu $%0,%1,$%c\n" 1 + +rc: con "%0" +rc: reg "$%0" + +reg: ADDI4(reg,rc) "addl $%0,%1,$%c\n" 1 +reg: ADDI8(reg,rc) "addq $%0,%1,$%c\n" 1 +reg: ADDP8(reg,rc) "addq $%0,%1,$%c\n" 1 +reg: ADDU4(reg,rc) "addl $%0,%1,$%c\nzap $%c,240,$%c\n" 2 +reg: ADDU8(reg,rc) "addq $%0,%1,$%c\n" 1 +reg: SUBI4(reg,rc) "subl $%0,%1,$%c\n" 1 +reg: SUBI8(reg,rc) "subq $%0,%1,$%c\n" 1 +reg: SUBP8(reg,rc) "subq $%0,%1,$%c\n" 1 +reg: SUBU4(reg,rc) "subl $%0,%1,$%c\nzap $%c,240,$%c\n" 2 +reg: SUBU8(reg,rc) "subq $%0,%1,$%c\n" 1 + +reg: BANDI4(reg,rc) "and $%0,%1,$%c\naddl $%c,0,$%c\n" 2 +reg: BANDI8(reg,rc) "and $%0,%1,$%c\n" 1 +reg: BANDU4(reg,rc) "and $%0,%1,$%c\n" 1 +reg: BANDU8(reg,rc) "and $%0,%1,$%c\n" 1 +reg: BORI4(reg,rc) "or $%0,%1,$%c\naddl $%c,0,$%c\n" 2 +reg: BORI8(reg,rc) "or $%0,%1,$%c\n" 1 +reg: BORU4(reg,rc) "or $%0,%1,$%c\n" 1 +reg: BORU8(reg,rc) "or $%0,%1,$%c\n" 1 +reg: BXORI4(reg,rc) "xor $%0,%1,$%c\naddl $%c,0,$%c\n" 2 +reg: BXORI8(reg,rc) "xor $%0,%1,$%c\n" 1 +reg: BXORU4(reg,rc) "xor $%0,%1,$%c\n" 1 +reg: BXORU8(reg,rc) "xor $%0,%1,$%c\n" 1 + +rc6: CNSTI4 "%a" range(a,0,63) +rc6: CNSTI8 "%a" range(a,0,63) +rc6: reg "$%0" + +reg: LSHI4(reg,rc6) "sll $%0,%1,$%c\naddl $%c,0,$%c\n" 2 +reg: LSHI8(reg,rc6) "sll $%0,%1,$%c\n" 1 +reg: LSHU4(reg,rc6) "sll $%0,%1,$%c\nzap $%c,240,$%c\n" 2 +reg: LSHU8(reg,rc6) "sll $%0,%1,$%c\n" 1 +reg: RSHI4(reg,rc6) "sra $%0,%1,$%c\naddl $%c,0,$%c\n" 2 +reg: RSHI8(reg,rc6) "sra $%0,%1,$%c\n" 1 +reg: RSHU4(reg,rc6) "srl $%0,%1,$%c\n" 1 +reg: RSHU8(reg,rc6) "srl $%0,%1,$%c\n" 1 + +reg: BCOMI4(reg) "not $%0,$%c\naddl $%c,0,$%c\n" 2 +reg: BCOMU4(reg) "not $%0,$%c\nzap $%c,240,$%c\n" 2 +reg: BCOMI8(reg) "not $%0,$%c\n" 1 +reg: BCOMU8(reg) "not $%0,$%c\n" 1 +reg: NEGI4(reg) "negl $%0,$%c\n" 1 +reg: NEGI8(reg) "negq $%0,$%c\n" 1 +reg: LOADI1(reg) "mov $%0,$%c\n" move(a) +reg: LOADI2(reg) "mov $%0,$%c\n" move(a) +reg: LOADI4(reg) "mov $%0,$%c\n" move(a) +reg: LOADI8(reg) "mov $%0,$%c\n" move(a) +reg: LOADP8(reg) "mov $%0,$%c\n" move(a) +reg: LOADU1(reg) "mov $%0,$%c\n" move(a) +reg: LOADU2(reg) "mov $%0,$%c\n" move(a) +reg: LOADU4(reg) "mov $%0,$%c\n" move(a) +reg: LOADU8(reg) "mov $%0,$%c\n" move(a) + +reg: ADDF4(reg,reg) "adds $f%0,$f%1,$f%c\n" 1 +reg: ADDF8(reg,reg) "addt $f%0,$f%1,$f%c\n" 1 +reg: DIVF4(reg,reg) "divs $f%0,$f%1,$f%c\n" 1 +reg: DIVF8(reg,reg) "divt $f%0,$f%1,$f%c\n" 1 +reg: MULF4(reg,reg) "muls $f%0,$f%1,$f%c\n" 1 +reg: MULF8(reg,reg) "mult $f%0,$f%1,$f%c\n" 1 +reg: SUBF4(reg,reg) "subs $f%0,$f%1,$f%c\n" 1 +reg: SUBF8(reg,reg) "subt $f%0,$f%1,$f%c\n" 1 +reg: LOADF4(reg) "fmov $f%0,$f%c\n" move(a) +reg: LOADF8(reg) "fmov $f%0,$f%c\n" move(a) +reg: NEGF4(reg) "negs $f%0,$f%c\n" 1 +reg: NEGF8(reg) "negt $f%0,$f%c\n" 1 +reg: CVII4(reg) "sll $%0,8*(8-%a),$%c\nsra $%c,8*(8-%a),$%c\n" 2 +reg: CVII8(reg) "sll $%0,8*(8-%a),$%c\nsra $%c,8*(8-%a),$%c\n" 2 +reg: CVUI4(reg) "and $%0,(1<<(8*%a))-1,$%c\n" 1 +reg: CVUI8(reg) "and $%0,(1<<(8*%a))-1,$%c\n" 1 +reg: CVUU4(reg) "and $%0,(1<<(8*%a))-1,$%c\n" 1 +reg: CVUU8(reg) "and $%0,(1<<(8*%a))-1,$%c\n" 1 + +reg: CVUP8(reg) "and $%0,(1<<(8*%a))-1,$%c\n" 1 + +reg: CVFF4(reg) "cvtts $f%0,$f%c\n" 1 +reg: CVFF8(reg) "cvtst $f%0,$f%c\n" 1 + +reg: CVIF4(reg) "stq $%0,-56+%F($sp)\nldt $%f%c,-56+%F($sp)\ncvtqs $f%c,$f%c\n" 3 +reg: CVIF8(reg) "stq $%0,-56+%F($sp)\nldt $%f%c,-56+%F($sp)\ncvtqt $f%c,$f%c\n" 3 +reg: CVIF4(INDIRI4(addr)) "lds $f%c,%0\ncvtlq $f%c,$f%c\ncvtqs $f%c,$f%c\n" 3 +reg: CVIF4(INDIRI8(addr)) "ldt $f%c,%0\ncvtqs $f%c,$f%c\n" 2 +reg: CVIF8(INDIRI4(addr)) "lds $f%c,%0\ncvtlq $f%c,$f%c\ncvtqt $f%c,$f%c\n" 3 +reg: CVIF8(INDIRI8(addr)) "ldt $f%c,%0\ncvtqt $f%c,$f%c\n" 2 + +reg: CVFI4(reg) "cvttqc $f%0,$f1\ncvtql $f1,$f1\nsts $f1,-56+%F($sp)\nldl $%c,-56+%F($sp)\n" 4 +reg: CVFI8(reg) "cvttqc $f%0,$f1\nstt $f1,-56+%F($sp)\nldq $%c,-56+%F($sp)\n" 3 + +stmt: LABELV "%a:\n" + +stmt: JUMPV(acon) "br %0\n" 1 +stmt: JUMPV(reg) "jmp ($%0)\n" 1 + +stmt: EQI4(reg,rc6) "cmpeq $%0,%1,$23\nbne $23,%a\n" 2 +stmt: EQU4(reg,rc6) "cmpeq $%0,%1,$23\nbne $23,%a\n" 2 +stmt: EQI8(reg,rc6) "cmpeq $%0,%1,$23\nbne $23,%a\n" 2 +stmt: EQU8(reg,rc6) "cmpeq $%0,%1,$23\nbne $23,%a\n" 2 +stmt: NEI4(reg,rc6) "cmpeq $%0,%1,$23\nbeq $23,%a\n" 2 +stmt: NEU4(reg,rc6) "cmpeq $%0,%1,$23\nbeq $23,%a\n" 2 +stmt: NEI8(reg,rc6) "cmpeq $%0,%1,$23\nbeq $23,%a\n" 2 +stmt: NEU8(reg,rc6) "cmpeq $%0,%1,$23\nbeq $23,%a\n" 2 +stmt: GEI4(reg,rc6) "cmplt $%0,%1,$23\nbeq $23,%a\n" 2 +stmt: GEI8(reg,rc6) "cmplt $%0,%1,$23\nbeq $23,%a\n" 2 +stmt: GEU4(reg,rc6) "cmpult $%0,%1,$23\nbeq $23,%a\n" 1 +stmt: GEU8(reg,rc6) "cmpult $%0,%1,$23\nbeq $23,%a\n" 1 +stmt: GTI4(reg,rc6) "cmple $%0,%1,$23\nbeq $23,%a\n" 2 +stmt: GTI8(reg,rc6) "cmple $%0,%1,$23\nbeq $23,%a\n" 2 +stmt: GTU4(reg,rc6) "cmpule $%0,%1,$23\nbeq $23,%a\n" 1 +stmt: GTU8(reg,rc6) "cmpule $%0,%1,$23\nbeq $23,%a\n" 1 +stmt: LEI4(reg,rc6) "cmple $%0,%1,$23\nbne $23,%a\n" 2 +stmt: LEI8(reg,rc6) "cmple $%0,%1,$23\nbne $23,%a\n" 2 +stmt: LEU4(reg,rc6) "cmpule $%0,%1,$23\nbne $23,%a\n" 2 +stmt: LEU8(reg,rc6) "cmpule $%0,%1,$23\nbne $23,%a\n" 2 +stmt: LTI4(reg,rc6) "cmplt $%0,%1,$23\nbne $23,%a\n" 2 +stmt: LTI8(reg,rc6) "cmplt $%0,%1,$23\nbne $23,%a\n" 2 +stmt: LTU4(reg,rc6) "cmpult $%0,%1,$23\nbne $23,%a\n" 2 +stmt: LTU8(reg,rc6) "cmpult $%0,%1,$23\nbne $23,%a\n" 2 + +stmt: EQF4(reg,reg) "cmpteq $f%0,$f%1,$f1\nfbne $f1,%a\n" 2 +stmt: EQF8(reg,reg) "cmpteq $f%0,$f%1,$f1\nfbne $f1,%a\n" 2 +stmt: LEF4(reg,reg) "cmptle $f%0,$f%1,$f1\nfbne $f1,%a\n" 2 +stmt: LEF8(reg,reg) "cmptle $f%0,$f%1,$f1\nfbne $f1,%a\n" 2 +stmt: LTF4(reg,reg) "cmptlt $f%0,$f%1,$f1\nfbne $f1,%a\n" 2 +stmt: LTF8(reg,reg) "cmptlt $f%0,$f%1,$f1\nfbne $f1,%a\n" 2 + +stmt: NEF4(reg,reg) "cmpteq $f%0,$f%1,$f1\nfbeq $f1,%a\n" 2 +stmt: NEF8(reg,reg) "cmpteq $f%0,$f%1,$f1\nfbeq $f1,%a\n" 2 +stmt: GEF4(reg,reg) "cmptlt $f%0,$f%1,$f1\nfbeq $f1,%a\n" 2 +stmt: GEF8(reg,reg) "cmptlt $f%0,$f%1,$f1\nfbeq $f1,%a\n" 2 +stmt: GTF4(reg,reg) "cmptle $f%0,$f%1,$f1\nfbeq $f1,%a\n" 2 +stmt: GTF8(reg,reg) "cmptle $f%0,$f%1,$f1\nfbeq $f1,%a\n" 2 + +ar: ADDRGP8 "%a" +ar: reg "($%0)" + +reg: CALLF4(ar) "jsr $26,%0\nldgp $gp,0($26)\n" 2 +reg: CALLF8(ar) "jsr $26,%0\nldgp $gp,0($26)\n" 2 +reg: CALLI4(ar) "jsr $26,%0\nldgp $gp,0($26)\n" 2 +reg: CALLI8(ar) "jsr $26,%0\nldgp $gp,0($26)\n" 2 +reg: CALLP8(ar) "jsr $26,%0\nldgp $gp,0($26)\n" 2 +reg: CALLU4(ar) "jsr $26,%0\nldgp $gp,0($26)\n" 2 +reg: CALLU8(ar) "jsr $26,%0\nldgp $gp,0($26)\n" 2 +stmt: CALLV(ar) "jsr $26,%0\nldgp $gp,0($26)\n" 2 + +stmt: RETF4(reg) "# ret\n" 1 +stmt: RETF8(reg) "# ret\n" 1 +stmt: RETI4(reg) "# ret\n" 1 +stmt: RETU4(reg) "# ret\n" 1 +stmt: RETI8(reg) "# ret\n" 1 +stmt: RETU8(reg) "# ret\n" 1 +stmt: RETP8(reg) "# ret\n" 1 +stmt: RETV(reg) "# ret\n" 1 + +stmt: ARGF4(reg) "# arg\n" 1 +stmt: ARGF8(reg) "# arg\n" 1 +stmt: ARGI4(reg) "# arg\n" 1 +stmt: ARGI8(reg) "# arg\n" 1 +stmt: ARGP8(reg) "# arg\n" 1 +stmt: ARGU4(reg) "# arg\n" 1 +stmt: ARGU8(reg) "# arg\n" 1 + +stmt: ARGB(INDIRB(reg)) "# argb %0\n" 1 +stmt: ASGNB(reg,INDIRB(reg)) "# asgnb %0 %1\n" 1 + +%% +static void progend(void){} + +static void progbeg(int argc, char *argv[]) { + int i; + + { + union { + char c; + int i; + } u; + u.i = 0; + u.c = 1; + swap = ((int)(u.i == 1)) != IR->little_endian; + } + parseflags(argc, argv); + + for (i = 0; i < 32; i++) + freg[i] = mkreg("%d", i, 1, FREG); + for (i = 0; i < 32; i++) + ireg[i] = mkreg("%d", i, 1, IREG); + ireg[29]->x.name = "gp"; + ireg[30]->x.name = "sp"; + fregw = mkwildcard(freg); + iregw = mkwildcard(ireg); + + tmask[IREG] = INTTMP; tmask[FREG] = FLTTMP; + vmask[IREG] = INTVAR; vmask[FREG] = FLTVAR; + + blkreg = mkreg("1", 1, 0xf, IREG); + +} + +static Symbol rmap(int opk) { + switch (optype(opk)) { + case I: case U: case P: case B: + return iregw; + case F: + return fregw; + default: + return 0; + } +} + +static Symbol argreg(int offset, int ty) { + if (offset >= 48) + return NULL; + else if (ty == F) + return freg[(offset/8) + 16]; + else + return ireg[(offset/8) + 16]; +} + +static void target(Node p) { + assert(p); + switch (specific(p->op)) { + case CNST+I: case CNST+U: case CNST+P: + if (range(p, 0, 0) == 0) { + setreg(p, ireg[31]); + p->x.registered = 1; + } + break; + case CNST+F: + if (p->syms[0]->u.c.v.d == 0) { + setreg(p, freg[31]); + p->x.registered = 1; + } + break; + + case CALL+V: + rtarget(p, 0, ireg[27]); + break; + case CALL+F: + rtarget(p, 0, ireg[27]); + setreg(p, freg[0]); + break; + case CALL+I: case CALL+P: case CALL+U: + rtarget(p, 0, ireg[27]); + setreg(p, ireg[0]); + break; + case RET+F: + rtarget(p, 0, freg[0]); + break; + case RET+I: case RET+U: case RET+P: + rtarget(p, 0, ireg[0]); + break; + + case ARG+F: case ARG+I: case ARG+P: case ARG+U: { + Symbol q = argreg(p->syms[2]->u.c.v.i, optype(p->op)); + if (q) + rtarget(p, 0, q); + break; + } + + + case ASGN+B: rtarget(p->kids[1], 0, blkreg); break; + case ARG+B: rtarget(p->kids[0], 0, blkreg); break; + + } +} + +static void clobber(Node p) { + assert(p); + switch (specific(p->op)) { + case ASGN+I: case ASGN+U: + if (opsize(p->op) <= 2) + spill(1<<24, IREG, p); + break; + + case DIV+I: case DIV+U: case MOD+I: case MOD+U: + spill(((1<<27)|(3<<24))&~p->syms[RX]->x.regnode->mask, IREG, p); + break; + + case CALL+F: + spill(INTTMP | INTRET, IREG, p); + spill(FLTTMP, FREG, p); + break; + case CALL+I: case CALL+P: case CALL+U: + spill(INTTMP, IREG, p); + spill(FLTTMP | FLTRET, FREG, p); + break; + case CALL+V: + spill(INTTMP | INTRET, IREG, p); + spill(FLTTMP | FLTRET, FREG, p); + break; + + } +} + +static void emit2(Node p) { + int dst, n, src, sz, ty; + static int ty0; + Symbol q; + + switch (specific(p->op)) { + case ARG+F: case ARG+I: case ARG+P: case ARG+U: + ty = optype(p->op); + sz = opsize(p->op); + q = argreg(p->syms[2]->u.c.v.i, ty); + src = getregnum(p->x.kids[0]); + if (q) + break; + else if (ty == F && sz == 4) + print("sts $f%d,%d($sp)\n", src, p->syms[2]->u.c.v.i - 48); + else if (ty == F && sz == 8) + print("stt $f%d,%d($sp)\n", src, p->syms[2]->u.c.v.i - 48); + else if (sz == 4) + print("stq $%d,%d($sp)\n", src, p->syms[2]->u.c.v.i - 48); + else if (sz == 8) + print("stq $%d,%d($sp)\n", src, p->syms[2]->u.c.v.i - 48); + else + assert(0); + break; + + case ASGN+B: + dalign = salign = p->syms[1]->u.c.v.i; + blkcopy(getregnum(p->x.kids[0]), 0, + getregnum(p->x.kids[1]), 0, + p->syms[0]->u.c.v.i, tmpregs); + break; + + + case ARG+B: { + int doff = p->syms[2]->u.c.v.i, soff = 0, sreg = getregnum(p->x.kids[0]); + dalign = 8; + salign = p->syms[1]->u.c.v.i; + n = p->syms[0]->u.c.v.i; + for ( ; doff <= 40 && n > 0; doff += 8) { + print("uldq $%d,%d($%d)\n", (doff/8)+16, soff, sreg); + soff += 8; + n -= 8; + } + if (n > 0) + blkcopy(30, doff - 48, sreg, soff, n, tmpregs); + break; + } + + } +} + +static void doarg(Node p) { + p->syms[2] = intconst(mkactual(8, roundup(p->syms[0]->u.c.v.i,8))); +} + +static void local(Symbol p) { + if (askregvar(p, rmap(ttob(p->type))) == 0) + mkauto(p); +} + +static int bitcount(unsigned mask) { + unsigned i, n = 0; + + for (i = 1; i; i <<= 1) + if (mask&i) + n++; + return n; +} + +static void function(Symbol f, Symbol caller[], Symbol callee[], int ncalls) { + int i, sizeargs, saved, sizefsave, sizeisave, varargs; + Symbol r, argregs[6]; + + usedmask[0] = usedmask[1] = 0; + freemask[0] = freemask[1] = ~(unsigned)0; + maxargoffset = offset = maxoffset = 0; + + for (i = 0; callee[i]; i++) + ; + varargs = variadic(f->type) + || i > 0 && strcmp(callee[i-1]->name, "va_alist") == 0; + if (varargs) + sizeargs = 2*48; + else + sizeargs = 48; + + for (i = 0; callee[i]; i++) { + Symbol p = callee[i]; + Symbol q = caller[i]; + assert(q); + if (isfloat(p->type) && varargs) { + p->x.offset = q->x.offset = offset - 2*48; + p->x.name = q->x.name = stringd(offset - 2*48); + } else { + p->x.offset = q->x.offset = offset - 48; + p->x.name = q->x.name = stringd(offset - 48); + } + offset = roundup(offset, q->type->align); + r = argreg(offset, optype(ttob(q->type))); + if (i < 6) + argregs[i] = r; + offset = roundup(offset + q->type->size, 8); + if (varargs) + p->sclass = AUTO; + else if (r && ncalls == 0 && !isstruct(q->type) && !p->addressed +) { + p->sclass = q->sclass = REGISTER; + askregvar(p, r); + assert(p->x.regnode && p->x.regnode->vbl == p); + q->x = p->x; + q->type = p->type; + } else if (askregvar(p, rmap(ttob(p->type))) + && r != NULL /* + && (isint(p->type) || p->type == q->type) */ +) { + assert(q->sclass != REGISTER); + p->sclass = q->sclass = REGISTER; + q->type = p->type; + } + + } + assert(!caller[i]); + + offset = sizeargs + 8; + gencode(caller, callee); + usedmask[IREG] &= ~(INTTMP|(0x3f<<16)|INTRET); + usedmask[FREG] &= ~(FLTTMP|(0x3f<<16)|FLTRET); + if (ncalls || usedmask[IREG] || usedmask[FREG]) + usedmask[IREG] |= 1<<26; + sizefsave = 8*bitcount(usedmask[FREG]); + sizeisave = 8*bitcount(usedmask[IREG]); + if (maxargoffset > 48) + maxargoffset -= 48; + else + maxargoffset = 0; + if (maxoffset < sizeargs) + maxoffset = sizeargs; + framesize = roundup(maxargoffset + sizefsave + sizeisave + maxoffset, 16); + segment(CODE); + print(".ent %s\n", f->x.name); + print("%s:\n", f->x.name); + print("ldgp $gp,0($27)\n"); + i = maxargoffset + sizefsave - framesize; + if (framesize > 0) + print("lda $sp,%d($sp)\n", -framesize); + if (usedmask[FREG]) + print(".fmask 0x%x,%d\n", usedmask[FREG], i - 8); + if (usedmask[IREG]) + print(".mask 0x%x,%d\n", usedmask[IREG], i + sizeisave - 8); + print(".frame $sp,%d,$26,%d\n", framesize, sizeargs); + + saved = maxargoffset; + for (i = 2; i <= 9; i++) + if (usedmask[FREG]&(1<x.regnode != callee[i]->x.regnode) { + Symbol out = callee[i]; + Symbol in = caller[i]; + int rn = r->x.regnode->number; + int rs = r->x.regnode->set; + int tyin = ttob(in->type); + + assert(out && in && r && r->x.regnode); + assert(out->sclass != REGISTER || out->x.regnode); + if (out->sclass == REGISTER) { + if (rs == FREG) + print("fmov $f%d,$f%d\n", rn, out->x.regnode->number); + else + print("mov $%d,$%d\n", rn, out->x.regnode->number); + + } else { + int off = in->x.offset + framesize; + if (rs == FREG && tyin == F+sizeop(8)) + print("stt $f%d,%d($sp)\n", rn, off); + else if (rs == FREG && tyin == F+sizeop(4)) + print("sts $f%d,%d($sp)\n", rn, off); + else { + int i, n = (in->type->size + 7)/8; + for (i = rn; i < rn+n && i <= 21; i++) + print("stq $%d,%d($sp)\n", i, off + (i-rn)*8); + } + + } + + } + } + if (varargs && callee[i-1]) { + i = callee[i-1]->x.offset + roundup(callee[i-1]->type->size, 8); + for (i = (48+i)/8; i < 6; i++) { + print("stq $%d,%d($sp)\n", i + 16, framesize - 48 + 8*i); + print("stt $f%d,%d($sp)\n", i + 16, framesize - 2*48 + 8*i); + } + } + print(".prologue 1\n"); + + emitcode(); + saved = maxargoffset; + for (i = 2; i <= 9; i++) + if (usedmask[FREG]&(1< 0) + print("lda $sp,%d($sp)\n", framesize); + print("ret\n"); + print(".end %s\n", f->x.name); + +} + +static void defconst(int suffix, int size, Value v) { + if (suffix == F && size == 4) { + float f = v.d; + print(".long 0x%x\n", *(unsigned *)&f); + } else if (suffix == F && size == 8) { + double d = v.d; + unsigned *p = (unsigned *)&d; + print(".long 0x%x\n.long 0x%x\n", p[swap], p[!swap]); + } else if (suffix == P) + print(".quad 0x%X\n", v.p); + else if (size == 1) + print(".byte 0x%x\n", suffix == I ? v.i : v.u); + else if (size == 2) + print(".word 0x%x\n", suffix == I ? v.i&0xFFFF : v.u&0xFFFF); + else if (size == 4) + print(".long 0x%x\n", suffix == I ? v.i : v.u); + else if (size == 8) + print(".quad 0x%X\n", suffix == I ? v.i : v.u); + +} + +static void defaddress(Symbol p) { + print(".quad %s\n", p->x.name); +} + +static void defstring(int n, char *str) { + char *s; + + for (s = str; s < str + n; s++) + print(".byte %d\n", (*s)&0377); +} + +static void export(Symbol p) { + print(".globl %s\n", p->x.name); +} + +static void import(Symbol p) { + if (!isfunc(p->type)) + print(".extern %s %d\n", p->name, p->type->size); +} + +static void defsymbol(Symbol p) { + if (p->scope >= LOCAL && p->sclass == STATIC) + p->x.name = stringf("L.%d", genlabel(1)); + else if (p->generated) + p->x.name = stringf("L.%s", p->name); + else + assert(p->scope != CONSTANTS || isint(p->type) || isptr(p->type)), + p->x.name = p->name; +} + +static void address(Symbol q, Symbol p, long n) { + if (p->scope == GLOBAL + || p->sclass == STATIC || p->sclass == EXTERN) + q->x.name = stringf("%s%s%D", p->x.name, + n >= 0 ? "+" : "", n); + else { + assert(n <= INT_MAX && n >= INT_MIN); + q->x.offset = p->x.offset + n; + q->x.name = stringd(q->x.offset); + } +} + +static void global(Symbol p) { + if (p->u.seg == DATA || p->u.seg == LIT) { + assert(p->type->align <= 8); + print(".align %c\n", ".01.2...3"[p->type->align]); + print("%s:\n", p->x.name); + } else if (p->sclass == STATIC || Aflag >= 2) + print(".lcomm %s,%d\n", p->x.name, p->type->size); + else + print( ".comm %s,%d\n", p->x.name, p->type->size); +} + +static void segment(int n) { + cseg = n; + switch (n) { + case DATA: print(".sdata\n"); break; + case CODE: print(".text\n"); break; + case LIT: print(".rdata\n"); break; + } +} + +static void space(int n) { + if (cseg != BSS) + print(".space %d\n", n); +} + +static void blkloop(int dreg, int doff, int sreg, int soff, int size, int tmps[]) { + int lab = genlabel(1); + + print("addq $%d,%d,$%d\n", sreg, size&~7, sreg); + print("addq $%d,%d,$%d\n", dreg, size&~7, tmps[2]); + blkcopy(tmps[2], doff, sreg, soff, size&7, tmps); + print("L.%d:\n", lab); + print("addq $%d,%d,$%d\n", sreg, -8, sreg); + print("addq $%d,%d,$%d\n", tmps[2], -8, tmps[2]); + blkcopy(tmps[2], doff, sreg, soff, 8, tmps); + print("cmpult $%d,$%d,$23\nbne $23,L.%d\n", dreg, tmps[2], lab); +} + +static void blkfetch(int size, int off, int reg, int tmp) { + assert(size == 1 || size == 2 || size == 4 || size == 8); + if (size == 1) + print("ldb $%d,%d($%d)\n", tmp, off, reg); + else if (size == 2) + print("ldw $%d,%d($%d)\n", tmp, off, reg); + else if (salign >= size && size == 4) + print("ldl $%d,%d($%d)\n", tmp, off, reg); + else if (salign >= size && size == 8) + print("ldq $%d,%d($%d)\n", tmp, off, reg); + else if (size == 4) + print("uldl $%d,%d($%d)\n", tmp, off, reg); + else + print("uldq $%d,%d($%d)\n", tmp, off, reg); +} + +static void blkstore(int size, int off, int reg, int tmp) { + assert(size == 1 || size == 2 || size == 4 || size == 8); + if (size == 1) + print("stb $%d,%d($%d)\n", tmp, off, reg); + else if (size == 2) + print("stw $%d,%d($%d)\n", tmp, off, reg); + else if (dalign >= size && size == 4) + print("stl $%d,%d($%d)\n", tmp, off, reg); + else if (dalign >= size && size == 8) + print("stq $%d,%d($%d)\n", tmp, off, reg); + else if (size == 4) + print("ustl $%d,%d($%d)\n", tmp, off, reg); + else + print("ustq $%d,%d($%d)\n", tmp, off, reg); +} + +/* stabinit - initialize stab output */ +static void stabinit(char *file, int argc, char *argv[]) { + if (file) { + print(".file 2,\"%s\"\n", file); + currentfile = file; + } +} + +/* stabline - emit stab entry for source coordinate *cp */ +static void stabline(Coordinate *cp) { + if (cp->file && cp->file != currentfile) { + print(".file 2,\"%s\"\n", cp->file); + currentfile = cp->file; + } + print(".loc 2,%d\n", cp->y); +} + +/* stabsym - output a stab entry for symbol p */ +static void stabsym(Symbol p) { + if (p == cfunc && IR->stabline) + (*IR->stabline)(&p->src); +} +Interface alphaIR = { + 1, 1, 0, /* char */ + 2, 2, 0, /* short */ + 4, 4, 0, /* int */ + 8, 8, 0, /* long */ + 8, 8, 0, /* long long */ + 4, 4, 1, /* float */ + 8, 8, 1, /* double */ + 8, 8, 1, /* long double */ + 8, 8, 0, /* T * */ + 0, 1, 0, /* struct */ + + 1, /* little_endian */ + 0, /* mulops_calls */ + 0, /* wants_callb */ + 1, /* wants_argb */ + 1, /* left_to_right */ + 0, /* wants_dag */ + 0, /* unsigned_char */ + address, + blockbeg, + blockend, + defaddress, + defconst, + defstring, + defsymbol, + emit, + export, + function, + gen, + global, + import, + local, + progbeg, + progend, + segment, + space, + 0, 0, 0, stabinit, stabline, stabsym, 0, + { + 1, /* max_unaligned_load */ + rmap, + blkfetch, blkstore, blkloop, + _label, + _rule, + _nts, + _kids, + _string, + _templates, + _isinstruction, + _ntname, + emit2, + doarg, + target, + clobber, + + } + +}; + + +static char rcsid[] = "$Id: alpha.md 145 2001-10-17 21:53:10Z timo $"; + diff --git a/code/tools/lcc/src/asdl.c b/code/tools/lcc/src/asdl.c new file mode 100644 index 0000000..bb22c89 --- /dev/null +++ b/code/tools/lcc/src/asdl.c @@ -0,0 +1,399 @@ +#include "c.h" +#include "rcc.h" +#if WIN32 +#include +#include +#endif + + +static list_ty interfaces; +static rcc_program_ty pickle; + +char *string(const char *str) { + return (char *)Atom_string(str); +} + +char *stringd(long n) { + return (char *)Atom_int(n); +} + +char *stringn(const char *str, int len) { + return (char *)Atom_new(str, len); +} + +static void put(rcc_interface_ty node) { + Seq_addhi(interfaces, node); +} + +static int typeuid(Type ty) { + rcc_type_ty type; + + assert(ty); + if (ty->x.typeno != 0) + return ty->x.typeno; + ty->x.typeno = pickle->nuids++; + switch (ty->op) { +#define xx(op) case op: type = rcc_##op(ty->size, ty->align); break + xx(INT); + xx(UNSIGNED); + xx(FLOAT); + xx(VOID); +#undef xx +#define xx(op) case op: type = rcc_##op(ty->size, ty->align, typeuid(ty->type)); break + xx(POINTER); + xx(ARRAY); + xx(CONST); + xx(VOLATILE); +#undef xx + case CONST+VOLATILE: + type = rcc_CONST(ty->size, ty->align, typeuid(ty->type)); + break; + case ENUM: { + list_ty ids = Seq_new(0); + int i; + for (i = 0; ty->u.sym->u.idlist[i] != NULL; i++) + Seq_addhi(ids, rcc_enum_(ty->u.sym->u.idlist[i]->name, + ty->u.sym->u.idlist[i]->u.value)); + assert(i > 0); + type = rcc_ENUM(ty->size, ty->align, ty->u.sym->name, ids); + break; + } + case STRUCT: case UNION: { + list_ty fields = Seq_new(0); + Field p = fieldlist(ty); + for ( ; p != NULL; p = p->link) + Seq_addhi(fields, rcc_field(p->name, typeuid(p->type), p->offset, p->bitsize, p->lsb)); + if (ty->op == STRUCT) + type = rcc_STRUCT(ty->size, ty->align, ty->u.sym->name, fields); + else + type = rcc_UNION (ty->size, ty->align, ty->u.sym->name, fields); + break; + } + case FUNCTION: { + list_ty formals = Seq_new(0); + if (ty->u.f.proto != NULL && ty->u.f.proto[0] != NULL) { + int i; + for (i = 0; ty->u.f.proto[i] != NULL; i++) + Seq_addhi(formals, to_generic_int(typeuid(ty->u.f.proto[i]))); + } else if (ty->u.f.proto != NULL && ty->u.f.proto[0] == NULL) + Seq_addhi(formals, to_generic_int(typeuid(voidtype))); + type = rcc_FUNCTION(ty->size, ty->align, typeuid(ty->type), formals); + break; + } + default: assert(0); + } + Seq_addhi(pickle->items, rcc_Type(ty->x.typeno, type)); + return ty->x.typeno; +} + +static int symboluid(Symbol p) { + assert(p); + assert(p->scope != CONSTANTS && p->scope != LABELS); + if (p->x.offset == 0) + p->x.offset = pickle->nuids++; + return p->x.offset; +} + +static rcc_symbol_ty mk_symbol(Symbol p) { + int flags = 0, ref = 10000*p->ref; + + if (p->ref > 0 && ref == 0) + ref++; +#define xx(f,n) flags |= p->f<name, typeuid(p->type), p->scope, p->sclass, ref, flags); +} + +static rcc_real_ty mk_real(int size, Value v) { + unsigned *p = (unsigned *)&v.d; + return rcc_real(p[swap], p[1-swap]); +} + +static void asdl_segment(int n) { + static int cseg; + + if (cseg != n) + put(rcc_Segment(cseg = n)); +} + +static void asdl_address(Symbol q, Symbol p, long n) { + assert(q->x.offset == 0); + put(rcc_Address(symboluid(q), mk_symbol(q), symboluid(p), n)); +} + +static void asdl_blockbeg(Env *e) { + put(rcc_Blockbeg()); +} + +static void asdl_blockend(Env *e) { + put(rcc_Blockend()); +} + +static void asdl_defaddress(Symbol p) { + if (p->scope == LABELS) + put(rcc_Deflabel(p->u.l.label)); + else + put(rcc_Defaddress(symboluid(p))); +} + +static void asdl_defconst(int suffix, int size, Value v) { + switch (suffix) { + case I: put(rcc_Defconst(suffix, size, v.i)); return; + case U: put(rcc_Defconst(suffix, size, v.u)); return; + case P: put(rcc_Defconst(suffix, size, (unsigned long)v.p)); return; /* FIXME */ + case F: put(rcc_Defconstf(size, mk_real(size, v))); return; + assert(0); + } +} + +static void asdl_defstring(int len, char *str) { + put(rcc_Defstring(Text_box(stringn(str, len), len))); +} + +static void asdl_defsymbol(Symbol p) { + if (p->scope >= GLOBAL) + symboluid(p); +} + +static Symbol temps; + +static rcc_node_ty visit(Node p) { + Symbol q; + rcc_node_ty left = NULL, right = NULL; + int suffix = optype(p->op), size = opsize(p->op); + + assert(p); + for (q = temps; q; q = q->u.t.next) + if (q->u.t.cse == p) { + q->u.t.cse = NULL; + return rcc_CSE(0, 0, symboluid(q), visit(p)); + } + if (p->kids[0] != NULL) + left = visit(p->kids[0]); + if (p->kids[1] != NULL) + right = visit(p->kids[1]); + switch (specific(p->op)) { + case CNST+F: + assert(p->syms[0]); + return rcc_CNSTF(suffix, size, mk_real(size, p->syms[0]->u.c.v)); + case CALL+B: + assert(p->syms[0]); + assert(p->syms[0]->type); + return rcc_CALLB(suffix, size, left, right, typeuid(p->syms[0]->type)); + case RET+V: + return rcc_RET(suffix, size); + case LABEL+V: + assert(p->syms[0]); + return rcc_LABEL(suffix, size, p->syms[0]->u.l.label); + } + switch (generic(p->op)) { + case CNST: + assert(p->syms[0]); + return rcc_CNST(suffix, size, p->syms[0]->u.c.v.i); /* FIXME */ + case ARG: + assert(p->syms[0]); + return rcc_ARG(suffix, size, left, p->syms[0]->u.c.v.i, p->syms[1]->u.c.v.i); + case ASGN: + assert(p->syms[0]); + assert(p->syms[1]); + return rcc_ASGN(suffix, size, left, right, p->syms[0]->u.c.v.i, p->syms[1]->u.c.v.i); + case CVF: case CVI: case CVP: case CVU: + assert(p->syms[0]); + return rcc_CVT(suffix, size, generic(p->op), left, p->syms[0]->u.c.v.i); + case CALL: + assert(p->syms[0]); + assert(p->syms[0]->type); + return rcc_CALL(suffix, size, left, typeuid(p->syms[0]->type)); +#define xx(op) case op: return rcc_##op(suffix, size, symboluid(p->syms[0])) + xx(ADDRG); + xx(ADDRF); +#undef xx + case ADDRL: + if (!p->syms[0]->defined) + (*IR->local)(p->syms[0]); + p->syms[0]->defined = 1; + return rcc_ADDRL(suffix, size, symboluid(p->syms[0])); + case JUMP: + if (p->syms[0] != NULL) + return rcc_BRANCH(suffix, size, p->syms[0]->u.l.label); + return rcc_Unary(suffix, size, generic(p->op), left); + case INDIR: case RET: case NEG: case BCOM: + return rcc_Unary(suffix, size, generic(p->op), left); + case BOR: case BAND: case BXOR: case RSH: case LSH: + case ADD: case SUB: case DIV: case MUL: case MOD: + return rcc_Binary(suffix, size, generic(p->op), left, right); + case EQ: case NE: case GT: case GE: case LE: case LT: + assert(p->syms[0]); + return rcc_Compare(suffix, size, generic(p->op), left, right, p->syms[0]->u.l.label); + } + assert(0); + return NULL; +} + +static void asdl_emit(Node p) {} + +static void asdl_local(Symbol p) { + assert(p->x.offset == 0); + put(rcc_Local(symboluid(p), mk_symbol(p))); + if (p->temporary && p->u.t.cse) { + p->u.t.next = temps; + temps = p; + } +} + +static Symbol pending = NULL; + +static void dopending(Symbol p) { + if (pending != NULL) { + int uid = symboluid(pending); + rcc_symbol_ty symbol = mk_symbol(pending); + Seq_addhi(pickle->items, rcc_Symbol(uid, symbol)); + } + pending = p; +} + + +static void asdl_export(Symbol p) { + put(rcc_Export(symboluid(p))); +} + +static void asdl_function(Symbol f, Symbol caller[], Symbol callee[], int ncalls) { + list_ty codelist = Seq_new(0), save, calleelist = Seq_new(0), callerlist = Seq_new(0); + int i; + + dopending(f); + for (i = 0; caller[i] != NULL; i++) { + asdl_local(caller[i]); + Seq_addhi(callerlist, to_generic_int(symboluid(caller[i]))); + } + for (i = 0; callee[i] != NULL; i++) { + asdl_local(callee[i]); + Seq_addhi(calleelist, to_generic_int(symboluid(callee[i]))); + } + save = interfaces; + interfaces = codelist; + gencode(caller, callee); + asdl_segment(CODE); + emitcode(); + interfaces = save; + put(rcc_Function(symboluid(f), callerlist, calleelist, ncalls, codelist)); +} + +static Node asdl_gen(Node p) { + Node q; + list_ty forest = Seq_new(0); + + for (q = p; p != NULL; p = p->link) + if (specific(p->op) == JUMP+V && specific(p->kids[0]->op) == ADDRG+P + && p->kids[0]->syms[0]->scope == LABELS) { + p->syms[0] = p->kids[0]->syms[0]; + p->kids[0] = NULL; + } + for (p = q; p != NULL; p = p->link) + Seq_addhi(forest, visit(p)); + put(rcc_Forest(forest)); + temps = NULL; + return q; +} + +static void asdl_global(Symbol p) { + dopending(p); + put(rcc_Global(symboluid(p), p->u.seg)); +} + +static void asdl_import(Symbol p) { + dopending(p); + put(rcc_Import(symboluid(p))); +} + +static void asdl_progbeg(int argc, char *argv[]) { + int i; + +#if WIN32 + _setmode(_fileno(stdout), _O_BINARY); +#endif + pickle = rcc_program(1, 0, Seq_new(0), Seq_new(0), argc, Seq_new(0)); + for (i = 0; i < argc; i++) + Seq_addhi(pickle->argv, to_generic_string(Text_box(argv[i], strlen(argv[i]) + 1))); + interfaces = pickle->interfaces; +} + +static int checkuid(list_ty list) { + int i, n = 0, count = Seq_length(list); + + for (i = 0; i < count; i++) { + rcc_interface_ty in = Seq_get(list, i); + if (in->kind == rcc_Local_enum + || in->kind == rcc_Address_enum) + n++; + else if (in->kind == rcc_Function_enum) + n += checkuid(in->v.rcc_Function.codelist); + } + return n; +} + +static void asdl_progend(void) { + dopending(NULL); + { + int n = checkuid(pickle->interfaces) + Seq_length(pickle->items); + if (n != pickle->nuids - 1) + fprintf(stderr, "?bogus uid count: have %d should have %d\n", + n, pickle->nuids-1); + } + pickle->nlabels = genlabel(0); + write_int((int)(100*(assert(strstr(rcsid, ",v")), strtod(strstr(rcsid, ",v")+2, NULL)) +), stdout); + rcc_write_program(pickle, stdout); +} +static void asdl_space(int n) { + put(rcc_Space(n)); +} + +void asdl_init(int argc, char *argv[]) { + int i; + static int inited; + + if (inited) + return; + inited = 1; + for (i = 1; i < argc; i++) + if (strcmp(argv[i], "-asdl") == 0) { +#define xx(f) IR->f = asdl_##f + xx(address); + xx(blockbeg); + xx(blockend); + xx(defaddress); + xx(defconst); + xx(defstring); + xx(defsymbol); + xx(emit); + xx(export); + xx(function); + xx(gen); + xx(global); + xx(import); + xx(local); + xx(progbeg); + xx(progend); + xx(segment); + xx(space); +#undef xx +#define xx(f) IR->f = 0 + xx(stabblock); + xx(stabend); + xx(stabfend); + xx(stabinit); + xx(stabline); + xx(stabsym); + xx(stabtype); +#undef xx + IR->wants_dag = 0; + prunetemps = 0; /* pass2 prunes useless temps */ + assignargs = 0; /* pass2 generates caller to callee assignments */ + } +} diff --git a/code/tools/lcc/src/bind.c b/code/tools/lcc/src/bind.c new file mode 100644 index 0000000..c27036f --- /dev/null +++ b/code/tools/lcc/src/bind.c @@ -0,0 +1,23 @@ +#include "c.h" +extern Interface alphaIR; +extern Interface mipsebIR, mipselIR; +extern Interface sparcIR, solarisIR; +extern Interface x86IR, x86linuxIR; +extern Interface symbolicIR, symbolic64IR; +extern Interface nullIR; +extern Interface bytecodeIR; +Binding bindings[] = { + /*{ "alpha/osf", &alphaIR },*/ + /*{ "mips/irix", &mipsebIR },*/ + /*{ "mips/ultrix", &mipselIR },*/ + /*{ "sparc/sun", &sparcIR },*/ + /*{ "sparc/solaris", &solarisIR },*/ + /*{ "x86/win32", &x86IR },*/ + /*{ "x86/linux", &x86linuxIR },*/ + { "symbolic/osf", &symbolic64IR }, + { "symbolic/irix", &symbolicIR }, + { "symbolic", &symbolicIR }, + { "null", &nullIR }, + { "bytecode", &bytecodeIR }, + { NULL, NULL }, +}; diff --git a/code/tools/lcc/src/bytecode.c b/code/tools/lcc/src/bytecode.c new file mode 100644 index 0000000..b267d6f --- /dev/null +++ b/code/tools/lcc/src/bytecode.c @@ -0,0 +1,365 @@ +#include "c.h" +#define I(f) b_##f + + +static void I(segment)(int n) { + static int cseg; + + if (cseg != n) + switch (cseg = n) { + case CODE: print("code\n"); return; + case DATA: print("data\n"); return; + case BSS: print("bss\n"); return; + case LIT: print("lit\n"); return; + default: assert(0); + } +} + +static void I(address)(Symbol q, Symbol p, long n) { + q->x.name = stringf("%s%s%D", p->x.name, n > 0 ? "+" : "", n); +} + +static void I(defaddress)(Symbol p) { + print("address %s\n", p->x.name); +} + +static void I(defconst)(int suffix, int size, Value v) { + switch (suffix) { + case I: + if (size > sizeof (int)) + print("byte %d %D\n", size, v.i); + else + print("byte %d %d\n", size, v.i); + return; + case U: + if (size > sizeof (unsigned)) + print("byte %d %U\n", size, v.u); + else + print("byte %d %u\n", size, v.u); + return; + case P: print("byte %d %U\n", size, (unsigned long)v.p); return; + case F: + if (size == 4) { + float f = v.d; + print("byte 4 %u\n", *(unsigned *)&f); + } else { + unsigned *p = (unsigned *)&v.d; + print("byte 4 %u\n", p[swap]); + print("byte 4 %u\n", p[1 - swap]); + } + return; + } + assert(0); +} + +static void I(defstring)(int len, char *str) { + char *s; + + for (s = str; s < str + len; s++) + print("byte 1 %d\n", (*s)&0377); +} + +static void I(defsymbol)(Symbol p) { + if (p->scope == CONSTANTS) + switch (optype(ttob(p->type))) { + case I: p->x.name = stringf("%D", p->u.c.v.i); break; + case U: p->x.name = stringf("%U", p->u.c.v.u); break; + case P: p->x.name = stringf("%U", p->u.c.v.p); break; + case F: + { // JDC: added this to get inline floats + unsigned temp; + + *(float *)&temp = p->u.c.v.d; + p->x.name = stringf("%U", temp ); + } + break;// JDC: added this + default: assert(0); + } + else if (p->scope >= LOCAL && p->sclass == STATIC) + p->x.name = stringf("$%d", genlabel(1)); + else if (p->scope == LABELS || p->generated) + p->x.name = stringf("$%s", p->name); + else + p->x.name = p->name; +} + +static void dumptree(Node p) { + switch (specific(p->op)) { + case ASGN+B: + assert(p->kids[0]); + assert(p->kids[1]); + assert(p->syms[0]); + dumptree(p->kids[0]); + dumptree(p->kids[1]); + print("%s %d\n", opname(p->op), p->syms[0]->u.c.v.u); + return; + case RET+V: + assert(!p->kids[0]); + assert(!p->kids[1]); + print("%s\n", opname(p->op)); + return; + } + switch (generic(p->op)) { + case CNST: case ADDRG: case ADDRF: case ADDRL: case LABEL: + assert(!p->kids[0]); + assert(!p->kids[1]); + assert(p->syms[0] && p->syms[0]->x.name); + print("%s %s\n", opname(p->op), p->syms[0]->x.name); + return; + case CVF: case CVI: case CVP: case CVU: + assert(p->kids[0]); + assert(!p->kids[1]); + assert(p->syms[0]); + dumptree(p->kids[0]); + print("%s %d\n", opname(p->op), p->syms[0]->u.c.v.i); + return; + case ARG: case BCOM: case NEG: case INDIR: case JUMP: case RET: + assert(p->kids[0]); + assert(!p->kids[1]); + dumptree(p->kids[0]); + print("%s\n", opname(p->op)); + return; + case CALL: + assert(p->kids[0]); + assert(!p->kids[1]); + assert(optype(p->op) != B); + dumptree(p->kids[0]); + print("%s\n", opname(p->op)); + if ( !p->count ) { printf("pop\n"); }; // JDC + return; + case ASGN: case BOR: case BAND: case BXOR: case RSH: case LSH: + case ADD: case SUB: case DIV: case MUL: case MOD: + assert(p->kids[0]); + assert(p->kids[1]); + dumptree(p->kids[0]); + dumptree(p->kids[1]); + print("%s\n", opname(p->op)); + return; + case EQ: case NE: case GT: case GE: case LE: case LT: + assert(p->kids[0]); + assert(p->kids[1]); + assert(p->syms[0]); + assert(p->syms[0]->x.name); + dumptree(p->kids[0]); + dumptree(p->kids[1]); + print("%s %s\n", opname(p->op), p->syms[0]->x.name); + return; + } + assert(0); +} + +static void I(emit)(Node p) { + for (; p; p = p->link) + dumptree(p); +} + +static void I(export)(Symbol p) { + print("export %s\n", p->x.name); +} + +static void I(function)(Symbol f, Symbol caller[], Symbol callee[], int ncalls) { + int i; + + (*IR->segment)(CODE); + offset = 0; + for (i = 0; caller[i] && callee[i]; i++) { + offset = roundup(offset, caller[i]->type->align); + caller[i]->x.name = callee[i]->x.name = stringf("%d", offset); + caller[i]->x.offset = callee[i]->x.offset = offset; + offset += caller[i]->type->size; + } + maxargoffset = maxoffset = argoffset = offset = 0; + gencode(caller, callee); + print("proc %s %d %d\n", f->x.name, maxoffset, maxargoffset); + emitcode(); + print("endproc %s %d %d\n", f->x.name, maxoffset, maxargoffset); + +} + +static void gen02(Node p) { + assert(p); + if (generic(p->op) == ARG) { + assert(p->syms[0]); + argoffset += (p->syms[0]->u.c.v.i < 4 ? 4 : p->syms[0]->u.c.v.i); + } else if (generic(p->op) == CALL) { + maxargoffset = (argoffset > maxargoffset ? argoffset : maxargoffset); + argoffset = 0; + } +} + +static void gen01(Node p) { + if (p) { + gen01(p->kids[0]); + gen01(p->kids[1]); + gen02(p); + } +} + +static Node I(gen)(Node p) { + Node q; + + assert(p); + for (q = p; q; q = q->link) + gen01(q); + return p; +} + +static void I(global)(Symbol p) { + print("align %d\n", p->type->align > 4 ? 4 : p->type->align); + print("LABELV %s\n", p->x.name); +} + +static void I(import)(Symbol p) { + print("import %s\n", p->x.name); +} + +static void I(local)(Symbol p) { + offset = roundup(offset, p->type->align); + p->x.name = stringf("%d", offset); + p->x.offset = offset; + offset += p->type->size; +} + +static void I(progbeg)(int argc, char *argv[]) {} + +static void I(progend)(void) {} + +static void I(space)(int n) { + print("skip %d\n", n); +} + +//======================================================== + +// JDC: hacked up to get interleaved source lines in asm code +static char *sourceFile; +static char *sourcePtr; +static int sourceLine; + +static int filelength( FILE *f ) { + int pos; + int end; + + pos = ftell (f); + fseek (f, 0, SEEK_END); + end = ftell (f); + fseek (f, pos, SEEK_SET); + + return end; +} + +static void LoadSourceFile( const char *filename ) { + FILE *f; + int length; + + f = fopen( filename, "r" ); + if ( !f ) { + print( ";couldn't open %s\n", filename ); + sourceFile = NULL; + return; + } + length = filelength( f ); + sourceFile = malloc( length + 1 ); + if ( sourceFile ) { + fread( sourceFile, length, 1, f ); + sourceFile[length] = 0; + } + + fclose( f ); + sourceLine = 1; + sourcePtr = sourceFile; +} + +static void PrintToSourceLine( int line ) { + int c; + + if ( !sourceFile ) { + return; + } + while ( sourceLine <= line ) { + int i; + + for ( i = 0 ; sourcePtr[i] && sourcePtr[i] != '\n' ; i++ ) { + } + c = sourcePtr[i]; + if ( c == '\n' ) { + sourcePtr[i] = 0; + } + print( ";%d:%s\n", sourceLine, sourcePtr ); + if ( c == 0 ) { + sourcePtr += i; // end of file + } else { + sourcePtr += i+1; + } + sourceLine++; + } +} + +static void I(stabline)(Coordinate *cp) { + static char *prevfile; + static int prevline; + + if (cp->file && (prevfile == NULL || strcmp(prevfile, cp->file) != 0)) { + print("file \"%s\"\n", prevfile = cp->file); + prevline = 0; + if ( sourceFile ) { + free( sourceFile ); + sourceFile = NULL; + } + // load the new source file + LoadSourceFile( cp->file ); + } + if (cp->y != prevline) { + print("line %d\n", prevline = cp->y); + PrintToSourceLine( cp->y ); + } +} + +//======================================================== + +#define b_blockbeg blockbeg +#define b_blockend blockend + +Interface bytecodeIR = { + {1, 1, 0}, /* char */ + {2, 2, 0}, /* short */ + {4, 4, 0}, /* int */ + {4, 4, 0}, /* long */ + {4, 4, 0}, /* long long */ + {4, 4, 0}, /* float */ // JDC: use inline floats + {4, 4, 0}, /* double */ // JDC: don't ever emit 8 byte double code + {4, 4, 0}, /* long double */ // JDC: don't ever emit 8 byte double code + {4, 4, 0}, /* T* */ + {0, 4, 0}, /* struct */ + 0, /* little_endian */ + 0, /* mulops_calls */ + 0, /* wants_callb */ + 0, /* wants_argb */ + 1, /* left_to_right */ + 0, /* wants_dag */ + 0, /* unsigned_char */ + I(address), + I(blockbeg), + I(blockend), + I(defaddress), + I(defconst), + I(defstring), + I(defsymbol), + I(emit), + I(export), + I(function), + I(gen), + I(global), + I(import), + I(local), + I(progbeg), + I(progend), + I(segment), + I(space), + 0, /* I(stabblock) */ + 0, /* I(stabend) */ + 0, /* I(stabfend) */ + 0, /* I(stabinit) */ + I(stabline), + 0, /* I(stabsym) */ + 0, /* I(stabtype) */ +}; diff --git a/code/tools/lcc/src/c.h b/code/tools/lcc/src/c.h new file mode 100644 index 0000000..b46cf3b --- /dev/null +++ b/code/tools/lcc/src/c.h @@ -0,0 +1,723 @@ +#include +#include +#include +#include +#include +#include + +#define NEW(p,a) ((p) = allocate(sizeof *(p), (a))) +#define NEW0(p,a) memset(NEW((p),(a)), 0, sizeof *(p)) +#define isaddrop(op) (specific(op)==ADDRG+P || specific(op)==ADDRL+P \ + || specific(op)==ADDRF+P) + +#define MAXLINE 512 +#define BUFSIZE 4096 + +#define istypename(t,tsym) (kind[t] == CHAR \ + || (t == ID && tsym && tsym->sclass == TYPEDEF)) +#define sizeop(n) ((n)<<10) +#define generic(op) ((op)&0x3F0) +#define specific(op) ((op)&0x3FF) +#define opindex(op) (((op)>>4)&0x3F) +#define opkind(op) ((op)&~0x3F0) +#define opsize(op) ((op)>>10) +#define optype(op) ((op)&0xF) +#ifdef __LCC__ +#ifndef __STDC__ +#define __STDC__ +#endif +#endif +#define NELEMS(a) ((int)(sizeof (a)/sizeof ((a)[0]))) +#undef roundup +#define roundup(x,n) (((x)+((n)-1))&(~((n)-1))) +#define mkop(op,ty) (specific((op) + ttob(ty))) + +#define extend(x,ty) ((x)&(1<<(8*(ty)->size-1)) ? (x)|((~0UL)<<(8*(ty)->size-1)) : (x)&ones(8*(ty)->size)) +#define ones(n) ((n)>=8*sizeof (unsigned long) ? ~0UL : ~((~0UL)<<(n))) + +#define isqual(t) ((t)->op >= CONST) +#define unqual(t) (isqual(t) ? (t)->type : (t)) + +#define isvolatile(t) ((t)->op == VOLATILE \ + || (t)->op == CONST+VOLATILE) +#define isconst(t) ((t)->op == CONST \ + || (t)->op == CONST+VOLATILE) +#define isarray(t) (unqual(t)->op == ARRAY) +#define isstruct(t) (unqual(t)->op == STRUCT \ + || unqual(t)->op == UNION) +#define isunion(t) (unqual(t)->op == UNION) +#define isfunc(t) (unqual(t)->op == FUNCTION) +#define isptr(t) (unqual(t)->op == POINTER) +#define ischar(t) ((t)->size == 1 && isint(t)) +#define isint(t) (unqual(t)->op == INT \ + || unqual(t)->op == UNSIGNED) +#define isfloat(t) (unqual(t)->op == FLOAT) +#define isarith(t) (unqual(t)->op <= UNSIGNED) +#define isunsigned(t) (unqual(t)->op == UNSIGNED) +#define isscalar(t) (unqual(t)->op <= POINTER \ + || unqual(t)->op == ENUM) +#define isenum(t) (unqual(t)->op == ENUM) +#define fieldsize(p) (p)->bitsize +#define fieldright(p) ((p)->lsb - 1) +#define fieldleft(p) (8*(p)->type->size - \ + fieldsize(p) - fieldright(p)) +#define fieldmask(p) (~(~(unsigned)0<mulops_calls \ + && (generic(op)==DIV||generic(op)==MOD||generic(op)==MUL) \ + && ( optype(op)==U || optype(op)==I))) +static Node forest; +static struct dag { + struct node node; + struct dag *hlink; +} *buckets[16]; +int nodecount; +static Tree firstarg; +int assignargs = 1; +int prunetemps = -1; +static Node *tail; + +static int depth = 0; +static Node replace(Node); +static Node prune(Node); +static Node asgnnode(Symbol, Node); +static struct dag *dagnode(int, Node, Node, Symbol); +static Symbol equated(Symbol); +static void fixup(Node); +static void labelnode(int); +static void list(Node); +static void kill(Symbol); +static Node node(int, Node, Node, Symbol); +static void printdag1(Node, int, int); +static void printnode(Node, int, int); +static void reset(void); +static Node tmpnode(Node); +static void typestab(Symbol, void *); +static Node undag(Node); +static Node visit(Node, int); +static void unlist(void); +void walk(Tree tp, int tlab, int flab) { + listnodes(tp, tlab, flab); + if (forest) { + Node list = forest->link; + forest->link = NULL; + if (!IR->wants_dag) + list = undag(list); + code(Gen)->u.forest = list; + forest = NULL; + } + reset(); + deallocate(STMT); +} + +static Node node(int op, Node l, Node r, Symbol sym) { + int i; + struct dag *p; + + i = (opindex(op)^((unsigned long)sym>>2))&(NELEMS(buckets)-1); + for (p = buckets[i]; p; p = p->hlink) + if (p->node.op == op && p->node.syms[0] == sym + && p->node.kids[0] == l && p->node.kids[1] == r) + return &p->node; + p = dagnode(op, l, r, sym); + p->hlink = buckets[i]; + buckets[i] = p; + ++nodecount; + return &p->node; +} +static struct dag *dagnode(int op, Node l, Node r, Symbol sym) { + struct dag *p; + + NEW0(p, FUNC); + p->node.op = op; + if ((p->node.kids[0] = l) != NULL) + ++l->count; + if ((p->node.kids[1] = r) != NULL) + ++r->count; + p->node.syms[0] = sym; + return p; +} +Node newnode(int op, Node l, Node r, Symbol sym) { + return &dagnode(op, l, r, sym)->node; +} +static void kill(Symbol p) { + int i; + struct dag **q; + + for (i = 0; i < NELEMS(buckets); i++) + for (q = &buckets[i]; *q; ) + if (generic((*q)->node.op) == INDIR && + (!isaddrop((*q)->node.kids[0]->op) + || (*q)->node.kids[0]->syms[0] == p)) { + *q = (*q)->hlink; + --nodecount; + } else + q = &(*q)->hlink; +} +static void reset(void) { + if (nodecount > 0) + memset(buckets, 0, sizeof buckets); + nodecount = 0; +} +Node listnodes(Tree tp, int tlab, int flab) { + Node p = NULL, l, r; + int op; + + assert(tlab || flab || (tlab == 0 && flab == 0)); + if (tp == NULL) + return NULL; + if (tp->node) + return tp->node; + op = tp->op + sizeop(tp->type->size); + switch (generic(tp->op)) { + case AND: { if (depth++ == 0) reset(); + if (flab) { + listnodes(tp->kids[0], 0, flab); + listnodes(tp->kids[1], 0, flab); + } else { + listnodes(tp->kids[0], 0, flab = genlabel(1)); + listnodes(tp->kids[1], tlab, 0); + labelnode(flab); + } + depth--; } break; + case OR: { if (depth++ == 0) + reset(); + if (tlab) { + listnodes(tp->kids[0], tlab, 0); + listnodes(tp->kids[1], tlab, 0); + } else { + tlab = genlabel(1); + listnodes(tp->kids[0], tlab, 0); + listnodes(tp->kids[1], 0, flab); + labelnode(tlab); + } + depth--; + } break; + case NOT: { return listnodes(tp->kids[0], flab, tlab); } + case COND: { Tree q = tp->kids[1]; + assert(tlab == 0 && flab == 0); + if (tp->u.sym) + addlocal(tp->u.sym); + flab = genlabel(2); + listnodes(tp->kids[0], 0, flab); + assert(q && q->op == RIGHT); + reset(); + listnodes(q->kids[0], 0, 0); + if (forest->op == LABEL+V) { + equatelab(forest->syms[0], findlabel(flab + 1)); + unlist(); + } + list(jump(flab + 1)); + labelnode(flab); + listnodes(q->kids[1], 0, 0); + if (forest->op == LABEL+V) { + equatelab(forest->syms[0], findlabel(flab + 1)); + unlist(); + } + labelnode(flab + 1); + + if (tp->u.sym) + p = listnodes(idtree(tp->u.sym), 0, 0); } break; + case CNST: { Type ty = unqual(tp->type); + assert(ty->u.sym); + if (tlab || flab) { + assert(ty == inttype); + if (tlab && tp->u.v.i != 0) + list(jump(tlab)); + else if (flab && tp->u.v.i == 0) + list(jump(flab)); + } + else if (ty->u.sym->addressed) + p = listnodes(cvtconst(tp), 0, 0); + else + p = node(op, NULL, NULL, constant(ty, tp->u.v)); } break; + case RIGHT: { if ( tp->kids[0] && tp->kids[1] + && generic(tp->kids[1]->op) == ASGN + && ((generic(tp->kids[0]->op) == INDIR + && tp->kids[0]->kids[0] == tp->kids[1]->kids[0]) + || (tp->kids[0]->op == FIELD + && tp->kids[0] == tp->kids[1]->kids[0]))) { + assert(tlab == 0 && flab == 0); + if (generic(tp->kids[0]->op) == INDIR) { + p = listnodes(tp->kids[0], 0, 0); + list(p); + listnodes(tp->kids[1], 0, 0); + } + else { + assert(generic(tp->kids[0]->kids[0]->op) == INDIR); + list(listnodes(tp->kids[0]->kids[0], 0, 0)); + p = listnodes(tp->kids[0], 0, 0); + listnodes(tp->kids[1], 0, 0); + } + } else if (tp->kids[1]) { + listnodes(tp->kids[0], 0, 0); + p = listnodes(tp->kids[1], tlab, flab); + } else + p = listnodes(tp->kids[0], tlab, flab); } break; + case JUMP: { assert(tlab == 0 && flab == 0); + assert(tp->u.sym == 0); + assert(tp->kids[0]); + l = listnodes(tp->kids[0], 0, 0); + list(newnode(JUMP+V, l, NULL, NULL)); + reset(); } break; + case CALL: { Tree save = firstarg; + firstarg = NULL; + assert(tlab == 0 && flab == 0); + if (tp->op == CALL+B && !IR->wants_callb) { + Tree arg0 = tree(ARG+P, tp->kids[1]->type, + tp->kids[1], NULL); + if (IR->left_to_right) + firstarg = arg0; + l = listnodes(tp->kids[0], 0, 0); + if (!IR->left_to_right || firstarg) { + firstarg = NULL; + listnodes(arg0, 0, 0); + } + p = newnode(CALL+V, l, NULL, NULL); + } else { + l = listnodes(tp->kids[0], 0, 0); + r = listnodes(tp->kids[1], 0, 0); + p = newnode(tp->op == CALL+B ? tp->op : op, l, r, NULL); + } + NEW0(p->syms[0], FUNC); + assert(isptr(tp->kids[0]->type)); + assert(isfunc(tp->kids[0]->type->type)); + p->syms[0]->type = tp->kids[0]->type->type; + list(p); + reset(); + cfunc->u.f.ncalls++; + firstarg = save; + } break; + case ARG: { assert(tlab == 0 && flab == 0); + if (IR->left_to_right) + listnodes(tp->kids[1], 0, 0); + if (firstarg) { + Tree arg = firstarg; + firstarg = NULL; + listnodes(arg, 0, 0); + } + l = listnodes(tp->kids[0], 0, 0); + list(newnode(tp->op == ARG+B ? tp->op : op, l, NULL, NULL)); + forest->syms[0] = intconst(tp->type->size); + forest->syms[1] = intconst(tp->type->align); + if (!IR->left_to_right) + listnodes(tp->kids[1], 0, 0); } break; + case EQ: case NE: case GT: case GE: case LE: + case LT: { assert(tp->u.sym == 0); + assert(errcnt || tlab || flab); + l = listnodes(tp->kids[0], 0, 0); + r = listnodes(tp->kids[1], 0, 0); + assert(errcnt || opkind(l->op) == opkind(r->op)); + assert(errcnt || optype(op) == optype(l->op)); + if (tlab) + assert(flab == 0), + list(newnode(generic(tp->op) + opkind(l->op), l, r, findlabel(tlab))); + else if (flab) { + switch (generic(tp->op)) { + case EQ: op = NE; break; + case NE: op = EQ; break; + case GT: op = LE; break; + case LT: op = GE; break; + case GE: op = LT; break; + case LE: op = GT; break; + default: assert(0); + } + list(newnode(op + opkind(l->op), l, r, findlabel(flab))); + } + if (forest && forest->syms[0]) + forest->syms[0]->ref++; } break; + case ASGN: { assert(tlab == 0 && flab == 0); + if (tp->kids[0]->op == FIELD) { + Tree x = tp->kids[0]->kids[0]; + Field f = tp->kids[0]->u.field; + assert(generic(x->op) == INDIR); + reset(); + l = listnodes(lvalue(x), 0, 0); + if (fieldsize(f) < 8*f->type->size) { + unsigned int fmask = fieldmask(f); + unsigned int mask = fmask<kids[1]; + if ((q->op == CNST+I && q->u.v.i == 0) + || (q->op == CNST+U && q->u.v.u == 0)) + q = bittree(BAND, x, cnsttree(unsignedtype, (unsigned long)~mask)); + else if ((q->op == CNST+I && (q->u.v.i&fmask) == fmask) + || (q->op == CNST+U && (q->u.v.u&fmask) == fmask)) + q = bittree(BOR, x, cnsttree(unsignedtype, (unsigned long)mask)); + else { + listnodes(q, 0, 0); + q = bittree(BOR, + bittree(BAND, rvalue(lvalue(x)), + cnsttree(unsignedtype, (unsigned long)~mask)), + bittree(BAND, shtree(LSH, cast(q, unsignedtype), + cnsttree(unsignedtype, (unsigned long)fieldright(f))), + cnsttree(unsignedtype, (unsigned long)mask))); + } + r = listnodes(q, 0, 0); + op = ASGN + ttob(q->type); + } else { + r = listnodes(tp->kids[1], 0, 0); + op = ASGN + ttob(tp->kids[1]->type); + } + } else { + l = listnodes(tp->kids[0], 0, 0); + r = listnodes(tp->kids[1], 0, 0); + } + list(newnode(tp->op == ASGN+B ? tp->op : op, l, r, NULL)); + forest->syms[0] = intconst(tp->kids[1]->type->size); + forest->syms[1] = intconst(tp->kids[1]->type->align); + if (isaddrop(tp->kids[0]->op) + && !tp->kids[0]->u.sym->computed) + kill(tp->kids[0]->u.sym); + else + reset(); + p = listnodes(tp->kids[1], 0, 0); } break; + case BOR: case BAND: case BXOR: + case ADD: case SUB: case RSH: + case LSH: { assert(tlab == 0 && flab == 0); + l = listnodes(tp->kids[0], 0, 0); + r = listnodes(tp->kids[1], 0, 0); + p = node(op, l, r, NULL); } break; + case DIV: case MUL: + case MOD: { assert(tlab == 0 && flab == 0); + l = listnodes(tp->kids[0], 0, 0); + r = listnodes(tp->kids[1], 0, 0); + p = node(op, l, r, NULL); + if (IR->mulops_calls && isint(tp->type)) { + list(p); + cfunc->u.f.ncalls++; + } } break; + case RET: { assert(tlab == 0 && flab == 0); + l = listnodes(tp->kids[0], 0, 0); + list(newnode(op, l, NULL, NULL)); } break; + case CVF: case CVI: case CVP: + case CVU: { assert(tlab == 0 && flab == 0); + assert(optype(tp->kids[0]->op) != optype(tp->op) || tp->kids[0]->type->size != tp->type->size); + l = listnodes(tp->kids[0], 0, 0); + p = node(op, l, NULL, intconst(tp->kids[0]->type->size)); + } break; + case BCOM: + case NEG: { assert(tlab == 0 && flab == 0); + l = listnodes(tp->kids[0], 0, 0); + p = node(op, l, NULL, NULL); } break; + case INDIR: { Type ty = tp->kids[0]->type; + assert(tlab == 0 && flab == 0); + l = listnodes(tp->kids[0], 0, 0); + if (isptr(ty)) + ty = unqual(ty)->type; + if (isvolatile(ty) + || (isstruct(ty) && unqual(ty)->u.sym->u.s.vfields)) + p = newnode(tp->op == INDIR+B ? tp->op : op, l, NULL, NULL); + else + p = node(tp->op == INDIR+B ? tp->op : op, l, NULL, NULL); } break; + case FIELD: { Tree q = tp->kids[0]; + if (tp->type == inttype) { + long n = fieldleft(tp->u.field); + q = shtree(RSH, + shtree(LSH, q, cnsttree(inttype, n)), + cnsttree(inttype, n + fieldright(tp->u.field))); + } else if (fieldsize(tp->u.field) < 8*tp->u.field->type->size) + q = bittree(BAND, + shtree(RSH, q, cnsttree(inttype, (long)fieldright(tp->u.field))), + cnsttree(unsignedtype, (unsigned long)fieldmask(tp->u.field))); + assert(tlab == 0 && flab == 0); + p = listnodes(q, 0, 0); } break; + case ADDRG: + case ADDRF: { assert(tlab == 0 && flab == 0); + p = node(tp->op + sizeop(voidptype->size), NULL, NULL, tp->u.sym); + } break; + case ADDRL: { assert(tlab == 0 && flab == 0); + if (tp->u.sym->temporary) + addlocal(tp->u.sym); + p = node(tp->op + sizeop(voidptype->size), NULL, NULL, tp->u.sym); } break; + default:assert(0); + } + tp->node = p; + return p; +} +static void list(Node p) { + if (p && p->link == NULL) { + if (forest) { + p->link = forest->link; + forest->link = p; + } else + p->link = p; + forest = p; + } +} +static void labelnode(int lab) { + assert(lab); + if (forest && forest->op == LABEL+V) + equatelab(findlabel(lab), forest->syms[0]); + else + list(newnode(LABEL+V, NULL, NULL, findlabel(lab))); + reset(); +} +static void unlist(void) { + Node p; + + assert(forest); + assert(forest != forest->link); + p = forest->link; + while (p->link != forest) + p = p->link; + p->link = forest->link; + forest = p; +} +Tree cvtconst(Tree p) { + Symbol q = constant(p->type, p->u.v); + Tree e; + + if (q->u.c.loc == NULL) + q->u.c.loc = genident(STATIC, p->type, GLOBAL); + if (isarray(p->type)) { + e = simplify(ADDRG, atop(p->type), NULL, NULL); + e->u.sym = q->u.c.loc; + } else + e = idtree(q->u.c.loc); + return e; +} +void gencode(Symbol caller[], Symbol callee[]) { + Code cp; + Coordinate save; + + if (prunetemps == -1) + prunetemps = !IR->wants_dag; + save = src; + if (assignargs) { + int i; + Symbol p, q; + cp = codehead.next->next; + codelist = codehead.next; + for (i = 0; (p = callee[i]) != NULL + && (q = caller[i]) != NULL; i++) + if (p->sclass != q->sclass || p->type != q->type) + walk(asgn(p, idtree(q)), 0, 0); + codelist->next = cp; + cp->prev = codelist; + } + if (glevel && IR->stabsym) { + int i; + Symbol p, q; + for (i = 0; (p = callee[i]) != NULL + && (q = caller[i]) != NULL; i++) { + (*IR->stabsym)(p); + if (p->sclass != q->sclass || p->type != q->type) + (*IR->stabsym)(q); + } + swtoseg(CODE); + } + cp = codehead.next; + for ( ; errcnt <= 0 && cp; cp = cp->next) + switch (cp->kind) { + case Address: (*IR->address)(cp->u.addr.sym, cp->u.addr.base, + cp->u.addr.offset); break; + case Blockbeg: { + Symbol *p = cp->u.block.locals; + (*IR->blockbeg)(&cp->u.block.x); + for ( ; *p; p++) + if ((*p)->ref != 0.0) + (*IR->local)(*p); + else if (glevel) (*IR->local)(*p); + } + break; + case Blockend: (*IR->blockend)(&cp->u.begin->u.block.x); break; + case Defpoint: src = cp->u.point.src; break; + case Gen: case Jump: + case Label: if (prunetemps) + cp->u.forest = prune(cp->u.forest); + fixup(cp->u.forest); + cp->u.forest = (*IR->gen)(cp->u.forest); break; + case Local: (*IR->local)(cp->u.var); break; + case Switch: break; + default: assert(0); + } + src = save; +} +static void fixup(Node p) { + for ( ; p; p = p->link) + switch (generic(p->op)) { + case JUMP: + if (specific(p->kids[0]->op) == ADDRG+P) + p->kids[0]->syms[0] = + equated(p->kids[0]->syms[0]); + break; + case LABEL: assert(p->syms[0] == equated(p->syms[0])); break; + case EQ: case GE: case GT: case LE: case LT: case NE: + assert(p->syms[0]); + p->syms[0] = equated(p->syms[0]); + } +} +static Symbol equated(Symbol p) { + { Symbol q; for (q = p->u.l.equatedto; q; q = q->u.l.equatedto) assert(p != q); } + while (p->u.l.equatedto) + p = p->u.l.equatedto; + return p; +} +void emitcode(void) { + Code cp; + Coordinate save; + + save = src; + cp = codehead.next; + for ( ; errcnt <= 0 && cp; cp = cp->next) + switch (cp->kind) { + case Address: break; + case Blockbeg: if (glevel && IR->stabblock) { + (*IR->stabblock)('{', cp->u.block.level - LOCAL, cp->u.block.locals); + swtoseg(CODE); + } + break; + case Blockend: if (glevel && IR->stabblock) { + Code bp = cp->u.begin; + foreach(bp->u.block.identifiers, bp->u.block.level, typestab, NULL); + foreach(bp->u.block.types, bp->u.block.level, typestab, NULL); + (*IR->stabblock)('}', bp->u.block.level - LOCAL, bp->u.block.locals); + swtoseg(CODE); + } + break; + case Defpoint: src = cp->u.point.src; + if (glevel > 0 && IR->stabline) { + (*IR->stabline)(&cp->u.point.src); swtoseg(CODE); } break; + case Gen: case Jump: + case Label: if (cp->u.forest) + (*IR->emit)(cp->u.forest); break; + case Local: if (glevel && IR->stabsym) { + (*IR->stabsym)(cp->u.var); + swtoseg(CODE); + } break; + case Switch: { int i; + defglobal(cp->u.swtch.table, LIT); + (*IR->defaddress)(equated(cp->u.swtch.labels[0])); + for (i = 1; i < cp->u.swtch.size; i++) { + long k = cp->u.swtch.values[i-1]; + while (++k < cp->u.swtch.values[i]) + assert(k < LONG_MAX), + (*IR->defaddress)(equated(cp->u.swtch.deflab)); + (*IR->defaddress)(equated(cp->u.swtch.labels[i])); + } + swtoseg(CODE); + } break; + default: assert(0); + } + src = save; +} + +static Node undag(Node forest) { + Node p; + + tail = &forest; + for (p = forest; p; p = p->link) + if (generic(p->op) == INDIR) { + assert(p->count >= 1); + visit(p, 1); + if (p->syms[2]) { + assert(p->syms[2]->u.t.cse); + p->syms[2]->u.t.cse = NULL; + addlocal(p->syms[2]); + } + } else if (iscall(p->op) && p->count >= 1) + visit(p, 1); + else { + assert(p->count == 0), + visit(p, 1); + *tail = p; + tail = &p->link; + } + *tail = NULL; + return forest; +} +static Node replace(Node p) { + if (p && ( generic(p->op) == INDIR + && generic(p->kids[0]->op) == ADDRL + && p->kids[0]->syms[0]->temporary + && p->kids[0]->syms[0]->u.t.replace)) { + p = p->kids[0]->syms[0]->u.t.cse; + if (generic(p->op) == INDIR && isaddrop(p->kids[0]->op)) + p = newnode(p->op, newnode(p->kids[0]->op, NULL, NULL, + p->kids[0]->syms[0]), NULL, NULL); + else if (generic(p->op) == ADDRG) + p = newnode(p->op, NULL, NULL, p->syms[0]); + else + assert(0); + p->count = 1; + } else if (p) { + p->kids[0] = replace(p->kids[0]); + p->kids[1] = replace(p->kids[1]); + } + return p; +} +static Node prune(Node forest) { + Node p, *tail = &forest; + int count = 0; + + for (p = forest; p; p = p->link) { + if (count > 0) { + p->kids[0] = replace(p->kids[0]); + p->kids[1] = replace(p->kids[1]); + } + if (( generic(p->op) == ASGN + && generic(p->kids[0]->op) == ADDRL + && p->kids[0]->syms[0]->temporary + && p->kids[0]->syms[0]->u.t.cse == p->kids[1])) { + Symbol tmp = p->kids[0]->syms[0]; + if (!tmp->defined) + (*IR->local)(tmp); + tmp->defined = 1; + if (( generic(p->kids[1]->op) == INDIR + && isaddrop(p->kids[1]->kids[0]->op) + && p->kids[1]->kids[0]->syms[0]->sclass == REGISTER) + || (( generic(p->kids[1]->op) == INDIR + && isaddrop(p->kids[1]->kids[0]->op)) && tmp->sclass == AUTO) + || (generic(p->kids[1]->op) == ADDRG && tmp->sclass == AUTO)) { + tmp->u.t.replace = 1; + count++; + continue; /* and omit the assignment */ + } + } + /* keep the assignment and other roots */ + *tail = p; + tail = &(*tail)->link; + } + assert(*tail == NULL); + return forest; +} +static Node visit(Node p, int listed) { + if (p) { + if (p->syms[2]) + p = tmpnode(p); + else if ((p->count <= 1 && !iscall(p->op)) + || (p->count == 0 && iscall(p->op))) { + p->kids[0] = visit(p->kids[0], 0); + p->kids[1] = visit(p->kids[1], 0); + } + + else if (specific(p->op) == ADDRL+P || specific(p->op) == ADDRF+P) { + assert(!listed); + p = newnode(p->op, NULL, NULL, p->syms[0]); + p->count = 1; + } + else if (p->op == INDIR+B) { + p = newnode(p->op, p->kids[0], NULL, NULL); + p->count = 1; + p->kids[0] = visit(p->kids[0], 0); + p->kids[1] = visit(p->kids[1], 0); + } + else { + p->kids[0] = visit(p->kids[0], 0); + p->kids[1] = visit(p->kids[1], 0); + p->syms[2] = temporary(REGISTER, btot(p->op, opsize(p->op))); + assert(!p->syms[2]->defined); + p->syms[2]->ref = 1; + p->syms[2]->u.t.cse = p; + + *tail = asgnnode(p->syms[2], p); + tail = &(*tail)->link; + if (!listed) + p = tmpnode(p); + }; + } + return p; +} +static Node tmpnode(Node p) { + Symbol tmp = p->syms[2]; + + assert(tmp); + if (--p->count == 0) + p->syms[2] = NULL; + p = newnode(INDIR + ttob(tmp->type), + newnode(ADDRL + ttob(voidptype), NULL, NULL, tmp), NULL, NULL); + p->count = 1; + return p; +} +static Node asgnnode(Symbol tmp, Node p) { + p = newnode(ASGN + ttob(tmp->type), + newnode(ADDRL + ttob(voidptype), NULL, NULL, tmp), p, NULL); + p->syms[0] = intconst(tmp->type->size); + p->syms[1] = intconst(tmp->type->align); + return p; +} +/* printdag - print dag p on fd, or the node list if p == 0 */ +void printdag(Node p, int fd) { + FILE *f = fd == 1 ? stdout : stderr; + + printed(0); + if (p == 0) { + if ((p = forest) != NULL) + do { + p = p->link; + printdag1(p, fd, 0); + } while (p != forest); + } else if (*printed(nodeid((Tree)p))) + fprint(f, "node'%d printed above\n", nodeid((Tree)p)); + else + printdag1(p, fd, 0); +} + +/* printdag1 - recursively print dag p */ +static void printdag1(Node p, int fd, int lev) { + int id, i; + + if (p == 0 || *printed(id = nodeid((Tree)p))) + return; + *printed(id) = 1; + for (i = 0; i < NELEMS(p->kids); i++) + printdag1(p->kids[i], fd, lev + 1); + printnode(p, fd, lev); +} + +/* printnode - print fields of dag p */ +static void printnode(Node p, int fd, int lev) { + if (p) { + FILE *f = fd == 1 ? stdout : stderr; + int i, id = nodeid((Tree)p); + fprint(f, "%c%d%s", lev == 0 ? '\'' : '#', id, + &" "[id < 10 ? 0 : id < 100 ? 1 : 2]); + fprint(f, "%s count=%d", opname(p->op), p->count); + for (i = 0; i < NELEMS(p->kids) && p->kids[i]; i++) + fprint(f, " #%d", nodeid((Tree)p->kids[i])); + if (generic(p->op) == CALL && p->syms[0] && p->syms[0]->type) + fprint(f, " {%t}", p->syms[0]->type); + else + for (i = 0; i < NELEMS(p->syms) && p->syms[i]; i++) + if (p->syms[i]->name) + fprint(f, " %s", p->syms[i]->name); + else + fprint(f, " %p", p->syms[i]); + fprint(f, "\n"); + } +} + +/* typestab - emit stab entries for p */ +static void typestab(Symbol p, void *cl) { + if (!isfunc(p->type) && (p->sclass == EXTERN || p->sclass == STATIC) && IR->stabsym) + (*IR->stabsym)(p); + else if ((p->sclass == TYPEDEF || p->sclass == 0) && IR->stabtype) + (*IR->stabtype)(p); +} + diff --git a/code/tools/lcc/src/dagcheck.md b/code/tools/lcc/src/dagcheck.md new file mode 100644 index 0000000..292dbee --- /dev/null +++ b/code/tools/lcc/src/dagcheck.md @@ -0,0 +1,210 @@ +%{ +#include "c.h" +typedef Node NODEPTR_TYPE; +#define OP_LABEL(p) (specific((p)->op)) +#define LEFT_CHILD(p) ((p)->kids[0]) +#define RIGHT_CHILD(p) ((p)->kids[1]) +#define STATE_LABEL(p) ((p)->x.state) +#define PANIC error +%} +%term CNSTF=17 CNSTI=21 CNSTP=23 CNSTU=22 +%term ARGB=41 ARGF=33 ARGI=37 ARGP=39 ARGU=38 +%term ASGNB=57 ASGNF=49 ASGNI=53 ASGNP=55 ASGNU=54 +%term INDIRB=73 INDIRF=65 INDIRI=69 INDIRP=71 INDIRU=70 +%term CVFF=113 CVFI=117 +%term CVIF=129 CVII=133 CVIU=134 +%term CVPP=151 CVPU=150 +%term CVUI=181 CVUP=183 CVUU=182 +%term NEGF=193 NEGI=197 +%term CALLB=217 CALLF=209 CALLI=213 CALLP=215 CALLU=214 CALLV=216 +%term RETF=241 RETI=245 RETP=247 RETU=246 RETV=248 +%term ADDRGP=263 +%term ADDRFP=279 +%term ADDRLP=295 +%term ADDF=305 ADDI=309 ADDP=311 ADDU=310 +%term SUBF=321 SUBI=325 SUBP=327 SUBU=326 +%term LSHI=341 LSHU=342 +%term MODI=357 MODU=358 +%term RSHI=373 RSHU=374 +%term BANDI=389 BANDU=390 +%term BCOMI=405 BCOMU=406 +%term BORI=421 BORU=422 +%term BXORI=437 BXORU=438 +%term DIVF=449 DIVI=453 DIVU=454 +%term MULF=465 MULI=469 MULU=470 +%term EQF=481 EQI=485 EQU=486 +%term GEF=497 GEI=501 GEU=502 +%term GTF=513 GTI=517 GTU=518 +%term LEF=529 LEI=533 LEU=534 +%term LTF=545 LTI=549 LTU=550 +%term NEF=561 NEI=565 NEU=566 +%term JUMPV=584 +%term LABELV=600 +%% +stmt: INDIRB(P) "" +stmt: INDIRF(P) "" +stmt: INDIRI(P) "" +stmt: INDIRU(P) "" +stmt: INDIRP(P) "" +stmt: CALLF(P) "" +stmt: CALLI(P) "" +stmt: CALLU(P) "" +stmt: CALLP(P) "" +stmt: V "" +bogus: I "" 1 +bogus: U "" 1 +bogus: P "" 1 +bogus: F "" 1 +bogus: B "" 1 +bogus: V "" 1 +I: bogus "" 1 +U: bogus "" 1 +P: bogus "" 1 +F: bogus "" 1 +B: bogus "" 1 +V: bogus "" 1 +F: CNSTF "" +I: CNSTI "" +P: CNSTP "" +U: CNSTU "" +V: ARGB(B) "" +V: ARGF(F) "" +V: ARGI(I) "" +V: ARGU(U) "" +V: ARGP(P) "" +V: ASGNB(P,B) "" +V: ASGNF(P,F) "" +V: ASGNI(P,I) "" +V: ASGNU(P,U) "" +V: ASGNP(P,P) "" +B: INDIRB(P) "" +F: INDIRF(P) "" +I: INDIRI(P) "" +U: INDIRU(P) "" +P: INDIRP(P) "" +I: CVII(I) "" +I: CVUI(U) "" +I: CVFI(F) "" +U: CVIU(I) "" +U: CVUU(U) "" +U: CVPU(P) "" +F: CVIF(I) "" +F: CVFF(F) "" +P: CVUP(U) "" +P: CVPP(P) "" +F: NEGF(F) "" +I: NEGI(I) "" +V: CALLB(P,P) "" +F: CALLF(P) "" +I: CALLI(P) "" +U: CALLU(P) "" +P: CALLP(P) "" +V: CALLV(P) "" +V: RETF(F) "" +V: RETI(I) "" +V: RETU(U) "" +V: RETP(P) "" +V: RETV "" +P: ADDRGP "" +P: ADDRFP "" +P: ADDRLP "" +F: ADDF(F,F) "" +I: ADDI(I,I) "" +P: ADDP(P,I) "" +P: ADDP(I,P) "" +P: ADDP(U,P) "" +P: ADDP(P,U) "" +U: ADDU(U,U) "" +F: SUBF(F,F) "" +I: SUBI(I,I) "" +P: SUBP(P,I) "" +P: SUBP(P,U) "" +U: SUBU(U,U) "" +I: LSHI(I,I) "" +U: LSHU(U,I) "" +I: MODI(I,I) "" +U: MODU(U,U) "" +I: RSHI(I,I) "" +U: RSHU(U,I) "" +U: BANDU(U,U) "" +I: BANDI(I,I) "" +U: BCOMU(U) "" +I: BCOMI(I) "" +I: BORI(I,I) "" +U: BORU(U,U) "" +U: BXORU(U,U) "" +I: BXORI(I,I) "" +F: DIVF(F,F) "" +I: DIVI(I,I) "" +U: DIVU(U,U) "" +F: MULF(F,F) "" +I: MULI(I,I) "" +U: MULU(U,U) "" +V: EQF(F,F) "" +V: EQI(I,I) "" +V: EQU(U,U) "" +V: GEF(F,F) "" +V: GEI(I,I) "" +V: GEU(U,U) "" +V: GTF(F,F) "" +V: GTI(I,I) "" +V: GTU(U,U) "" +V: LEF(F,F) "" +V: LEI(I,I) "" +V: LEU(U,U) "" +V: LTF(F,F) "" +V: LTI(I,I) "" +V: LTU(U,U) "" +V: NEF(F,F) "" +V: NEI(I,I) "" +V: NEU(U,U) "" +V: JUMPV(P) "" +V: LABELV "" +%% + +static void reduce(NODEPTR_TYPE p, int goalnt) { + int i, sz = opsize(p->op), rulenumber = _rule(p->x.state, goalnt); + short *nts = _nts[rulenumber]; + NODEPTR_TYPE kids[10]; + + assert(rulenumber); + _kids(p, rulenumber, kids); + for (i = 0; nts[i]; i++) + reduce(kids[i], nts[i]); + switch (optype(p->op)) { +#define xx(ty) if (sz == ty->size) return + case I: + case U: + xx(chartype); + xx(shorttype); + xx(inttype); + xx(longtype); + xx(longlong); + break; + case F: + xx(floattype); + xx(doubletype); + xx(longdouble); + break; + case P: + xx(voidptype); + xx(funcptype); + break; + case V: + case B: if (sz == 0) return; +#undef xx + } + printdag(p, 2); + assert(0); +} + +void check(Node p) { + struct _state { short cost[1]; }; + + _label(p); + if (((struct _state *)p->x.state)->cost[1] > 0) { + printdag(p, 2); + assert(0); + } + reduce(p, 1); +} diff --git a/code/tools/lcc/src/decl.c b/code/tools/lcc/src/decl.c new file mode 100644 index 0000000..132241e --- /dev/null +++ b/code/tools/lcc/src/decl.c @@ -0,0 +1,1162 @@ +#include "c.h" + + +#define add(x,n) (x > inttype->u.sym->u.limits.max.i-(n) ? (overflow=1,x) : x+(n)) +#define chkoverflow(x,n) ((void)add(x,n)) +#define bits2bytes(n) (((n) + 7)/8) +static int regcount; + +static List autos, registers; +Symbol cfunc; /* current function */ +Symbol retv; /* return value location for structs */ + +static void checkref(Symbol, void *); +static Symbol dclglobal(int, char *, Type, Coordinate *); +static Symbol dcllocal(int, char *, Type, Coordinate *); +static Symbol dclparam(int, char *, Type, Coordinate *); +static Type dclr(Type, char **, Symbol **, int); +static Type dclr1(char **, Symbol **, int); +static void decl(Symbol (*)(int, char *, Type, Coordinate *)); +extern void doconst(Symbol, void *); +static void doglobal(Symbol, void *); +static void doextern(Symbol, void *); +static void exitparams(Symbol []); +static void fields(Type); +static void funcdefn(int, char *, Type, Symbol [], Coordinate); +static void initglobal(Symbol, int); +static void oldparam(Symbol, void *); +static Symbol *parameters(Type); +static Type specifier(int *); +static Type structdcl(int); +static Type tnode(int, Type); +void program(void) { + int n; + + level = GLOBAL; + for (n = 0; t != EOI; n++) + if (kind[t] == CHAR || kind[t] == STATIC + || t == ID || t == '*' || t == '(') { + decl(dclglobal); + deallocate(STMT); + if (!(glevel >= 3 || xref)) + deallocate(FUNC); + } else if (t == ';') { + warning("empty declaration\n"); + t = gettok(); + } else { + error("unrecognized declaration\n"); + t = gettok(); + } + if (n == 0) + warning("empty input file\n"); +} +static Type specifier(int *sclass) { + int cls, cons, sign, size, type, vol; + Type ty = NULL; + + cls = vol = cons = sign = size = type = 0; + if (sclass == NULL) + cls = AUTO; + for (;;) { + int *p, tt = t; + switch (t) { + case AUTO: + case REGISTER: if (level <= GLOBAL && cls == 0) + error("invalid use of `%k'\n", t); + p = &cls; t = gettok(); break; + case STATIC: case EXTERN: + case TYPEDEF: p = &cls; t = gettok(); break; + case CONST: p = &cons; t = gettok(); break; + case VOLATILE: p = &vol; t = gettok(); break; + case SIGNED: + case UNSIGNED: p = &sign; t = gettok(); break; + case LONG: if (size == LONG) { + size = 0; + tt = LONG+LONG; + } + p = &size; t = gettok(); break; + case SHORT: p = &size; t = gettok(); break; + case VOID: case CHAR: case INT: case FLOAT: + case DOUBLE: p = &type; ty = tsym->type; + t = gettok(); break; + case ENUM: p = &type; ty = enumdcl(); break; + case STRUCT: + case UNION: p = &type; ty = structdcl(t); break; + case ID: + if (istypename(t, tsym) && type == 0 + && sign == 0 && size == 0) { + use(tsym, src); + ty = tsym->type; + if (isqual(ty) + && ty->size != ty->type->size) { + ty = unqual(ty); + if (isconst(tsym->type)) + ty = qual(CONST, ty); + if (isvolatile(tsym->type)) + ty = qual(VOLATILE, ty); + tsym->type = ty; + } + p = &type; + t = gettok(); + } else + p = NULL; + break; + default: p = NULL; + } + if (p == NULL) + break; + if (*p) + error("invalid use of `%k'\n", tt); + *p = tt; + } + if (sclass) + *sclass = cls; + if (type == 0) { + type = INT; + ty = inttype; + } + if ((size == SHORT && type != INT) + || (size == LONG+LONG && type != INT) + || (size == LONG && type != INT && type != DOUBLE) + || (sign && type != INT && type != CHAR)) + error("invalid type specification\n"); + if (type == CHAR && sign) + ty = sign == UNSIGNED ? unsignedchar : signedchar; + else if (size == SHORT) + ty = sign == UNSIGNED ? unsignedshort : shorttype; + else if (size == LONG && type == DOUBLE) + ty = longdouble; + else if (size == LONG+LONG) { + ty = sign == UNSIGNED ? unsignedlonglong : longlong; + if (Aflag >= 1) + warning("`%t' is a non-ANSI type\n", ty); + } else if (size == LONG) + ty = sign == UNSIGNED ? unsignedlong : longtype; + else if (sign == UNSIGNED && type == INT) + ty = unsignedtype; + if (cons == CONST) + ty = qual(CONST, ty); + if (vol == VOLATILE) + ty = qual(VOLATILE, ty); + return ty; +} +static void decl(Symbol (*dcl)(int, char *, Type, Coordinate *)) { + int sclass; + Type ty, ty1; + static char stop[] = { CHAR, STATIC, ID, 0 }; + + ty = specifier(&sclass); + if (t == ID || t == '*' || t == '(' || t == '[') { + char *id; + Coordinate pos; + id = NULL; + pos = src; + if (level == GLOBAL) { + Symbol *params = NULL; + ty1 = dclr(ty, &id, ¶ms, 0); + if (params && id && isfunc(ty1) + && (t == '{' || istypename(t, tsym) + || (kind[t] == STATIC && t != TYPEDEF))) { + if (sclass == TYPEDEF) { + error("invalid use of `typedef'\n"); + sclass = EXTERN; + } + if (ty1->u.f.oldstyle) + exitscope(); + funcdefn(sclass, id, ty1, params, pos); + return; + } else if (params) + exitparams(params); + } else + ty1 = dclr(ty, &id, NULL, 0); + for (;;) { + if (Aflag >= 1 && !hasproto(ty1)) + warning("missing prototype\n"); + if (id == NULL) + error("missing identifier\n"); + else if (sclass == TYPEDEF) + { + Symbol p = lookup(id, identifiers); + if (p && p->scope == level) + error("redeclaration of `%s'\n", id); + p = install(id, &identifiers, level, + level < LOCAL ? PERM : FUNC); + p->type = ty1; + p->sclass = TYPEDEF; + p->src = pos; + } + else + (void)(*dcl)(sclass, id, ty1, &pos); + if (t != ',') + break; + t = gettok(); + id = NULL; + pos = src; + ty1 = dclr(ty, &id, NULL, 0); + } + } else if (ty == NULL + || !(isenum(ty) || + (isstruct(ty) && (*unqual(ty)->u.sym->name < '1' || *unqual(ty)->u.sym->name > '9')))) + error("empty declaration\n"); + test(';', stop); +} +static Symbol dclglobal(int sclass, char *id, Type ty, Coordinate *pos) { + Symbol p; + + if (sclass == 0) + sclass = AUTO; + else if (sclass != EXTERN && sclass != STATIC) { + error("invalid storage class `%k' for `%t %s'\n", + sclass, ty, id); + sclass = AUTO; + } + p = lookup(id, identifiers); + if (p && p->scope == GLOBAL) { + if (p->sclass != TYPEDEF && eqtype(ty, p->type, 1)) + ty = compose(ty, p->type); + else + error("redeclaration of `%s' previously declared at %w\n", p->name, &p->src); + + if (!isfunc(ty) && p->defined && t == '=') + error("redefinition of `%s' previously defined at %w\n", p->name, &p->src); + + if ((p->sclass == EXTERN && sclass == STATIC) + || (p->sclass == STATIC && sclass == AUTO) + || (p->sclass == AUTO && sclass == STATIC)) + warning("inconsistent linkage for `%s' previously declared at %w\n", p->name, &p->src); + + } + if (p == NULL || p->scope != GLOBAL) { + Symbol q = lookup(id, externals); + if (q) { + if (sclass == STATIC || !eqtype(ty, q->type, 1)) + warning("declaration of `%s' does not match previous declaration at %w\n", id, &q->src); + + p = relocate(id, externals, globals); + p->sclass = sclass; + } else { + p = install(id, &globals, GLOBAL, PERM); + p->sclass = sclass; + (*IR->defsymbol)(p); + } + if (p->sclass != STATIC) { + static int nglobals; + nglobals++; + if (Aflag >= 2 && nglobals == 512) + warning("more than 511 external identifiers\n"); + } + } else if (p->sclass == EXTERN) + p->sclass = sclass; + p->type = ty; + p->src = *pos; + if (t == '=' && isfunc(p->type)) { + error("illegal initialization for `%s'\n", p->name); + t = gettok(); + initializer(p->type, 0); + } else if (t == '=') { + initglobal(p, 0); + if (glevel > 0 && IR->stabsym) { + (*IR->stabsym)(p); swtoseg(p->u.seg); } + } else if (p->sclass == STATIC && !isfunc(p->type) + && p->type->size == 0) + error("undefined size for `%t %s'\n", p->type, p->name); + return p; +} +static void initglobal(Symbol p, int flag) { + Type ty; + + if (t == '=' || flag) { + if (p->sclass == STATIC) { + for (ty = p->type; isarray(ty); ty = ty->type) + ; + defglobal(p, isconst(ty) ? LIT : DATA); + } else + defglobal(p, DATA); + if (t == '=') + t = gettok(); + ty = initializer(p->type, 0); + if (isarray(p->type) && p->type->size == 0) + p->type = ty; + if (p->sclass == EXTERN) + p->sclass = AUTO; + } +} +void defglobal(Symbol p, int seg) { + p->u.seg = seg; + swtoseg(p->u.seg); + if (p->sclass != STATIC) + (*IR->export)(p); + (*IR->global)(p); + p->defined = 1; +} + +static Type dclr(Type basety, char **id, Symbol **params, int abstract) { + Type ty = dclr1(id, params, abstract); + + for ( ; ty; ty = ty->type) + switch (ty->op) { + case POINTER: + basety = ptr(basety); + break; + case FUNCTION: + basety = func(basety, ty->u.f.proto, + ty->u.f.oldstyle); + break; + case ARRAY: + basety = array(basety, ty->size, 0); + break; + case CONST: case VOLATILE: + basety = qual(ty->op, basety); + break; + default: assert(0); + } + if (Aflag >= 2 && basety->size > 32767) + warning("more than 32767 bytes in `%t'\n", basety); + return basety; +} +static Type tnode(int op, Type type) { + Type ty; + + NEW0(ty, STMT); + ty->op = op; + ty->type = type; + return ty; +} +static Type dclr1(char **id, Symbol **params, int abstract) { + Type ty = NULL; + + switch (t) { + case ID: if (id) + *id = token; + else + error("extraneous identifier `%s'\n", token); + t = gettok(); break; + case '*': t = gettok(); if (t == CONST || t == VOLATILE) { + Type ty1; + ty1 = ty = tnode(t, NULL); + while ((t = gettok()) == CONST || t == VOLATILE) + ty1 = tnode(t, ty1); + ty->type = dclr1(id, params, abstract); + ty = ty1; + } else + ty = dclr1(id, params, abstract); + ty = tnode(POINTER, ty); break; + case '(': t = gettok(); if (abstract + && (t == REGISTER || istypename(t, tsym) || t == ')')) { + Symbol *args; + ty = tnode(FUNCTION, ty); + enterscope(); + if (level > PARAM) + enterscope(); + args = parameters(ty); + exitparams(args); + } else { + ty = dclr1(id, params, abstract); + expect(')'); + if (abstract && ty == NULL + && (id == NULL || *id == NULL)) + return tnode(FUNCTION, NULL); + } break; + case '[': break; + default: return ty; + } + while (t == '(' || t == '[') + switch (t) { + case '(': t = gettok(); { Symbol *args; + ty = tnode(FUNCTION, ty); + enterscope(); + if (level > PARAM) + enterscope(); + args = parameters(ty); + if (params && *params == NULL) + *params = args; + else + exitparams(args); + } + break; + case '[': t = gettok(); { int n = 0; + if (kind[t] == ID) { + n = intexpr(']', 1); + if (n <= 0) { + error("`%d' is an illegal array size\n", n); + n = 1; + } + } else + expect(']'); + ty = tnode(ARRAY, ty); + ty->size = n; } break; + default: assert(0); + } + return ty; +} +static Symbol *parameters(Type fty) { + List list = NULL; + Symbol *params; + + if (kind[t] == STATIC || istypename(t, tsym)) { + int n = 0; + Type ty1 = NULL; + for (;;) { + Type ty; + int sclass = 0; + char *id = NULL; + if (ty1 && t == ELLIPSIS) { + static struct symbol sentinel; + if (sentinel.type == NULL) { + sentinel.type = voidtype; + sentinel.defined = 1; + } + if (ty1 == voidtype) + error("illegal formal parameter types\n"); + list = append(&sentinel, list); + t = gettok(); + break; + } + if (!istypename(t, tsym) && t != REGISTER) + error("missing parameter type\n"); + n++; + ty = dclr(specifier(&sclass), &id, NULL, 1); + if ( (ty == voidtype && (ty1 || id)) + || ty1 == voidtype) + error("illegal formal parameter types\n"); + if (id == NULL) + id = stringd(n); + if (ty != voidtype) + list = append(dclparam(sclass, id, ty, &src), list); + if (Aflag >= 1 && !hasproto(ty)) + warning("missing prototype\n"); + if (ty1 == NULL) + ty1 = ty; + if (t != ',') + break; + t = gettok(); + } + fty->u.f.proto = newarray(length(list) + 1, + sizeof (Type *), PERM); + params = ltov(&list, FUNC); + for (n = 0; params[n]; n++) + fty->u.f.proto[n] = params[n]->type; + fty->u.f.proto[n] = NULL; + fty->u.f.oldstyle = 0; + } else { + if (t == ID) + for (;;) { + Symbol p; + if (t != ID) { + error("expecting an identifier\n"); + break; + } + p = dclparam(0, token, inttype, &src); + p->defined = 0; + list = append(p, list); + t = gettok(); + if (t != ',') + break; + t = gettok(); + } + params = ltov(&list, FUNC); + fty->u.f.proto = NULL; + fty->u.f.oldstyle = 1; + } + if (t != ')') { + static char stop[] = { CHAR, STATIC, IF, ')', 0 }; + expect(')'); + skipto('{', stop); + } + if (t == ')') + t = gettok(); + return params; +} +static void exitparams(Symbol params[]) { + assert(params); + if (params[0] && !params[0]->defined) + error("extraneous old-style parameter list\n"); + if (level > PARAM) + exitscope(); + exitscope(); +} + +static Symbol dclparam(int sclass, char *id, Type ty, Coordinate *pos) { + Symbol p; + + if (isfunc(ty)) + ty = ptr(ty); + else if (isarray(ty)) + ty = atop(ty); + if (sclass == 0) + sclass = AUTO; + else if (sclass != REGISTER) { + error("invalid storage class `%k' for `%t%s\n", + sclass, ty, stringf(id ? " %s'" : "' parameter", id)); + sclass = AUTO; + } else if (isvolatile(ty) || isstruct(ty)) { + warning("register declaration ignored for `%t%s\n", + ty, stringf(id ? " %s'" : "' parameter", id)); + sclass = AUTO; + } + + p = lookup(id, identifiers); + if (p && p->scope == level) + error("duplicate declaration for `%s' previously declared at %w\n", id, &p->src); + + else + p = install(id, &identifiers, level, FUNC); + p->sclass = sclass; + p->src = *pos; + p->type = ty; + p->defined = 1; + if (t == '=') { + error("illegal initialization for parameter `%s'\n", id); + t = gettok(); + (void)expr1(0); + } + return p; +} +static Type structdcl(int op) { + char *tag; + Type ty; + Symbol p; + Coordinate pos; + + t = gettok(); + pos = src; + if (t == ID) { + tag = token; + t = gettok(); + } else + tag = ""; + if (t == '{') { + static char stop[] = { IF, ',', 0 }; + ty = newstruct(op, tag); + ty->u.sym->src = pos; + ty->u.sym->defined = 1; + t = gettok(); + if (istypename(t, tsym)) + fields(ty); + else + error("invalid %k field declarations\n", op); + test('}', stop); + } + else if (*tag && (p = lookup(tag, types)) != NULL + && p->type->op == op) { + ty = p->type; + if (t == ';' && p->scope < level) + ty = newstruct(op, tag); + } + else { + if (*tag == 0) + error("missing %k tag\n", op); + ty = newstruct(op, tag); + } + if (*tag && xref) + use(ty->u.sym, pos); + return ty; +} +static void fields(Type ty) { + { int n = 0; + while (istypename(t, tsym)) { + static char stop[] = { IF, CHAR, '}', 0 }; + Type ty1 = specifier(NULL); + for (;;) { + Field p; + char *id = NULL; + Type fty = dclr(ty1, &id, NULL, 0); + p = newfield(id, ty, fty); + if (Aflag >= 1 && !hasproto(p->type)) + warning("missing prototype\n"); + if (t == ':') { + if (unqual(p->type) != inttype + && unqual(p->type) != unsignedtype) { + error("`%t' is an illegal bit-field type\n", + p->type); + p->type = inttype; + } + t = gettok(); + p->bitsize = intexpr(0, 0); + if (p->bitsize > 8*inttype->size || p->bitsize < 0) { + error("`%d' is an illegal bit-field size\n", + p->bitsize); + p->bitsize = 8*inttype->size; + } else if (p->bitsize == 0 && id) { + warning("extraneous 0-width bit field `%t %s' ignored\n", p->type, id); + + p->name = stringd(genlabel(1)); + } + p->lsb = 1; + } + else { + if (id == NULL) + error("field name missing\n"); + else if (isfunc(p->type)) + error("`%t' is an illegal field type\n", p->type); + else if (p->type->size == 0) + error("undefined size for field `%t %s'\n", + p->type, id); + } + if (isconst(p->type)) + ty->u.sym->u.s.cfields = 1; + if (isvolatile(p->type)) + ty->u.sym->u.s.vfields = 1; + n++; + if (Aflag >= 2 && n == 128) + warning("more than 127 fields in `%t'\n", ty); + if (t != ',') + break; + t = gettok(); + } + test(';', stop); + } } + { int bits = 0, off = 0, overflow = 0; + Field p, *q = &ty->u.sym->u.s.flist; + ty->align = IR->structmetric.align; + for (p = *q; p; p = p->link) { + int a = p->type->align ? p->type->align : 1; + if (p->lsb) + a = unsignedtype->align; + if (ty->op == UNION) + off = bits = 0; + else if (p->bitsize == 0 || bits == 0 + || bits - 1 + p->bitsize > 8*unsignedtype->size) { + off = add(off, bits2bytes(bits-1)); + bits = 0; + chkoverflow(off, a - 1); + off = roundup(off, a); + } + if (a > ty->align) + ty->align = a; + p->offset = off; + + if (p->lsb) { + if (bits == 0) + bits = 1; + if (IR->little_endian) + p->lsb = bits; + else + p->lsb = 8*unsignedtype->size - bits + 1 + - p->bitsize + 1; + bits += p->bitsize; + } else + off = add(off, p->type->size); + if (off + bits2bytes(bits-1) > ty->size) + ty->size = off + bits2bytes(bits-1); + if (p->name == NULL + || !('1' <= *p->name && *p->name <= '9')) { + *q = p; + q = &p->link; + } + } + *q = NULL; + chkoverflow(ty->size, ty->align - 1); + ty->size = roundup(ty->size, ty->align); + if (overflow) { + error("size of `%t' exceeds %d bytes\n", ty, inttype->u.sym->u.limits.max.i); + ty->size = inttype->u.sym->u.limits.max.i&(~(ty->align - 1)); + } } +} +static void funcdefn(int sclass, char *id, Type ty, Symbol params[], Coordinate pt) { + int i, n; + Symbol *callee, *caller, p; + Type rty = freturn(ty); + + if (isstruct(rty) && rty->size == 0) + error("illegal use of incomplete type `%t'\n", rty); + for (n = 0; params[n]; n++) + ; + if (n > 0 && params[n-1]->name == NULL) + params[--n] = NULL; + if (Aflag >= 2 && n > 31) + warning("more than 31 parameters in function `%s'\n", id); + if (ty->u.f.oldstyle) { + if (Aflag >= 1) + warning("old-style function definition for `%s'\n", id); + caller = params; + callee = newarray(n + 1, sizeof *callee, FUNC); + memcpy(callee, caller, (n+1)*sizeof *callee); + enterscope(); + assert(level == PARAM); + while (kind[t] == STATIC || istypename(t, tsym)) + decl(dclparam); + foreach(identifiers, PARAM, oldparam, callee); + + for (i = 0; (p = callee[i]) != NULL; i++) { + if (!p->defined) + callee[i] = dclparam(0, p->name, inttype, &p->src); + *caller[i] = *p; + caller[i]->sclass = AUTO; + caller[i]->type = promote(p->type); + } + p = lookup(id, identifiers); + if (p && p->scope == GLOBAL && isfunc(p->type) + && p->type->u.f.proto) { + Type *proto = p->type->u.f.proto; + for (i = 0; caller[i] && proto[i]; i++) { + Type ty = unqual(proto[i]); + if (eqtype(isenum(ty) ? ty->type : ty, + unqual(caller[i]->type), 1) == 0) + break; + else if (isenum(ty) && !isenum(unqual(caller[i]->type))) + warning("compatibility of `%t' and `%t' is compiler dependent\n", + proto[i], caller[i]->type); + } + if (proto[i] || caller[i]) + error("conflicting argument declarations for function `%s'\n", id); + + } + else { + Type *proto = newarray(n + 1, sizeof *proto, PERM); + if (Aflag >= 1) + warning("missing prototype for `%s'\n", id); + for (i = 0; i < n; i++) + proto[i] = caller[i]->type; + proto[i] = NULL; + ty = func(rty, proto, 1); + } + } else { + callee = params; + caller = newarray(n + 1, sizeof *caller, FUNC); + for (i = 0; (p = callee[i]) != NULL && p->name; i++) { + NEW(caller[i], FUNC); + *caller[i] = *p; + if (isint(p->type)) + caller[i]->type = promote(p->type); + caller[i]->sclass = AUTO; + if ('1' <= *p->name && *p->name <= '9') + error("missing name for parameter %d to function `%s'\n", i + 1, id); + + } + caller[i] = NULL; + } + for (i = 0; (p = callee[i]) != NULL; i++) + if (p->type->size == 0) { + error("undefined size for parameter `%t %s'\n", + p->type, p->name); + caller[i]->type = p->type = inttype; + } + if (Aflag >= 2 && sclass != STATIC && strcmp(id, "main") == 0) { + if (ty->u.f.oldstyle) + warning("`%t %s()' is a non-ANSI definition\n", rty, id); + else if (!(rty == inttype + && ((n == 0 && callee[0] == NULL) + || (n == 2 && callee[0]->type == inttype + && isptr(callee[1]->type) && callee[1]->type->type == charptype + && !variadic(ty))))) + warning("`%s' is a non-ANSI definition\n", typestring(ty, id)); + } + p = lookup(id, identifiers); + if (p && isfunc(p->type) && p->defined) + error("redefinition of `%s' previously defined at %w\n", + p->name, &p->src); + cfunc = dclglobal(sclass, id, ty, &pt); + cfunc->u.f.label = genlabel(1); + cfunc->u.f.callee = callee; + cfunc->u.f.pt = src; + cfunc->defined = 1; + if (xref) + use(cfunc, cfunc->src); + if (Pflag) + printproto(cfunc, cfunc->u.f.callee); + if (ncalled >= 0) + ncalled = findfunc(cfunc->name, pt.file); + labels = table(NULL, LABELS); + stmtlabs = table(NULL, LABELS); + refinc = 1.0; + regcount = 0; + codelist = &codehead; + codelist->next = NULL; + if (!IR->wants_callb && isstruct(rty)) + retv = genident(AUTO, ptr(rty), PARAM); + compound(0, NULL, 0); + + { + Code cp; + for (cp = codelist; cp->kind < Label; cp = cp->prev) + ; + if (cp->kind != Jump) { + if (rty != voidtype) { + warning("missing return value\n"); + retcode(cnsttree(inttype, 0L)); + } else + retcode(NULL); + } + } + definelab(cfunc->u.f.label); + if (events.exit) + apply(events.exit, cfunc, NULL); + walk(NULL, 0, 0); + exitscope(); + assert(level == PARAM); + foreach(identifiers, level, checkref, NULL); + if (!IR->wants_callb && isstruct(rty)) { + Symbol *a; + a = newarray(n + 2, sizeof *a, FUNC); + a[0] = retv; + memcpy(&a[1], callee, (n+1)*sizeof *callee); + callee = a; + a = newarray(n + 2, sizeof *a, FUNC); + NEW(a[0], FUNC); + *a[0] = *retv; + memcpy(&a[1], caller, (n+1)*sizeof *callee); + caller = a; + } + if (!IR->wants_argb) + for (i = 0; caller[i]; i++) + if (isstruct(caller[i]->type)) { + caller[i]->type = ptr(caller[i]->type); + callee[i]->type = ptr(callee[i]->type); + caller[i]->structarg = callee[i]->structarg = 1; + } + if (glevel > 1) for (i = 0; callee[i]; i++) callee[i]->sclass = AUTO; + if (cfunc->sclass != STATIC) + (*IR->export)(cfunc); + if (glevel && IR->stabsym) { + swtoseg(CODE); (*IR->stabsym)(cfunc); } + swtoseg(CODE); + (*IR->function)(cfunc, caller, callee, cfunc->u.f.ncalls); + if (glevel && IR->stabfend) + (*IR->stabfend)(cfunc, lineno); + foreach(stmtlabs, LABELS, checklab, NULL); + exitscope(); + expect('}'); + labels = stmtlabs = NULL; + retv = NULL; + cfunc = NULL; +} +static void oldparam(Symbol p, void *cl) { + int i; + Symbol *callee = cl; + + for (i = 0; callee[i]; i++) + if (p->name == callee[i]->name) { + callee[i] = p; + return; + } + error("declared parameter `%s' is missing\n", p->name); +} +void compound(int loop, struct swtch *swp, int lev) { + Code cp; + int nregs; + + walk(NULL, 0, 0); + cp = code(Blockbeg); + enterscope(); + assert(level >= LOCAL); + if (level == LOCAL && events.entry) + apply(events.entry, cfunc, NULL); + definept(NULL); + expect('{'); + autos = registers = NULL; + if (level == LOCAL && IR->wants_callb + && isstruct(freturn(cfunc->type))) { + retv = genident(AUTO, ptr(freturn(cfunc->type)), level); + retv->defined = 1; + retv->ref = 1; + registers = append(retv, registers); + } + while (kind[t] == CHAR || kind[t] == STATIC + || (istypename(t, tsym) && getchr() != ':')) + decl(dcllocal); + { + int i; + Symbol *a = ltov(&autos, STMT); + nregs = length(registers); + for (i = 0; a[i]; i++) + registers = append(a[i], registers); + cp->u.block.locals = ltov(®isters, FUNC); + } + if (events.blockentry) + apply(events.blockentry, cp->u.block.locals, NULL); + while (kind[t] == IF || kind[t] == ID) + statement(loop, swp, lev); + walk(NULL, 0, 0); + foreach(identifiers, level, checkref, NULL); + { + int i = nregs, j; + Symbol p; + for ( ; (p = cp->u.block.locals[i]) != NULL; i++) { + for (j = i; j > nregs + && cp->u.block.locals[j-1]->ref < p->ref; j--) + cp->u.block.locals[j] = cp->u.block.locals[j-1]; + cp->u.block.locals[j] = p; + } + } + if (events.blockexit) + apply(events.blockexit, cp->u.block.locals, NULL); + cp->u.block.level = level; + cp->u.block.identifiers = identifiers; + cp->u.block.types = types; + code(Blockend)->u.begin = cp; + if (reachable(Gen)) + definept(NULL); + if (level > LOCAL) { + exitscope(); + expect('}'); + } +} +static void checkref(Symbol p, void *cl) { + if (p->scope >= PARAM + && (isvolatile(p->type) || isfunc(p->type))) + p->addressed = 1; + if (Aflag >= 2 && p->defined && p->ref == 0) { + if (p->sclass == STATIC) + warning("static `%t %s' is not referenced\n", + p->type, p->name); + else if (p->scope == PARAM) + warning("parameter `%t %s' is not referenced\n", + p->type, p->name); + else if (p->scope >= LOCAL && p->sclass != EXTERN) + warning("local `%t %s' is not referenced\n", + p->type, p->name); + } + if (p->sclass == AUTO + && ((p->scope == PARAM && regcount == 0) + || p->scope >= LOCAL) + && !p->addressed && isscalar(p->type) && p->ref >= 3.0) + p->sclass = REGISTER; + if (level == GLOBAL && p->sclass == STATIC && !p->defined + && isfunc(p->type) && p->ref) + error("undefined static `%t %s'\n", p->type, p->name); + assert(!(level == GLOBAL && p->sclass == STATIC && !p->defined && !isfunc(p->type))); +} +static Symbol dcllocal(int sclass, char *id, Type ty, Coordinate *pos) { + Symbol p, q; + + if (sclass == 0) + sclass = isfunc(ty) ? EXTERN : AUTO; + else if (isfunc(ty) && sclass != EXTERN) { + error("invalid storage class `%k' for `%t %s'\n", + sclass, ty, id); + sclass = EXTERN; + } else if (sclass == REGISTER + && (isvolatile(ty) || isstruct(ty) || isarray(ty))) { + warning("register declaration ignored for `%t %s'\n", + ty, id); + sclass = AUTO; + } + q = lookup(id, identifiers); + if ((q && q->scope >= level) + || (q && q->scope == PARAM && level == LOCAL)) { + if (sclass == EXTERN && q->sclass == EXTERN + && eqtype(q->type, ty, 1)) + ty = compose(ty, q->type); + else + error("redeclaration of `%s' previously declared at %w\n", q->name, &q->src); + } + + assert(level >= LOCAL); + p = install(id, &identifiers, level, sclass == STATIC || sclass == EXTERN ? PERM : FUNC); + p->type = ty; + p->sclass = sclass; + p->src = *pos; + switch (sclass) { + case EXTERN: q = lookup(id, globals); + if (q == NULL || q->sclass == TYPEDEF || q->sclass == ENUM) { + q = lookup(id, externals); + if (q == NULL) { + q = install(p->name, &externals, GLOBAL, PERM); + q->type = p->type; + q->sclass = EXTERN; + q->src = src; + (*IR->defsymbol)(q); + } + } + if (!eqtype(p->type, q->type, 1)) + warning("declaration of `%s' does not match previous declaration at %w\n", q->name, &q->src); + + p->u.alias = q; break; + case STATIC: (*IR->defsymbol)(p); + initglobal(p, 0); + if (!p->defined) { + if (p->type->size > 0) { + defglobal(p, BSS); + (*IR->space)(p->type->size); + } else + error("undefined size for `%t %s'\n", + p->type, p->name); + } + p->defined = 1; break; + case REGISTER: registers = append(p, registers); + regcount++; + p->defined = 1; + break; + case AUTO: autos = append(p, autos); + p->defined = 1; break; + default: assert(0); + } + if (t == '=') { + Tree e; + if (sclass == EXTERN) + error("illegal initialization of `extern %s'\n", id); + t = gettok(); + definept(NULL); + if (isscalar(p->type) + || (isstruct(p->type) && t != '{')) { + if (t == '{') { + t = gettok(); + e = expr1(0); + expect('}'); + } else + e = expr1(0); + } else { + Symbol t1; + Type ty = p->type, ty1 = ty; + while (isarray(ty1)) + ty1 = ty1->type; + if (!isconst(ty) && (!isarray(ty) || !isconst(ty1))) + ty = qual(CONST, ty); + t1 = genident(STATIC, ty, GLOBAL); + initglobal(t1, 1); + if (isarray(p->type) && p->type->size == 0 + && t1->type->size > 0) + p->type = array(p->type->type, + t1->type->size/t1->type->type->size, 0); + e = idtree(t1); + } + walk(root(asgn(p, e)), 0, 0); + p->ref = 1; + } + if (!isfunc(p->type) && p->defined && p->type->size <= 0) + error("undefined size for `%t %s'\n", p->type, id); + return p; +} +void finalize(void) { + foreach(externals, GLOBAL, doextern, NULL); + foreach(identifiers, GLOBAL, doglobal, NULL); + foreach(identifiers, GLOBAL, checkref, NULL); + foreach(constants, CONSTANTS, doconst, NULL); +} +static void doextern(Symbol p, void *cl) { + (*IR->import)(p); +} +static void doglobal(Symbol p, void *cl) { + if (!p->defined && (p->sclass == EXTERN + || (isfunc(p->type) && p->sclass == AUTO))) + (*IR->import)(p); + else if (!p->defined && !isfunc(p->type) + && (p->sclass == AUTO || p->sclass == STATIC)) { + if (isarray(p->type) + && p->type->size == 0 && p->type->type->size > 0) + p->type = array(p->type->type, 1, 0); + if (p->type->size > 0) { + defglobal(p, BSS); + (*IR->space)(p->type->size); + if (glevel > 0 && IR->stabsym) + (*IR->stabsym)(p); + } else + error("undefined size for `%t %s'\n", + p->type, p->name); + p->defined = 1; + } + if (Pflag + && !isfunc(p->type) + && !p->generated && p->sclass != EXTERN) + printdecl(p, p->type); +} +void doconst(Symbol p, void *cl) { + if (p->u.c.loc) { + assert(p->u.c.loc->u.seg == 0); + defglobal(p->u.c.loc, LIT); + if (isarray(p->type) && p->type->type == widechar) { + unsigned int *s = p->u.c.v.p; + int n = p->type->size/widechar->size; + while (n-- > 0) { + Value v; + v.u = *s++; + (*IR->defconst)(widechar->op, widechar->size, v); + } + } else if (isarray(p->type)) + (*IR->defstring)(p->type->size, p->u.c.v.p); + else + (*IR->defconst)(p->type->op, p->type->size, p->u.c.v); + p->u.c.loc = NULL; + } +} +void checklab(Symbol p, void *cl) { + if (!p->defined) + error("undefined label `%s'\n", p->name); + p->defined = 1; +} + +Type enumdcl(void) { + char *tag; + Type ty; + Symbol p = {0}; + Coordinate pos; + + t = gettok(); + pos = src; + if (t == ID) { + tag = token; + t = gettok(); + } else + tag = ""; + if (t == '{') { + static char follow[] = { IF, 0 }; + int n = 0; + long k = -1; + List idlist = 0; + ty = newstruct(ENUM, tag); + t = gettok(); + if (t != ID) + error("expecting an enumerator identifier\n"); + while (t == ID) { + char *id = token; + Coordinate s; + if (tsym && tsym->scope == level) + error("redeclaration of `%s' previously declared at %w\n", + token, &tsym->src); + s = src; + t = gettok(); + if (t == '=') { + t = gettok(); + k = intexpr(0, 0); + } else { + if (k == inttype->u.sym->u.limits.max.i) + error("overflow in value for enumeration constant `%s'\n", id); + k++; + } + p = install(id, &identifiers, level, level < LOCAL ? PERM : FUNC); + p->src = s; + p->type = ty; + p->sclass = ENUM; + p->u.value = k; + idlist = append(p, idlist); + n++; + if (Aflag >= 2 && n == 128) + warning("more than 127 enumeration constants in `%t'\n", ty); + if (t != ',') + break; + t = gettok(); + if (Aflag >= 2 && t == '}') + warning("non-ANSI trailing comma in enumerator list\n"); + } + test('}', follow); + ty->type = inttype; + ty->size = ty->type->size; + ty->align = ty->type->align; + ty->u.sym->u.idlist = ltov(&idlist, PERM); + ty->u.sym->defined = 1; + } else if ((p = lookup(tag, types)) != NULL && p->type->op == ENUM) { + ty = p->type; + if (t == ';') + error("empty declaration\n"); + } else { + error("unknown enumeration `%s'\n", tag); + ty = newstruct(ENUM, tag); + ty->type = inttype; + } + if (*tag && xref) + use(p, pos); + return ty; +} + +Type typename(void) { + Type ty = specifier(NULL); + + if (t == '*' || t == '(' || t == '[') { + ty = dclr(ty, NULL, NULL, 1); + if (Aflag >= 1 && !hasproto(ty)) + warning("missing prototype\n"); + } + return ty; +} + diff --git a/code/tools/lcc/src/enode.c b/code/tools/lcc/src/enode.c new file mode 100644 index 0000000..0f2adbd --- /dev/null +++ b/code/tools/lcc/src/enode.c @@ -0,0 +1,545 @@ +#include "c.h" + + +static Tree addtree(int, Tree, Tree); +static Tree andtree(int, Tree, Tree); +static Tree cmptree(int, Tree, Tree); +static int compatible(Type, Type); +static int isnullptr(Tree e); +static Tree multree(int, Tree, Tree); +static Tree subtree(int, Tree, Tree); +#define isvoidptr(ty) \ + (isptr(ty) && unqual(ty->type) == voidtype) + +Tree (*optree[])(int, Tree, Tree) = { +#define xx(a,b,c,d,e,f,g) e, +#define yy(a,b,c,d,e,f,g) e, +#include "token.h" +}; +Tree call(Tree f, Type fty, Coordinate src) { + int n = 0; + Tree args = NULL, r = NULL, e; + Type *proto, rty = unqual(freturn(fty)); + Symbol t3 = NULL; + + if (fty->u.f.oldstyle) + proto = NULL; + else + proto = fty->u.f.proto; + if (hascall(f)) + r = f; + if (isstruct(rty)) + { + t3 = temporary(AUTO, unqual(rty)); + if (rty->size == 0) + error("illegal use of incomplete type `%t'\n", rty); + } + if (t != ')') + for (;;) { + Tree q = pointer(expr1(0)); + if (proto && *proto && *proto != voidtype) + { + Type aty; + q = value(q); + aty = assign(*proto, q); + if (aty) + q = cast(q, aty); + else + error("type error in argument %d to %s; found `%t' expected `%t'\n", n + 1, funcname(f), + + q->type, *proto); + if ((isint(q->type) || isenum(q->type)) + && q->type->size != inttype->size) + q = cast(q, promote(q->type)); + ++proto; + } + else + { + if (!fty->u.f.oldstyle && *proto == NULL) + error("too many arguments to %s\n", funcname(f)); + q = value(q); + if (isarray(q->type) || q->type->size == 0) + error("type error in argument %d to %s; `%t' is illegal\n", n + 1, funcname(f), q->type); + + else + q = cast(q, promote(q->type)); + } + if (!IR->wants_argb && isstruct(q->type)) { + if (iscallb(q)) + q = addrof(q); + else { + Symbol t1 = temporary(AUTO, unqual(q->type)); + q = asgn(t1, q); + q = tree(RIGHT, ptr(t1->type), + root(q), lvalue(idtree(t1))); + } + } + if (q->type->size == 0) + q->type = inttype; + if (hascall(q)) + r = r ? tree(RIGHT, voidtype, r, q) : q; + args = tree(mkop(ARG, q->type), q->type, q, args); + n++; + if (Aflag >= 2 && n == 32) + warning("more than 31 arguments in a call to %s\n", + funcname(f)); + if (t != ',') + break; + t = gettok(); + } + expect(')'); + if (proto && *proto && *proto != voidtype) + error("insufficient number of arguments to %s\n", + funcname(f)); + if (r) + args = tree(RIGHT, voidtype, r, args); + e = calltree(f, rty, args, t3); + if (events.calls) + apply(events.calls, &src, &e); + return e; +} +Tree calltree(Tree f, Type ty, Tree args, Symbol t3) { + Tree p; + + if (args) + f = tree(RIGHT, f->type, args, f); + if (isstruct(ty)) + assert(t3), + p = tree(RIGHT, ty, + tree(CALL+B, ty, f, addrof(idtree(t3))), + idtree(t3)); + else { + Type rty = ty; + if (isenum(ty)) + rty = unqual(ty)->type; + if (!isfloat(rty)) + rty = promote(rty); + p = tree(mkop(CALL, rty), rty, f, NULL); + if (isptr(ty) || p->type->size > ty->size) + p = cast(p, ty); + } + return p; +} +Tree vcall(Symbol func, Type ty, ...) { + va_list ap; + Tree args = NULL, e, f = pointer(idtree(func)), r = NULL; + + assert(isfunc(func->type)); + if (ty == NULL) + ty = freturn(func->type); + va_start(ap, ty); + while ((e = va_arg(ap, Tree)) != NULL) { + if (hascall(e)) + r = r == NULL ? e : tree(RIGHT, voidtype, r, e); + args = tree(mkop(ARG, e->type), e->type, e, args); + } + va_end(ap); + if (r != NULL) + args = tree(RIGHT, voidtype, r, args); + return calltree(f, ty, args, NULL); +} +int iscallb(Tree e) { + return e->op == RIGHT && e->kids[0] && e->kids[1] + && e->kids[0]->op == CALL+B + && e->kids[1]->op == INDIR+B + && isaddrop(e->kids[1]->kids[0]->op) + && e->kids[1]->kids[0]->u.sym->temporary; +} + +static Tree addtree(int op, Tree l, Tree r) { + Type ty = inttype; + + if (isarith(l->type) && isarith(r->type)) { + ty = binary(l->type, r->type); + l = cast(l, ty); + r = cast(r, ty); + } else if (isptr(l->type) && isint(r->type)) + return addtree(ADD, r, l); + else if ( isptr(r->type) && isint(l->type) + && !isfunc(r->type->type)) + { + long n; + ty = unqual(r->type); + n = unqual(ty->type)->size; + if (n == 0) + error("unknown size for type `%t'\n", ty->type); + l = cast(l, promote(l->type)); + if (n > 1) + l = multree(MUL, cnsttree(signedptr, n), l); + if (YYcheck && !isaddrop(r->op)) /* omit */ + return nullcall(ty, YYcheck, r, l); /* omit */ + return simplify(ADD, ty, l, r); + } + + else + typeerror(op, l, r); + return simplify(op, ty, l, r); +} + +Tree cnsttree(Type ty, ...) { + Tree p = tree(mkop(CNST,ty), ty, NULL, NULL); + va_list ap; + + va_start(ap, ty); + switch (ty->op) { + case INT: p->u.v.i = va_arg(ap, long); break; + case UNSIGNED:p->u.v.u = va_arg(ap, unsigned long)&ones(8*ty->size); break; + case FLOAT: p->u.v.d = va_arg(ap, long double); break; + case POINTER: p->u.v.p = va_arg(ap, void *); break; + default: assert(0); + } + va_end(ap); + return p; +} + +Tree consttree(unsigned n, Type ty) { + if (isarray(ty)) + ty = atop(ty); + else assert(isint(ty)); + return cnsttree(ty, (unsigned long)n); +} +static Tree cmptree(int op, Tree l, Tree r) { + Type ty; + + if (isarith(l->type) && isarith(r->type)) { + ty = binary(l->type, r->type); + l = cast(l, ty); + r = cast(r, ty); + } else if (compatible(l->type, r->type)) { + ty = unsignedptr; + l = cast(l, ty); + r = cast(r, ty); + } else { + ty = unsignedtype; + typeerror(op, l, r); + } + return simplify(mkop(op,ty), inttype, l, r); +} +static int compatible(Type ty1, Type ty2) { + return isptr(ty1) && !isfunc(ty1->type) + && isptr(ty2) && !isfunc(ty2->type) + && eqtype(unqual(ty1->type), unqual(ty2->type), 0); +} +static int isnullptr(Tree e) { + Type ty = unqual(e->type); + + return generic(e->op) == CNST + && ((ty->op == INT && e->u.v.i == 0) + || (ty->op == UNSIGNED && e->u.v.u == 0) + || (isvoidptr(ty) && e->u.v.p == NULL)); +} +Tree eqtree(int op, Tree l, Tree r) { + Type xty = l->type, yty = r->type; + + if ((isptr(xty) && isnullptr(r)) + || (isptr(xty) && !isfunc(xty->type) && isvoidptr(yty)) + || (isptr(xty) && isptr(yty) + && eqtype(unqual(xty->type), unqual(yty->type), 1))) { + Type ty = unsignedptr; + l = cast(l, ty); + r = cast(r, ty); + return simplify(mkop(op,ty), inttype, l, r); + } + if ((isptr(yty) && isnullptr(l)) + || (isptr(yty) && !isfunc(yty->type) && isvoidptr(xty))) + return eqtree(op, r, l); + return cmptree(op, l, r); +} + +Type assign(Type xty, Tree e) { + Type yty = unqual(e->type); + + xty = unqual(xty); + if (isenum(xty)) + xty = xty->type; + if (xty->size == 0 || yty->size == 0) + return NULL; + if ( (isarith(xty) && isarith(yty)) + || (isstruct(xty) && xty == yty)) + return xty; + if (isptr(xty) && isnullptr(e)) + return xty; + if (((isvoidptr(xty) && isptr(yty)) + || (isptr(xty) && isvoidptr(yty))) + && ( (isconst(xty->type) || !isconst(yty->type)) + && (isvolatile(xty->type) || !isvolatile(yty->type)))) + return xty; + + if ((isptr(xty) && isptr(yty) + && eqtype(unqual(xty->type), unqual(yty->type), 1)) + && ( (isconst(xty->type) || !isconst(yty->type)) + && (isvolatile(xty->type) || !isvolatile(yty->type)))) + return xty; + if (isptr(xty) && isptr(yty) + && ( (isconst(xty->type) || !isconst(yty->type)) + && (isvolatile(xty->type) || !isvolatile(yty->type)))) { + Type lty = unqual(xty->type), rty = unqual(yty->type); + if ((isenum(lty) && rty == inttype) + || (isenum(rty) && lty == inttype)) { + if (Aflag >= 1) + warning("assignment between `%t' and `%t' is compiler-dependent\n", + xty, yty); + return xty; + } + } + return NULL; +} +Tree asgntree(int op, Tree l, Tree r) { + Type aty, ty; + + r = pointer(r); + ty = assign(l->type, r); + if (ty) + r = cast(r, ty); + else { + typeerror(ASGN, l, r); + if (r->type == voidtype) + r = retype(r, inttype); + ty = r->type; + } + if (l->op != FIELD) + l = lvalue(l); + aty = l->type; + if (isptr(aty)) + aty = unqual(aty)->type; + if ( isconst(aty) + || (isstruct(aty) && unqual(aty)->u.sym->u.s.cfields)) { + if (isaddrop(l->op) + && !l->u.sym->computed && !l->u.sym->generated) + error("assignment to const identifier `%s'\n", + l->u.sym->name); + else + error("assignment to const location\n"); + } + if (l->op == FIELD) { + long n = 8*l->u.field->type->size - fieldsize(l->u.field); + if (n > 0 && isunsigned(l->u.field->type)) + r = bittree(BAND, r, + cnsttree(r->type, (unsigned long)fieldmask(l->u.field))); + else if (n > 0) { + if (r->op == CNST+I) { + n = r->u.v.i; + if (n&(1<<(fieldsize(l->u.field)-1))) + n |= ~0UL<u.field); + r = cnsttree(r->type, n); + } else + r = shtree(RSH, + shtree(LSH, r, cnsttree(inttype, n)), + cnsttree(inttype, n)); + } + } + if (isstruct(ty) && isaddrop(l->op) && iscallb(r)) + return tree(RIGHT, ty, + tree(CALL+B, ty, r->kids[0]->kids[0], l), + idtree(l->u.sym)); + return tree(mkop(op,ty), ty, l, r); +} +Tree condtree(Tree e, Tree l, Tree r) { + Symbol t1; + Type ty, xty = l->type, yty = r->type; + Tree p; + + if (isarith(xty) && isarith(yty)) + ty = binary(xty, yty); + else if (eqtype(xty, yty, 1)) + ty = unqual(xty); + else if (isptr(xty) && isnullptr(r)) + ty = xty; + else if (isnullptr(l) && isptr(yty)) + ty = yty; + else if ((isptr(xty) && !isfunc(xty->type) && isvoidptr(yty)) + || (isptr(yty) && !isfunc(yty->type) && isvoidptr(xty))) + ty = voidptype; + else if ((isptr(xty) && isptr(yty) + && eqtype(unqual(xty->type), unqual(yty->type), 1))) + ty = xty; + else { + typeerror(COND, l, r); + return consttree(0, inttype); + } + if (isptr(ty)) { + ty = unqual(unqual(ty)->type); + if ((isptr(xty) && isconst(unqual(xty)->type)) + || (isptr(yty) && isconst(unqual(yty)->type))) + ty = qual(CONST, ty); + if ((isptr(xty) && isvolatile(unqual(xty)->type)) + || (isptr(yty) && isvolatile(unqual(yty)->type))) + ty = qual(VOLATILE, ty); + ty = ptr(ty); + } + switch (e->op) { + case CNST+I: return cast(e->u.v.i != 0 ? l : r, ty); + case CNST+U: return cast(e->u.v.u != 0 ? l : r, ty); + case CNST+P: return cast(e->u.v.p != 0 ? l : r, ty); + case CNST+F: return cast(e->u.v.d != 0.0 ? l : r, ty); + } + if (ty != voidtype && ty->size > 0) { + t1 = genident(REGISTER, unqual(ty), level); + /* t1 = temporary(REGISTER, unqual(ty)); */ + l = asgn(t1, l); + r = asgn(t1, r); + } else + t1 = NULL; + p = tree(COND, ty, cond(e), + tree(RIGHT, ty, root(l), root(r))); + p->u.sym = t1; + return p; +} +/* addrof - address of p */ +Tree addrof(Tree p) { + Tree q = p; + + for (;;) + switch (generic(q->op)) { + case RIGHT: + assert(q->kids[0] || q->kids[1]); + q = q->kids[1] ? q->kids[1] : q->kids[0]; + continue; + case ASGN: + q = q->kids[1]; + continue; + case COND: { + Symbol t1 = q->u.sym; + q->u.sym = 0; + q = idtree(t1); + /* fall thru */ + } + case INDIR: + if (p == q) + return q->kids[0]; + q = q->kids[0]; + return tree(RIGHT, q->type, root(p), q); + default: + error("addressable object required\n"); + return value(p); + } +} + +/* andtree - construct tree for l [&& ||] r */ +static Tree andtree(int op, Tree l, Tree r) { + if (!isscalar(l->type) || !isscalar(r->type)) + typeerror(op, l, r); + return simplify(op, inttype, cond(l), cond(r)); +} + +/* asgn - generate tree for assignment of expr e to symbol p sans qualifiers */ +Tree asgn(Symbol p, Tree e) { + if (isarray(p->type)) + e = tree(ASGN+B, p->type, idtree(p), + tree(INDIR+B, e->type, e, NULL)); + else { + Type ty = p->type; + p->type = unqual(p->type); + if (isstruct(p->type) && p->type->u.sym->u.s.cfields) { + p->type->u.sym->u.s.cfields = 0; + e = asgntree(ASGN, idtree(p), e); + p->type->u.sym->u.s.cfields = 1; + } else + e = asgntree(ASGN, idtree(p), e); + p->type = ty; + } + return e; +} + +/* bittree - construct tree for l [& | ^ %] r */ +Tree bittree(int op, Tree l, Tree r) { + Type ty = inttype; + + if (isint(l->type) && isint(r->type)) { + ty = binary(l->type, r->type); + l = cast(l, ty); + r = cast(r, ty); + } else + typeerror(op, l, r); + return simplify(op, ty, l, r); +} + +/* multree - construct tree for l [* /] r */ +static Tree multree(int op, Tree l, Tree r) { + Type ty = inttype; + + if (isarith(l->type) && isarith(r->type)) { + ty = binary(l->type, r->type); + l = cast(l, ty); + r = cast(r, ty); + } else + typeerror(op, l, r); + return simplify(op, ty, l, r); +} + +/* shtree - construct tree for l [>> <<] r */ +Tree shtree(int op, Tree l, Tree r) { + Type ty = inttype; + + if (isint(l->type) && isint(r->type)) { + ty = promote(l->type); + l = cast(l, ty); + r = cast(r, inttype); + } else + typeerror(op, l, r); + return simplify(op, ty, l, r); +} + +/* subtree - construct tree for l - r */ +static Tree subtree(int op, Tree l, Tree r) { + long n; + Type ty = inttype; + + if (isarith(l->type) && isarith(r->type)) { + ty = binary(l->type, r->type); + l = cast(l, ty); + r = cast(r, ty); + } else if (isptr(l->type) && !isfunc(l->type->type) && isint(r->type)) { + ty = unqual(l->type); + n = unqual(ty->type)->size; + if (n == 0) + error("unknown size for type `%t'\n", ty->type); + r = cast(r, promote(r->type)); + if (n > 1) + r = multree(MUL, cnsttree(signedptr, n), r); + if (isunsigned(r->type)) + r = cast(r, unsignedptr); + else + r = cast(r, signedptr); + return simplify(SUB+P, ty, l, r); + } else if (compatible(l->type, r->type)) { + ty = unqual(l->type); + n = unqual(ty->type)->size; + if (n == 0) + error("unknown size for type `%t'\n", ty->type); + l = simplify(SUB+U, unsignedptr, + cast(l, unsignedptr), cast(r, unsignedptr)); + return simplify(DIV+I, longtype, + cast(l, longtype), cnsttree(longtype, n)); + } else + typeerror(op, l, r); + return simplify(op, ty, l, r); +} + +/* typeerror - issue "operands of op have illegal types `l' and `r'" */ +void typeerror(int op, Tree l, Tree r) { + int i; + static struct { int op; char *name; } ops[] = { + {ASGN, "="}, {INDIR, "*"}, {NEG, "-"}, + {ADD, "+"}, {SUB, "-"}, {LSH, "<<"}, + {MOD, "%"}, {RSH, ">>"}, {BAND, "&"}, + {BCOM, "~"}, {BOR, "|"}, {BXOR, "^"}, + {DIV, "/"}, {MUL, "*"}, {EQ, "=="}, + {GE, ">="}, {GT, ">"}, {LE, "<="}, + {LT, "<"}, {NE, "!="}, {AND, "&&"}, + {NOT, "!"}, {OR, "||"}, {COND, "?:"}, + {0, 0} + }; + + op = generic(op); + for (i = 0; ops[i].op; i++) + if (op == ops[i].op) + break; + assert(ops[i].name); + if (r) + error("operands of %s have illegal types `%t' and `%t'\n", + ops[i].name, l->type, r->type); + else + error("operand of unary %s has illegal type `%t'\n", ops[i].name, + l->type); +} diff --git a/code/tools/lcc/src/error.c b/code/tools/lcc/src/error.c new file mode 100644 index 0000000..2187c10 --- /dev/null +++ b/code/tools/lcc/src/error.c @@ -0,0 +1,137 @@ +#include "c.h" + + +static void printtoken(void); +int errcnt = 0; +int errlimit = 20; +char kind[] = { +#define xx(a,b,c,d,e,f,g) f, +#define yy(a,b,c,d,e,f,g) f, +#include "token.h" +}; +int wflag; /* != 0 to suppress warning messages */ + +void test(int tok, char set[]) { + if (t == tok) + t = gettok(); + else { + expect(tok); + skipto(tok, set); + if (t == tok) + t = gettok(); + } +} +void expect(int tok) { + if (t == tok) + t = gettok(); + else { + error("syntax error; found"); + printtoken(); + fprint(stderr, " expecting `%k'\n", tok); + } +} +void error(const char *fmt, ...) { + va_list ap; + + if (errcnt++ >= errlimit) { + errcnt = -1; + error("too many errors\n"); + exit(1); + } + va_start(ap, fmt); + if (firstfile != file && firstfile && *firstfile) + fprint(stderr, "%s: ", firstfile); + fprint(stderr, "%w: ", &src); + vfprint(stderr, NULL, fmt, ap); + va_end(ap); +} + +void skipto(int tok, char set[]) { + int n; + char *s; + + assert(set); + for (n = 0; t != EOI && t != tok; t = gettok()) { + for (s = set; *s && kind[t] != *s; s++) + ; + if (kind[t] == *s) + break; + if (n++ == 0) + error("skipping"); + if (n <= 8) + printtoken(); + else if (n == 9) + fprint(stderr, " ..."); + } + if (n > 8) { + fprint(stderr, " up to"); + printtoken(); + } + if (n > 0) + fprint(stderr, "\n"); +} +/* fatal - issue fatal error message and exit */ +int fatal(const char *name, const char *fmt, int n) { + print("\n"); + errcnt = -1; + error("compiler error in %s--", name); + fprint(stderr, fmt, n); + exit(EXIT_FAILURE); + return 0; +} + +/* printtoken - print current token preceeded by a space */ +static void printtoken(void) { + switch (t) { + case ID: fprint(stderr, " `%s'", token); break; + case ICON: + fprint(stderr, " `%s'", vtoa(tsym->type, tsym->u.c.v)); + break; + case SCON: { + int i, n; + if (ischar(tsym->type->type)) { + char *s = tsym->u.c.v.p; + n = tsym->type->size; + fprint(stderr, " \""); + for (i = 0; i < 20 && i < n && *s; s++, i++) + if (*s < ' ' || *s >= 0177) + fprint(stderr, "\\%o", *s); + else + fprint(stderr, "%c", *s); + } else { /* wchar_t string */ + unsigned int *s = tsym->u.c.v.p; + assert(tsym->type->type->size == widechar->size); + n = tsym->type->size/widechar->size; + fprint(stderr, " L\""); + for (i = 0; i < 20 && i < n && *s; s++, i++) + if (*s < ' ' || *s >= 0177) + fprint(stderr, "\\x%x", *s); + else + fprint(stderr, "%c", *s); + } + if (i < n) + fprint(stderr, " ..."); + else + fprint(stderr, "\""); + break; + } + case FCON: + fprint(stderr, " `%S'", token, (char*)cp - token); + break; + case '`': case '\'': fprint(stderr, " \"%k\"", t); break; + default: fprint(stderr, " `%k'", t); + } +} + +/* warning - issue warning error message */ +void warning(const char *fmt, ...) { + va_list ap; + + va_start(ap, fmt); + if (wflag == 0) { + errcnt--; + error("warning: "); + vfprint(stderr, NULL, fmt, ap); + } + va_end(ap); +} diff --git a/code/tools/lcc/src/event.c b/code/tools/lcc/src/event.c new file mode 100644 index 0000000..4549e3f --- /dev/null +++ b/code/tools/lcc/src/event.c @@ -0,0 +1,28 @@ +#include "c.h" + + +struct entry { + Apply func; + void *cl; +}; + +Events events; +void attach(Apply func, void *cl, List *list) { + struct entry *p; + + NEW(p, PERM); + p->func = func; + p->cl = cl; + *list = append(p, *list); +} +void apply(List event, void *arg1, void *arg2) { + if (event) { + List lp = event; + do { + struct entry *p = lp->x; + (*p->func)(p->cl, arg1, arg2); + lp = lp->link; + } while (lp != event); + } +} + diff --git a/code/tools/lcc/src/expr.c b/code/tools/lcc/src/expr.c new file mode 100644 index 0000000..f20a090 --- /dev/null +++ b/code/tools/lcc/src/expr.c @@ -0,0 +1,711 @@ +#include "c.h" + + +static char prec[] = { +#define xx(a,b,c,d,e,f,g) c, +#define yy(a,b,c,d,e,f,g) c, +#include "token.h" +}; +static int oper[] = { +#define xx(a,b,c,d,e,f,g) d, +#define yy(a,b,c,d,e,f,g) d, +#include "token.h" +}; +float refinc = 1.0; +static Tree expr2(void); +static Tree expr3(int); +static Tree nullcheck(Tree); +static Tree postfix(Tree); +static Tree unary(void); +static Tree primary(void); +static Type super(Type ty); + +static Type super(Type ty) { + switch (ty->op) { + case INT: + if (ty->size < inttype->size) + return inttype; + break; + case UNSIGNED: + if (ty->size < unsignedtype->size) + return unsignedtype; + break; + case POINTER: + return unsignedptr; + } + return ty; +} +Tree expr(int tok) { + static char stop[] = { IF, ID, '}', 0 }; + Tree p = expr1(0); + + while (t == ',') { + Tree q; + t = gettok(); + q = pointer(expr1(0)); + p = tree(RIGHT, q->type, root(value(p)), q); + } + if (tok) + test(tok, stop); + return p; +} +Tree expr0(int tok) { + return root(expr(tok)); +} +Tree expr1(int tok) { + static char stop[] = { IF, ID, 0 }; + Tree p = expr2(); + + if (t == '=' + || (prec[t] >= 6 && prec[t] <= 8) + || (prec[t] >= 11 && prec[t] <= 13)) { + int op = t; + t = gettok(); + if (oper[op] == ASGN) + p = asgntree(ASGN, p, value(expr1(0))); + else + { + expect('='); + p = incr(op, p, expr1(0)); + } + } + if (tok) + test(tok, stop); + return p; +} +Tree incr(int op, Tree v, Tree e) { + return asgntree(ASGN, v, (*optree[op])(oper[op], v, e)); +} +static Tree expr2(void) { + Tree p = expr3(4); + + if (t == '?') { + Tree l, r; + Coordinate pts[2]; + if (Aflag > 1 && isfunc(p->type)) + warning("%s used in a conditional expression\n", + funcname(p)); + p = pointer(p); + t = gettok(); + pts[0] = src; + l = pointer(expr(':')); + pts[1] = src; + r = pointer(expr2()); + if (events.points) + { + apply(events.points, &pts[0], &l); + apply(events.points, &pts[1], &r); + } + p = condtree(p, l, r); + } + return p; +} +Tree value(Tree p) { + int op = generic(rightkid(p)->op); + + if (p->type != voidtype + && (op==AND || op==OR || op==NOT || op==EQ || op==NE + || op== LE || op==LT || op== GE || op==GT)) + p = condtree(p, consttree(1, inttype), + consttree(0, inttype)); + return p; +} +static Tree expr3(int k) { + int k1; + Tree p = unary(); + + for (k1 = prec[t]; k1 >= k; k1--) + while (prec[t] == k1 && *cp != '=') { + Tree r; + Coordinate pt; + int op = t; + t = gettok(); + pt = src; + p = pointer(p); + if (op == ANDAND || op == OROR) { + r = pointer(expr3(k1)); + if (events.points) + apply(events.points, &pt, &r); + } else + r = pointer(expr3(k1 + 1)); + p = (*optree[op])(oper[op], p, r); + } + return p; +} +static Tree unary(void) { + Tree p; + + switch (t) { + case '*': t = gettok(); p = unary(); p = pointer(p); + if (isptr(p->type) + && (isfunc(p->type->type) || isarray(p->type->type))) + p = retype(p, p->type->type); + else { + if (YYnull) + p = nullcheck(p); + p = rvalue(p); + } break; + case '&': t = gettok(); p = unary(); if (isarray(p->type) || isfunc(p->type)) + p = retype(p, ptr(p->type)); + else + p = lvalue(p); + if (isaddrop(p->op) && p->u.sym->sclass == REGISTER) + error("invalid operand of unary &; `%s' is declared register\n", p->u.sym->name); + + else if (isaddrop(p->op)) + p->u.sym->addressed = 1; + break; + case '+': t = gettok(); p = unary(); p = pointer(p); + if (isarith(p->type)) + p = cast(p, promote(p->type)); + else + typeerror(ADD, p, NULL); break; + case '-': t = gettok(); p = unary(); p = pointer(p); + if (isarith(p->type)) { + Type ty = promote(p->type); + p = cast(p, ty); + if (isunsigned(ty)) { + warning("unsigned operand of unary -\n"); + p = simplify(ADD, ty, simplify(BCOM, ty, p, NULL), cnsttree(ty, 1UL)); + } else + p = simplify(NEG, ty, p, NULL); + } else + typeerror(SUB, p, NULL); break; + case '~': t = gettok(); p = unary(); p = pointer(p); + if (isint(p->type)) { + Type ty = promote(p->type); + p = simplify(BCOM, ty, cast(p, ty), NULL); + } else + typeerror(BCOM, p, NULL); break; + case '!': t = gettok(); p = unary(); p = pointer(p); + if (isscalar(p->type)) + p = simplify(NOT, inttype, cond(p), NULL); + else + typeerror(NOT, p, NULL); break; + case INCR: t = gettok(); p = unary(); p = incr(INCR, pointer(p), consttree(1, inttype)); break; + case DECR: t = gettok(); p = unary(); p = incr(DECR, pointer(p), consttree(1, inttype)); break; + case TYPECODE: case SIZEOF: { int op = t; + Type ty; + p = NULL; + t = gettok(); + if (t == '(') { + t = gettok(); + if (istypename(t, tsym)) { + ty = typename(); + expect(')'); + } else { + p = postfix(expr(')')); + ty = p->type; + } + } else { + p = unary(); + ty = p->type; + } + assert(ty); + if (op == TYPECODE) + p = cnsttree(inttype, (long)ty->op); + else { + if (isfunc(ty) || ty->size == 0) + error("invalid type argument `%t' to `sizeof'\n", ty); + else if (p && rightkid(p)->op == FIELD) + error("`sizeof' applied to a bit field\n"); + p = cnsttree(unsignedlong, (unsigned long)ty->size); + } } break; + case '(': + t = gettok(); + if (istypename(t, tsym)) { + Type ty, ty1 = typename(), pty; + expect(')'); + ty = unqual(ty1); + if (isenum(ty)) { + Type ty2 = ty->type; + if (isconst(ty1)) + ty2 = qual(CONST, ty2); + if (isvolatile(ty1)) + ty2 = qual(VOLATILE, ty2); + ty1 = ty2; + ty = ty->type; + } + p = pointer(unary()); + pty = p->type; + if (isenum(pty)) + pty = pty->type; + if ((isarith(pty) && isarith(ty)) + || (isptr(pty) && isptr(ty))) { + explicitCast++; + p = cast(p, ty); + explicitCast--; + } else if ((isptr(pty) && isint(ty)) + || (isint(pty) && isptr(ty))) { + if (Aflag >= 1 && ty->size < pty->size) + warning("conversion from `%t' to `%t' is compiler dependent\n", p->type, ty); + + p = cast(p, ty); + } else if (ty != voidtype) { + error("cast from `%t' to `%t' is illegal\n", + p->type, ty1); + ty1 = inttype; + } + if (generic(p->op) == INDIR || ty->size == 0) + p = tree(RIGHT, ty1, NULL, p); + else + p = retype(p, ty1); + } else + p = postfix(expr(')')); + break; + default: + p = postfix(primary()); + } + return p; +} + +static Tree postfix(Tree p) { + for (;;) + switch (t) { + case INCR: p = tree(RIGHT, p->type, + tree(RIGHT, p->type, + p, + incr(t, p, consttree(1, inttype))), + p); + t = gettok(); break; + case DECR: p = tree(RIGHT, p->type, + tree(RIGHT, p->type, + p, + incr(t, p, consttree(1, inttype))), + p); + t = gettok(); break; + case '[': { + Tree q; + t = gettok(); + q = expr(']'); + if (YYnull) { + if (isptr(p->type)) + p = nullcheck(p); + else if (isptr(q->type)) + q = nullcheck(q); + } + p = (*optree['+'])(ADD, pointer(p), pointer(q)); + if (isptr(p->type) && isarray(p->type->type)) + p = retype(p, p->type->type); + else + p = rvalue(p); + } break; + case '(': { + Type ty; + Coordinate pt; + p = pointer(p); + if (isptr(p->type) && isfunc(p->type->type)) + ty = p->type->type; + else { + error("found `%t' expected a function\n", p->type); + ty = func(voidtype, NULL, 1); + p = retype(p, ptr(ty)); + } + pt = src; + t = gettok(); + p = call(p, ty, pt); + } break; + case '.': t = gettok(); + if (t == ID) { + if (isstruct(p->type)) { + Tree q = addrof(p); + p = field(q, token); + q = rightkid(q); + if (isaddrop(q->op) && q->u.sym->temporary) + p = tree(RIGHT, p->type, p, NULL); + } else + error("left operand of . has incompatible type `%t'\n", + p->type); + t = gettok(); + } else + error("field name expected\n"); break; + case DEREF: t = gettok(); + p = pointer(p); + if (t == ID) { + if (isptr(p->type) && isstruct(p->type->type)) { + if (YYnull) + p = nullcheck(p); + p = field(p, token); + } else + error("left operand of -> has incompatible type `%t'\n", p->type); + + t = gettok(); + } else + error("field name expected\n"); break; + default: + return p; + } +} +static Tree primary(void) { + Tree p; + + assert(t != '('); + switch (t) { + case ICON: + case FCON: p = tree(mkop(CNST,tsym->type), tsym->type, NULL, NULL); + p->u.v = tsym->u.c.v; + break; + case SCON: if (ischar(tsym->type->type)) + tsym->u.c.v.p = stringn(tsym->u.c.v.p, tsym->type->size); + else + tsym->u.c.v.p = memcpy(allocate(tsym->type->size, PERM), tsym->u.c.v.p, tsym->type->size); + tsym = constant(tsym->type, tsym->u.c.v); + if (tsym->u.c.loc == NULL) + tsym->u.c.loc = genident(STATIC, tsym->type, GLOBAL); + p = idtree(tsym->u.c.loc); break; + case ID: if (tsym == NULL) + { + Symbol p = install(token, &identifiers, level, FUNC); + p->src = src; + if (getchr() == '(') { + Symbol q = lookup(token, externals); + p->type = func(inttype, NULL, 1); + p->sclass = EXTERN; + if (Aflag >= 1) + warning("missing prototype\n"); + if (q && !eqtype(q->type, p->type, 1)) + warning("implicit declaration of `%s' does not match previous declaration at %w\n", q->name, &q->src); + + if (q == NULL) { + q = install(p->name, &externals, GLOBAL, PERM); + q->type = p->type; + q->sclass = EXTERN; + q->src = src; + (*IR->defsymbol)(q); + } + p->u.alias = q; + } else { + error("undeclared identifier `%s'\n", p->name); + p->sclass = AUTO; + p->type = inttype; + if (p->scope == GLOBAL) + (*IR->defsymbol)(p); + else + addlocal(p); + } + t = gettok(); + if (xref) + use(p, src); + return idtree(p); + } + if (xref) + use(tsym, src); + if (tsym->sclass == ENUM) + p = consttree(tsym->u.value, inttype); + else { + if (tsym->sclass == TYPEDEF) + error("illegal use of type name `%s'\n", tsym->name); + p = idtree(tsym); + } break; + case FIRSTARG: + if (level > PARAM && cfunc && cfunc->u.f.callee[0]) + p = idtree(cfunc->u.f.callee[0]); + else { + error("illegal use of `%k'\n", FIRSTARG); + p = cnsttree(inttype, 0L); + } + break; + default: + error("illegal expression\n"); + p = cnsttree(inttype, 0L); + } + t = gettok(); + return p; +} +Tree idtree(Symbol p) { + int op; + Tree e; + Type ty = p->type ? unqual(p->type) : voidptype; + + if (p->scope == GLOBAL || p->sclass == STATIC) + op = ADDRG; + else if (p->scope == PARAM) { + op = ADDRF; + if (isstruct(p->type) && !IR->wants_argb) + { + e = tree(mkop(op,voidptype), ptr(ptr(p->type)), NULL, NULL); + e->u.sym = p; + return rvalue(rvalue(e)); + } + } else if (p->sclass == EXTERN) { + assert(p->u.alias); + p = p->u.alias; + op = ADDRG; + } else + op = ADDRL; + p->ref += refinc; + if (isarray(ty)) + e = tree(mkop(op,voidptype), p->type, NULL, NULL); + else if (isfunc(ty)) + e = tree(mkop(op,funcptype), p->type, NULL, NULL); + else + e = tree(mkop(op,voidptype), ptr(p->type), NULL, NULL); + e->u.sym = p; + if (isptr(e->type)) + e = rvalue(e); + return e; +} + +Tree rvalue(Tree p) { + Type ty = deref(p->type); + + ty = unqual(ty); + return tree(mkop(INDIR,ty), ty, p, NULL); +} +Tree lvalue(Tree p) { + if (generic(p->op) != INDIR) { + error("lvalue required\n"); + return value(p); + } else if (unqual(p->type) == voidtype) + warning("`%t' used as an lvalue\n", p->type); + return p->kids[0]; +} +Tree retype(Tree p, Type ty) { + Tree q; + + if (p->type == ty) + return p; + q = tree(p->op, ty, p->kids[0], p->kids[1]); + q->node = p->node; + q->u = p->u; + return q; +} +Tree rightkid(Tree p) { + while (p && p->op == RIGHT) + if (p->kids[1]) + p = p->kids[1]; + else if (p->kids[0]) + p = p->kids[0]; + else + assert(0); + assert(p); + return p; +} +int hascall(Tree p) { + if (p == 0) + return 0; + if (generic(p->op) == CALL || (IR->mulops_calls && + (p->op == DIV+I || p->op == MOD+I || p->op == MUL+I + || p->op == DIV+U || p->op == MOD+U || p->op == MUL+U))) + return 1; + return hascall(p->kids[0]) || hascall(p->kids[1]); +} +Type binary(Type xty, Type yty) { +#define xx(t) if (xty == t || yty == t) return t + xx(longdouble); + xx(doubletype); + xx(floattype); + xx(unsignedlonglong); + xx(longlong); + xx(unsignedlong); + if ((xty == longtype && yty == unsignedtype) + || (xty == unsignedtype && yty == longtype)) { + if (longtype->size > unsignedtype->size) + return longtype; + else + return unsignedlong; + } + xx(longtype); + xx(unsignedtype); + return inttype; +#undef xx +} +Tree pointer(Tree p) { + if (isarray(p->type)) + /* assert(p->op != RIGHT || p->u.sym == NULL), */ + p = retype(p, atop(p->type)); + else if (isfunc(p->type)) + p = retype(p, ptr(p->type)); + return p; +} +Tree cond(Tree p) { + int op = generic(rightkid(p)->op); + + if (op == AND || op == OR || op == NOT + || op == EQ || op == NE + || op == LE || op == LT || op == GE || op == GT) + return p; + p = pointer(p); + return (*optree[NEQ])(NE, p, consttree(0, inttype)); +} +Tree cast(Tree p, Type type) { + Type src, dst; + + p = value(p); + if (p->type == type) + return p; + dst = unqual(type); + src = unqual(p->type); + if (src->op != dst->op || src->size != dst->size) { + switch (src->op) { + case INT: + if (src->size < inttype->size) + p = simplify(CVI, inttype, p, NULL); + break; + case UNSIGNED: + if (src->size < inttype->size) + p = simplify(CVU, inttype, p, NULL); + else if (src->size < unsignedtype->size) + p = simplify(CVU, unsignedtype, p, NULL); + break; + case ENUM: + p = retype(p, inttype); + break; + case POINTER: + if (isint(dst) && src->size > dst->size) + warning("conversion from `%t' to `%t' is undefined\n", p->type, type); + p = simplify(CVP, super(src), p, NULL); + break; + case FLOAT: + break; + default: assert(0); + } + { + src = unqual(p->type); + dst = super(dst); + if (src->op != dst->op) + switch (src->op) { + case INT: + p = simplify(CVI, dst, p, NULL); + break; + case UNSIGNED: + if (isfloat(dst)) { + Type ssrc = signedint(src); + Tree two = cnsttree(longdouble, (long double)2.0); + p = (*optree['+'])(ADD, + (*optree['*'])(MUL, + two, + simplify(CVU, ssrc, + simplify(RSH, src, + p, consttree(1, inttype)), NULL)), + simplify(CVU, ssrc, + simplify(BAND, src, + p, consttree(1, unsignedtype)), NULL)); + } else + p = simplify(CVU, dst, p, NULL); + break; + case FLOAT: + if (isunsigned(dst)) { + Type sdst = signedint(dst); + Tree c = cast(cnsttree(longdouble, (long double)sdst->u.sym->u.limits.max.i + 1), src); + p = condtree( + simplify(GE, src, p, c), + (*optree['+'])(ADD, + cast(cast(simplify(SUB, src, p, c), sdst), dst), + cast(cnsttree(unsignedlong, (unsigned long)sdst->u.sym->u.limits.max.i + 1), dst)), + simplify(CVF, sdst, p, NULL)); + } else + p = simplify(CVF, dst, p, NULL); + break; + default: assert(0); + } + dst = unqual(type); + } + } + src = unqual(p->type); + switch (src->op) { + case INT: + if (src->op != dst->op || src->size != dst->size) + p = simplify(CVI, dst, p, NULL); + break; + case UNSIGNED: + if (src->op != dst->op || src->size != dst->size) + p = simplify(CVU, dst, p, NULL); + break; + case FLOAT: + if (src->op != dst->op || src->size != dst->size) + p = simplify(CVF, dst, p, NULL); + break; + case POINTER: + if (src->op != dst->op) + p = simplify(CVP, dst, p, NULL); + else { + if ((isfunc(src->type) && !isfunc(dst->type)) + || (!isfunc(src->type) && isfunc(dst->type))) + warning("conversion from `%t' to `%t' is compiler dependent\n", p->type, type); + + if (src->size != dst->size) + p = simplify(CVP, dst, p, NULL); + } + break; + default: assert(0); + } + return retype(p, type); +} +Tree field(Tree p, const char *name) { + Field q; + Type ty1, ty = p->type; + + if (isptr(ty)) + ty = deref(ty); + ty1 = ty; + ty = unqual(ty); + if ((q = fieldref(name, ty)) != NULL) { + if (isarray(q->type)) { + ty = q->type->type; + if (isconst(ty1) && !isconst(ty)) + ty = qual(CONST, ty); + if (isvolatile(ty1) && !isvolatile(ty)) + ty = qual(VOLATILE, ty); + ty = array(ty, q->type->size/ty->size, q->type->align); + } else { + ty = q->type; + if (isconst(ty1) && !isconst(ty)) + ty = qual(CONST, ty); + if (isvolatile(ty1) && !isvolatile(ty)) + ty = qual(VOLATILE, ty); + ty = ptr(ty); + } + if (YYcheck && !isaddrop(p->op) && q->offset > 0) /* omit */ + p = nullcall(ty, YYcheck, p, consttree(q->offset, inttype)); /* omit */ + else /* omit */ + p = simplify(ADD+P, ty, p, consttree(q->offset, inttype)); + + if (q->lsb) { + p = tree(FIELD, ty->type, rvalue(p), NULL); + p->u.field = q; + } else if (!isarray(q->type)) + p = rvalue(p); + + } else { + error("unknown field `%s' of `%t'\n", name, ty); + p = rvalue(retype(p, ptr(inttype))); + } + return p; +} +/* funcname - return name of function f or a function' */ +char *funcname(Tree f) { + if (isaddrop(f->op)) + return stringf("`%s'", f->u.sym->name); + return "a function"; +} +static Tree nullcheck(Tree p) { + if (!needconst && YYnull && isptr(p->type)) { + p = value(p); + if (strcmp(YYnull->name, "_YYnull") == 0) { + Symbol t1 = temporary(REGISTER, voidptype); + p = tree(RIGHT, p->type, + tree(OR, voidtype, + cond(asgn(t1, cast(p, voidptype))), + vcall(YYnull, voidtype, (file && *file ? pointer(idtree(mkstr(file)->u.c.loc)) : cnsttree(voidptype, NULL)), cnsttree(inttype, (long)lineno) , NULL)), + idtree(t1)); + } + + else + p = nullcall(p->type, YYnull, p, cnsttree(inttype, 0L)); + + } + return p; +} +Tree nullcall(Type pty, Symbol f, Tree p, Tree e) { + Type ty; + + if (isarray(pty)) + return retype(nullcall(atop(pty), f, p, e), pty); + ty = unqual(unqual(p->type)->type); + return vcall(f, pty, + p, e, + cnsttree(inttype, (long)ty->size), + cnsttree(inttype, (long)ty->align), + (file && *file ? pointer(idtree(mkstr(file)->u.c.loc)) : cnsttree(voidptype, NULL)), cnsttree(inttype, (long)lineno) , NULL); +} diff --git a/code/tools/lcc/src/gen.c b/code/tools/lcc/src/gen.c new file mode 100644 index 0000000..4ee170d --- /dev/null +++ b/code/tools/lcc/src/gen.c @@ -0,0 +1,830 @@ +#include "c.h" + + +#define readsreg(p) \ + (generic((p)->op)==INDIR && (p)->kids[0]->op==VREG+P) +#define setsrc(d) ((d) && (d)->x.regnode && \ + (d)->x.regnode->set == src->x.regnode->set && \ + (d)->x.regnode->mask&src->x.regnode->mask) + +#define relink(a, b) ((b)->x.prev = (a), (a)->x.next = (b)) + +static Symbol askfixedreg(Symbol); +static Symbol askreg(Symbol, unsigned*); +static void blkunroll(int, int, int, int, int, int, int[]); +static void docall(Node); +static void dumpcover(Node, int, int); +static void dumpregs(char *, char *, char *); +static void dumprule(int); +static void dumptree(Node); +static unsigned emitasm(Node, int); +static void genreload(Node, Symbol, int); +static void genspill(Symbol, Node, Symbol); +static Symbol getreg(Symbol, unsigned*, Node); +static int getrule(Node, int); +static void linearize(Node, Node); +static int moveself(Node); +static void prelabel(Node); +static Node* prune(Node, Node*); +static void putreg(Symbol); +static void ralloc(Node); +static void reduce(Node, int); +static int reprune(Node*, int, int, Node); +static int requate(Node); +static Node reuse(Node, int); +static void rewrite(Node); +static Symbol spillee(Symbol, unsigned mask[], Node); +static void spillr(Symbol, Node); +static int uses(Node, Regnode); + +int offset; + +int maxoffset; + +int framesize; +int argoffset; + +int maxargoffset; + +int dalign, salign; +int bflag = 0; /* omit */ +int dflag = 0; + +int swap; + +unsigned (*emitter)(Node, int) = emitasm; +static char NeedsReg[] = { + 0, /* unused */ + 1, /* CNST */ + 0, 0, /* ARG ASGN */ + 1, /* INDIR */ + 0, 0, 1, 1, /* - - CVF CVI */ + 1, 0, 1, 1, /* CVP - CVU NEG */ + 1, /* CALL */ + 1, /* LOAD */ + 0, /* RET */ + 1, 1, 1, /* ADDRG ADDRF ADDRL */ + 1, 1, 1, 1, 1, /* ADD SUB LSH MOD RSH */ + 1, 1, 1, 1, /* BAND BCOM BOR BXOR */ + 1, 1, /* DIV MUL */ + 0, 0, 0, 0, 0, 0, /* EQ GE GT LE LT NE */ + 0, 0 /* JUMP LABEL */ +}; +Node head; + +unsigned freemask[2]; +unsigned usedmask[2]; +unsigned tmask[2]; +unsigned vmask[2]; +Symbol mkreg(char *fmt, int n, int mask, int set) { + Symbol p; + + NEW0(p, PERM); + p->name = p->x.name = stringf(fmt, n); + NEW0(p->x.regnode, PERM); + p->x.regnode->number = n; + p->x.regnode->mask = mask<x.regnode->set = set; + return p; +} +Symbol mkwildcard(Symbol *syms) { + Symbol p; + + NEW0(p, PERM); + p->name = p->x.name = "wildcard"; + p->x.wildcard = syms; + return p; +} +void mkauto(Symbol p) { + assert(p->sclass == AUTO); + offset = roundup(offset + p->type->size, p->type->align); + p->x.offset = -offset; + p->x.name = stringd(-offset); +} +void blockbeg(Env *e) { + e->offset = offset; + e->freemask[IREG] = freemask[IREG]; + e->freemask[FREG] = freemask[FREG]; +} +void blockend(Env *e) { + if (offset > maxoffset) + maxoffset = offset; + offset = e->offset; + freemask[IREG] = e->freemask[IREG]; + freemask[FREG] = e->freemask[FREG]; +} +int mkactual(int align, int size) { + int n = roundup(argoffset, align); + + argoffset = n + size; + return n; +} +static void docall(Node p) { + p->syms[1] = p->syms[0]; + p->syms[0] = intconst(argoffset); + if (argoffset > maxargoffset) + maxargoffset = argoffset; + argoffset = 0; +} +void blkcopy(int dreg, int doff, int sreg, int soff, int size, int tmp[]) { + assert(size >= 0); + if (size == 0) + return; + else if (size <= 2) + blkunroll(size, dreg, doff, sreg, soff, size, tmp); + else if (size == 3) { + blkunroll(2, dreg, doff, sreg, soff, 2, tmp); + blkunroll(1, dreg, doff+2, sreg, soff+2, 1, tmp); + } + else if (size <= 16) { + blkunroll(4, dreg, doff, sreg, soff, size&~3, tmp); + blkcopy(dreg, doff+(size&~3), + sreg, soff+(size&~3), size&3, tmp); + } + else + (*IR->x.blkloop)(dreg, doff, sreg, soff, size, tmp); +} +static void blkunroll(int k, int dreg, int doff, int sreg, int soff, int size, int tmp[]) { + int i; + + assert(IR->x.max_unaligned_load); + if (k > IR->x.max_unaligned_load + && (k > salign || k > dalign)) + k = IR->x.max_unaligned_load; + for (i = 0; i+k < size; i += 2*k) { + (*IR->x.blkfetch)(k, soff+i, sreg, tmp[0]); + (*IR->x.blkfetch)(k, soff+i+k, sreg, tmp[1]); + (*IR->x.blkstore)(k, doff+i, dreg, tmp[0]); + (*IR->x.blkstore)(k, doff+i+k, dreg, tmp[1]); + } + if (i < size) { + (*IR->x.blkfetch)(k, i+soff, sreg, tmp[0]); + (*IR->x.blkstore)(k, i+doff, dreg, tmp[0]); + } +} +void parseflags(int argc, char *argv[]) { + int i; + + for (i = 0; i < argc; i++) + if (strcmp(argv[i], "-d") == 0) + dflag = 1; + else if (strcmp(argv[i], "-b") == 0) /* omit */ + bflag = 1; /* omit */ +} +static int getrule(Node p, int nt) { + int rulenum; + + assert(p); + rulenum = (*IR->x._rule)(p->x.state, nt); + if (!rulenum) { + fprint(stderr, "(%x->op=%s at %w is corrupt.)\n", p, opname(p->op), &src); + assert(0); + } + return rulenum; +} +static void reduce(Node p, int nt) { + int rulenum, i; + short *nts; + Node kids[10]; + + p = reuse(p, nt); + rulenum = getrule(p, nt); + nts = IR->x._nts[rulenum]; + (*IR->x._kids)(p, rulenum, kids); + for (i = 0; nts[i]; i++) + reduce(kids[i], nts[i]); + if (IR->x._isinstruction[rulenum]) { + assert(p->x.inst == 0 || p->x.inst == nt); + p->x.inst = nt; + if (p->syms[RX] && p->syms[RX]->temporary) { + debug(fprint(stderr, "(using %s)\n", p->syms[RX]->name)); + p->syms[RX]->x.usecount++; + } + } +} +static Node reuse(Node p, int nt) { + struct _state { + short cost[1]; + }; + Symbol r = p->syms[RX]; + + if (generic(p->op) == INDIR && p->kids[0]->op == VREG+P + && r->u.t.cse && p->x.mayrecalc + && ((struct _state*)r->u.t.cse->x.state)->cost[nt] == 0) + return r->u.t.cse; + else + return p; +} + +int mayrecalc(Node p) { + int op; + + assert(p && p->syms[RX]); + if (p->syms[RX]->u.t.cse == NULL) + return 0; + op = generic(p->syms[RX]->u.t.cse->op); + if (op == CNST || op == ADDRF || op == ADDRG || op == ADDRL) { + p->x.mayrecalc = 1; + return 1; + } else + return 0; +} +static Node *prune(Node p, Node pp[]) { + if (p == NULL) + return pp; + p->x.kids[0] = p->x.kids[1] = p->x.kids[2] = NULL; + if (p->x.inst == 0) + return prune(p->kids[1], prune(p->kids[0], pp)); + else if (p->syms[RX] && p->syms[RX]->temporary + && p->syms[RX]->x.usecount < 2) { + p->x.inst = 0; + debug(fprint(stderr, "(clobbering %s)\n", p->syms[RX]->name)); + return prune(p->kids[1], prune(p->kids[0], pp)); + } + else { + prune(p->kids[1], prune(p->kids[0], &p->x.kids[0])); + *pp = p; + return pp + 1; + } +} + +#define ck(i) return (i) ? 0 : LBURG_MAX + +int range(Node p, int lo, int hi) { + Symbol s = p->syms[0]; + + switch (specific(p->op)) { + case ADDRF+P: + case ADDRL+P: ck(s->x.offset >= lo && s->x.offset <= hi); + case CNST+I: ck(s->u.c.v.i >= lo && s->u.c.v.i <= hi); + case CNST+U: ck(s->u.c.v.u >= lo && s->u.c.v.u <= hi); + case CNST+P: ck(s->u.c.v.p == 0 && lo <= 0 && hi >= 0); + } + return LBURG_MAX; +} +static void dumptree(Node p) { + if (p->op == VREG+P && p->syms[0]) { + fprint(stderr, "VREGP(%s)", p->syms[0]->name); + return; + } else if (generic(p->op) == LOAD) { + fprint(stderr, "LOAD("); + dumptree(p->kids[0]); + fprint(stderr, ")"); + return; + } + fprint(stderr, "%s(", opname(p->op)); + switch (generic(p->op)) { + case CNST: case LABEL: + case ADDRG: case ADDRF: case ADDRL: + if (p->syms[0]) + fprint(stderr, "%s", p->syms[0]->name); + break; + case RET: + if (p->kids[0]) + dumptree(p->kids[0]); + break; + case CVF: case CVI: case CVP: case CVU: case JUMP: + case ARG: case BCOM: case NEG: case INDIR: + dumptree(p->kids[0]); + break; + case CALL: + if (optype(p->op) != B) { + dumptree(p->kids[0]); + break; + } + /* else fall thru */ + case EQ: case NE: case GT: case GE: case LE: case LT: + case ASGN: case BOR: case BAND: case BXOR: case RSH: case LSH: + case ADD: case SUB: case DIV: case MUL: case MOD: + dumptree(p->kids[0]); + fprint(stderr, ", "); + dumptree(p->kids[1]); + break; + default: assert(0); + } + fprint(stderr, ")"); +} +static void dumpcover(Node p, int nt, int in) { + int rulenum, i; + short *nts; + Node kids[10]; + + p = reuse(p, nt); + rulenum = getrule(p, nt); + nts = IR->x._nts[rulenum]; + fprint(stderr, "dumpcover(%x) = ", p); + for (i = 0; i < in; i++) + fprint(stderr, " "); + dumprule(rulenum); + (*IR->x._kids)(p, rulenum, kids); + for (i = 0; nts[i]; i++) + dumpcover(kids[i], nts[i], in+1); +} + +static void dumprule(int rulenum) { + assert(rulenum); + fprint(stderr, "%s / %s", IR->x._string[rulenum], + IR->x._templates[rulenum]); + if (!IR->x._isinstruction[rulenum]) + fprint(stderr, "\n"); +} +static unsigned emitasm(Node p, int nt) { + int rulenum; + short *nts; + char *fmt; + Node kids[10]; + + p = reuse(p, nt); + rulenum = getrule(p, nt); + nts = IR->x._nts[rulenum]; + fmt = IR->x._templates[rulenum]; + assert(fmt); + if (IR->x._isinstruction[rulenum] && p->x.emitted) + print("%s", p->syms[RX]->x.name); + else if (*fmt == '#') + (*IR->x.emit2)(p); + else { + if (*fmt == '?') { + fmt++; + assert(p->kids[0]); + if (p->syms[RX] == p->x.kids[0]->syms[RX]) + while (*fmt++ != '\n') + ; + } + for ((*IR->x._kids)(p, rulenum, kids); *fmt; fmt++) + if (*fmt != '%') + (void)putchar(*fmt); + else if (*++fmt == 'F') + print("%d", framesize); + else if (*fmt >= '0' && *fmt <= '9') + emitasm(kids[*fmt - '0'], nts[*fmt - '0']); + else if (*fmt >= 'a' && *fmt < 'a' + NELEMS(p->syms)) + fputs(p->syms[*fmt - 'a']->x.name, stdout); + else + (void)putchar(*fmt); + } + return 0; +} +void emit(Node p) { + for (; p; p = p->x.next) { + assert(p->x.registered); + if ((p->x.equatable && requate(p)) || moveself(p)) + ; + else + (*emitter)(p, p->x.inst); + p->x.emitted = 1; + } +} +static int moveself(Node p) { + return p->x.copy + && p->syms[RX]->x.name == p->x.kids[0]->syms[RX]->x.name; +} +int move(Node p) { + p->x.copy = 1; + return 1; +} +static int requate(Node q) { + Symbol src = q->x.kids[0]->syms[RX]; + Symbol tmp = q->syms[RX]; + Node p; + int n = 0; + + debug(fprint(stderr, "(requate(%x): tmp=%s src=%s)\n", q, tmp->x.name, src->x.name)); + for (p = q->x.next; p; p = p->x.next) + if (p->x.copy && p->syms[RX] == src + && p->x.kids[0]->syms[RX] == tmp) + debug(fprint(stderr, "(requate arm 0 at %x)\n", p)), + p->syms[RX] = tmp; + else if (setsrc(p->syms[RX]) && !moveself(p) && !readsreg(p)) + return 0; + else if (p->x.spills) + return 0; + else if (generic(p->op) == CALL && p->x.next) + return 0; + else if (p->op == LABEL+V && p->x.next) + return 0; + else if (p->syms[RX] == tmp && readsreg(p)) + debug(fprint(stderr, "(requate arm 5 at %x)\n", p)), + n++; + else if (p->syms[RX] == tmp) + break; + debug(fprint(stderr, "(requate arm 7 at %x)\n", p)); + assert(n > 0); + for (p = q->x.next; p; p = p->x.next) + if (p->syms[RX] == tmp && readsreg(p)) { + p->syms[RX] = src; + if (--n <= 0) + break; + } + return 1; +} +static void prelabel(Node p) { + if (p == NULL) + return; + prelabel(p->kids[0]); + prelabel(p->kids[1]); + if (NeedsReg[opindex(p->op)]) + setreg(p, (*IR->x.rmap)(opkind(p->op))); + switch (generic(p->op)) { + case ADDRF: case ADDRL: + if (p->syms[0]->sclass == REGISTER) + p->op = VREG+P; + break; + case INDIR: + if (p->kids[0]->op == VREG+P) + setreg(p, p->kids[0]->syms[0]); + break; + case ASGN: + if (p->kids[0]->op == VREG+P) + rtarget(p, 1, p->kids[0]->syms[0]); + break; + case CVI: case CVU: case CVP: + if (optype(p->op) != F + && opsize(p->op) <= p->syms[0]->u.c.v.i) + p->op = LOAD + opkind(p->op); + break; + } + (IR->x.target)(p); +} +void setreg(Node p, Symbol r) { + p->syms[RX] = r; +} +void rtarget(Node p, int n, Symbol r) { + Node q = p->kids[n]; + + assert(q); + assert(r); + assert(r->sclass == REGISTER || !r->x.wildcard); + assert(q->syms[RX]); + if (r != q->syms[RX] && !q->syms[RX]->x.wildcard) { + q = newnode(LOAD + opkind(q->op), + q, NULL, q->syms[0]); + if (r->u.t.cse == p->kids[n]) + r->u.t.cse = q; + p->kids[n] = p->x.kids[n] = q; + q->x.kids[0] = q->kids[0]; + } + setreg(q, r); + debug(fprint(stderr, "(targeting %x->x.kids[%d]=%x to %s)\n", p, n, p->kids[n], r->x.name)); +} +static void rewrite(Node p) { + assert(p->x.inst == 0); + prelabel(p); + debug(dumptree(p)); + debug(fprint(stderr, "\n")); + (*IR->x._label)(p); + debug(dumpcover(p, 1, 0)); + reduce(p, 1); +} +Node gen(Node forest) { + int i; + struct node sentinel; + Node dummy, p; + + head = forest; + for (p = forest; p; p = p->link) { + assert(p->count == 0); + if (generic(p->op) == CALL) + docall(p); + else if ( generic(p->op) == ASGN + && generic(p->kids[1]->op) == CALL) + docall(p->kids[1]); + else if (generic(p->op) == ARG) + (*IR->x.doarg)(p); + rewrite(p); + p->x.listed = 1; + } + for (p = forest; p; p = p->link) + prune(p, &dummy); + relink(&sentinel, &sentinel); + for (p = forest; p; p = p->link) + linearize(p, &sentinel); + forest = sentinel.x.next; + assert(forest); + sentinel.x.next->x.prev = NULL; + sentinel.x.prev->x.next = NULL; + for (p = forest; p; p = p->x.next) + for (i = 0; i < NELEMS(p->x.kids) && p->x.kids[i]; i++) { + assert(p->x.kids[i]->syms[RX]); + if (p->x.kids[i]->syms[RX]->temporary) { + p->x.kids[i]->x.prevuse = + p->x.kids[i]->syms[RX]->x.lastuse; + p->x.kids[i]->syms[RX]->x.lastuse = p->x.kids[i]; + } + } + for (p = forest; p; p = p->x.next) { + ralloc(p); + if (p->x.listed && NeedsReg[opindex(p->op)] + && (*IR->x.rmap)(opkind(p->op))) { + assert(generic(p->op) == CALL || generic(p->op) == LOAD); + putreg(p->syms[RX]); + } + } + return forest; +} +int notarget(Node p) { + return p->syms[RX]->x.wildcard ? 0 : LBURG_MAX; +} +static void putreg(Symbol r) { + assert(r && r->x.regnode); + freemask[r->x.regnode->set] |= r->x.regnode->mask; + debug(dumpregs("(freeing %s)\n", r->x.name, NULL)); +} +static Symbol askfixedreg(Symbol s) { + Regnode r = s->x.regnode; + int n = r->set; + + if (r->mask&~freemask[n]) + return NULL; + else { + freemask[n] &= ~r->mask; + usedmask[n] |= r->mask; + return s; + } +} +static Symbol askreg(Symbol rs, unsigned rmask[]) { + int i; + + if (rs->x.wildcard == NULL) + return askfixedreg(rs); + for (i = 31; i >= 0; i--) { + Symbol r = rs->x.wildcard[i]; + if (r != NULL + && !(r->x.regnode->mask&~rmask[r->x.regnode->set]) + && askfixedreg(r)) + return r; + } + return NULL; +} + +static Symbol getreg(Symbol s, unsigned mask[], Node p) { + Symbol r = askreg(s, mask); + if (r == NULL) { + r = spillee(s, mask, p); + assert(r && r->x.regnode); + spill(r->x.regnode->mask, r->x.regnode->set, p); + r = askreg(s, mask); + } + assert(r && r->x.regnode); + r->x.regnode->vbl = NULL; + return r; +} +int askregvar(Symbol p, Symbol regs) { + Symbol r; + + assert(p); + if (p->sclass != REGISTER) + return 0; + else if (!isscalar(p->type)) { + p->sclass = AUTO; + return 0; + } + else if (p->temporary) { + p->x.name = "?"; + return 1; + } + else if ((r = askreg(regs, vmask)) != NULL) { + p->x.regnode = r->x.regnode; + p->x.regnode->vbl = p; + p->x.name = r->x.name; + debug(dumpregs("(allocating %s to symbol %s)\n", p->x.name, p->name)); + return 1; + } + else { + p->sclass = AUTO; + return 0; + } +} +static void linearize(Node p, Node next) { + int i; + + for (i = 0; i < NELEMS(p->x.kids) && p->x.kids[i]; i++) + linearize(p->x.kids[i], next); + relink(next->x.prev, p); + relink(p, next); + debug(fprint(stderr, "(listing %x)\n", p)); +} +static void ralloc(Node p) { + int i; + unsigned mask[2]; + + mask[0] = tmask[0]; + mask[1] = tmask[1]; + assert(p); + debug(fprint(stderr, "(rallocing %x)\n", p)); + for (i = 0; i < NELEMS(p->x.kids) && p->x.kids[i]; i++) { + Node kid = p->x.kids[i]; + Symbol r = kid->syms[RX]; + assert(r && kid->x.registered); + if (r->sclass != REGISTER && r->x.lastuse == kid) + putreg(r); + } + if (!p->x.registered && NeedsReg[opindex(p->op)] + && (*IR->x.rmap)(opkind(p->op))) { + Symbol sym = p->syms[RX], set = sym; + assert(sym); + if (sym->temporary) + set = (*IR->x.rmap)(opkind(p->op)); + assert(set); + if (set->sclass != REGISTER) { + Symbol r; + if (*IR->x._templates[getrule(p, p->x.inst)] == '?') + for (i = 1; i < NELEMS(p->x.kids) && p->x.kids[i]; i++) { + Symbol r = p->x.kids[i]->syms[RX]; + assert(p->x.kids[i]->x.registered); + assert(r && r->x.regnode); + assert(sym->x.wildcard || sym != r); + mask[r->x.regnode->set] &= ~r->x.regnode->mask; + } + r = getreg(set, mask, p); + if (sym->temporary) { + Node q; + r->x.lastuse = sym->x.lastuse; + for (q = sym->x.lastuse; q; q = q->x.prevuse) { + q->syms[RX] = r; + q->x.registered = 1; + if (sym->u.t.cse && q->x.copy) + q->x.equatable = 1; + } + } else { + p->syms[RX] = r; + r->x.lastuse = p; + } + debug(dumpregs("(allocating %s to node %x)\n", r->x.name, (char *) p)); + } + } + p->x.registered = 1; + (*IR->x.clobber)(p); +} +static Symbol spillee(Symbol set, unsigned mask[], Node here) { + Symbol bestreg = NULL; + int bestdist = -1, i; + + assert(set); + if (!set->x.wildcard) + bestreg = set; + else { + for (i = 31; i >= 0; i--) { + Symbol ri = set->x.wildcard[i]; + if ( + ri != NULL && + ri->x.lastuse && + (ri->x.regnode->mask&tmask[ri->x.regnode->set]&mask[ri->x.regnode->set]) + ) { + Regnode rn = ri->x.regnode; + Node q = here; + int dist = 0; + for (; q && !uses(q, rn); q = q->x.next) + dist++; + if (q && dist > bestdist) { + bestdist = dist; + bestreg = ri; + } + } + } + } + assert(bestreg); /* Must be able to spill something. Reconfigure the register allocator + to ensure that we can allocate a register for all nodes without spilling + the node's necessary input regs. */ + assert(bestreg->x.regnode->vbl == NULL); /* Can't spill register variables because + the reload site might be in other blocks. Reconfigure the register allocator + to ensure that this register is never allocated to a variable. */ + return bestreg; +} +static int uses(Node p, Regnode rn) { + int i; + + for (i = 0; i < NELEMS(p->x.kids); i++) + if ( + p->x.kids[i] && + p->x.kids[i]->x.registered && + rn->set == p->x.kids[i]->syms[RX]->x.regnode->set && + (rn->mask&p->x.kids[i]->syms[RX]->x.regnode->mask) + ) + return 1; + return 0; +} +static void spillr(Symbol r, Node here) { + int i; + Symbol tmp; + Node p = r->x.lastuse; + assert(p); + while (p->x.prevuse) + assert(r == p->syms[RX]), + p = p->x.prevuse; + assert(p->x.registered && !readsreg(p)); + tmp = newtemp(AUTO, optype(p->op), opsize(p->op)); + genspill(r, p, tmp); + for (p = here->x.next; p; p = p->x.next) + for (i = 0; i < NELEMS(p->x.kids) && p->x.kids[i]; i++) { + Node k = p->x.kids[i]; + if (k->x.registered && k->syms[RX] == r) + genreload(p, tmp, i); + } + putreg(r); +} +static void genspill(Symbol r, Node last, Symbol tmp) { + Node p, q; + Symbol s; + unsigned ty; + + debug(fprint(stderr, "(spilling %s to local %s)\n", r->x.name, tmp->x.name)); + debug(fprint(stderr, "(genspill: ")); + debug(dumptree(last)); + debug(fprint(stderr, ")\n")); + ty = opkind(last->op); + NEW0(s, FUNC); + s->sclass = REGISTER; + s->name = s->x.name = r->x.name; + s->x.regnode = r->x.regnode; + q = newnode(ADDRL+P + sizeop(IR->ptrmetric.size), NULL, NULL, s); + q = newnode(INDIR + ty, q, NULL, NULL); + p = newnode(ADDRL+P + sizeop(IR->ptrmetric.size), NULL, NULL, tmp); + p = newnode(ASGN + ty, p, q, NULL); + p->x.spills = 1; + rewrite(p); + prune(p, &q); + q = last->x.next; + linearize(p, q); + for (p = last->x.next; p != q; p = p->x.next) { + ralloc(p); + assert(!p->x.listed || !NeedsReg[opindex(p->op)] || !(*IR->x.rmap)(opkind(p->op))); + } +} + +static void genreload(Node p, Symbol tmp, int i) { + Node q; + int ty; + + debug(fprint(stderr, "(replacing %x with a reload from %s)\n", p->x.kids[i], tmp->x.name)); + debug(fprint(stderr, "(genreload: ")); + debug(dumptree(p->x.kids[i])); + debug(fprint(stderr, ")\n")); + ty = opkind(p->x.kids[i]->op); + q = newnode(ADDRL+P + sizeop(IR->ptrmetric.size), NULL, NULL, tmp); + p->x.kids[i] = newnode(INDIR + ty, q, NULL, NULL); + rewrite(p->x.kids[i]); + prune(p->x.kids[i], &q); + reprune(&p->kids[1], reprune(&p->kids[0], 0, i, p), i, p); + prune(p, &q); + linearize(p->x.kids[i], p); +} +static int reprune(Node *pp, int k, int n, Node p) { + struct node x, *q = *pp; + + if (q == NULL || k > n) + return k; + else if (q->x.inst == 0) + return reprune(&q->kids[1], + reprune(&q->kids[0], k, n, p), n, p); + if (k == n) { + debug(fprint(stderr, "(reprune changes %x from %x to %x)\n", pp, *pp, p->x.kids[n])); + *pp = p->x.kids[n]; + x = *p; + (IR->x.target)(&x); + } + return k + 1; +} +void spill(unsigned mask, int n, Node here) { + int i; + Node p; + + here->x.spills = 1; + usedmask[n] |= mask; + if (mask&~freemask[n]) { + + assert( /* It makes no sense for a node to clobber() its target. */ + here->x.registered == 0 || /* call isn't coming through clobber() */ + here->syms[RX] == NULL || + here->syms[RX]->x.regnode == NULL || + here->syms[RX]->x.regnode->set != n || + (here->syms[RX]->x.regnode->mask&mask) == 0 + ); + + for (p = here; p; p = p->x.next) + for (i = 0; i < NELEMS(p->x.kids) && p->x.kids[i]; i++) { + Symbol r = p->x.kids[i]->syms[RX]; + assert(r); + if (p->x.kids[i]->x.registered && r->x.regnode->set == n + && r->x.regnode->mask&mask) + spillr(r, here); + } + } +} +static void dumpregs(char *msg, char *a, char *b) { + fprint(stderr, msg, a, b); + fprint(stderr, "(free[0]=%x)\n", freemask[0]); + fprint(stderr, "(free[1]=%x)\n", freemask[1]); +} + +int getregnum(Node p) { + assert(p && p->syms[RX] && p->syms[RX]->x.regnode); + return p->syms[RX]->x.regnode->number; +} + + +unsigned regloc(Symbol p) { + assert(p && p->sclass == REGISTER && p->sclass == REGISTER && p->x.regnode); + return p->x.regnode->set<<8 | p->x.regnode->number; +} + diff --git a/code/tools/lcc/src/init.c b/code/tools/lcc/src/init.c new file mode 100644 index 0000000..172d7c0 --- /dev/null +++ b/code/tools/lcc/src/init.c @@ -0,0 +1,318 @@ +#include "c.h" + + +static int curseg; /* current segment */ + +/* defpointer - initialize a pointer to p or to 0 if p==0 */ +void defpointer(Symbol p) { + if (p) { + (*IR->defaddress)(p); + p->ref++; + } else { + static Value v; + (*IR->defconst)(P, voidptype->size, v); + } +} + +/* genconst - generate/check constant expression e; return size */ +static int genconst(Tree e, int def) { + for (;;) + switch (generic(e->op)) { + case ADDRG: + if (def) + (*IR->defaddress)(e->u.sym); + return e->type->size; + case CNST: + if (e->op == CNST+P && isarray(e->type)) { + e = cvtconst(e); + continue; + } + if (def) + (*IR->defconst)(e->type->op, e->type->size, e->u.v); + return e->type->size; + case RIGHT: + assert(e->kids[0] || e->kids[1]); + if (e->kids[1] && e->kids[0]) + error("initializer must be constant\n"); + e = e->kids[1] ? e->kids[1] : e->kids[0]; + continue; + case CVP: + if (isarith(e->type)) + error("cast from `%t' to `%t' is illegal in constant expressions\n", + e->kids[0]->type, e->type); + /* fall thru */ + case CVI: case CVU: case CVF: + e = e->kids[0]; + continue; + default: + error("initializer must be constant\n"); + if (def) + genconst(consttree(0, inttype), def); + return inttype->size; + } +} + +/* initvalue - evaluate a constant expression for a value of integer type ty */ +static Tree initvalue(Type ty) { + Type aty; + Tree e; + + needconst++; + e = expr1(0); + if ((aty = assign(ty, e)) != NULL) + e = cast(e, aty); + else { + error("invalid initialization type; found `%t' expected `%t'\n", + e->type, ty); + e = retype(consttree(0, inttype), ty); + } + needconst--; + if (generic(e->op) != CNST) { + error("initializer must be constant\n"); + e = retype(consttree(0, inttype), ty); + } + return e; +} + +/* initarray - initialize array of ty of <= len bytes; if len == 0, go to } */ +static int initarray(int len, Type ty, int lev) { + int n = 0; + + do { + initializer(ty, lev); + n += ty->size; + if ((len > 0 && n >= len) || t != ',') + break; + t = gettok(); + } while (t != '}'); + return n; +} + +/* initchar - initialize array of <= len ty characters; if len == 0, go to } */ +static int initchar(int len, Type ty) { + int n = 0; + char buf[16], *s = buf; + + do { + *s++ = initvalue(ty)->u.v.i; + if (++n%inttype->size == 0) { + (*IR->defstring)(inttype->size, buf); + s = buf; + } + if ((len > 0 && n >= len) || t != ',') + break; + t = gettok(); + } while (t != '}'); + if (s > buf) + (*IR->defstring)(s - buf, buf); + return n; +} + +/* initend - finish off an initialization at level lev; accepts trailing comma */ +static void initend(int lev, char follow[]) { + if (lev == 0 && t == ',') + t = gettok(); + test('}', follow); +} + +/* initfields - initialize <= an unsigned's worth of bit fields in fields p to q */ +static int initfields(Field p, Field q) { + unsigned int bits = 0; + int i, n = 0; + + do { + i = initvalue(inttype)->u.v.i; + if (fieldsize(p) < 8*p->type->size) { + if ((p->type == inttype && + (i < -(int)(fieldmask(p)>>1)-1 || i > (int)(fieldmask(p)>>1))) + || (p->type == unsignedtype && (i&~fieldmask(p)) != 0)) + warning("initializer exceeds bit-field width\n"); + i &= fieldmask(p); + } + bits |= i<little_endian) { + if (fieldsize(p) + fieldright(p) > n) + n = fieldsize(p) + fieldright(p); + } else { + if (fieldsize(p) + fieldleft(p) > n) + n = fieldsize(p) + fieldleft(p); + } + if (p->link == q) + break; + p = p->link; + } while (t == ',' && (t = gettok()) != 0); + n = (n + 7)/8; + for (i = 0; i < n; i++) { + Value v; + if (IR->little_endian) { + v.u = (unsigned char)bits; + bits >>= 8; + } else { /* a big endian */ + v.u = (unsigned char)(bits>>(8*(unsignedtype->size - 1))); + bits <<= 8; + } + (*IR->defconst)(U, unsignedchar->size, v); + } + return n; +} + +/* initstruct - initialize a struct ty of <= len bytes; if len == 0, go to } */ +static int initstruct(int len, Type ty, int lev) { + int a, n = 0; + Field p = ty->u.sym->u.s.flist; + + do { + if (p->offset > n) { + (*IR->space)(p->offset - n); + n += p->offset - n; + } + if (p->lsb) { + Field q = p; + while (q->link && q->link->offset == p->offset) + q = q->link; + n += initfields(p, q->link); + p = q; + } else { + initializer(p->type, lev); + n += p->type->size; + } + if (p->link) { + p = p->link; + a = p->type->align; + } else + a = ty->align; + if (a && n%a) { + (*IR->space)(a - n%a); + n = roundup(n, a); + } + if ((len > 0 && n >= len) || t != ',') + break; + t = gettok(); + } while (t != '}'); + return n; +} + +/* initializer - constexpr | { constexpr ( , constexpr )* [ , ] } */ +Type initializer(Type ty, int lev) { + int n = 0; + Tree e; + Type aty = NULL; + static char follow[] = { IF, CHAR, STATIC, 0 }; + + ty = unqual(ty); + if (isscalar(ty)) { + needconst++; + if (t == '{') { + t = gettok(); + e = expr1(0); + initend(lev, follow); + } else + e = expr1(0); + e = pointer(e); + if ((aty = assign(ty, e)) != NULL) + e = cast(e, aty); + else + error("invalid initialization type; found `%t' expected `%t'\n", + e->type, ty); + n = genconst(e, 1); + deallocate(STMT); + needconst--; + } + if ((isunion(ty) || isstruct(ty)) && ty->size == 0) { + static char follow[] = { CHAR, STATIC, 0 }; + error("cannot initialize undefined `%t'\n", ty); + skipto(';', follow); + return ty; + } else if (isunion(ty)) { + if (t == '{') { + t = gettok(); + n = initstruct(ty->u.sym->u.s.flist->type->size, ty, lev + 1); + initend(lev, follow); + } else { + if (lev == 0) + error("missing { in initialization of `%t'\n", ty); + n = initstruct(ty->u.sym->u.s.flist->type->size, ty, lev + 1); + } + } else if (isstruct(ty)) { + if (t == '{') { + t = gettok(); + n = initstruct(0, ty, lev + 1); + test('}', follow); + } else if (lev > 0) + n = initstruct(ty->size, ty, lev + 1); + else { + error("missing { in initialization of `%t'\n", ty); + n = initstruct(ty->u.sym->u.s.flist->type->size, ty, lev + 1); + } + } + if (isarray(ty)) + aty = unqual(ty->type); + if (isarray(ty) && ischar(aty)) { + if (t == SCON) { + if (ty->size > 0 && ty->size == tsym->type->size - 1) + tsym->type = array(chartype, ty->size, 0); + n = tsym->type->size; + (*IR->defstring)(tsym->type->size, tsym->u.c.v.p); + t = gettok(); + } else if (t == '{') { + t = gettok(); + if (t == SCON) { + ty = initializer(ty, lev + 1); + initend(lev, follow); + return ty; + } + n = initchar(0, aty); + test('}', follow); + } else if (lev > 0 && ty->size > 0) + n = initchar(ty->size, aty); + else { /* eg, char c[] = 0; */ + error("missing { in initialization of `%t'\n", ty); + n = initchar(1, aty); + } + } else if (isarray(ty)) { + if (t == SCON && aty == widechar) { + int i; + unsigned int *s = tsym->u.c.v.p; + if (ty->size > 0 && ty->size == tsym->type->size - widechar->size) + tsym->type = array(widechar, ty->size/widechar->size, 0); + n = tsym->type->size; + for (i = 0; i < n; i += widechar->size) { + Value v; + v.u = *s++; + (*IR->defconst)(widechar->op, widechar->size, v); + } + t = gettok(); + } else if (t == '{') { + t = gettok(); + if (t == SCON && aty == widechar) { + ty = initializer(ty, lev + 1); + initend(lev, follow); + return ty; + } + n = initarray(0, aty, lev + 1); + test('}', follow); + } else if (lev > 0 && ty->size > 0) + n = initarray(ty->size, aty, lev + 1); + else { + error("missing { in initialization of `%t'\n", ty); + n = initarray(aty->size, aty, lev + 1); + } + } + if (ty->size) { + if (n > ty->size) + error("too many initializers\n"); + else if (n < ty->size) + (*IR->space)(ty->size - n); + } else if (isarray(ty) && ty->type->size > 0) + ty = array(ty->type, n/ty->type->size, 0); + else + ty->size = n; + return ty; +} + +/* swtoseg - switch to segment seg, if necessary */ +void swtoseg(int seg) { + if (curseg != seg) + (*IR->segment)(seg); + curseg = seg; +} diff --git a/code/tools/lcc/src/inits.c b/code/tools/lcc/src/inits.c new file mode 100644 index 0000000..c42f61e --- /dev/null +++ b/code/tools/lcc/src/inits.c @@ -0,0 +1,7 @@ +void init(int argc, char *argv[]) { + {extern void input_init(int, char *[]); input_init(argc, argv);} + {extern void main_init(int, char *[]); main_init(argc, argv);} + {extern void prof_init(int, char *[]); prof_init(argc, argv);} + {extern void trace_init(int, char *[]); trace_init(argc, argv);} + {extern void type_init(int, char *[]); type_init(argc, argv);} +} diff --git a/code/tools/lcc/src/input.c b/code/tools/lcc/src/input.c new file mode 100644 index 0000000..c2a084e --- /dev/null +++ b/code/tools/lcc/src/input.c @@ -0,0 +1,135 @@ +#include "c.h" + + +static void pragma(void); +static void resynch(void); + +static int bsize; +static unsigned char buffer[MAXLINE+1 + BUFSIZE+1]; +unsigned char *cp; /* current input character */ +char *file; /* current input file name */ +char *firstfile; /* first input file */ +unsigned char *limit; /* points to last character + 1 */ +char *line; /* current line */ +int lineno; /* line number of current line */ + +void nextline(void) { + do { + if (cp >= limit) { + fillbuf(); + if (cp >= limit) + cp = limit; + if (cp == limit) + return; + } else { + lineno++; + for (line = (char *)cp; *cp==' ' || *cp=='\t'; cp++) + ; + if (*cp == '#') { + resynch(); + nextline(); + } + } + } while (*cp == '\n' && cp == limit); +} +void fillbuf(void) { + if (bsize == 0) + return; + if (cp >= limit) + cp = &buffer[MAXLINE+1]; + else + { + int n = limit - cp; + unsigned char *s = &buffer[MAXLINE+1] - n; + assert(s >= buffer); + line = (char *)s - ((char *)cp - line); + while (cp < limit) + *s++ = *cp++; + cp = &buffer[MAXLINE+1] - n; + } + if (feof(stdin)) + bsize = 0; + else + bsize = fread(&buffer[MAXLINE+1], 1, BUFSIZE, stdin); + if (bsize < 0) { + error("read error\n"); + exit(EXIT_FAILURE); + } + limit = &buffer[MAXLINE+1+bsize]; + *limit = '\n'; +} +void input_init(int argc, char *argv[]) { + static int inited; + + if (inited) + return; + inited = 1; + main_init(argc, argv); + limit = cp = &buffer[MAXLINE+1]; + bsize = -1; + lineno = 0; + file = NULL; + fillbuf(); + if (cp >= limit) + cp = limit; + nextline(); +} + +/* pragma - handle #pragma ref id... */ +static void pragma(void) { + if ((t = gettok()) == ID && strcmp(token, "ref") == 0) + for (;;) { + while (*cp == ' ' || *cp == '\t') + cp++; + if (*cp == '\n' || *cp == 0) + break; + if ((t = gettok()) == ID && tsym) { + tsym->ref++; + use(tsym, src); + } + } +} + +/* resynch - set line number/file name in # n [ "file" ] and #pragma ... */ +static void resynch(void) { + for (cp++; *cp == ' ' || *cp == '\t'; ) + cp++; + if (limit - cp < MAXLINE) + fillbuf(); + if (strncmp((char *)cp, "pragma", 6) == 0) { + cp += 6; + pragma(); + } else if (*cp >= '0' && *cp <= '9') { + line: for (lineno = 0; *cp >= '0' && *cp <= '9'; ) + lineno = 10*lineno + *cp++ - '0'; + lineno--; + while (*cp == ' ' || *cp == '\t') + cp++; + if (*cp == '"') { + file = (char *)++cp; + while (*cp && *cp != '"' && *cp != '\n') + cp++; + file = stringn(file, (char *)cp - file); + if (*cp == '\n') + warning("missing \" in preprocessor line\n"); + if (firstfile == 0) + firstfile = file; + } + } else if (strncmp((char *)cp, "line", 4) == 0) { + for (cp += 4; *cp == ' ' || *cp == '\t'; ) + cp++; + if (*cp >= '0' && *cp <= '9') + goto line; + if (Aflag >= 2) + warning("unrecognized control line\n"); + } else if (Aflag >= 2 && *cp != '\n') + warning("unrecognized control line\n"); + while (*cp) + if (*cp++ == '\n') { + if (cp == limit + 1) + nextline(); + else + break; + } +} + diff --git a/code/tools/lcc/src/lex.c b/code/tools/lcc/src/lex.c new file mode 100644 index 0000000..ec2f1ec --- /dev/null +++ b/code/tools/lcc/src/lex.c @@ -0,0 +1,923 @@ +#include "c.h" +#include +#include + + +#define MAXTOKEN 32 + +enum { BLANK=01, NEWLINE=02, LETTER=04, + DIGIT=010, HEX=020, OTHER=040 }; + +static unsigned char map[256] = { /* 000 nul */ 0, + /* 001 soh */ 0, + /* 002 stx */ 0, + /* 003 etx */ 0, + /* 004 eot */ 0, + /* 005 enq */ 0, + /* 006 ack */ 0, + /* 007 bel */ 0, + /* 010 bs */ 0, + /* 011 ht */ BLANK, + /* 012 nl */ NEWLINE, + /* 013 vt */ BLANK, + /* 014 ff */ BLANK, + /* 015 cr */ 0, + /* 016 so */ 0, + /* 017 si */ 0, + /* 020 dle */ 0, + /* 021 dc1 */ 0, + /* 022 dc2 */ 0, + /* 023 dc3 */ 0, + /* 024 dc4 */ 0, + /* 025 nak */ 0, + /* 026 syn */ 0, + /* 027 etb */ 0, + /* 030 can */ 0, + /* 031 em */ 0, + /* 032 sub */ 0, + /* 033 esc */ 0, + /* 034 fs */ 0, + /* 035 gs */ 0, + /* 036 rs */ 0, + /* 037 us */ 0, + /* 040 sp */ BLANK, + /* 041 ! */ OTHER, + /* 042 " */ OTHER, + /* 043 # */ OTHER, + /* 044 $ */ 0, + /* 045 % */ OTHER, + /* 046 & */ OTHER, + /* 047 ' */ OTHER, + /* 050 ( */ OTHER, + /* 051 ) */ OTHER, + /* 052 * */ OTHER, + /* 053 + */ OTHER, + /* 054 , */ OTHER, + /* 055 - */ OTHER, + /* 056 . */ OTHER, + /* 057 / */ OTHER, + /* 060 0 */ DIGIT, + /* 061 1 */ DIGIT, + /* 062 2 */ DIGIT, + /* 063 3 */ DIGIT, + /* 064 4 */ DIGIT, + /* 065 5 */ DIGIT, + /* 066 6 */ DIGIT, + /* 067 7 */ DIGIT, + /* 070 8 */ DIGIT, + /* 071 9 */ DIGIT, + /* 072 : */ OTHER, + /* 073 ; */ OTHER, + /* 074 < */ OTHER, + /* 075 = */ OTHER, + /* 076 > */ OTHER, + /* 077 ? */ OTHER, + /* 100 @ */ 0, + /* 101 A */ LETTER|HEX, + /* 102 B */ LETTER|HEX, + /* 103 C */ LETTER|HEX, + /* 104 D */ LETTER|HEX, + /* 105 E */ LETTER|HEX, + /* 106 F */ LETTER|HEX, + /* 107 G */ LETTER, + /* 110 H */ LETTER, + /* 111 I */ LETTER, + /* 112 J */ LETTER, + /* 113 K */ LETTER, + /* 114 L */ LETTER, + /* 115 M */ LETTER, + /* 116 N */ LETTER, + /* 117 O */ LETTER, + /* 120 P */ LETTER, + /* 121 Q */ LETTER, + /* 122 R */ LETTER, + /* 123 S */ LETTER, + /* 124 T */ LETTER, + /* 125 U */ LETTER, + /* 126 V */ LETTER, + /* 127 W */ LETTER, + /* 130 X */ LETTER, + /* 131 Y */ LETTER, + /* 132 Z */ LETTER, + /* 133 [ */ OTHER, + /* 134 \ */ OTHER, + /* 135 ] */ OTHER, + /* 136 ^ */ OTHER, + /* 137 _ */ LETTER, + /* 140 ` */ 0, + /* 141 a */ LETTER|HEX, + /* 142 b */ LETTER|HEX, + /* 143 c */ LETTER|HEX, + /* 144 d */ LETTER|HEX, + /* 145 e */ LETTER|HEX, + /* 146 f */ LETTER|HEX, + /* 147 g */ LETTER, + /* 150 h */ LETTER, + /* 151 i */ LETTER, + /* 152 j */ LETTER, + /* 153 k */ LETTER, + /* 154 l */ LETTER, + /* 155 m */ LETTER, + /* 156 n */ LETTER, + /* 157 o */ LETTER, + /* 160 p */ LETTER, + /* 161 q */ LETTER, + /* 162 r */ LETTER, + /* 163 s */ LETTER, + /* 164 t */ LETTER, + /* 165 u */ LETTER, + /* 166 v */ LETTER, + /* 167 w */ LETTER, + /* 170 x */ LETTER, + /* 171 y */ LETTER, + /* 172 z */ LETTER, + /* 173 { */ OTHER, + /* 174 | */ OTHER, + /* 175 } */ OTHER, + /* 176 ~ */ OTHER, }; +static struct symbol tval; +static char cbuf[BUFSIZE+1]; +static unsigned int wcbuf[BUFSIZE+1]; + +Coordinate src; /* current source coordinate */ +int t; +char *token; /* current token */ +Symbol tsym; /* symbol table entry for current token */ + +static void *cput(int c, void *cl); +static void *wcput(int c, void *cl); +static void *scon(int q, void *put(int c, void *cl), void *cl); +static int backslash(int q); +static Symbol fcon(void); +static Symbol icon(unsigned long, int, int); +static void ppnumber(char *); + +int gettok(void) { + for (;;) { + register unsigned char *rcp = cp; + while (map[*rcp]&BLANK) + rcp++; + if (limit - rcp < MAXTOKEN) { + cp = rcp; + fillbuf(); + rcp = cp; + } + src.file = file; + src.x = (char *)rcp - line; + src.y = lineno; + cp = rcp + 1; + switch (*rcp++) { + case '/': if (*rcp == '*') { + int c = 0; + for (rcp++; *rcp != '/' || c != '*'; ) + if (map[*rcp]&NEWLINE) { + if (rcp < limit) + c = *rcp; + cp = rcp + 1; + nextline(); + rcp = cp; + if (rcp == limit) + break; + } else + c = *rcp++; + if (rcp < limit) + rcp++; + else + error("unclosed comment\n"); + cp = rcp; + continue; + } + return '/'; + case '<': + if (*rcp == '=') return cp++, LEQ; + if (*rcp == '<') return cp++, LSHIFT; + return '<'; + case '>': + if (*rcp == '=') return cp++, GEQ; + if (*rcp == '>') return cp++, RSHIFT; + return '>'; + case '-': + if (*rcp == '>') return cp++, DEREF; + if (*rcp == '-') return cp++, DECR; + return '-'; + case '=': return *rcp == '=' ? cp++, EQL : '='; + case '!': return *rcp == '=' ? cp++, NEQ : '!'; + case '|': return *rcp == '|' ? cp++, OROR : '|'; + case '&': return *rcp == '&' ? cp++, ANDAND : '&'; + case '+': return *rcp == '+' ? cp++, INCR : '+'; + case ';': case ',': case ':': + case '*': case '~': case '%': case '^': case '?': + case '[': case ']': case '{': case '}': case '(': case ')': + return rcp[-1]; + case '\n': case '\v': case '\r': case '\f': + nextline(); + if (cp == limit) { + tsym = NULL; + return EOI; + } + continue; + + case 'i': + if (rcp[0] == 'f' + && !(map[rcp[1]]&(DIGIT|LETTER))) { + cp = rcp + 1; + return IF; + } + if (rcp[0] == 'n' + && rcp[1] == 't' + && !(map[rcp[2]]&(DIGIT|LETTER))) { + cp = rcp + 2; + tsym = inttype->u.sym; + return INT; + } + goto id; + case 'h': case 'j': case 'k': case 'm': case 'n': case 'o': + case 'p': case 'q': case 'x': case 'y': case 'z': + case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': + case 'G': case 'H': case 'I': case 'J': case 'K': + case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': + case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': + case 'Y': case 'Z': + id: + if (limit - rcp < MAXLINE) { + cp = rcp - 1; + fillbuf(); + rcp = ++cp; + } + assert(cp == rcp); + token = (char *)rcp - 1; + while (map[*rcp]&(DIGIT|LETTER)) + rcp++; + token = stringn(token, (char *)rcp - token); + tsym = lookup(token, identifiers); + cp = rcp; + return ID; + case '0': case '1': case '2': case '3': case '4': + case '5': case '6': case '7': case '8': case '9': { + unsigned long n = 0; + if (limit - rcp < MAXLINE) { + cp = rcp - 1; + fillbuf(); + rcp = ++cp; + } + assert(cp == rcp); + token = (char *)rcp - 1; + if (*token == '0' && (*rcp == 'x' || *rcp == 'X')) { + int d, overflow = 0; + while (*++rcp) { + if (map[*rcp]&DIGIT) + d = *rcp - '0'; + else if (*rcp >= 'a' && *rcp <= 'f') + d = *rcp - 'a' + 10; + else if (*rcp >= 'A' && *rcp <= 'F') + d = *rcp - 'A' + 10; + else + break; + if (n&~(~0UL >> 4)) + overflow = 1; + else + n = (n<<4) + d; + } + if ((char *)rcp - token <= 2) + error("invalid hexadecimal constant `%S'\n", token, (char *)rcp-token); + cp = rcp; + tsym = icon(n, overflow, 16); + } else if (*token == '0') { + int err = 0, overflow = 0; + for ( ; map[*rcp]&DIGIT; rcp++) { + if (*rcp == '8' || *rcp == '9') + err = 1; + if (n&~(~0UL >> 3)) + overflow = 1; + else + n = (n<<3) + (*rcp - '0'); + } + if (*rcp == '.' || *rcp == 'e' || *rcp == 'E') { + cp = rcp; + tsym = fcon(); + return FCON; + } + cp = rcp; + tsym = icon(n, overflow, 8); + if (err) + error("invalid octal constant `%S'\n", token, (char*)cp-token); + } else { + int overflow = 0; + for (n = *token - '0'; map[*rcp]&DIGIT; ) { + int d = *rcp++ - '0'; + if (n > (ULONG_MAX - d)/10) + overflow = 1; + else + n = 10*n + d; + } + if (*rcp == '.' || *rcp == 'e' || *rcp == 'E') { + cp = rcp; + tsym = fcon(); + return FCON; + } + cp = rcp; + tsym = icon(n, overflow, 10); + } + return ICON; + } + case '.': + if (rcp[0] == '.' && rcp[1] == '.') { + cp += 2; + return ELLIPSIS; + } + if ((map[*rcp]&DIGIT) == 0) + return '.'; + if (limit - rcp < MAXLINE) { + cp = rcp - 1; + fillbuf(); + rcp = ++cp; + } + assert(cp == rcp); + cp = rcp - 1; + token = (char *)cp; + tsym = fcon(); + return FCON; + case 'L': + if (*rcp == '\'') { + unsigned int *s = scon(*cp, wcput, wcbuf); + if (s - wcbuf > 2) + warning("excess characters in wide-character literal ignored\n"); + tval.type = widechar; + tval.u.c.v.u = wcbuf[0]; + tsym = &tval; + return ICON; + } else if (*rcp == '"') { + unsigned int *s = scon(*cp, wcput, wcbuf); + tval.type = array(widechar, s - wcbuf, 0); + tval.u.c.v.p = wcbuf; + tsym = &tval; + return SCON; + } else + goto id; + case '\'': { + char *s = scon(*--cp, cput, cbuf); + if (s - cbuf > 2) + warning("excess characters in multibyte character literal ignored\n"); + tval.type = inttype; + if (chartype->op == INT) + tval.u.c.v.i = extend(cbuf[0], chartype); + else + tval.u.c.v.i = cbuf[0]&0xFF; + tsym = &tval; + return ICON; + } + case '"': { + char *s = scon(*--cp, cput, cbuf); + tval.type = array(chartype, s - cbuf, 0); + tval.u.c.v.p = cbuf; + tsym = &tval; + return SCON; + } + case 'a': + if (rcp[0] == 'u' + && rcp[1] == 't' + && rcp[2] == 'o' + && !(map[rcp[3]]&(DIGIT|LETTER))) { + cp = rcp + 3; + return AUTO; + } + goto id; + case 'b': + if (rcp[0] == 'r' + && rcp[1] == 'e' + && rcp[2] == 'a' + && rcp[3] == 'k' + && !(map[rcp[4]]&(DIGIT|LETTER))) { + cp = rcp + 4; + return BREAK; + } + goto id; + case 'c': + if (rcp[0] == 'a' + && rcp[1] == 's' + && rcp[2] == 'e' + && !(map[rcp[3]]&(DIGIT|LETTER))) { + cp = rcp + 3; + return CASE; + } + if (rcp[0] == 'h' + && rcp[1] == 'a' + && rcp[2] == 'r' + && !(map[rcp[3]]&(DIGIT|LETTER))) { + cp = rcp + 3; + tsym = chartype->u.sym; + return CHAR; + } + if (rcp[0] == 'o' + && rcp[1] == 'n' + && rcp[2] == 's' + && rcp[3] == 't' + && !(map[rcp[4]]&(DIGIT|LETTER))) { + cp = rcp + 4; + return CONST; + } + if (rcp[0] == 'o' + && rcp[1] == 'n' + && rcp[2] == 't' + && rcp[3] == 'i' + && rcp[4] == 'n' + && rcp[5] == 'u' + && rcp[6] == 'e' + && !(map[rcp[7]]&(DIGIT|LETTER))) { + cp = rcp + 7; + return CONTINUE; + } + goto id; + case 'd': + if (rcp[0] == 'e' + && rcp[1] == 'f' + && rcp[2] == 'a' + && rcp[3] == 'u' + && rcp[4] == 'l' + && rcp[5] == 't' + && !(map[rcp[6]]&(DIGIT|LETTER))) { + cp = rcp + 6; + return DEFAULT; + } + if (rcp[0] == 'o' + && rcp[1] == 'u' + && rcp[2] == 'b' + && rcp[3] == 'l' + && rcp[4] == 'e' + && !(map[rcp[5]]&(DIGIT|LETTER))) { + cp = rcp + 5; + tsym = doubletype->u.sym; + return DOUBLE; + } + if (rcp[0] == 'o' + && !(map[rcp[1]]&(DIGIT|LETTER))) { + cp = rcp + 1; + return DO; + } + goto id; + case 'e': + if (rcp[0] == 'l' + && rcp[1] == 's' + && rcp[2] == 'e' + && !(map[rcp[3]]&(DIGIT|LETTER))) { + cp = rcp + 3; + return ELSE; + } + if (rcp[0] == 'n' + && rcp[1] == 'u' + && rcp[2] == 'm' + && !(map[rcp[3]]&(DIGIT|LETTER))) { + cp = rcp + 3; + return ENUM; + } + if (rcp[0] == 'x' + && rcp[1] == 't' + && rcp[2] == 'e' + && rcp[3] == 'r' + && rcp[4] == 'n' + && !(map[rcp[5]]&(DIGIT|LETTER))) { + cp = rcp + 5; + return EXTERN; + } + goto id; + case 'f': + if (rcp[0] == 'l' + && rcp[1] == 'o' + && rcp[2] == 'a' + && rcp[3] == 't' + && !(map[rcp[4]]&(DIGIT|LETTER))) { + cp = rcp + 4; + tsym = floattype->u.sym; + return FLOAT; + } + if (rcp[0] == 'o' + && rcp[1] == 'r' + && !(map[rcp[2]]&(DIGIT|LETTER))) { + cp = rcp + 2; + return FOR; + } + goto id; + case 'g': + if (rcp[0] == 'o' + && rcp[1] == 't' + && rcp[2] == 'o' + && !(map[rcp[3]]&(DIGIT|LETTER))) { + cp = rcp + 3; + return GOTO; + } + goto id; + case 'l': + if (rcp[0] == 'o' + && rcp[1] == 'n' + && rcp[2] == 'g' + && !(map[rcp[3]]&(DIGIT|LETTER))) { + cp = rcp + 3; + return LONG; + } + goto id; + case 'r': + if (rcp[0] == 'e' + && rcp[1] == 'g' + && rcp[2] == 'i' + && rcp[3] == 's' + && rcp[4] == 't' + && rcp[5] == 'e' + && rcp[6] == 'r' + && !(map[rcp[7]]&(DIGIT|LETTER))) { + cp = rcp + 7; + return REGISTER; + } + if (rcp[0] == 'e' + && rcp[1] == 't' + && rcp[2] == 'u' + && rcp[3] == 'r' + && rcp[4] == 'n' + && !(map[rcp[5]]&(DIGIT|LETTER))) { + cp = rcp + 5; + return RETURN; + } + goto id; + case 's': + if (rcp[0] == 'h' + && rcp[1] == 'o' + && rcp[2] == 'r' + && rcp[3] == 't' + && !(map[rcp[4]]&(DIGIT|LETTER))) { + cp = rcp + 4; + return SHORT; + } + if (rcp[0] == 'i' + && rcp[1] == 'g' + && rcp[2] == 'n' + && rcp[3] == 'e' + && rcp[4] == 'd' + && !(map[rcp[5]]&(DIGIT|LETTER))) { + cp = rcp + 5; + return SIGNED; + } + if (rcp[0] == 'i' + && rcp[1] == 'z' + && rcp[2] == 'e' + && rcp[3] == 'o' + && rcp[4] == 'f' + && !(map[rcp[5]]&(DIGIT|LETTER))) { + cp = rcp + 5; + return SIZEOF; + } + if (rcp[0] == 't' + && rcp[1] == 'a' + && rcp[2] == 't' + && rcp[3] == 'i' + && rcp[4] == 'c' + && !(map[rcp[5]]&(DIGIT|LETTER))) { + cp = rcp + 5; + return STATIC; + } + if (rcp[0] == 't' + && rcp[1] == 'r' + && rcp[2] == 'u' + && rcp[3] == 'c' + && rcp[4] == 't' + && !(map[rcp[5]]&(DIGIT|LETTER))) { + cp = rcp + 5; + return STRUCT; + } + if (rcp[0] == 'w' + && rcp[1] == 'i' + && rcp[2] == 't' + && rcp[3] == 'c' + && rcp[4] == 'h' + && !(map[rcp[5]]&(DIGIT|LETTER))) { + cp = rcp + 5; + return SWITCH; + } + goto id; + case 't': + if (rcp[0] == 'y' + && rcp[1] == 'p' + && rcp[2] == 'e' + && rcp[3] == 'd' + && rcp[4] == 'e' + && rcp[5] == 'f' + && !(map[rcp[6]]&(DIGIT|LETTER))) { + cp = rcp + 6; + return TYPEDEF; + } + goto id; + case 'u': + if (rcp[0] == 'n' + && rcp[1] == 'i' + && rcp[2] == 'o' + && rcp[3] == 'n' + && !(map[rcp[4]]&(DIGIT|LETTER))) { + cp = rcp + 4; + return UNION; + } + if (rcp[0] == 'n' + && rcp[1] == 's' + && rcp[2] == 'i' + && rcp[3] == 'g' + && rcp[4] == 'n' + && rcp[5] == 'e' + && rcp[6] == 'd' + && !(map[rcp[7]]&(DIGIT|LETTER))) { + cp = rcp + 7; + return UNSIGNED; + } + goto id; + case 'v': + if (rcp[0] == 'o' + && rcp[1] == 'i' + && rcp[2] == 'd' + && !(map[rcp[3]]&(DIGIT|LETTER))) { + cp = rcp + 3; + tsym = voidtype->u.sym; + return VOID; + } + if (rcp[0] == 'o' + && rcp[1] == 'l' + && rcp[2] == 'a' + && rcp[3] == 't' + && rcp[4] == 'i' + && rcp[5] == 'l' + && rcp[6] == 'e' + && !(map[rcp[7]]&(DIGIT|LETTER))) { + cp = rcp + 7; + return VOLATILE; + } + goto id; + case 'w': + if (rcp[0] == 'h' + && rcp[1] == 'i' + && rcp[2] == 'l' + && rcp[3] == 'e' + && !(map[rcp[4]]&(DIGIT|LETTER))) { + cp = rcp + 4; + return WHILE; + } + goto id; + case '_': + if (rcp[0] == '_' + && rcp[1] == 't' + && rcp[2] == 'y' + && rcp[3] == 'p' + && rcp[4] == 'e' + && rcp[5] == 'c' + && rcp[6] == 'o' + && rcp[7] == 'd' + && rcp[8] == 'e' + && !(map[rcp[9]]&(DIGIT|LETTER))) { + cp = rcp + 9; + return TYPECODE; + } + if (rcp[0] == '_' + && rcp[1] == 'f' + && rcp[2] == 'i' + && rcp[3] == 'r' + && rcp[4] == 's' + && rcp[5] == 't' + && rcp[6] == 'a' + && rcp[7] == 'r' + && rcp[8] == 'g' + && !(map[rcp[9]]&(DIGIT|LETTER))) { + cp = rcp + 9; + return FIRSTARG; + } + goto id; + default: + if ((map[cp[-1]]&BLANK) == 0) { + if (cp[-1] < ' ' || cp[-1] >= 0177) + error("illegal character `\\0%o'\n", cp[-1]); + else + error("illegal character `%c'\n", cp[-1]); + } + } + } +} +static Symbol icon(unsigned long n, int overflow, int base) { + if (((*cp=='u'||*cp=='U') && (cp[1]=='l'||cp[1]=='L')) + || ((*cp=='l'||*cp=='L') && (cp[1]=='u'||cp[1]=='U'))) { + tval.type = unsignedlong; + cp += 2; + } else if (*cp == 'u' || *cp == 'U') { + if (overflow || n > unsignedtype->u.sym->u.limits.max.i) + tval.type = unsignedlong; + else + tval.type = unsignedtype; + cp += 1; + } else if (*cp == 'l' || *cp == 'L') { + if (overflow || n > longtype->u.sym->u.limits.max.i) + tval.type = unsignedlong; + else + tval.type = longtype; + cp += 1; + } else if (overflow || n > longtype->u.sym->u.limits.max.i) + tval.type = unsignedlong; + else if (n > inttype->u.sym->u.limits.max.i) + tval.type = longtype; + else if (base != 10 && n > inttype->u.sym->u.limits.max.i) + tval.type = unsignedtype; + else + tval.type = inttype; + switch (tval.type->op) { + case INT: + if (overflow || n > tval.type->u.sym->u.limits.max.i) { + warning("overflow in constant `%S'\n", token, + (char*)cp - token); + tval.u.c.v.i = tval.type->u.sym->u.limits.max.i; + } else + tval.u.c.v.i = n; + break; + case UNSIGNED: + if (overflow || n > tval.type->u.sym->u.limits.max.u) { + warning("overflow in constant `%S'\n", token, + (char*)cp - token); + tval.u.c.v.u = tval.type->u.sym->u.limits.max.u; + } else + tval.u.c.v.u = n; + break; + default: assert(0); + } + ppnumber("integer"); + return &tval; +} +static void ppnumber(char *which) { + unsigned char *rcp = cp--; + + for ( ; (map[*cp]&(DIGIT|LETTER)) || *cp == '.'; cp++) + if ((cp[0] == 'E' || cp[0] == 'e') + && (cp[1] == '-' || cp[1] == '+')) + cp++; + if (cp > rcp) + error("`%S' is a preprocessing number but an invalid %s constant\n", token, + + (char*)cp-token, which); +} +static Symbol fcon(void) { + if (*cp == '.') + do + cp++; + while (map[*cp]&DIGIT); + if (*cp == 'e' || *cp == 'E') { + if (*++cp == '-' || *cp == '+') + cp++; + if (map[*cp]&DIGIT) + do + cp++; + while (map[*cp]&DIGIT); + else + error("invalid floating constant `%S'\n", token, + (char*)cp - token); + } + + errno = 0; + tval.u.c.v.d = strtod(token, NULL); + if (errno == ERANGE) + warning("overflow in floating constant `%S'\n", token, + (char*)cp - token); + if (*cp == 'f' || *cp == 'F') { + ++cp; + if (tval.u.c.v.d > floattype->u.sym->u.limits.max.d) + warning("overflow in floating constant `%S'\n", token, + (char*)cp - token); + tval.type = floattype; + } else if (*cp == 'l' || *cp == 'L') { + cp++; + tval.type = longdouble; + } else { + if (tval.u.c.v.d > doubletype->u.sym->u.limits.max.d) + warning("overflow in floating constant `%S'\n", token, + (char*)cp - token); + tval.type = doubletype; + } + ppnumber("floating"); + return &tval; +} + +static void *cput(int c, void *cl) { + char *s = cl; + + if (c < 0 || c > 255) + warning("overflow in escape sequence with resulting value `%d'\n", c); + *s++ = c; + return s; +} + +static void *wcput(int c, void *cl) { + unsigned int *s = cl; + + *s++ = c; + return s; +} + +static void *scon(int q, void *put(int c, void *cl), void *cl) { + int n = 0, nbad = 0; + + do { + cp++; + while (*cp != q) { + int c; + if (map[*cp]&NEWLINE) { + if (cp < limit) + break; + cp++; + nextline(); + if (cp == limit) + break; + continue; + } + c = *cp++; + if (c == '\\') { + if (map[*cp]&NEWLINE) { + if (cp < limit) + break; + cp++; + nextline(); + } + if (limit - cp < MAXTOKEN) + fillbuf(); + c = backslash(q); + } else if (c < 0 || c > 255 || map[c] == 0) + nbad++; + if (n++ < BUFSIZE) + cl = put(c, cl); + } + if (*cp == q) + cp++; + else + error("missing %c\n", q); + } while (q == '"' && getchr() == '"'); + cl = put(0, cl); + if (n >= BUFSIZE) + error("%s literal too long\n", q == '"' ? "string" : "character"); + if (Aflag >= 2 && q == '"' && n > 509) + warning("more than 509 characters in a string literal\n"); + if (Aflag >= 2 && nbad > 0) + warning("%s literal contains non-portable characters\n", + q == '"' ? "string" : "character"); + return cl; +} +int getchr(void) { + for (;;) { + while (map[*cp]&BLANK) + cp++; + if (!(map[*cp]&NEWLINE)) + return *cp; + cp++; + nextline(); + if (cp == limit) + return EOI; + } +} +static int backslash(int q) { + unsigned int c; + + switch (*cp++) { + case 'a': return 7; + case 'b': return '\b'; + case 'f': return '\f'; + case 'n': return '\n'; + case 'r': return '\r'; + case 't': return '\t'; + case 'v': return '\v'; + case '\'': case '"': case '\\': case '\?': break; + case 'x': { + int overflow = 0; + if ((map[*cp]&(DIGIT|HEX)) == 0) { + if (*cp < ' ' || *cp == 0177) + error("ill-formed hexadecimal escape sequence\n"); + else + error("ill-formed hexadecimal escape sequence `\\x%c'\n", *cp); + if (*cp != q) + cp++; + return 0; + } + for (c = 0; map[*cp]&(DIGIT|HEX); cp++) { + if (c >> (8*widechar->size - 4)) + overflow = 1; + if (map[*cp]&DIGIT) + c = (c<<4) + *cp - '0'; + else + c = (c<<4) + (*cp&~040) - 'A' + 10; + } + if (overflow) + warning("overflow in hexadecimal escape sequence\n"); + return c&ones(8*widechar->size); + } + case '0': case '1': case '2': case '3': + case '4': case '5': case '6': case '7': + c = *(cp-1) - '0'; + if (*cp >= '0' && *cp <= '7') { + c = (c<<3) + *cp++ - '0'; + if (*cp >= '0' && *cp <= '7') + c = (c<<3) + *cp++ - '0'; + } + return c; + default: + if (cp[-1] < ' ' || cp[-1] >= 0177) + warning("unrecognized character escape sequence\n"); + else + warning("unrecognized character escape sequence `\\%c'\n", cp[-1]); + } + return cp[-1]; +} diff --git a/code/tools/lcc/src/list.c b/code/tools/lcc/src/list.c new file mode 100644 index 0000000..29e660a --- /dev/null +++ b/code/tools/lcc/src/list.c @@ -0,0 +1,56 @@ +#include "c.h" + + +static List freenodes; /* free list nodes */ + +/* append - append x to list, return new list */ +List append(void *x, List list) { + List new; + + if ((new = freenodes) != NULL) + freenodes = freenodes->link; + else + NEW(new, PERM); + if (list) { + new->link = list->link; + list->link = new; + } else + new->link = new; + new->x = x; + return new; +} + +/* length - # elements in list */ +int length(List list) { + int n = 0; + + if (list) { + List lp = list; + do + n++; + while ((lp = lp->link) != list); + } + return n; +} + +/* ltov - convert list to an NULL-terminated vector allocated in arena */ +void *ltov(List *list, unsigned arena) { + int i = 0; + void **array = newarray(length(*list) + 1, sizeof array[0], arena); + + if (*list) { + List lp = *list; + do { + lp = lp->link; + array[i++] = lp->x; + } while (lp != *list); +#ifndef PURIFY + lp = (*list)->link; + (*list)->link = freenodes; + freenodes = lp; +#endif + } + *list = NULL; + array[i] = NULL; + return array; +} diff --git a/code/tools/lcc/src/main.c b/code/tools/lcc/src/main.c new file mode 100644 index 0000000..63b85f2 --- /dev/null +++ b/code/tools/lcc/src/main.c @@ -0,0 +1,225 @@ +#include "c.h" + +static char rcsid[] = "main.c - faked rcsid"; + +static void typestab(Symbol, void *); + +static void stabline(Coordinate *); +static void stabend(Coordinate *, Symbol, Coordinate **, Symbol *, Symbol *); +Interface *IR = NULL; + +int Aflag; /* >= 0 if -A specified */ +int Pflag; /* != 0 if -P specified */ +int glevel; /* == [0-9] if -g[0-9] specified */ +int xref; /* != 0 for cross-reference data */ +Symbol YYnull; /* _YYnull symbol if -n or -nvalidate specified */ +Symbol YYcheck; /* _YYcheck symbol if -nvalidate,check specified */ + +static char *comment; +static Interface stabIR; +static char *currentfile; /* current file name */ +static int currentline; /* current line number */ +static FILE *srcfp; /* stream for current file, if non-NULL */ +static int srcpos; /* position of srcfp, if srcfp is non-NULL */ +int main(int argc, char *argv[]) { + int i, j; + for (i = argc - 1; i > 0; i--) + if (strncmp(argv[i], "-target=", 8) == 0) + break; + if (i > 0) { + char *s = strchr(argv[i], '\\'); + if (s != NULL) + *s = '/'; + for (j = 0; bindings[j].name && bindings[j].ir; j++) + if (strcmp(&argv[i][8], bindings[j].name) == 0) { + IR = bindings[j].ir; + break; + } + if (s != NULL) + *s = '\\'; + } + if (!IR) { + fprint(stderr, "%s: unknown target", argv[0]); + if (i > 0) + fprint(stderr, " `%s'", &argv[i][8]); + fprint(stderr, "; must specify one of\n"); + for (i = 0; bindings[i].name; i++) + fprint(stderr, "\t-target=%s\n", bindings[i].name); + exit(EXIT_FAILURE); + } + init(argc, argv); + t = gettok(); + (*IR->progbeg)(argc, argv); + if (glevel && IR->stabinit) + (*IR->stabinit)(firstfile, argc, argv); + program(); + if (events.end) + apply(events.end, NULL, NULL); + memset(&events, 0, sizeof events); + if (glevel || xref) { + Symbol symroot = NULL; + Coordinate src; + foreach(types, GLOBAL, typestab, &symroot); + foreach(identifiers, GLOBAL, typestab, &symroot); + src.file = firstfile; + src.x = 0; + src.y = lineno; + if ((glevel > 2 || xref) && IR->stabend) + (*IR->stabend)(&src, symroot, + ltov(&loci, PERM), + ltov(&symbols, PERM), NULL); + else if (IR->stabend) + (*IR->stabend)(&src, NULL, NULL, NULL, NULL); + } + finalize(); + (*IR->progend)(); + deallocate(PERM); + return errcnt > 0; +} +/* main_init - process program arguments */ +void main_init(int argc, char *argv[]) { + char *infile = NULL, *outfile = NULL; + int i; + static int inited; + + if (inited) + return; + inited = 1; + type_init(argc, argv); + for (i = 1; i < argc; i++) + if (strcmp(argv[i], "-g") == 0 || strcmp(argv[i], "-g2") == 0) + glevel = 2; + else if (strncmp(argv[i], "-g", 2) == 0) { /* -gn[,x] */ + char *p = strchr(argv[i], ','); + glevel = atoi(argv[i]+2); + if (p) { + comment = p + 1; + if (glevel == 0) + glevel = 1; + if (stabIR.stabline == NULL) { + stabIR.stabline = IR->stabline; + stabIR.stabend = IR->stabend; + IR->stabline = stabline; + IR->stabend = stabend; + } + } + } else if (strcmp(argv[i], "-x") == 0) + xref++; + else if (strcmp(argv[i], "-A") == 0) { + ++Aflag; + } else if (strcmp(argv[i], "-P") == 0) + Pflag++; + else if (strcmp(argv[i], "-w") == 0) + wflag++; + else if (strcmp(argv[i], "-n") == 0) { + if (!YYnull) { + YYnull = install(string("_YYnull"), &globals, GLOBAL, PERM); + YYnull->type = func(voidptype, NULL, 1); + YYnull->sclass = EXTERN; + (*IR->defsymbol)(YYnull); + } + } else if (strncmp(argv[i], "-n", 2) == 0) { /* -nvalid[,check] */ + char *p = strchr(argv[i], ','); + if (p) { + YYcheck = install(string(p+1), &globals, GLOBAL, PERM); + YYcheck->type = func(voidptype, NULL, 1); + YYcheck->sclass = EXTERN; + (*IR->defsymbol)(YYcheck); + p = stringn(argv[i]+2, p - (argv[i]+2)); + } else + p = string(argv[i]+2); + YYnull = install(p, &globals, GLOBAL, PERM); + YYnull->type = func(voidptype, NULL, 1); + YYnull->sclass = EXTERN; + (*IR->defsymbol)(YYnull); + } else if (strcmp(argv[i], "-v") == 0) + fprint(stderr, "%s %s\n", argv[0], rcsid); + else if (strncmp(argv[i], "-s", 2) == 0) + density = strtod(&argv[i][2], NULL); + else if (strncmp(argv[i], "-errout=", 8) == 0) { + FILE *f = fopen(argv[i]+8, "w"); + if (f == NULL) { + fprint(stderr, "%s: can't write errors to `%s'\n", argv[0], argv[i]+8); + exit(EXIT_FAILURE); + } + fclose(f); + f = freopen(argv[i]+8, "w", stderr); + assert(f); + } else if (strncmp(argv[i], "-e", 2) == 0) { + int x; + if ((x = strtol(&argv[i][2], NULL, 0)) > 0) + errlimit = x; + } else if (strncmp(argv[i], "-little_endian=", 15) == 0) + IR->little_endian = argv[i][15] - '0'; + else if (strncmp(argv[i], "-mulops_calls=", 18) == 0) + IR->mulops_calls = argv[i][18] - '0'; + else if (strncmp(argv[i], "-wants_callb=", 13) == 0) + IR->wants_callb = argv[i][13] - '0'; + else if (strncmp(argv[i], "-wants_argb=", 12) == 0) + IR->wants_argb = argv[i][12] - '0'; + else if (strncmp(argv[i], "-left_to_right=", 15) == 0) + IR->left_to_right = argv[i][15] - '0'; + else if (strncmp(argv[i], "-wants_dag=", 11) == 0) + IR->wants_dag = argv[i][11] - '0'; + else if (*argv[i] != '-' || strcmp(argv[i], "-") == 0) { + if (infile == NULL) + infile = argv[i]; + else if (outfile == NULL) + outfile = argv[i]; + } + + if (infile != NULL && strcmp(infile, "-") != 0 + && freopen(infile, "r", stdin) == NULL) { + fprint(stderr, "%s: can't read `%s'\n", argv[0], infile); + exit(EXIT_FAILURE); + } + if (outfile != NULL && strcmp(outfile, "-") != 0 + && freopen(outfile, "w", stdout) == NULL) { + fprint(stderr, "%s: can't write `%s'\n", argv[0], outfile); + exit(EXIT_FAILURE); + } +} +/* typestab - emit stab entries for p */ +static void typestab(Symbol p, void *cl) { + if (*(Symbol *)cl == 0 && p->sclass && p->sclass != TYPEDEF) + *(Symbol *)cl = p; + if ((p->sclass == TYPEDEF || p->sclass == 0) && IR->stabtype) + (*IR->stabtype)(p); +} + +/* stabline - emit source code for source coordinate *cp */ +static void stabline(Coordinate *cp) { + if (cp->file && cp->file != currentfile) { + if (srcfp) + fclose(srcfp); + currentfile = cp->file; + srcfp = fopen(currentfile, "r"); + srcpos = 0; + currentline = 0; + } + if (currentline != cp->y && srcfp) { + char buf[512]; + if (srcpos > cp->y) { + rewind(srcfp); + srcpos = 0; + } + for ( ; srcpos < cp->y; srcpos++) + if (fgets(buf, sizeof buf, srcfp) == NULL) { + fclose(srcfp); + srcfp = NULL; + break; + } + if (srcfp && srcpos == cp->y) + print("%s%s", comment, buf); + } + currentline = cp->y; + if (stabIR.stabline) + (*stabIR.stabline)(cp); +} + +static void stabend(Coordinate *cp, Symbol p, Coordinate **cpp, Symbol *sp, Symbol *stab) { + if (stabIR.stabend) + (*stabIR.stabend)(cp, p, cpp, sp, stab); + if (srcfp) + fclose(srcfp); +} diff --git a/code/tools/lcc/src/mips.md b/code/tools/lcc/src/mips.md new file mode 100644 index 0000000..41f6d8c --- /dev/null +++ b/code/tools/lcc/src/mips.md @@ -0,0 +1,1120 @@ +%{ +#define INTTMP 0x0100ff00 +#define INTVAR 0x40ff0000 +#define FLTTMP 0x000f0ff0 +#define FLTVAR 0xfff00000 + +#define INTRET 0x00000004 +#define FLTRET 0x00000003 + +#define readsreg(p) \ + (generic((p)->op)==INDIR && (p)->kids[0]->op==VREG+P) +#define setsrc(d) ((d) && (d)->x.regnode && \ + (d)->x.regnode->set == src->x.regnode->set && \ + (d)->x.regnode->mask&src->x.regnode->mask) + +#define relink(a, b) ((b)->x.prev = (a), (a)->x.next = (b)) + +#include "c.h" +#define NODEPTR_TYPE Node +#define OP_LABEL(p) ((p)->op) +#define LEFT_CHILD(p) ((p)->kids[0]) +#define RIGHT_CHILD(p) ((p)->kids[1]) +#define STATE_LABEL(p) ((p)->x.state) +static void address(Symbol, Symbol, long); +static void blkfetch(int, int, int, int); +static void blkloop(int, int, int, int, int, int[]); +static void blkstore(int, int, int, int); +static void defaddress(Symbol); +static void defconst(int, int, Value); +static void defstring(int, char *); +static void defsymbol(Symbol); +static void doarg(Node); +static void emit2(Node); +static void export(Symbol); +static void clobber(Node); +static void function(Symbol, Symbol [], Symbol [], int); +static void global(Symbol); +static void import(Symbol); +static void local(Symbol); +static void progbeg(int, char **); +static void progend(void); +static void segment(int); +static void space(int); +static void target(Node); +static int bitcount (unsigned); +static Symbol argreg (int, int, int, int, int); + +static Symbol ireg[32], freg2[32], d6; +static Symbol iregw, freg2w; +static int tmpregs[] = {3, 9, 10}; +static Symbol blkreg; + +static int gnum = 8; +static int pic; + +static int cseg; +%} +%start stmt +%term CNSTF4=4113 +%term CNSTF8=8209 +%term CNSTF16=16401 +%term CNSTI1=1045 +%term CNSTI2=2069 +%term CNSTI4=4117 +%term CNSTI8=8213 +%term CNSTP4=4119 +%term CNSTP8=8215 +%term CNSTU1=1046 +%term CNSTU2=2070 +%term CNSTU4=4118 +%term CNSTU8=8214 + +%term ARGB=41 +%term ARGF4=4129 +%term ARGF8=8225 +%term ARGF16=16417 +%term ARGI4=4133 +%term ARGI8=8229 +%term ARGP4=4135 +%term ARGP8=8231 +%term ARGU4=4134 +%term ARGU8=8230 + +%term ASGNB=57 +%term ASGNF4=4145 +%term ASGNF8=8241 +%term ASGNF16=16433 +%term ASGNI1=1077 +%term ASGNI2=2101 +%term ASGNI4=4149 +%term ASGNI8=8245 +%term ASGNP4=4151 +%term ASGNP8=8247 +%term ASGNU1=1078 +%term ASGNU2=2102 +%term ASGNU4=4150 +%term ASGNU8=8246 + +%term INDIRB=73 +%term INDIRF4=4161 +%term INDIRF8=8257 +%term INDIRF16=16449 +%term INDIRI1=1093 +%term INDIRI2=2117 +%term INDIRI4=4165 +%term INDIRI8=8261 +%term INDIRP4=4167 +%term INDIRP8=8263 +%term INDIRU1=1094 +%term INDIRU2=2118 +%term INDIRU4=4166 +%term INDIRU8=8262 + +%term CVFF4=4209 +%term CVFF8=8305 +%term CVFF16=16497 +%term CVFI4=4213 +%term CVFI8=8309 + +%term CVIF4=4225 +%term CVIF8=8321 +%term CVIF16=16513 +%term CVII1=1157 +%term CVII2=2181 +%term CVII4=4229 +%term CVII8=8325 +%term CVIU1=1158 +%term CVIU2=2182 +%term CVIU4=4230 +%term CVIU8=8326 + +%term CVPP4=4247 +%term CVPP8=8343 +%term CVPP16=16535 +%term CVPU4=4246 +%term CVPU8=8342 + +%term CVUI1=1205 +%term CVUI2=2229 +%term CVUI4=4277 +%term CVUI8=8373 +%term CVUP4=4279 +%term CVUP8=8375 +%term CVUP16=16567 +%term CVUU1=1206 +%term CVUU2=2230 +%term CVUU4=4278 +%term CVUU8=8374 + +%term NEGF4=4289 +%term NEGF8=8385 +%term NEGF16=16577 +%term NEGI4=4293 +%term NEGI8=8389 + +%term CALLB=217 +%term CALLF4=4305 +%term CALLF8=8401 +%term CALLF16=16593 +%term CALLI4=4309 +%term CALLI8=8405 +%term CALLP4=4311 +%term CALLP8=8407 +%term CALLU4=4310 +%term CALLU8=8406 +%term CALLV=216 + +%term RETF4=4337 +%term RETF8=8433 +%term RETF16=16625 +%term RETI4=4341 +%term RETI8=8437 +%term RETP4=4343 +%term RETP8=8439 +%term RETU4=4342 +%term RETU8=8438 +%term RETV=248 + +%term ADDRGP4=4359 +%term ADDRGP8=8455 + +%term ADDRFP4=4375 +%term ADDRFP8=8471 + +%term ADDRLP4=4391 +%term ADDRLP8=8487 + +%term ADDF4=4401 +%term ADDF8=8497 +%term ADDF16=16689 +%term ADDI4=4405 +%term ADDI8=8501 +%term ADDP4=4407 +%term ADDP8=8503 +%term ADDU4=4406 +%term ADDU8=8502 + +%term SUBF4=4417 +%term SUBF8=8513 +%term SUBF16=16705 +%term SUBI4=4421 +%term SUBI8=8517 +%term SUBP4=4423 +%term SUBP8=8519 +%term SUBU4=4422 +%term SUBU8=8518 + +%term LSHI4=4437 +%term LSHI8=8533 +%term LSHU4=4438 +%term LSHU8=8534 + +%term MODI4=4453 +%term MODI8=8549 +%term MODU4=4454 +%term MODU8=8550 + +%term RSHI4=4469 +%term RSHI8=8565 +%term RSHU4=4470 +%term RSHU8=8566 + +%term BANDI4=4485 +%term BANDI8=8581 +%term BANDU4=4486 +%term BANDU8=8582 + +%term BCOMI4=4501 +%term BCOMI8=8597 +%term BCOMU4=4502 +%term BCOMU8=8598 + +%term BORI4=4517 +%term BORI8=8613 +%term BORU4=4518 +%term BORU8=8614 + +%term BXORI4=4533 +%term BXORI8=8629 +%term BXORU4=4534 +%term BXORU8=8630 + +%term DIVF4=4545 +%term DIVF8=8641 +%term DIVF16=16833 +%term DIVI4=4549 +%term DIVI8=8645 +%term DIVU4=4550 +%term DIVU8=8646 + +%term MULF4=4561 +%term MULF8=8657 +%term MULF16=16849 +%term MULI4=4565 +%term MULI8=8661 +%term MULU4=4566 +%term MULU8=8662 + +%term EQF4=4577 +%term EQF8=8673 +%term EQF16=16865 +%term EQI4=4581 +%term EQI8=8677 +%term EQU4=4582 +%term EQU8=8678 + +%term GEF4=4593 +%term GEF8=8689 +%term GEI4=4597 +%term GEI8=8693 +%term GEI16=16885 +%term GEU4=4598 +%term GEU8=8694 + +%term GTF4=4609 +%term GTF8=8705 +%term GTF16=16897 +%term GTI4=4613 +%term GTI8=8709 +%term GTU4=4614 +%term GTU8=8710 + +%term LEF4=4625 +%term LEF8=8721 +%term LEF16=16913 +%term LEI4=4629 +%term LEI8=8725 +%term LEU4=4630 +%term LEU8=8726 + +%term LTF4=4641 +%term LTF8=8737 +%term LTF16=16929 +%term LTI4=4645 +%term LTI8=8741 +%term LTU4=4646 +%term LTU8=8742 + +%term NEF4=4657 +%term NEF8=8753 +%term NEF16=16945 +%term NEI4=4661 +%term NEI8=8757 +%term NEU4=4662 +%term NEU8=8758 + +%term JUMPV=584 + +%term LABELV=600 + +%term LOADB=233 +%term LOADF4=4321 +%term LOADF8=8417 +%term LOADF16=16609 +%term LOADI1=1253 +%term LOADI2=2277 +%term LOADI4=4325 +%term LOADI8=8421 +%term LOADP4=4327 +%term LOADP8=8423 +%term LOADU1=1254 +%term LOADU2=2278 +%term LOADU4=4326 +%term LOADU8=8422 + +%term VREGP=711 +%% +reg: INDIRI1(VREGP) "# read register\n" +reg: INDIRU1(VREGP) "# read register\n" + +reg: INDIRI2(VREGP) "# read register\n" +reg: INDIRU2(VREGP) "# read register\n" + +reg: INDIRF4(VREGP) "# read register\n" +reg: INDIRI4(VREGP) "# read register\n" +reg: INDIRP4(VREGP) "# read register\n" +reg: INDIRU4(VREGP) "# read register\n" + +reg: INDIRF8(VREGP) "# read register\n" +reg: INDIRI8(VREGP) "# read register\n" +reg: INDIRP8(VREGP) "# read register\n" +reg: INDIRU8(VREGP) "# read register\n" + +stmt: ASGNI1(VREGP,reg) "# write register\n" +stmt: ASGNU1(VREGP,reg) "# write register\n" + +stmt: ASGNI2(VREGP,reg) "# write register\n" +stmt: ASGNU2(VREGP,reg) "# write register\n" + +stmt: ASGNF4(VREGP,reg) "# write register\n" +stmt: ASGNI4(VREGP,reg) "# write register\n" +stmt: ASGNP4(VREGP,reg) "# write register\n" +stmt: ASGNU4(VREGP,reg) "# write register\n" + +stmt: ASGNF8(VREGP,reg) "# write register\n" +stmt: ASGNI8(VREGP,reg) "# write register\n" +stmt: ASGNP8(VREGP,reg) "# write register\n" +stmt: ASGNU8(VREGP,reg) "# write register\n" +con: CNSTI1 "%a" +con: CNSTU1 "%a" + +con: CNSTI2 "%a" +con: CNSTU2 "%a" + +con: CNSTI4 "%a" +con: CNSTU4 "%a" +con: CNSTP4 "%a" + +con: CNSTI8 "%a" +con: CNSTU8 "%a" +con: CNSTP8 "%a" +stmt: reg "" +acon: con "%0" +acon: ADDRGP4 "%a" +addr: ADDI4(reg,acon) "%1($%0)" +addr: ADDU4(reg,acon) "%1($%0)" +addr: ADDP4(reg,acon) "%1($%0)" +addr: acon "%0" +addr: reg "($%0)" +addr: ADDRFP4 "%a+%F($sp)" +addr: ADDRLP4 "%a+%F($sp)" +reg: addr "la $%c,%0\n" 1 +reg: CNSTI1 "# reg\n" range(a, 0, 0) +reg: CNSTI2 "# reg\n" range(a, 0, 0) +reg: CNSTI4 "# reg\n" range(a, 0, 0) +reg: CNSTU1 "# reg\n" range(a, 0, 0) +reg: CNSTU2 "# reg\n" range(a, 0, 0) +reg: CNSTU4 "# reg\n" range(a, 0, 0) +reg: CNSTP4 "# reg\n" range(a, 0, 0) +stmt: ASGNI1(addr,reg) "sb $%1,%0\n" 1 +stmt: ASGNU1(addr,reg) "sb $%1,%0\n" 1 +stmt: ASGNI2(addr,reg) "sh $%1,%0\n" 1 +stmt: ASGNU2(addr,reg) "sh $%1,%0\n" 1 +stmt: ASGNI4(addr,reg) "sw $%1,%0\n" 1 +stmt: ASGNU4(addr,reg) "sw $%1,%0\n" 1 +stmt: ASGNP4(addr,reg) "sw $%1,%0\n" 1 +reg: INDIRI1(addr) "lb $%c,%0\n" 1 +reg: INDIRU1(addr) "lbu $%c,%0\n" 1 +reg: INDIRI2(addr) "lh $%c,%0\n" 1 +reg: INDIRU2(addr) "lhu $%c,%0\n" 1 +reg: INDIRI4(addr) "lw $%c,%0\n" 1 +reg: INDIRU4(addr) "lw $%c,%0\n" 1 +reg: INDIRP4(addr) "lw $%c,%0\n" 1 + +reg: CVII4(INDIRI1(addr)) "lb $%c,%0\n" 1 +reg: CVII4(INDIRI2(addr)) "lh $%c,%0\n" 1 +reg: CVUU4(INDIRU1(addr)) "lbu $%c,%0\n" 1 +reg: CVUU4(INDIRU2(addr)) "lhu $%c,%0\n" 1 +reg: CVUI4(INDIRU1(addr)) "lbu $%c,%0\n" 1 +reg: CVUI4(INDIRU2(addr)) "lhu $%c,%0\n" 1 +reg: INDIRF4(addr) "l.s $f%c,%0\n" 1 +reg: INDIRF8(addr) "l.d $f%c,%0\n" 1 +stmt: ASGNF4(addr,reg) "s.s $f%1,%0\n" 1 +stmt: ASGNF8(addr,reg) "s.d $f%1,%0\n" 1 +reg: DIVI4(reg,reg) "div $%c,$%0,$%1\n" 1 +reg: DIVU4(reg,reg) "divu $%c,$%0,$%1\n" 1 +reg: MODI4(reg,reg) "rem $%c,$%0,$%1\n" 1 +reg: MODU4(reg,reg) "remu $%c,$%0,$%1\n" 1 +reg: MULI4(reg,reg) "mul $%c,$%0,$%1\n" 1 +reg: MULU4(reg,reg) "mul $%c,$%0,$%1\n" 1 +rc: con "%0" +rc: reg "$%0" + +reg: ADDI4(reg,rc) "addu $%c,$%0,%1\n" 1 +reg: ADDP4(reg,rc) "addu $%c,$%0,%1\n" 1 +reg: ADDU4(reg,rc) "addu $%c,$%0,%1\n" 1 +reg: BANDI4(reg,rc) "and $%c,$%0,%1\n" 1 +reg: BORI4(reg,rc) "or $%c,$%0,%1\n" 1 +reg: BXORI4(reg,rc) "xor $%c,$%0,%1\n" 1 +reg: BANDU4(reg,rc) "and $%c,$%0,%1\n" 1 +reg: BORU4(reg,rc) "or $%c,$%0,%1\n" 1 +reg: BXORU4(reg,rc) "xor $%c,$%0,%1\n" 1 +reg: SUBI4(reg,rc) "subu $%c,$%0,%1\n" 1 +reg: SUBP4(reg,rc) "subu $%c,$%0,%1\n" 1 +reg: SUBU4(reg,rc) "subu $%c,$%0,%1\n" 1 +rc5: CNSTI4 "%a" range(a,0,31) +rc5: reg "$%0" + +reg: LSHI4(reg,rc5) "sll $%c,$%0,%1\n" 1 +reg: LSHU4(reg,rc5) "sll $%c,$%0,%1\n" 1 +reg: RSHI4(reg,rc5) "sra $%c,$%0,%1\n" 1 +reg: RSHU4(reg,rc5) "srl $%c,$%0,%1\n" 1 +reg: BCOMI4(reg) "not $%c,$%0\n" 1 +reg: BCOMU4(reg) "not $%c,$%0\n" 1 +reg: NEGI4(reg) "negu $%c,$%0\n" 1 +reg: LOADI1(reg) "move $%c,$%0\n" move(a) +reg: LOADU1(reg) "move $%c,$%0\n" move(a) +reg: LOADI2(reg) "move $%c,$%0\n" move(a) +reg: LOADU2(reg) "move $%c,$%0\n" move(a) +reg: LOADI4(reg) "move $%c,$%0\n" move(a) +reg: LOADP4(reg) "move $%c,$%0\n" move(a) +reg: LOADU4(reg) "move $%c,$%0\n" move(a) +reg: ADDF4(reg,reg) "add.s $f%c,$f%0,$f%1\n" 1 +reg: ADDF8(reg,reg) "add.d $f%c,$f%0,$f%1\n" 1 +reg: DIVF4(reg,reg) "div.s $f%c,$f%0,$f%1\n" 1 +reg: DIVF8(reg,reg) "div.d $f%c,$f%0,$f%1\n" 1 +reg: MULF4(reg,reg) "mul.s $f%c,$f%0,$f%1\n" 1 +reg: MULF8(reg,reg) "mul.d $f%c,$f%0,$f%1\n" 1 +reg: SUBF4(reg,reg) "sub.s $f%c,$f%0,$f%1\n" 1 +reg: SUBF8(reg,reg) "sub.d $f%c,$f%0,$f%1\n" 1 +reg: LOADF4(reg) "mov.s $f%c,$f%0\n" move(a) +reg: LOADF8(reg) "mov.d $f%c,$f%0\n" move(a) +reg: NEGF4(reg) "neg.s $f%c,$f%0\n" 1 +reg: NEGF8(reg) "neg.d $f%c,$f%0\n" 1 +reg: CVII4(reg) "sll $%c,$%0,8*(4-%a); sra $%c,$%c,8*(4-%a)\n" 2 +reg: CVUI4(reg) "and $%c,$%0,(1<<(8*%a))-1\n" 1 +reg: CVUU4(reg) "and $%c,$%0,(1<<(8*%a))-1\n" 1 +reg: CVFF4(reg) "cvt.s.d $f%c,$f%0\n" 1 +reg: CVFF8(reg) "cvt.d.s $f%c,$f%0\n" 1 +reg: CVIF4(reg) "mtc1 $%0,$f%c; cvt.s.w $f%c,$f%c\n" 2 +reg: CVIF8(reg) "mtc1 $%0,$f%c; cvt.d.w $f%c,$f%c\n" 2 +reg: CVFI4(reg) "trunc.w.s $f2,$f%0,$%c; mfc1 $%c,$f2\n" (a->syms[0]->u.c.v.i==4?2:LBURG_MAX) +reg: CVFI4(reg) "trunc.w.d $f2,$f%0,$%c; mfc1 $%c,$f2\n" (a->syms[0]->u.c.v.i==8?2:LBURG_MAX) +stmt: LABELV "%a:\n" +stmt: JUMPV(acon) "b %0\n" 1 +stmt: JUMPV(reg) ".cpadd $%0\nj $%0\n" !pic +stmt: JUMPV(reg) "j $%0\n" pic +stmt: EQI4(reg,reg) "beq $%0,$%1,%a\n" 1 +stmt: EQU4(reg,reg) "beq $%0,$%1,%a\n" 1 +stmt: GEI4(reg,reg) "bge $%0,$%1,%a\n" 1 +stmt: GEU4(reg,reg) "bgeu $%0,$%1,%a\n" 1 +stmt: GTI4(reg,reg) "bgt $%0,$%1,%a\n" 1 +stmt: GTU4(reg,reg) "bgtu $%0,$%1,%a\n" 1 +stmt: LEI4(reg,reg) "ble $%0,$%1,%a\n" 1 +stmt: LEU4(reg,reg) "bleu $%0,$%1,%a\n" 1 +stmt: LTI4(reg,reg) "blt $%0,$%1,%a\n" 1 +stmt: LTU4(reg,reg) "bltu $%0,$%1,%a\n" 1 +stmt: NEI4(reg,reg) "bne $%0,$%1,%a\n" 1 +stmt: NEU4(reg,reg) "bne $%0,$%1,%a\n" 1 +stmt: EQF4(reg,reg) "c.eq.s $f%0,$f%1; bc1t %a\n" 2 +stmt: EQF8(reg,reg) "c.eq.d $f%0,$f%1; bc1t %a\n" 2 +stmt: LEF4(reg,reg) "c.le.s $f%0,$f%1; bc1t %a\n" 2 +stmt: LEF8(reg,reg) "c.le.d $f%0,$f%1; bc1t %a\n" 2 +stmt: LTF4(reg,reg) "c.lt.s $f%0,$f%1; bc1t %a\n" 2 +stmt: LTF8(reg,reg) "c.lt.d $f%0,$f%1; bc1t %a\n" 2 +stmt: GEF4(reg,reg) "c.lt.s $f%0,$f%1; bc1f %a\n" 2 +stmt: GEF8(reg,reg) "c.lt.d $f%0,$f%1; bc1f %a\n" 2 +stmt: GTF4(reg,reg) "c.le.s $f%0,$f%1; bc1f %a\n" 2 +stmt: GTF8(reg,reg) "c.le.d $f%0,$f%1; bc1f %a\n" 2 +stmt: NEF4(reg,reg) "c.eq.s $f%0,$f%1; bc1f %a\n" 2 +stmt: NEF8(reg,reg) "c.eq.d $f%0,$f%1; bc1f %a\n" 2 +ar: ADDRGP4 "%a" + +reg: CALLF4(ar) "jal %0\n" 1 +reg: CALLF8(ar) "jal %0\n" 1 +reg: CALLI4(ar) "jal %0\n" 1 +reg: CALLP4(ar) "jal %0\n" 1 +reg: CALLU4(ar) "jal %0\n" 1 +stmt: CALLV(ar) "jal %0\n" 1 +ar: reg "$%0" +ar: CNSTP4 "%a" range(a, 0, 0x0fffffff) +stmt: RETF4(reg) "# ret\n" 1 +stmt: RETF8(reg) "# ret\n" 1 +stmt: RETI4(reg) "# ret\n" 1 +stmt: RETU4(reg) "# ret\n" 1 +stmt: RETP4(reg) "# ret\n" 1 +stmt: RETV(reg) "# ret\n" 1 +stmt: ARGF4(reg) "# arg\n" 1 +stmt: ARGF8(reg) "# arg\n" 1 +stmt: ARGI4(reg) "# arg\n" 1 +stmt: ARGP4(reg) "# arg\n" 1 +stmt: ARGU4(reg) "# arg\n" 1 + +stmt: ARGB(INDIRB(reg)) "# argb %0\n" 1 +stmt: ASGNB(reg,INDIRB(reg)) "# asgnb %0 %1\n" 1 +%% +static void progend(void){} +static void progbeg(int argc, char *argv[]) { + int i; + + { + union { + char c; + int i; + } u; + u.i = 0; + u.c = 1; + swap = ((int)(u.i == 1)) != IR->little_endian; + } + print(".set reorder\n"); + pic = !IR->little_endian; + parseflags(argc, argv); + for (i = 0; i < argc; i++) + if (strncmp(argv[i], "-G", 2) == 0) + gnum = atoi(argv[i] + 2); + else if (strcmp(argv[i], "-pic=1") == 0 + || strcmp(argv[i], "-pic=0") == 0) + pic = argv[i][5]-'0'; + for (i = 0; i < 31; i += 2) + freg2[i] = mkreg("%d", i, 3, FREG); + for (i = 0; i < 32; i++) + ireg[i] = mkreg("%d", i, 1, IREG); + ireg[29]->x.name = "sp"; + d6 = mkreg("6", 6, 3, IREG); + freg2w = mkwildcard(freg2); + iregw = mkwildcard(ireg); + tmask[IREG] = INTTMP; tmask[FREG] = FLTTMP; + vmask[IREG] = INTVAR; vmask[FREG] = FLTVAR; + blkreg = mkreg("8", 8, 7, IREG); +} +static Symbol rmap(int opk) { + switch (optype(opk)) { + case I: case U: case P: case B: + return iregw; + case F: + return freg2w; + default: + return 0; + } +} +static void target(Node p) { + assert(p); + switch (specific(p->op)) { + case CNST+I: case CNST+U: case CNST+P: + if (range(p, 0, 0) == 0) { + setreg(p, ireg[0]); + p->x.registered = 1; + } + break; + case CALL+V: + rtarget(p, 0, ireg[25]); + break; + case CALL+F: + rtarget(p, 0, ireg[25]); + setreg(p, freg2[0]); + break; + case CALL+I: case CALL+P: case CALL+U: + rtarget(p, 0, ireg[25]); + setreg(p, ireg[2]); + break; + case RET+F: + rtarget(p, 0, freg2[0]); + break; + case RET+I: case RET+U: case RET+P: + rtarget(p, 0, ireg[2]); + break; + case ARG+F: case ARG+I: case ARG+P: case ARG+U: { + static int ty0; + int ty = optype(p->op); + Symbol q; + + q = argreg(p->x.argno, p->syms[2]->u.c.v.i, ty, opsize(p->op), ty0); + if (p->x.argno == 0) + ty0 = ty; + if (q && + !(ty == F && q->x.regnode->set == IREG)) + rtarget(p, 0, q); + break; + } + case ASGN+B: rtarget(p->kids[1], 0, blkreg); break; + case ARG+B: rtarget(p->kids[0], 0, blkreg); break; + } +} +static void clobber(Node p) { + assert(p); + switch (specific(p->op)) { + case CALL+F: + spill(INTTMP | INTRET, IREG, p); + spill(FLTTMP, FREG, p); + break; + case CALL+I: case CALL+P: case CALL+U: + spill(INTTMP, IREG, p); + spill(FLTTMP | FLTRET, FREG, p); + break; + case CALL+V: + spill(INTTMP | INTRET, IREG, p); + spill(FLTTMP | FLTRET, FREG, p); + break; + } +} +static void emit2(Node p) { + int dst, n, src, sz, ty; + static int ty0; + Symbol q; + + switch (specific(p->op)) { + case ARG+F: case ARG+I: case ARG+P: case ARG+U: + ty = optype(p->op); + sz = opsize(p->op); + if (p->x.argno == 0) + ty0 = ty; + q = argreg(p->x.argno, p->syms[2]->u.c.v.i, ty, sz, ty0); + src = getregnum(p->x.kids[0]); + if (q == NULL && ty == F && sz == 4) + print("s.s $f%d,%d($sp)\n", src, p->syms[2]->u.c.v.i); + else if (q == NULL && ty == F) + print("s.d $f%d,%d($sp)\n", src, p->syms[2]->u.c.v.i); + else if (q == NULL) + print("sw $%d,%d($sp)\n", src, p->syms[2]->u.c.v.i); + else if (ty == F && sz == 4 && q->x.regnode->set == IREG) + print("mfc1 $%d,$f%d\n", q->x.regnode->number, src); + else if (ty == F && q->x.regnode->set == IREG) + print("mfc1.d $%d,$f%d\n", q->x.regnode->number, src); + break; + case ASGN+B: + dalign = salign = p->syms[1]->u.c.v.i; + blkcopy(getregnum(p->x.kids[0]), 0, + getregnum(p->x.kids[1]), 0, + p->syms[0]->u.c.v.i, tmpregs); + break; + case ARG+B: + dalign = 4; + salign = p->syms[1]->u.c.v.i; + blkcopy(29, p->syms[2]->u.c.v.i, + getregnum(p->x.kids[0]), 0, + p->syms[0]->u.c.v.i, tmpregs); + n = p->syms[2]->u.c.v.i + p->syms[0]->u.c.v.i; + dst = p->syms[2]->u.c.v.i; + for ( ; dst <= 12 && dst < n; dst += 4) + print("lw $%d,%d($sp)\n", (dst/4)+4, dst); + break; + } +} +static Symbol argreg(int argno, int offset, int ty, int sz, int ty0) { + assert((offset&3) == 0); + if (offset > 12) + return NULL; + else if (argno == 0 && ty == F) + return freg2[12]; + else if (argno == 1 && ty == F && ty0 == F) + return freg2[14]; + else if (argno == 1 && ty == F && sz == 8) + return d6; /* Pair! */ + else + return ireg[(offset/4) + 4]; +} +static void doarg(Node p) { + static int argno; + int align; + + if (argoffset == 0) + argno = 0; + p->x.argno = argno++; + align = p->syms[1]->u.c.v.i < 4 ? 4 : p->syms[1]->u.c.v.i; + p->syms[2] = intconst(mkactual(align, + p->syms[0]->u.c.v.i)); +} +static void local(Symbol p) { + if (askregvar(p, rmap(ttob(p->type))) == 0) + mkauto(p); +} +static void function(Symbol f, Symbol caller[], Symbol callee[], int ncalls) { + int i, saved, sizefsave, sizeisave, varargs; + Symbol r, argregs[4]; + + usedmask[0] = usedmask[1] = 0; + freemask[0] = freemask[1] = ~(unsigned)0; + offset = maxoffset = maxargoffset = 0; + for (i = 0; callee[i]; i++) + ; + varargs = variadic(f->type) + || i > 0 && strcmp(callee[i-1]->name, "va_alist") == 0; + for (i = 0; callee[i]; i++) { + Symbol p = callee[i]; + Symbol q = caller[i]; + assert(q); + offset = roundup(offset, q->type->align); + p->x.offset = q->x.offset = offset; + p->x.name = q->x.name = stringd(offset); + r = argreg(i, offset, optype(ttob(q->type)), q->type->size, optype(ttob(caller[0]->type))); + if (i < 4) + argregs[i] = r; + offset = roundup(offset + q->type->size, 4); + if (varargs) + p->sclass = AUTO; + else if (r && ncalls == 0 && + !isstruct(q->type) && !p->addressed && + !(isfloat(q->type) && r->x.regnode->set == IREG) +) { + p->sclass = q->sclass = REGISTER; + askregvar(p, r); + assert(p->x.regnode && p->x.regnode->vbl == p); + q->x = p->x; + q->type = p->type; + } + else if (askregvar(p, rmap(ttob(p->type))) + && r != NULL + && (isint(p->type) || p->type == q->type)) { + assert(q->sclass != REGISTER); + p->sclass = q->sclass = REGISTER; + q->type = p->type; + } + } + assert(!caller[i]); + offset = 0; + gencode(caller, callee); + if (ncalls) + usedmask[IREG] |= ((unsigned)1)<<31; + usedmask[IREG] &= 0xc0ff0000; + usedmask[FREG] &= 0xfff00000; + if (pic && ncalls) + usedmask[IREG] |= 1<<25; + maxargoffset = roundup(maxargoffset, usedmask[FREG] ? 8 : 4); + if (ncalls && maxargoffset < 16) + maxargoffset = 16; + sizefsave = 4*bitcount(usedmask[FREG]); + sizeisave = 4*bitcount(usedmask[IREG]); + framesize = roundup(maxargoffset + sizefsave + + sizeisave + maxoffset, 8); + segment(CODE); + print(".align 2\n"); + print(".ent %s\n", f->x.name); + print("%s:\n", f->x.name); + i = maxargoffset + sizefsave - framesize; + print(".frame $sp,%d,$31\n", framesize); + if (pic) + print(".set noreorder\n.cpload $25\n.set reorder\n"); + if (framesize > 0) + print("addu $sp,$sp,%d\n", -framesize); + if (usedmask[FREG]) + print(".fmask 0x%x,%d\n", usedmask[FREG], i - 8); + if (usedmask[IREG]) + print(".mask 0x%x,%d\n", usedmask[IREG], + i + sizeisave - 4); + saved = maxargoffset; + for (i = 20; i <= 30; i += 2) + if (usedmask[FREG]&(3<x.regnode != callee[i]->x.regnode) { + Symbol out = callee[i]; + Symbol in = caller[i]; + int rn = r->x.regnode->number; + int rs = r->x.regnode->set; + int tyin = ttob(in->type); + + assert(out && in && r && r->x.regnode); + assert(out->sclass != REGISTER || out->x.regnode); + if (out->sclass == REGISTER + && (isint(out->type) || out->type == in->type)) { + int outn = out->x.regnode->number; + if (rs == FREG && tyin == F+sizeop(8)) + print("mov.d $f%d,$f%d\n", outn, rn); + else if (rs == FREG && tyin == F+sizeop(4)) + print("mov.s $f%d,$f%d\n", outn, rn); + else if (rs == IREG && tyin == F+sizeop(8)) + print("mtc1.d $%d,$f%d\n", rn, outn); + else if (rs == IREG && tyin == F+sizeop(4)) + print("mtc1 $%d,$f%d\n", rn, outn); + else + print("move $%d,$%d\n", outn, rn); + } else { + int off = in->x.offset + framesize; + if (rs == FREG && tyin == F+sizeop(8)) + print("s.d $f%d,%d($sp)\n", rn, off); + else if (rs == FREG && tyin == F+sizeop(4)) + print("s.s $f%d,%d($sp)\n", rn, off); + else { + int i, n = (in->type->size + 3)/4; + for (i = rn; i < rn+n && i <= 7; i++) + print("sw $%d,%d($sp)\n", i, off + (i-rn)*4); + } + } + } + } + if (varargs && callee[i-1]) { + i = callee[i-1]->x.offset + callee[i-1]->type->size; + for (i = roundup(i, 4)/4; i <= 3; i++) + print("sw $%d,%d($sp)\n", i + 4, framesize + 4*i); + } + emitcode(); + saved = maxargoffset; + for (i = 20; i <= 30; i += 2) + if (usedmask[FREG]&(3< 0) + print("addu $sp,$sp,%d\n", framesize); + print("j $31\n"); + print(".end %s\n", f->x.name); +} +static void defconst(int suffix, int size, Value v) { + if (suffix == F && size == 4) { + float f = v.d; + print(".word 0x%x\n", *(unsigned *)&f); + } + else if (suffix == F && size == 8) { + double d = v.d; + unsigned *p = (unsigned *)&d; + print(".word 0x%x\n.word 0x%x\n", p[swap], p[!swap]); + } + else if (suffix == P) + print(".word 0x%x\n", v.p); + else if (size == 1) + print(".byte 0x%x\n", suffix == I ? v.i : v.u); + else if (size == 2) + print(".half 0x%x\n", suffix == I ? v.i : v.u); + else if (size == 4) + print(".word 0x%x\n", suffix == I ? v.i : v.u); +} +static void defaddress(Symbol p) { + if (pic && p->scope == LABELS) + print(".gpword %s\n", p->x.name); + else + print(".word %s\n", p->x.name); +} +static void defstring(int n, char *str) { + char *s; + + for (s = str; s < str + n; s++) + print(".byte %d\n", (*s)&0377); +} +static void export(Symbol p) { + print(".globl %s\n", p->x.name); +} +static void import(Symbol p) { + if (!isfunc(p->type)) + print(".extern %s %d\n", p->name, p->type->size); +} +static void defsymbol(Symbol p) { + if (p->scope >= LOCAL && p->sclass == STATIC) + p->x.name = stringf("L.%d", genlabel(1)); + else if (p->generated) + p->x.name = stringf("L.%s", p->name); + else + assert(p->scope != CONSTANTS || isint(p->type) || isptr(p->type)), + p->x.name = p->name; +} +static void address(Symbol q, Symbol p, long n) { + if (p->scope == GLOBAL + || p->sclass == STATIC || p->sclass == EXTERN) + q->x.name = stringf("%s%s%D", p->x.name, + n >= 0 ? "+" : "", n); + else { + assert(n <= INT_MAX && n >= INT_MIN); + q->x.offset = p->x.offset + n; + q->x.name = stringd(q->x.offset); + } +} +static void global(Symbol p) { + if (p->u.seg == BSS) { + if (p->sclass == STATIC || Aflag >= 2) + print(".lcomm %s,%d\n", p->x.name, p->type->size); + else + print( ".comm %s,%d\n", p->x.name, p->type->size); + } else { + if (p->u.seg == DATA + && (p->type->size == 0 || p->type->size > gnum)) + print(".data\n"); + else if (p->u.seg == DATA) + print(".sdata\n"); + print(".align %c\n", ".01.2...3"[p->type->align]); + print("%s:\n", p->x.name); + } +} +static void segment(int n) { + cseg = n; + switch (n) { + case CODE: print(".text\n"); break; + case LIT: print(".rdata\n"); break; + } +} +static void space(int n) { + if (cseg != BSS) + print(".space %d\n", n); +} +static void blkloop(int dreg, int doff, int sreg, int soff, int size, int tmps[]) { + int lab = genlabel(1); + + print("addu $%d,$%d,%d\n", sreg, sreg, size&~7); + print("addu $%d,$%d,%d\n", tmps[2], dreg, size&~7); + blkcopy(tmps[2], doff, sreg, soff, size&7, tmps); + print("L.%d:\n", lab); + print("addu $%d,$%d,%d\n", sreg, sreg, -8); + print("addu $%d,$%d,%d\n", tmps[2], tmps[2], -8); + blkcopy(tmps[2], doff, sreg, soff, 8, tmps); + print("bltu $%d,$%d,L.%d\n", dreg, tmps[2], lab); +} +static void blkfetch(int size, int off, int reg, int tmp) { + assert(size == 1 || size == 2 || size == 4); + if (size == 1) + print("lbu $%d,%d($%d)\n", tmp, off, reg); + else if (salign >= size && size == 2) + print("lhu $%d,%d($%d)\n", tmp, off, reg); + else if (salign >= size) + print("lw $%d,%d($%d)\n", tmp, off, reg); + else if (size == 2) + print("ulhu $%d,%d($%d)\n", tmp, off, reg); + else + print("ulw $%d,%d($%d)\n", tmp, off, reg); +} +static void blkstore(int size, int off, int reg, int tmp) { + if (size == 1) + print("sb $%d,%d($%d)\n", tmp, off, reg); + else if (dalign >= size && size == 2) + print("sh $%d,%d($%d)\n", tmp, off, reg); + else if (dalign >= size) + print("sw $%d,%d($%d)\n", tmp, off, reg); + else if (size == 2) + print("ush $%d,%d($%d)\n", tmp, off, reg); + else + print("usw $%d,%d($%d)\n", tmp, off, reg); +} +static void stabinit(char *, int, char *[]); +static void stabline(Coordinate *); +static void stabsym(Symbol); + +static char *currentfile; + +static int bitcount(unsigned mask) { + unsigned i, n = 0; + + for (i = 1; i; i <<= 1) + if (mask&i) + n++; + return n; +} + +/* stabinit - initialize stab output */ +static void stabinit(char *file, int argc, char *argv[]) { + if (file) { + print(".file 2,\"%s\"\n", file); + currentfile = file; + } +} + +/* stabline - emit stab entry for source coordinate *cp */ +static void stabline(Coordinate *cp) { + if (cp->file && cp->file != currentfile) { + print(".file 2,\"%s\"\n", cp->file); + currentfile = cp->file; + } + print(".loc 2,%d\n", cp->y); +} + +/* stabsym - output a stab entry for symbol p */ +static void stabsym(Symbol p) { + if (p == cfunc && IR->stabline) + (*IR->stabline)(&p->src); +} +Interface mipsebIR = { + 1, 1, 0, /* char */ + 2, 2, 0, /* short */ + 4, 4, 0, /* int */ + 4, 4, 0, /* long */ + 4, 4, 0, /* long long */ + 4, 4, 1, /* float */ + 8, 8, 1, /* double */ + 8, 8, 1, /* long double */ + 4, 4, 0, /* T * */ + 0, 1, 0, /* struct */ + 0, /* little_endian */ + 0, /* mulops_calls */ + 0, /* wants_callb */ + 1, /* wants_argb */ + 1, /* left_to_right */ + 0, /* wants_dag */ + 0, /* unsigned_char */ + address, + blockbeg, + blockend, + defaddress, + defconst, + defstring, + defsymbol, + emit, + export, + function, + gen, + global, + import, + local, + progbeg, + progend, + segment, + space, + 0, 0, 0, stabinit, stabline, stabsym, 0, + { + 4, /* max_unaligned_load */ + rmap, + blkfetch, blkstore, blkloop, + _label, + _rule, + _nts, + _kids, + _string, + _templates, + _isinstruction, + _ntname, + emit2, + doarg, + target, + clobber, + + } +}, mipselIR = { + 1, 1, 0, /* char */ + 2, 2, 0, /* short */ + 4, 4, 0, /* int */ + 4, 4, 0, /* long */ + 4, 4, 0, /* long long */ + 4, 4, 1, /* float */ + 8, 8, 1, /* double */ + 8, 8, 1, /* long double */ + 4, 4, 0, /* T * */ + 0, 1, 0, /* struct */ + 1, /* little_endian */ + 0, /* mulops_calls */ + 0, /* wants_callb */ + 1, /* wants_argb */ + 1, /* left_to_right */ + 0, /* wants_dag */ + 0, /* unsigned_char */ + address, + blockbeg, + blockend, + defaddress, + defconst, + defstring, + defsymbol, + emit, + export, + function, + gen, + global, + import, + local, + progbeg, + progend, + segment, + space, + 0, 0, 0, stabinit, stabline, stabsym, 0, + { + 4, /* max_unaligned_load */ + rmap, + blkfetch, blkstore, blkloop, + _label, + _rule, + _nts, + _kids, + _string, + _templates, + _isinstruction, + _ntname, + emit2, + doarg, + target, + clobber, + + } +}; +static char rcsid[] = "$Id: mips.md 145 2001-10-17 21:53:10Z timo $"; diff --git a/code/tools/lcc/src/null.c b/code/tools/lcc/src/null.c new file mode 100644 index 0000000..b9f551c --- /dev/null +++ b/code/tools/lcc/src/null.c @@ -0,0 +1,74 @@ +#include "c.h" +#define I(f) null_##f + +static Node I(gen)(Node p) { return p; } +static void I(address)(Symbol q, Symbol p, long n) {} +static void I(blockbeg)(Env *e) {} +static void I(blockend)(Env *e) {} +static void I(defaddress)(Symbol p) {} +static void I(defconst)(int suffix, int size, Value v) {} +static void I(defstring)(int len, char *s) {} +static void I(defsymbol)(Symbol p) {} +static void I(emit)(Node p) {} +static void I(export)(Symbol p) {} +static void I(function)(Symbol f, Symbol caller[], Symbol callee[], int ncalls) {} +static void I(global)(Symbol p) {} +static void I(import)(Symbol p) {} +static void I(local)(Symbol p) {} +static void I(progbeg)(int argc, char *argv[]) {} +static void I(progend)(void) {} +static void I(segment)(int s) {} +static void I(space)(int n) {} +static void I(stabblock)(int brace, int lev, Symbol *p) {} +static void I(stabend)(Coordinate *cp, Symbol p, Coordinate **cpp, Symbol *sp, Symbol *stab) {} +static void I(stabfend)(Symbol p, int lineno) {} +static void I(stabinit)(char *file, int argc, char *argv[]) {} +static void I(stabline)(Coordinate *cp) {} +static void I(stabsym)(Symbol p) {} +static void I(stabtype)(Symbol p) {} + + +Interface nullIR = { + {1, 1, 0}, /* char */ + {2, 2, 0}, /* short */ + {4, 4, 0}, /* int */ + {8, 8, 1}, /* long */ + {8 ,8, 1}, /* long long */ + {4, 4, 1}, /* float */ + {8, 8, 1}, /* double */ + {16,16,1}, /* long double */ + {4, 4, 0}, /* T* */ + {0, 4, 0}, /* struct */ + 1, /* little_endian */ + 0, /* mulops_calls */ + 0, /* wants_callb */ + 0, /* wants_argb */ + 1, /* left_to_right */ + 0, /* wants_dag */ + 0, /* unsigned_char */ + I(address), + I(blockbeg), + I(blockend), + I(defaddress), + I(defconst), + I(defstring), + I(defsymbol), + I(emit), + I(export), + I(function), + I(gen), + I(global), + I(import), + I(local), + I(progbeg), + I(progend), + I(segment), + I(space), + I(stabblock), + I(stabend), + I(stabfend), + I(stabinit), + I(stabline), + I(stabsym), + I(stabtype) +}; diff --git a/code/tools/lcc/src/output.c b/code/tools/lcc/src/output.c new file mode 100644 index 0000000..a9c93e7 --- /dev/null +++ b/code/tools/lcc/src/output.c @@ -0,0 +1,135 @@ +#include "c.h" + + +static char *outs(const char *str, FILE *f, char *bp) { + if (f) + fputs(str, f); + else + while ((*bp = *str++)) + bp++; + return bp; +} + +static char *outd(long n, FILE *f, char *bp) { + unsigned long m; + char buf[25], *s = buf + sizeof buf; + + *--s = '\0'; + if (n < 0) + m = -n; + else + m = n; + do + *--s = m%10 + '0'; + while ((m /= 10) != 0); + if (n < 0) + *--s = '-'; + return outs(s, f, bp); +} + +static char *outu(unsigned long n, int base, FILE *f, char *bp) { + char buf[25], *s = buf + sizeof buf; + + *--s = '\0'; + do + *--s = "0123456789abcdef"[n%base]; + while ((n /= base) != 0); + return outs(s, f, bp); +} +void print(const char *fmt, ...) { + va_list ap; + + va_start(ap, fmt); + vfprint(stdout, NULL, fmt, ap); + va_end(ap); +} +/* fprint - formatted output to f */ +void fprint(FILE *f, const char *fmt, ...) { + va_list ap; + + va_start(ap, fmt); + vfprint(f, NULL, fmt, ap); + va_end(ap); +} + +/* stringf - formatted output to a saved string */ +char *stringf(const char *fmt, ...) { + char buf[1024]; + va_list ap; + + va_start(ap, fmt); + vfprint(NULL, buf, fmt, ap); + va_end(ap); + return string(buf); +} + +/* vfprint - formatted output to f or string bp */ +void vfprint(FILE *f, char *bp, const char *fmt, va_list ap) { + for (; *fmt; fmt++) + if (*fmt == '%') + switch (*++fmt) { + case 'd': bp = outd(va_arg(ap, int), f, bp); break; + case 'D': bp = outd(va_arg(ap, long), f, bp); break; + case 'U': bp = outu(va_arg(ap, unsigned long), 10, f, bp); break; + case 'u': bp = outu(va_arg(ap, unsigned), 10, f, bp); break; + case 'o': bp = outu(va_arg(ap, unsigned), 8, f, bp); break; + case 'X': bp = outu(va_arg(ap, unsigned long), 16, f, bp); break; + case 'x': bp = outu(va_arg(ap, unsigned), 16, f, bp); break; + case 'f': case 'e': + case 'g': { + static char format[] = "%f"; + char buf[128]; + format[1] = *fmt; + sprintf(buf, format, va_arg(ap, double)); + bp = outs(buf, f, bp); + } +; break; + case 's': bp = outs(va_arg(ap, char *), f, bp); break; + case 'p': { + void *p = va_arg(ap, void *); + if (p) + bp = outs("0x", f, bp); + bp = outu((unsigned long)p, 16, f, bp); + break; + } + case 'c': if (f) fputc(va_arg(ap, int), f); else *bp++ = va_arg(ap, int); break; + case 'S': { char *s = va_arg(ap, char *); + int n = va_arg(ap, int); + if (s) { + for ( ; n-- > 0; s++) + if (f) (void)putc(*s, f); else *bp++ = *s; + } + } break; + case 'k': { int t = va_arg(ap, int); + static char *tokens[] = { +#define xx(a,b,c,d,e,f,g) g, +#define yy(a,b,c,d,e,f,g) g, +#include "token.h" + }; + assert(tokens[t&0177]); + bp = outs(tokens[t&0177], f, bp); + } break; + case 't': { Type ty = va_arg(ap, Type); + assert(f); + outtype(ty ? ty : voidtype, f); + } break; + case 'w': { Coordinate *p = va_arg(ap, Coordinate *); + if (p->file && *p->file) { + bp = outs(p->file, f, bp); + bp = outs(":", f, bp); + } + bp = outd(p->y, f, bp); + } break; + case 'I': { int n = va_arg(ap, int); + while (--n >= 0) + if (f) (void)putc(' ', f); else *bp++ = ' '; + } break; + default: if (f) (void)putc(*fmt, f); else *bp++ = *fmt; break; + } + else if (f) + (void)putc(*fmt, f); + else + *bp++ = *fmt; + if (!f) + *bp = '\0'; +} diff --git a/code/tools/lcc/src/pass2.c b/code/tools/lcc/src/pass2.c new file mode 100644 index 0000000..08d73cf --- /dev/null +++ b/code/tools/lcc/src/pass2.c @@ -0,0 +1,665 @@ +#include "c.h" +#include "rcc.h" +#if WIN32 +#include +#include +#endif + + +Interface *IR = NULL; +int Aflag; /* >= 0 if -A specified */ +int Pflag; /* != 0 if -P specified */ +int glevel; /* == [0-9] if -g[0-9] specified */ +int xref; /* != 0 for cross-reference data */ +Symbol YYnull; /* _YYnull symbol if -n or -nvalidate specified */ +Symbol YYcheck; /* _YYcheck symbol if -nvalidate,check specified */ + +static int verbose = 1; +#define VERBOSE(n,arg) (verbose >= n ? (void)(arg):(void)0) +static int nuids; +static rcc_item_ty *items; +static void **itemmap; + +static void *uid2type(int uid) { + assert(uid >= 0 && uid < nuids); + if (itemmap[uid] == NULL) { + Type ty; + rcc_type_ty type = (void *)items[uid]; + assert(items[uid]); + assert(items[uid]->uid == uid); + assert(items[uid]->kind == rcc_Type_enum); + type = items[uid]->v.rcc_Type.type; + assert(type); + switch (type->kind) { + case rcc_INT_enum: + ty = btot(INT, type->size); + assert(ty->align == type->align); + break; + case rcc_UNSIGNED_enum: + ty = btot(UNSIGNED, type->size); + assert(ty->align == type->align); + break; + case rcc_FLOAT_enum: + ty = btot(FLOAT, type->size); + assert(ty->align == type->align); + break; + case rcc_VOID_enum: + ty = voidtype; + break; + case rcc_POINTER_enum: + ty = ptr(uid2type(type->v.rcc_POINTER.type)); + break; + case rcc_ARRAY_enum: + ty = uid2type(type->v.rcc_ARRAY.type); + assert(ty->size > 0); + ty = array(ty, type->size/ty->size, 0); + break; + case rcc_CONST_enum: + ty = qual(CONST, uid2type(type->v.rcc_CONST.type)); + break; + case rcc_VOLATILE_enum: + ty = qual(VOLATILE, uid2type(type->v.rcc_VOLATILE.type)); + break; + case rcc_ENUM_enum: { + int i, n = Seq_length(type->v.rcc_ENUM.ids); + ty = newstruct(ENUM, string(type->v.rcc_ENUM.tag)); + ty->type = inttype; + ty->size = ty->type->size; + ty->align = ty->type->align; + ty->u.sym->u.idlist = newarray(n + 1, sizeof *ty->u.sym->u.idlist, PERM); + for (i = 0; i < n; i++) { + rcc_enum__ty e = Seq_remlo(type->v.rcc_ENUM.ids); + Symbol p = install(e->id, &identifiers, GLOBAL, PERM); + p->type = ty; + p->sclass = ENUM; + p->u.value = e->value; + ty->u.sym->u.idlist[i] = p; + free(e); + } + ty->u.sym->u.idlist[i] = NULL; + Seq_free(&type->v.rcc_ENUM.ids); + break; + } + case rcc_STRUCT_enum: case rcc_UNION_enum: { + int i, n; + Field *tail; + list_ty fields; + if (type->kind == rcc_STRUCT_enum) { + ty = newstruct(STRUCT, string(type->v.rcc_STRUCT.tag)); + fields = type->v.rcc_STRUCT.fields; + } else { + ty = newstruct(UNION, string(type->v.rcc_UNION.tag)); + fields = type->v.rcc_UNION.fields; + } + itemmap[uid] = ty; /* recursive types */ + ty->size = type->size; + ty->align = type->align; + tail = &ty->u.sym->u.s.flist; + n = Seq_length(fields); + for (i = 0; i < n; i++) { + rcc_field_ty field = Seq_remlo(fields); + NEW0(*tail, PERM); + (*tail)->name = (char *)field->id; + (*tail)->type = uid2type(field->type); + (*tail)->offset = field->offset; + (*tail)->bitsize = field->bitsize; + (*tail)->lsb = field->lsb; + if (isconst((*tail)->type)) + ty->u.sym->u.s.cfields = 1; + if (isvolatile((*tail)->type)) + ty->u.sym->u.s.vfields = 1; + tail = &(*tail)->link; + free(field); + } + Seq_free(&fields); + break; + } + case rcc_FUNCTION_enum: { + int n = Seq_length(type->v.rcc_FUNCTION.formals); + if (n > 0) { + int i; + Type *proto = newarray(n + 1, sizeof *proto, PERM); + for (i = 0; i < n; i++) { + int *formal = Seq_remlo(type->v.rcc_FUNCTION.formals); + proto[i] = uid2type(*formal); + free(formal); + } + proto[i] = NULL; + ty = func(uid2type(type->v.rcc_FUNCTION.type), proto, 0); + } else + ty = func(uid2type(type->v.rcc_FUNCTION.type), NULL, 1); + Seq_free(&type->v.rcc_FUNCTION.formals); + break; + } + default: assert(0); + } + if (itemmap[uid] == NULL) { + itemmap[uid] = ty; + free(type); + free(items[uid]); + items[uid] = NULL; + } else + assert(itemmap[uid] == ty); + } + return itemmap[uid]; +} + +static Symbol uid2symbol(int uid) { + assert(uid >= 0 && uid < nuids); + if (itemmap[uid] == NULL) { + Symbol p; + rcc_symbol_ty symbol; + assert(items[uid]); + assert(items[uid]->uid == uid); + assert(items[uid]->kind == rcc_Symbol_enum); + symbol = items[uid]->v.rcc_Symbol.symbol; + assert(symbol); + NEW0(p, PERM); + p->name = (char *)symbol->id; + p->scope = symbol->scope; + p->sclass = symbol->sclass; + p->type = uid2type(symbol->type); +#define xx(f,n) p->f = symbol->flags>>n; + xx(structarg,0) + xx(addressed,1) + xx(computed,2) + xx(temporary,3) + xx(generated,4) +#undef xx + p->ref = symbol->ref/10000.0; + assert(p->scope != CONSTANTS && p->scope != LABELS); + if (p->scope == GLOBAL || p->sclass == STATIC || p->sclass == EXTERN) + (*IR->defsymbol)(p); + itemmap[uid] = p; + free(symbol); + free(items[uid]); + items[uid] = NULL; + } + return itemmap[uid]; +} + +#define xx(s) static void do##s(rcc_interface_ty); +xx(Export) +xx(Import) +xx(Global) +xx(Local) +xx(Address) +xx(Segment) +xx(Defaddress) +xx(Deflabel) +xx(Defconst) +xx(Defconstf) +xx(Defstring) +xx(Space) +xx(Function) +xx(Blockbeg) +xx(Blockend) +xx(Forest) +#undef xx +static void (*doX[])(rcc_interface_ty in) = { +#define xx(s) 0, +xx(Export) +xx(Import) +xx(Global) +xx(Local) +xx(Address) +xx(Segment) +xx(Defaddress) +xx(Deflabel) +xx(Defconst) +xx(Defconstf) +xx(Defstring) +xx(Space) +xx(Function) +xx(Blockbeg) +xx(Blockend) +xx(Forest) + 0 +#undef xx +}; + +static void interface(rcc_interface_ty in) { + assert(in); + (*doX[in->kind])(in); + free(in); +} + +static void doExport(rcc_interface_ty in) { + (*IR->export)(uid2symbol(in->v.rcc_Export.p)); +} + +static void doImport(rcc_interface_ty in) { + Symbol p = uid2symbol(in->v.rcc_Export.p); + + (*IR->import)(p); + p->defined = 1; +} + +static void doGlobal(rcc_interface_ty in) { + Symbol p = uid2symbol(in->v.rcc_Global.p); + + p->u.seg = in->v.rcc_Global.seg; + (*IR->global)(p); + p->defined = 1; +} + +static void doLocal(rcc_interface_ty in) { + int uid = in->v.rcc_Local.uid; + + assert(uid >= 0 && uid < nuids); + assert(items[uid] == NULL); + items[uid] = rcc_Symbol(uid, in->v.rcc_Local.p); + if (in->v.rcc_Local.p->scope >= LOCAL) + addlocal(uid2symbol(uid)); +} + +static void doAddress(rcc_interface_ty in) { + int uid = in->v.rcc_Address.uid; + Symbol p = uid2symbol(in->v.rcc_Address.p); + + assert(uid >= 0 && uid < nuids); + assert(items[uid] == NULL); + items[uid] = rcc_Symbol(uid, in->v.rcc_Address.q); + if (p->scope == GLOBAL || p->sclass == STATIC || p->sclass == EXTERN) + (*IR->address)(uid2symbol(uid), p, in->v.rcc_Address.n); + else { + Code cp = code(Address); + cp->u.addr.sym = uid2symbol(uid); + cp->u.addr.base = p; + cp->u.addr.offset = in->v.rcc_Address.n; + } +} + +static void doSegment(rcc_interface_ty in) { + (*IR->segment)(in->v.rcc_Segment.seg); +} + +static void doDefaddress(rcc_interface_ty in) { + (*IR->defaddress)(uid2symbol(in->v.rcc_Defaddress.p)); +} + +static void doDeflabel(rcc_interface_ty in) { + (*IR->defaddress)(findlabel(in->v.rcc_Deflabel.label)); +} + +static void doDefconst(rcc_interface_ty in) { + Value v; + + v.i = in->v.rcc_Defconst.value; + (*IR->defconst)(in->v.rcc_Defconst.suffix, in->v.rcc_Defconst.size, v); +} + +static void doDefconstf(rcc_interface_ty in) { + Value v; + unsigned *p = (unsigned *)&v.d; + + p[swap] = in->v.rcc_Defconstf.value->msb; + p[1-swap] = in->v.rcc_Defconstf.value->lsb; + (*IR->defconst)(F, in->v.rcc_Defconstf.size, v); + free(in->v.rcc_Defconstf.value); +} + +static void doDefstring(rcc_interface_ty in) { + (*IR->defstring)(in->v.rcc_Defstring.s.len, (char *)in->v.rcc_Defstring.s.str); + free((char *)in->v.rcc_Defstring.s.str); +} + +static void doSpace(rcc_interface_ty in) { + (*IR->space)(in->v.rcc_Space.n); +} + +static void doFunction(rcc_interface_ty in) { + int i, n; + Symbol *caller, *callee; + + /* + Initialize: + define the function symbol, + initialize callee and caller arrays. + */ + cfunc = uid2symbol(in->v.rcc_Function.f); + labels = table(NULL, LABELS); + enterscope(); + n = Seq_length(in->v.rcc_Function.caller); + caller = newarray(n + 1, sizeof *caller, FUNC); + for (i = 0; i < n; i++) { + int *uid = Seq_remlo(in->v.rcc_Function.caller); + caller[i] = uid2symbol(*uid); + free(uid); + } + caller[i] = NULL; + Seq_free(&in->v.rcc_Function.caller); + callee = newarray(n + 1, sizeof *callee, FUNC); + for (i = 0; i < n; i++) { + int *uid = Seq_remlo(in->v.rcc_Function.callee); + callee[i] = uid2symbol(*uid); + free(uid); + } + callee[i] = NULL; + Seq_free(&in->v.rcc_Function.callee); + cfunc->u.f.callee = callee; + cfunc->defined = 1; + /* + Initialize the code list, + traverse the interfaces inside the function; + each call appends code list entries. + */ + codelist = &codehead; + codelist->next = NULL; + n = Seq_length(in->v.rcc_Function.codelist); + for (i = 0; i < n; i++) + interface(Seq_remlo(in->v.rcc_Function.codelist)); + Seq_free(&in->v.rcc_Function.codelist); + /* + Call the back end, + Wrap-up. + */ + exitscope(); + (*IR->function)(cfunc, caller, callee, in->v.rcc_Function.ncalls); + cfunc = NULL; + labels = NULL; +} + +static struct block { + Code begin; + struct block *prev; +} *blockstack = NULL; + +static void doBlockbeg(rcc_interface_ty in) { + struct block *b; + Code cp = code(Blockbeg); + + enterscope(); + cp->u.block.level = level; + cp->u.block.locals = newarray(1, sizeof *cp->u.block.locals, FUNC); + cp->u.block.locals[0] = NULL; + cp->u.block.identifiers = NULL; + cp->u.block.types = NULL; + NEW(b, FUNC); + b->begin = cp; + b->prev = blockstack; + blockstack = b; +} + +static void doBlockend(rcc_interface_ty in) { + assert(blockstack); + code(Blockend)->u.begin = blockstack->begin; + blockstack = blockstack->prev; + exitscope(); +} + +static Node visit(rcc_node_ty node) { + int op; + Node left = NULL, right = NULL, p = NULL; + Symbol sym = NULL; + + switch (node->kind) { +#define T(x) rcc_##x##_enum + case T(CSE): { + Symbol q = uid2symbol(node->v.rcc_CSE.uid); + assert(q->temporary); + q->u.t.cse = p = visit(node->v.rcc_CSE.node); + break; + } + case T(CNST): { + Value v; + v.i = node->v.rcc_CNST.value; + sym = constant(btot(node->suffix, node->size), v); + op = CNST; + break; + } + case T(CNSTF): { + Value v; + unsigned *p = (unsigned *)&v.d; + p[swap] = node->v.rcc_CNSTF.value->msb; + p[1-swap] = node->v.rcc_CNSTF.value->lsb; + sym = constant(btot(node->suffix, node->size), v); + free(node->v.rcc_CNSTF.value); + op = CNST; + break; + } + case T(ARG): + p = newnode(ARG + node->suffix + sizeop(node->size), + visit(node->v.rcc_ARG.left), NULL, + intconst(node->v.rcc_ARG.len)); + p->syms[1] = intconst(node->v.rcc_ARG.align); + break; + case T(ASGN): + p = newnode(ASGN + node->suffix + sizeop(node->size), + visit(node->v.rcc_ASGN.left), visit(node->v.rcc_ASGN.right), + intconst(node->v.rcc_ASGN.len)); + p->syms[1] = intconst(node->v.rcc_ASGN.align); + break; + case T(CVT): + op = node->v.rcc_CVT.op; + left = visit(node->v.rcc_CVT.left); + sym = intconst(node->v.rcc_CVT.fromsize); + break; + case T(CALL): + op = CALL; + left = visit(node->v.rcc_CALL.left); + NEW0(sym, FUNC); + sym->type = uid2type(node->v.rcc_CALL.type); + break; + case T(CALLB): + op = CALL; + left = visit(node->v.rcc_CALLB.left); + right = visit(node->v.rcc_CALLB.right); + NEW0(sym, FUNC); + sym->type = uid2type(node->v.rcc_CALLB.type); + break; + case T(RET): + op = RET; + break; + case T(ADDRG): + op = ADDRG; + sym = uid2symbol(node->v.rcc_ADDRG.uid); + break; + case T(ADDRL): + op = ADDRL; + sym = uid2symbol(node->v.rcc_ADDRG.uid); + break; + case T(ADDRF): + op = ADDRF; + sym = uid2symbol(node->v.rcc_ADDRG.uid); + break; + case T(Unary): + op = node->v.rcc_Unary.op; + left = visit(node->v.rcc_Unary.left); + break; + case T(Binary): + op = node->v.rcc_Binary.op; + left = visit(node->v.rcc_Binary.left); + right = visit(node->v.rcc_Binary.right); + break; + case T(Compare): + op = node->v.rcc_Compare.op; + left = visit(node->v.rcc_Compare.left); + right = visit(node->v.rcc_Compare.right); + sym = findlabel(node->v.rcc_Compare.label); + break; + case T(LABEL): + op = LABEL; + sym = findlabel(node->v.rcc_LABEL.label); + break; + case T(BRANCH): + op = JUMP; + left = newnode(ADDRG+P+sizeop(voidptype->size), NULL, NULL, findlabel(node->v.rcc_BRANCH.label)); + break; +#undef T + default: assert(0); + } + if (p == NULL) + p = newnode(op + node->suffix + sizeop(node->size), left, right, sym); + free(node); + return p; +} + +static void doForest(rcc_interface_ty in) { + Node *tail = &code(Gen)->u.forest; + int i, n = Seq_length(in->v.rcc_Forest.nodes); + + for (i = 0; i < n; i++) { + *tail = visit(Seq_remlo(in->v.rcc_Forest.nodes)); + assert(*tail); + tail = &(*tail)->link; + } + *tail = NULL; + Seq_free(&in->v.rcc_Forest.nodes); +} + +int main(int argc, char *argv[]) { + int i, version; + float stamp = (assert(strstr(rcsid, ",v")), strtod(strstr(rcsid, ",v")+2, NULL)) +; + char *infile = NULL, *outfile = NULL; + rcc_program_ty pickle; + + for (i = 1; i < argc; i++) + if (*argv[i] != '-' || strcmp(argv[i], "-") == 0) { + if (infile == NULL) + infile = argv[i]; + else if (outfile == NULL) + outfile = argv[i]; + } + if (infile != NULL && strcmp(infile, "-") != 0 + && freopen(infile, "rb", stdin) == NULL) { + fprint(stderr, "%s: can't read `%s'\n", argv[0], infile); + exit(EXIT_FAILURE); + } +#if WIN32 + else + _setmode(_fileno(stdin), _O_BINARY); +#endif + if (outfile != NULL && strcmp(outfile, "-") != 0 + && freopen(outfile, "w", stdout) == NULL) { + fprint(stderr, "%s: can't write `%s'\n", argv[0], outfile); + exit(EXIT_FAILURE); + } + version = read_int(stdin); + assert(version/100 == (int)stamp); + pickle = rcc_read_program(stdin); + argc = pickle->argc; + argv = newarray(argc + 1, sizeof *argv, PERM); + { + for (i = 0; i < argc; i++) { + string_ty *arg = Seq_remlo(pickle->argv); + argv[i] = (char *)arg->str; + free(arg); + } + argv[i] = NULL; + assert(i == argc); + Seq_free(&pickle->argv); + } + for (i = argc - 1; i > 0; i--) + if (strncmp(argv[i], "-target=", 8) == 0) + break; + if (i > 0) { + int j; + for (j = 0; bindings[j].name && bindings[j].ir; j++) + if (strcmp(&argv[i][8], bindings[j].name) == 0) { + IR = bindings[j].ir; + break; + } + } + if (!IR) { + fprint(stderr, "%s: unknown target", argv[0]); + if (i > 0) + fprint(stderr, " `%s'", &argv[i][8]); + fprint(stderr, "; must specify one of\n"); + for (i = 0; bindings[i].name; i++) + fprint(stderr, "\t-target=%s\n", bindings[i].name); + exit(EXIT_FAILURE); + } + IR->wants_dag = 0; /* pickle's hold trees */ + init(argc, argv); + genlabel(pickle->nlabels); + level = GLOBAL; + { + int i, count; + nuids = pickle->nuids; + items = newarray(nuids, sizeof *items, PERM); + itemmap = newarray(nuids, sizeof *items, PERM); + for (i = 0; i < nuids; i++) { + itemmap[i] = NULL; + items[i] = NULL; + } + (*IR->progbeg)(argc, argv); + count = Seq_length(pickle->items); + for (i = 0; i < count; i++) { + rcc_item_ty item = Seq_remlo(pickle->items); + int uid = item->uid; + assert(uid >= 0 && uid < nuids); + assert(items[uid] == NULL); + items[uid] = item; + } + Seq_free(&pickle->items); +#define xx(s) assert(rcc_##s##_enum < sizeof doX/sizeof doX[0] && doX[rcc_##s##_enum]==0); \ + doX[rcc_##s##_enum] = do##s; + xx(Export) + xx(Import) + xx(Global) + xx(Local) + xx(Address) + xx(Segment) + xx(Defaddress) + xx(Deflabel) + xx(Defconst) + xx(Defconstf) + xx(Defstring) + xx(Space) + xx(Function) + xx(Blockbeg) + xx(Blockend) + xx(Forest) +#undef xx + count = Seq_length(pickle->interfaces); + for (i = 0; i < count; i++) + interface(Seq_remlo(pickle->interfaces)); + Seq_free(&pickle->interfaces); + free(pickle); + (*IR->progend)(); + } + deallocate(PERM); + return errcnt > 0; +} + +/* main_init - process program arguments */ +void main_init(int argc, char *argv[]) { + int i; + static int inited; + + if (inited) + return; + inited = 1; + for (i = 1; i < argc; i++) + if (strcmp(argv[i], "-g") == 0 || strcmp(argv[i], "-g2") == 0) + glevel = 2; + else if (strcmp(argv[i], "-w") == 0) + wflag++; + else if (strcmp(argv[i], "-v") == 0) { + fprint(stderr, "%s %s\n", argv[0], rcsid); + verbose++; + } else if (strncmp(argv[i], "-errout=", 8) == 0) { + FILE *f = fopen(argv[i]+8, "w"); + if (f == NULL) { + fprint(stderr, "%s: can't write errors to `%s'\n", argv[0], argv[i]+8); + exit(EXIT_FAILURE); + } + fclose(f); + f = freopen(argv[i]+8, "w", stderr); + assert(f); + } else if (strncmp(argv[i], "-e", 2) == 0) { + int x; + if ((x = strtol(&argv[i][2], NULL, 0)) > 0) + errlimit = x; + } +} + +void init(int argc, char *argv[]) { + {extern void main_init(int, char *[]); main_init(argc, argv);} + {extern void prof_init(int, char *[]); prof_init(argc, argv);} + {extern void trace_init(int, char *[]); trace_init(argc, argv);} + {extern void type_init(int, char *[]); type_init(argc, argv);} + {extern void x86linux_init(int, char *[]); x86linux_init(argc, argv);} +} diff --git a/code/tools/lcc/src/prof.c b/code/tools/lcc/src/prof.c new file mode 100644 index 0000000..02709ed --- /dev/null +++ b/code/tools/lcc/src/prof.c @@ -0,0 +1,228 @@ +#include "c.h" + + +struct callsite { + char *file, *name; + union coordinate { + unsigned int coord; + struct { unsigned int y:16,x:10,index:6; } le; + struct { unsigned int index:6,x:10,y:16; } be; + } u; +}; +struct func { + struct func *link; + struct caller *callers; + char *name; + union coordinate src; +}; +struct map { /* source code map; 200 coordinates/map */ + int size; + union coordinate u[200]; +}; + +int npoints; /* # of execution points if -b specified */ +int ncalled = -1; /* #times prof.out says current function was called */ +static Symbol YYlink; /* symbol for file's struct _bbdata */ +static Symbol YYcounts; /* symbol for _YYcounts if -b specified */ +static List maplist; /* list of struct map *'s */ +static List filelist; /* list of file names */ +static Symbol funclist; /* list of struct func *'s */ +static Symbol afunc; /* current function's struct func */ + +/* bbcall - build tree to set _callsite at call site *cp, emit call site data */ +static void bbcall(Symbol yycounts, Coordinate *cp, Tree *e) { + static Symbol caller; + Value v; + union coordinate u; + Symbol p = genident(STATIC, array(voidptype, 0, 0), GLOBAL); + Tree t = *e; + + defglobal(p, LIT); + defpointer(cp->file ? mkstr(cp->file)->u.c.loc : (Symbol)0); + defpointer(mkstr(cfunc->name)->u.c.loc); + if (IR->little_endian) { + u.le.x = cp->x; + u.le.y = cp->y; + } else { + u.be.x = cp->x; + u.be.y = cp->y; + } + (*IR->defconst)(U, unsignedtype->size, (v.u = u.coord, v)); + if (caller == 0) { + caller = mksymbol(EXTERN, "_caller", ptr(voidptype)); + caller->defined = 0; + } + if (generic((*e)->op) != CALL) + t = (*e)->kids[0]; + assert(generic(t->op) == CALL); + t = tree(t->op, t->type, + tree(RIGHT, t->kids[0]->type, + t->kids[0], + tree(RIGHT, t->kids[0]->type, asgn(caller, idtree(p)), t->kids[0])), + t->kids[1]); + if (generic((*e)->op) != CALL) + t = tree((*e)->op, (*e)->type, t, (*e)->kids[1]); + *e = t; +} + +/* bbentry - return tree for _prologue(&afunc, &YYlink)' */ +static void bbentry(Symbol yylink, Symbol f) { + static Symbol prologue; + + afunc = genident(STATIC, array(voidptype, 4, 0), GLOBAL); + if (prologue == 0) { + prologue = mksymbol(EXTERN, "_prologue", ftype(inttype, voidptype)); + prologue->defined = 0; + } + walk(vcall(prologue, voidtype, pointer(idtree(afunc)), pointer(idtree(yylink)), NULL), 0, 0); + +} + +/* bbexit - return tree for _epilogue(&afunc)' */ +static void bbexit(Symbol yylink, Symbol f, Tree e) { + static Symbol epilogue; + + if (epilogue == 0) { + epilogue = mksymbol(EXTERN, "_epilogue", ftype(inttype, voidptype)); + epilogue->defined = 0; + } + walk(vcall(epilogue, voidtype, pointer(idtree(afunc)), NULL), 0, 0); +} + +/* bbfile - add file to list of file names, return its index */ +static int bbfile(char *file) { + if (file) { + List lp; + int i = 1; + if ((lp = filelist) != NULL) + do { + lp = lp->link; + if (((Symbol)lp->x)->u.c.v.p == file) + return i; + i++; + } while (lp != filelist); + filelist = append(mkstr(file), filelist); + return i; + } + return 0; +} + +/* bbfunc - emit function name and src coordinates */ +static void bbfunc(Symbol yylink, Symbol f) { + Value v; + union coordinate u; + + defglobal(afunc, DATA); + defpointer(funclist); + defpointer(NULL); + defpointer(mkstr(f->name)->u.c.loc); + if (IR->little_endian) { + u.le.x = f->u.f.pt.x; + u.le.y = f->u.f.pt.y; + u.le.index = bbfile(f->u.f.pt.file); + } else { + u.be.x = f->u.f.pt.x; + u.be.y = f->u.f.pt.y; + u.be.index = bbfile(f->u.f.pt.file); + } + (*IR->defconst)(U, unsignedtype->size, (v.u = u.coord, v)); + funclist = afunc; +} + +/* bbincr - build tree to increment execution point at *cp */ +static void bbincr(Symbol yycounts, Coordinate *cp, Tree *e) { + struct map *mp = maplist->x; + Tree t; + + /* append *cp to source map */ + if (mp->size >= NELEMS(mp->u)) { + NEW(mp, PERM); + mp->size = 0; + maplist = append(mp, maplist); + } + if (IR->little_endian) { + mp->u[mp->size].le.x = cp->x; + mp->u[mp->size].le.y = cp->y; + mp->u[mp->size++].le.index = bbfile(cp->file); + } else { + mp->u[mp->size].be.x = cp->x; + mp->u[mp->size].be.y = cp->y; + mp->u[mp->size++].be.index = bbfile(cp->file); + } + t = incr('+', rvalue((*optree['+'])(ADD, pointer(idtree(yycounts)), + consttree(npoints++, inttype))), consttree(1, inttype)); + if (*e) + *e = tree(RIGHT, (*e)->type, t, *e); + else + *e = t; +} + +/* bbvars - emit definition for basic block counting data */ +static void bbvars(Symbol yylink) { + int i, j, n = npoints; + Value v; + struct map **mp; + Symbol coords, files, *p; + + if (!YYcounts && !yylink) + return; + if (YYcounts) { + if (n <= 0) + n = 1; + YYcounts->type = array(unsignedtype, n, 0); + defglobal(YYcounts, BSS); + } + files = genident(STATIC, array(charptype, 1, 0), GLOBAL); + defglobal(files, LIT); + for (p = ltov(&filelist, PERM); *p; p++) + defpointer((*p)->u.c.loc); + defpointer(NULL); + coords = genident(STATIC, array(unsignedtype, n, 0), GLOBAL); + defglobal(coords, LIT); + for (i = n, mp = ltov(&maplist, PERM); *mp; i -= (*mp)->size, mp++) + for (j = 0; j < (*mp)->size; j++) + (*IR->defconst)(U, unsignedtype->size, (v.u = (*mp)->u[j].coord, v)); + if (i > 0) + (*IR->space)(i*coords->type->type->size); + defpointer(NULL); + defglobal(yylink, DATA); + defpointer(NULL); + (*IR->defconst)(U, unsignedtype->size, (v.u = n, v)); + defpointer(YYcounts); + defpointer(coords); + defpointer(files); + defpointer(funclist); +} + +/* profInit - initialize basic block profiling options */ +void prof_init(int argc, char *argv[]) { + int i; + static int inited; + + if (inited) + return; + inited = 1; + type_init(argc, argv); + if (IR) { + for (i = 1; i < argc; i++) + if (strncmp(argv[i], "-a", 2) == 0) { + if (ncalled == -1 + && process(argv[i][2] ? &argv[i][2] : "prof.out") > 0) + ncalled = 0; + } else if ((strcmp(argv[i], "-b") == 0 + || strcmp(argv[i], "-C") == 0) && YYlink == 0) { + YYlink = genident(STATIC, array(unsignedtype, 0, 0), GLOBAL); + attach((Apply)bbentry, YYlink, &events.entry); + attach((Apply)bbexit, YYlink, &events.returns); + attach((Apply)bbfunc, YYlink, &events.exit); + attach((Apply)bbvars, YYlink, &events.end); + if (strcmp(argv[i], "-b") == 0) { + YYcounts = genident(STATIC, array(unsignedtype, 0, 0), GLOBAL); + maplist = append(allocate(sizeof (struct map), PERM), maplist); + ((struct map *)maplist->x)->size = 0; + attach((Apply)bbcall, YYcounts, &events.calls); + attach((Apply)bbincr, YYcounts, &events.points); + } + } + } +} diff --git a/code/tools/lcc/src/profio.c b/code/tools/lcc/src/profio.c new file mode 100644 index 0000000..37fc25b --- /dev/null +++ b/code/tools/lcc/src/profio.c @@ -0,0 +1,276 @@ +/* C compiler: prof.out input + +prof.out format: +#files + name + ... (#files-1 times) +#functions + name file# x y count caller file x y + ... (#functions-1 times) +#points + file# x y count + ... (#points-1 times) +*/ +#include "c.h" + + +struct count { /* count data: */ + int x, y; /* source coordinate */ + int count; /* associated execution count */ +}; + +#define MAXTOKEN 64 + +struct file { /* per-file prof.out data: */ + struct file *link; /* link to next file */ + char *name; /* file name */ + int size; /* size of counts[] */ + int count; /* counts[0..count-1] hold valid data */ + struct count *counts; /* count data */ + struct func { /* function data: */ + struct func *link; /* link to next function */ + char *name; /* function name */ + struct count count; /* total number of calls */ + struct caller { /* caller data: */ + struct caller *link; /* link to next caller */ + char *name; /* caller's name */ + char *file; /* call site: file, x, y */ + int x, y; + int count; /* number of calls from this site */ + } *callers; + } *funcs; /* list of functions */ +} *filelist; +FILE *fp; + +/* acaller - add caller and site (file,x,y) to callee's callers list */ +static void acaller(char *caller, char *file, int x, int y, int count, struct func *callee) { + struct caller *q; + + assert(callee); + for (q = callee->callers; q && (caller != q->name + || file != q->file || x != q->x || y != q->y); q = q->link) + ; + if (!q) { + struct caller **r; + NEW(q, PERM); + q->name = caller; + q->file = file; + q->x = x; + q->y = y; + q->count = 0; + for (r = &callee->callers; *r && (strcmp(q->name, (*r)->name) > 0 + || strcmp(q->file, (*r)->file) > 0 || q->y > (*r)->y || q->y > (*r)->y); r = &(*r)->link) + ; + q->link = *r; + *r = q; + } + q->count += count; +} + +/* compare - return <0, 0, >0 if ab, resp. */ +static int compare(struct count *a, struct count *b) { + if (a->y == b->y) + return a->x - b->x; + return a->y - b->y; +} + +/* findfile - return file name's file list entry, or 0 */ +static struct file *findfile(char *name) { + struct file *p; + + for (p = filelist; p; p = p->link) + if (p->name == name) + return p; + return 0; +} + +/* afunction - add function name and its data to file's function list */ +static struct func *afunction(char *name, char *file, int x, int y, int count) { + struct file *p = findfile(file); + struct func *q; + + assert(p); + for (q = p->funcs; q && name != q->name; q = q->link) + ; + if (!q) { + struct func **r; + NEW(q, PERM); + q->name = name; + q->count.x = x; + q->count.y = y; + q->count.count = 0; + q->callers = 0; + for (r = &p->funcs; *r && compare(&q->count, &(*r)->count) > 0; r = &(*r)->link) + ; + q->link = *r; + *r = q; + } + q->count.count += count; + return q; +} + +/* apoint - append execution point i to file's data */ +static void apoint(int i, char *file, int x, int y, int count) { + struct file *p = findfile(file); + + assert(p); + if (i >= p->size) { + int j; + if (p->size == 0) { + p->size = i >= 200 ? 2*i : 200; + p->counts = newarray(p->size, sizeof *p->counts, PERM); + } else { + struct count *new; + p->size = 2*i; + new = newarray(p->size, sizeof *new, PERM); + for (j = 0; j < p->count; j++) + new[j] = p->counts[j]; + p->counts = new; + } + for (j = p->count; j < p->size; j++) { + static struct count z; + p->counts[j] = z; + } + } + p->counts[i].x = x; + p->counts[i].y = y; + p->counts[i].count += count; + if (i >= p->count) + p->count = i + 1; +} + +/* findcount - return count associated with (file,x,y) or -1 */ +int findcount(char *file, int x, int y) { + static struct file *cursor; + + if (cursor == 0 || cursor->name != file) + cursor = findfile(file); + if (cursor) { + int l, u; + struct count *c = cursor->counts; + for (l = 0, u = cursor->count - 1; l <= u; ) { + int k = (l + u)/2; + if (c[k].y > y || (c[k].y == y && c[k].x > x)) + u = k - 1; + else if (c[k].y < y || (c[k].y == y && c[k].x < x)) + l = k + 1; + else + return c[k].count; + } + } + return -1; +} + +/* findfunc - return count associated with function name in file or -1 */ +int findfunc(char *name, char *file) { + static struct file *cursor; + + if (cursor == 0 || cursor->name != file) + cursor = findfile(file); + if (cursor) { + struct func *p; + for (p = cursor->funcs; p; p = p->link) + if (p->name == name) + return p->count.count; + } + return -1; +} + +/* getd - read a nonnegative number */ +static int getd(void) { + int c, n = 0; + + while ((c = getc(fp)) != EOF && (c == ' ' || c == '\n' || c == '\t')) + ; + if (c >= '0' && c <= '9') { + do + n = 10*n + (c - '0'); + while ((c = getc(fp)) >= '0' && c <= '9'); + return n; + } + return -1; +} + +/* getstr - read a string */ +static char *getstr(void) { + int c; + char buf[MAXTOKEN], *s = buf; + + while ((c = getc(fp)) != EOF && c != ' ' && c != '\n' && c != '\t') + if (s - buf < (int)sizeof buf - 2) + *s++ = c; + *s = 0; + return s == buf ? (char *)0 : string(buf); +} + +/* gather - read prof.out data from fd */ +static int gather(void) { + int i, nfiles, nfuncs, npoints; + char *files[64]; + + if ((nfiles = getd()) < 0) + return 0; + assert(nfiles < NELEMS(files)); + for (i = 0; i < nfiles; i++) { + if ((files[i] = getstr()) == 0) + return -1; + if (!findfile(files[i])) { + struct file *new; + NEW(new, PERM); + new->name = files[i]; + new->size = new->count = 0; + new->counts = 0; + new->funcs = 0; + new->link = filelist; + filelist = new; + } + } + if ((nfuncs = getd()) < 0) + return -1; + for (i = 0; i < nfuncs; i++) { + struct func *q; + char *name, *file; + int f, x, y, count; + if ((name = getstr()) == 0 || (f = getd()) <= 0 + || (x = getd()) < 0 || (y = getd()) < 0 || (count = getd()) < 0) + return -1; + q = afunction(name, files[f-1], x, y, count); + if ((name = getstr()) == 0 || (file = getstr()) == 0 + || (x = getd()) < 0 || (y = getd()) < 0) + return -1; + if (*name != '?') + acaller(name, file, x, y, count, q); + } + if ((npoints = getd()) < 0) + return -1; + for (i = 0; i < npoints; i++) { + int f, x, y, count; + if ((f = getd()) < 0 || (x = getd()) < 0 || (y = getd()) < 0 + || (count = getd()) < 0) + return -1; + if (f) + apoint(i, files[f-1], x, y, count); + } + return 1; +} + +/* process - read prof.out data from file */ +int process(char *file) { + int more; + + if ((fp = fopen(file, "r")) != NULL) { + struct file *p; + while ((more = gather()) > 0) + ; + fclose(fp); + if (more < 0) + return more; + for (p = filelist; p; p = p->link) + qsort(p->counts, p->count, sizeof *p->counts, + (int (*)(const void *, const void *)) + compare); + + return 1; + } + return 0; +} diff --git a/code/tools/lcc/src/rcc.asdl b/code/tools/lcc/src/rcc.asdl new file mode 100644 index 0000000..398e0d0 --- /dev/null +++ b/code/tools/lcc/src/rcc.asdl @@ -0,0 +1,70 @@ +-- lcc IR +-- $Id: rcc.asdl 145 2001-10-17 21:53:10Z timo $ +module rcc { + +-- Pickles start with an int version number, followed by rcc.program + +program = (int nuids,int nlabels,item* items,interface* interfaces,int argc,string *argv) + +real = (int msb,int lsb) + +item = Symbol(symbol symbol) + | Type(type type) + attributes(int uid) + +symbol = (identifier id,int type,int scope,int sclass,int ref,int flags) + +field = (identifier id,int type,int offset,int bitsize,int lsb) + +enum = (identifier id,int value) + +type = INT + | UNSIGNED + | FLOAT + | VOID + | POINTER(int type) + | ENUM(identifier tag,enum* ids) + | STRUCT(identifier tag,field* fields) + | UNION(identifier tag,field* fields) + | ARRAY(int type) + | FUNCTION(int type,int* formals) + | CONST(int type) + | VOLATILE(int type) + attributes(int size,int align) + +interface = Export(int p) + | Import(int p) + | Global(int p,int seg) + | Local(int uid,symbol p) -- includes formals + | Address(int uid,symbol q,int p,int n) + | Segment(int seg) + | Defaddress(int p) + | Deflabel(int label) + | Defconst(int suffix,int size,int value) + | Defconstf(int size,real value) + | Defstring(string s) + | Space(int n) + | Function(int f,int* caller,int* callee,int ncalls,interface* codelist) + | Blockbeg + | Blockend + | Forest(node* nodes) + +node = CNST(int value) + | CNSTF(real value) + | ARG(node left,int len,int align) + | ASGN(node left,node right,int len,int align) + | CVT(int op,node left,int fromsize) + | CALL(node left,int type) + | CALLB(node left,node right,int type) + | RET + | ADDRG(int uid) + | ADDRL(int uid) + | ADDRF(int uid) + | Unary(int op,node left) -- INDIR RET JUMP NEG BCOM + | Binary(int op,node left,node right) -- ADD SUB DIV MUL MOD BOR BAND BXOR RSH LSH + | Compare(int op,node left,node right,int label) -- EQ NE GT GE LE LT + | LABEL(int label) + | BRANCH(int label) + | CSE(int uid,node node) + attributes(int suffix,int size) +} diff --git a/code/tools/lcc/src/run.sh b/code/tools/lcc/src/run.sh new file mode 100644 index 0000000..819e898 --- /dev/null +++ b/code/tools/lcc/src/run.sh @@ -0,0 +1,51 @@ +#!/bin/sh +# run .../target/os/tst/foo.s [ remotehost ] + +# set -x +target=`echo $1 | awk -F/ '{ print $(NF-3) }'` +os=`echo $1 | awk -F/ '{ print $(NF-2) }'` +dir=$target/$os + +case "$1" in +*symbolic/irix*) idir=include/mips/irix; remotehost=noexecute ;; +*symbolic/osf*) idir=include/alpha/osf; remotehost=noexecute ;; +*) idir=include/$dir; remotehost=${2-$REMOTEHOST} ;; +esac + +if [ ! -d "$target/$os" -o ! -d "$idir" ]; then + echo 2>&1 $0: unknown combination '"'$target/$os'"' + exit 1 +fi + +C=`basename $1 .s` +BUILDDIR=${BUILDDIR-.} LCC="${LCC-${BUILDDIR}/lcc} -Wo-lccdir=$BUILDDIR" +TSTDIR=${TSTDIR-${BUILDDIR}/$dir/tst} +if [ ! -d $TSTDIR ]; then mkdir -p $TSTDIR; fi + +echo ${BUILDDIR}/rcc$EXE -target=$target/$os $1: 1>&2 +$LCC -S -I$idir -Ualpha -Usun -Uvax -Umips -Ux86 \ + -Wf-errout=$TSTDIR/$C.2 -D$target -Wf-g0 \ + -Wf-target=$target/$os -o $1 tst/$C.c +if [ $? != 0 ]; then remotehost=noexecute; fi +if [ -r $dir/tst/$C.2bk ]; then + diff $dir/tst/$C.2bk $TSTDIR/$C.2 +fi +if [ -r $dir/tst/$C.sbk ]; then + if diff $dir/tst/$C.sbk $TSTDIR/$C.s; then exit 0; fi +fi + +case "$remotehost" in +noexecute) exit 0 ;; +""|"-") $LCC -o $TSTDIR/$C$EXE $1; $TSTDIR/$C$EXE $TSTDIR/$C.1 ;; +*) rcp $1 $remotehost: + if expr "$remotehost" : '.*@' >/dev/null ; then + remotehost="`expr $remotehost : '.*@\(.*\)'` -l `expr $remotehost : '\(.*\)@'`" + fi + rsh $remotehost "cc -o $C$EXE $C.s -lm;./$C$EXE;rm -f $C$EXE $C.[so]" $TSTDIR/$C.1 + ;; +esac +if [ -r $dir/tst/$C.1bk ]; then + diff $dir/tst/$C.1bk $TSTDIR/$C.1 + exit $? +fi +exit 0 diff --git a/code/tools/lcc/src/simp.c b/code/tools/lcc/src/simp.c new file mode 100644 index 0000000..227dfbb --- /dev/null +++ b/code/tools/lcc/src/simp.c @@ -0,0 +1,587 @@ +#include "c.h" +#include + + +#define foldcnst(TYPE,VAR,OP) \ + if (l->op == CNST+TYPE && r->op == CNST+TYPE) \ + return cnsttree(ty, l->u.v.VAR OP r->u.v.VAR) +#define commute(L,R) \ + if (generic(R->op) == CNST && generic(L->op) != CNST) \ + do { Tree t = L; L = R; R = t; } while(0) +#define xfoldcnst(TYPE,VAR,OP,FUNC)\ + if (l->op == CNST+TYPE && r->op == CNST+TYPE\ + && FUNC(l->u.v.VAR,r->u.v.VAR,\ + ty->u.sym->u.limits.min.VAR,\ + ty->u.sym->u.limits.max.VAR, needconst)) \ + return cnsttree(ty, l->u.v.VAR OP r->u.v.VAR) +#define xcvtcnst(FTYPE,SRC,DST,VAR,EXPR) \ + if (l->op == CNST+FTYPE) do {\ + if (!explicitCast\ + && ((SRC) < DST->u.sym->u.limits.min.VAR || (SRC) > DST->u.sym->u.limits.max.VAR))\ + warning("overflow in converting constant expression from `%t' to `%t'\n", l->type, DST);\ + if (needconst\ + || !((SRC) < DST->u.sym->u.limits.min.VAR || (SRC) > DST->u.sym->u.limits.max.VAR))\ + return cnsttree(ty, (EXPR)); } while(0) +#define identity(X,Y,TYPE,VAR,VAL) \ + if (X->op == CNST+TYPE && X->u.v.VAR == VAL) return Y +#define zerofield(OP,TYPE,VAR) \ + if (l->op == FIELD \ + && r->op == CNST+TYPE && r->u.v.VAR == 0)\ + return eqtree(OP, bittree(BAND, l->kids[0],\ + cnsttree(unsignedtype, \ + (unsigned long)fieldmask(l->u.field)<u.field))), r) +#define cfoldcnst(TYPE,VAR,OP) \ + if (l->op == CNST+TYPE && r->op == CNST+TYPE) \ + return cnsttree(inttype, (long)(l->u.v.VAR OP r->u.v.VAR)) +#define foldaddp(L,R,RTYPE,VAR) \ + if (L->op == CNST+P && R->op == CNST+RTYPE) { \ + Tree e = tree(CNST+P, ty, NULL, NULL);\ + e->u.v.p = (char *)L->u.v.p + R->u.v.VAR;\ + return e; } +#define ufoldcnst(TYPE,EXP) if (l->op == CNST+TYPE) return EXP +#define sfoldcnst(OP) \ + if (l->op == CNST+U && r->op == CNST+I \ + && r->u.v.i >= 0 && r->u.v.i < 8*l->type->size) \ + return cnsttree(ty, (unsigned long)(l->u.v.u OP r->u.v.i)) +#define geu(L,R,V) \ + if (R->op == CNST+U && R->u.v.u == 0) do { \ + warning("result of unsigned comparison is constant\n"); \ + return tree(RIGHT, inttype, root(L), cnsttree(inttype, (long)(V))); } while(0) +#define idempotent(OP) if (l->op == OP) return l->kids[0] + +int needconst; +int explicitCast; +static int addi(long x, long y, long min, long max, int needconst) { + int cond = x == 0 || y == 0 + || (x < 0 && y < 0 && x >= min - y) + || (x < 0 && y > 0) + || (x > 0 && y < 0) + || (x > 0 && y > 0 && x <= max - y); + if (!cond && needconst) { + warning("overflow in constant expression\n"); + cond = 1; + } + return cond; + + +} + +static int addd(double x, double y, double min, double max, int needconst) { + int cond = x == 0 || y == 0 + || (x < 0 && y < 0 && x >= min - y) + || (x < 0 && y > 0) + || (x > 0 && y < 0) + || (x > 0 && y > 0 && x <= max - y); + if (!cond && needconst) { + warning("overflow in constant expression\n"); + cond = 1; + } + return cond; + + +} + +static Tree addrtree(Tree e, long n, Type ty) { + Symbol p = e->u.sym, q; + + if (p->scope == GLOBAL + || p->sclass == STATIC || p->sclass == EXTERN) + NEW0(q, PERM); + else + NEW0(q, FUNC); + q->name = stringd(genlabel(1)); + q->sclass = p->sclass; + q->scope = p->scope; + assert(isptr(ty) || isarray(ty)); + q->type = isptr(ty) ? ty->type : ty; + q->temporary = p->temporary; + q->generated = p->generated; + q->addressed = p->addressed; + q->computed = 1; + q->defined = 1; + q->ref = 1; + if (p->scope == GLOBAL + || p->sclass == STATIC || p->sclass == EXTERN) { + if (p->sclass == AUTO) + q->sclass = STATIC; + (*IR->address)(q, p, n); + } else { + Code cp; + addlocal(p); + cp = code(Address); + cp->u.addr.sym = q; + cp->u.addr.base = p; + cp->u.addr.offset = n; + } + e = tree(e->op, ty, NULL, NULL); + e->u.sym = q; + return e; +} + +/* div[id] - return 1 if min <= x/y <= max, 0 otherwise */ +static int divi(long x, long y, long min, long max, int needconst) { + int cond = y != 0 && !(x == min && y == -1); + if (!cond && needconst) { + warning("overflow in constant expression\n"); + cond = 1; + } + return cond; + + +} + +static int divd(double x, double y, double min, double max, int needconst) { + int cond; + + if (x < 0) x = -x; + if (y < 0) y = -y; + cond = y != 0 && !(y < 1 && x > max*y); + if (!cond && needconst) { + warning("overflow in constant expression\n"); + cond = 1; + } + return cond; + +} + +/* mul[id] - return 1 if min <= x*y <= max, 0 otherwise */ +static int muli(long x, long y, long min, long max, int needconst) { + int cond = (x > -1 && x <= 1) || (y > -1 && y <= 1) + || (x < 0 && y < 0 && -x <= max/-y) + || (x < 0 && y > 0 && x >= min/y) + || (x > 0 && y < 0 && y >= min/x) + || (x > 0 && y > 0 && x <= max/y); + if (!cond && needconst) { + warning("overflow in constant expression\n"); + cond = 1; + } + return cond; + + +} + +static int muld(double x, double y, double min, double max, int needconst) { + int cond = (x >= -1 && x <= 1) || (y >= -1 && y <= 1) + || (x < 0 && y < 0 && -x <= max/-y) + || (x < 0 && y > 0 && x >= min/y) + || (x > 0 && y < 0 && y >= min/x) + || (x > 0 && y > 0 && x <= max/y); + if (!cond && needconst) { + warning("overflow in constant expression\n"); + cond = 1; + } + return cond; + + +} +/* sub[id] - return 1 if min <= x-y <= max, 0 otherwise */ +static int subi(long x, long y, long min, long max, int needconst) { + return addi(x, -y, min, max, needconst); +} + +static int subd(double x, double y, double min, double max, int needconst) { + return addd(x, -y, min, max, needconst); +} +Tree constexpr(int tok) { + Tree p; + + needconst++; + p = expr1(tok); + needconst--; + return p; +} + +int intexpr(int tok, int n) { + Tree p = constexpr(tok); + + needconst++; + if (p->op == CNST+I || p->op == CNST+U) + n = cast(p, inttype)->u.v.i; + else + error("integer expression must be constant\n"); + needconst--; + return n; +} +Tree simplify(int op, Type ty, Tree l, Tree r) { + int n; + + if (optype(op) == 0) + op = mkop(op, ty); + switch (op) { + case ADD+U: + foldcnst(U,u,+); + commute(r,l); + identity(r,l,U,u,0); + break; + case ADD+I: + xfoldcnst(I,i,+,addi); + commute(r,l); + identity(r,l,I,i,0); + break; + case CVI+I: + xcvtcnst(I,l->u.v.i,ty,i,(long)extend(l->u.v.i,ty)); + break; + case CVU+I: + if (l->op == CNST+U) { + if (!explicitCast && l->u.v.u > ty->u.sym->u.limits.max.i) + warning("overflow in converting constant expression from `%t' to `%t'\n", l->type, ty); + if (needconst || !(l->u.v.u > ty->u.sym->u.limits.max.i)) + return cnsttree(ty, (long)extend(l->u.v.u,ty)); + } + break; + case CVP+U: + xcvtcnst(P,(unsigned long)l->u.v.p,ty,u,(unsigned long)l->u.v.p); + break; + case CVU+P: + xcvtcnst(U,(void*)l->u.v.u,ty,p,(void*)l->u.v.u); + break; + case CVP+P: + xcvtcnst(P,l->u.v.p,ty,p,l->u.v.p); + break; + case CVI+U: + xcvtcnst(I,l->u.v.i,ty,u,((unsigned long)l->u.v.i)&ones(8*ty->size)); + break; + case CVU+U: + xcvtcnst(U,l->u.v.u,ty,u,l->u.v.u&ones(8*ty->size)); + break; + + case CVI+F: + xcvtcnst(I,l->u.v.i,ty,d,(long double)l->u.v.i); + case CVU+F: + xcvtcnst(U,l->u.v.u,ty,d,(long double)l->u.v.u); + break; + case CVF+I: + xcvtcnst(F,l->u.v.d,ty,i,(long)l->u.v.d); + break; + case CVF+F: { + float d; + if (l->op == CNST+F) { + if (l->u.v.d < ty->u.sym->u.limits.min.d) + d = ty->u.sym->u.limits.min.d; + else if (l->u.v.d > ty->u.sym->u.limits.max.d) + d = ty->u.sym->u.limits.max.d; + else + d = l->u.v.d; + } + xcvtcnst(F,l->u.v.d,ty,d,(long double)d); + break; + } + case BAND+U: + foldcnst(U,u,&); + commute(r,l); + identity(r,l,U,u,ones(8*ty->size)); + if (r->op == CNST+U && r->u.v.u == 0) + return tree(RIGHT, ty, root(l), cnsttree(ty, 0UL)); + break; + case BAND+I: + foldcnst(I,i,&); + commute(r,l); + identity(r,l,I,i,ones(8*ty->size)); + if (r->op == CNST+I && r->u.v.u == 0) + return tree(RIGHT, ty, root(l), cnsttree(ty, 0L)); + break; + + case MUL+U: + commute(l,r); + if (l->op == CNST+U && (n = ispow2(l->u.v.u)) != 0) + return simplify(LSH, ty, r, cnsttree(inttype, (long)n)); + foldcnst(U,u,*); + identity(r,l,U,u,1); + break; + case NE+I: + cfoldcnst(I,i,!=); + commute(r,l); + zerofield(NE,I,i); + break; + + case EQ+I: + cfoldcnst(I,i,==); + commute(r,l); + zerofield(EQ,I,i); + break; + case ADD+P: + foldaddp(l,r,I,i); + foldaddp(l,r,U,u); + foldaddp(r,l,I,i); + foldaddp(r,l,U,u); + commute(r,l); + identity(r,retype(l,ty),I,i,0); + identity(r,retype(l,ty),U,u,0); + if (isaddrop(l->op) + && ((r->op == CNST+I && r->u.v.i <= longtype->u.sym->u.limits.max.i + && r->u.v.i >= longtype->u.sym->u.limits.min.i) + || (r->op == CNST+U && r->u.v.u <= longtype->u.sym->u.limits.max.i))) + return addrtree(l, cast(r, longtype)->u.v.i, ty); + if (l->op == ADD+P && isaddrop(l->kids[1]->op) + && ((r->op == CNST+I && r->u.v.i <= longtype->u.sym->u.limits.max.i + && r->u.v.i >= longtype->u.sym->u.limits.min.i) + || (r->op == CNST+U && r->u.v.u <= longtype->u.sym->u.limits.max.i))) + return simplify(ADD+P, ty, l->kids[0], + addrtree(l->kids[1], cast(r, longtype)->u.v.i, ty)); + if ((l->op == ADD+I || l->op == SUB+I) + && l->kids[1]->op == CNST+I && isaddrop(r->op)) + return simplify(ADD+P, ty, l->kids[0], + simplify(generic(l->op)+P, ty, r, l->kids[1])); + if (l->op == ADD+P && generic(l->kids[1]->op) == CNST + && generic(r->op) == CNST) + return simplify(ADD+P, ty, l->kids[0], + simplify(ADD, l->kids[1]->type, l->kids[1], r)); + if (l->op == ADD+I && generic(l->kids[1]->op) == CNST + && r->op == ADD+P && generic(r->kids[1]->op) == CNST) + return simplify(ADD+P, ty, l->kids[0], + simplify(ADD+P, ty, r->kids[0], + simplify(ADD, r->kids[1]->type, l->kids[1], r->kids[1]))); + if (l->op == RIGHT && l->kids[1]) + return tree(RIGHT, ty, l->kids[0], + simplify(ADD+P, ty, l->kids[1], r)); + else if (l->op == RIGHT && l->kids[0]) + return tree(RIGHT, ty, + simplify(ADD+P, ty, l->kids[0], r), NULL); + break; + + case ADD+F: + xfoldcnst(F,d,+,addd); + commute(r,l); + break; + case AND+I: + op = AND; + ufoldcnst(I,l->u.v.i ? cond(r) : l); /* 0&&r => 0, 1&&r => r */ + break; + case OR+I: + op = OR; + /* 0||r => r, 1||r => 1 */ + ufoldcnst(I,l->u.v.i ? cnsttree(ty, 1L) : cond(r)); + break; + case BCOM+I: + ufoldcnst(I,cnsttree(ty, (long)extend((~l->u.v.i)&ones(8*ty->size), ty))); + idempotent(BCOM+U); + break; + case BCOM+U: + ufoldcnst(U,cnsttree(ty, (unsigned long)((~l->u.v.u)&ones(8*ty->size)))); + idempotent(BCOM+U); + break; + case BOR+U: + foldcnst(U,u,|); + commute(r,l); + identity(r,l,U,u,0); + break; + case BOR+I: + foldcnst(I,i,|); + commute(r,l); + identity(r,l,I,i,0); + break; + case BXOR+U: + foldcnst(U,u,^); + commute(r,l); + identity(r,l,U,u,0); + break; + case BXOR+I: + foldcnst(I,i,^); + commute(r,l); + identity(r,l,I,i,0); + break; + case DIV+F: + xfoldcnst(F,d,/,divd); + break; + case DIV+I: + identity(r,l,I,i,1); + if ((r->op == CNST+I && r->u.v.i == 0) + || (l->op == CNST+I && l->u.v.i == ty->u.sym->u.limits.min.i + && r->op == CNST+I && r->u.v.i == -1)) + break; + xfoldcnst(I,i,/,divi); + break; + case DIV+U: + identity(r,l,U,u,1); + if (r->op == CNST+U && r->u.v.u == 0) + break; + if (r->op == CNST+U && (n = ispow2(r->u.v.u)) != 0) + return simplify(RSH, ty, l, cnsttree(inttype, (long)n)); + foldcnst(U,u,/); + break; + case EQ+F: + cfoldcnst(F,d,==); + commute(r,l); + break; + case EQ+U: + cfoldcnst(U,u,==); + commute(r,l); + zerofield(EQ,U,u); + break; + case GE+F: cfoldcnst(F,d,>=); break; + case GE+I: cfoldcnst(I,i,>=); break; + case GE+U: + geu(l,r,1); /* l >= 0 => (l,1) */ + cfoldcnst(U,u,>=); + if (l->op == CNST+U && l->u.v.u == 0) /* 0 >= r => r == 0 */ + return eqtree(EQ, r, l); + break; + case GT+F: cfoldcnst(F,d, >); break; + case GT+I: cfoldcnst(I,i, >); break; + case GT+U: + geu(r,l,0); /* 0 > r => (r,0) */ + cfoldcnst(U,u, >); + if (r->op == CNST+U && r->u.v.u == 0) /* l > 0 => l != 0 */ + return eqtree(NE, l, r); + break; + case LE+F: cfoldcnst(F,d,<=); break; + case LE+I: cfoldcnst(I,i,<=); break; + case LE+U: + geu(r,l,1); /* 0 <= r => (r,1) */ + cfoldcnst(U,u,<=); + if (r->op == CNST+U && r->u.v.u == 0) /* l <= 0 => l == 0 */ + return eqtree(EQ, l, r); + break; + case LSH+I: + identity(r,l,I,i,0); + if (l->op == CNST+I && r->op == CNST+I + && r->u.v.i >= 0 && r->u.v.i < 8*l->type->size + && muli(l->u.v.i, 1<u.v.i, ty->u.sym->u.limits.min.i, ty->u.sym->u.limits.max.i, needconst)) + return cnsttree(ty, (long)(l->u.v.i<u.v.i)); + if (r->op == CNST+I && (r->u.v.i >= 8*ty->size || r->u.v.i < 0)) { + warning("shifting an `%t' by %d bits is undefined\n", ty, r->u.v.i); + break; + } + + break; + case LSH+U: + identity(r,l,I,i,0); + sfoldcnst(<<); + if (r->op == CNST+I && (r->u.v.i >= 8*ty->size || r->u.v.i < 0)) { + warning("shifting an `%t' by %d bits is undefined\n", ty, r->u.v.i); + break; + } + + break; + + case LT+F: cfoldcnst(F,d, <); break; + case LT+I: cfoldcnst(I,i, <); break; + case LT+U: + geu(l,r,0); /* l < 0 => (l,0) */ + cfoldcnst(U,u, <); + if (l->op == CNST+U && l->u.v.u == 0) /* 0 < r => r != 0 */ + return eqtree(NE, r, l); + break; + case MOD+I: + if (r->op == CNST+I && r->u.v.i == 1) /* l%1 => (l,0) */ + return tree(RIGHT, ty, root(l), cnsttree(ty, 0L)); + if ((r->op == CNST+I && r->u.v.i == 0) + || (l->op == CNST+I && l->u.v.i == ty->u.sym->u.limits.min.i + && r->op == CNST+I && r->u.v.i == -1)) + break; + xfoldcnst(I,i,%,divi); + break; + case MOD+U: + if (r->op == CNST+U && ispow2(r->u.v.u)) /* l%2^n => l&(2^n-1) */ + return bittree(BAND, l, cnsttree(ty, r->u.v.u - 1)); + if (r->op == CNST+U && r->u.v.u == 0) + break; + foldcnst(U,u,%); + break; + case MUL+F: + xfoldcnst(F,d,*,muld); + commute(l,r); + break; + case MUL+I: + commute(l,r); + xfoldcnst(I,i,*,muli); + if (l->op == CNST+I && r->op == ADD+I && r->kids[1]->op == CNST+I) + /* c1*(x + c2) => c1*x + c1*c2 */ + return simplify(ADD, ty, simplify(MUL, ty, l, r->kids[0]), + simplify(MUL, ty, l, r->kids[1])); + if (l->op == CNST+I && r->op == SUB+I && r->kids[1]->op == CNST+I) + /* c1*(x - c2) => c1*x - c1*c2 */ + return simplify(SUB, ty, simplify(MUL, ty, l, r->kids[0]), + simplify(MUL, ty, l, r->kids[1])); + if (l->op == CNST+I && l->u.v.i > 0 && (n = ispow2(l->u.v.i)) != 0) + /* 2^n * r => r<u.v.d)); + idempotent(NEG+F); + break; + case NEG+I: + if (l->op == CNST+I) { + if (needconst && l->u.v.i == ty->u.sym->u.limits.min.i) + warning("overflow in constant expression\n"); + if (needconst || l->u.v.i != ty->u.sym->u.limits.min.i) + return cnsttree(ty, -l->u.v.i); + } + idempotent(NEG+I); + break; + case NOT+I: + op = NOT; + ufoldcnst(I,cnsttree(ty, !l->u.v.i)); + break; + case RSH+I: + identity(r,l,I,i,0); + if (l->op == CNST+I && r->op == CNST+I + && r->u.v.i >= 0 && r->u.v.i < 8*l->type->size) { + long n = l->u.v.i>>r->u.v.i; + if (l->u.v.i < 0) + n |= ~0UL<<(8*l->type->size - r->u.v.i); + return cnsttree(ty, n); + } + if (r->op == CNST+I && (r->u.v.i >= 8*ty->size || r->u.v.i < 0)) { + warning("shifting an `%t' by %d bits is undefined\n", ty, r->u.v.i); + break; + } + + break; + case RSH+U: + identity(r,l,I,i,0); + sfoldcnst(>>); + if (r->op == CNST+I && (r->u.v.i >= 8*ty->size || r->u.v.i < 0)) { + warning("shifting an `%t' by %d bits is undefined\n", ty, r->u.v.i); + break; + } + + break; + case SUB+F: + xfoldcnst(F,d,-,subd); + break; + case SUB+I: + xfoldcnst(I,i,-,subi); + identity(r,l,I,i,0); + break; + case SUB+U: + foldcnst(U,u,-); + identity(r,l,U,u,0); + break; + case SUB+P: + if (l->op == CNST+P && r->op == CNST+P) + return cnsttree(ty, (long)((char *)l->u.v.p - (char *)r->u.v.p)); + if (r->op == CNST+I || r->op == CNST+U) + return simplify(ADD, ty, l, + cnsttree(inttype, r->op == CNST+I ? -r->u.v.i : -(long)r->u.v.u)); + if (isaddrop(l->op) && r->op == ADD+I && r->kids[1]->op == CNST+I) + /* l - (x + c) => l-c - x */ + return simplify(SUB, ty, + simplify(SUB, ty, l, r->kids[1]), r->kids[0]); + break; + default:assert(0); + } + return tree(op, ty, l, r); +} +/* ispow2 - if u > 1 && u == 2^n, return n, otherwise return 0 */ +int ispow2(unsigned long u) { + int n; + + if (u > 1 && (u&(u-1)) == 0) + for (n = 0; u; u >>= 1, n++) + if (u&1) + return n; + return 0; +} + diff --git a/code/tools/lcc/src/sparc.md b/code/tools/lcc/src/sparc.md new file mode 100644 index 0000000..f956d46 --- /dev/null +++ b/code/tools/lcc/src/sparc.md @@ -0,0 +1,1163 @@ +%{ +#include "c.h" +#define NODEPTR_TYPE Node +#define OP_LABEL(p) ((p)->op) +#define LEFT_CHILD(p) ((p)->kids[0]) +#define RIGHT_CHILD(p) ((p)->kids[1]) +#define STATE_LABEL(p) ((p)->x.state) +static void address(Symbol, Symbol, long); +static void blkfetch(int, int, int, int); +static void blkloop(int, int, int, int, int, int[]); +static void blkstore(int, int, int, int); +static void defaddress(Symbol); +static void defconst(int, int, Value); +static void defstring(int, char *); +static void defsymbol(Symbol); +static void doarg(Node); +static void emit2(Node); +static void export(Symbol); +static void clobber(Node); +static void function(Symbol, Symbol [], Symbol [], int); +static void global(Symbol); +static void import(Symbol); +static void local(Symbol); +static void progbeg(int, char **); +static void progend(void); +static void segment(int); +static void space(int); +static void target(Node); +static int imm(Node); +static void renameregs(void); +extern Interface sparcIR, solarisIR; +static void defsymbol2(Symbol); +static void export2(Symbol); +static void globalend(void); +static void global2(Symbol); +static void segment2(int); +static void progend2(void); + +extern char *stabprefix; +extern void stabblock(int, int, Symbol*); +extern void stabend(Coordinate *, Symbol, Coordinate **, Symbol *, Symbol *); +extern void stabfend(Symbol, int); +extern void stabinit(char *, int, char *[]); +extern void stabline(Coordinate *); +extern void stabsym(Symbol); +extern void stabtype(Symbol); +static Symbol greg[32], gregw; +static Symbol *oreg = &greg[8], *ireg = &greg[24]; +static Symbol freg[32], freg2[32]; +static Symbol fregw, freg2w; + +static int regvars; +static int retstruct; + +static int pflag = 0; + +static int cseg; + +%} +%start stmt +%term CNSTF4=4113 +%term CNSTF8=8209 +%term CNSTF16=16401 +%term CNSTI1=1045 +%term CNSTI2=2069 +%term CNSTI4=4117 +%term CNSTI8=8213 +%term CNSTP4=4119 +%term CNSTP8=8215 +%term CNSTU1=1046 +%term CNSTU2=2070 +%term CNSTU4=4118 +%term CNSTU8=8214 + +%term ARGB=41 +%term ARGF4=4129 +%term ARGF8=8225 +%term ARGF16=16417 +%term ARGI4=4133 +%term ARGI8=8229 +%term ARGP4=4135 +%term ARGP8=8231 +%term ARGU4=4134 +%term ARGU8=8230 + +%term ASGNB=57 +%term ASGNF4=4145 +%term ASGNF8=8241 +%term ASGNF16=16433 +%term ASGNI1=1077 +%term ASGNI2=2101 +%term ASGNI4=4149 +%term ASGNI8=8245 +%term ASGNP4=4151 +%term ASGNP8=8247 +%term ASGNU1=1078 +%term ASGNU2=2102 +%term ASGNU4=4150 +%term ASGNU8=8246 + +%term INDIRB=73 +%term INDIRF4=4161 +%term INDIRF8=8257 +%term INDIRF16=16449 +%term INDIRI1=1093 +%term INDIRI2=2117 +%term INDIRI4=4165 +%term INDIRI8=8261 +%term INDIRP4=4167 +%term INDIRP8=8263 +%term INDIRU1=1094 +%term INDIRU2=2118 +%term INDIRU4=4166 +%term INDIRU8=8262 + +%term CVFF4=4209 +%term CVFF8=8305 +%term CVFF16=16497 +%term CVFI4=4213 +%term CVFI8=8309 + +%term CVIF4=4225 +%term CVIF8=8321 +%term CVIF16=16513 +%term CVII1=1157 +%term CVII2=2181 +%term CVII4=4229 +%term CVII8=8325 +%term CVIU1=1158 +%term CVIU2=2182 +%term CVIU4=4230 +%term CVIU8=8326 + +%term CVPP4=4247 +%term CVPP8=8343 +%term CVPP16=16535 +%term CVPU4=4246 +%term CVPU8=8342 + +%term CVUI1=1205 +%term CVUI2=2229 +%term CVUI4=4277 +%term CVUI8=8373 +%term CVUP4=4279 +%term CVUP8=8375 +%term CVUP16=16567 +%term CVUU1=1206 +%term CVUU2=2230 +%term CVUU4=4278 +%term CVUU8=8374 + +%term NEGF4=4289 +%term NEGF8=8385 +%term NEGF16=16577 +%term NEGI4=4293 +%term NEGI8=8389 + +%term CALLB=217 +%term CALLF4=4305 +%term CALLF8=8401 +%term CALLF16=16593 +%term CALLI4=4309 +%term CALLI8=8405 +%term CALLP4=4311 +%term CALLP8=8407 +%term CALLU4=4310 +%term CALLU8=8406 +%term CALLV=216 + +%term RETF4=4337 +%term RETF8=8433 +%term RETF16=16625 +%term RETI4=4341 +%term RETI8=8437 +%term RETP4=4343 +%term RETP8=8439 +%term RETU4=4342 +%term RETU8=8438 +%term RETV=248 + +%term ADDRGP4=4359 +%term ADDRGP8=8455 + +%term ADDRFP4=4375 +%term ADDRFP8=8471 + +%term ADDRLP4=4391 +%term ADDRLP8=8487 + +%term ADDF4=4401 +%term ADDF8=8497 +%term ADDF16=16689 +%term ADDI4=4405 +%term ADDI8=8501 +%term ADDP4=4407 +%term ADDP8=8503 +%term ADDU4=4406 +%term ADDU8=8502 + +%term SUBF4=4417 +%term SUBF8=8513 +%term SUBF16=16705 +%term SUBI4=4421 +%term SUBI8=8517 +%term SUBP4=4423 +%term SUBP8=8519 +%term SUBU4=4422 +%term SUBU8=8518 + +%term LSHI4=4437 +%term LSHI8=8533 +%term LSHU4=4438 +%term LSHU8=8534 + +%term MODI4=4453 +%term MODI8=8549 +%term MODU4=4454 +%term MODU8=8550 + +%term RSHI4=4469 +%term RSHI8=8565 +%term RSHU4=4470 +%term RSHU8=8566 + +%term BANDI4=4485 +%term BANDI8=8581 +%term BANDU4=4486 +%term BANDU8=8582 + +%term BCOMI4=4501 +%term BCOMI8=8597 +%term BCOMU4=4502 +%term BCOMU8=8598 + +%term BORI4=4517 +%term BORI8=8613 +%term BORU4=4518 +%term BORU8=8614 + +%term BXORI4=4533 +%term BXORI8=8629 +%term BXORU4=4534 +%term BXORU8=8630 + +%term DIVF4=4545 +%term DIVF8=8641 +%term DIVF16=16833 +%term DIVI4=4549 +%term DIVI8=8645 +%term DIVU4=4550 +%term DIVU8=8646 + +%term MULF4=4561 +%term MULF8=8657 +%term MULF16=16849 +%term MULI4=4565 +%term MULI8=8661 +%term MULU4=4566 +%term MULU8=8662 + +%term EQF4=4577 +%term EQF8=8673 +%term EQF16=16865 +%term EQI4=4581 +%term EQI8=8677 +%term EQU4=4582 +%term EQU8=8678 + +%term GEF4=4593 +%term GEF8=8689 +%term GEI4=4597 +%term GEI8=8693 +%term GEI16=16885 +%term GEU4=4598 +%term GEU8=8694 + +%term GTF4=4609 +%term GTF8=8705 +%term GTF16=16897 +%term GTI4=4613 +%term GTI8=8709 +%term GTU4=4614 +%term GTU8=8710 + +%term LEF4=4625 +%term LEF8=8721 +%term LEF16=16913 +%term LEI4=4629 +%term LEI8=8725 +%term LEU4=4630 +%term LEU8=8726 + +%term LTF4=4641 +%term LTF8=8737 +%term LTF16=16929 +%term LTI4=4645 +%term LTI8=8741 +%term LTU4=4646 +%term LTU8=8742 + +%term NEF4=4657 +%term NEF8=8753 +%term NEF16=16945 +%term NEI4=4661 +%term NEI8=8757 +%term NEU4=4662 +%term NEU8=8758 + +%term JUMPV=584 + +%term LABELV=600 + +%term LOADB=233 +%term LOADF4=4321 +%term LOADF8=8417 +%term LOADF16=16609 +%term LOADI1=1253 +%term LOADI2=2277 +%term LOADI4=4325 +%term LOADI8=8421 +%term LOADP4=4327 +%term LOADP8=8423 +%term LOADU1=1254 +%term LOADU2=2278 +%term LOADU4=4326 +%term LOADU8=8422 + +%term VREGP=711 +%% +reg: INDIRI1(VREGP) "# read register\n" +reg: INDIRU1(VREGP) "# read register\n" + +reg: INDIRI2(VREGP) "# read register\n" +reg: INDIRU2(VREGP) "# read register\n" + +reg: INDIRF4(VREGP) "# read register\n" +reg: INDIRI4(VREGP) "# read register\n" +reg: INDIRP4(VREGP) "# read register\n" +reg: INDIRU4(VREGP) "# read register\n" + +reg: INDIRF8(VREGP) "# read register\n" +reg: INDIRI8(VREGP) "# read register\n" +reg: INDIRP8(VREGP) "# read register\n" +reg: INDIRU8(VREGP) "# read register\n" + +stmt: ASGNI1(VREGP,reg) "# write register\n" +stmt: ASGNU1(VREGP,reg) "# write register\n" + +stmt: ASGNI2(VREGP,reg) "# write register\n" +stmt: ASGNU2(VREGP,reg) "# write register\n" + +stmt: ASGNF4(VREGP,reg) "# write register\n" +stmt: ASGNI4(VREGP,reg) "# write register\n" +stmt: ASGNP4(VREGP,reg) "# write register\n" +stmt: ASGNU4(VREGP,reg) "# write register\n" + +stmt: ASGNF8(VREGP,reg) "# write register\n" +stmt: ASGNI8(VREGP,reg) "# write register\n" +stmt: ASGNP8(VREGP,reg) "# write register\n" +stmt: ASGNU8(VREGP,reg) "# write register\n" +con: CNSTI1 "%a" +con: CNSTU1 "%a" + +con: CNSTI2 "%a" +con: CNSTU2 "%a" + +con: CNSTI4 "%a" +con: CNSTU4 "%a" +con: CNSTP4 "%a" + +con: CNSTI8 "%a" +con: CNSTU8 "%a" +con: CNSTP8 "%a" +stmt: reg "" +reg: ADDRGP4 "set %a,%%%c\n" 1 +stk13: ADDRFP4 "%a" imm(a) +stk13: ADDRLP4 "%a" imm(a) +reg: stk13 "add %0,%%fp,%%%c\n" 1 +stk: ADDRFP4 "set %a,%%%c\n" 2 +stk: ADDRLP4 "set %a,%%%c\n" 2 +reg: ADDRFP4 "set %a,%%%c\nadd %%%c,%%fp,%%%c\n" 3 +reg: ADDRLP4 "set %a,%%%c\nadd %%%c,%%fp,%%%c\n" 3 +con13: CNSTI1 "%a" imm(a) +con13: CNSTI2 "%a" imm(a) +con13: CNSTI4 "%a" imm(a) +con13: CNSTU1 "%a" imm(a) +con13: CNSTU2 "%a" imm(a) +con13: CNSTU4 "%a" imm(a) +con13: CNSTP4 "%a" imm(a) +base: ADDI4(reg,con13) "%%%0+%1" +base: ADDP4(reg,con13) "%%%0+%1" +base: ADDU4(reg,con13) "%%%0+%1" +base: reg "%%%0" +base: con13 "%0" +base: stk13 "%%fp+%0" +addr: base "%0" +addr: ADDI4(reg,reg) "%%%0+%%%1" +addr: ADDP4(reg,reg) "%%%0+%%%1" +addr: ADDU4(reg,reg) "%%%0+%%%1" +addr: stk "%%fp+%%%0" +reg: INDIRI1(addr) "ldsb [%0],%%%c\n" 1 +reg: INDIRI2(addr) "ldsh [%0],%%%c\n" 1 +reg: INDIRI4(addr) "ld [%0],%%%c\n" 1 +reg: INDIRU1(addr) "ldub [%0],%%%c\n" 1 +reg: INDIRU2(addr) "lduh [%0],%%%c\n" 1 +reg: INDIRU4(addr) "ld [%0],%%%c\n" 1 +reg: INDIRP4(addr) "ld [%0],%%%c\n" 1 +reg: INDIRF4(addr) "ld [%0],%%f%c\n" 1 +stmt: ASGNI1(addr,reg) "stb %%%1,[%0]\n" 1 +stmt: ASGNI2(addr,reg) "sth %%%1,[%0]\n" 1 +stmt: ASGNI4(addr,reg) "st %%%1,[%0]\n" 1 +stmt: ASGNU1(addr,reg) "stb %%%1,[%0]\n" 1 +stmt: ASGNU2(addr,reg) "sth %%%1,[%0]\n" 1 +stmt: ASGNU4(addr,reg) "st %%%1,[%0]\n" 1 +stmt: ASGNP4(addr,reg) "st %%%1,[%0]\n" 1 +stmt: ASGNF4(addr,reg) "st %%f%1,[%0]\n" 1 +addrl: ADDRLP4 "%%%fp+%a" imm(a) + +reg: INDIRF8(addrl) "ldd [%0],%%f%c\n" 1 +stmt: ASGNF8(addrl,reg) "std %%f%1,[%0]\n" 1 +reg: INDIRF8(base) "ld2 [%0],%%f%c\n" 2 +stmt: ASGNF8(base,reg) "st2 %%f%1,[%0]\n" 2 +spill: ADDRLP4 "%a" !imm(a) + +stmt: ASGNI1(spill,reg) "set %0,%%g1\nstb %%%1,[%%fp+%%g1]\n" +stmt: ASGNI2(spill,reg) "set %0,%%g1\nsth %%%1,[%%fp+%%g1]\n" +stmt: ASGNI4(spill,reg) "set %0,%%g1\nst %%%1,[%%fp+%%g1]\n" +stmt: ASGNU1(spill,reg) "set %0,%%g1\nstb %%%1,[%%fp+%%g1]\n" +stmt: ASGNU2(spill,reg) "set %0,%%g1\nsth %%%1,[%%fp+%%g1]\n" +stmt: ASGNU4(spill,reg) "set %0,%%g1\nst %%%1,[%%fp+%%g1]\n" +stmt: ASGNP4(spill,reg) "set %0,%%g1\nst %%%1,[%%fp+%%g1]\n" +stmt: ASGNF4(spill,reg) "set %0,%%g1\nst %%f%1,[%%fp+%%g1]\n" +stmt: ASGNF8(spill,reg) "set %0,%%g1\nstd %%f%1,[%%fp+%%g1]\n" +reg: CVII4(INDIRI1(addr)) "ldsb [%0],%%%c\n" 1 +reg: CVII4(INDIRI2(addr)) "ldsh [%0],%%%c\n" 1 +reg: CVUU4(INDIRU1(addr)) "ldub [%0],%%%c\n" 1 +reg: CVUU4(INDIRU2(addr)) "lduh [%0],%%%c\n" 1 +reg: CVUI4(INDIRU1(addr)) "ldub [%0],%%%c\n" 1 +reg: CVUI4(INDIRU2(addr)) "lduh [%0],%%%c\n" 1 +reg: LOADI1(reg) "mov %%%0,%%%c\n" move(a) +reg: LOADI2(reg) "mov %%%0,%%%c\n" move(a) +reg: LOADI4(reg) "mov %%%0,%%%c\n" move(a) +reg: LOADP4(reg) "mov %%%0,%%%c\n" move(a) +reg: LOADU1(reg) "mov %%%0,%%%c\n" move(a) +reg: LOADU2(reg) "mov %%%0,%%%c\n" move(a) +reg: LOADU4(reg) "mov %%%0,%%%c\n" move(a) +reg: CNSTI1 "# reg\n" range(a, 0, 0) +reg: CNSTI2 "# reg\n" range(a, 0, 0) +reg: CNSTI4 "# reg\n" range(a, 0, 0) +reg: CNSTP4 "# reg\n" range(a, 0, 0) +reg: CNSTU1 "# reg\n" range(a, 0, 0) +reg: CNSTU2 "# reg\n" range(a, 0, 0) +reg: CNSTU4 "# reg\n" range(a, 0, 0) +reg: con "set %0,%%%c\n" 1 +rc: con13 "%0" +rc: reg "%%%0" +reg: ADDI4(reg,rc) "add %%%0,%1,%%%c\n" 1 +reg: ADDP4(reg,rc) "add %%%0,%1,%%%c\n" 1 +reg: ADDU4(reg,rc) "add %%%0,%1,%%%c\n" 1 +reg: BANDI4(reg,rc) "and %%%0,%1,%%%c\n" 1 +reg: BORI4(reg,rc) "or %%%0,%1,%%%c\n" 1 +reg: BXORI4(reg,rc) "xor %%%0,%1,%%%c\n" 1 +reg: BANDU4(reg,rc) "and %%%0,%1,%%%c\n" 1 +reg: BORU4(reg,rc) "or %%%0,%1,%%%c\n" 1 +reg: BXORU4(reg,rc) "xor %%%0,%1,%%%c\n" 1 +reg: SUBI4(reg,rc) "sub %%%0,%1,%%%c\n" 1 +reg: SUBP4(reg,rc) "sub %%%0,%1,%%%c\n" 1 +reg: SUBU4(reg,rc) "sub %%%0,%1,%%%c\n" 1 +rc5: CNSTI4 "%a" range(a, 0, 31) +rc5: reg "%%%0" +reg: LSHI4(reg,rc5) "sll %%%0,%1,%%%c\n" 1 +reg: LSHU4(reg,rc5) "sll %%%0,%1,%%%c\n" 1 +reg: RSHI4(reg,rc5) "sra %%%0,%1,%%%c\n" 1 +reg: RSHU4(reg,rc5) "srl %%%0,%1,%%%c\n" 1 +reg: BANDI4(reg,BCOMI4(rc)) "andn %%%0,%1,%%%c\n" 1 +reg: BORI4(reg,BCOMI4(rc)) "orn %%%0,%1,%%%c\n" 1 +reg: BXORI4(reg,BCOMI4(rc)) "xnor %%%0,%1,%%%c\n" 1 +reg: BANDU4(reg,BCOMU4(rc)) "andn %%%0,%1,%%%c\n" 1 +reg: BORU4(reg,BCOMU4(rc)) "orn %%%0,%1,%%%c\n" 1 +reg: BXORU4(reg,BCOMU4(rc)) "xnor %%%0,%1,%%%c\n" 1 +reg: NEGI4(reg) "neg %%%0,%%%c\n" 1 +reg: BCOMI4(reg) "not %%%0,%%%c\n" 1 +reg: BCOMU4(reg) "not %%%0,%%%c\n" 1 +reg: CVII4(reg) "sll %%%0,8*(4-%a),%%%c; sra %%%c,8*(4-%a),%%%c\n" 2 +reg: CVUU4(reg) "sll %%%0,8*(4-%a),%%%c; srl %%%c,8*(4-%a),%%%c\n" 2 +reg: CVUU4(reg) "and %%%0,0xff,%%%c\n" (a->syms[0]->u.c.v.i == 1 ? 1 : LBURG_MAX) +reg: CVUU4(reg) "set 0xffff,%%g1; and %%%0,%%g1,%%%c\n" 2 +reg: CVUI4(reg) "and %%%0,0xff,%%%c\n" (a->syms[0]->u.c.v.i == 1 ? 1 : LBURG_MAX) +reg: CVUI4(reg) "set 0xffff,%%g1; and %%%0,%%g1,%%%c\n" 2 +addrg: ADDRGP4 "%a" +stmt: JUMPV(addrg) "ba %0; nop\n" 2 +stmt: JUMPV(addr) "jmp %0; nop\n" 2 +stmt: LABELV "%a:\n" +stmt: EQI4(reg,rc) "cmp %%%0,%1; be %a; nop\n" 3 +stmt: EQU4(reg,rc) "cmp %%%0,%1; be %a; nop\n" 3 +stmt: GEI4(reg,rc) "cmp %%%0,%1; bge %a; nop\n" 3 +stmt: GEU4(reg,rc) "cmp %%%0,%1; bgeu %a; nop\n" 3 +stmt: GTI4(reg,rc) "cmp %%%0,%1; bg %a; nop\n" 3 +stmt: GTU4(reg,rc) "cmp %%%0,%1; bgu %a; nop\n" 3 +stmt: LEI4(reg,rc) "cmp %%%0,%1; ble %a; nop\n" 3 +stmt: LEU4(reg,rc) "cmp %%%0,%1; bleu %a; nop\n" 3 +stmt: LTI4(reg,rc) "cmp %%%0,%1; bl %a; nop\n" 3 +stmt: LTU4(reg,rc) "cmp %%%0,%1; blu %a; nop\n" 3 +stmt: NEI4(reg,rc) "cmp %%%0,%1; bne %a; nop\n" 3 +stmt: NEU4(reg,rc) "cmp %%%0,%1; bne %a; nop\n" 3 +call: ADDRGP4 "%a" +call: addr "%0" +reg: CALLF8(call) "call %0; nop\n" 2 +reg: CALLF4(call) "call %0; nop\n" 2 +reg: CALLI4(call) "call %0; nop\n" 2 +reg: CALLP4(call) "call %0; nop\n" 2 +reg: CALLU4(call) "call %0; nop\n" 2 +stmt: CALLV(call) "call %0; nop\n" 2 +stmt: CALLB(call,reg) "call %0; st %%%1,[%%sp+64]; unimp %b&0xfff\n" 3 + +stmt: RETF8(reg) "# ret\n" 1 +stmt: RETF4(reg) "# ret\n" 1 +stmt: RETI4(reg) "# ret\n" 1 +stmt: RETU4(reg) "# ret\n" 1 +stmt: RETP4(reg) "# ret\n" 1 +stmt: ARGI4(reg) "st %%%0,[%%sp+4*%c+68]\n" 1 +stmt: ARGU4(reg) "st %%%0,[%%sp+4*%c+68]\n" 1 +stmt: ARGP4(reg) "st %%%0,[%%sp+4*%c+68]\n" 1 +stmt: ARGF4(reg) "# ARGF4\n" 1 +stmt: ARGF8(reg) "# ARGF8\n" 1 + +reg: DIVI4(reg,rc) "sra %%%0,31,%%g1; wr %%g0,%%g1,%%y; nop; nop; nop; sdiv %%%0,%1,%%%c\n" 6 + +reg: DIVU4(reg,rc) "wr %%g0,%%g0,%%y; nop; nop; nop; udiv %%%0,%1,%%%c\n" 5 + +reg: MODI4(reg,rc) "sra %%%0,31,%%g1; wr %%g0,%%g1,%%y; nop; nop; nop; sdiv %%%0,%1,%%g1\n; smul %%g1,%1,%%g1; sub %%%0,%%g1,%%%c\n" 8 + + +reg: MODU4(reg,rc) "wr %%g0,%%g0,%%y; nop; nop; nop; udiv %%%0,%1,%%g1\n; umul %%g1,%1,%%g1; sub %%%0,%%g1,%%%c\n" 7 + + +reg: MULI4(rc,reg) "smul %%%1,%0,%%%c\n" 1 +reg: MULU4(rc,reg) "umul %%%1,%0,%%%c\n" 1 +reg: ADDF8(reg,reg) "faddd %%f%0,%%f%1,%%f%c\n" 1 +reg: ADDF4(reg,reg) "fadds %%f%0,%%f%1,%%f%c\n" 1 +reg: DIVF8(reg,reg) "fdivd %%f%0,%%f%1,%%f%c\n" 1 +reg: DIVF4(reg,reg) "fdivs %%f%0,%%f%1,%%f%c\n" 1 +reg: MULF8(reg,reg) "fmuld %%f%0,%%f%1,%%f%c\n" 1 +reg: MULF4(reg,reg) "fmuls %%f%0,%%f%1,%%f%c\n" 1 +reg: SUBF8(reg,reg) "fsubd %%f%0,%%f%1,%%f%c\n" 1 +reg: SUBF4(reg,reg) "fsubs %%f%0,%%f%1,%%f%c\n" 1 +reg: NEGF4(reg) "fnegs %%f%0,%%f%c\n" 1 +reg: LOADF4(reg) "fmovs %%f%0,%%f%c\n" 1 +reg: CVFF4(reg) "fdtos %%f%0,%%f%c\n" 1 +reg: CVFF8(reg) "fstod %%f%0,%%f%c\n" 1 +reg: CVFI4(reg) "fstoi %%f%0,%%f0; st %%f0,[%%sp+64]; ld [%%sp+64],%%%c\n" (a->syms[0]->u.c.v.i==4?3:LBURG_MAX) + +reg: CVFI4(reg) "fdtoi %%f%0,%%f0; st %%f0,[%%sp+64]; ld [%%sp+64],%%%c\n" (a->syms[0]->u.c.v.i==8?3:LBURG_MAX) + +reg: CVIF4(reg) "st %%%0,[%%sp+64]; ld [%%sp+64],%%f%c; fitos %%f%c,%%f%c\n" 3 + +reg: CVIF8(reg) "st %%%0,[%%sp+64]; ld [%%sp+64],%%f%c; fitod %%f%c,%%f%c\n" 3 + +rel: EQF8(reg,reg) "fcmped %%f%0,%%f%1; nop; fbue" +rel: EQF4(reg,reg) "fcmpes %%f%0,%%f%1; nop; fbue" +rel: GEF8(reg,reg) "fcmped %%f%0,%%f%1; nop; fbuge" +rel: GEF4(reg,reg) "fcmpes %%f%0,%%f%1; nop; fbuge" +rel: GTF8(reg,reg) "fcmped %%f%0,%%f%1; nop; fbug" +rel: GTF4(reg,reg) "fcmpes %%f%0,%%f%1; nop; fbug" +rel: LEF8(reg,reg) "fcmped %%f%0,%%f%1; nop; fbule" +rel: LEF4(reg,reg) "fcmpes %%f%0,%%f%1; nop; fbule" +rel: LTF8(reg,reg) "fcmped %%f%0,%%f%1; nop; fbul" +rel: LTF4(reg,reg) "fcmpes %%f%0,%%f%1; nop; fbul" +rel: NEF8(reg,reg) "fcmped %%f%0,%%f%1; nop; fbne" +rel: NEF4(reg,reg) "fcmpes %%f%0,%%f%1; nop; fbne" + +stmt: rel "%0 %a; nop\n" 4 +reg: LOADF8(reg) "# LOADD\n" 2 + +reg: NEGF8(reg) "# NEGD\n" 2 + +stmt: ASGNB(reg,INDIRB(reg)) "# ASGNB\n" + +%% +static void progend(void){} +static void progbeg(int argc, char *argv[]) { + int i; + + { + union { + char c; + int i; + } u; + u.i = 0; + u.c = 1; + swap = ((int)(u.i == 1)) != IR->little_endian; + } + parseflags(argc, argv); + for (i = 0; i < argc; i++) + if (strcmp(argv[i], "-p") == 0 || strcmp(argv[i], "-pg") == 0) + pflag = 1; + if (IR == &solarisIR) + stabprefix = ".LL"; + else + stabprefix = "L"; + for (i = 0; i < 8; i++) { + greg[i + 0] = mkreg(stringf("g%d", i), i + 0, 1, IREG); + greg[i + 8] = mkreg(stringf("o%d", i), i + 8, 1, IREG); + greg[i + 16] = mkreg(stringf("l%d", i), i + 16, 1, IREG); + greg[i + 24] = mkreg(stringf("i%d", i), i + 24, 1, IREG); + } + gregw = mkwildcard(greg); + for (i = 0; i < 32; i++) + freg[i] = mkreg("%d", i, 1, FREG); + for (i = 0; i < 31; i += 2) + freg2[i] = mkreg("%d", i, 3, FREG); + fregw = mkwildcard(freg); + freg2w = mkwildcard(freg2); + tmask[IREG] = 0x3fff3e00; + vmask[IREG] = 0x3ff00000; + tmask[FREG] = ~(unsigned)0; + vmask[FREG] = 0; +} +static Symbol rmap(int opk) { + switch (optype(opk)) { + case I: case U: case P: case B: + return gregw; + case F: + return opsize(opk) == 4 ? fregw : freg2w; + default: + return 0; + } +} +static void target(Node p) { + assert(p); + switch (specific(p->op)) { + case CNST+I: case CNST+U: case CNST+P: + if (range(p, 0, 0) == 0) { + setreg(p, greg[0]); + p->x.registered = 1; + } + break; + case CALL+B: + assert(p->syms[1] && p->syms[1]->type && isfunc(p->syms[1]->type)); + p->syms[1] = intconst(freturn(p->syms[1]->type)->size); + break; + case CALL+F: setreg(p, opsize(p->op)==4?freg[0]:freg2[0]); break; + case CALL+I: case CALL+P: case CALL+U: + case CALL+V: setreg(p, oreg[0]); break; + case RET+F: rtarget(p, 0, opsize(p->op)==4?freg[0]:freg2[0]); break; + case RET+I: case RET+P: case RET+U: + rtarget(p, 0, ireg[0]); + p->kids[0]->x.registered = 1; + break; + case ARG+I: case ARG+P: case ARG+U: + if (p->syms[RX]->u.c.v.i < 6) { + rtarget(p, 0, oreg[p->syms[RX]->u.c.v.i]); + p->op = LOAD+opkind(p->op); + setreg(p, oreg[p->syms[RX]->u.c.v.i]); + } + break; + } +} +static void clobber(Node p) { + assert(p); + switch (specific(p->op)) { + case CALL+B: case CALL+F: case CALL+I: + spill(~(unsigned)3, FREG, p); + break; + case CALL+V: + spill(oreg[0]->x.regnode->mask, IREG, p); + spill(~(unsigned)3, FREG, p); + break; + case ARG+F: + if (opsize(p->op) == 4 && p->syms[2]->u.c.v.i <= 6) + spill((1<<(p->syms[2]->u.c.v.i + 8)), IREG, p); + else if (opsize(p->op) == 8 && p->syms[2]->u.c.v.i <= 5) + spill((3<<(p->syms[2]->u.c.v.i + 8))&0xff00, IREG, p); + break; + } +} +static int imm(Node p) { + return range(p, -4096, 4091); +} +static void doarg(Node p) { + assert(p && p->syms[0] && p->op != ARG+B); + p->syms[RX] = intconst(mkactual(4, + p->syms[0]->u.c.v.i)/4); +} +static void emit2(Node p) { + switch (p->op) { + case ARG+F+sizeop(4): { + int n = p->syms[RX]->u.c.v.i; + print("st %%f%d,[%%sp+4*%d+68]\n", + getregnum(p->x.kids[0]), n); + if (n <= 5) + print("ld [%%sp+4*%d+68],%%o%d\n", n, n); + break; + } + case ARG+F+sizeop(8): { + int n = p->syms[RX]->u.c.v.i; + int src = getregnum(p->x.kids[0]); + print("st %%f%d,[%%sp+4*%d+68]\n", src, n); + print("st %%f%d,[%%sp+4*%d+68]\n", src+1, n+1); + if (n <= 5) + print("ld [%%sp+4*%d+68],%%o%d\n", n, n); + if (n <= 4) + print("ld [%%sp+4*%d+68],%%o%d\n", n+1, n+1); + break; + } + case LOAD+F+sizeop(8): { + int dst = getregnum(p); + int src = getregnum(p->x.kids[0]); + print("fmovs %%f%d,%%f%d; ", src, dst); + print("fmovs %%f%d,%%f%d\n", src+1, dst+1); + break; + } + case NEG+F+sizeop(8): { + int dst = getregnum(p); + int src = getregnum(p->x.kids[0]); + print("fnegs %%f%d,%%f%d; ", src, dst); + print("fmovs %%f%d,%%f%d\n", src+1, dst+1); + break; + } + case ASGN+B: { + static int tmpregs[] = { 1, 2, 3 }; + dalign = salign = p->syms[1]->u.c.v.i; + blkcopy(getregnum(p->x.kids[0]), 0, + getregnum(p->x.kids[1]), 0, + p->syms[0]->u.c.v.i, tmpregs); + break; + } + } +} +static void local(Symbol p) { + if (retstruct) { + assert(p == retv); + p->x.name = stringd(4*16); + p->x.offset = 4*16; + p->sclass = AUTO; + retstruct = 0; + return; + } + if (isscalar(p->type) && !p->addressed && !isfloat(p->type)) + p->sclass = REGISTER; + if (askregvar(p, rmap(ttob(p->type))) == 0) + mkauto(p); + else if (p->scope > LOCAL) + regvars++; +} +static void function(Symbol f, Symbol caller[], Symbol callee[], int ncalls) { + int autos = 0, i, leaf, reg, varargs; + + if (IR == &solarisIR) + globalend(); + regvars = 0; + for (i = 0; callee[i]; i++) + ; + varargs = variadic(f->type) + || i > 0 && strcmp(callee[i-1]->name, + "__builtin_va_alist") == 0; + usedmask[0] = usedmask[1] = 0; + freemask[0] = freemask[1] = ~(unsigned)0; + for (i = 0; i < 8; i++) + ireg[i]->x.regnode->vbl = NULL; + offset = 68; + maxargoffset = 24; + reg = 0; + for (i = 0; callee[i]; i++) { + Symbol p = callee[i], q = caller[i]; + int size = roundup(q->type->size, 4); + assert(q); + if (isfloat(p->type) || reg >= 6) { + p->x.offset = q->x.offset = offset; + p->x.name = q->x.name = stringd(offset); + p->sclass = q->sclass = AUTO; + autos++; + } + else if (p->addressed || varargs) { + p->x.offset = offset; + p->x.name = stringd(p->x.offset); + p->sclass = AUTO; + q->sclass = REGISTER; + askregvar(q, ireg[reg]); + assert(q->x.regnode); + autos++; + } + else { + p->sclass = q->sclass = REGISTER; + askregvar(p, ireg[reg]); + assert(p->x.regnode); + q->x.name = p->x.name; + } + offset += size; + reg += isstruct(p->type) ? 1 : size/4; + } + assert(caller[i] == 0); + offset = maxoffset = 0; + retstruct = isstruct(freturn(f->type)); + gencode(caller, callee); + maxargoffset = roundup(maxargoffset, 4); + framesize = roundup(maxoffset + maxargoffset + 4*(16+1), 8); + assert(!varargs || autos); + leaf = (!ncalls + && !maxoffset && !autos && !regvars + && !isstruct(freturn(f->type)) + && !(usedmask[IREG]&0x00ffff01) + && !(usedmask[FREG]&~(unsigned)3) + && !pflag && !glevel); + print(".align 4\n%s:\n", f->x.name); + if (leaf) { + for (i = 0; caller[i] && callee[i]; i++) { + Symbol p = caller[i], q = callee[i]; + if (p->sclass == REGISTER && q->sclass == REGISTER) { + assert(q->x.regnode); + assert(q->x.regnode->set == IREG); + assert(q->x.regnode->number >= 24); + assert(q->x.regnode->number <= 31); + p->x.name = greg[q->x.regnode->number - 16]->x.name; + } + } + renameregs(); + } else if (framesize <= 4095) + print("save %%sp,%d,%%sp\n", -framesize); + else + print("set %d,%%g1; save %%sp,%%g1,%%sp\n", -framesize); + if (varargs) + for (; reg < 6; reg++) + print("st %%i%d,[%%fp+%d]\n", reg, 4*reg + 68); + else { + offset = 4*(16 + 1); + reg = 0; + for (i = 0; caller[i]; i++) { + Symbol p = caller[i]; + if (isfloat(p->type) && p->type->size == 8 && reg <= 4) { + print("st %%r%d,[%%fp+%d]\n", + ireg[reg++]->x.regnode->number, offset); + print("st %%r%d,[%%fp+%d]\n", + ireg[reg++]->x.regnode->number, offset + 4); + } else if (isfloat(p->type) && p->type->size == 4 && reg <= 5) + print("st %%r%d,[%%fp+%d]\n", + ireg[reg++]->x.regnode->number, offset); + else + reg++; + offset += roundup(p->type->size, 4); + } + } + if (pflag) { + int lab = genlabel(1); + print("set L%d,%%o0; call mcount; nop\n", lab); + print(".seg \"data\"\n.align 4; L%d:.word 0\n.seg \"text\"\n", lab); + } + emitcode(); + if (isstruct(freturn(f->type))) + print("jmp %%i7+12; restore\n"); + else if (!leaf) + print("ret; restore\n"); + else { + renameregs(); + print("retl; nop\n"); + } + if (IR == &solarisIR) { + print(".type %s,#function\n", f->x.name); + print(".size %s,.-%s\n", f->x.name, f->x.name); + } +} +#define exch(x, y, t) (((t) = x), ((x) = (y)), ((y) = (t))) + +static void renameregs(void) { + int i; + + for (i = 0; i < 8; i++) { + char *ptmp; + int itmp; + if (ireg[i]->x.regnode->vbl) + ireg[i]->x.regnode->vbl->x.name = oreg[i]->x.name; + exch(ireg[i]->x.name, oreg[i]->x.name, ptmp); + exch(ireg[i]->x.regnode->number, + oreg[i]->x.regnode->number, itmp); + } +} +static void defconst(int suffix, int size, Value v) { + if (suffix == F && size == 4) { + float f = v.d; + print(".word 0x%x\n", *(unsigned *)&f); + } else if (suffix == F && size == 8) { + double d = v.d; + unsigned *p = (unsigned *)&d; + print(".word 0x%x\n.word 0x%x\n", p[swap], p[!swap]); + } else if (suffix == P) + print(".word 0x%x\n", v.p); + else if (size == 1) + print(".byte 0x%x\n", suffix == I ? v.i : v.u); + else if (size == 2) + print(".half 0x%x\n", suffix == I ? v.i : v.u); + else if (size == 4) + print(".word 0x%x\n", suffix == I ? v.i : v.u); + else assert(0); +} + +static void defaddress(Symbol p) { + print(".word %s\n", p->x.name); +} + +static void defstring(int n, char *str) { + char *s; + + for (s = str; s < str + n; s++) + print(".byte %d\n", (*s)&0377); +} + +static void address(Symbol q, Symbol p, long n) { + if (p->scope == GLOBAL || p->sclass == STATIC || p->sclass == EXTERN) + q->x.name = stringf("%s%s%D", p->x.name, n >= 0 ? "+" : "", n); + else { + assert(n <= INT_MAX && n >= INT_MIN); + q->x.offset = p->x.offset + n; + q->x.name = stringd(q->x.offset); + } +} +static void export(Symbol p) { + print(".global %s\n", p->x.name); +} +static void import(Symbol p) {} +static void defsymbol(Symbol p) { + if (p->scope >= LOCAL && p->sclass == STATIC) + p->x.name = stringf("%d", genlabel(1)); + else + assert(p->scope != CONSTANTS || isint(p->type) || isptr(p->type)), + p->x.name = p->name; + if (p->scope >= LABELS) + p->x.name = stringf(p->generated ? "L%s" : "_%s", + p->x.name); +} +static void segment(int n) { + cseg = n; + switch (n) { + case CODE: print(".seg \"text\"\n"); break; + case BSS: print(".seg \"bss\"\n"); break; + case DATA: print(".seg \"data\"\n"); break; + case LIT: print(".seg \"text\"\n"); break; + } +} +static void space(int n) { + if (cseg != BSS) + print(".skip %d\n", n); +} +static void global(Symbol p) { + print(".align %d\n", p->type->align); + assert(p->u.seg); + if (p->u.seg == BSS + && (p->sclass == STATIC || Aflag >= 2)) + print(".reserve %s,%d\n", p->x.name, p->type->size); + else if (p->u.seg == BSS) + print(".common %s,%d\n", p->x.name, p->type->size); + else + print("%s:\n", p->x.name); +} +static void blkfetch(int k, int off, int reg, int tmp) { + assert(k == 1 || k == 2 || k == 4); + assert(salign >= k); + if (k == 1) + print("ldub [%%r%d+%d],%%r%d\n", reg, off, tmp); + else if (k == 2) + print("lduh [%%r%d+%d],%%r%d\n", reg, off, tmp); + else + print("ld [%%r%d+%d],%%r%d\n", reg, off, tmp); +} +static void blkstore(int k, int off, int reg, int tmp) { + assert(k == 1 || k == 2 || k == 4); + assert(dalign >= k); + if (k == 1) + print("stb %%r%d,[%%r%d+%d]\n", tmp, reg, off); + else if (k == 2) + print("sth %%r%d,[%%r%d+%d]\n", tmp, reg, off); + else + print("st %%r%d,[%%r%d+%d]\n", tmp, reg, off); +} +static void blkloop(int dreg, int doff, int sreg, int soff, int size, int tmps[]) { + if ((size&~7) < 4096) { + print("add %%r%d,%d,%%r%d\n", sreg, size&~7, sreg); + print("add %%r%d,%d,%%r%d\n", dreg, size&~7, tmps[2]); + } else { + print("set %d,%%r%d\n", size&~7, tmps[2]); + print("add %%r%d,%%r%d,%%r%d\n", sreg, tmps[2], sreg); + print("add %%r%d,%%r%d,%%r%d\n", dreg, tmps[2], tmps[2]); + } + blkcopy(tmps[2], doff, sreg, soff, size&7, tmps); + print("1: dec 8,%%r%d\n", tmps[2]); + blkcopy(tmps[2], doff, sreg, soff - 8, 8, tmps); + print("cmp %%r%d,%%r%d; ", tmps[2], dreg); + print("bgt 1b; "); + print("dec 8,%%r%d\n", sreg); +} +static void defsymbol2(Symbol p) { + if (p->scope >= LOCAL && p->sclass == STATIC) + p->x.name = stringf(".%d", genlabel(1)); + else + assert(p->scope != CONSTANTS || isint(p->type) || isptr(p->type)), + p->x.name = p->name; + if (p->scope >= LABELS) + p->x.name = stringf(p->generated ? ".L%s" : "%s", + p->x.name); +} + +static Symbol prevg; + +static void globalend(void) { + if (prevg && prevg->type->size > 0) + print(".size %s,%d\n", prevg->x.name, prevg->type->size); + prevg = NULL; +} + +static void export2(Symbol p) { + globalend(); + print(".global %s\n", p->x.name); +} + +static void progend2(void) { + globalend(); +} + +static void global2(Symbol p) { + globalend(); + assert(p->u.seg); + if (!p->generated) { + print(".type %s,#%s\n", p->x.name, + isfunc(p->type) ? "function" : "object"); + if (p->type->size > 0) + print(".size %s,%d\n", p->x.name, p->type->size); + else + prevg = p; + } + if (p->u.seg == BSS && p->sclass == STATIC) + print(".local %s\n.common %s,%d,%d\n", p->x.name, p->x.name, + p->type->size, p->type->align); + else if (p->u.seg == BSS && Aflag >= 2) + print(".align %d\n%s:.skip %d\n", p->type->align, p->x.name, + p->type->size); + else if (p->u.seg == BSS) + print(".common %s,%d,%d\n", p->x.name, p->type->size, p->type->align); + else + print(".align %d\n%s:\n", p->type->align, p->x.name); +} + +static void segment2(int n) { + cseg = n; + switch (n) { + case CODE: print(".section \".text\"\n"); break; + case BSS: print(".section \".bss\"\n"); break; + case DATA: print(".section \".data\"\n"); break; + case LIT: print(".section \".rodata\"\n"); break; + } +} +Interface sparcIR = { + 1, 1, 0, /* char */ + 2, 2, 0, /* short */ + 4, 4, 0, /* int */ + 4, 4, 0, /* long */ + 4, 4, 0, /* long long */ + 4, 4, 1, /* float */ + 8, 8, 1, /* double */ + 8, 8, 1, /* long double */ + 4, 4, 0, /* T * */ + 0, 1, 0, /* struct */ + 0, /* little_endian */ + 0, /* mulops_calls */ + 1, /* wants_callb */ + 0, /* wants_argb */ + 1, /* left_to_right */ + 0, /* wants_dag */ + 0, /* unsigned_char */ + address, + blockbeg, + blockend, + defaddress, + defconst, + defstring, + defsymbol, + emit, + export, + function, + gen, + global, + import, + local, + progbeg, + progend, + segment, + space, + stabblock, 0, 0, stabinit, stabline, stabsym, stabtype, + { + 1, /* max_unaligned_load */ + rmap, + blkfetch, blkstore, blkloop, + _label, + _rule, + _nts, + _kids, + _string, + _templates, + _isinstruction, + _ntname, + emit2, + doarg, + target, + clobber, + + } +}; + +Interface solarisIR = { + 1, 1, 0, /* char */ + 2, 2, 0, /* short */ + 4, 4, 0, /* int */ + 4, 4, 0, /* long */ + 4, 4, 0, /* long long */ + 4, 4, 1, /* float */ + 8, 8, 1, /* double */ + 8, 8, 1, /* long double */ + 4, 4, 0, /* T * */ + 0, 1, 0, /* struct */ + 0, /* little_endian */ + 0, /* mulops_calls */ + 1, /* wants_callb */ + 0, /* wants_argb */ + 1, /* left_to_right */ + 0, /* wants_dag */ + 0, /* unsigned_char */ + address, + blockbeg, + blockend, + defaddress, + defconst, + defstring, + defsymbol2, + emit, + export2, + function, + gen, + global2, + import, + local, + progbeg, + progend2, + segment2, + space, + stabblock, 0, 0, stabinit, stabline, stabsym, stabtype, + { + 1, /* max_unaligned_load */ + rmap, + blkfetch, blkstore, blkloop, + _label, + _rule, + _nts, + _kids, + _string, + _templates, + _isinstruction, + _ntname, + emit2, + doarg, + target, + clobber, + + } +}; +static char rcsid[] = "$Id: sparc.md 145 2001-10-17 21:53:10Z timo $"; diff --git a/code/tools/lcc/src/stab.c b/code/tools/lcc/src/stab.c new file mode 100644 index 0000000..e53604d --- /dev/null +++ b/code/tools/lcc/src/stab.c @@ -0,0 +1,326 @@ +#include +#include +#include "c.h" +#include "stab.h" + + +static char *currentfile; /* current file name */ +static int ntypes; + +extern Interface sparcIR; + +char *stabprefix = "L"; + +extern char *stabprefix; +extern void stabblock(int, int, Symbol*); +extern void stabend(Coordinate *, Symbol, Coordinate **, Symbol *, Symbol *); +extern void stabfend(Symbol, int); +extern void stabinit(char *, int, char *[]); +extern void stabline(Coordinate *); +extern void stabsym(Symbol); +extern void stabtype(Symbol); + +static void asgncode(Type, int); +static void dbxout(Type); +static int dbxtype(Type); +static int emittype(Type, int, int); + +/* asgncode - assign type code to ty */ +static void asgncode(Type ty, int lev) { + if (ty->x.marked || ty->x.typeno) + return; + ty->x.marked = 1; + switch (ty->op) { + case VOLATILE: case CONST: case VOLATILE+CONST: + asgncode(ty->type, lev); + ty->x.typeno = ty->type->x.typeno; + break; + case POINTER: case FUNCTION: case ARRAY: + asgncode(ty->type, lev + 1); + /* fall thru */ + case VOID: case INT: case UNSIGNED: case FLOAT: + break; + case STRUCT: case UNION: { + Field p; + for (p = fieldlist(ty); p; p = p->link) + asgncode(p->type, lev + 1); + /* fall thru */ + case ENUM: + if (ty->x.typeno == 0) + ty->x.typeno = ++ntypes; + if (lev > 0 && (*ty->u.sym->name < '0' || *ty->u.sym->name > '9')) + dbxout(ty); + break; + } + default: + assert(0); + } +} + +/* dbxout - output .stabs entry for type ty */ +static void dbxout(Type ty) { + ty = unqual(ty); + if (!ty->x.printed) { + int col = 0; + print(".stabs \""), col += 8; + if (ty->u.sym && !(isfunc(ty) || isarray(ty) || isptr(ty))) + print("%s", ty->u.sym->name), col += strlen(ty->u.sym->name); + print(":%c", isstruct(ty) || isenum(ty) ? 'T' : 't'), col += 2; + emittype(ty, 0, col); + print("\",%d,0,0,0\n", N_LSYM); + } +} + +/* dbxtype - emit a stabs entry for type ty, return type code */ +static int dbxtype(Type ty) { + asgncode(ty, 0); + dbxout(ty); + return ty->x.typeno; +} + +/* + * emittype - emit ty's type number, emitting its definition if necessary. + * Returns the output column number after emission; col is the approximate + * output column before emission and is used to emit continuation lines for long + * struct, union, and enum types. Continuations are not emitted for other types, + * even if the definition is long. lev is the depth of calls to emittype. + */ +static int emittype(Type ty, int lev, int col) { + int tc = ty->x.typeno; + + if (isconst(ty) || isvolatile(ty)) { + col = emittype(ty->type, lev, col); + ty->x.typeno = ty->type->x.typeno; + ty->x.printed = 1; + return col; + } + if (tc == 0) { + ty->x.typeno = tc = ++ntypes; +/* fprint(2,"`%t'=%d\n", ty, tc); */ + } + print("%d", tc), col += 3; + if (ty->x.printed) + return col; + ty->x.printed = 1; + switch (ty->op) { + case VOID: /* void is defined as itself */ + print("=%d", tc), col += 1+3; + break; + case INT: + if (ty == chartype) /* plain char is a subrange of itself */ + print("=r%d;%d;%d;", tc, ty->u.sym->u.limits.min.i, ty->u.sym->u.limits.max.i), + col += 2+3+2*2.408*ty->size+2; + else /* other signed ints are subranges of int */ + print("=r1;%D;%D;", ty->u.sym->u.limits.min.i, ty->u.sym->u.limits.max.i), + col += 4+2*2.408*ty->size+2; + break; + case UNSIGNED: + if (ty == chartype) /* plain char is a subrange of itself */ + print("=r%d;0;%u;", tc, ty->u.sym->u.limits.max.i), + col += 2+3+2+2.408*ty->size+1; + else /* other signed ints are subranges of int */ + print("=r1;0;%U;", ty->u.sym->u.limits.max.i), + col += 4+2.408*ty->size+1; + break; + case FLOAT: /* float, double, long double get sizes, not ranges */ + print("=r1;%d;0;", ty->size), col += 4+1+3; + break; + case POINTER: + print("=*"), col += 2; + col = emittype(ty->type, lev + 1, col); + break; + case FUNCTION: + print("=f"), col += 2; + col = emittype(ty->type, lev + 1, col); + break; + case ARRAY: /* array includes subscript as an int range */ + if (ty->size && ty->type->size) + print("=ar1;0;%d;", ty->size/ty->type->size - 1), col += 7+3+1; + else + print("=ar1;0;-1;"), col += 10; + col = emittype(ty->type, lev + 1, col); + break; + case STRUCT: case UNION: { + Field p; + if (!ty->u.sym->defined) { + print("=x%c%s:", ty->op == STRUCT ? 's' : 'u', ty->u.sym->name); + col += 2+1+strlen(ty->u.sym->name)+1; + break; + } + if (lev > 0 && (*ty->u.sym->name < '0' || *ty->u.sym->name > '9')) { + ty->x.printed = 0; + break; + } + print("=%c%d", ty->op == STRUCT ? 's' : 'u', ty->size), col += 1+1+3; + for (p = fieldlist(ty); p; p = p->link) { + if (p->name) + print("%s:", p->name), col += strlen(p->name)+1; + else + print(":"), col += 1; + col = emittype(p->type, lev + 1, col); + if (p->lsb) + print(",%d,%d;", 8*p->offset + + (IR->little_endian ? fieldright(p) : fieldleft(p)), + fieldsize(p)); + else + print(",%d,%d;", 8*p->offset, 8*p->type->size); + col += 1+3+1+3+1; /* accounts for ,%d,%d; */ + if (col >= 80 && p->link) { + print("\\\\\",%d,0,0,0\n.stabs \"", N_LSYM); + col = 8; + } + } + print(";"), col += 1; + break; + } + case ENUM: { + Symbol *p; + if (lev > 0 && (*ty->u.sym->name < '0' || *ty->u.sym->name > '9')) { + ty->x.printed = 0; + break; + } + print("=e"), col += 2; + for (p = ty->u.sym->u.idlist; *p; p++) { + print("%s:%d,", (*p)->name, (*p)->u.value), col += strlen((*p)->name)+3; + if (col >= 80 && p[1]) { + print("\\\\\",%d,0,0,0\n.stabs \"", N_LSYM); + col = 8; + } + } + print(";"), col += 1; + break; + } + default: + assert(0); + } + return col; +} + +/* stabblock - output a stab entry for '{' or '}' at level lev */ +void stabblock(int brace, int lev, Symbol *p) { + if (brace == '{') + while (*p) + stabsym(*p++); + { + int lab = genlabel(1); + print(".stabn 0x%x,0,%d,%s%d-%s\n", brace == '{' ? N_LBRAC : N_RBRAC, lev, + stabprefix, lab, cfunc->x.name); + print("%s%d:\n", stabprefix, lab); + } +} + +/* stabinit - initialize stab output */ +void stabinit(char *file, int argc, char *argv[]) { + typedef void (*Closure)(Symbol, void *); + extern char *getcwd(char *, size_t); + + print(".stabs \"lcc4_compiled.\",0x%x,0,0,0\n", N_OPT); + if (file && *file) { + char buf[1024], *cwd = getcwd(buf, sizeof buf); + if (cwd) + print(".stabs \"%s/\",0x%x,0,3,%stext0\n", cwd, N_SO, stabprefix); + print(".stabs \"%s\",0x%x,0,3,%stext0\n", file, N_SO, stabprefix); + (*IR->segment)(CODE); + print("%stext0:\n", stabprefix, N_SO); + currentfile = file; + } + dbxtype(inttype); + dbxtype(chartype); + dbxtype(doubletype); + dbxtype(floattype); + dbxtype(longdouble); + dbxtype(longtype); + dbxtype(longlong); + dbxtype(shorttype); + dbxtype(signedchar); + dbxtype(unsignedchar); + dbxtype(unsignedlong); + dbxtype(unsignedlonglong); + dbxtype(unsignedshort); + dbxtype(unsignedtype); + dbxtype(voidtype); + foreach(types, GLOBAL, (Closure)stabtype, NULL); +} + +/* stabline - emit stab entry for source coordinate *cp */ +void stabline(Coordinate *cp) { + if (cp->file && cp->file != currentfile) { + int lab = genlabel(1); + print(".stabs \"%s\",0x%x,0,0,%s%d\n", cp->file, N_SOL, stabprefix, lab); + print("%s%d:\n", stabprefix, lab); + currentfile = cp->file; + } + { + int lab = genlabel(1); + print(".stabn 0x%x,0,%d,%s%d-%s\n", N_SLINE, cp->y, + stabprefix, lab, cfunc->x.name); + print("%s%d:\n", stabprefix, lab); + } +} + +/* stabsym - output a stab entry for symbol p */ +void stabsym(Symbol p) { + int code, tc, sz = p->type->size; + + if (p->generated || p->computed) + return; + if (isfunc(p->type)) { + print(".stabs \"%s:%c%d\",%d,0,0,%s\n", p->name, + p->sclass == STATIC ? 'f' : 'F', dbxtype(freturn(p->type)), + N_FUN, p->x.name); + return; + } + if (!IR->wants_argb && p->scope == PARAM && p->structarg) { + assert(isptr(p->type) && isstruct(p->type->type)); + tc = dbxtype(p->type->type); + sz = p->type->type->size; + } else + tc = dbxtype(p->type); + if ((p->sclass == AUTO && p->scope == GLOBAL) || p->sclass == EXTERN) { + print(".stabs \"%s:G", p->name); + code = N_GSYM; + } else if (p->sclass == STATIC) { + print(".stabs \"%s:%c%d\",%d,0,0,%s\n", p->name, p->scope == GLOBAL ? 'S' : 'V', + tc, p->u.seg == BSS ? N_LCSYM : N_STSYM, p->x.name); + return; + } else if (p->sclass == REGISTER) { + if (p->x.regnode) { + int r = p->x.regnode->number; + if (p->x.regnode->set == FREG) + r += 32; /* floating point */ + print(".stabs \"%s:%c%d\",%d,0,", p->name, + p->scope == PARAM ? 'P' : 'r', tc, N_RSYM); + print("%d,%d\n", sz, r); + } + return; + } else if (p->scope == PARAM) { + print(".stabs \"%s:p", p->name); + code = N_PSYM; + } else if (p->scope >= LOCAL) { + print(".stabs \"%s:", p->name); + code = N_LSYM; + } else + assert(0); + print("%d\",%d,0,0,%s\n", tc, code, + p->scope >= PARAM && p->sclass != EXTERN ? p->x.name : "0"); +} + +/* stabtype - output a stab entry for type *p */ +void stabtype(Symbol p) { + if (p->type) { + if (p->sclass == 0) + dbxtype(p->type); + else if (p->sclass == TYPEDEF) + print(".stabs \"%s:t%d\",%d,0,0,0\n", p->name, dbxtype(p->type), N_LSYM); + } +} + +/* stabend - finalize a function */ +void stabfend(Symbol p, int lineno) {} + +/* stabend - finalize stab output */ +void stabend(Coordinate *cp, Symbol p, Coordinate **cpp, Symbol *sp, Symbol *stab) { + (*IR->segment)(CODE); + print(".stabs \"\", %d, 0, 0,%setext\n", N_SO, stabprefix); + print("%setext:\n", stabprefix); +} diff --git a/code/tools/lcc/src/stab.h b/code/tools/lcc/src/stab.h new file mode 100644 index 0000000..198b1fe --- /dev/null +++ b/code/tools/lcc/src/stab.h @@ -0,0 +1,113 @@ +/* @(#)stab.h 1.11 92/05/11 SMI */ +/* + * Copyright (c) 1990 by Sun Microsystems, Inc. + */ + +/* + * This file gives definitions supplementing + * for permanent symbol table entries. + * These must have one of the N_STAB bits on, + * and are subject to relocation according to the masks in . + */ + +#ifndef _STAB_H +#define _STAB_H + + +#if !defined(_a_out_h) && !defined(_A_OUT_H) +/* this file contains fragments of a.out.h and stab.h relevant to + * support of stabX processing within ELF files - see the + * Format of a symbol table entry + */ +struct nlist { + union { + char *n_name; /* for use when in-core */ + long n_strx; /* index into file string table */ + } n_un; + unsigned char n_type; /* type flag (N_TEXT,..) */ + char n_other; /* unused */ + short n_desc; /* see */ + unsigned long n_value; /* value of symbol (or sdb offset) */ +}; + +/* + * Simple values for n_type. + */ +#define N_UNDF 0x0 /* undefined */ +#define N_ABS 0x2 /* absolute */ +#define N_TEXT 0x4 /* text */ +#define N_DATA 0x6 /* data */ +#define N_BSS 0x8 /* bss */ +#define N_COMM 0x12 /* common (internal to ld) */ +#define N_FN 0x1f /* file name symbol */ + +#define N_EXT 01 /* external bit, or'ed in */ +#define N_TYPE 0x1e /* mask for all the type bits */ + +#endif + +/* + * for symbolic debugger, sdb(1): + */ +#define N_GSYM 0x20 /* global symbol: name,,0,type,0 */ +#define N_FNAME 0x22 /* procedure name (f77 kludge): name,,0 */ +#define N_FUN 0x24 /* procedure: name,,0,linenumber,address */ +#define N_STSYM 0x26 /* static symbol: name,,0,type,address */ +#define N_LCSYM 0x28 /* .lcomm symbol: name,,0,type,address */ +#define N_MAIN 0x2a /* name of main routine : name,,0,0,0 */ +#define N_ROSYM 0x2c /* ro_data objects */ +#define N_OBJ 0x38 /* object file path or name */ +#define N_OPT 0x3c /* compiler options */ +#define N_RSYM 0x40 /* register sym: name,,0,type,register */ +#define N_SLINE 0x44 /* src line: 0,,0,linenumber,address */ +#define N_FLINE 0x4c /* function start.end */ +#define N_SSYM 0x60 /* structure elt: name,,0,type,struct_offset */ +#define N_ENDM 0x62 /* last stab emitted for module */ +#define N_SO 0x64 /* source file name: name,,0,0,address */ +#define N_LSYM 0x80 /* local sym: name,,0,type,offset */ +#define N_BINCL 0x82 /* header file: name,,0,0,0 */ +#define N_SOL 0x84 /* #included file name: name,,0,0,address */ +#define N_PSYM 0xa0 /* parameter: name,,0,type,offset */ +#define N_EINCL 0xa2 /* end of include file */ +#define N_ENTRY 0xa4 /* alternate entry: name,linenumber,address */ +#define N_LBRAC 0xc0 /* left bracket: 0,,0,nesting level,address */ +#define N_EXCL 0xc2 /* excluded include file */ +#define N_RBRAC 0xe0 /* right bracket: 0,,0,nesting level,address */ +#define N_BCOMM 0xe2 /* begin common: name,, */ +#define N_ECOMM 0xe4 /* end common: name,, */ +#define N_ECOML 0xe8 /* end common (local name): ,,address */ +#define N_LENG 0xfe /* second stab entry with length information */ + +/* + * for the berkeley pascal compiler, pc(1): + */ +#define N_PC 0x30 /* global pascal symbol: name,,0,subtype,line */ +#define N_WITH 0xea /* pascal with statement: type,,0,0,offset */ + +/* + * for code browser only + */ +#define N_BROWS 0x48 /* path to associated .cb file */ + +/* + * Optional langauge designations for N_SO + */ +#define N_SO_AS 1 /* Assembler */ +#define N_SO_C 2 /* C */ +#define N_SO_ANSI_C 3 /* ANSI C */ +#define N_SO_CC 4 /* C++ */ +#define N_SO_FORTRAN 5 /* Fortran 77 */ +#define N_SO_PASCAL 6 /* Pascal */ + +/* + * Floating point type values + */ +#define NF_NONE 0 /* Undefined type */ +#define NF_SINGLE 1 /* IEEE 32 bit float */ +#define NF_DOUBLE 2 /* IEEE 64 bit float */ +#define NF_COMPLEX 3 /* Fortran complex */ +#define NF_COMPLEX16 4 /* Fortran double complex */ +#define NF_COMPLEX32 5 /* Fortran complex*16 */ +#define NF_LDOUBLE 6 /* Long double */ + +#endif diff --git a/code/tools/lcc/src/stmt.c b/code/tools/lcc/src/stmt.c new file mode 100644 index 0000000..9c3bdbe --- /dev/null +++ b/code/tools/lcc/src/stmt.c @@ -0,0 +1,696 @@ +#include "c.h" + + +#define SWSIZE 512 + +#define den(i,j) ((j-buckets[i]+1.0)/(v[j]-v[buckets[i]]+1)) + +struct code codehead = { Start }; +Code codelist = &codehead; +float density = 0.5; +Table stmtlabs; + +static int foldcond(Tree e1, Tree e2); +static void caselabel(Swtch, long, int); +static void cmp(int, Symbol, long, int); +static Tree conditional(int); +static void dostmt(int, Swtch, int); +static int equal(Symbol, Symbol); +static void forstmt(int, Swtch, int); +static void ifstmt(int, int, Swtch, int); +static Symbol localaddr(Tree); +static void stmtlabel(void); +static void swstmt(int, int, int); +static void whilestmt(int, Swtch, int); +Code code(int kind) { + Code cp; + + if (!reachable(kind)) + warning("unreachable code\n"); + + NEW(cp, FUNC); + cp->kind = kind; + cp->prev = codelist; + cp->next = NULL; + codelist->next = cp; + codelist = cp; + return cp; +} +int reachable(int kind) { + + if (kind > Start) { + Code cp; + for (cp = codelist; cp->kind < Label; ) + cp = cp->prev; + if (cp->kind == Jump || cp->kind == Switch) + return 0; + } + return 1; +} +void addlocal(Symbol p) { + if (!p->defined) { + code(Local)->u.var = p; + p->defined = 1; + p->scope = level; + } +} +void definept(Coordinate *p) { + Code cp = code(Defpoint); + + cp->u.point.src = p ? *p : src; + cp->u.point.point = npoints; + if (ncalled > 0) { + int n = findcount(cp->u.point.src.file, + cp->u.point.src.x, cp->u.point.src.y); + if (n > 0) + refinc = (float)n/ncalled; + } + if (glevel > 2) locus(identifiers, &cp->u.point.src); + if (events.points && reachable(Gen)) + { + Tree e = NULL; + apply(events.points, &cp->u.point.src, &e); + if (e) + listnodes(e, 0, 0); + } +} +void statement(int loop, Swtch swp, int lev) { + float ref = refinc; + + if (Aflag >= 2 && lev == 15) + warning("more than 15 levels of nested statements\n"); + switch (t) { + case IF: ifstmt(genlabel(2), loop, swp, lev + 1); + break; + case WHILE: whilestmt(genlabel(3), swp, lev + 1); break; + case DO: dostmt(genlabel(3), swp, lev + 1); expect(';'); + break; + + case FOR: forstmt(genlabel(4), swp, lev + 1); + break; + case BREAK: walk(NULL, 0, 0); + definept(NULL); + if (swp && swp->lab > loop) + branch(swp->lab + 1); + else if (loop) + branch(loop + 2); + else + error("illegal break statement\n"); + t = gettok(); expect(';'); + break; + + case CONTINUE: walk(NULL, 0, 0); + definept(NULL); + if (loop) + branch(loop + 1); + else + error("illegal continue statement\n"); + t = gettok(); expect(';'); + break; + + case SWITCH: swstmt(loop, genlabel(2), lev + 1); + break; + case CASE: { + int lab = genlabel(1); + if (swp == NULL) + error("illegal case label\n"); + definelab(lab); + while (t == CASE) { + static char stop[] = { IF, ID, 0 }; + Tree p; + t = gettok(); + p = constexpr(0); + if (generic(p->op) == CNST && isint(p->type)) { + if (swp) { + needconst++; + p = cast(p, swp->sym->type); + if (p->type->op == UNSIGNED) + p->u.v.i = extend(p->u.v.u, p->type); + needconst--; + caselabel(swp, p->u.v.i, lab); + } + } else + error("case label must be a constant integer expression\n"); + + test(':', stop); + } + statement(loop, swp, lev); + } break; + case DEFAULT: if (swp == NULL) + error("illegal default label\n"); + else if (swp->deflab) + error("extra default label\n"); + else { + swp->deflab = findlabel(swp->lab); + definelab(swp->deflab->u.l.label); + } + t = gettok(); + expect(':'); + statement(loop, swp, lev); break; + case RETURN: { + Type rty = freturn(cfunc->type); + t = gettok(); + definept(NULL); + if (t != ';') + if (rty == voidtype) { + error("extraneous return value\n"); + expr(0); + retcode(NULL); + } else + retcode(expr(0)); + else { + if (rty != voidtype) + warning("missing return value\n"); + retcode(NULL); + } + branch(cfunc->u.f.label); + } expect(';'); + break; + + case '{': compound(loop, swp, lev + 1); break; + case ';': definept(NULL); t = gettok(); break; + case GOTO: walk(NULL, 0, 0); + definept(NULL); + t = gettok(); + if (t == ID) { + Symbol p = lookup(token, stmtlabs); + if (p == NULL) { + p = install(token, &stmtlabs, 0, FUNC); + p->scope = LABELS; + p->u.l.label = genlabel(1); + p->src = src; + } + use(p, src); + branch(p->u.l.label); + t = gettok(); + } else + error("missing label in goto\n"); expect(';'); + break; + + case ID: if (getchr() == ':') { + stmtlabel(); + statement(loop, swp, lev); + break; + } + default: definept(NULL); + if (kind[t] != ID) { + error("unrecognized statement\n"); + t = gettok(); + } else { + Tree e = expr0(0); + listnodes(e, 0, 0); + if (nodecount == 0 || nodecount > 200) + walk(NULL, 0, 0); + else if (glevel) walk(NULL, 0, 0); + deallocate(STMT); + } expect(';'); + break; + + } + if (kind[t] != IF && kind[t] != ID + && t != '}' && t != EOI) { + static char stop[] = { IF, ID, '}', 0 }; + error("illegal statement termination\n"); + skipto(0, stop); + } + refinc = ref; +} + +static void ifstmt(int lab, int loop, Swtch swp, int lev) { + t = gettok(); + expect('('); + definept(NULL); + walk(conditional(')'), 0, lab); + refinc /= 2.0; + statement(loop, swp, lev); + if (t == ELSE) { + branch(lab + 1); + t = gettok(); + definelab(lab); + statement(loop, swp, lev); + if (findlabel(lab + 1)->ref) + definelab(lab + 1); + } else + definelab(lab); +} +static Tree conditional(int tok) { + Tree p = expr(tok); + + if (Aflag > 1 && isfunc(p->type)) + warning("%s used in a conditional expression\n", + funcname(p)); + return cond(p); +} +static void stmtlabel(void) { + Symbol p = lookup(token, stmtlabs); + + if (p == NULL) { + p = install(token, &stmtlabs, 0, FUNC); + p->scope = LABELS; + p->u.l.label = genlabel(1); + p->src = src; + } + if (p->defined) + error("redefinition of label `%s' previously defined at %w\n", p->name, &p->src); + + p->defined = 1; + definelab(p->u.l.label); + t = gettok(); + expect(':'); +} +static void forstmt(int lab, Swtch swp, int lev) { + int once = 0; + Tree e1 = NULL, e2 = NULL, e3 = NULL; + Coordinate pt2, pt3; + + t = gettok(); + expect('('); + definept(NULL); + if (kind[t] == ID) + e1 = texpr(expr0, ';', FUNC); + else + expect(';'); + walk(e1, 0, 0); + pt2 = src; + refinc *= 10.0; + if (kind[t] == ID) + e2 = texpr(conditional, ';', FUNC); + else + expect(';'); + pt3 = src; + if (kind[t] == ID) + e3 = texpr(expr0, ')', FUNC); + else { + static char stop[] = { IF, ID, '}', 0 }; + test(')', stop); + } + if (e2) { + once = foldcond(e1, e2); + if (!once) + branch(lab + 3); + } + definelab(lab); + statement(lab, swp, lev); + definelab(lab + 1); + definept(&pt3); + if (e3) + walk(e3, 0, 0); + if (e2) { + if (!once) + definelab(lab + 3); + definept(&pt2); + walk(e2, lab, 0); + } else { + definept(&pt2); + branch(lab); + } + if (findlabel(lab + 2)->ref) + definelab(lab + 2); +} +static void swstmt(int loop, int lab, int lev) { + Tree e; + struct swtch sw; + Code head, tail; + + t = gettok(); + expect('('); + definept(NULL); + e = expr(')'); + if (!isint(e->type)) { + error("illegal type `%t' in switch expression\n", + e->type); + e = retype(e, inttype); + } + e = cast(e, promote(e->type)); + if (generic(e->op) == INDIR && isaddrop(e->kids[0]->op) + && e->kids[0]->u.sym->type == e->type + && !isvolatile(e->kids[0]->u.sym->type)) { + sw.sym = e->kids[0]->u.sym; + walk(NULL, 0, 0); + } else { + sw.sym = genident(REGISTER, e->type, level); + addlocal(sw.sym); + walk(asgn(sw.sym, e), 0, 0); + } + head = code(Switch); + sw.lab = lab; + sw.deflab = NULL; + sw.ncases = 0; + sw.size = SWSIZE; + sw.values = newarray(SWSIZE, sizeof *sw.values, FUNC); + sw.labels = newarray(SWSIZE, sizeof *sw.labels, FUNC); + refinc /= 10.0; + statement(loop, &sw, lev); + if (sw.deflab == NULL) { + sw.deflab = findlabel(lab); + definelab(lab); + if (sw.ncases == 0) + warning("switch statement with no cases\n"); + } + if (findlabel(lab + 1)->ref) + definelab(lab + 1); + tail = codelist; + codelist = head->prev; + codelist->next = head->prev = NULL; + if (sw.ncases > 0) + swgen(&sw); + branch(lab); + head->next->prev = codelist; + codelist->next = head->next; + codelist = tail; +} +static void caselabel(Swtch swp, long val, int lab) { + int k; + + if (swp->ncases >= swp->size) + { + long *vals = swp->values; + Symbol *labs = swp->labels; + swp->size *= 2; + swp->values = newarray(swp->size, sizeof *swp->values, FUNC); + swp->labels = newarray(swp->size, sizeof *swp->labels, FUNC); + for (k = 0; k < swp->ncases; k++) { + swp->values[k] = vals[k]; + swp->labels[k] = labs[k]; + } + } + k = swp->ncases; + for ( ; k > 0 && swp->values[k-1] >= val; k--) { + swp->values[k] = swp->values[k-1]; + swp->labels[k] = swp->labels[k-1]; + } + if (k < swp->ncases && swp->values[k] == val) + error("duplicate case label `%d'\n", val); + swp->values[k] = val; + swp->labels[k] = findlabel(lab); + ++swp->ncases; + if (Aflag >= 2 && swp->ncases == 258) + warning("more than 257 cases in a switch\n"); +} +void swgen(Swtch swp) { + int *buckets, k, n; + long *v = swp->values; + + buckets = newarray(swp->ncases + 1, + sizeof *buckets, FUNC); + for (n = k = 0; k < swp->ncases; k++, n++) { + buckets[n] = k; + while (n > 0 && den(n-1, k) >= density) + n--; + } + buckets[n] = swp->ncases; + swcode(swp, buckets, 0, n - 1); +} +void swcode(Swtch swp, int b[], int lb, int ub) { + int hilab, lolab, l, u, k = (lb + ub)/2; + long *v = swp->values; + + if (k > lb && k < ub) { + lolab = genlabel(1); + hilab = genlabel(1); + } else if (k > lb) { + lolab = genlabel(1); + hilab = swp->deflab->u.l.label; + } else if (k < ub) { + lolab = swp->deflab->u.l.label; + hilab = genlabel(1); + } else + lolab = hilab = swp->deflab->u.l.label; + l = b[k]; + u = b[k+1] - 1; + if (u - l + 1 <= 3) + { + int i; + for (i = l; i <= u; i++) + cmp(EQ, swp->sym, v[i], swp->labels[i]->u.l.label); + if (k > lb && k < ub) + cmp(GT, swp->sym, v[u], hilab); + else if (k > lb) + cmp(GT, swp->sym, v[u], hilab); + else if (k < ub) + cmp(LT, swp->sym, v[l], lolab); + else + assert(lolab == hilab), + branch(lolab); + walk(NULL, 0, 0); + } + else { + Tree e; + Type ty = signedint(swp->sym->type); + Symbol table = genident(STATIC, + array(voidptype, u - l + 1, 0), GLOBAL); + (*IR->defsymbol)(table); + if (!isunsigned(swp->sym->type) || v[l] != 0) + cmp(LT, swp->sym, v[l], lolab); + cmp(GT, swp->sym, v[u], hilab); + e = (*optree['-'])(SUB, cast(idtree(swp->sym), ty), cnsttree(ty, v[l])); + if (e->type->size < unsignedptr->size) + e = cast(e, unsignedlong); + walk(tree(JUMP, voidtype, + rvalue((*optree['+'])(ADD, pointer(idtree(table)), e)), NULL), + 0, 0); + code(Switch); + codelist->u.swtch.table = table; + codelist->u.swtch.sym = swp->sym; + codelist->u.swtch.deflab = swp->deflab; + codelist->u.swtch.size = u - l + 1; + codelist->u.swtch.values = &v[l]; + codelist->u.swtch.labels = &swp->labels[l]; + if (v[u] - v[l] + 1 >= 10000) + warning("switch generates a huge table\n"); + } + if (k > lb) { + assert(lolab != swp->deflab->u.l.label); + definelab(lolab); + swcode(swp, b, lb, k - 1); + } + if (k < ub) { + assert(hilab != swp->deflab->u.l.label); + definelab(hilab); + swcode(swp, b, k + 1, ub); + } +} +static void cmp(int op, Symbol p, long n, int lab) { + Type ty = signedint(p->type); + + listnodes(eqtree(op, + cast(idtree(p), ty), + cnsttree(ty, n)), + lab, 0); +} +void retcode(Tree p) { + Type ty; + + if (p == NULL) { + if (events.returns) + apply(events.returns, cfunc, NULL); + return; + } + p = pointer(p); + ty = assign(freturn(cfunc->type), p); + if (ty == NULL) { + error("illegal return type; found `%t' expected `%t'\n", + p->type, freturn(cfunc->type)); + return; + } + p = cast(p, ty); + if (retv) + { + if (iscallb(p)) + p = tree(RIGHT, p->type, + tree(CALL+B, p->type, + p->kids[0]->kids[0], idtree(retv)), + rvalue(idtree(retv))); + else + p = asgntree(ASGN, rvalue(idtree(retv)), p); + walk(p, 0, 0); + if (events.returns) + apply(events.returns, cfunc, rvalue(idtree(retv))); + return; + } + if (events.returns) + { + Symbol t1 = genident(AUTO, p->type, level); + addlocal(t1); + walk(asgn(t1, p), 0, 0); + apply(events.returns, cfunc, idtree(t1)); + p = idtree(t1); + } + if (!isfloat(p->type)) + p = cast(p, promote(p->type)); + if (isptr(p->type)) + { + Symbol q = localaddr(p); + if (q && (q->computed || q->generated)) + warning("pointer to a %s is an illegal return value\n", + q->scope == PARAM ? "parameter" : "local"); + else if (q) + warning("pointer to %s `%s' is an illegal return value\n", + q->scope == PARAM ? "parameter" : "local", q->name); + } + walk(tree(mkop(RET,p->type), p->type, p, NULL), 0, 0); +} +void definelab(int lab) { + Code cp; + Symbol p = findlabel(lab); + + assert(lab); + walk(NULL, 0, 0); + code(Label)->u.forest = newnode(LABEL+V, NULL, NULL, p); + for (cp = codelist->prev; cp->kind <= Label; ) + cp = cp->prev; + while ( cp->kind == Jump + && cp->u.forest->kids[0] + && specific(cp->u.forest->kids[0]->op) == ADDRG+P + && cp->u.forest->kids[0]->syms[0] == p) { + assert(cp->u.forest->kids[0]->syms[0]->u.l.label == lab); + p->ref--; + assert(cp->next); + assert(cp->prev); + cp->prev->next = cp->next; + cp->next->prev = cp->prev; + cp = cp->prev; + while (cp->kind <= Label) + cp = cp->prev; + } +} +Node jump(int lab) { + Symbol p = findlabel(lab); + + p->ref++; + return newnode(JUMP+V, newnode(ADDRG+ttob(voidptype), NULL, NULL, p), + NULL, NULL); +} +void branch(int lab) { + Code cp; + Symbol p = findlabel(lab); + + assert(lab); + walk(NULL, 0, 0); + code(Label)->u.forest = jump(lab); + for (cp = codelist->prev; cp->kind < Label; ) + cp = cp->prev; + while ( cp->kind == Label + && cp->u.forest->op == LABEL+V + && !equal(cp->u.forest->syms[0], p)) { + equatelab(cp->u.forest->syms[0], p); + assert(cp->next); + assert(cp->prev); + cp->prev->next = cp->next; + cp->next->prev = cp->prev; + cp = cp->prev; + while (cp->kind < Label) + cp = cp->prev; + } + if (cp->kind == Jump || cp->kind == Switch) { + p->ref--; + codelist->prev->next = NULL; + codelist = codelist->prev; + } else { + codelist->kind = Jump; + if (cp->kind == Label + && cp->u.forest->op == LABEL+V + && equal(cp->u.forest->syms[0], p)) + warning("source code specifies an infinite loop"); + } +} +void equatelab(Symbol old, Symbol new) { + assert(old->u.l.equatedto == NULL); + old->u.l.equatedto = new; + new->ref++; +} +static int equal(Symbol lprime, Symbol dst) { + assert(dst && lprime); + for ( ; dst; dst = dst->u.l.equatedto) + if (lprime == dst) + return 1; + return 0; +} +/* dostmt - do statement while ( expression ) */ +static void dostmt(int lab, Swtch swp, int lev) { + refinc *= 10.0; + t = gettok(); + definelab(lab); + statement(lab, swp, lev); + definelab(lab + 1); + expect(WHILE); + expect('('); + definept(NULL); + walk(conditional(')'), lab, 0); + if (findlabel(lab + 2)->ref) + definelab(lab + 2); +} + +/* foldcond - check if initial test in for(e1;e2;e3) S is necessary */ +static int foldcond(Tree e1, Tree e2) { + int op = generic(e2->op); + Symbol v; + + if (e1 == 0 || e2 == 0) + return 0; + if (generic(e1->op) == ASGN && isaddrop(e1->kids[0]->op) + && generic(e1->kids[1]->op) == CNST) { + v = e1->kids[0]->u.sym; + e1 = e1->kids[1]; + } else + return 0; + if ((op==LE || op==LT || op==EQ || op==NE || op==GT || op==GE) + && generic(e2->kids[0]->op) == INDIR + && e2->kids[0]->kids[0]->u.sym == v + && e2->kids[1]->op == e1->op) { + e1 = simplify(op, e2->type, e1, e2->kids[1]); + if (e1->op == CNST+I) + return e1->u.v.i; + } + return 0; +} + +/* localaddr - returns q if p yields the address of local/parameter q; otherwise returns 0 */ +static Symbol localaddr(Tree p) { + if (p == NULL) + return NULL; + switch (generic(p->op)) { + case INDIR: case CALL: case ARG: + return NULL; + case ADDRL: case ADDRF: + return p->u.sym; + case RIGHT: case ASGN: + if (p->kids[1]) + return localaddr(p->kids[1]); + return localaddr(p->kids[0]); + case COND: { + Symbol q; + assert(p->kids[1] && p->kids[1]->op == RIGHT); + if ((q = localaddr(p->kids[1]->kids[0])) != NULL) + return q; + return localaddr(p->kids[1]->kids[1]); + } + default: { + Symbol q; + if (p->kids[0] && (q = localaddr(p->kids[0])) != NULL) + return q; + return localaddr(p->kids[1]); + } + } +} + +/* whilestmt - while ( expression ) statement */ +static void whilestmt(int lab, Swtch swp, int lev) { + Coordinate pt; + Tree e; + + refinc *= 10.0; + t = gettok(); + expect('('); + walk(NULL, 0, 0); + pt = src; + e = texpr(conditional, ')', FUNC); + branch(lab + 1); + definelab(lab); + statement(lab, swp, lev); + definelab(lab + 1); + definept(&pt); + walk(e, lab, 0); + if (findlabel(lab + 2)->ref) + definelab(lab + 2); +} diff --git a/code/tools/lcc/src/string.c b/code/tools/lcc/src/string.c new file mode 100644 index 0000000..73cfc85 --- /dev/null +++ b/code/tools/lcc/src/string.c @@ -0,0 +1,122 @@ +#include "c.h" + + +static struct string { + char *str; + int len; + struct string *link; +} *buckets[1024]; +static int scatter[] = { /* map characters to random values */ + 2078917053, 143302914, 1027100827, 1953210302, 755253631, + 2002600785, 1405390230, 45248011, 1099951567, 433832350, + 2018585307, 438263339, 813528929, 1703199216, 618906479, + 573714703, 766270699, 275680090, 1510320440, 1583583926, + 1723401032, 1965443329, 1098183682, 1636505764, 980071615, + 1011597961, 643279273, 1315461275, 157584038, 1069844923, + 471560540, 89017443, 1213147837, 1498661368, 2042227746, + 1968401469, 1353778505, 1300134328, 2013649480, 306246424, + 1733966678, 1884751139, 744509763, 400011959, 1440466707, + 1363416242, 973726663, 59253759, 1639096332, 336563455, + 1642837685, 1215013716, 154523136, 593537720, 704035832, + 1134594751, 1605135681, 1347315106, 302572379, 1762719719, + 269676381, 774132919, 1851737163, 1482824219, 125310639, + 1746481261, 1303742040, 1479089144, 899131941, 1169907872, + 1785335569, 485614972, 907175364, 382361684, 885626931, + 200158423, 1745777927, 1859353594, 259412182, 1237390611, + 48433401, 1902249868, 304920680, 202956538, 348303940, + 1008956512, 1337551289, 1953439621, 208787970, 1640123668, + 1568675693, 478464352, 266772940, 1272929208, 1961288571, + 392083579, 871926821, 1117546963, 1871172724, 1771058762, + 139971187, 1509024645, 109190086, 1047146551, 1891386329, + 994817018, 1247304975, 1489680608, 706686964, 1506717157, + 579587572, 755120366, 1261483377, 884508252, 958076904, + 1609787317, 1893464764, 148144545, 1415743291, 2102252735, + 1788268214, 836935336, 433233439, 2055041154, 2109864544, + 247038362, 299641085, 834307717, 1364585325, 23330161, + 457882831, 1504556512, 1532354806, 567072918, 404219416, + 1276257488, 1561889936, 1651524391, 618454448, 121093252, + 1010757900, 1198042020, 876213618, 124757630, 2082550272, + 1834290522, 1734544947, 1828531389, 1982435068, 1002804590, + 1783300476, 1623219634, 1839739926, 69050267, 1530777140, + 1802120822, 316088629, 1830418225, 488944891, 1680673954, + 1853748387, 946827723, 1037746818, 1238619545, 1513900641, + 1441966234, 367393385, 928306929, 946006977, 985847834, + 1049400181, 1956764878, 36406206, 1925613800, 2081522508, + 2118956479, 1612420674, 1668583807, 1800004220, 1447372094, + 523904750, 1435821048, 923108080, 216161028, 1504871315, + 306401572, 2018281851, 1820959944, 2136819798, 359743094, + 1354150250, 1843084537, 1306570817, 244413420, 934220434, + 672987810, 1686379655, 1301613820, 1601294739, 484902984, + 139978006, 503211273, 294184214, 176384212, 281341425, + 228223074, 147857043, 1893762099, 1896806882, 1947861263, + 1193650546, 273227984, 1236198663, 2116758626, 489389012, + 593586330, 275676551, 360187215, 267062626, 265012701, + 719930310, 1621212876, 2108097238, 2026501127, 1865626297, + 894834024, 552005290, 1404522304, 48964196, 5816381, + 1889425288, 188942202, 509027654, 36125855, 365326415, + 790369079, 264348929, 513183458, 536647531, 13672163, + 313561074, 1730298077, 286900147, 1549759737, 1699573055, + 776289160, 2143346068, 1975249606, 1136476375, 262925046, + 92778659, 1856406685, 1884137923, 53392249, 1735424165, + 1602280572 +}; +char *string(const char *str) { + const char *s; + + for (s = str; *s; s++) + ; + return stringn(str, s - str); +} +char *stringd(long n) { + char str[25], *s = str + sizeof (str); + unsigned long m; + + if (n == LONG_MIN) + m = (unsigned long)LONG_MAX + 1; + else if (n < 0) + m = -n; + else + m = n; + do + *--s = m%10 + '0'; + while ((m /= 10) != 0); + if (n < 0) + *--s = '-'; + return stringn(s, str + sizeof (str) - s); +} +char *stringn(const char *str, int len) { + int i; + unsigned int h; + const char *end; + struct string *p; + + assert(str); + for (h = 0, i = len, end = str; i > 0; i--) + h = (h<<1) + scatter[*(unsigned char *)end++]; + h &= NELEMS(buckets)-1; + for (p = buckets[h]; p; p = p->link) + if (len == p->len) { + const char *s1 = str; + char *s2 = p->str; + do { + if (s1 == end) + return p->str; + } while (*s1++ == *s2++); + } + { + static char *next, *strlimit; + if (len + 1 >= strlimit - next) { + int n = len + 4*1024; + next = allocate(n, PERM); + strlimit = next + n; + } + NEW(p, PERM); + p->len = len; + for (p->str = next; str < end; ) + *next++ = *str++; + *next++ = 0; + p->link = buckets[h]; + buckets[h] = p; + return p->str; + } +} diff --git a/code/tools/lcc/src/sym.c b/code/tools/lcc/src/sym.c new file mode 100644 index 0000000..2a1cfeb --- /dev/null +++ b/code/tools/lcc/src/sym.c @@ -0,0 +1,314 @@ +#include "c.h" +#include + + +#define equalp(x) v.x == p->sym.u.c.v.x + +struct table { + int level; + Table previous; + struct entry { + struct symbol sym; + struct entry *link; + } *buckets[256]; + Symbol all; +}; +#define HASHSIZE NELEMS(((Table)0)->buckets) +static struct table + cns = { CONSTANTS }, + ext = { GLOBAL }, + ids = { GLOBAL }, + tys = { GLOBAL }; +Table constants = &cns; +Table externals = &ext; +Table identifiers = &ids; +Table globals = &ids; +Table types = &tys; +Table labels; +int level = GLOBAL; +static int tempid; +List loci, symbols; + +Table table(Table tp, int level) { + Table new; + + NEW0(new, FUNC); + new->previous = tp; + new->level = level; + if (tp) + new->all = tp->all; + return new; +} +void foreach(Table tp, int lev, void (*apply)(Symbol, void *), void *cl) { + assert(tp); + while (tp && tp->level > lev) + tp = tp->previous; + if (tp && tp->level == lev) { + Symbol p; + Coordinate sav; + sav = src; + for (p = tp->all; p && p->scope == lev; p = p->up) { + src = p->src; + (*apply)(p, cl); + } + src = sav; + } +} +void enterscope(void) { + if (++level == LOCAL) + tempid = 0; +} +void exitscope(void) { + rmtypes(level); + if (types->level == level) + types = types->previous; + if (identifiers->level == level) { + if (Aflag >= 2) { + int n = 0; + Symbol p; + for (p = identifiers->all; p && p->scope == level; p = p->up) + if (++n > 127) { + warning("more than 127 identifiers declared in a block\n"); + break; + } + } + identifiers = identifiers->previous; + } + assert(level >= GLOBAL); + --level; +} +Symbol install(const char *name, Table *tpp, int level, int arena) { + Table tp = *tpp; + struct entry *p; + unsigned h = (unsigned long)name&(HASHSIZE-1); + + assert(level == 0 || level >= tp->level); + if (level > 0 && tp->level < level) + tp = *tpp = table(tp, level); + NEW0(p, arena); + p->sym.name = (char *)name; + p->sym.scope = level; + p->sym.up = tp->all; + tp->all = &p->sym; + p->link = tp->buckets[h]; + tp->buckets[h] = p; + return &p->sym; +} +Symbol relocate(const char *name, Table src, Table dst) { + struct entry *p, **q; + Symbol *r; + unsigned h = (unsigned long)name&(HASHSIZE-1); + + for (q = &src->buckets[h]; *q; q = &(*q)->link) + if (name == (*q)->sym.name) + break; + assert(*q); + /* + Remove the entry from src's hash chain + and from its list of all symbols. + */ + p = *q; + *q = (*q)->link; + for (r = &src->all; *r && *r != &p->sym; r = &(*r)->up) + ; + assert(*r == &p->sym); + *r = p->sym.up; + /* + Insert the entry into dst's hash chain + and into its list of all symbols. + Return the symbol-table entry. + */ + p->link = dst->buckets[h]; + dst->buckets[h] = p; + p->sym.up = dst->all; + dst->all = &p->sym; + return &p->sym; +} +Symbol lookup(const char *name, Table tp) { + struct entry *p; + unsigned h = (unsigned long)name&(HASHSIZE-1); + + assert(tp); + do + for (p = tp->buckets[h]; p; p = p->link) + if (name == p->sym.name) + return &p->sym; + while ((tp = tp->previous) != NULL); + return NULL; +} +int genlabel(int n) { + static int label = 1; + + label += n; + return label - n; +} +Symbol findlabel(int lab) { + struct entry *p; + unsigned h = lab&(HASHSIZE-1); + + for (p = labels->buckets[h]; p; p = p->link) + if (lab == p->sym.u.l.label) + return &p->sym; + NEW0(p, FUNC); + p->sym.name = stringd(lab); + p->sym.scope = LABELS; + p->sym.up = labels->all; + labels->all = &p->sym; + p->link = labels->buckets[h]; + labels->buckets[h] = p; + p->sym.generated = 1; + p->sym.u.l.label = lab; + (*IR->defsymbol)(&p->sym); + return &p->sym; +} +Symbol constant(Type ty, Value v) { + struct entry *p; + unsigned h = v.u&(HASHSIZE-1); + + ty = unqual(ty); + for (p = constants->buckets[h]; p; p = p->link) + if (eqtype(ty, p->sym.type, 1)) + switch (ty->op) { + case INT: if (equalp(i)) return &p->sym; break; + case UNSIGNED: if (equalp(u)) return &p->sym; break; + case FLOAT: if (equalp(d)) return &p->sym; break; + case FUNCTION: if (equalp(g)) return &p->sym; break; + case ARRAY: + case POINTER: if (equalp(p)) return &p->sym; break; + default: assert(0); + } + NEW0(p, PERM); + p->sym.name = vtoa(ty, v); + p->sym.scope = CONSTANTS; + p->sym.type = ty; + p->sym.sclass = STATIC; + p->sym.u.c.v = v; + p->link = constants->buckets[h]; + p->sym.up = constants->all; + constants->all = &p->sym; + constants->buckets[h] = p; + if (ty->u.sym && !ty->u.sym->addressed) + (*IR->defsymbol)(&p->sym); + p->sym.defined = 1; + return &p->sym; +} +Symbol intconst(int n) { + Value v; + + v.i = n; + return constant(inttype, v); +} +Symbol genident(int scls, Type ty, int lev) { + Symbol p; + + NEW0(p, lev >= LOCAL ? FUNC : PERM); + p->name = stringd(genlabel(1)); + p->scope = lev; + p->sclass = scls; + p->type = ty; + p->generated = 1; + if (lev == GLOBAL) + (*IR->defsymbol)(p); + return p; +} + +Symbol temporary(int scls, Type ty) { + Symbol p; + + NEW0(p, FUNC); + p->name = stringd(++tempid); + p->scope = level < LOCAL ? LOCAL : level; + p->sclass = scls; + p->type = ty; + p->temporary = 1; + p->generated = 1; + return p; +} +Symbol newtemp(int sclass, int tc, int size) { + Symbol p = temporary(sclass, btot(tc, size)); + + (*IR->local)(p); + p->defined = 1; + return p; +} + +Symbol allsymbols(Table tp) { + return tp->all; +} + +void locus(Table tp, Coordinate *cp) { + loci = append(cp, loci); + symbols = append(allsymbols(tp), symbols); +} + +void use(Symbol p, Coordinate src) { + Coordinate *cp; + + NEW(cp, PERM); + *cp = src; + p->uses = append(cp, p->uses); +} +/* findtype - find type ty in identifiers */ +Symbol findtype(Type ty) { + Table tp = identifiers; + int i; + struct entry *p; + + assert(tp); + do + for (i = 0; i < HASHSIZE; i++) + for (p = tp->buckets[i]; p; p = p->link) + if (p->sym.type == ty && p->sym.sclass == TYPEDEF) + return &p->sym; + while ((tp = tp->previous) != NULL); + return NULL; +} + +/* mkstr - make a string constant */ +Symbol mkstr(char *str) { + Value v; + Symbol p; + + v.p = str; + p = constant(array(chartype, strlen(v.p) + 1, 0), v); + if (p->u.c.loc == NULL) + p->u.c.loc = genident(STATIC, p->type, GLOBAL); + return p; +} + +/* mksymbol - make a symbol for name, install in &globals if sclass==EXTERN */ +Symbol mksymbol(int sclass, const char *name, Type ty) { + Symbol p; + + if (sclass == EXTERN) + p = install(string(name), &globals, GLOBAL, PERM); + else { + NEW0(p, PERM); + p->name = string(name); + p->scope = GLOBAL; + } + p->sclass = sclass; + p->type = ty; + (*IR->defsymbol)(p); + p->defined = 1; + return p; +} + +/* vtoa - return string for the constant v of type ty */ +char *vtoa(Type ty, Value v) { + + ty = unqual(ty); + switch (ty->op) { + case INT: return stringd(v.i); + case UNSIGNED: return stringf((v.u&~0x7FFF) ? "0x%X" : "%U", v.u); + case FLOAT: return stringf("%g", (double)v.d); + case ARRAY: + if (ty->type == chartype || ty->type == signedchar + || ty->type == unsignedchar) + return v.p; + return stringf("%p", v.p); + case POINTER: return stringf("%p", v.p); + case FUNCTION: return stringf("%p", v.g); + } + assert(0); return NULL; +} diff --git a/code/tools/lcc/src/symbolic.c b/code/tools/lcc/src/symbolic.c new file mode 100644 index 0000000..affa67a --- /dev/null +++ b/code/tools/lcc/src/symbolic.c @@ -0,0 +1,494 @@ +#include +#include +#include "c.h" + +#define I(f) s_##f + +static Node *tail; +static int off, maxoff, uid = 0, verbose = 0, html = 0; + +static const char *yyBEGIN(const char *tag) { + if (html) + print("<%s>", tag); + return tag; +} + +static void yyEND(const char *tag) { + if (html) + print("", tag); + if (isupper(*tag)) + print("\n"); +} + +#define BEGIN(tag) do { const char *yytag=yyBEGIN(#tag); +#define END yyEND(yytag); } while (0) +#define ITEM BEGIN(li) +#define START BEGIN(LI) +#define ANCHOR(attr,code) do { const char *yytag="a"; if (html) { printf(""); } +#define NEWLINE print(html ? "
    \n" : "\n") + +static void emitCoord(Coordinate src) { + if (src.file && *src.file) { + ANCHOR(href,print("%s", src.file)); print("%s", src.file); END; + print(":"); + } + print("%d.%d", src.y, src.x); +} + +static void emitString(int len, const char *s) { + for ( ; len-- > 0; s++) + if (*s == '&' && html) + print("&"); + else if (*s == '<' && html) + print("<"); + else if (*s == '>' && html) + print("<"); + else if (*s == '"' || *s == '\\') + print("\\%c", *s); + else if (*s >= ' ' && *s < 0177) + print("%c", *s); + else + print("\\%d%d%d", (*s>>6)&3, (*s>>3)&7, *s&7); +} + +static void emitSymRef(Symbol p) { + (*IR->defsymbol)(p); + ANCHOR(href,print("#%s", p->x.name)); BEGIN(code); print("%s", p->name); END; END; +} + +static void emitSymbol(Symbol p) { + (*IR->defsymbol)(p); + ANCHOR(name,print("%s", p->x.name)); BEGIN(code); print("%s", p->name); END; END; + BEGIN(ul); +#define xx(field,code) ITEM; if (!html) print(" "); print(#field "="); code; END + if (verbose && (src.y || src.x)) + xx(src,emitCoord(p->src)); + xx(type,print("%t", p->type)); + xx(sclass,print("%k", p->sclass)); + switch (p->scope) { + case CONSTANTS: xx(scope,print("CONSTANTS")); break; + case LABELS: xx(scope,print("LABELS")); break; + case GLOBAL: xx(scope,print("GLOBAL")); break; + case PARAM: xx(scope,print("PARAM")); break; + case LOCAL: xx(scope,print("LOCAL")); break; + default: + if (p->scope > LOCAL) + xx(scope,print("LOCAL+%d", p->scope-LOCAL)); + else + xx(scope,print("%d", p->scope)); + } + if (p->scope >= PARAM && p->sclass != STATIC) + xx(offset,print("%d", p->x.offset)); + xx(ref,print("%f", p->ref)); + if (p->temporary && p->u.t.cse) + xx(u.t.cse,print("%p", p->u.t.cse)); + END; +#undef xx +} + +/* address - initialize q for addressing expression p+n */ +static void I(address)(Symbol q, Symbol p, long n) { + q->name = stringf("%s%s%D", p->name, n > 0 ? "+" : "", n); + (*IR->defsymbol)(q); + START; print("address "); emitSymbol(q); END; +} + +/* blockbeg - start a block */ +static void I(blockbeg)(Env *e) { + e->offset = off; + START; print("blockbeg off=%d", off); END; +} + +/* blockend - start a block */ +static void I(blockend)(Env *e) { + if (off > maxoff) + maxoff = off; + START; print("blockend off=%d", off); END; + off = e->offset; +} + +/* defaddress - initialize an address */ +static void I(defaddress)(Symbol p){ + START; print("defaddress "); emitSymRef(p); END; +} + +/* defconst - define a constant */ +static void I(defconst)(int suffix, int size, Value v) { + START; + print("defconst "); + switch (suffix) { + case I: + print("int.%d ", size); + BEGIN(code); + if (size > sizeof (int)) + print("%D", v.i); + else + print("%d", (int)v.i); + END; + break; + case U: + print("unsigned.%d ", size); + BEGIN(code); + if (size > sizeof (unsigned)) + print("%U", v.u); + else + print("%u", (unsigned)v.u); + END; + break; + case P: print("void*.%d ", size); BEGIN(code); print("%p", v.p); END; break; + case F: print("float.%d ", size); BEGIN(code); print("%g", (double)v.d); END; break; + default: assert(0); + } + END; +} + +/* defstring - emit a string constant */ +static void I(defstring)(int len, char *s) { + START; print("defstring "); + BEGIN(code); print("\""); emitString(len, s); print("\""); END; + END; +} + +/* defsymbol - define a symbol: initialize p->x */ +static void I(defsymbol)(Symbol p) { + if (p->x.name == NULL) + p->x.name = stringd(++uid); +} + +/* emit - emit the dags on list p */ +static void I(emit)(Node p){ + ITEM; + if (!html) + print(" "); + for (; p; p = p->x.next) { + if (p->op == LABEL+V) { + assert(p->syms[0]); + ANCHOR(name,print("%s", p->syms[0]->x.name)); + BEGIN(code); print("%s", p->syms[0]->name); END; + END; + print(":"); + } else { + int i; + if (p->x.listed) { + BEGIN(strong); print("%d", p->x.inst); END; print("'"); + print(" %s", opname(p->op)); + } else + print("%d. %s", p->x.inst, opname(p->op)); + if (p->count > 1) + print(" count=%d", p->count); + for (i = 0; i < NELEMS(p->kids) && p->kids[i]; i++) + print(" #%d", p->kids[i]->x.inst); + if (generic(p->op) == CALL && p->syms[0] && p->syms[0]->type) + print(" {%t}", p->syms[0]->type); + else + for (i = 0; i < NELEMS(p->syms) && p->syms[i]; i++) { + print(" "); + if (p->syms[i]->scope == CONSTANTS) + print(p->syms[i]->name); + else + emitSymRef(p->syms[i]); + } + } + NEWLINE; + } + END; +} + +/* export - announce p as exported */ +static void I(export)(Symbol p) { + START; print("export "); emitSymRef(p); END; +} + +/* function - generate code for a function */ +static void I(function)(Symbol f, Symbol caller[], Symbol callee[], int ncalls) { + int i; + + (*IR->defsymbol)(f); + off = 0; + for (i = 0; caller[i] && callee[i]; i++) { + off = roundup(off, caller[i]->type->align); + caller[i]->x.offset = callee[i]->x.offset = off; + off += caller[i]->type->size; + } + if (!html) { + print("function "); + emitSymbol(f); + print(" ncalls=%d\n", ncalls); + for (i = 0; caller[i]; i++) + START; print("caller "); emitSymbol(caller[i]); END; + for (i = 0; callee[i]; i++) + START; print("callee "); emitSymbol(callee[i]); END; + } else { + START; + print("function"); + BEGIN(UL); +#define xx(field,code) ITEM; print(#field "="); code; END + xx(f,emitSymbol(f)); + xx(ncalls,print("%d", ncalls)); + if (caller[0]) { + ITEM; print("caller"); BEGIN(OL); + for (i = 0; caller[i]; i++) + ITEM; emitSymbol(caller[i]); END; + END; END; + ITEM; print("callee"); BEGIN(OL); + for (i = 0; callee[i]; i++) + ITEM; emitSymbol(callee[i]); END; + END; END; + } else { + xx(caller,BEGIN(em); print("empty"); END); + xx(callee,BEGIN(em); print("empty"); END); + } + END; + END; + } + maxoff = off = 0; + gencode(caller, callee); + if (html) + START; print("emitcode"); BEGIN(ul); emitcode(); END; END; + else + emitcode(); + START; print("maxoff=%d", maxoff); END; +#undef xx +} + +/* visit - generate code for *p */ +static int visit(Node p, int n) { + if (p && p->x.inst == 0) { + p->x.inst = ++n; + n = visit(p->kids[0], n); + n = visit(p->kids[1], n); + *tail = p; + tail = &p->x.next; + } + return n; +} + +/* gen0 - generate code for the dags on list p */ +static Node I(gen)(Node p) { + int n; + Node nodelist; + + tail = &nodelist; + for (n = 0; p; p = p->link) { + switch (generic(p->op)) { /* check for valid forest */ + case CALL: + assert(IR->wants_dag || p->count == 0); + break; + case ARG: + case ASGN: case JUMP: case LABEL: case RET: + case EQ: case GE: case GT: case LE: case LT: case NE: + assert(p->count == 0); + break; + case INDIR: + assert(IR->wants_dag && p->count > 0); + break; + default: + assert(0); + } + check(p); + p->x.listed = 1; + n = visit(p, n); + } + *tail = 0; + return nodelist; +} + +/* global - announce a global */ +static void I(global)(Symbol p) { + START; print("global "); emitSymbol(p); END; +} + +/* import - import a symbol */ +static void I(import)(Symbol p) { + START; print("import "); emitSymRef(p); END; +} + +/* local - local variable */ +static void I(local)(Symbol p) { + if (p->temporary) + p->name = stringf("t%s", p->name); + (*IR->defsymbol)(p); + off = roundup(off, p->type->align); + p->x.offset = off; + off += p->type->size; + START; print(p->temporary ? "temporary " : "local "); emitSymbol(p); END; +} + +/* progbeg - beginning of program */ +static void I(progbeg)(int argc, char *argv[]) { + int i; + + for (i = 1; i < argc; i++) + if (strcmp(argv[i], "-v") == 0) + verbose++; + else if (strcmp(argv[i], "-html") == 0) + html++; + if (html) { + print("\n"); + print(""); + BEGIN(head); + if (firstfile && *firstfile) + BEGIN(title); emitString(strlen(firstfile), firstfile); END; + print("\n"); + END; + print("\n"); + if (firstfile && *firstfile) + BEGIN(h1); emitString(strlen(firstfile), firstfile); END; + BEGIN(P); BEGIN(em); + print("Links lead from uses of identifiers and labels to their definitions."); + END; END; + print("
      \n"); + START; + print("progbeg"); + BEGIN(ol); + for (i = 1; i < argc; i++) { + ITEM; + BEGIN(code); print("\""); emitString(strlen(argv[i]), argv[i]); print("\""); END; + END; + } + END; + END; + } +} + +/* progend - end of program */ +static void I(progend)(void) { + START; print("progend"); END; + if (html) { + time_t t; + print("
    \n"); + time(&t); + print("
    %s
    \n", ctime(&t)); + print("\n"); + } +} + +/* segment - switch to segment s */ +static void I(segment)(int s) { + START; print("segment %s", &"text\0bss\0.data\0lit\0.sym\0."[5*s-5]); END; +} + +/* space - initialize n bytes of space */ +static void I(space)(int n) { + START; print("space %d", n); END; +} + +static void I(stabblock)(int brace, int lev, Symbol *p) {} + +/* stabend - finalize stab output */ +static void I(stabend)(Coordinate *cp, Symbol p, Coordinate **cpp, Symbol *sp, Symbol *stab) { + int i; + + if (p) + emitSymRef(p); + print("\n"); + if (cpp && sp) + for (i = 0; cpp[i] && sp[i]; i++) { + print("%w.%d: ", cpp[i], cpp[i]->x); + emitSymRef(sp[i]); + print("\n"); + } +} + +static void I(stabfend)(Symbol p, int lineno) {} +static void I(stabinit)(char *file, int argc, char *argv[]) {} + +/* stabline - emit line number information for source coordinate *cp */ +static void I(stabline)(Coordinate *cp) { + if (cp->file) + print("%s:", cp->file); + print("%d.%d:\n", cp->y, cp->x); +} + +static void I(stabsym)(Symbol p) {} +static void I(stabtype)(Symbol p) {} + +Interface symbolicIR = { + {1, 1, 0}, /* char */ + {2, 2, 0}, /* short */ + {4, 4, 0}, /* int */ + {4, 4, 0}, /* long */ + {4, 4, 0}, /* long long */ + {4, 4, 1}, /* float */ + {8, 8, 1}, /* double */ + {8, 8, 1}, /* long double */ + {4, 4, 0}, /* T* */ + {0, 4, 0}, /* struct */ + 0, /* little_endian */ + 0, /* mulops_calls */ + 0, /* wants_callb */ + 1, /* wants_argb */ + 1, /* left_to_right */ + 1, /* wants_dag */ + 0, /* unsigned_char */ + I(address), + I(blockbeg), + I(blockend), + I(defaddress), + I(defconst), + I(defstring), + I(defsymbol), + I(emit), + I(export), + I(function), + I(gen), + I(global), + I(import), + I(local), + I(progbeg), + I(progend), + I(segment), + I(space), + I(stabblock), + I(stabend), + I(stabfend), + I(stabinit), + I(stabline), + I(stabsym), + I(stabtype) +}; + +Interface symbolic64IR = { + {1, 1, 0}, /* char */ + {2, 2, 0}, /* short */ + {4, 4, 0}, /* int */ + {8, 8, 0}, /* long */ + {8, 8, 0}, /* long long */ + {4, 4, 1}, /* float */ + {8, 8, 1}, /* double */ + {8, 8, 1}, /* long double */ + {8, 8, 0}, /* T* */ + {0, 1, 0}, /* struct */ + 1, /* little_endian */ + 0, /* mulops_calls */ + 0, /* wants_callb */ + 1, /* wants_argb */ + 1, /* left_to_right */ + 1, /* wants_dag */ + 0, /* unsigned_char */ + I(address), + I(blockbeg), + I(blockend), + I(defaddress), + I(defconst), + I(defstring), + I(defsymbol), + I(emit), + I(export), + I(function), + I(gen), + I(global), + I(import), + I(local), + I(progbeg), + I(progend), + I(segment), + I(space), + I(stabblock), + I(stabend), + I(stabfend), + I(stabinit), + I(stabline), + I(stabsym), + I(stabtype) +}; diff --git a/code/tools/lcc/src/token.h b/code/tools/lcc/src/token.h new file mode 100644 index 0000000..d309f9b --- /dev/null +++ b/code/tools/lcc/src/token.h @@ -0,0 +1,133 @@ +/* +xx(symbol, value, prec, op, optree, kind, string) +*/ +yy(0, 0, 0, 0, 0, 0, 0) +xx(FLOAT, 1, 0, 0, 0, CHAR, "float") +xx(DOUBLE, 2, 0, 0, 0, CHAR, "double") +xx(CHAR, 3, 0, 0, 0, CHAR, "char") +xx(SHORT, 4, 0, 0, 0, CHAR, "short") +xx(INT, 5, 0, 0, 0, CHAR, "int") +xx(UNSIGNED, 6, 0, 0, 0, CHAR, "unsigned") +xx(POINTER, 7, 0, 0, 0, 0, "pointer") +xx(VOID, 8, 0, 0, 0, CHAR, "void") +xx(STRUCT, 9, 0, 0, 0, CHAR, "struct") +xx(UNION, 10, 0, 0, 0, CHAR, "union") +xx(FUNCTION, 11, 0, 0, 0, 0, "function") +xx(ARRAY, 12, 0, 0, 0, 0, "array") +xx(ENUM, 13, 0, 0, 0, CHAR, "enum") +xx(LONG, 14, 0, 0, 0, CHAR, "long") +xx(CONST, 15, 0, 0, 0, CHAR, "const") +xx(VOLATILE, 16, 0, 0, 0, CHAR, "volatile") +yy(0, 17, 0, 0, 0, 0, 0) +yy(0, 18, 0, 0, 0, 0, 0) +yy(0, 19, 0, 0, 0, 0, 0) +yy(0, 20, 0, 0, 0, 0, 0) +yy(0, 21, 0, 0, 0, 0, 0) +yy(0, 22, 0, 0, 0, 0, 0) +yy(0, 23, 0, 0, 0, 0, 0) +yy(0, 24, 0, 0, 0, 0, 0) +yy(0, 25, 0, 0, 0, 0, 0) +yy(0, 26, 0, 0, 0, 0, 0) +yy(0, 27, 0, 0, 0, 0, 0) +yy(0, 28, 0, 0, 0, 0, "long long") +yy(0, 29, 0, 0, 0, 0, 0) +yy(0, 30, 0, 0, 0, 0, 0) +yy(0, 31, 0, 0, 0, 0, "const volatile") +xx(ID, 32, 0, 0, 0, ID, "identifier") +yy(0, 33, 0, 0, 0, ID, "!") +xx(FCON, 34, 0, 0, 0, ID, "floating constant") +xx(ICON, 35, 0, 0, 0, ID, "integer constant") +xx(SCON, 36, 0, 0, 0, ID, "string constant") +yy(0, 37, 13, MOD, bittree,'%', "%") +yy(0, 38, 8, BAND, bittree,ID, "&") +xx(INCR, 39, 0, ADD, addtree,ID, "++") +yy(0, 40, 0, 0, 0, ID, "(") +yy(0, 41, 0, 0, 0, ')', ")") +yy(0, 42, 13, MUL, multree,ID, "*") +yy(0, 43, 12, ADD, addtree,ID, "+") +yy(0, 44, 1, 0, 0, ',', ",") +yy(0, 45, 12, SUB, subtree,ID, "-") +yy(0, 46, 0, 0, 0, '.', ".") +yy(0, 47, 13, DIV, multree,'/', "/") +xx(DECR, 48, 0, SUB, subtree,ID, "--") +xx(DEREF, 49, 0, 0, 0, DEREF, "->") +xx(ANDAND, 50, 5, AND, andtree,ANDAND, "&&") +xx(OROR, 51, 4, OR, andtree,OROR, "||") +xx(LEQ, 52, 10, LE, cmptree,LEQ, "<=") +xx(EQL, 53, 9, EQ, eqtree, EQL, "==") +xx(NEQ, 54, 9, NE, eqtree, NEQ, "!=") +xx(GEQ, 55, 10, GE, cmptree,GEQ, ">=") +xx(RSHIFT, 56, 11, RSH, shtree, RSHIFT, ">>") +xx(LSHIFT, 57, 11, LSH, shtree, LSHIFT, "<<") +yy(0, 58, 0, 0, 0, ':', ":") +yy(0, 59, 0, 0, 0, IF, ";") +yy(0, 60, 10, LT, cmptree,'<', "<") +yy(0, 61, 2, ASGN, asgntree,'=', "=") +yy(0, 62, 10, GT, cmptree,'>', ">") +yy(0, 63, 0, 0, 0, '?', "?") +xx(ELLIPSIS, 64, 0, 0, 0, ELLIPSIS,"...") +xx(SIZEOF, 65, 0, 0, 0, ID, "sizeof") +yy(0, 66, 0, 0, 0, 0, 0) +xx(AUTO, 67, 0, 0, 0, STATIC, "auto") +xx(BREAK, 68, 0, 0, 0, IF, "break") +xx(CASE, 69, 0, 0, 0, IF, "case") +xx(CONTINUE, 70, 0, 0, 0, IF, "continue") +xx(DEFAULT, 71, 0, 0, 0, IF, "default") +xx(DO, 72, 0, 0, 0, IF, "do") +xx(ELSE, 73, 0, 0, 0, IF, "else") +xx(EXTERN, 74, 0, 0, 0, STATIC, "extern") +xx(FOR, 75, 0, 0, 0, IF, "for") +xx(GOTO, 76, 0, 0, 0, IF, "goto") +xx(IF, 77, 0, 0, 0, IF, "if") +xx(REGISTER, 78, 0, 0, 0, STATIC, "register") +xx(RETURN, 79, 0, 0, 0, IF, "return") +xx(SIGNED, 80, 0, 0, 0, CHAR, "signed") +xx(STATIC, 81, 0, 0, 0, STATIC, "static") +xx(SWITCH, 82, 0, 0, 0, IF, "switch") +xx(TYPEDEF, 83, 0, 0, 0, STATIC, "typedef") +xx(WHILE, 84, 0, 0, 0, IF, "while") +xx(TYPECODE, 85, 0, 0, 0, ID, "__typecode") +xx(FIRSTARG, 86, 0, 0, 0, ID, "__firstarg") +yy(0, 87, 0, 0, 0, 0, 0) +yy(0, 88, 0, 0, 0, 0, 0) +yy(0, 89, 0, 0, 0, 0, 0) +yy(0, 90, 0, 0, 0, 0, 0) +yy(0, 91, 0, 0, 0, '[', "[") +yy(0, 92, 0, 0, 0, 0, 0) +yy(0, 93, 0, 0, 0, ']', "]") +yy(0, 94, 7, BXOR, bittree,'^', "^") +yy(0, 95, 0, 0, 0, 0, 0) +yy(0, 96, 0, 0, 0, 0, 0) +yy(0, 97, 0, 0, 0, 0, 0) +yy(0, 98, 0, 0, 0, 0, 0) +yy(0, 99, 0, 0, 0, 0, 0) +yy(0, 100, 0, 0, 0, 0, 0) +yy(0, 101, 0, 0, 0, 0, 0) +yy(0, 102, 0, 0, 0, 0, 0) +yy(0, 103, 0, 0, 0, 0, 0) +yy(0, 104, 0, 0, 0, 0, 0) +yy(0, 105, 0, 0, 0, 0, 0) +yy(0, 106, 0, 0, 0, 0, 0) +yy(0, 107, 0, 0, 0, 0, 0) +yy(0, 108, 0, 0, 0, 0, 0) +yy(0, 109, 0, 0, 0, 0, 0) +yy(0, 110, 0, 0, 0, 0, 0) +yy(0, 111, 0, 0, 0, 0, 0) +yy(0, 112, 0, 0, 0, 0, 0) +yy(0, 113, 0, 0, 0, 0, 0) +yy(0, 114, 0, 0, 0, 0, 0) +yy(0, 115, 0, 0, 0, 0, 0) +yy(0, 116, 0, 0, 0, 0, 0) +yy(0, 117, 0, 0, 0, 0, 0) +yy(0, 118, 0, 0, 0, 0, 0) +yy(0, 119, 0, 0, 0, 0, 0) +yy(0, 120, 0, 0, 0, 0, 0) +yy(0, 121, 0, 0, 0, 0, 0) +yy(0, 122, 0, 0, 0, 0, 0) +yy(0, 123, 0, 0, 0, IF, "{") +yy(0, 124, 6, BOR, bittree,'|', "|") +yy(0, 125, 0, 0, 0, '}', "}") +yy(0, 126, 0, BCOM, 0, ID, "~") +xx(EOI, 127, 0, 0, 0, EOI, "end of input") +#undef xx +#undef yy diff --git a/code/tools/lcc/src/trace.c b/code/tools/lcc/src/trace.c new file mode 100644 index 0000000..3b9ba78 --- /dev/null +++ b/code/tools/lcc/src/trace.c @@ -0,0 +1,181 @@ +#include "c.h" + + +static char *fmt, *fp, *fmtend; /* format string, current & limit pointer */ +static Tree args; /* printf arguments */ +static Symbol frameno; /* local holding frame number */ + +/* appendstr - append str to the evolving format string, expanding it if necessary */ +static void appendstr(char *str) { + do + if (fp == fmtend) { + if (fp) { + char *s = allocate(2*(fmtend - fmt), FUNC); + strncpy(s, fmt, fmtend - fmt); + fp = s + (fmtend - fmt); + fmtend = s + 2*(fmtend - fmt); + fmt = s; + } else { + fp = fmt = allocate(80, FUNC); + fmtend = fmt + 80; + } + } + while ((*fp++ = *str++) != 0); + fp--; +} + +/* tracevalue - append format and argument to print the value of e */ +static void tracevalue(Tree e, int lev) { + Type ty = unqual(e->type); + + switch (ty->op) { + case INT: + if (ty == chartype || ty == signedchar) + appendstr("'\\x%02x'"); + else if (ty == longtype) + appendstr("0x%ld"); + else + appendstr("0x%d"); + break; + case UNSIGNED: + if (ty == chartype || ty == unsignedchar) + appendstr("'\\x%02x'"); + else if (ty == unsignedlong) + appendstr("0x%lx"); + else + appendstr("0x%x"); + break; + case FLOAT: + if (ty == longdouble) + appendstr("%Lg"); + else + appendstr("%g"); + break; + case POINTER: + if (unqual(ty->type) == chartype + || unqual(ty->type) == signedchar + || unqual(ty->type) == unsignedchar) { + static Symbol null; + if (null == NULL) + null = mkstr("(null)"); + tracevalue(cast(e, unsignedtype), lev + 1); + appendstr(" \"%.30s\""); + e = condtree(e, e, pointer(idtree(null->u.c.loc))); + } else { + appendstr("("); appendstr(typestring(ty, "")); appendstr(")0x%x"); + } + break; + case STRUCT: { + Field q; + appendstr("("); appendstr(typestring(ty, "")); appendstr("){"); + for (q = ty->u.sym->u.s.flist; q; q = q->link) { + appendstr(q->name); appendstr("="); + tracevalue(field(addrof(e), q->name), lev + 1); + if (q->link) + appendstr(","); + } + appendstr("}"); + return; + } + case UNION: + appendstr("("); appendstr(typestring(ty, "")); appendstr("){...}"); + return; + case ARRAY: + if (lev && ty->type->size > 0) { + int i; + e = pointer(e); + appendstr("{"); + for (i = 0; i < ty->size/ty->type->size; i++) { + Tree p = (*optree['+'])(ADD, e, consttree(i, inttype)); + if (isptr(p->type) && isarray(p->type->type)) + p = retype(p, p->type->type); + else + p = rvalue(p); + if (i) + appendstr(","); + tracevalue(p, lev + 1); + } + appendstr("}"); + } else + appendstr(typestring(ty, "")); + return; + default: + assert(0); + } + e = cast(e, promote(ty)); + args = tree(mkop(ARG,e->type), e->type, e, args); +} + +/* tracefinis - complete & generate the trace call to print */ +static void tracefinis(Symbol printer) { + Tree *ap; + Symbol p; + + *fp = 0; + p = mkstr(string(fmt)); + for (ap = &args; *ap; ap = &(*ap)->kids[1]) + ; + *ap = tree(ARG+P, charptype, pointer(idtree(p->u.c.loc)), 0); + walk(calltree(pointer(idtree(printer)), freturn(printer->type), args, NULL), 0, 0); + args = 0; + fp = fmtend = 0; +} + +/* tracecall - generate code to trace entry to f */ +static void tracecall(Symbol printer, Symbol f) { + int i; + Symbol counter = genident(STATIC, inttype, GLOBAL); + + defglobal(counter, BSS); + (*IR->space)(counter->type->size); + frameno = genident(AUTO, inttype, level); + addlocal(frameno); + appendstr(f->name); appendstr("#"); + tracevalue(asgn(frameno, incr(INCR, idtree(counter), consttree(1, inttype))), 0); + appendstr("("); + for (i = 0; f->u.f.callee[i]; i++) { + if (i) + appendstr(","); + appendstr(f->u.f.callee[i]->name); appendstr("="); + tracevalue(idtree(f->u.f.callee[i]), 0); + } + if (variadic(f->type)) + appendstr(",..."); + appendstr(") called\n"); + tracefinis(printer); +} + +/* tracereturn - generate code to trace return e */ +static void tracereturn(Symbol printer, Symbol f, Tree e) { + appendstr(f->name); appendstr("#"); + tracevalue(idtree(frameno), 0); + appendstr(" returned"); + if (freturn(f->type) != voidtype && e) { + appendstr(" "); + tracevalue(e, 0); + } + appendstr("\n"); + tracefinis(printer); +} + +/* trace_init - initialize for tracing */ +void trace_init(int argc, char *argv[]) { + int i; + static int inited; + + if (inited) + return; + inited = 1; + type_init(argc, argv); + if (IR) + for (i = 1; i < argc; i++) + if (strncmp(argv[i], "-t", 2) == 0 && strchr(argv[i], '=') == NULL) { + Symbol printer = mksymbol(EXTERN, + argv[i][2] ? &argv[i][2] : "printf", + ftype(inttype, ptr(qual(CONST, chartype)))); + printer->defined = 0; + attach((Apply)tracecall, printer, &events.entry); + attach((Apply)tracereturn, printer, &events.returns); + break; + } +} diff --git a/code/tools/lcc/src/tree.c b/code/tools/lcc/src/tree.c new file mode 100644 index 0000000..d2b6a91 --- /dev/null +++ b/code/tools/lcc/src/tree.c @@ -0,0 +1,223 @@ +#include "c.h" + + +int where = STMT; +static int warn; +static int nid = 1; /* identifies trees & nodes in debugging output */ +static struct nodeid { + int printed; + Tree node; +} ids[500]; /* if ids[i].node == p, then p's id is i */ + +static void printtree1(Tree, int, int); + +Tree tree(int op, Type type, Tree left, Tree right) { + Tree p; + + NEW0(p, where); + p->op = op; + p->type = type; + p->kids[0] = left; + p->kids[1] = right; + return p; +} + +Tree texpr(Tree (*f)(int), int tok, int a) { + int save = where; + Tree p; + + where = a; + p = (*f)(tok); + where = save; + return p; +} +static Tree root1(Tree p) { + if (p == NULL) + return p; + if (p->type == voidtype) + warn++; + switch (generic(p->op)) { + case COND: { + Tree q = p->kids[1]; + assert(q && q->op == RIGHT); + if (p->u.sym && q->kids[0] && generic(q->kids[0]->op) == ASGN) + q->kids[0] = root1(q->kids[0]->kids[1]); + else + q->kids[0] = root1(q->kids[0]); + if (p->u.sym && q->kids[1] && generic(q->kids[1]->op) == ASGN) + q->kids[1] = root1(q->kids[1]->kids[1]); + else + q->kids[1] = root1(q->kids[1]); + p->u.sym = 0; + if (q->kids[0] == 0 && q->kids[1] == 0) + p = root1(p->kids[0]); + } + break; + case AND: case OR: + if ((p->kids[1] = root1(p->kids[1])) == 0) + p = root1(p->kids[0]); + break; + case NOT: + if (warn++ == 0) + warning("expression with no effect elided\n"); + return root1(p->kids[0]); + case RIGHT: + if (p->kids[1] == 0) + return root1(p->kids[0]); + if (p->kids[0] && p->kids[0]->op == CALL+B + && p->kids[1] && p->kids[1]->op == INDIR+B) + /* avoid premature release of the CALL+B temporary */ + return p->kids[0]; + if (p->kids[0] && p->kids[0]->op == RIGHT + && p->kids[1] == p->kids[0]->kids[0]) + /* de-construct e++ construction */ + return p->kids[0]->kids[1]; + p = tree(RIGHT, p->type, root1(p->kids[0]), root1(p->kids[1])); + return p->kids[0] || p->kids[1] ? p : (Tree)0; + case EQ: case NE: case GT: case GE: case LE: case LT: + case ADD: case SUB: case MUL: case DIV: case MOD: + case LSH: case RSH: case BAND: case BOR: case BXOR: + if (warn++ == 0) + warning("expression with no effect elided\n"); + p = tree(RIGHT, p->type, root1(p->kids[0]), root1(p->kids[1])); + return p->kids[0] || p->kids[1] ? p : (Tree)0; + case INDIR: + if (p->type->size == 0 && unqual(p->type) != voidtype) + warning("reference to `%t' elided\n", p->type); + if (isptr(p->kids[0]->type) && isvolatile(p->kids[0]->type->type)) + warning("reference to `volatile %t' elided\n", p->type); + /* fall thru */ + case CVI: case CVF: case CVU: case CVP: + case NEG: case BCOM: case FIELD: + if (warn++ == 0) + warning("expression with no effect elided\n"); + return root1(p->kids[0]); + case ADDRL: case ADDRG: case ADDRF: case CNST: + if (needconst) + return p; + if (warn++ == 0) + warning("expression with no effect elided\n"); + return NULL; + case ARG: case ASGN: case CALL: case JUMP: case LABEL: + break; + default: assert(0); + } + return p; +} + +Tree root(Tree p) { + warn = 0; + return root1(p); +} + +char *opname(int op) { + static char *opnames[] = { + "", + "CNST", + "ARG", + "ASGN", + "INDIR", + "CVC", + "CVD", + "CVF", + "CVI", + "CVP", + "CVS", + "CVU", + "NEG", + "CALL", + "*LOAD*", + "RET", + "ADDRG", + "ADDRF", + "ADDRL", + "ADD", + "SUB", + "LSH", + "MOD", + "RSH", + "BAND", + "BCOM", + "BOR", + "BXOR", + "DIV", + "MUL", + "EQ", + "GE", + "GT", + "LE", + "LT", + "NE", + "JUMP", + "LABEL", + "AND", + "NOT", + "OR", + "COND", + "RIGHT", + "FIELD" + }, *suffixes[] = { + "0", "F", "D", "C", "S", "I", "U", "P", "V", "B", + "10","11","12","13","14","15" + }; + + if (generic(op) >= AND && generic(op) <= FIELD && opsize(op) == 0) + return opnames[opindex(op)]; + return stringf("%s%s%s", + opindex(op) > 0 && opindex(op) < NELEMS(opnames) ? + opnames[opindex(op)] : stringd(opindex(op)), + suffixes[optype(op)], opsize(op) > 0 ? stringd(opsize(op)) : ""); +} + +int nodeid(Tree p) { + int i = 1; + + ids[nid].node = p; + while (ids[i].node != p) + i++; + if (i == nid) + ids[nid++].printed = 0; + return i; +} + +/* printed - return pointer to ids[id].printed */ +int *printed(int id) { + if (id) + return &ids[id].printed; + nid = 1; + return 0; +} + +/* printtree - print tree p on fd */ +void printtree(Tree p, int fd) { + (void)printed(0); + printtree1(p, fd, 1); +} + +/* printtree1 - recursively print tree p */ +static void printtree1(Tree p, int fd, int lev) { + FILE *f = fd == 1 ? stdout : stderr; + int i; + static char blanks[] = " "; + + if (p == 0 || *printed(i = nodeid(p))) + return; + fprint(f, "#%d%S%S", i, blanks, i < 10 ? 2 : i < 100 ? 1 : 0, blanks, lev); + fprint(f, "%s %t", opname(p->op), p->type); + *printed(i) = 1; + for (i = 0; i < NELEMS(p->kids); i++) + if (p->kids[i]) + fprint(f, " #%d", nodeid(p->kids[i])); + if (p->op == FIELD && p->u.field) + fprint(f, " %s %d..%d", p->u.field->name, + fieldsize(p->u.field) + fieldright(p->u.field), fieldright(p->u.field)); + else if (generic(p->op) == CNST) + fprint(f, " %s", vtoa(p->type, p->u.v)); + else if (p->u.sym) + fprint(f, " %s", p->u.sym->name); + if (p->node) + fprint(f, " node=%p", p->node); + fprint(f, "\n"); + for (i = 0; i < NELEMS(p->kids); i++) + printtree1(p->kids[i], fd, lev + 1); +} diff --git a/code/tools/lcc/src/types.c b/code/tools/lcc/src/types.c new file mode 100644 index 0000000..4aa3d18 --- /dev/null +++ b/code/tools/lcc/src/types.c @@ -0,0 +1,748 @@ +#include "c.h" +#include + + +static Field isfield(const char *, Field); +static Type type(int, Type, int, int, void *); + +static struct entry { + struct type type; + struct entry *link; +} *typetable[128]; +static int maxlevel; + +static Symbol pointersym; + +Type chartype; /* char */ +Type doubletype; /* double */ +Type floattype; /* float */ +Type inttype; /* signed int */ +Type longdouble; /* long double */ +Type longtype; /* long */ +Type longlong; /* long long */ +Type shorttype; /* signed short int */ +Type signedchar; /* signed char */ +Type unsignedchar; /* unsigned char */ +Type unsignedlong; /* unsigned long int */ +Type unsignedlonglong; /* unsigned long long int */ +Type unsignedshort; /* unsigned short int */ +Type unsignedtype; /* unsigned int */ +Type funcptype; /* void (*)() */ +Type charptype; /* char* */ +Type voidptype; /* void* */ +Type voidtype; /* basic types: void */ +Type unsignedptr; /* unsigned type to hold void* */ +Type signedptr; /* signed type to hold void* */ +Type widechar; /* unsigned type that represents wchar_t */ + +static Type xxinit(int op, char *name, Metrics m) { + Symbol p = install(string(name), &types, GLOBAL, PERM); + Type ty = type(op, 0, m.size, m.align, p); + + assert(ty->align == 0 || ty->size%ty->align == 0); + p->type = ty; + p->addressed = m.outofline; + switch (ty->op) { + case INT: + p->u.limits.max.i = ones(8*ty->size)>>1; + p->u.limits.min.i = -p->u.limits.max.i - 1; + break; + case UNSIGNED: + p->u.limits.max.u = ones(8*ty->size); + p->u.limits.min.u = 0; + break; + case FLOAT: + if (ty->size == sizeof (float)) + p->u.limits.max.d = FLT_MAX; + else if (ty->size == sizeof (double)) + p->u.limits.max.d = DBL_MAX; + else + p->u.limits.max.d = LDBL_MAX; + p->u.limits.min.d = -p->u.limits.max.d; + break; + default: assert(0); + } + return ty; +} +static Type type(int op, Type ty, int size, int align, void *sym) { + unsigned h = (op^((unsigned long)ty>>3)) +&(NELEMS(typetable)-1); + struct entry *tn; + + if (op != FUNCTION && (op != ARRAY || size > 0)) + for (tn = typetable[h]; tn; tn = tn->link) + if (tn->type.op == op && tn->type.type == ty + && tn->type.size == size && tn->type.align == align + && tn->type.u.sym == sym) + return &tn->type; + NEW0(tn, PERM); + tn->type.op = op; + tn->type.type = ty; + tn->type.size = size; + tn->type.align = align; + tn->type.u.sym = sym; + tn->link = typetable[h]; + typetable[h] = tn; + return &tn->type; +} +void type_init(int argc, char *argv[]) { + static int inited; + int i; + + if (inited) + return; + inited = 1; + if (!IR) + return; + for (i = 1; i < argc; i++) { + int size, align, outofline; + if (strncmp(argv[i], "-unsigned_char=", 15) == 0) + IR->unsigned_char = argv[i][15] - '0'; +#define xx(name) \ + else if (sscanf(argv[i], "-" #name "=%d,%d,%d", &size, &align, &outofline) == 3) { \ + IR->name.size = size; IR->name.align = align; \ + IR->name.outofline = outofline; } + xx(charmetric) + xx(shortmetric) + xx(intmetric) + xx(longmetric) + xx(longlongmetric) + xx(floatmetric) + xx(doublemetric) + xx(longdoublemetric) + xx(ptrmetric) + xx(structmetric) +#undef xx + } +#define xx(v,name,op,metrics) v=xxinit(op,name,IR->metrics) + xx(chartype, "char", IR->unsigned_char ? UNSIGNED : INT,charmetric); + xx(doubletype, "double", FLOAT, doublemetric); + xx(floattype, "float", FLOAT, floatmetric); + xx(inttype, "int", INT, intmetric); + xx(longdouble, "long double", FLOAT, longdoublemetric); + xx(longtype, "long int", INT, longmetric); + xx(longlong, "long long int", INT, longlongmetric); + xx(shorttype, "short", INT, shortmetric); + xx(signedchar, "signed char", INT, charmetric); + xx(unsignedchar, "unsigned char", UNSIGNED,charmetric); + xx(unsignedlong, "unsigned long", UNSIGNED,longmetric); + xx(unsignedshort, "unsigned short", UNSIGNED,shortmetric); + xx(unsignedtype, "unsigned int", UNSIGNED,intmetric); + xx(unsignedlonglong,"unsigned long long",UNSIGNED,longlongmetric); +#undef xx + { + Symbol p; + p = install(string("void"), &types, GLOBAL, PERM); + voidtype = type(VOID, NULL, 0, 0, p); + p->type = voidtype; + } + pointersym = install(string("T*"), &types, GLOBAL, PERM); + pointersym->addressed = IR->ptrmetric.outofline; + pointersym->u.limits.max.p = (void*)ones(8*IR->ptrmetric.size); + pointersym->u.limits.min.p = 0; + voidptype = ptr(voidtype); + funcptype = ptr(func(voidtype, NULL, 1)); + charptype = ptr(chartype); +#define xx(v,t) if (v==NULL && t->size==voidptype->size && t->align==voidptype->align) v=t + xx(unsignedptr,unsignedshort); + xx(unsignedptr,unsignedtype); + xx(unsignedptr,unsignedlong); + xx(unsignedptr,unsignedlonglong); + if (unsignedptr == NULL) + unsignedptr = type(UNSIGNED, NULL, voidptype->size, voidptype->align, voidptype->u.sym); + xx(signedptr,shorttype); + xx(signedptr,inttype); + xx(signedptr,longtype); + xx(signedptr,longlong); + if (signedptr == NULL) + signedptr = type(INT, NULL, voidptype->size, voidptype->align, voidptype->u.sym); +#undef xx + widechar = unsignedshort; + for (i = 0; i < argc; i++) { +#define xx(name,type) \ + if (strcmp(argv[i], "-wchar_t=" #name) == 0) \ + widechar = type; + xx(unsigned_char,unsignedchar) + xx(unsigned_int,unsignedtype) + xx(unsigned_short,unsignedshort) + } +#undef xx +} +void rmtypes(int lev) { + if (maxlevel >= lev) { + int i; + maxlevel = 0; + for (i = 0; i < NELEMS(typetable); i++) { + struct entry *tn, **tq = &typetable[i]; + while ((tn = *tq) != NULL) + if (tn->type.op == FUNCTION) + tq = &tn->link; + else if (tn->type.u.sym && tn->type.u.sym->scope >= lev) + *tq = tn->link; + else { + if (tn->type.u.sym && tn->type.u.sym->scope > maxlevel) + maxlevel = tn->type.u.sym->scope; + tq = &tn->link; + } + + } + } +} +Type ptr(Type ty) { + return type(POINTER, ty, IR->ptrmetric.size, + IR->ptrmetric.align, pointersym); +} +Type deref(Type ty) { + if (isptr(ty)) + ty = ty->type; + else + error("type error: %s\n", "pointer expected"); + return isenum(ty) ? unqual(ty)->type : ty; +} +Type array(Type ty, int n, int a) { + assert(ty); + if (isfunc(ty)) { + error("illegal type `array of %t'\n", ty); + return array(inttype, n, 0); + } + if (isarray(ty) && ty->size == 0) + error("missing array size\n"); + if (ty->size == 0) { + if (unqual(ty) == voidtype) + error("illegal type `array of %t'\n", ty); + else if (Aflag >= 2) + warning("declaring type array of %t' is undefined\n", ty); + + } else if (n > INT_MAX/ty->size) { + error("size of `array of %t' exceeds %d bytes\n", + ty, INT_MAX); + n = 1; + } + return type(ARRAY, ty, n*ty->size, + a ? a : ty->align, NULL); +} +Type atop(Type ty) { + if (isarray(ty)) + return ptr(ty->type); + error("type error: %s\n", "array expected"); + return ptr(ty); +} +Type qual(int op, Type ty) { + if (isarray(ty)) + ty = type(ARRAY, qual(op, ty->type), ty->size, + ty->align, NULL); + else if (isfunc(ty)) + warning("qualified function type ignored\n"); + else if ((isconst(ty) && op == CONST) + || (isvolatile(ty) && op == VOLATILE)) + error("illegal type `%k %t'\n", op, ty); + else { + if (isqual(ty)) { + op += ty->op; + ty = ty->type; + } + ty = type(op, ty, ty->size, ty->align, NULL); + } + return ty; +} +Type func(Type ty, Type *proto, int style) { + if (ty && (isarray(ty) || isfunc(ty))) + error("illegal return type `%t'\n", ty); + ty = type(FUNCTION, ty, 0, 0, NULL); + ty->u.f.proto = proto; + ty->u.f.oldstyle = style; + return ty; +} +Type freturn(Type ty) { + if (isfunc(ty)) + return ty->type; + error("type error: %s\n", "function expected"); + return inttype; +} +int variadic(Type ty) { + if (isfunc(ty) && ty->u.f.proto) { + int i; + for (i = 0; ty->u.f.proto[i]; i++) + ; + return i > 1 && ty->u.f.proto[i-1] == voidtype; + } + return 0; +} +Type newstruct(int op, char *tag) { + Symbol p; + + assert(tag); + if (*tag == 0) + tag = stringd(genlabel(1)); + else + if ((p = lookup(tag, types)) != NULL && (p->scope == level + || (p->scope == PARAM && level == PARAM+1))) { + if (p->type->op == op && !p->defined) + return p->type; + error("redefinition of `%s' previously defined at %w\n", + p->name, &p->src); + } + p = install(tag, &types, level, PERM); + p->type = type(op, NULL, 0, 0, p); + if (p->scope > maxlevel) + maxlevel = p->scope; + p->src = src; + return p->type; +} +Field newfield(char *name, Type ty, Type fty) { + Field p, *q = &ty->u.sym->u.s.flist; + + if (name == NULL) + name = stringd(genlabel(1)); + for (p = *q; p; q = &p->link, p = *q) + if (p->name == name) + error("duplicate field name `%s' in `%t'\n", + name, ty); + NEW0(p, PERM); + *q = p; + p->name = name; + p->type = fty; + if (xref) { /* omit */ + if (ty->u.sym->u.s.ftab == NULL) /* omit */ + ty->u.sym->u.s.ftab = table(NULL, level); /* omit */ + install(name, &ty->u.sym->u.s.ftab, 0, PERM)->src = src;/* omit */ + } /* omit */ + return p; +} +int eqtype(Type ty1, Type ty2, int ret) { + if (ty1 == ty2) + return 1; + if (ty1->op != ty2->op) + return 0; + switch (ty1->op) { + case ENUM: case UNION: case STRUCT: + case UNSIGNED: case INT: case FLOAT: + return 0; + case POINTER: return eqtype(ty1->type, ty2->type, 1); + case VOLATILE: case CONST+VOLATILE: + case CONST: return eqtype(ty1->type, ty2->type, 1); + case ARRAY: if (eqtype(ty1->type, ty2->type, 1)) { + if (ty1->size == ty2->size) + return 1; + if (ty1->size == 0 || ty2->size == 0) + return ret; + } + return 0; + case FUNCTION: if (eqtype(ty1->type, ty2->type, 1)) { + Type *p1 = ty1->u.f.proto, *p2 = ty2->u.f.proto; + if (p1 == p2) + return 1; + if (p1 && p2) { + for ( ; *p1 && *p2; p1++, p2++) + if (eqtype(unqual(*p1), unqual(*p2), 1) == 0) + return 0; + if (*p1 == NULL && *p2 == NULL) + return 1; + } else { + if (variadic(p1 ? ty1 : ty2)) + return 0; + if (p1 == NULL) + p1 = p2; + for ( ; *p1; p1++) { + Type ty = unqual(*p1); + if (promote(ty) != (isenum(ty) ? ty->type : ty)) + return 0; + } + return 1; + } + } + return 0; + } + assert(0); return 0; +} +Type promote(Type ty) { + ty = unqual(ty); + switch (ty->op) { + case ENUM: + return inttype; + case INT: + if (ty->size < inttype->size) + return inttype; + break; + case UNSIGNED: + if (ty->size < inttype->size) + return inttype; + if (ty->size < unsignedtype->size) + return unsignedtype; + break; + case FLOAT: + if (ty->size < doubletype->size) + return doubletype; + } + return ty; +} +Type signedint(Type ty) { + if (ty->op == INT) + return ty; + assert(ty->op == UNSIGNED); +#define xx(t) if (ty->size == t->size) return t + xx(inttype); + xx(longtype); + xx(longlong); +#undef xx + assert(0); return NULL; +} +Type compose(Type ty1, Type ty2) { + if (ty1 == ty2) + return ty1; + assert(ty1->op == ty2->op); + switch (ty1->op) { + case POINTER: + return ptr(compose(ty1->type, ty2->type)); + case CONST+VOLATILE: + return qual(CONST, qual(VOLATILE, + compose(ty1->type, ty2->type))); + case CONST: case VOLATILE: + return qual(ty1->op, compose(ty1->type, ty2->type)); + case ARRAY: { Type ty = compose(ty1->type, ty2->type); + if (ty1->size && ((ty1->type->size && ty2->size == 0) || ty1->size == ty2->size)) + return array(ty, ty1->size/ty1->type->size, ty1->align); + if (ty2->size && ty2->type->size && ty1->size == 0) + return array(ty, ty2->size/ty2->type->size, ty2->align); + return array(ty, 0, 0); } + case FUNCTION: { Type *p1 = ty1->u.f.proto, *p2 = ty2->u.f.proto; + Type ty = compose(ty1->type, ty2->type); + List tlist = NULL; + if (p1 == NULL && p2 == NULL) + return func(ty, NULL, 1); + if (p1 && p2 == NULL) + return func(ty, p1, ty1->u.f.oldstyle); + if (p2 && p1 == NULL) + return func(ty, p2, ty2->u.f.oldstyle); + for ( ; *p1 && *p2; p1++, p2++) { + Type ty = compose(unqual(*p1), unqual(*p2)); + if (isconst(*p1) || isconst(*p2)) + ty = qual(CONST, ty); + if (isvolatile(*p1) || isvolatile(*p2)) + ty = qual(VOLATILE, ty); + tlist = append(ty, tlist); + } + assert(*p1 == NULL && *p2 == NULL); + return func(ty, ltov(&tlist, PERM), 0); } + } + assert(0); return NULL; +} +int ttob(Type ty) { + switch (ty->op) { + case CONST: case VOLATILE: case CONST+VOLATILE: + return ttob(ty->type); + case VOID: case INT: case UNSIGNED: case FLOAT: + return ty->op + sizeop(ty->size); + case POINTER: + return POINTER + sizeop(voidptype->size); + case FUNCTION: + return POINTER + sizeop(funcptype->size); + case ARRAY: case STRUCT: case UNION: + return STRUCT; + case ENUM: + return INT + sizeop(inttype->size); + } + assert(0); return INT; +} +Type btot(int op, int size) { +#define xx(ty) if (size == (ty)->size) return ty; + switch (optype(op)) { + case F: + xx(floattype); + xx(doubletype); + xx(longdouble); + assert(0); return 0; + case I: + if (chartype->op == INT) + xx(chartype); + xx(signedchar); + xx(shorttype); + xx(inttype); + xx(longtype); + xx(longlong); + assert(0); return 0; + case U: + if (chartype->op == UNSIGNED) + xx(chartype); + xx(unsignedchar); + xx(unsignedshort); + xx(unsignedtype); + xx(unsignedlong); + xx(unsignedlonglong); + assert(0); return 0; + case P: + xx(voidptype); + xx(funcptype); + assert(0); return 0; + } +#undef xx + assert(0); return 0; +} +int hasproto(Type ty) { + if (ty == 0) + return 1; + switch (ty->op) { + case CONST: case VOLATILE: case CONST+VOLATILE: case POINTER: + case ARRAY: + return hasproto(ty->type); + case FUNCTION: + return hasproto(ty->type) && ty->u.f.proto; + case STRUCT: case UNION: + case VOID: case FLOAT: case ENUM: case INT: case UNSIGNED: + return 1; + } + assert(0); return 0; +} +/* fieldlist - construct a flat list of fields in type ty */ +Field fieldlist(Type ty) { + return ty->u.sym->u.s.flist; +} + +/* fieldref - find field name of type ty, return entry */ +Field fieldref(const char *name, Type ty) { + Field p = isfield(name, unqual(ty)->u.sym->u.s.flist); + + if (p && xref) { + Symbol q; + assert(unqual(ty)->u.sym->u.s.ftab); + q = lookup(name, unqual(ty)->u.sym->u.s.ftab); + assert(q); + use(q, src); + } + return p; +} + +/* ftype - return a function type for rty function (ty,...)' */ +Type ftype(Type rty, Type ty) { + List list = append(ty, NULL); + + list = append(voidtype, list); + return func(rty, ltov(&list, PERM), 0); +} + +/* isfield - if name is a field in flist, return pointer to the field structure */ +static Field isfield(const char *name, Field flist) { + for ( ; flist; flist = flist->link) + if (flist->name == name) + break; + return flist; +} + +/* outtype - output type ty */ +void outtype(Type ty, FILE *f) { + switch (ty->op) { + case CONST+VOLATILE: case CONST: case VOLATILE: + fprint(f, "%k %t", ty->op, ty->type); + break; + case STRUCT: case UNION: case ENUM: + assert(ty->u.sym); + if (ty->size == 0) + fprint(f, "incomplete "); + assert(ty->u.sym->name); + if (*ty->u.sym->name >= '1' && *ty->u.sym->name <= '9') { + Symbol p = findtype(ty); + if (p == 0) + fprint(f, "%k defined at %w", ty->op, &ty->u.sym->src); + else + fprint(f, p->name); + } else { + fprint(f, "%k %s", ty->op, ty->u.sym->name); + if (ty->size == 0) + fprint(f, " defined at %w", &ty->u.sym->src); + } + break; + case VOID: case FLOAT: case INT: case UNSIGNED: + fprint(f, ty->u.sym->name); + break; + case POINTER: + fprint(f, "pointer to %t", ty->type); + break; + case FUNCTION: + fprint(f, "%t function", ty->type); + if (ty->u.f.proto && ty->u.f.proto[0]) { + int i; + fprint(f, "(%t", ty->u.f.proto[0]); + for (i = 1; ty->u.f.proto[i]; i++) + if (ty->u.f.proto[i] == voidtype) + fprint(f, ",..."); + else + fprint(f, ",%t", ty->u.f.proto[i]); + fprint(f, ")"); + } else if (ty->u.f.proto && ty->u.f.proto[0] == 0) + fprint(f, "(void)"); + + break; + case ARRAY: + if (ty->size > 0 && ty->type && ty->type->size > 0) { + fprint(f, "array %d", ty->size/ty->type->size); + while (ty->type && isarray(ty->type) && ty->type->type->size > 0) { + ty = ty->type; + fprint(f, ",%d", ty->size/ty->type->size); + } + } else + fprint(f, "incomplete array"); + if (ty->type) + fprint(f, " of %t", ty->type); + break; + default: assert(0); + } +} + +/* printdecl - output a C declaration for symbol p of type ty */ +void printdecl(Symbol p, Type ty) { + switch (p->sclass) { + case AUTO: + fprint(stderr, "%s;\n", typestring(ty, p->name)); + break; + case STATIC: case EXTERN: + fprint(stderr, "%k %s;\n", p->sclass, typestring(ty, p->name)); + break; + case TYPEDEF: case ENUM: + break; + default: assert(0); + } +} + +/* printproto - output a prototype declaration for function p */ +void printproto(Symbol p, Symbol callee[]) { + if (p->type->u.f.proto) + printdecl(p, p->type); + else { + int i; + List list = 0; + if (callee[0] == 0) + list = append(voidtype, list); + else + for (i = 0; callee[i]; i++) + list = append(callee[i]->type, list); + printdecl(p, func(freturn(p->type), ltov(&list, PERM), 0)); + } +} + +/* prtype - print details of type ty on f with given indent */ +static void prtype(Type ty, FILE *f, int indent, unsigned mark) { + switch (ty->op) { + default: + fprint(f, "(%d %d %d [%p])", ty->op, ty->size, ty->align, ty->u.sym); + break; + case FLOAT: case INT: case UNSIGNED: case VOID: + fprint(f, "(%k %d %d [\"%s\"])", ty->op, ty->size, ty->align, ty->u.sym->name); + break; + case CONST+VOLATILE: case CONST: case VOLATILE: case POINTER: case ARRAY: + fprint(f, "(%k %d %d ", ty->op, ty->size, ty->align); + prtype(ty->type, f, indent+1, mark); + fprint(f, ")"); + break; + case STRUCT: case UNION: + fprint(f, "(%k %d %d [\"%s\"]", ty->op, ty->size, ty->align, ty->u.sym->name); + if (ty->x.marked != mark) { + Field p; + ty->x.marked = mark; + for (p = ty->u.sym->u.s.flist; p; p = p->link) { + fprint(f, "\n%I", indent+1); + prtype(p->type, f, indent+1, mark); + fprint(f, " %s@%d", p->name, p->offset); + if (p->lsb) + fprint(f, ":%d..%d", + fieldsize(p) + fieldright(p), fieldright(p)); + } + fprint(f, "\n%I", indent); + } + fprint(f, ")"); + break; + case ENUM: + fprint(f, "(%k %d %d [\"%s\"]", ty->op, ty->size, ty->align, ty->u.sym->name); + if (ty->x.marked != mark) { + int i; + Symbol *p = ty->u.sym->u.idlist; + ty->x.marked = mark; + for (i = 0; p[i] != NULL; i++) + fprint(f, "%I%s=%d\n", indent+1, p[i]->name, p[i]->u.value); + } + fprint(f, ")"); + break; + case FUNCTION: + fprint(f, "(%k %d %d ", ty->op, ty->size, ty->align); + prtype(ty->type, f, indent+1, mark); + if (ty->u.f.proto) { + int i; + fprint(f, "\n%I{", indent+1); + for (i = 0; ty->u.f.proto[i]; i++) { + if (i > 0) + fprint(f, "%I", indent+2); + prtype(ty->u.f.proto[i], f, indent+2, mark); + fprint(f, "\n"); + } + fprint(f, "%I}", indent+1); + } + fprint(f, ")"); + break; + } +} + +/* printtype - print details of type ty on fd */ +void printtype(Type ty, int fd) { + static unsigned mark; + prtype(ty, fd == 1 ? stdout : stderr, 0, ++mark); + fprint(fd == 1 ? stdout : stderr, "\n"); +} + +/* typestring - return ty as C declaration for str, which may be "" */ +char *typestring(Type ty, char *str) { + for ( ; ty; ty = ty->type) { + Symbol p; + switch (ty->op) { + case CONST+VOLATILE: case CONST: case VOLATILE: + if (isptr(ty->type)) + str = stringf("%k %s", ty->op, str); + else + return stringf("%k %s", ty->op, typestring(ty->type, str)); + break; + case STRUCT: case UNION: case ENUM: + assert(ty->u.sym); + if ((p = findtype(ty)) != NULL) + return *str ? stringf("%s %s", p->name, str) : p->name; + if (*ty->u.sym->name >= '1' && *ty->u.sym->name <= '9') + warning("unnamed %k in prototype\n", ty->op); + if (*str) + return stringf("%k %s %s", ty->op, ty->u.sym->name, str); + else + return stringf("%k %s", ty->op, ty->u.sym->name); + case VOID: case FLOAT: case INT: case UNSIGNED: + return *str ? stringf("%s %s", ty->u.sym->name, str) : ty->u.sym->name; + case POINTER: + if (!ischar(ty->type) && (p = findtype(ty)) != NULL) + return *str ? stringf("%s %s", p->name, str) : p->name; + str = stringf(isarray(ty->type) || isfunc(ty->type) ? "(*%s)" : "*%s", str); + break; + case FUNCTION: + if ((p = findtype(ty)) != NULL) + return *str ? stringf("%s %s", p->name, str) : p->name; + if (ty->u.f.proto == 0) + str = stringf("%s()", str); + else if (ty->u.f.proto[0]) { + int i; + str = stringf("%s(%s", str, typestring(ty->u.f.proto[0], "")); + for (i = 1; ty->u.f.proto[i]; i++) + if (ty->u.f.proto[i] == voidtype) + str = stringf("%s, ...", str); + else + str = stringf("%s, %s", str, typestring(ty->u.f.proto[i], "")); + str = stringf("%s)", str); + } else + str = stringf("%s(void)", str); + break; + case ARRAY: + if ((p = findtype(ty)) != NULL) + return *str ? stringf("%s %s", p->name, str) : p->name; + if (ty->type && ty->type->size > 0) + str = stringf("%s[%d]", str, ty->size/ty->type->size); + else + str = stringf("%s[]", str); + break; + default: assert(0); + } + } + assert(0); return 0; +} + diff --git a/code/tools/lcc/src/x86.md b/code/tools/lcc/src/x86.md new file mode 100644 index 0000000..6c4e1c4 --- /dev/null +++ b/code/tools/lcc/src/x86.md @@ -0,0 +1,998 @@ +%{ +enum { EAX=0, ECX=1, EDX=2, EBX=3, ESI=6, EDI=7 }; +#include "c.h" +#define NODEPTR_TYPE Node +#define OP_LABEL(p) ((p)->op) +#define LEFT_CHILD(p) ((p)->kids[0]) +#define RIGHT_CHILD(p) ((p)->kids[1]) +#define STATE_LABEL(p) ((p)->x.state) +static void address(Symbol, Symbol, long); +static void blkfetch(int, int, int, int); +static void blkloop(int, int, int, int, int, int[]); +static void blkstore(int, int, int, int); +static void defaddress(Symbol); +static void defconst(int, int, Value); +static void defstring(int, char *); +static void defsymbol(Symbol); +static void doarg(Node); +static void emit2(Node); +static void export(Symbol); +static void clobber(Node); +static void function(Symbol, Symbol [], Symbol [], int); +static void global(Symbol); +static void import(Symbol); +static void local(Symbol); +static void progbeg(int, char **); +static void progend(void); +static void segment(int); +static void space(int); +static void target(Node); +extern int ckstack(Node, int); +extern int memop(Node); +extern int sametree(Node, Node); +static Symbol charreg[32], shortreg[32], intreg[32]; +static Symbol fltreg[32]; + +static Symbol charregw, shortregw, intregw, fltregw; + +static int cseg; + +static Symbol quo, rem; + +%} +%start stmt +%term CNSTF4=4113 +%term CNSTF8=8209 +%term CNSTF16=16401 +%term CNSTI1=1045 +%term CNSTI2=2069 +%term CNSTI4=4117 +%term CNSTI8=8213 +%term CNSTP4=4119 +%term CNSTP8=8215 +%term CNSTU1=1046 +%term CNSTU2=2070 +%term CNSTU4=4118 +%term CNSTU8=8214 + +%term ARGB=41 +%term ARGF4=4129 +%term ARGF8=8225 +%term ARGF16=16417 +%term ARGI4=4133 +%term ARGI8=8229 +%term ARGP4=4135 +%term ARGP8=8231 +%term ARGU4=4134 +%term ARGU8=8230 + +%term ASGNB=57 +%term ASGNF4=4145 +%term ASGNF8=8241 +%term ASGNF16=16433 +%term ASGNI1=1077 +%term ASGNI2=2101 +%term ASGNI4=4149 +%term ASGNI8=8245 +%term ASGNP4=4151 +%term ASGNP8=8247 +%term ASGNU1=1078 +%term ASGNU2=2102 +%term ASGNU4=4150 +%term ASGNU8=8246 + +%term INDIRB=73 +%term INDIRF4=4161 +%term INDIRF8=8257 +%term INDIRF16=16449 +%term INDIRI1=1093 +%term INDIRI2=2117 +%term INDIRI4=4165 +%term INDIRI8=8261 +%term INDIRP4=4167 +%term INDIRP8=8263 +%term INDIRU1=1094 +%term INDIRU2=2118 +%term INDIRU4=4166 +%term INDIRU8=8262 + +%term CVFF4=4209 +%term CVFF8=8305 +%term CVFF16=16497 +%term CVFI4=4213 +%term CVFI8=8309 + +%term CVIF4=4225 +%term CVIF8=8321 +%term CVIF16=16513 +%term CVII1=1157 +%term CVII2=2181 +%term CVII4=4229 +%term CVII8=8325 +%term CVIU1=1158 +%term CVIU2=2182 +%term CVIU4=4230 +%term CVIU8=8326 + +%term CVPP4=4247 +%term CVPP8=8343 +%term CVPP16=16535 +%term CVPU4=4246 +%term CVPU8=8342 + +%term CVUI1=1205 +%term CVUI2=2229 +%term CVUI4=4277 +%term CVUI8=8373 +%term CVUP4=4279 +%term CVUP8=8375 +%term CVUP16=16567 +%term CVUU1=1206 +%term CVUU2=2230 +%term CVUU4=4278 +%term CVUU8=8374 + +%term NEGF4=4289 +%term NEGF8=8385 +%term NEGF16=16577 +%term NEGI4=4293 +%term NEGI8=8389 + +%term CALLB=217 +%term CALLF4=4305 +%term CALLF8=8401 +%term CALLF16=16593 +%term CALLI4=4309 +%term CALLI8=8405 +%term CALLP4=4311 +%term CALLP8=8407 +%term CALLU4=4310 +%term CALLU8=8406 +%term CALLV=216 + +%term RETF4=4337 +%term RETF8=8433 +%term RETF16=16625 +%term RETI4=4341 +%term RETI8=8437 +%term RETP4=4343 +%term RETP8=8439 +%term RETU4=4342 +%term RETU8=8438 +%term RETV=248 + +%term ADDRGP4=4359 +%term ADDRGP8=8455 + +%term ADDRFP4=4375 +%term ADDRFP8=8471 + +%term ADDRLP4=4391 +%term ADDRLP8=8487 + +%term ADDF4=4401 +%term ADDF8=8497 +%term ADDF16=16689 +%term ADDI4=4405 +%term ADDI8=8501 +%term ADDP4=4407 +%term ADDP8=8503 +%term ADDU4=4406 +%term ADDU8=8502 + +%term SUBF4=4417 +%term SUBF8=8513 +%term SUBF16=16705 +%term SUBI4=4421 +%term SUBI8=8517 +%term SUBP4=4423 +%term SUBP8=8519 +%term SUBU4=4422 +%term SUBU8=8518 + +%term LSHI4=4437 +%term LSHI8=8533 +%term LSHU4=4438 +%term LSHU8=8534 + +%term MODI4=4453 +%term MODI8=8549 +%term MODU4=4454 +%term MODU8=8550 + +%term RSHI4=4469 +%term RSHI8=8565 +%term RSHU4=4470 +%term RSHU8=8566 + +%term BANDI4=4485 +%term BANDI8=8581 +%term BANDU4=4486 +%term BANDU8=8582 + +%term BCOMI4=4501 +%term BCOMI8=8597 +%term BCOMU4=4502 +%term BCOMU8=8598 + +%term BORI4=4517 +%term BORI8=8613 +%term BORU4=4518 +%term BORU8=8614 + +%term BXORI4=4533 +%term BXORI8=8629 +%term BXORU4=4534 +%term BXORU8=8630 + +%term DIVF4=4545 +%term DIVF8=8641 +%term DIVF16=16833 +%term DIVI4=4549 +%term DIVI8=8645 +%term DIVU4=4550 +%term DIVU8=8646 + +%term MULF4=4561 +%term MULF8=8657 +%term MULF16=16849 +%term MULI4=4565 +%term MULI8=8661 +%term MULU4=4566 +%term MULU8=8662 + +%term EQF4=4577 +%term EQF8=8673 +%term EQF16=16865 +%term EQI4=4581 +%term EQI8=8677 +%term EQU4=4582 +%term EQU8=8678 + +%term GEF4=4593 +%term GEF8=8689 +%term GEI4=4597 +%term GEI8=8693 +%term GEI16=16885 +%term GEU4=4598 +%term GEU8=8694 + +%term GTF4=4609 +%term GTF8=8705 +%term GTF16=16897 +%term GTI4=4613 +%term GTI8=8709 +%term GTU4=4614 +%term GTU8=8710 + +%term LEF4=4625 +%term LEF8=8721 +%term LEF16=16913 +%term LEI4=4629 +%term LEI8=8725 +%term LEU4=4630 +%term LEU8=8726 + +%term LTF4=4641 +%term LTF8=8737 +%term LTF16=16929 +%term LTI4=4645 +%term LTI8=8741 +%term LTU4=4646 +%term LTU8=8742 + +%term NEF4=4657 +%term NEF8=8753 +%term NEF16=16945 +%term NEI4=4661 +%term NEI8=8757 +%term NEU4=4662 +%term NEU8=8758 + +%term JUMPV=584 + +%term LABELV=600 + +%term LOADB=233 +%term LOADF4=4321 +%term LOADF8=8417 +%term LOADF16=16609 +%term LOADI1=1253 +%term LOADI2=2277 +%term LOADI4=4325 +%term LOADI8=8421 +%term LOADP4=4327 +%term LOADP8=8423 +%term LOADU1=1254 +%term LOADU2=2278 +%term LOADU4=4326 +%term LOADU8=8422 + +%term VREGP=711 +%% +reg: INDIRI1(VREGP) "# read register\n" +reg: INDIRU1(VREGP) "# read register\n" + +reg: INDIRI2(VREGP) "# read register\n" +reg: INDIRU2(VREGP) "# read register\n" + +reg: INDIRF4(VREGP) "# read register\n" +reg: INDIRI4(VREGP) "# read register\n" +reg: INDIRP4(VREGP) "# read register\n" +reg: INDIRU4(VREGP) "# read register\n" + +reg: INDIRF8(VREGP) "# read register\n" +reg: INDIRI8(VREGP) "# read register\n" +reg: INDIRP8(VREGP) "# read register\n" +reg: INDIRU8(VREGP) "# read register\n" + +stmt: ASGNI1(VREGP,reg) "# write register\n" +stmt: ASGNU1(VREGP,reg) "# write register\n" + +stmt: ASGNI2(VREGP,reg) "# write register\n" +stmt: ASGNU2(VREGP,reg) "# write register\n" + +stmt: ASGNF4(VREGP,reg) "# write register\n" +stmt: ASGNI4(VREGP,reg) "# write register\n" +stmt: ASGNP4(VREGP,reg) "# write register\n" +stmt: ASGNU4(VREGP,reg) "# write register\n" + +stmt: ASGNF8(VREGP,reg) "# write register\n" +stmt: ASGNI8(VREGP,reg) "# write register\n" +stmt: ASGNP8(VREGP,reg) "# write register\n" +stmt: ASGNU8(VREGP,reg) "# write register\n" +con: CNSTI1 "%a" +con: CNSTU1 "%a" + +con: CNSTI2 "%a" +con: CNSTU2 "%a" + +con: CNSTI4 "%a" +con: CNSTU4 "%a" +con: CNSTP4 "%a" + +con: CNSTI8 "%a" +con: CNSTU8 "%a" +con: CNSTP8 "%a" +stmt: reg "" +acon: ADDRGP4 "(%a)" +acon: con "(%0)" +base: ADDRGP4 "(%a)" +base: reg "[%0]" +base: ADDI4(reg,acon) "%1[%0]" +base: ADDP4(reg,acon) "%1[%0]" +base: ADDU4(reg,acon) "%1[%0]" +base: ADDRFP4 "(%a)[ebp]" +base: ADDRLP4 "(%a)[ebp]" +index: reg "%0" +index: LSHI4(reg,con1) "%0*2" +index: LSHI4(reg,con2) "%0*4" +index: LSHI4(reg,con3) "%0*8" + +con1: CNSTI4 "1" range(a, 1, 1) +con1: CNSTU4 "1" range(a, 1, 1) +con2: CNSTI4 "2" range(a, 2, 2) +con2: CNSTU4 "2" range(a, 2, 2) +con3: CNSTI4 "3" range(a, 3, 3) +con3: CNSTU4 "3" range(a, 3, 3) +index: LSHU4(reg,con1) "%0*2" +index: LSHU4(reg,con2) "%0*4" +index: LSHU4(reg,con3) "%0*8" +addr: base "%0" +addr: ADDI4(index,base) "%1[%0]" +addr: ADDP4(index,base) "%1[%0]" +addr: ADDU4(index,base) "%1[%0]" +addr: index "[%0]" +mem: INDIRI1(addr) "byte ptr %0" +mem: INDIRI2(addr) "word ptr %0" +mem: INDIRI4(addr) "dword ptr %0" +mem: INDIRU1(addr) "byte ptr %0" +mem: INDIRU2(addr) "word ptr %0" +mem: INDIRU4(addr) "dword ptr %0" +mem: INDIRP4(addr) "dword ptr %0" +rc: reg "%0" +rc: con "%0" + +mr: reg "%0" +mr: mem "%0" + +mrc0: mem "%0" +mrc0: rc "%0" +mrc1: mem "%0" 1 +mrc1: rc "%0" + +mrc3: mem "%0" 3 +mrc3: rc "%0" +reg: addr "lea %c,%0\n" 1 +reg: mrc0 "mov %c,%0\n" 1 +reg: LOADI1(reg) "# move\n" 1 +reg: LOADI2(reg) "# move\n" 1 +reg: LOADI4(reg) "# move\n" move(a) +reg: LOADU1(reg) "# move\n" 1 +reg: LOADU2(reg) "# move\n" 1 +reg: LOADU4(reg) "# move\n" move(a) +reg: LOADP4(reg) "# move\n" move(a) +reg: ADDI4(reg,mrc1) "?mov %c,%0\nadd %c,%1\n" 1 +reg: ADDP4(reg,mrc1) "?mov %c,%0\nadd %c,%1\n" 1 +reg: ADDU4(reg,mrc1) "?mov %c,%0\nadd %c,%1\n" 1 +reg: SUBI4(reg,mrc1) "?mov %c,%0\nsub %c,%1\n" 1 +reg: SUBP4(reg,mrc1) "?mov %c,%0\nsub %c,%1\n" 1 +reg: SUBU4(reg,mrc1) "?mov %c,%0\nsub %c,%1\n" 1 +reg: BANDI4(reg,mrc1) "?mov %c,%0\nand %c,%1\n" 1 +reg: BORI4(reg,mrc1) "?mov %c,%0\nor %c,%1\n" 1 +reg: BXORI4(reg,mrc1) "?mov %c,%0\nxor %c,%1\n" 1 +reg: BANDU4(reg,mrc1) "?mov %c,%0\nand %c,%1\n" 1 +reg: BORU4(reg,mrc1) "?mov %c,%0\nor %c,%1\n" 1 +reg: BXORU4(reg,mrc1) "?mov %c,%0\nxor %c,%1\n" 1 +stmt: ASGNI4(addr,ADDI4(mem,con1)) "inc %1\n" memop(a) +stmt: ASGNI4(addr,ADDU4(mem,con1)) "inc %1\n" memop(a) +stmt: ASGNP4(addr,ADDP4(mem,con1)) "inc %1\n" memop(a) +stmt: ASGNI4(addr,SUBI4(mem,con1)) "dec %1\n" memop(a) +stmt: ASGNI4(addr,SUBU4(mem,con1)) "dec %1\n" memop(a) +stmt: ASGNP4(addr,SUBP4(mem,con1)) "dec %1\n" memop(a) +stmt: ASGNI4(addr,ADDI4(mem,rc)) "add %1,%2\n" memop(a) +stmt: ASGNI4(addr,SUBI4(mem,rc)) "sub %1,%2\n" memop(a) +stmt: ASGNU4(addr,ADDU4(mem,rc)) "add %1,%2\n" memop(a) +stmt: ASGNU4(addr,SUBU4(mem,rc)) "sub %1,%2\n" memop(a) + +stmt: ASGNI4(addr,BANDI4(mem,rc)) "and %1,%2\n" memop(a) +stmt: ASGNI4(addr,BORI4(mem,rc)) "or %1,%2\n" memop(a) +stmt: ASGNI4(addr,BXORI4(mem,rc)) "xor %1,%2\n" memop(a) +stmt: ASGNU4(addr,BANDU4(mem,rc)) "and %1,%2\n" memop(a) +stmt: ASGNU4(addr,BORU4(mem,rc)) "or %1,%2\n" memop(a) +stmt: ASGNU4(addr,BXORU4(mem,rc)) "xor %1,%2\n" memop(a) +reg: BCOMI4(reg) "?mov %c,%0\nnot %c\n" 2 +reg: BCOMU4(reg) "?mov %c,%0\nnot %c\n" 2 +reg: NEGI4(reg) "?mov %c,%0\nneg %c\n" 2 + +stmt: ASGNI4(addr,BCOMI4(mem)) "not %1\n" memop(a) +stmt: ASGNU4(addr,BCOMU4(mem)) "not %1\n" memop(a) +stmt: ASGNI4(addr,NEGI4(mem)) "neg %1\n" memop(a) +reg: LSHI4(reg,con5) "?mov %c,%0\nsal %c,%1\n" 2 +reg: LSHU4(reg,con5) "?mov %c,%0\nshl %c,%1\n" 2 +reg: RSHI4(reg,con5) "?mov %c,%0\nsar %c,%1\n" 2 +reg: RSHU4(reg,con5) "?mov %c,%0\nshr %c,%1\n" 2 + +stmt: ASGNI4(addr,LSHI4(mem,con5)) "sal %1,%2\n" memop(a) +stmt: ASGNI4(addr,LSHU4(mem,con5)) "shl %1,%2\n" memop(a) +stmt: ASGNI4(addr,RSHI4(mem,con5)) "sar %1,%2\n" memop(a) +stmt: ASGNI4(addr,RSHU4(mem,con5)) "shr %1,%2\n" memop(a) + +con5: CNSTI4 "%a" range(a, 0, 31) + +reg: LSHI4(reg,reg) "?mov %c,%0\nmov ecx,%1\nsal %c,cl\n" 3 +reg: LSHU4(reg,reg) "?mov %c,%0\nmov ecx,%1\nshl %c,cl\n" 2 +reg: RSHI4(reg,reg) "?mov %c,%0\nmov ecx,%1\nsar %c,cl\n" 2 +reg: RSHU4(reg,reg) "?mov %c,%0\nmov ecx,%1\nshr %c,cl\n" 2 +reg: MULI4(reg,mrc3) "?mov %c,%0\nimul %c,%1\n" 14 +reg: MULI4(con,mr) "imul %c,%1,%0\n" 13 +reg: MULU4(reg,mr) "mul %1\n" 13 +reg: DIVU4(reg,reg) "xor edx,edx\ndiv %1\n" +reg: MODU4(reg,reg) "xor edx,edx\ndiv %1\n" +reg: DIVI4(reg,reg) "cdq\nidiv %1\n" +reg: MODI4(reg,reg) "cdq\nidiv %1\n" +reg: CVPU4(reg) "mov %c,%0\n" move(a) +reg: CVUP4(reg) "mov %c,%0\n" move(a) +reg: CVII4(INDIRI1(addr)) "movsx %c,byte ptr %0\n" 3 +reg: CVII4(INDIRI2(addr)) "movsx %c,word ptr %0\n" 3 +reg: CVUU4(INDIRU1(addr)) "movzx %c,byte ptr %0\n" 3 +reg: CVUU4(INDIRU2(addr)) "movzx %c,word ptr %0\n" 3 +reg: CVII4(reg) "# extend\n" 3 +reg: CVIU4(reg) "# extend\n" 3 +reg: CVUI4(reg) "# extend\n" 3 +reg: CVUU4(reg) "# extend\n" 3 + +reg: CVII1(reg) "# truncate\n" 1 +reg: CVII2(reg) "# truncate\n" 1 +reg: CVUU1(reg) "# truncate\n" 1 +reg: CVUU2(reg) "# truncate\n" 1 +stmt: ASGNI1(addr,rc) "mov byte ptr %0,%1\n" 1 +stmt: ASGNI2(addr,rc) "mov word ptr %0,%1\n" 1 +stmt: ASGNI4(addr,rc) "mov dword ptr %0,%1\n" 1 +stmt: ASGNU1(addr,rc) "mov byte ptr %0,%1\n" 1 +stmt: ASGNU2(addr,rc) "mov word ptr %0,%1\n" 1 +stmt: ASGNU4(addr,rc) "mov dword ptr %0,%1\n" 1 +stmt: ASGNP4(addr,rc) "mov dword ptr %0,%1\n" 1 +stmt: ARGI4(mrc3) "push %0\n" 1 +stmt: ARGU4(mrc3) "push %0\n" 1 +stmt: ARGP4(mrc3) "push %0\n" 1 +stmt: ASGNB(reg,INDIRB(reg)) "mov ecx,%a\nrep movsb\n" +stmt: ARGB(INDIRB(reg)) "sub esp,%a\nmov edi,esp\nmov ecx,%a\nrep movsb\n" + +memf: INDIRF8(addr) "qword ptr %0" +memf: INDIRF4(addr) "dword ptr %0" +memf: CVFF8(INDIRF4(addr)) "dword ptr %0" +reg: memf "fld %0\n" 3 +stmt: ASGNF8(addr,reg) "fstp qword ptr %0\n" 7 +stmt: ASGNF4(addr,reg) "fstp dword ptr %0\n" 7 +stmt: ASGNF4(addr,CVFF4(reg)) "fstp dword ptr %0\n" 7 +stmt: ARGF8(reg) "sub esp,8\nfstp qword ptr [esp]\n" +stmt: ARGF4(reg) "sub esp,4\nfstp dword ptr [esp]\n" +reg: NEGF8(reg) "fchs\n" +reg: NEGF4(reg) "fchs\n" +flt: memf " %0" +flt: reg "p st(1),st" +reg: ADDF8(reg,flt) "fadd%1\n" +reg: ADDF4(reg,flt) "fadd%1\n" +reg: DIVF8(reg,flt) "fdiv%1\n" +reg: DIVF4(reg,flt) "fdiv%1\n" +reg: MULF8(reg,flt) "fmul%1\n" +reg: MULF4(reg,flt) "fmul%1\n" +reg: SUBF8(reg,flt) "fsub%1\n" +reg: SUBF4(reg,flt) "fsub%1\n" +reg: CVFF8(reg) "# CVFF8\n" +reg: CVFF4(reg) "sub esp,4\nfstp dword ptr 0[esp]\nfld dword ptr 0[esp]\nadd esp,4\n" 12 + +reg: CVFI4(reg) "call __ftol\n" 31 +reg: CVIF8(INDIRI4(addr)) "fild dword ptr %0\n" 10 +reg: CVIF4(reg) "push %0\nfild dword ptr 0[esp]\nadd esp,4\n" 12 + +reg: CVIF8(reg) "push %0\nfild dword ptr 0[esp]\nadd esp,4\n" 12 + +addrj: ADDRGP4 "%a" +addrj: reg "%0" 2 +addrj: mem "%0" 2 + +stmt: JUMPV(addrj) "jmp %0\n" 3 +stmt: LABELV "%a:\n" +stmt: EQI4(mem,rc) "cmp %0,%1\nje %a\n" 5 +stmt: GEI4(mem,rc) "cmp %0,%1\njge %a\n" 5 +stmt: GTI4(mem,rc) "cmp %0,%1\njg %a\n" 5 +stmt: LEI4(mem,rc) "cmp %0,%1\njle %a\n" 5 +stmt: LTI4(mem,rc) "cmp %0,%1\njl %a\n" 5 +stmt: NEI4(mem,rc) "cmp %0,%1\njne %a\n" 5 +stmt: GEU4(mem,rc) "cmp %0,%1\njae %a\n" 5 +stmt: GTU4(mem,rc) "cmp %0,%1\nja %a\n" 5 +stmt: LEU4(mem,rc) "cmp %0,%1\njbe %a\n" 5 +stmt: LTU4(mem,rc) "cmp %0,%1\njb %a\n" 5 +stmt: EQI4(reg,mrc1) "cmp %0,%1\nje %a\n" 4 +stmt: GEI4(reg,mrc1) "cmp %0,%1\njge %a\n" 4 +stmt: GTI4(reg,mrc1) "cmp %0,%1\njg %a\n" 4 +stmt: LEI4(reg,mrc1) "cmp %0,%1\njle %a\n" 4 +stmt: LTI4(reg,mrc1) "cmp %0,%1\njl %a\n" 4 +stmt: NEI4(reg,mrc1) "cmp %0,%1\njne %a\n" 4 + +stmt: EQU4(reg,mrc1) "cmp %0,%1\nje %a\n" 4 +stmt: GEU4(reg,mrc1) "cmp %0,%1\njae %a\n" 4 +stmt: GTU4(reg,mrc1) "cmp %0,%1\nja %a\n" 4 +stmt: LEU4(reg,mrc1) "cmp %0,%1\njbe %a\n" 4 +stmt: LTU4(reg,mrc1) "cmp %0,%1\njb %a\n" 4 +stmt: NEU4(reg,mrc1) "cmp %0,%1\njne %a\n" 4 +cmpf: memf " %0" +cmpf: reg "p" +stmt: EQF8(cmpf,reg) "fcomp%0\nfstsw ax\nsahf\nje %a\n" +stmt: GEF8(cmpf,reg) "fcomp%0\nfstsw ax\nsahf\njbe %a\n" +stmt: GTF8(cmpf,reg) "fcomp%0\nfstsw ax\nsahf\njb %a\n" +stmt: LEF8(cmpf,reg) "fcomp%0\nfstsw ax\nsahf\njae %a\n" +stmt: LTF8(cmpf,reg) "fcomp%0\nfstsw ax\nsahf\nja %a\n" +stmt: NEF8(cmpf,reg) "fcomp%0\nfstsw ax\nsahf\njne %a\n" + +stmt: EQF4(cmpf,reg) "fcomp%0\nfstsw ax\nsahf\nje %a\n" +stmt: GEF4(cmpf,reg) "fcomp%0\nfstsw ax\nsahf\njbe %a\n" +stmt: GTF4(cmpf,reg) "fcomp%0\nfstsw ax\nsahf\njb %a\n" +stmt: LEF4(cmpf,reg) "fcomp%0\nfstsw ax\nsahf\njae %a\n" +stmt: LTF4(cmpf,reg) "fcomp%0\nfstsw ax\nsahf\nja %a\n" +stmt: NEF4(cmpf,reg) "fcomp%0\nfstsw ax\nsahf\njne %a\n" +reg: CALLI4(addrj) "call %0\nadd esp,%a\n" +reg: CALLU4(addrj) "call %0\nadd esp,%a\n" +reg: CALLP4(addrj) "call %0\nadd esp,%a\n" +stmt: CALLV(addrj) "call %0\nadd esp,%a\n" +reg: CALLF4(addrj) "call %0\nadd esp,%a\n" +reg: CALLF8(addrj) "call %0\nadd esp,%a\n" +stmt: CALLF4(addrj) "call %0\nadd esp,%a\nfstp\n" +stmt: CALLF8(addrj) "call %0\nadd esp,%a\nfstp\n" + +stmt: RETI4(reg) "# ret\n" +stmt: RETU4(reg) "# ret\n" +stmt: RETP4(reg) "# ret\n" +stmt: RETF4(reg) "# ret\n" +stmt: RETF8(reg) "# ret\n" +%% +static void progbeg(int argc, char *argv[]) { + int i; + + { + union { + char c; + int i; + } u; + u.i = 0; + u.c = 1; + swap = ((int)(u.i == 1)) != IR->little_endian; + } + parseflags(argc, argv); + intreg[EAX] = mkreg("eax", EAX, 1, IREG); + intreg[EDX] = mkreg("edx", EDX, 1, IREG); + intreg[ECX] = mkreg("ecx", ECX, 1, IREG); + intreg[EBX] = mkreg("ebx", EBX, 1, IREG); + intreg[ESI] = mkreg("esi", ESI, 1, IREG); + intreg[EDI] = mkreg("edi", EDI, 1, IREG); + + shortreg[EAX] = mkreg("ax", EAX, 1, IREG); + shortreg[ECX] = mkreg("cx", ECX, 1, IREG); + shortreg[EDX] = mkreg("dx", EDX, 1, IREG); + shortreg[EBX] = mkreg("bx", EBX, 1, IREG); + shortreg[ESI] = mkreg("si", ESI, 1, IREG); + shortreg[EDI] = mkreg("di", EDI, 1, IREG); + + charreg[EAX] = mkreg("al", EAX, 1, IREG); + charreg[ECX] = mkreg("cl", ECX, 1, IREG); + charreg[EDX] = mkreg("dl", EDX, 1, IREG); + charreg[EBX] = mkreg("bl", EBX, 1, IREG); + for (i = 0; i < 8; i++) + fltreg[i] = mkreg("%d", i, 0, FREG); + charregw = mkwildcard(charreg); + shortregw = mkwildcard(shortreg); + intregw = mkwildcard(intreg); + fltregw = mkwildcard(fltreg); + + tmask[IREG] = (1<x.regnode->mask |= 1<x.regnode->mask |= 1<op)) { + case MUL+U: + setreg(p, quo); + rtarget(p, 0, intreg[EAX]); + break; + case DIV+I: case DIV+U: + setreg(p, quo); + rtarget(p, 0, quo); + break; + case MOD+I: case MOD+U: + setreg(p, rem); + rtarget(p, 0, quo); + break; + case ASGN+B: + rtarget(p, 0, intreg[EDI]); + rtarget(p->kids[1], 0, intreg[ESI]); + break; + case ARG+B: + rtarget(p->kids[0], 0, intreg[ESI]); + break; + case CVF+I: + setreg(p, intreg[EAX]); + break; + case CALL+I: case CALL+U: case CALL+P: case CALL+V: + setreg(p, intreg[EAX]); + break; + case RET+I: case RET+U: case RET+P: + rtarget(p, 0, intreg[EAX]); + break; + } +} + +static void clobber(Node p) { + static int nstack = 0; + + assert(p); + nstack = ckstack(p, nstack); + switch (specific(p->op)) { + case RSH+I: case RSH+U: case LSH+I: case LSH+U: + if (generic(p->kids[1]->op) != CNST + && !( generic(p->kids[1]->op) == INDIR + && specific(p->kids[1]->kids[0]->op) == VREG+P + && p->kids[1]->syms[RX]->u.t.cse + && generic(p->kids[1]->syms[RX]->u.t.cse->op) == CNST +)) { + spill(1<op)==F) + +int ckstack(Node p, int n) { + int i; + + for (i = 0; i < NELEMS(p->x.kids) && p->x.kids[i]; i++) + if (isfp(p->x.kids[i])) + n--; + if (isfp(p) && p->count > 0) + n++; + if (n > 8) + error("expression too complicated\n"); + debug(fprint(stderr, "(ckstack(%x)=%d)\n", p, n)); + assert(n >= 0); + return n; +} +int memop(Node p) { + assert(p); + assert(generic(p->op) == ASGN); + assert(p->kids[0]); + assert(p->kids[1]); + if (generic(p->kids[1]->kids[0]->op) == INDIR + && sametree(p->kids[0], p->kids[1]->kids[0]->kids[0])) + return 3; + else + return LBURG_MAX; +} +int sametree(Node p, Node q) { + return p == NULL && q == NULL + || p && q && p->op == q->op && p->syms[0] == q->syms[0] + && sametree(p->kids[0], q->kids[0]) + && sametree(p->kids[1], q->kids[1]); +} +static void emit2(Node p) { + int op = specific(p->op); +#define preg(f) ((f)[getregnum(p->x.kids[0])]->x.name) + + if (op == CVI+I && opsize(p->op) == 4 && opsize(p->x.kids[0]->op) == 1) + print("movsx %s,%s\n", p->syms[RX]->x.name +, preg(charreg)); + else if (op == CVI+U && opsize(p->op) == 4 && opsize(p->x.kids[0]->op) == 1) + print("movsx %s,%s\n", p->syms[RX]->x.name +, preg(charreg)); + else if (op == CVI+I && opsize(p->op) == 4 && opsize(p->x.kids[0]->op) == 2) + print("movsx %s,%s\n", p->syms[RX]->x.name +, preg(shortreg)); + else if (op == CVI+U && opsize(p->op) == 4 && opsize(p->x.kids[0]->op) == 2) + print("movsx %s,%s\n", p->syms[RX]->x.name +, preg(shortreg)); + + else if (op == CVU+I && opsize(p->op) == 4 && opsize(p->x.kids[0]->op) == 1) + print("movzx %s,%s\n", p->syms[RX]->x.name +, preg(charreg)); + else if (op == CVU+U && opsize(p->op) == 4 && opsize(p->x.kids[0]->op) == 1) + print("movzx %s,%s\n", p->syms[RX]->x.name +, preg(charreg)); + else if (op == CVU+I && opsize(p->op) == 4 && opsize(p->x.kids[0]->op) == 2) + print("movzx %s,%s\n", p->syms[RX]->x.name +, preg(shortreg)); + else if (op == CVU+U && opsize(p->op) == 4 && opsize(p->x.kids[0]->op) == 2) + print("movzx %s,%s\n", p->syms[RX]->x.name +, preg(shortreg)); + else if (generic(op) == CVI || generic(op) == CVU || generic(op) == LOAD) { + char *dst = intreg[getregnum(p)]->x.name; + char *src = preg(intreg); + assert(opsize(p->op) <= opsize(p->x.kids[0]->op)); + if (dst != src) + print("mov %s,%s\n", dst, src); + } +} + +static void doarg(Node p) { + assert(p && p->syms[0]); + mkactual(4, p->syms[0]->u.c.v.i); +} +static void blkfetch(int k, int off, int reg, int tmp) {} +static void blkstore(int k, int off, int reg, int tmp) {} +static void blkloop(int dreg, int doff, int sreg, int soff, + int size, int tmps[]) {} +static void local(Symbol p) { + if (isfloat(p->type)) + p->sclass = AUTO; + if (askregvar(p, (*IR->x.rmap)(ttob(p->type))) == 0) + mkauto(p); +} +static void function(Symbol f, Symbol caller[], Symbol callee[], int n) { + int i; + + print("%s:\n", f->x.name); + print("push ebx\n"); + print("push esi\n"); + print("push edi\n"); + print("push ebp\n"); + print("mov ebp,esp\n"); + usedmask[0] = usedmask[1] = 0; + freemask[0] = freemask[1] = ~(unsigned)0; + offset = 16 + 4; + for (i = 0; callee[i]; i++) { + Symbol p = callee[i]; + Symbol q = caller[i]; + assert(q); + p->x.offset = q->x.offset = offset; + p->x.name = q->x.name = stringf("%d", p->x.offset); + p->sclass = q->sclass = AUTO; + offset += roundup(q->type->size, 4); + } + assert(caller[i] == 0); + offset = maxoffset = 0; + gencode(caller, callee); + framesize = roundup(maxoffset, 4); + if (framesize > 0) + print("sub esp,%d\n", framesize); + emitcode(); + print("mov esp,ebp\n"); + print("pop ebp\n"); + print("pop edi\n"); + print("pop esi\n"); + print("pop ebx\n"); + print("ret\n"); +} +static void defsymbol(Symbol p) { + if (p->scope >= LOCAL && p->sclass == STATIC) + p->x.name = stringf("L%d", genlabel(1)); + else if (p->generated) + p->x.name = stringf("L%s", p->name); + else if (p->scope == GLOBAL || p->sclass == EXTERN) + p->x.name = stringf("_%s", p->name); + else if (p->scope == CONSTANTS + && (isint(p->type) || isptr(p->type)) + && p->name[0] == '0' && p->name[1] == 'x') + p->x.name = stringf("0%sH", &p->name[2]); + else + p->x.name = p->name; +} +static void address(Symbol q, Symbol p, long n) { + if (p->scope == GLOBAL + || p->sclass == STATIC || p->sclass == EXTERN) + q->x.name = stringf("%s%s%D", + p->x.name, n >= 0 ? "+" : "", n); + else { + assert(n <= INT_MAX && n >= INT_MIN); + q->x.offset = p->x.offset + n; + q->x.name = stringd(q->x.offset); + } +} +static void defconst(int suffix, int size, Value v) { + if (suffix == I && size == 1) + print("db %d\n", v.u); + else if (suffix == I && size == 2) + print("dw %d\n", v.i); + else if (suffix == I && size == 4) + print("dd %d\n", v.i); + else if (suffix == U && size == 1) + print("db 0%xH\n", v.u); + else if (suffix == U && size == 2) + print("dw 0%xH\n", v.u); + else if (suffix == U && size == 4) + print("dd 0%xH\n", v.u); + else if (suffix == P && size == 4) + print("dd 0%xH\n", v.p); + else if (suffix == F && size == 4) { + float f = v.d; + print("dd 0%xH\n", *(unsigned *)&f); + } + else if (suffix == F && size == 8) { + double d = v.d; + unsigned *p = (unsigned *)&d; + print("dd 0%xH\ndd 0%xH\n", p[swap], p[!swap]); + } + else assert(0); +} +static void defaddress(Symbol p) { + print("dd %s\n", p->x.name); +} +static void defstring(int n, char *str) { + char *s; + + for (s = str; s < str + n; s++) + print("db %d\n", (*s)&0377); +} +static void export(Symbol p) { + print("public %s\n", p->x.name); +} +static void import(Symbol p) { + int oldseg = cseg; + + if (p->ref > 0) { + segment(0); + print("extrn %s:near\n", p->x.name); + segment(oldseg); + } +} +static void global(Symbol p) { + print("align %d\n", + p->type->align > 4 ? 4 : p->type->align); + print("%s label byte\n", p->x.name); + if (p->u.seg == BSS) + print("db %d dup (0)\n", p->type->size); +} +static void space(int n) { + if (cseg != BSS) + print("db %d dup (0)\n", n); +} +Interface x86IR = { + 1, 1, 0, /* char */ + 2, 2, 0, /* short */ + 4, 4, 0, /* int */ + 4, 4, 0, /* long */ + 4, 4, 0, /* long long */ + 4, 4, 1, /* float */ + 8, 4, 1, /* double */ + 8, 4, 1, /* long double */ + 4, 4, 0, /* T * */ + 0, 4, 0, /* struct; so that ARGB keeps stack aligned */ + 1, /* little_endian */ + 0, /* mulops_calls */ + 0, /* wants_callb */ + 1, /* wants_argb */ + 0, /* left_to_right */ + 0, /* wants_dag */ + 0, /* unsigned_char */ + address, + blockbeg, + blockend, + defaddress, + defconst, + defstring, + defsymbol, + emit, + export, + function, + gen, + global, + import, + local, + progbeg, + progend, + segment, + space, + 0, 0, 0, 0, 0, 0, 0, + {1, rmap, + blkfetch, blkstore, blkloop, + _label, + _rule, + _nts, + _kids, + _string, + _templates, + _isinstruction, + _ntname, + emit2, + doarg, + target, + clobber, +} +}; +static char rcsid[] = "$Id: x86.md 145 2001-10-17 21:53:10Z timo $"; diff --git a/code/tools/lcc/src/x86linux.md b/code/tools/lcc/src/x86linux.md new file mode 100644 index 0000000..d185f56 --- /dev/null +++ b/code/tools/lcc/src/x86linux.md @@ -0,0 +1,1081 @@ +%{ +/* x86/linux lburg spec. Derived from x86.md by +Marcos Ramirez +Horst von Brand +Jacob Navia +*/ +enum { EAX=0, ECX=1, EDX=2, EBX=3, ESI=6, EDI=7 }; +#include "c.h" +#define NODEPTR_TYPE Node +#define OP_LABEL(p) ((p)->op) +#define LEFT_CHILD(p) ((p)->kids[0]) +#define RIGHT_CHILD(p) ((p)->kids[1]) +#define STATE_LABEL(p) ((p)->x.state) +extern int ckstack(Node, int); +extern int memop(Node); +extern int sametree(Node, Node); +static Symbol charreg[32], shortreg[32], intreg[32]; +static Symbol fltreg[32]; + +static Symbol charregw, shortregw, intregw, fltregw; + +static int cseg; + +static Symbol quo, rem; + +extern char *stabprefix; +extern void stabblock(int, int, Symbol*); +extern void stabend(Coordinate *, Symbol, Coordinate **, Symbol *, Symbol *); +extern void stabfend(Symbol, int); +extern void stabinit(char *, int, char *[]); +extern void stabline(Coordinate *); +extern void stabsym(Symbol); +extern void stabtype(Symbol); + +static int pflag = 0; +static char rcsid[] = "$Id: x86linux.md 145 2001-10-17 21:53:10Z timo $"; + +#define hasargs(p) (p->syms[0] && p->syms[0]->u.c.v.i > 0 ? 0 : LBURG_MAX) +%} +%start stmt +%term CNSTF4=4113 +%term CNSTF8=8209 +%term CNSTF16=16401 +%term CNSTI1=1045 +%term CNSTI2=2069 +%term CNSTI4=4117 +%term CNSTI8=8213 +%term CNSTP4=4119 +%term CNSTP8=8215 +%term CNSTU1=1046 +%term CNSTU2=2070 +%term CNSTU4=4118 +%term CNSTU8=8214 + +%term ARGB=41 +%term ARGF4=4129 +%term ARGF8=8225 +%term ARGF16=16417 +%term ARGI4=4133 +%term ARGI8=8229 +%term ARGP4=4135 +%term ARGP8=8231 +%term ARGU4=4134 +%term ARGU8=8230 + +%term ASGNB=57 +%term ASGNF4=4145 +%term ASGNF8=8241 +%term ASGNF16=16433 +%term ASGNI1=1077 +%term ASGNI2=2101 +%term ASGNI4=4149 +%term ASGNI8=8245 +%term ASGNP4=4151 +%term ASGNP8=8247 +%term ASGNU1=1078 +%term ASGNU2=2102 +%term ASGNU4=4150 +%term ASGNU8=8246 + +%term INDIRB=73 +%term INDIRF4=4161 +%term INDIRF8=8257 +%term INDIRF16=16449 +%term INDIRI1=1093 +%term INDIRI2=2117 +%term INDIRI4=4165 +%term INDIRI8=8261 +%term INDIRP4=4167 +%term INDIRP8=8263 +%term INDIRU1=1094 +%term INDIRU2=2118 +%term INDIRU4=4166 +%term INDIRU8=8262 + +%term CVFF4=4209 +%term CVFF8=8305 +%term CVFF16=16497 +%term CVFI4=4213 +%term CVFI8=8309 + +%term CVIF4=4225 +%term CVIF8=8321 +%term CVIF16=16513 +%term CVII1=1157 +%term CVII2=2181 +%term CVII4=4229 +%term CVII8=8325 +%term CVIU1=1158 +%term CVIU2=2182 +%term CVIU4=4230 +%term CVIU8=8326 + +%term CVPP4=4247 +%term CVPP8=8343 +%term CVPP16=16535 +%term CVPU4=4246 +%term CVPU8=8342 + +%term CVUI1=1205 +%term CVUI2=2229 +%term CVUI4=4277 +%term CVUI8=8373 +%term CVUP4=4279 +%term CVUP8=8375 +%term CVUP16=16567 +%term CVUU1=1206 +%term CVUU2=2230 +%term CVUU4=4278 +%term CVUU8=8374 + +%term NEGF4=4289 +%term NEGF8=8385 +%term NEGF16=16577 +%term NEGI4=4293 +%term NEGI8=8389 + +%term CALLB=217 +%term CALLF4=4305 +%term CALLF8=8401 +%term CALLF16=16593 +%term CALLI4=4309 +%term CALLI8=8405 +%term CALLP4=4311 +%term CALLP8=8407 +%term CALLU4=4310 +%term CALLU8=8406 +%term CALLV=216 + +%term RETF4=4337 +%term RETF8=8433 +%term RETF16=16625 +%term RETI4=4341 +%term RETI8=8437 +%term RETP4=4343 +%term RETP8=8439 +%term RETU4=4342 +%term RETU8=8438 +%term RETV=248 + +%term ADDRGP4=4359 +%term ADDRGP8=8455 + +%term ADDRFP4=4375 +%term ADDRFP8=8471 + +%term ADDRLP4=4391 +%term ADDRLP8=8487 + +%term ADDF4=4401 +%term ADDF8=8497 +%term ADDF16=16689 +%term ADDI4=4405 +%term ADDI8=8501 +%term ADDP4=4407 +%term ADDP8=8503 +%term ADDU4=4406 +%term ADDU8=8502 + +%term SUBF4=4417 +%term SUBF8=8513 +%term SUBF16=16705 +%term SUBI4=4421 +%term SUBI8=8517 +%term SUBP4=4423 +%term SUBP8=8519 +%term SUBU4=4422 +%term SUBU8=8518 + +%term LSHI4=4437 +%term LSHI8=8533 +%term LSHU4=4438 +%term LSHU8=8534 + +%term MODI4=4453 +%term MODI8=8549 +%term MODU4=4454 +%term MODU8=8550 + +%term RSHI4=4469 +%term RSHI8=8565 +%term RSHU4=4470 +%term RSHU8=8566 + +%term BANDI4=4485 +%term BANDI8=8581 +%term BANDU4=4486 +%term BANDU8=8582 + +%term BCOMI4=4501 +%term BCOMI8=8597 +%term BCOMU4=4502 +%term BCOMU8=8598 + +%term BORI4=4517 +%term BORI8=8613 +%term BORU4=4518 +%term BORU8=8614 + +%term BXORI4=4533 +%term BXORI8=8629 +%term BXORU4=4534 +%term BXORU8=8630 + +%term DIVF4=4545 +%term DIVF8=8641 +%term DIVF16=16833 +%term DIVI4=4549 +%term DIVI8=8645 +%term DIVU4=4550 +%term DIVU8=8646 + +%term MULF4=4561 +%term MULF8=8657 +%term MULF16=16849 +%term MULI4=4565 +%term MULI8=8661 +%term MULU4=4566 +%term MULU8=8662 + +%term EQF4=4577 +%term EQF8=8673 +%term EQF16=16865 +%term EQI4=4581 +%term EQI8=8677 +%term EQU4=4582 +%term EQU8=8678 + +%term GEF4=4593 +%term GEF8=8689 +%term GEI4=4597 +%term GEI8=8693 +%term GEI16=16885 +%term GEU4=4598 +%term GEU8=8694 + +%term GTF4=4609 +%term GTF8=8705 +%term GTF16=16897 +%term GTI4=4613 +%term GTI8=8709 +%term GTU4=4614 +%term GTU8=8710 + +%term LEF4=4625 +%term LEF8=8721 +%term LEF16=16913 +%term LEI4=4629 +%term LEI8=8725 +%term LEU4=4630 +%term LEU8=8726 + +%term LTF4=4641 +%term LTF8=8737 +%term LTF16=16929 +%term LTI4=4645 +%term LTI8=8741 +%term LTU4=4646 +%term LTU8=8742 + +%term NEF4=4657 +%term NEF8=8753 +%term NEF16=16945 +%term NEI4=4661 +%term NEI8=8757 +%term NEU4=4662 +%term NEU8=8758 + +%term JUMPV=584 + +%term LABELV=600 + +%term LOADB=233 +%term LOADF4=4321 +%term LOADF8=8417 +%term LOADF16=16609 +%term LOADI1=1253 +%term LOADI2=2277 +%term LOADI4=4325 +%term LOADI8=8421 +%term LOADP4=4327 +%term LOADP8=8423 +%term LOADU1=1254 +%term LOADU2=2278 +%term LOADU4=4326 +%term LOADU8=8422 + +%term VREGP=711 +%% +reg: INDIRI1(VREGP) "# read register\n" +reg: INDIRU1(VREGP) "# read register\n" + +reg: INDIRI2(VREGP) "# read register\n" +reg: INDIRU2(VREGP) "# read register\n" + +reg: INDIRI4(VREGP) "# read register\n" +reg: INDIRP4(VREGP) "# read register\n" +reg: INDIRU4(VREGP) "# read register\n" + +reg: INDIRI8(VREGP) "# read register\n" +reg: INDIRP8(VREGP) "# read register\n" +reg: INDIRU8(VREGP) "# read register\n" + +freg: INDIRF4(VREGP) "# read register\n" +freg: INDIRF8(VREGP) "# read register\n" + +stmt: ASGNI1(VREGP,reg) "# write register\n" +stmt: ASGNU1(VREGP,reg) "# write register\n" + +stmt: ASGNI2(VREGP,reg) "# write register\n" +stmt: ASGNU2(VREGP,reg) "# write register\n" + +stmt: ASGNF4(VREGP,reg) "# write register\n" +stmt: ASGNI4(VREGP,reg) "# write register\n" +stmt: ASGNP4(VREGP,reg) "# write register\n" +stmt: ASGNU4(VREGP,reg) "# write register\n" + +stmt: ASGNF8(VREGP,reg) "# write register\n" +stmt: ASGNI8(VREGP,reg) "# write register\n" +stmt: ASGNP8(VREGP,reg) "# write register\n" +stmt: ASGNU8(VREGP,reg) "# write register\n" + +cnst: CNSTI1 "%a" +cnst: CNSTU1 "%a" + +cnst: CNSTI2 "%a" +cnst: CNSTU2 "%a" + +cnst: CNSTI4 "%a" +cnst: CNSTU4 "%a" +cnst: CNSTP4 "%a" + +cnst: CNSTI8 "%a" +cnst: CNSTU8 "%a" +cnst: CNSTP8 "%a" + +con: cnst "$%0" + +stmt: reg "" +stmt: freg "" + +acon: ADDRGP4 "%a" +acon: ADDRGP8 "%a" +acon: cnst "%0" + +baseaddr: ADDRGP4 "%a" +base: reg "(%0)" +base: ADDI4(reg,acon) "%1(%0)" +base: ADDP4(reg,acon) "%1(%0)" +base: ADDU4(reg,acon) "%1(%0)" +base: ADDRFP4 "%a(%%ebp)" +base: ADDRLP4 "%a(%%ebp)" + +index: reg "%0" +index: LSHI4(reg,con1) "%0,2" +index: LSHI4(reg,con2) "%0,4" +index: LSHI4(reg,con3) "%0,8" +index: LSHU4(reg,con1) "%0,2" +index: LSHU4(reg,con2) "%0,4" +index: LSHU4(reg,con3) "%0,8" + +con0: CNSTI4 "1" range(a, 0, 0) +con0: CNSTU4 "1" range(a, 0, 0) +con1: CNSTI4 "1" range(a, 1, 1) +con1: CNSTU4 "1" range(a, 1, 1) +con2: CNSTI4 "2" range(a, 2, 2) +con2: CNSTU4 "2" range(a, 2, 2) +con3: CNSTI4 "3" range(a, 3, 3) +con3: CNSTU4 "3" range(a, 3, 3) + +addr: base "%0" +addr: baseaddr "%0" +addr: ADDI4(index,baseaddr) "%1(,%0)" +addr: ADDP4(index,baseaddr) "%1(,%0)" +addr: ADDU4(index,baseaddr) "%1(,%0)" + +addr: ADDI4(reg,baseaddr) "%1(%0)" +addr: ADDP4(reg,baseaddr) "%1(%0)" +addr: ADDU4(reg,baseaddr) "%1(%0)" + +addr: ADDI4(index,reg) "(%1,%0)" +addr: ADDP4(index,reg) "(%1,%0)" +addr: ADDU4(index,reg) "(%1,%0)" + +addr: index "(,%0)" + +mem1: INDIRI1(addr) "%0" +mem1: INDIRU1(addr) "%0" +mem2: INDIRI2(addr) "%0" +mem2: INDIRU2(addr) "%0" +mem4: INDIRI4(addr) "%0" +mem4: INDIRU4(addr) "%0" +mem4: INDIRP4(addr) "%0" + +rc: reg "%0" +rc: con "%0" + +mr: reg "%0" +mr: mem4 "%0" + +mr1: reg "%0" +mr1: mem1 "%0" + +mr2: reg "%0" +mr2: mem2 "%0" + +mrc: mem4 "%0" 1 +mrc: mem1 "%0" 1 +mrc: mem2 "%0" 1 +mrc: rc "%0" + +reg: addr "leal %0,%c\n" 1 +reg: mr "movl %0,%c\n" 1 +reg: mr1 "movb %0,%c\n" 1 +reg: mr2 "movw %0,%c\n" 1 +reg: con "movl %0,%c\n" 1 + +reg: LOADI1(reg) "# move\n" 1 +reg: LOADI2(reg) "# move\n" 1 +reg: LOADI4(reg) "# move\n" move(a) +reg: LOADU1(reg) "# move\n" 1 +reg: LOADU2(reg) "# move\n" 1 +reg: LOADU4(reg) "# move\n" move(a) +reg: LOADP4(reg) "# move\n" move(a) +reg: ADDI4(reg,mrc) "?movl %0,%c\naddl %1,%c\n" 1 +reg: ADDP4(reg,mrc) "?movl %0,%c\naddl %1,%c\n" 1 +reg: ADDU4(reg,mrc) "?movl %0,%c\naddl %1,%c\n" 1 +reg: SUBI4(reg,mrc) "?movl %0,%c\nsubl %1,%c\n" 1 +reg: SUBP4(reg,mrc) "?movl %0,%c\nsubl %1,%c\n" 1 +reg: SUBU4(reg,mrc) "?movl %0,%c\nsubl %1,%c\n" 1 +reg: BANDI4(reg,mrc) "?movl %0,%c\nandl %1,%c\n" 1 +reg: BORI4(reg,mrc) "?movl %0,%c\norl %1,%c\n" 1 +reg: BXORI4(reg,mrc) "?movl %0,%c\nxorl %1,%c\n" 1 +reg: BANDU4(reg,mrc) "?movl %0,%c\nandl %1,%c\n" 1 +reg: BORU4(reg,mrc) "?movl %0,%c\norl %1,%c\n" 1 +reg: BXORU4(reg,mrc) "?movl %0,%c\nxorl %1,%c\n" 1 + +stmt: ASGNI4(addr,ADDI4(mem4,con1)) "incl %1\n" memop(a) +stmt: ASGNI4(addr,ADDU4(mem4,con1)) "incl %1\n" memop(a) +stmt: ASGNP4(addr,ADDP4(mem4,con1)) "incl %1\n" memop(a) +stmt: ASGNI4(addr,SUBI4(mem4,con1)) "decl %1\n" memop(a) +stmt: ASGNI4(addr,SUBU4(mem4,con1)) "decl %1\n" memop(a) +stmt: ASGNP4(addr,SUBP4(mem4,con1)) "decl %1\n" memop(a) +stmt: ASGNI4(addr,ADDI4(mem4,rc)) "addl %2,%1\n" memop(a) +stmt: ASGNI4(addr,SUBI4(mem4,rc)) "sub %2,%1\n" memop(a) +stmt: ASGNU4(addr,ADDU4(mem4,rc)) "add %2,%1\n" memop(a) +stmt: ASGNU4(addr,SUBU4(mem4,rc)) "sub %2,%1\n" memop(a) + +stmt: ASGNI4(addr,BANDI4(mem4,rc)) "andl %2,%1\n" memop(a) +stmt: ASGNI4(addr,BORI4(mem4,rc)) "orl %2,%1\n" memop(a) +stmt: ASGNI4(addr,BXORI4(mem4,rc)) "xorl %2,%1\n" memop(a) +stmt: ASGNU4(addr,BANDU4(mem4,rc)) "andl %2,%1\n" memop(a) +stmt: ASGNU4(addr,BORU4(mem4,rc)) "orl %2,%1\n" memop(a) +stmt: ASGNU4(addr,BXORU4(mem4,rc)) "xorl %2,%1\n" memop(a) +reg: BCOMI4(reg) "?movl %0,%c\nnotl %c\n" 2 +reg: BCOMU4(reg) "?movl %0,%c\nnotl %c\n" 2 +reg: NEGI4(reg) "?movl %0,%c\nnegl %c\n" 2 + +stmt: ASGNI4(addr,BCOMI4(mem4)) "notl %1\n" memop(a) +stmt: ASGNU4(addr,BCOMU4(mem4)) "notl %1\n" memop(a) +stmt: ASGNI4(addr,NEGI4(mem4)) "negl %1\n" memop(a) +reg: LSHI4(reg,rc5) "?movl %0,%c\nsall %1,%c\n" 2 +reg: LSHU4(reg,rc5) "?movl %0,%c\nshll %1,%c\n" 2 +reg: RSHI4(reg,rc5) "?movl %0,%c\nsarl %1,%c\n" 2 +reg: RSHU4(reg,rc5) "?movl %0,%c\nshrl %1,%c\n" 2 + +stmt: ASGNI4(addr,LSHI4(mem4,rc5)) "sall %2,%1\n" memop(a) +stmt: ASGNI4(addr,LSHU4(mem4,rc5)) "shll %2,%1\n" memop(a) +stmt: ASGNI4(addr,RSHI4(mem4,rc5)) "sarl %2,%1\n" memop(a) +stmt: ASGNI4(addr,RSHU4(mem4,rc5)) "shrl %2,%1\n" memop(a) + +rc5: CNSTI4 "$%a" range(a, 0, 31) +rc5: reg "%%cl" +reg: MULI4(reg,mrc) "?movl %0,%c\nimull %1,%c\n" 14 +reg: MULI4(con,mr) "imul %0,%1,%c\n" 13 +reg: MULU4(reg,mr) "mull %1\n" 13 +reg: DIVU4(reg,reg) "xorl %%edx,%%edx\ndivl %1\n" +reg: MODU4(reg,reg) "xorl %%edx,%%edx\ndivl %1\n" +reg: DIVI4(reg,reg) "cdq\nidivl %1\n" +reg: MODI4(reg,reg) "cdq\nidivl %1\n" +reg: CVPU4(reg) "movl %0,%c\n" move(a) +reg: CVUP4(reg) "movl %0,%c\n" move(a) +reg: CVII4(INDIRI1(addr)) "movsbl %0,%c\n" 3 +reg: CVII4(INDIRI2(addr)) "movswl %0,%c\n" 3 +reg: CVUU4(INDIRU1(addr)) "movzbl %0,%c\n" 3 +reg: CVUU4(INDIRU2(addr)) "movzwl %0,%c\n" 3 +reg: CVII4(reg) "# extend\n" 3 +reg: CVIU4(reg) "# extend\n" 3 +reg: CVUI4(reg) "# extend\n" 3 +reg: CVUU4(reg) "# extend\n" 3 + +reg: CVII1(reg) "# truncate\n" 1 +reg: CVII2(reg) "# truncate\n" 1 +reg: CVUU1(reg) "# truncate\n" 1 +reg: CVUU2(reg) "# truncate\n" 1 + +mrca: mem4 "%0" +mrca: rc "%0" +mrca: ADDRGP4 "$%a" +mrca: ADDRGP8 "$%a" + +stmt: ASGNI1(addr,rc) "movb %1,%0\n" 1 +stmt: ASGNI2(addr,rc) "movw %1,%0\n" 1 +stmt: ASGNI4(addr,rc) "movl %1,%0\n" 1 +stmt: ASGNU1(addr,rc) "movb %1,%0\n" 1 +stmt: ASGNU2(addr,rc) "movw %1,%0\n" 1 +stmt: ASGNU4(addr,rc) "movl %1,%0\n" 1 +stmt: ASGNP4(addr,rc) "movl %1,%0\n" 1 +stmt: ARGI4(mrca) "pushl %0\n" 1 +stmt: ARGU4(mrca) "pushl %0\n" 1 +stmt: ARGP4(mrca) "pushl %0\n" 1 +stmt: ASGNB(reg,INDIRB(reg)) "movl $%a,%%ecx\nrep\nmovsb\n" +stmt: ARGB(INDIRB(reg)) "subl $%a,%%esp\nmovl %%esp,%%edi\nmovl $%a,%%ecx\nrep\nmovsb\n" + +memf: INDIRF8(addr) "l %0" +memf: INDIRF4(addr) "s %0" +memf: CVFF8(INDIRF4(addr)) "s %0" +memf: CVFF4(INDIRF8(addr)) "l %0" + +freg: memf "fld%0\n" 3 + +stmt: ASGNF8(addr,freg) "fstpl %0\n" 7 +stmt: ASGNF4(addr,freg) "fstps %0\n" 7 +stmt: ASGNF4(addr,CVFF4(freg)) "fstps %0\n" 7 + +stmt: ARGF8(freg) "subl $8,%%esp\nfstpl (%%esp)\n" +stmt: ARGF4(freg) "subl $4,%%esp\nfstps (%%esp)\n" +freg: NEGF8(freg) "fchs\n" +freg: NEGF4(freg) "fchs\n" + +flt: memf "%0" +flt: freg "p %%st(1),%%st" + +freg: ADDF4(freg,flt) "fadd%1\n" +freg: ADDF8(freg,flt) "fadd%1\n" + +freg: DIVF4(freg,flt) "fdiv%1\n" +freg: DIVF8(freg,flt) "fdiv%1\n" + +freg: MULF4(freg,flt) "fmul%1\n" +freg: MULF8(freg,flt) "fmul%1\n" + +freg: SUBF4(freg,flt) "fsub%1\n" +freg: SUBF8(freg,flt) "fsub%1\n" + +freg: CVFF8(freg) "# CVFF8\n" +freg: CVFF4(freg) "sub $4,%%esp\nfstps (%%esp)\nflds (%%esp)\naddl $4,%%esp\n" 12 + +stmt: ASGNI4(addr,CVFI4(freg)) "fistpl %0\n" 29 +reg: CVFI4(freg) "subl $4,%%esp\nfistpl 0(%%esp)\npopl %c\n" 31 + +freg: CVIF8(INDIRI4(addr)) "fildl %0\n" 10 +freg: CVIF8(reg) "pushl %0\nfildl (%%esp)\naddl $4,%%esp\n" 12 + +freg: CVIF4(INDIRI4(addr)) "fildl %0\n" 10 +freg: CVIF4(reg) "pushl %0\nfildl (%%esp)\naddl $4,%%esp\n" 12 + +addrj: ADDRGP4 "%a" +addrj: reg "*%0" 2 +addrj: mem4 "*%0" 2 + +stmt: LABELV "%a:\n" +stmt: JUMPV(addrj) "jmp %0\n" 3 +stmt: EQI4(mem4,rc) "cmpl %1,%0\nje %a\n" 5 +stmt: GEI4(mem4,rc) "cmpl %1,%0\njge %a\n" 5 +stmt: GTI4(mem4,rc) "cmpl %1,%0\njg %a\n" 5 +stmt: LEI4(mem4,rc) "cmpl %1,%0\njle %a\n" 5 +stmt: LTI4(mem4,rc) "cmpl %1,%0\njl %a\n" 5 +stmt: NEI4(mem4,rc) "cmpl %1,%0\njne %a\n" 5 +stmt: GEU4(mem4,rc) "cmpl %1,%0\njae %a\n" 5 +stmt: GTU4(mem4,rc) "cmpl %1,%0\nja %a\n" 5 +stmt: LEU4(mem4,rc) "cmpl %1,%0\njbe %a\n" 5 +stmt: LTU4(mem4,rc) "cmpl %1,%0\njb %a\n" 5 +stmt: EQI4(reg,mrc) "cmpl %1,%0\nje %a\n" 4 +stmt: GEI4(reg,mrc) "cmpl %1,%0\njge %a\n" 4 +stmt: GTI4(reg,mrc) "cmpl %1,%0\njg %a\n" 4 +stmt: LEI4(reg,mrc) "cmpl %1,%0\njle %a\n" 4 +stmt: LTI4(reg,mrc) "cmpl %1,%0\njl %a\n" 4 +stmt: NEI4(reg,mrc) "cmpl %1,%0\njne %a\n" 4 + +stmt: EQU4(reg,mrc) "cmpl %1,%0\nje %a\n" 4 +stmt: GEU4(reg,mrc) "cmpl %1,%0\njae %a\n" 4 +stmt: GTU4(reg,mrc) "cmpl %1,%0\nja %a\n" 4 +stmt: LEU4(reg,mrc) "cmpl %1,%0\njbe %a\n" 4 +stmt: LTU4(reg,mrc) "cmpl %1,%0\njb %a\n" 4 +stmt: NEU4(reg,mrc) "cmpl %1,%0\njne %a\n" 4 + +stmt: EQI4(BANDU4(mr,con),con0) "testl %1,%0\nje %a\n" 3 +stmt: NEI4(BANDU4(mr,con),con0) "testl %1,%0\njne %a\n" + +stmt: EQI4(BANDU4(CVII2(INDIRI2(addr)),con),con0) "testw %1,%0\nje %a\n" +stmt: NEI4(BANDU4(CVII2(INDIRI2(addr)),con),con0) "testw %1,%0\njne %a\n" +stmt: EQI4(BANDU4(CVIU2(INDIRI2(addr)),con),con0) "testw %1,%0\nje %a\n" +stmt: NEI4(BANDU4(CVIU2(INDIRI2(addr)),con),con0) "testw %1,%0\njne %a\n" +stmt: EQI4(BANDU4(CVII1(INDIRI1(addr)),con),con0) "testb %1,%0\nje %a\n" + +cmpf: INDIRF8(addr) "l %0" +cmpf: INDIRF4(addr) "s %0" +cmpf: CVFF8(INDIRF4(addr)) "s %0" +cmpf: freg "p" + +stmt: EQF8(cmpf,freg) "fcomp%0\nfstsw %%ax\nsahf\nje %a\n" +stmt: GEF8(cmpf,freg) "fcomp%0\nfstsw %%ax\nsahf\njbe %a\n" +stmt: GTF8(cmpf,freg) "fcomp%0\nfstsw %%ax\nsahf\njb %a\n" +stmt: LEF8(cmpf,freg) "fcomp%0\nfstsw %%ax\nsahf\njae %a\n" +stmt: LTF8(cmpf,freg) "fcomp%0\nfstsw %%ax\nsahf\nja %a\n" +stmt: NEF8(cmpf,freg) "fcomp%0\nfstsw %%ax\nsahf\njne %a\n" + +stmt: EQF4(cmpf,freg) "fcomp%0\nfstsw %%ax\nsahf\nje %a\n" +stmt: GEF4(cmpf,freg) "fcomp%0\nfstsw %%ax\nsahf\njbe %a\n" +stmt: GTF4(cmpf,freg) "fcomp%0\nfstsw %%ax\nsahf\njb %a\n" +stmt: LEF4(cmpf,freg) "fcomp%0\nfstsw %%ax\nsahf\njae %a\n" +stmt: LTF4(cmpf,freg) "fcomp%0\nfstsw %%ax\nsahf\nja %a\n" +stmt: NEF4(cmpf,freg) "fcomp%0\nfstsw %%ax\nsahf\njne %a\n" + +freg: DIVF8(freg,CVIF8(INDIRI4(addr))) "fidivl %1\n" +freg: DIVF8(CVIF8(INDIRI4(addr)),freg) "fidivrl %0\n" +freg: DIVF8(freg,CVIF8(CVII2(INDIRI2(addr)))) "fidivs %1\n" +freg: DIVF8(CVIF8(CVII2(INDIRI2(addr))),freg) "fidivrs %0\n" +freg: MULF8(freg,CVIF8(INDIRI4(addr))) "fimull %1\n" +freg: MULF8(freg,CVIF8(CVII2(INDIRI2(addr)))) "fimuls %1\n" +freg: SUBF8(freg,CVIF8(INDIRI4(addr))) "fisubl %1\n" +freg: SUBF8(CVIF8(INDIRI4(addr)),freg) "fisubrl %0\n" +freg: SUBF8(freg,CVIF8(CVII2(INDIRI2(addr)))) "fisubs %1\n" +freg: SUBF8(CVIF8(CVII2(INDIRI2(addr))),freg) "fisubrs %0\n" +freg: ADDF8(freg,CVIF8(INDIRI4(addr))) "fiaddl %1\n" +freg: ADDF8(freg,CVIF8(CVII2(INDIRI2(addr)))) "fiadds %1\n" +freg: ADDF8(freg,CVFF8(INDIRF4(addr))) "fdivs %1\n" +freg: SUBF8(freg,CVFF8(INDIRF4(addr))) "fsubs %1\n" +freg: MULF8(freg,CVFF8(INDIRF4(addr))) "fmuls %1\n" +freg: DIVF8(freg,CVFF8(INDIRF4(addr))) "fdivs %1\n" +freg: LOADF8(memf) "fld%0\n" + +reg: CALLI4(addrj) "call %0\naddl $%a,%%esp\n" hasargs(a) +reg: CALLU4(addrj) "call %0\naddl $%a,%%esp\n" hasargs(a) +reg: CALLP4(addrj) "call %0\naddl $%a,%%esp\n" hasargs(a) + +reg: CALLI4(addrj) "call %0\n" 1 +reg: CALLU4(addrj) "call %0\n" 1 +reg: CALLP4(addrj) "call %0\n" 1 + +stmt: CALLV(addrj) "call %0\naddl $%a,%%esp\n" hasargs(a) +stmt: CALLV(addrj) "call %0\n" 1 + +freg: CALLF4(addrj) "call %0\naddl $%a,%%esp\n" hasargs(a) +freg: CALLF4(addrj) "call %0\n" 1 + +stmt: CALLF4(addrj) "call %0\naddl $%a,%%esp\nfstp %%st(0)\n" hasargs(a) +stmt: CALLF4(addrj) "call %0\nfstp %%st(0)\n" 1 + +freg: CALLF8(addrj) "call %0\naddl $%a,%%esp\n" hasargs(a) +freg: CALLF8(addrj) "call %0\n" 1 + +stmt: CALLF8(addrj) "call %0\naddl $%a,%%esp\nfstp %%st(0)\n" hasargs(a) +stmt: CALLF8(addrj) "call %0\nfstp %%st(0)\n" 1 + +stmt: RETI4(reg) "# ret\n" +stmt: RETU4(reg) "# ret\n" +stmt: RETP4(reg) "# ret\n" +stmt: RETF4(freg) "# ret\n" +stmt: RETF8(freg) "# ret\n" +%% +static void progbeg(int argc, char *argv[]) { + int i; + + { + union { + char c; + int i; + } u; + u.i = 0; + u.c = 1; + swap = ((int)(u.i == 1)) != IR->little_endian; + } + parseflags(argc, argv); + for (i = 0; i < argc; i++) + if (strcmp(argv[i], "-p") == 0 || strcmp(argv[i], "-pg") == 0) + pflag = 1; + intreg[EAX] = mkreg("%%eax", EAX, 1, IREG); + intreg[EDX] = mkreg("%%edx", EDX, 1, IREG); + intreg[ECX] = mkreg("%%ecx", ECX, 1, IREG); + intreg[EBX] = mkreg("%%ebx", EBX, 1, IREG); + intreg[ESI] = mkreg("%%esi", ESI, 1, IREG); + intreg[EDI] = mkreg("%%edi", EDI, 1, IREG); + shortreg[EAX] = mkreg("%%ax", EAX, 1, IREG); + shortreg[ECX] = mkreg("%%cx", ECX, 1, IREG); + shortreg[EDX] = mkreg("%%dx", EDX, 1, IREG); + shortreg[EBX] = mkreg("%%bx", EBX, 1, IREG); + shortreg[ESI] = mkreg("%%si", ESI, 1, IREG); + shortreg[EDI] = mkreg("%%di", EDI, 1, IREG); + charreg[EAX] = mkreg("%%al", EAX, 1, IREG); + charreg[ECX] = mkreg("%%cl", ECX, 1, IREG); + charreg[EDX] = mkreg("%%dl", EDX, 1, IREG); + charreg[EBX] = mkreg("%%bl", EBX, 1, IREG); + for (i = 0; i < 8; i++) + fltreg[i] = mkreg("%d", i, 0, FREG); + charregw = mkwildcard(charreg); + shortregw = mkwildcard(shortreg); + intregw = mkwildcard(intreg); + fltregw = mkwildcard(fltreg); + + tmask[IREG] = (1<x.regnode->mask |= 1<x.regnode->mask |= 1<type->size > 0) + print(".size %s,%d\n", prevg->x.name, prevg->type->size); + prevg = NULL; +} + +static void progend(void) { + globalend(); + (*IR->segment)(CODE); + print(".ident \"LCC: 4.1\"\n"); +} + +static void target(Node p) { + assert(p); + switch (specific(p->op)) { + case RSH+I: case RSH+U: case LSH+I: case LSH+U: + if (generic(p->kids[1]->op) != CNST + && !( generic(p->kids[1]->op) == INDIR + && specific(p->kids[1]->kids[0]->op) == VREG+P + && p->kids[1]->syms[RX]->u.t.cse + && generic(p->kids[1]->syms[RX]->u.t.cse->op) == CNST)) { + rtarget(p, 1, intreg[ECX]); + setreg(p, intreg[EAX]); + } + break; + case MUL+U: + setreg(p, quo); + rtarget(p, 0, intreg[EAX]); + break; + case DIV+I: case DIV+U: + setreg(p, quo); + rtarget(p, 0, intreg[EAX]); + rtarget(p, 1, intreg[ECX]); + break; + case MOD+I: case MOD+U: + setreg(p, rem); + rtarget(p, 0, intreg[EAX]); + rtarget(p, 1, intreg[ECX]); + break; + case ASGN+B: + rtarget(p, 0, intreg[EDI]); + rtarget(p->kids[1], 0, intreg[ESI]); + break; + case ARG+B: + rtarget(p->kids[0], 0, intreg[ESI]); + break; + case CVF+I: + setreg(p, intreg[EAX]); + break; + case CALL+I: case CALL+U: case CALL+P: case CALL+V: + setreg(p, intreg[EAX]); + break; + case RET+I: case RET+U: case RET+P: + rtarget(p, 0, intreg[EAX]); + break; + } +} + +static void clobber(Node p) { + static int nstack = 0; + + assert(p); + nstack = ckstack(p, nstack); + switch (specific(p->op)) { + case ASGN+B: case ARG+B: + spill(1<op); +#define preg(f) ((f)[getregnum(p->x.kids[0])]->x.name) + + if (op == CVI+I && opsize(p->op) == 4 && opsize(p->x.kids[0]->op) == 1) + print("movsbl %s,%s\n", preg(charreg), p->syms[RX]->x.name); + else if (op == CVI+U && opsize(p->op) == 4 && opsize(p->x.kids[0]->op) == 1) + print("movsbl %s,%s\n", preg(charreg), p->syms[RX]->x.name); + else if (op == CVI+I && opsize(p->op) == 4 && opsize(p->x.kids[0]->op) == 2) + print("movswl %s,%s\n", preg(shortreg), p->syms[RX]->x.name); + else if (op == CVI+U && opsize(p->op) == 4 && opsize(p->x.kids[0]->op) == 2) + print("movswl %s,%s\n", preg(shortreg), p->syms[RX]->x.name); + else if (op == CVU+I && opsize(p->op) == 4 && opsize(p->x.kids[0]->op) == 1) + print("movzbl %s,%s\n", preg(charreg), p->syms[RX]->x.name); + else if (op == CVU+U && opsize(p->op) == 4 && opsize(p->x.kids[0]->op) == 1) + print("movzbl %s,%s\n", preg(charreg), p->syms[RX]->x.name); + else if (op == CVU+I && opsize(p->op) == 4 && opsize(p->x.kids[0]->op) == 2) + print("movzwl %s,%s\n", preg(shortreg), p->syms[RX]->x.name); + else if (op == CVU+U && opsize(p->op) == 4 && opsize(p->x.kids[0]->op) == 2) + print("movzwl %s,%s\n", preg(shortreg), p->syms[RX]->x.name); + else if (generic(op) == CVI || generic(op) == CVU || generic(op) == LOAD) { + char *dst = intreg[getregnum(p)]->x.name; + char *src = preg(intreg); + assert(opsize(p->op) <= opsize(p->x.kids[0]->op)); + if (dst != src) + print("movl %s,%s\n", src, dst); + } +} + +static void function(Symbol f, Symbol caller[], Symbol callee[], int n) { + int i; + + globalend(); + print(".align 16\n"); + print(".type %s,@function\n", f->x.name); + print("%s:\n", f->x.name); + print("pushl %%ebp\n"); + if (pflag) { + static int plab; + print("movl %%esp,%%ebp\n"); + (*IR->segment)(DATA); + print(".align 4\n.LP%d:\n.long 0\n", plab); + (*IR->segment)(CODE); + print("movl $.LP%d,%%edx\ncall mcount\n", plab); + plab++; + } + print("pushl %%ebx\n"); + print("pushl %%esi\n"); + print("pushl %%edi\n"); + print("movl %%esp,%%ebp\n"); + + usedmask[0] = usedmask[1] = 0; + freemask[0] = freemask[1] = ~0U; + offset = 16 + 4; + for (i = 0; callee[i]; i++) { + Symbol p = callee[i]; + Symbol q = caller[i]; + assert(q); + offset = roundup(offset, q->type->align); + p->x.offset = q->x.offset = offset; + p->x.name = q->x.name = stringf("%d", p->x.offset); + p->sclass = q->sclass = AUTO; + offset += roundup(q->type->size, 4); + } + assert(caller[i] == 0); + offset = maxoffset = 0; + gencode(caller, callee); + framesize = roundup(maxoffset, 4); + if (framesize > 0) + print("subl $%d,%%esp\n", framesize); + emitcode(); + print("movl %%ebp,%%esp\n"); + print("popl %%edi\n"); + print("popl %%esi\n"); + print("popl %%ebx\n"); + print("popl %%ebp\n"); + print("ret\n"); + { int l = genlabel(1); + print(".Lf%d:\n", l); + print(".size %s,.Lf%d-%s\n", f->x.name, l, f->x.name); + } +} + +static void defsymbol(Symbol p) { + if (p->scope >= LOCAL && p->sclass == STATIC) + p->x.name = stringf("%s.%d", p->name, genlabel(1)); + else if (p->generated) + p->x.name = stringf(".LC%s", p->name); + else if (p->scope == GLOBAL || p->sclass == EXTERN) + p->x.name = stringf("%s", p->name); + else + p->x.name = p->name; +} + +static void segment(int n) { + if (n == cseg) + return; + cseg = n; + if (cseg == CODE) + print(".text\n"); + else if (cseg == BSS) + print(".bss\n"); + else if (cseg == DATA || cseg == LIT) + print(".data\n"); +} + +static void defconst(int suffix, int size, Value v) { + if (suffix == I && size == 1) + print(".byte %d\n", v.u); + else if (suffix == I && size == 2) + print(".word %d\n", v.i); + else if (suffix == I && size == 4) + print(".long %d\n", v.i); + else if (suffix == U && size == 1) + print(".byte %d\n", v.u); + else if (suffix == U && size == 2) + print(".word %d\n", v.u); + else if (suffix == U && size == 4) + print(".long %d\n", v.u); + else if (suffix == P && size == 4) + print(".long %d\n", v.p); + else if (suffix == F && size == 4) { + float f = v.d; + print(".long %d\n", *(unsigned *)&f); + } else if (suffix == F && size == 8) { + double d = v.d; + unsigned *p = (unsigned *)&d; + print(".long %d\n.long %d\n", p[swap], p[!swap]); + } + else assert(0); +} + +static void defaddress(Symbol p) { + print(".long %s\n", p->x.name); +} + +static void defstring(int n, char *str) { + char *s; + + for (s = str; s < str + n; s++) + print(".byte %d\n", (*s)&0377); +} + +static void export(Symbol p) { + globalend(); + print(".globl %s\n", p->x.name); +} + +static void import(Symbol p) {} + +static void global(Symbol p) { + globalend(); + print(".align %d\n", p->type->align > 4 ? 4 : p->type->align); + if (!p->generated) { + print(".type %s,@%s\n", p->x.name, + isfunc(p->type) ? "function" : "object"); + if (p->type->size > 0) + print(".size %s,%d\n", p->x.name, p->type->size); + else + prevg = p; + } + if (p->u.seg == BSS) { + if (p->sclass == STATIC) + print(".lcomm %s,%d\n", p->x.name, p->type->size); + else + print(".comm %s,%d\n", p->x.name, p->type->size); + } else { + print("%s:\n", p->x.name); + } +} + +static void space(int n) { + if (cseg != BSS) + print(".space %d\n", n); +} + +Interface x86linuxIR = { + 1, 1, 0, /* char */ + 2, 2, 0, /* short */ + 4, 4, 0, /* int */ + 4, 4, 0, /* long */ + 4, 4, 0, /* long long */ + 4, 4, 1, /* float */ + 8, 4, 1, /* double */ + 8, 4, 1, /* long double */ + 4, 4, 0, /* T * */ + 0, 4, 0, /* struct; so that ARGB keeps stack aligned */ + 1, /* little_endian */ + 0, /* mulops_calls */ + 0, /* wants_callb */ + 1, /* wants_argb */ + 0, /* left_to_right */ + 0, /* wants_dag */ + 0, /* unsigned_char */ + 0, /* address */ + blockbeg, + blockend, + defaddress, + defconst, + defstring, + defsymbol, + emit, + export, + function, + gen, + global, + import, + 0, /* local */ + progbeg, + progend, + segment, + space, + stabblock, stabend, 0, stabinit, stabline, stabsym, stabtype, + {1, rmap, + 0, 0, 0, /* blkfetch, blkstore, blkloop */ + _label, + _rule, + _nts, + _kids, + _string, + _templates, + _isinstruction, + _ntname, + emit2, + 0, /* doarg */ + target, + clobber, + } +}; + +void x86linux_init(int argc, char *argv[]) { + static int inited; + extern Interface x86IR; + + if (inited) + return; + inited = 1; +#define xx(f) assert(!x86linuxIR.f); x86linuxIR.f = x86IR.f + xx(address); + xx(local); + xx(x.blkfetch); + xx(x.blkstore); + xx(x.blkloop); + xx(x.doarg); +#undef xx +} diff --git a/code/tools/lcc/tst/8q.0 b/code/tools/lcc/tst/8q.0 new file mode 100644 index 0000000..e69de29 diff --git a/code/tools/lcc/tst/8q.c b/code/tools/lcc/tst/8q.c new file mode 100644 index 0000000..60a65a9 --- /dev/null +++ b/code/tools/lcc/tst/8q.c @@ -0,0 +1,39 @@ +int up[15], down[15], rows[8], x[8]; +int queens(), print(); + +main() +{ + int i; + + for (i = 0; i < 15; i++) + up[i] = down[i] = 1; + for (i = 0; i < 8; i++) + rows[i] = 1; + queens(0); + return 0; +} + +queens(c) +{ + int r; + + for (r = 0; r < 8; r++) + if (rows[r] && up[r-c+7] && down[r+c]) { + rows[r] = up[r-c+7] = down[r+c] = 0; + x[c] = r; + if (c == 7) + print(); + else + queens(c + 1); + rows[r] = up[r-c+7] = down[r+c] = 1; + } +} + +print() +{ + int k; + + for (k = 0; k < 8; k++) + printf("%c ", x[k]+'1'); + printf("\n"); +} diff --git a/code/tools/lcc/tst/array.0 b/code/tools/lcc/tst/array.0 new file mode 100644 index 0000000..e69de29 diff --git a/code/tools/lcc/tst/array.c b/code/tools/lcc/tst/array.c new file mode 100644 index 0000000..4c967e7 --- /dev/null +++ b/code/tools/lcc/tst/array.c @@ -0,0 +1,48 @@ +int x[3][4], *y[3]; + +main() { + int z[3][4]; + int i, j, *p; + + for (i = 0; i < 3; i++) { + for (j = 0; j < 4; j++) + x[i][j] = 1000*i + j; + y[i] = x[i]; + } + f(); + for (i = 0; i < 3; i++) { + y[i] = p = &z[i][0]; + for (j = 0; j < 4; j++) + p[j] = x[i][j]; + } + g(z, y); + return 0; +} + +f() { + int i, j; + + for (i = 0; i < 3; i++) + for (j = 0; j < 4; j++) + printf(" %d", x[i][j]); + printf("\n"); + for (i = 0; i < 3; i++) + for (j = 0; j < 4; j++) + printf(" %d", y[i][j]); + printf("\n"); +} + +g(x, y) +int x[][4], *y[]; +{ + int i, j; + + for (i = 0; i < 3; i++) + for (j = 0; j < 4; j++) + printf(" %d", x[i][j]); + printf("\n"); + for (i = 0; i < 3; i++) + for (j = 0; j < 4; j++) + printf(" %d", y[i][j]); + printf("\n"); +} diff --git a/code/tools/lcc/tst/cf.0 b/code/tools/lcc/tst/cf.0 new file mode 100644 index 0000000..28efab7 --- /dev/null +++ b/code/tools/lcc/tst/cf.0 @@ -0,0 +1,32 @@ +/* cf - print character frequencies */ +float f[128]; + +main(argc, argv) +int argc; +char *argv[]; +{ + int i, c, nc; + float cutoff, atof(); + + if (argc <= 1) + cutoff = 0.0; + else + cutoff = atof(argv[1])/100; + for (i = 0; i <= 127; ) + f[i++] = 0.0; + nc = 0; + while ((c = getchar()) != -1) { + f[c] += 1; + nc++; + } + printf("char\tfreq\n"); + for (i = 0; i <= 127; ++i) + if (f[i] && f[i]/nc >= cutoff) { + if (i <= ' ') + printf("%03o", i); + else + printf("%c", i); + printf("\t%.1f\n", 100*f[i]/nc); + } + return 0; +} diff --git a/code/tools/lcc/tst/cf.c b/code/tools/lcc/tst/cf.c new file mode 100644 index 0000000..28efab7 --- /dev/null +++ b/code/tools/lcc/tst/cf.c @@ -0,0 +1,32 @@ +/* cf - print character frequencies */ +float f[128]; + +main(argc, argv) +int argc; +char *argv[]; +{ + int i, c, nc; + float cutoff, atof(); + + if (argc <= 1) + cutoff = 0.0; + else + cutoff = atof(argv[1])/100; + for (i = 0; i <= 127; ) + f[i++] = 0.0; + nc = 0; + while ((c = getchar()) != -1) { + f[c] += 1; + nc++; + } + printf("char\tfreq\n"); + for (i = 0; i <= 127; ++i) + if (f[i] && f[i]/nc >= cutoff) { + if (i <= ' ') + printf("%03o", i); + else + printf("%c", i); + printf("\t%.1f\n", 100*f[i]/nc); + } + return 0; +} diff --git a/code/tools/lcc/tst/cq.0 b/code/tools/lcc/tst/cq.0 new file mode 100644 index 0000000..e69de29 diff --git a/code/tools/lcc/tst/cq.c b/code/tools/lcc/tst/cq.c new file mode 100644 index 0000000..5cd0d6e --- /dev/null +++ b/code/tools/lcc/tst/cq.c @@ -0,0 +1,5316 @@ + struct defs { + int cbits; /* No. of bits per char */ + int ibits; /* int */ + int sbits; /* short */ + int lbits; /* long */ + int ubits; /* unsigned */ + int fbits; /* float */ + int dbits; /* double */ + float fprec; /* Smallest number that can be */ + float dprec; /* significantly added to 1. */ + int flgs; /* Print return codes, by section */ + int flgm; /* Announce machine dependencies */ + int flgd; /* give explicit diagnostics */ + int flgl; /* Report local return codes. */ + int rrc; /* recent return code */ + int crc; /* Cumulative return code */ + char rfs[8]; /* Return from section */ + }; +main(n,args) /* C REFERENCE MANUAL */ +int n; +char **args; +{ + +/* This program performs a series of tests on a C compiler, +based on information in the + + C REFERENCE MANUAL + +which appears as Appendix A to the book "The C Programming +Language" by Brian W. Kernighan and Dennis M. Ritchie +(Prentice-Hall, 1978, $10.95). This Appendix is hereafter +referred to as "the Manual". + + The rules followed in writing this program are: + + 1. The entire program is written in legal C, according + to the Manual. It should compile with no error messages, + although some warning messages may be produced by some + compilers. Failure to compile should be interpreted as + a compiler error. + + 2. The program is clean, in that it does not make use + of any features of the operating system on which it runs, + with the sole exceptions of the printf() function, and an + internal "options" routine, which is easily excised. + + 3. No global variables are used, except for the spec- + ific purpose of testing the global variable facility. + + The program is divided into modules having names of the +form snnn... These modules correspond to those sections of the +Manual, as identified by boldface type headings, in which +there is something to test. For example, s241() corresponds +to section 2.4.1 of the Manual (Integer constants) and tests +the facilities described therein. The module numbering +scheme is ambiguous, especially when it names modules +referring to more than one section; module s7813, for ex- +ample, deals with sections 7.8 through 7.13. Nonetheless, +it is surprisingly easy to find a section in the Manual +corresponding to a section of code, and vice versa. + + Note also that there seem to be "holes" in the program, +at least from the point of view that there exist sections in the +Manual for which there is no corresponding code. Such holes +arise from three causes: (a) there is nothing in that partic- +ular section to test, (b) everything in that section is tested +elsewhere, and (c) it was deemed advisable not to check cer- +tain features like preprocessor or listing control features. + + Modules are called by a main program main(). The mod- +ules that are called, and the sequence in which they are +called, are determined by two lists in main(), in which the +module names appear. The first list (an extern statement) +declares the module names to be external. The second (a stat- +ic int statement) names the modules and defines the sequence +in which they are called. There is no need for these lists +to be in the same order, but it is probably a good idea to keep +them that way in the interest of clarity. Since there are no +cross-linkages between modules, new modules may be added, +or old ones deleted, simply by editing the lists, with one +exception: section s26, which pokes around at the hardware +trying to figure out the characteristics of the machine that +it is running on, saves information that is subsequently +used by sections s626, s72, and s757. If this program is +to be broken up into smallish pieces, say for running on +a microcomputer, take care to see that s26 is called before +calling any of the latter three sections. The size +of the lists, i.e., the number of modules to be called, is +not explicitly specified as a program parameter, but is +determined dynamically using the sizeof operator. + + Communication between the main program and the modules +takes place in two ways. In all cases, a pointer to a structure +is passed to the called module. The structure contains flags +that will determine the type of information to be published +by the module, and fields that may be written in by the +module. The former include "flgm" and "flgd", which, if set +to a nonzero value, specify that machine dependencies are to +be announced or that error messages are to be printed, re- +spectively. The called module's name, and the hardware char- +acteristics probed in s26() comprise the latter. + + + Also, in all cases, a return code is returned by the called +module. A return code of zero indicates that all has gone well; +nonzero indicates otherwise. Since more than one type of error +may be detected by a module, the return code is a composite +of error indicators, which, individually, are given as numbers +that are powers of two. Thus, a return code of 10 indicates +that two specific errors, 8 and 2, were detected. Whether or +not the codes returned by the modules are printed by the main +program is determined by setting "flgs" to 1 (resp. 0). + + The entire logic of the main program is contained in the +half-dozen or so lines at the end. The somewhat cryptic +statement: + + d0.rrc = (*sec[j])(pd0); + +in the for loop calls the modules. The rest of the code is +reasonably straightforward. + + Finally, in each of the modules, there is the following +prologue: + + snnn(pd0) + struct defs *pd0; + { + static char snnner[] = "snnn,er%d\n"; + static char qsnnn[8] = "snnn "; + char *ps, *pt; + int rc; + + rc = 0; + ps = qsnnn; + pt = pd0->rfs; + while(*pt++ = *ps++); + +used for housekeeping, handshaking and module initialization. + + */ + extern + s22(), + s241(), + s243(), + s244(), + s25(), + s26(), + s4(), + s61(), + s626(), + s71(), + s72(), + s757(), + s7813(), + s714(), + s715(), + s81(), + s84(), + s85(), + s86(), + s88(), + s9() + ; + + int j; + static int (*sec[])() = { + s22, + s241, + s243, + s244, + s25, + s26, + s4, + s61, + s626, + s71, + s72, + s757, + s7813, + s714, + s715, + s81, + s84, + s85, + s86, + s88, + s9 + }; + + static struct defs d0, *pd0; + + d0.flgs = 1; /* These flags dictate */ + d0.flgm = 1; /* the verbosity of */ + d0.flgd = 1; /* the program. */ + d0.flgl = 1; + + pd0 = &d0; + + for (j=0; j rfs; + while (*pt++ = *ps++); + + /* An identifier is a sequence of letters and digits; + the first character must be a letter. The under- + score _ counts as a letter. */ + + a=1; + _=2; + _234=3; + a234=4; + if(a+_+_234+a234 != 10) { + rc = rc+1; + if(pd0->flgd != 0) printf(s22er,1); + } + + /* Upper and lower case letters are different. */ + + A = 2; + if (A == a) { + rc = rc+4; + if (pd0->flgd != 0) printf(s22er,4); + } + + return(rc); +} +s241(pd0) /* 2.4.1 Integer constants + 2.4.2 Explicit long constants */ +struct defs *pd0; +{ + long pow2(); + static char s241er[] = "s241,er%d\n"; + static char qs241[8] = "s241 "; + char *ps, *pt; + int rc, j, lrc; + static long g[39] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,6,0,8,0,12,0,16,0,18,0,20,0,24, + 0,28,0,30,0,32,0,36}; + long d[39], o[39], x[39]; + + rc = 0; + lrc = 0; + ps = qs241; + pt = pd0 -> rfs; + while (*pt++ = *ps++); + + /* An integer constant consisting of a sequence of digits is + taken to be octal if it begins with 0 (digit zero), decimal + otherwise. */ + + if ( 8 != 010 + || 16 != 020 + || 24 != 030 + || 32 != 040 + || 40 != 050 + || 48 != 060 + || 56 != 070 + || 64 != 0100 + || 72 != 0110 + || 80 != 0120 + || 9 != 0011 + || 17 != 0021 + || 25 != 0031 + || 33 != 0041 + || 41 != 0051 + || 49 != 0061 + || 57 != 0071 + || 65 != 0101 + || 73 != 0111 + || 81 != 0121 ){ + + rc = rc+1; + if( pd0->flgd != 0 ) printf(s241er,1); + } + + /* A sequence of digits preceded by 0x or 0X (digit zero) + is taken to be a hexadecimal integer. The hexadecimal + digits include a or A through f or F with values 10 + through 15. */ + + if ( 0x00abcdef != 0xabcdef + || 0xabcdef != 0Xabcdef || 0Xabcdef != 0XAbcdef + || 0XAbcdef != 0XABcdef || 0XABcdef != 0XABCdef + || 0XABCdef != 0XABCDef || 0XABCDef != 0XABCDEf + || 0XABCDEf != 0XABCDEF || 0xABCDEF != 11259375 ){ + + rc = rc+2; + if( pd0->flgd != 0 ) printf(s241er,2); + } + + /* A decimal constant whose value exceeds the largest signed + machine integer is taken to be long; an octal or hex con- + stant which exceeds the largest unsigned machine integer + is likewise taken to be long. */ + + if ( sizeof 010000000000 != sizeof(long) /* 2**30 */ + || sizeof 1073741824 != sizeof(long) /* ditto */ + || sizeof 0x40000000 != sizeof(long) ){ /* " */ + + rc = rc+4; + if( pd0->flgd != 0 ) printf(s241er,4); + } + + /* A decimal, octal, or hexadecimal constant immediately followed + by l (letter ell) or L is a long constant. */ + + if ( sizeof 67l != sizeof(long) + || sizeof 67L != sizeof(long) + || sizeof 067l != sizeof(long) + || sizeof 067L != sizeof(long) + || sizeof 0X67l != sizeof(long) + || sizeof 0x67L != sizeof(long) ){ + + rc = rc+8; + if( pd0 -> flgd != 0 ) printf(s241er,8); + } + + /* Finally, we test to see that decimal (d), octal (o), + and hexadecimal (x) constants representing the same values + agree among themselves, and with computed values, at spec- + ified points over an appropriate range. The points select- + ed here are those with the greatest potential for caus- + ing trouble, i.e., zero, 1-16, and values of 2**n and + 2**n - 1 where n is some multiple of 4 or 6. Unfortunately, + just what happens when a value is too big to fit in a + long is undefined; however, it would be nice if what + happened were at least consistent... */ + + for ( j=0; j<17; j++ ) g[j] = j; + for ( j=18; j<39; ) { + g[j] = pow2(g[j]); + g[j-1] = g[j] - 1; + j = j+2; + } + + d[0] = 0; o[0] = 00; x[0] = 0x0; + d[1] = 1; o[1] = 01; x[1] = 0x1; + d[2] = 2; o[2] = 02; x[2] = 0x2; + d[3] = 3; o[3] = 03; x[3] = 0x3; + d[4] = 4; o[4] = 04; x[4] = 0x4; + d[5] = 5; o[5] = 05; x[5] = 0x5; + d[6] = 6; o[6] = 06; x[6] = 0x6; + d[7] = 7; o[7] = 07; x[7] = 0x7; + d[8] = 8; o[8] = 010; x[8] = 0x8; + d[9] = 9; o[9] = 011; x[9] = 0x9; + d[10] = 10; o[10] = 012; x[10] = 0xa; + d[11] = 11; o[11] = 013; x[11] = 0xb; + d[12] = 12; o[12] = 014; x[12] = 0xc; + d[13] = 13; o[13] = 015; x[13] = 0xd; + d[14] = 14; o[14] = 016; x[14] = 0xe; + d[15] = 15; o[15] = 017; x[15] = 0xf; + d[16] = 16; o[16] = 020; x[16] = 0x10; + d[17] = 63; o[17] = 077; x[17] = 0x3f; + d[18] = 64; o[18] = 0100; x[18] = 0x40; + d[19] = 255; o[19] = 0377; x[19] = 0xff; + d[20] = 256; o[20] = 0400; x[20] = 0x100; + d[21] = 4095; o[21] = 07777; x[21] = 0xfff; + d[22] = 4096; o[22] = 010000; x[22] = 0x1000; + d[23] = 65535; o[23] = 0177777; x[23] = 0xffff; + d[24] = 65536; o[24] = 0200000; x[24] = 0x10000; + d[25] = 262143; o[25] = 0777777; x[25] = 0x3ffff; + d[26] = 262144; o[26] = 01000000; x[26] = 0x40000; + d[27] = 1048575; o[27] = 03777777; x[27] = 0xfffff; + d[28] = 1048576; o[28] = 04000000; x[28] = 0x100000; + d[29] = 16777215; o[29] = 077777777; x[29] = 0xffffff; + d[30] = 16777216; o[30] = 0100000000; x[30] = 0x1000000; + d[31] = 268435455; o[31] = 01777777777; x[31] = 0xfffffff; + d[32] = 268435456; o[32] = 02000000000; x[32] = 0x10000000; + d[33] = 1073741823; o[33] = 07777777777; x[33] = 0x3fffffff; + d[34] = 1073741824; o[34] = 010000000000; x[34] = 0x40000000; + d[35] = 4294967295; o[35] = 037777777777; x[35] = 0xffffffff; + d[36] = 4294967296; o[36] = 040000000000; x[36] = 0x100000000; + d[37] = 68719476735; o[37] = 0777777777777; x[37] = 0xfffffffff; + d[38] = 68719476736; o[38] = 01000000000000; x[38] = 0x1000000000; + + /* WHEW! */ + + for (j=0; j<39; j++){ + if ( g[j] != d[j] + || d[j] != o[j] + || o[j] != x[j]) { + + if( pd0 -> flgm != 0 ) { +/* printf(s241er,16); save in case opinions change... */ + printf("Decimal and octal/hex constants sometimes give\n"); + printf(" different results when assigned to longs.\n"); + } +/* lrc = 1; save... */ + } + } + + if (lrc != 0) rc =16; + + return rc; +} + +long pow2(n) /* Calculate 2**n by multiplying, not shifting */ +long n; +{ + long s; + s = 1; + while(n--) s = s*2; + return s; +} +s243(pd0) /* 2.4.3 Character constants */ +struct defs *pd0; +{ + static char s243er[] = "s243,er%d\n"; + static char qs243[8] = "s243 "; + char *ps, *pt; + int rc; + char chars[256]; + + rc = 0; + ps = qs243; + pt = pd0->rfs; + while(*pt++ = *ps++); + + /* One of the problems that arises when testing character constants + is that of definition: What, exactly, is the character set? + In order to guarantee a certain amount of machine independence, + the character set we will use here is the set of characters writ- + able as escape sequences in C, plus those characters used in writ- + ing C programs, i.e., + + letters: + ABCDEFGHIJKLMNOPQRSTUVWXYZ 26 + abcdefghijklmnopqrstuvwxyz 26 + numbers: + 0123456789 10 + special characters: + ~!"#%&()_=-^|{}[]+;*:<>,.?/ 27 + extra special characters: + newline \n + horizontal tab \t + backspace \b + carriage return \r + form feed \f + backslash \\ + single quote \' 7 + blank & NUL 2 + --- + 98 + + Any specific implementation of C may of course support additional + characters. */ + + /* Since the value of a character constant is the numerical value + of the character in the machine's character set, there should + be a one-to-one correspondence between characters and values. */ + + zerofill(chars); + + chars['a'] = 1; chars['A'] = 1; chars['~'] = 1; chars['0'] = 1; + chars['b'] = 1; chars['B'] = 1; chars['!'] = 1; chars['1'] = 1; + chars['c'] = 1; chars['C'] = 1; chars['"'] = 1; chars['2'] = 1; + chars['d'] = 1; chars['D'] = 1; chars['#'] = 1; chars['3'] = 1; + chars['e'] = 1; chars['E'] = 1; chars['%'] = 1; chars['4'] = 1; + chars['f'] = 1; chars['F'] = 1; chars['&'] = 1; chars['5'] = 1; + chars['g'] = 1; chars['G'] = 1; chars['('] = 1; chars['6'] = 1; + chars['h'] = 1; chars['H'] = 1; chars[')'] = 1; chars['7'] = 1; + chars['i'] = 1; chars['I'] = 1; chars['_'] = 1; chars['8'] = 1; + chars['j'] = 1; chars['J'] = 1; chars['='] = 1; chars['9'] = 1; + chars['k'] = 1; chars['K'] = 1; chars['-'] = 1; + chars['l'] = 1; chars['L'] = 1; chars['^'] = 1; + chars['m'] = 1; chars['M'] = 1; chars['|'] = 1; chars['\n'] = 1; + chars['n'] = 1; chars['N'] = 1; chars['\t'] = 1; + chars['o'] = 1; chars['O'] = 1; chars['{'] = 1; chars['\b'] = 1; + chars['p'] = 1; chars['P'] = 1; chars['}'] = 1; chars['\r'] = 1; + chars['q'] = 1; chars['Q'] = 1; chars['['] = 1; chars['\f'] = 1; + chars['r'] = 1; chars['R'] = 1; chars[']'] = 1; + chars['s'] = 1; chars['S'] = 1; chars['+'] = 1; chars['\\'] = 1; + chars['t'] = 1; chars['T'] = 1; chars[';'] = 1; chars['\''] = 1; + chars['u'] = 1; chars['U'] = 1; chars['*'] = 1; + chars['v'] = 1; chars['V'] = 1; chars[':'] = 1; chars['\0'] = 1; + chars['w'] = 1; chars['W'] = 1; chars['<'] = 1; chars[' '] = 1; + chars['x'] = 1; chars['X'] = 1; chars['>'] = 1; + chars['y'] = 1; chars['Y'] = 1; chars[','] = 1; + chars['z'] = 1; chars['Z'] = 1; chars['.'] = 1; + chars['?'] = 1; + chars['/'] = 1; + + if(sumof(chars) != 98){ + rc = rc+1; + if(pd0->flgd != 0) printf(s243er,1); + } + + /* Finally, the escape \ddd consists of the backslash followed + by 1, 2, or 3 octal digits which are taken to specify the + desired character. */ + + if( '\0' != 0 || '\01' != 1 || '\02' != 2 + || '\03' != 3 || '\04' != 4 || '\05' != 5 + || '\06' != 6 || '\07' != 7 || '\10' != 8 + || '\17' != 15 || '\20' != 16 || '\77' != 63 + || '\100' != 64 || '\177' != 127 ){ + + rc = rc+8; + if(pd0->flgd != 0) printf(s243er,8); + } + + return rc; +} +zerofill(x) +char *x; +{ + int j; + + for (j=0; j<256; j++) *x++ = 0; +} +sumof(x) +char *x; +{ + char *p; + int total, j; + + p = x; + total = 0; + + for(j=0; j<256; j++) total = total+ *p++; + return total; +} +s244(pd0) +struct defs *pd0; +{ + double a[8]; + int rc, lrc, j; + static char s244er[] = "s244,er%d\n"; + static char qs244[8] = "s244 "; + char *ps, *pt; + + ps = qs244; + pt = pd0->rfs; + while(*pt++ = *ps++); + rc = 0; + lrc = 0; + + /* Unfortunately, there's not a lot we can do with floating constants. + We can check to see that the various representations can be com- + piled, that the conversion is such that they yield the same hard- + ware representations in all cases, and that all representations + thus checked are double precision. */ + + a[0] = .1250E+04; + a[1] = 1.250E3; + a[2] = 12.50E02; + a[3] = 125.0e+1; + a[4] = 1250e00; + a[5] = 12500.e-01; + a[6] = 125000e-2; + a[7] = 1250.; + + lrc = 0; + for (j=0; j<7; j++) if(a[j] != a[j+1]) lrc = 1; + + if(lrc != 0) { + if(pd0->flgd != 0) printf(s244er,1); + rc = rc+1; + } + + if ( (sizeof .1250E+04 ) != sizeof(double) + || (sizeof 1.250E3 ) != sizeof(double) + || (sizeof 12.50E02 ) != sizeof(double) + || (sizeof 1.250e+1 ) != sizeof(double) + || (sizeof 1250e00 ) != sizeof(double) + || (sizeof 12500.e-01) != sizeof(double) + || (sizeof 125000e-2 ) != sizeof(double) + || (sizeof 1250. ) != sizeof(double)){ + + if(pd0->flgd != 0) printf(s244er,2); + rc = rc+2; + } + + return rc; +} +s25(pd0) +struct defs *pd0; +{ + char *s, *s2; + int rc, lrc, j; + static char s25er[] = "s25,er%d\n"; + static char qs25[8] = "s25 "; + char *ps, *pt; + + ps = qs25; + pt = pd0->rfs; + while(*pt++ = *ps++); + rc = 0; + + /* A string is a sequence of characters surrounded by double + quotes, as in "...". */ + + s = "..."; + + /* A string has type "array of characters" and storage class + static and is initialized with the given characters. */ + + if ( s[0] != s[1] || s[1] != s[2] + || s[2] != '.' ) { + + rc = rc+1; + if(pd0->flgd != 0) printf(s25er,1); + } + + /* The compiler places a null byte \0 at the end of each string + so the program which scans the string can find its end. */ + + if( s[3] != '\0' ){ + rc = rc+4; + if(pd0->flgd != 0) printf(s25er,4); + } + + /* In a string, the double quote character " must be preceded + by a \. */ + + if( ".\"."[1] != '"' ){ + rc = rc+8; + if(pd0->flgd != 0) printf(s25er,8); + } + + /* In addition, the same escapes described for character constants + may be used. */ + + s = "\n\t\b\r\f\\\'"; + + if( s[0] != '\n' + || s[1] != '\t' + || s[2] != '\b' + || s[3] != '\r' + || s[4] != '\f' + || s[5] != '\\' + || s[6] != '\'' ){ + + rc = rc+16; + if( pd0->flgd != 0) printf(s25er,16); + } + + /* Finally, a \ and an immediately following newline are ignored */ + + s2 = "queep!"; + s = "queep!"; + + lrc = 0; + for (j=0; jflgd != 0) printf(s25er,32); + } + return rc; +} +s26(pd0) /* 2.6 Hardware Characteristics */ +struct defs *pd0; +{ + static char qs26[8] = "s26 "; + char *ps, *pt; + char c0, c1; + float temp, one, delta; + double tempd, oned; + static char s[] = "%3d bits in %ss.\n"; + static char s2[] = "%e is the least number that can be added to 1. (%s).\n"; + + ps = qs26; + pt = pd0->rfs; + + while(*pt++ = *ps++); + + /* Here, we shake the machinery a little to see what falls + out. First, we find out how many bits are in a char. */ + + pd0->cbits = 0; + c0 = 0; + c1 = 1; + + while(c0 != c1) { + c1 = c1<<1; + pd0->cbits = pd0->cbits+1; + } + /* That information lets us determine the size of everything else. */ + + pd0->ibits = pd0->cbits * sizeof(int); + pd0->sbits = pd0->cbits * sizeof(short); + pd0->lbits = pd0->cbits * sizeof(long); + pd0->ubits = pd0->cbits * sizeof(unsigned); + pd0->fbits = pd0->cbits * sizeof(float); + pd0->dbits = pd0->cbits * sizeof(double); + + /* We have now almost reconstructed the table in section 2.6, the + exception being the range of the floating point hardware. + Now there are just so many ways to conjure up a floating point + representation system that it's damned near impossible to guess + what's going on by writing a program to interpret bit patterns. + Further, the information isn't all that useful, if we consider + the fact that machines that won't handle numbers between 10**30 + and 10**-30 are very hard to find, and that people playing with + numbers outside that range have a lot more to worry about than + just the capacity of the characteristic. + + A much more useful measure is the precision, which can be ex- + pressed in terms of the smallest number that can be added to + 1. without loss of significance. We calculate that here, for + float and double. */ + + one = 1.; + delta = 1.; + temp = 0.; + while(temp != one) { + temp = one+delta; + delta = delta/2.; + } + pd0->fprec = delta * 4.; + oned = 1.; + delta = 1.; + tempd = 0.; + while(tempd != oned) { + tempd = oned+delta; + delta = delta/2.; + } + pd0->dprec = delta * 4.; + + /* Now, if anyone's interested, we publish the results. */ + + if(pd0->flgm != 0) { + printf(s,pd0->cbits,"char"); + printf(s,pd0->ibits,"int"); + printf(s,pd0->sbits,"short"); + printf(s,pd0->lbits,"long"); + printf(s,pd0->ubits,"unsigned"); + printf(s,pd0->fbits,"float"); + printf(s,pd0->dbits,"double"); + printf(s2,pd0->fprec,"float"); + printf(s2,pd0->dprec,"double"); + } + /* Since we are only exploring and perhaps reporting, but not + testing any features, we cannot return an error code. */ + + return 0; +} +int extvar; +s4(pd0) /* 4. What's in a name? */ +struct defs *pd0; +{ + static char s4er[] = "s4,er%d\n"; + static char qs4[8] = "s4 "; + char *ps, *pt; + int j, rc; + + short sint; /* short integer, for size test */ + int pint; /* plain */ + long lint; /* long */ + unsigned target; + unsigned int mask; + + rc = 0; + ps = qs4; + pt = pd0->rfs; + + while(*pt++ = *ps++); + +/* There are four declarable storage classes: automatic, +static, external, and register. Automatic variables have +been dealt with extensively thus far, and will not be specif- +ically treated in this section. Register variables are treated +in section s81. + + Static variables are local to a block, but retain their +values upon reentry to a block, even after control has left +the block. */ + + for (j=0; j<3; j++) + if(svtest(j) != zero()){ + rc = 1; + if(pd0->flgd != 0) printf(s4er,1); + } + ; + +/* External variables exist and retain their values throughout +the execution of the entire program, and may be used for comm- +unication between functions, even separately compiled functions. + */ + + setev(); + if(testev() != 0){ + rc=rc+2; + if(pd0->flgd != 0) printf(s4er,2); + } +/* + Characters have been tested elsewhere (in s243). + + Up to three sizes of integer, declared short int, int, and +long int, are available. Longer integers provide no less storage +than shorter ones, but implementation may make either short +integers, or long integers, or both, equivalent to plain +integers. + */ + + if(sizeof lint < sizeof pint || sizeof pint < sizeof sint){ + + rc = rc+4; + if(pd0->flgd != 0) printf(s4er,4); + } + +/* Unsigned integers, declared unsigned, obey the laws of +arithmetic modulo 2**n, where n is the number of bits in the +implementation */ + + target = ~0U; + mask = 1; + + for(j=0; j<(sizeof target)*pd0->cbits; j++){ + + mask = mask⌖ + target = target>>1; + } + + if(mask != 1 || target != 0){ + + rc = rc+8; + if(pd0->flgd != 0) printf(s4er,8); + } + + return rc; +} +svtest(n) +int n; +{ + static k; + int rc; + switch (n) { + + case 0: k = 1978; + rc = 0; + break; + + case 1: if(k != 1978) rc = 1; + else{ + k = 1929; + rc = 0; + } + break; + + case 2: if(k != 1929) rc = 1; + else rc = 0; + break; + } + return rc; +} +zero(){ /* Returns a value of zero, possibly */ + static k; /* with side effects, as it's called */ + int rc; /* alternately with svtest, above, */ + k = 2; /* and has the same internal storage */ + rc = 0; /* requirements. */ + return rc; +} +testev(){ + if(extvar != 1066) return 1; + else return 0; +} +s61(pd0) /* Characters and integers */ +struct defs *pd0; +{ + static char s61er[] = "s61,er%d\n"; + static char qs61[8] = "s61 "; + short from, shortint; + long int to, longint; + int rc, lrc; + int j; + char fromc, charint; + char *wd, *pc[6]; + + static char upper_alpha[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + static char lower_alpha[] = "abcdefghijklmnopqrstuvwxyz"; + static char numbers[] = "0123456789"; + static char special_characters[] = "~!\"#%&()_=-^|{}[]+;*:<>,.?/"; + static char extra_special_characters[] = "\n\t\b\r\f\\\'"; + static char blank_and_NUL[] = " \0"; + + char *ps, *pt; + ps = qs61; + pt = pd0->rfs; + rc = 0; + while (*pt++ = *ps++); + +/* A character or a short integer may be used wherever +an integer may be used. In all cases, the value is converted +to integer. This principle is extensively used throughout this +program, and will not be explicitly tested here. */ + +/* Conversion of a shorter integer to a longer always +involves sign extension. */ + + from = -19; + to = from; + + if(to != -19){ + rc = rc+1; + if(pd0->flgd != 0) printf(s61er,1); + } + +/* It is guaranteed that a member of the standard char- +acter set is nonnegative. */ + + pc[0] = upper_alpha; + pc[1] = lower_alpha; + pc[2] = numbers; + pc[3] = special_characters; + pc[4] = extra_special_characters; + pc[5] = blank_and_NUL; + + lrc = 0; + for (j=0; j<6; j++) + while(*pc[j]) if(*pc[j]++ < 0) lrc =1; + + if(lrc != 0){ + rc=rc+2; + if(pd0->flgd != 0) printf(s61er,2); + } + +/* When a longer integer is converted to a shorter or +to a char, it is truncated on the left; excess bits are +simply discarded. */ + + longint = 1048579; /* =2**20+3 */ + shortint = longint; + charint = longint; + + if((shortint != longint && shortint != 3) || + (charint != longint && charint != 3)) { + rc = rc+8; + if(pd0->flgd != 0) printf(s61er,8); + } + + return rc; +} +s626(pd0) /* 6.2 Float and double */ + /* 6.3 Floating and integral */ + /* 6.4 Pointers and integers */ + /* 6.5 Unsigned */ + /* 6.6 Arithmetic conversions */ +struct defs *pd0; +{ + static char s626er[] = "s626,er%d\n"; + static char qs626[8] = "s626 "; + int rc; + char *ps, *pt; + float eps, f1, f2, f3, f4, f; + long lint1, lint2, l, ls; + char c, t[28], t0; + short s; + int is, i, j; + unsigned u, us; + double d, ds; + ps = qs626; + pt = pd0->rfs; + rc = 0; + while (*pt++ = *ps++); + + /* Conversions of integral values to floating type are + well-behaved. */ + + f1 = 1.; + lint1 = 1.; + lint2 = 1.; + + for(j=0;jlbits-2;j++){ + f1 = f1*2; + lint2 = (lint2<<1)|lint1; + } + f2 = lint2; + f1 = (f1-f2)/f1; + if(f1>2.*pd0->fprec){ + + rc = rc+2; + if(pd0->flgd != 0) printf(s626er,2); + } + + /* Pointer-integer combinations are discussed in s74, + "Additive operators". The unsigned-int combination + appears below. */ + + c = 125; + s = 125; + i = 125; is = 15625; + u = 125; us = 15625; + l = 125; ls = 15625; + f = 125.; + d = 125.; ds = 15625.; + + for(j=0;j<28;j++) t[j] = 0; + + if(c*c != is) t[ 0] = 1; + if(s*c != is) t[ 1] = 1; + if(s*s != is) t[ 2] = 1; + if(i*c != is) t[ 3] = 1; + if(i*s != is) t[ 4] = 1; + if(i*i != is) t[ 5] = 1; + if(u*c != us) t[ 6] = 1; + if(u*s != us) t[ 7] = 1; + if(u*i != us) t[ 8] = 1; + if(u*u != us) t[ 9] = 1; + if(l*c != ls) t[10] = 1; + if(l*s != ls) t[11] = 1; + if(l*i != ls) t[12] = 1; + if(l*u != us) t[13] = 1; + if(l*l != ls) t[14] = 1; + if(f*c != ds) t[15] = 1; + if(f*s != ds) t[16] = 1; + if(f*i != ds) t[17] = 1; + if(f*u != ds) t[18] = 1; + if(f*l != ds) t[19] = 1; + if(f*f != ds) t[20] = 1; + if(d*c != ds) t[21] = 1; + if(d*s != ds) t[22] = 1; + if(d*i != ds) t[23] = 1; + if(d*u != ds) t[24] = 1; + if(d*l != ds) t[25] = 1; + if(d*f != ds) t[26] = 1; + if(d*d != ds) t[27] = 1; + + t0 = 0; + for(j=0; j<28; j++) t0 = t0+t[j]; + + if(t0 != 0){ + + rc = rc+4; + if(pd0->flgd != 0){ + + printf(s626er,4); + printf(" key="); + for(j=0;j<28;j++) printf("%d",t[j]); + printf("\n"); + } + } + + /* When an unsigned integer is converted to long, + the value of the result is the same numerically + as that of the unsigned integer. */ + + l = (unsigned)0100000; + if((long)l > (unsigned)0100000){ + + rc = rc+8; + if(pd0->flgd != 0) printf(s626er,8); + } + + return rc; +} +s71(pd0) /* 7.1 Primary expressions */ +struct defs *pd0; +{ + static char s71er[] = "s71,er%d\n"; + static char qs71[8] = "s71 "; + int rc; + char *ps, *pt; + static char q = 'q'; + int x[10], McCarthy(), clobber(), a, b, *p; + ps = qs71; + pt = pd0->rfs; + rc = 0; + while (*pt++ = *ps++); + +/* Testing of expressions and operators is quite complicated, + because (a) problems are apt to surface in queer combinations + of operators and operands, rather than in isolation, + and (b) the number of expressions needed to provoke a case + of improper behaviour may be quite large. Hence, we take the + following approach: for this section, and for subsequent + sections through 7.15, we will check the primitive operations + in isolation, thus verifying that the primitives work, + after a fashion. The job of testing combinations, we will + leave to a separate, machine-generated program, to be included + in the C test package at some later date. + */ + +/* A string is a primary expression. The identifier points to + the first character of a string. + */ + + if(*"queep" != q){ + rc = rc+1; + if(pd0->flgd != 0) printf(s71er,1); + } +/* A parenthesized expression is a primary expression whose + type and value are the same as those of the unadorned + expression. + */ + if((2+3) != 2+3) { + rc = rc+2; + if(pd0->flgd != 0) printf(s71er,2); + } + +/* A primary expression followed by an expression in square + brackets is a primary expression. The intuitive meaning is + that of a subscript. The expression E1[E2] is identical + (by definition) to *((E1)+(E2)). + */ + + x[5] = 1942; + if(x[5] != 1942 || x[5] != *((x)+(5))){ + rc = rc+4; + if(pd0->flgd != 0) printf(s71er,4); + } + +/* If the various flavors of function calls didn't work, we + would never have gotten this far; however, we do need to + show that functions can be recursive... + */ + + if ( McCarthy(-5) != 91){ + rc = rc+8; + if(pd0->flgd != 0) printf(s71er,8); + } + +/* and that argument passing is strictly by value. */ + + a = 2; + b = 3; + p = &b; + + clobber(a,p); + + if(a != 2 || b != 2){ + rc = rc+16; + if(pd0->flgd != 0) printf(s71er,16); + } + +/* Finally, structures and unions are addressed thusly: */ + + if(pd0->dprec != (*pd0).dprec){ + rc = rc+32; + if(pd0->flgd != 0) printf(s71er,32); + } + + return rc; +} +McCarthy(x) +int x; +{ + if(x>100) return x-10; + else return McCarthy( McCarthy(x+11)); +} +clobber(x,y) +int x, *y; +{ + x = 3; + *y = 2; +} +s714(pd0) /* 7.14 Assignment operators */ +struct defs *pd0; +{ + static char f[] = "Local error %d.\n"; + static char s714er[] = "s714,er%d\n"; + static char qs714[8] = "s714 "; + register int prlc, lrc; + int rc; + char cl, cr; + short sl, sr; + int il, ir; + long ll, lr; + unsigned ul, ur; + float fl, fr; + double dl, dr; + char *ps, *pt; + ps = qs714; + pt = pd0->rfs; + rc = 0; + lrc = 0; + prlc = pd0->flgl; + while (*pt++ = *ps++); + + /* This section tests the assignment operators. + + It is an exhaustive test of all assignment statements + of the form: + + vl op vr + + where vl and vr are variables from the set + {char,short,int,long,unsigned,float,double} and op is + one of the assignment operators. There are 395 such + statements. + + The initial values for the variables have been chosen + so that both the initial values and the results will + "fit" in just about any implementation, and that the re- + sults will be such that they test for the proper form- + ation of composite operators, rather than checking for + the valid operation of those operators' components. + For example, in checking >>=, we want to verify that + a right shift and a move take place, rather than + whether or not there may be some peculiarities about + the right shift. Such tests have been made previously, + and to repeat them here would be to throw out a red + herring. + + The table below lists the operators, assignment targets, + initial values for left and right operands, and the + expected values of the results. + + + = += -= *= /= %= >>= <<= &= ^= |= +char 2 7 3 10 2 1 1 20 8 6 14 +short 2 7 3 10 2 1 1 20 8 6 14 +int 2 7 3 10 2 1 1 20 8 6 14 +long 2 7 3 10 2 1 1 20 8 6 14 +unsigned 2 7 3 10 2 1 1 20 8 6 14 +float 2 7 3 10 2.5 | | +double 2 7 3 10 2.5 | | + | | +initial (5,2) | (5,2) | (12,10) + + The following machine-generated program reflects the + tests described in the table. + */ + + cl = 5; cr = 2; + cl = cr; + if(cl != 2){ + lrc = 1; + if(prlc) printf(f,lrc); + } + cl = 5; sr = 2; + cl = sr; + if(cl != 2){ + lrc = 2; + if(prlc) printf(f,lrc); + } + cl = 5; ir = 2; + cl = ir; + if(cl != 2){ + lrc = 3; + if(prlc) printf(f,lrc); + } + cl = 5; lr = 2; + cl = lr; + if(cl != 2){ + lrc = 4; + if(prlc) printf(f,lrc); + } + cl = 5; ur = 2; + cl = ur; + if(cl != 2){ + lrc = 5; + if(prlc) printf(f,lrc); + } + cl = 5; fr = 2; + cl = fr; + if(cl != 2){ + lrc = 6; + if(prlc) printf(f,lrc); + } + cl = 5; dr = 2; + cl = dr; + if(cl != 2){ + lrc = 7; + if(prlc) printf(f,lrc); + } + sl = 5; cr = 2; + sl = cr; + if(sl != 2){ + lrc = 8; + if(prlc) printf(f,lrc); + } + sl = 5; sr = 2; + sl = sr; + if(sl != 2){ + lrc = 9; + if(prlc) printf(f,lrc); + } + sl = 5; ir = 2; + sl = ir; + if(sl != 2){ + lrc = 10; + if(prlc) printf(f,lrc); + } + sl = 5; lr = 2; + sl = lr; + if(sl != 2){ + lrc = 11; + if(prlc) printf(f,lrc); + } + sl = 5; ur = 2; + sl = ur; + if(sl != 2){ + lrc = 12; + if(prlc) printf(f,lrc); + } + sl = 5; fr = 2; + sl = fr; + if(sl != 2){ + lrc = 13; + if(prlc) printf(f,lrc); + } + sl = 5; dr = 2; + sl = dr; + if(sl != 2){ + lrc = 14; + if(prlc) printf(f,lrc); + } + il = 5; cr = 2; + il = cr; + if(il != 2){ + lrc = 15; + if(prlc) printf(f,lrc); + } + il = 5; sr = 2; + il = sr; + if(il != 2){ + lrc = 16; + if(prlc) printf(f,lrc); + } + il = 5; ir = 2; + il = ir; + if(il != 2){ + lrc = 17; + if(prlc) printf(f,lrc); + } + il = 5; lr = 2; + il = lr; + if(il != 2){ + lrc = 18; + if(prlc) printf(f,lrc); + } + il = 5; ur = 2; + il = ur; + if(il != 2){ + lrc = 19; + if(prlc) printf(f,lrc); + } + il = 5; fr = 2; + il = fr; + if(il != 2){ + lrc = 20; + if(prlc) printf(f,lrc); + } + il = 5; dr = 2; + il = dr; + if(il != 2){ + lrc = 21; + if(prlc) printf(f,lrc); + } + ll = 5; cr = 2; + ll = cr; + if(ll != 2){ + lrc = 22; + if(prlc) printf(f,lrc); + } + ll = 5; sr = 2; + ll = sr; + if(ll != 2){ + lrc = 23; + if(prlc) printf(f,lrc); + } + ll = 5; ir = 2; + ll = ir; + if(ll != 2){ + lrc = 24; + if(prlc) printf(f,lrc); + } + ll = 5; lr = 2; + ll = lr; + if(ll != 2){ + lrc = 25; + if(prlc) printf(f,lrc); + } + ll = 5; ur = 2; + ll = ur; + if(ll != 2){ + lrc = 26; + if(prlc) printf(f,lrc); + } + ll = 5; fr = 2; + ll = fr; + if(ll != 2){ + lrc = 27; + if(prlc) printf(f,lrc); + } + ll = 5; dr = 2; + ll = dr; + if(ll != 2){ + lrc = 28; + if(prlc) printf(f,lrc); + } + ul = 5; cr = 2; + ul = cr; + if(ul != 2){ + lrc = 29; + if(prlc) printf(f,lrc); + } + ul = 5; sr = 2; + ul = sr; + if(ul != 2){ + lrc = 30; + if(prlc) printf(f,lrc); + } + ul = 5; ir = 2; + ul = ir; + if(ul != 2){ + lrc = 31; + if(prlc) printf(f,lrc); + } + ul = 5; lr = 2; + ul = lr; + if(ul != 2){ + lrc = 32; + if(prlc) printf(f,lrc); + } + ul = 5; ur = 2; + ul = ur; + if(ul != 2){ + lrc = 33; + if(prlc) printf(f,lrc); + } + ul = 5; fr = 2; + ul = fr; + if(ul != 2){ + lrc = 34; + if(prlc) printf(f,lrc); + } + ul = 5; dr = 2; + ul = dr; + if(ul != 2){ + lrc = 35; + if(prlc) printf(f,lrc); + } + fl = 5; cr = 2; + fl = cr; + if(fl != 2){ + lrc = 36; + if(prlc) printf(f,lrc); + } + fl = 5; sr = 2; + fl = sr; + if(fl != 2){ + lrc = 37; + if(prlc) printf(f,lrc); + } + fl = 5; ir = 2; + fl = ir; + if(fl != 2){ + lrc = 38; + if(prlc) printf(f,lrc); + } + fl = 5; lr = 2; + fl = lr; + if(fl != 2){ + lrc = 39; + if(prlc) printf(f,lrc); + } + fl = 5; ur = 2; + fl = ur; + if(fl != 2){ + lrc = 40; + if(prlc) printf(f,lrc); + } + fl = 5; fr = 2; + fl = fr; + if(fl != 2){ + lrc = 41; + if(prlc) printf(f,lrc); + } + fl = 5; dr = 2; + fl = dr; + if(fl != 2){ + lrc = 42; + if(prlc) printf(f,lrc); + } + dl = 5; cr = 2; + dl = cr; + if(dl != 2){ + lrc = 43; + if(prlc) printf(f,lrc); + } + dl = 5; sr = 2; + dl = sr; + if(dl != 2){ + lrc = 44; + if(prlc) printf(f,lrc); + } + dl = 5; ir = 2; + dl = ir; + if(dl != 2){ + lrc = 45; + if(prlc) printf(f,lrc); + } + dl = 5; lr = 2; + dl = lr; + if(dl != 2){ + lrc = 46; + if(prlc) printf(f,lrc); + } + dl = 5; ur = 2; + dl = ur; + if(dl != 2){ + lrc = 47; + if(prlc) printf(f,lrc); + } + dl = 5; fr = 2; + dl = fr; + if(dl != 2){ + lrc = 48; + if(prlc) printf(f,lrc); + } + dl = 5; dr = 2; + dl = dr; + if(dl != 2){ + lrc = 49; + if(prlc) printf(f,lrc); + } + cl = 5; cr = 2; + cl += cr; + if(cl != 7){ + lrc = 50; + if(prlc) printf(f,lrc); + } + cl = 5; sr = 2; + cl += sr; + if(cl != 7){ + lrc = 51; + if(prlc) printf(f,lrc); + } + cl = 5; ir = 2; + cl += ir; + if(cl != 7){ + lrc = 52; + if(prlc) printf(f,lrc); + } + cl = 5; lr = 2; + cl += lr; + if(cl != 7){ + lrc = 53; + if(prlc) printf(f,lrc); + } + cl = 5; ur = 2; + cl += ur; + if(cl != 7){ + lrc = 54; + if(prlc) printf(f,lrc); + } + cl = 5; fr = 2; + cl += fr; + if(cl != 7){ + lrc = 55; + if(prlc) printf(f,lrc); + } + cl = 5; dr = 2; + cl += dr; + if(cl != 7){ + lrc = 56; + if(prlc) printf(f,lrc); + } + sl = 5; cr = 2; + sl += cr; + if(sl != 7){ + lrc = 57; + if(prlc) printf(f,lrc); + } + sl = 5; sr = 2; + sl += sr; + if(sl != 7){ + lrc = 58; + if(prlc) printf(f,lrc); + } + sl = 5; ir = 2; + sl += ir; + if(sl != 7){ + lrc = 59; + if(prlc) printf(f,lrc); + } + sl = 5; lr = 2; + sl += lr; + if(sl != 7){ + lrc = 60; + if(prlc) printf(f,lrc); + } + sl = 5; ur = 2; + sl += ur; + if(sl != 7){ + lrc = 61; + if(prlc) printf(f,lrc); + } + sl = 5; fr = 2; + sl += fr; + if(sl != 7){ + lrc = 62; + if(prlc) printf(f,lrc); + } + sl = 5; dr = 2; + sl += dr; + if(sl != 7){ + lrc = 63; + if(prlc) printf(f,lrc); + } + il = 5; cr = 2; + il += cr; + if(il != 7){ + lrc = 64; + if(prlc) printf(f,lrc); + } + il = 5; sr = 2; + il += sr; + if(il != 7){ + lrc = 65; + if(prlc) printf(f,lrc); + } + il = 5; ir = 2; + il += ir; + if(il != 7){ + lrc = 66; + if(prlc) printf(f,lrc); + } + il = 5; lr = 2; + il += lr; + if(il != 7){ + lrc = 67; + if(prlc) printf(f,lrc); + } + il = 5; ur = 2; + il += ur; + if(il != 7){ + lrc = 68; + if(prlc) printf(f,lrc); + } + il = 5; fr = 2; + il += fr; + if(il != 7){ + lrc = 69; + if(prlc) printf(f,lrc); + } + il = 5; dr = 2; + il += dr; + if(il != 7){ + lrc = 70; + if(prlc) printf(f,lrc); + } + ll = 5; cr = 2; + ll += cr; + if(ll != 7){ + lrc = 71; + if(prlc) printf(f,lrc); + } + ll = 5; sr = 2; + ll += sr; + if(ll != 7){ + lrc = 72; + if(prlc) printf(f,lrc); + } + ll = 5; ir = 2; + ll += ir; + if(ll != 7){ + lrc = 73; + if(prlc) printf(f,lrc); + } + ll = 5; lr = 2; + ll += lr; + if(ll != 7){ + lrc = 74; + if(prlc) printf(f,lrc); + } + ll = 5; ur = 2; + ll += ur; + if(ll != 7){ + lrc = 75; + if(prlc) printf(f,lrc); + } + ll = 5; fr = 2; + ll += fr; + if(ll != 7){ + lrc = 76; + if(prlc) printf(f,lrc); + } + ll = 5; dr = 2; + ll += dr; + if(ll != 7){ + lrc = 77; + if(prlc) printf(f,lrc); + } + ul = 5; cr = 2; + ul += cr; + if(ul != 7){ + lrc = 78; + if(prlc) printf(f,lrc); + } + ul = 5; sr = 2; + ul += sr; + if(ul != 7){ + lrc = 79; + if(prlc) printf(f,lrc); + } + ul = 5; ir = 2; + ul += ir; + if(ul != 7){ + lrc = 80; + if(prlc) printf(f,lrc); + } + ul = 5; lr = 2; + ul += lr; + if(ul != 7){ + lrc = 81; + if(prlc) printf(f,lrc); + } + ul = 5; ur = 2; + ul += ur; + if(ul != 7){ + lrc = 82; + if(prlc) printf(f,lrc); + } + ul = 5; fr = 2; + ul += fr; + if(ul != 7){ + lrc = 83; + if(prlc) printf(f,lrc); + } + ul = 5; dr = 2; + ul += dr; + if(ul != 7){ + lrc = 84; + if(prlc) printf(f,lrc); + } + fl = 5; cr = 2; + fl += cr; + if(fl != 7){ + lrc = 85; + if(prlc) printf(f,lrc); + } + fl = 5; sr = 2; + fl += sr; + if(fl != 7){ + lrc = 86; + if(prlc) printf(f,lrc); + } + fl = 5; ir = 2; + fl += ir; + if(fl != 7){ + lrc = 87; + if(prlc) printf(f,lrc); + } + fl = 5; lr = 2; + fl += lr; + if(fl != 7){ + lrc = 88; + if(prlc) printf(f,lrc); + } + fl = 5; ur = 2; + fl += ur; + if(fl != 7){ + lrc = 89; + if(prlc) printf(f,lrc); + } + fl = 5; fr = 2; + fl += fr; + if(fl != 7){ + lrc = 90; + if(prlc) printf(f,lrc); + } + fl = 5; dr = 2; + fl += dr; + if(fl != 7){ + lrc = 91; + if(prlc) printf(f,lrc); + } + dl = 5; cr = 2; + dl += cr; + if(dl != 7){ + lrc = 92; + if(prlc) printf(f,lrc); + } + dl = 5; sr = 2; + dl += sr; + if(dl != 7){ + lrc = 93; + if(prlc) printf(f,lrc); + } + dl = 5; ir = 2; + dl += ir; + if(dl != 7){ + lrc = 94; + if(prlc) printf(f,lrc); + } + dl = 5; lr = 2; + dl += lr; + if(dl != 7){ + lrc = 95; + if(prlc) printf(f,lrc); + } + dl = 5; ur = 2; + dl += ur; + if(dl != 7){ + lrc = 96; + if(prlc) printf(f,lrc); + } + dl = 5; fr = 2; + dl += fr; + if(dl != 7){ + lrc = 97; + if(prlc) printf(f,lrc); + } + dl = 5; dr = 2; + dl += dr; + if(dl != 7){ + lrc = 98; + if(prlc) printf(f,lrc); + } + cl = 5; cr = 2; + cl -= cr; + if(cl != 3){ + lrc = 99; + if(prlc) printf(f,lrc); + } + cl = 5; sr = 2; + cl -= sr; + if(cl != 3){ + lrc = 100; + if(prlc) printf(f,lrc); + } + cl = 5; ir = 2; + cl -= ir; + if(cl != 3){ + lrc = 101; + if(prlc) printf(f,lrc); + } + cl = 5; lr = 2; + cl -= lr; + if(cl != 3){ + lrc = 102; + if(prlc) printf(f,lrc); + } + cl = 5; ur = 2; + cl -= ur; + if(cl != 3){ + lrc = 103; + if(prlc) printf(f,lrc); + } + cl = 5; fr = 2; + cl -= fr; + if(cl != 3){ + lrc = 104; + if(prlc) printf(f,lrc); + } + cl = 5; dr = 2; + cl -= dr; + if(cl != 3){ + lrc = 105; + if(prlc) printf(f,lrc); + } + sl = 5; cr = 2; + sl -= cr; + if(sl != 3){ + lrc = 106; + if(prlc) printf(f,lrc); + } + sl = 5; sr = 2; + sl -= sr; + if(sl != 3){ + lrc = 107; + if(prlc) printf(f,lrc); + } + sl = 5; ir = 2; + sl -= ir; + if(sl != 3){ + lrc = 108; + if(prlc) printf(f,lrc); + } + sl = 5; lr = 2; + sl -= lr; + if(sl != 3){ + lrc = 109; + if(prlc) printf(f,lrc); + } + sl = 5; ur = 2; + sl -= ur; + if(sl != 3){ + lrc = 110; + if(prlc) printf(f,lrc); + } + sl = 5; fr = 2; + sl -= fr; + if(sl != 3){ + lrc = 111; + if(prlc) printf(f,lrc); + } + sl = 5; dr = 2; + sl -= dr; + if(sl != 3){ + lrc = 112; + if(prlc) printf(f,lrc); + } + il = 5; cr = 2; + il -= cr; + if(il != 3){ + lrc = 113; + if(prlc) printf(f,lrc); + } + il = 5; sr = 2; + il -= sr; + if(il != 3){ + lrc = 114; + if(prlc) printf(f,lrc); + } + il = 5; ir = 2; + il -= ir; + if(il != 3){ + lrc = 115; + if(prlc) printf(f,lrc); + } + il = 5; lr = 2; + il -= lr; + if(il != 3){ + lrc = 116; + if(prlc) printf(f,lrc); + } + il = 5; ur = 2; + il -= ur; + if(il != 3){ + lrc = 117; + if(prlc) printf(f,lrc); + } + il = 5; fr = 2; + il -= fr; + if(il != 3){ + lrc = 118; + if(prlc) printf(f,lrc); + } + il = 5; dr = 2; + il -= dr; + if(il != 3){ + lrc = 119; + if(prlc) printf(f,lrc); + } + ll = 5; cr = 2; + ll -= cr; + if(ll != 3){ + lrc = 120; + if(prlc) printf(f,lrc); + } + ll = 5; sr = 2; + ll -= sr; + if(ll != 3){ + lrc = 121; + if(prlc) printf(f,lrc); + } + ll = 5; ir = 2; + ll -= ir; + if(ll != 3){ + lrc = 122; + if(prlc) printf(f,lrc); + } + ll = 5; lr = 2; + ll -= lr; + if(ll != 3){ + lrc = 123; + if(prlc) printf(f,lrc); + } + ll = 5; ur = 2; + ll -= ur; + if(ll != 3){ + lrc = 124; + if(prlc) printf(f,lrc); + } + ll = 5; fr = 2; + ll -= fr; + if(ll != 3){ + lrc = 125; + if(prlc) printf(f,lrc); + } + ll = 5; dr = 2; + ll -= dr; + if(ll != 3){ + lrc = 126; + if(prlc) printf(f,lrc); + } + ul = 5; cr = 2; + ul -= cr; + if(ul != 3){ + lrc = 127; + if(prlc) printf(f,lrc); + } + ul = 5; sr = 2; + ul -= sr; + if(ul != 3){ + lrc = 128; + if(prlc) printf(f,lrc); + } + ul = 5; ir = 2; + ul -= ir; + if(ul != 3){ + lrc = 129; + if(prlc) printf(f,lrc); + } + ul = 5; lr = 2; + ul -= lr; + if(ul != 3){ + lrc = 130; + if(prlc) printf(f,lrc); + } + ul = 5; ur = 2; + ul -= ur; + if(ul != 3){ + lrc = 131; + if(prlc) printf(f,lrc); + } + ul = 5; fr = 2; + ul -= fr; + if(ul != 3){ + lrc = 132; + if(prlc) printf(f,lrc); + } + ul = 5; dr = 2; + ul -= dr; + if(ul != 3){ + lrc = 133; + if(prlc) printf(f,lrc); + } + fl = 5; cr = 2; + fl -= cr; + if(fl != 3){ + lrc = 134; + if(prlc) printf(f,lrc); + } + fl = 5; sr = 2; + fl -= sr; + if(fl != 3){ + lrc = 135; + if(prlc) printf(f,lrc); + } + fl = 5; ir = 2; + fl -= ir; + if(fl != 3){ + lrc = 136; + if(prlc) printf(f,lrc); + } + fl = 5; lr = 2; + fl -= lr; + if(fl != 3){ + lrc = 137; + if(prlc) printf(f,lrc); + } + fl = 5; ur = 2; + fl -= ur; + if(fl != 3){ + lrc = 138; + if(prlc) printf(f,lrc); + } + fl = 5; fr = 2; + fl -= fr; + if(fl != 3){ + lrc = 139; + if(prlc) printf(f,lrc); + } + fl = 5; dr = 2; + fl -= dr; + if(fl != 3){ + lrc = 140; + if(prlc) printf(f,lrc); + } + dl = 5; cr = 2; + dl -= cr; + if(dl != 3){ + lrc = 141; + if(prlc) printf(f,lrc); + } + dl = 5; sr = 2; + dl -= sr; + if(dl != 3){ + lrc = 142; + if(prlc) printf(f,lrc); + } + dl = 5; ir = 2; + dl -= ir; + if(dl != 3){ + lrc = 143; + if(prlc) printf(f,lrc); + } + dl = 5; lr = 2; + dl -= lr; + if(dl != 3){ + lrc = 144; + if(prlc) printf(f,lrc); + } + dl = 5; ur = 2; + dl -= ur; + if(dl != 3){ + lrc = 145; + if(prlc) printf(f,lrc); + } + dl = 5; fr = 2; + dl -= fr; + if(dl != 3){ + lrc = 146; + if(prlc) printf(f,lrc); + } + dl = 5; dr = 2; + dl -= dr; + if(dl != 3){ + lrc = 147; + if(prlc) printf(f,lrc); + } + cl = 5; cr = 2; + cl *= cr; + if(cl != 10){ + lrc = 148; + if(prlc) printf(f,lrc); + } + cl = 5; sr = 2; + cl *= sr; + if(cl != 10){ + lrc = 149; + if(prlc) printf(f,lrc); + } + cl = 5; ir = 2; + cl *= ir; + if(cl != 10){ + lrc = 150; + if(prlc) printf(f,lrc); + } + cl = 5; lr = 2; + cl *= lr; + if(cl != 10){ + lrc = 151; + if(prlc) printf(f,lrc); + } + cl = 5; ur = 2; + cl *= ur; + if(cl != 10){ + lrc = 152; + if(prlc) printf(f,lrc); + } + cl = 5; fr = 2; + cl *= fr; + if(cl != 10){ + lrc = 153; + if(prlc) printf(f,lrc); + } + cl = 5; dr = 2; + cl *= dr; + if(cl != 10){ + lrc = 154; + if(prlc) printf(f,lrc); + } + sl = 5; cr = 2; + sl *= cr; + if(sl != 10){ + lrc = 155; + if(prlc) printf(f,lrc); + } + sl = 5; sr = 2; + sl *= sr; + if(sl != 10){ + lrc = 156; + if(prlc) printf(f,lrc); + } + sl = 5; ir = 2; + sl *= ir; + if(sl != 10){ + lrc = 157; + if(prlc) printf(f,lrc); + } + sl = 5; lr = 2; + sl *= lr; + if(sl != 10){ + lrc = 158; + if(prlc) printf(f,lrc); + } + sl = 5; ur = 2; + sl *= ur; + if(sl != 10){ + lrc = 159; + if(prlc) printf(f,lrc); + } + sl = 5; fr = 2; + sl *= fr; + if(sl != 10){ + lrc = 160; + if(prlc) printf(f,lrc); + } + sl = 5; dr = 2; + sl *= dr; + if(sl != 10){ + lrc = 161; + if(prlc) printf(f,lrc); + } + il = 5; cr = 2; + il *= cr; + if(il != 10){ + lrc = 162; + if(prlc) printf(f,lrc); + } + il = 5; sr = 2; + il *= sr; + if(il != 10){ + lrc = 163; + if(prlc) printf(f,lrc); + } + il = 5; ir = 2; + il *= ir; + if(il != 10){ + lrc = 164; + if(prlc) printf(f,lrc); + } + il = 5; lr = 2; + il *= lr; + if(il != 10){ + lrc = 165; + if(prlc) printf(f,lrc); + } + il = 5; ur = 2; + il *= ur; + if(il != 10){ + lrc = 166; + if(prlc) printf(f,lrc); + } + il = 5; fr = 2; + il *= fr; + if(il != 10){ + lrc = 167; + if(prlc) printf(f,lrc); + } + il = 5; dr = 2; + il *= dr; + if(il != 10){ + lrc = 168; + if(prlc) printf(f,lrc); + } + ll = 5; cr = 2; + ll *= cr; + if(ll != 10){ + lrc = 169; + if(prlc) printf(f,lrc); + } + ll = 5; sr = 2; + ll *= sr; + if(ll != 10){ + lrc = 170; + if(prlc) printf(f,lrc); + } + ll = 5; ir = 2; + ll *= ir; + if(ll != 10){ + lrc = 171; + if(prlc) printf(f,lrc); + } + ll = 5; lr = 2; + ll *= lr; + if(ll != 10){ + lrc = 172; + if(prlc) printf(f,lrc); + } + ll = 5; ur = 2; + ll *= ur; + if(ll != 10){ + lrc = 173; + if(prlc) printf(f,lrc); + } + ll = 5; fr = 2; + ll *= fr; + if(ll != 10){ + lrc = 174; + if(prlc) printf(f,lrc); + } + ll = 5; dr = 2; + ll *= dr; + if(ll != 10){ + lrc = 175; + if(prlc) printf(f,lrc); + } + ul = 5; cr = 2; + ul *= cr; + if(ul != 10){ + lrc = 176; + if(prlc) printf(f,lrc); + } + ul = 5; sr = 2; + ul *= sr; + if(ul != 10){ + lrc = 177; + if(prlc) printf(f,lrc); + } + ul = 5; ir = 2; + ul *= ir; + if(ul != 10){ + lrc = 178; + if(prlc) printf(f,lrc); + } + ul = 5; lr = 2; + ul *= lr; + if(ul != 10){ + lrc = 179; + if(prlc) printf(f,lrc); + } + ul = 5; ur = 2; + ul *= ur; + if(ul != 10){ + lrc = 180; + if(prlc) printf(f,lrc); + } + ul = 5; fr = 2; + ul *= fr; + if(ul != 10){ + lrc = 181; + if(prlc) printf(f,lrc); + } + ul = 5; dr = 2; + ul *= dr; + if(ul != 10){ + lrc = 182; + if(prlc) printf(f,lrc); + } + fl = 5; cr = 2; + fl *= cr; + if(fl != 10){ + lrc = 183; + if(prlc) printf(f,lrc); + } + fl = 5; sr = 2; + fl *= sr; + if(fl != 10){ + lrc = 184; + if(prlc) printf(f,lrc); + } + fl = 5; ir = 2; + fl *= ir; + if(fl != 10){ + lrc = 185; + if(prlc) printf(f,lrc); + } + fl = 5; lr = 2; + fl *= lr; + if(fl != 10){ + lrc = 186; + if(prlc) printf(f,lrc); + } + fl = 5; ur = 2; + fl *= ur; + if(fl != 10){ + lrc = 187; + if(prlc) printf(f,lrc); + } + fl = 5; fr = 2; + fl *= fr; + if(fl != 10){ + lrc = 188; + if(prlc) printf(f,lrc); + } + fl = 5; dr = 2; + fl *= dr; + if(fl != 10){ + lrc = 189; + if(prlc) printf(f,lrc); + } + dl = 5; cr = 2; + dl *= cr; + if(dl != 10){ + lrc = 190; + if(prlc) printf(f,lrc); + } + dl = 5; sr = 2; + dl *= sr; + if(dl != 10){ + lrc = 191; + if(prlc) printf(f,lrc); + } + dl = 5; ir = 2; + dl *= ir; + if(dl != 10){ + lrc = 192; + if(prlc) printf(f,lrc); + } + dl = 5; lr = 2; + dl *= lr; + if(dl != 10){ + lrc = 193; + if(prlc) printf(f,lrc); + } + dl = 5; ur = 2; + dl *= ur; + if(dl != 10){ + lrc = 194; + if(prlc) printf(f,lrc); + } + dl = 5; fr = 2; + dl *= fr; + if(dl != 10){ + lrc = 195; + if(prlc) printf(f,lrc); + } + dl = 5; dr = 2; + dl *= dr; + if(dl != 10){ + lrc = 196; + if(prlc) printf(f,lrc); + } + cl = 5; cr = 2; + cl /= cr; + if(cl != 2){ + lrc = 197; + if(prlc) printf(f,lrc); + } + cl = 5; sr = 2; + cl /= sr; + if(cl != 2){ + lrc = 198; + if(prlc) printf(f,lrc); + } + cl = 5; ir = 2; + cl /= ir; + if(cl != 2){ + lrc = 199; + if(prlc) printf(f,lrc); + } + cl = 5; lr = 2; + cl /= lr; + if(cl != 2){ + lrc = 200; + if(prlc) printf(f,lrc); + } + cl = 5; ur = 2; + cl /= ur; + if(cl != 2){ + lrc = 201; + if(prlc) printf(f,lrc); + } + cl = 5; fr = 2; + cl /= fr; + if(cl != 2){ + lrc = 202; + if(prlc) printf(f,lrc); + } + cl = 5; dr = 2; + cl /= dr; + if(cl != 2){ + lrc = 203; + if(prlc) printf(f,lrc); + } + sl = 5; cr = 2; + sl /= cr; + if(sl != 2){ + lrc = 204; + if(prlc) printf(f,lrc); + } + sl = 5; sr = 2; + sl /= sr; + if(sl != 2){ + lrc = 205; + if(prlc) printf(f,lrc); + } + sl = 5; ir = 2; + sl /= ir; + if(sl != 2){ + lrc = 206; + if(prlc) printf(f,lrc); + } + sl = 5; lr = 2; + sl /= lr; + if(sl != 2){ + lrc = 207; + if(prlc) printf(f,lrc); + } + sl = 5; ur = 2; + sl /= ur; + if(sl != 2){ + lrc = 208; + if(prlc) printf(f,lrc); + } + sl = 5; fr = 2; + sl /= fr; + if(sl != 2){ + lrc = 209; + if(prlc) printf(f,lrc); + } + sl = 5; dr = 2; + sl /= dr; + if(sl != 2){ + lrc = 210; + if(prlc) printf(f,lrc); + } + il = 5; cr = 2; + il /= cr; + if(il != 2){ + lrc = 211; + if(prlc) printf(f,lrc); + } + il = 5; sr = 2; + il /= sr; + if(il != 2){ + lrc = 212; + if(prlc) printf(f,lrc); + } + il = 5; ir = 2; + il /= ir; + if(il != 2){ + lrc = 213; + if(prlc) printf(f,lrc); + } + il = 5; lr = 2; + il /= lr; + if(il != 2){ + lrc = 214; + if(prlc) printf(f,lrc); + } + il = 5; ur = 2; + il /= ur; + if(il != 2){ + lrc = 215; + if(prlc) printf(f,lrc); + } + il = 5; fr = 2; + il /= fr; + if(il != 2){ + lrc = 216; + if(prlc) printf(f,lrc); + } + il = 5; dr = 2; + il /= dr; + if(il != 2){ + lrc = 217; + if(prlc) printf(f,lrc); + } + ll = 5; cr = 2; + ll /= cr; + if(ll != 2){ + lrc = 218; + if(prlc) printf(f,lrc); + } + ll = 5; sr = 2; + ll /= sr; + if(ll != 2){ + lrc = 219; + if(prlc) printf(f,lrc); + } + ll = 5; ir = 2; + ll /= ir; + if(ll != 2){ + lrc = 220; + if(prlc) printf(f,lrc); + } + ll = 5; lr = 2; + ll /= lr; + if(ll != 2){ + lrc = 221; + if(prlc) printf(f,lrc); + } + ll = 5; ur = 2; + ll /= ur; + if(ll != 2){ + lrc = 222; + if(prlc) printf(f,lrc); + } + ll = 5; fr = 2; + ll /= fr; + if(ll != 2){ + lrc = 223; + if(prlc) printf(f,lrc); + } + ll = 5; dr = 2; + ll /= dr; + if(ll != 2){ + lrc = 224; + if(prlc) printf(f,lrc); + } + ul = 5; cr = 2; + ul /= cr; + if(ul != 2){ + lrc = 225; + if(prlc) printf(f,lrc); + } + ul = 5; sr = 2; + ul /= sr; + if(ul != 2){ + lrc = 226; + if(prlc) printf(f,lrc); + } + ul = 5; ir = 2; + ul /= ir; + if(ul != 2){ + lrc = 227; + if(prlc) printf(f,lrc); + } + ul = 5; lr = 2; + ul /= lr; + if(ul != 2){ + lrc = 228; + if(prlc) printf(f,lrc); + } + ul = 5; ur = 2; + ul /= ur; + if(ul != 2){ + lrc = 229; + if(prlc) printf(f,lrc); + } + ul = 5; fr = 2; + ul /= fr; + if(ul != 2){ + lrc = 230; + if(prlc) printf(f,lrc); + } + ul = 5; dr = 2; + ul /= dr; + if(ul != 2){ + lrc = 231; + if(prlc) printf(f,lrc); + } + fl = 5; cr = 2; + fl /= cr; + if(fl != 2.5){ + lrc = 232; + if(prlc) printf(f,lrc); + } + fl = 5; sr = 2; + fl /= sr; + if(fl != 2.5){ + lrc = 233; + if(prlc) printf(f,lrc); + } + fl = 5; ir = 2; + fl /= ir; + if(fl != 2.5){ + lrc = 234; + if(prlc) printf(f,lrc); + } + fl = 5; lr = 2; + fl /= lr; + if(fl != 2.5){ + lrc = 235; + if(prlc) printf(f,lrc); + } + fl = 5; ur = 2; + fl /= ur; + if(fl != 2.5){ + lrc = 236; + if(prlc) printf(f,lrc); + } + fl = 5; fr = 2; + fl /= fr; + if(fl != 2.5){ + lrc = 237; + if(prlc) printf(f,lrc); + } + fl = 5; dr = 2; + fl /= dr; + if(fl != 2.5){ + lrc = 238; + if(prlc) printf(f,lrc); + } + dl = 5; cr = 2; + dl /= cr; + if(dl != 2.5){ + lrc = 239; + if(prlc) printf(f,lrc); + } + dl = 5; sr = 2; + dl /= sr; + if(dl != 2.5){ + lrc = 240; + if(prlc) printf(f,lrc); + } + dl = 5; ir = 2; + dl /= ir; + if(dl != 2.5){ + lrc = 241; + if(prlc) printf(f,lrc); + } + dl = 5; lr = 2; + dl /= lr; + if(dl != 2.5){ + lrc = 242; + if(prlc) printf(f,lrc); + } + dl = 5; ur = 2; + dl /= ur; + if(dl != 2.5){ + lrc = 243; + if(prlc) printf(f,lrc); + } + dl = 5; fr = 2; + dl /= fr; + if(dl != 2.5){ + lrc = 244; + if(prlc) printf(f,lrc); + } + dl = 5; dr = 2; + dl /= dr; + if(dl != 2.5){ + lrc = 245; + if(prlc) printf(f,lrc); + } + cl = 5; cr = 2; + cl %= cr; + if(cl != 1){ + lrc = 246; + if(prlc) printf(f,lrc); + } + cl = 5; sr = 2; + cl %= sr; + if(cl != 1){ + lrc = 247; + if(prlc) printf(f,lrc); + } + cl = 5; ir = 2; + cl %= ir; + if(cl != 1){ + lrc = 248; + if(prlc) printf(f,lrc); + } + cl = 5; lr = 2; + cl %= lr; + if(cl != 1){ + lrc = 249; + if(prlc) printf(f,lrc); + } + cl = 5; ur = 2; + cl %= ur; + if(cl != 1){ + lrc = 250; + if(prlc) printf(f,lrc); + } + sl = 5; cr = 2; + sl %= cr; + if(sl != 1){ + lrc = 251; + if(prlc) printf(f,lrc); + } + sl = 5; sr = 2; + sl %= sr; + if(sl != 1){ + lrc = 252; + if(prlc) printf(f,lrc); + } + sl = 5; ir = 2; + sl %= ir; + if(sl != 1){ + lrc = 253; + if(prlc) printf(f,lrc); + } + sl = 5; lr = 2; + sl %= lr; + if(sl != 1){ + lrc = 254; + if(prlc) printf(f,lrc); + } + sl = 5; ur = 2; + sl %= ur; + if(sl != 1){ + lrc = 255; + if(prlc) printf(f,lrc); + } + il = 5; cr = 2; + il %= cr; + if(il != 1){ + lrc = 256; + if(prlc) printf(f,lrc); + } + il = 5; sr = 2; + il %= sr; + if(il != 1){ + lrc = 257; + if(prlc) printf(f,lrc); + } + il = 5; ir = 2; + il %= ir; + if(il != 1){ + lrc = 258; + if(prlc) printf(f,lrc); + } + il = 5; lr = 2; + il %= lr; + if(il != 1){ + lrc = 259; + if(prlc) printf(f,lrc); + } + il = 5; ur = 2; + il %= ur; + if(il != 1){ + lrc = 260; + if(prlc) printf(f,lrc); + } + ll = 5; cr = 2; + ll %= cr; + if(ll != 1){ + lrc = 261; + if(prlc) printf(f,lrc); + } + ll = 5; sr = 2; + ll %= sr; + if(ll != 1){ + lrc = 262; + if(prlc) printf(f,lrc); + } + ll = 5; ir = 2; + ll %= ir; + if(ll != 1){ + lrc = 263; + if(prlc) printf(f,lrc); + } + ll = 5; lr = 2; + ll %= lr; + if(ll != 1){ + lrc = 264; + if(prlc) printf(f,lrc); + } + ll = 5; ur = 2; + ll %= ur; + if(ll != 1){ + lrc = 265; + if(prlc) printf(f,lrc); + } + ul = 5; cr = 2; + ul %= cr; + if(ul != 1){ + lrc = 266; + if(prlc) printf(f,lrc); + } + ul = 5; sr = 2; + ul %= sr; + if(ul != 1){ + lrc = 267; + if(prlc) printf(f,lrc); + } + ul = 5; ir = 2; + ul %= ir; + if(ul != 1){ + lrc = 268; + if(prlc) printf(f,lrc); + } + ul = 5; lr = 2; + ul %= lr; + if(ul != 1){ + lrc = 269; + if(prlc) printf(f,lrc); + } + ul = 5; ur = 2; + ul %= ur; + if(ul != 1){ + lrc = 270; + if(prlc) printf(f,lrc); + } + cl = 5; cr = 2; + cl >>= cr; + if(cl != 1){ + lrc = 271; + if(prlc) printf(f,lrc); + } + cl = 5; sr = 2; + cl >>= sr; + if(cl != 1){ + lrc = 272; + if(prlc) printf(f,lrc); + } + cl = 5; ir = 2; + cl >>= ir; + if(cl != 1){ + lrc = 273; + if(prlc) printf(f,lrc); + } + cl = 5; lr = 2; + cl >>= lr; + if(cl != 1){ + lrc = 274; + if(prlc) printf(f,lrc); + } + cl = 5; ur = 2; + cl >>= ur; + if(cl != 1){ + lrc = 275; + if(prlc) printf(f,lrc); + } + sl = 5; cr = 2; + sl >>= cr; + if(sl != 1){ + lrc = 276; + if(prlc) printf(f,lrc); + } + sl = 5; sr = 2; + sl >>= sr; + if(sl != 1){ + lrc = 277; + if(prlc) printf(f,lrc); + } + sl = 5; ir = 2; + sl >>= ir; + if(sl != 1){ + lrc = 278; + if(prlc) printf(f,lrc); + } + sl = 5; lr = 2; + sl >>= lr; + if(sl != 1){ + lrc = 279; + if(prlc) printf(f,lrc); + } + sl = 5; ur = 2; + sl >>= ur; + if(sl != 1){ + lrc = 280; + if(prlc) printf(f,lrc); + } + il = 5; cr = 2; + il >>= cr; + if(il != 1){ + lrc = 281; + if(prlc) printf(f,lrc); + } + il = 5; sr = 2; + il >>= sr; + if(il != 1){ + lrc = 282; + if(prlc) printf(f,lrc); + } + il = 5; ir = 2; + il >>= ir; + if(il != 1){ + lrc = 283; + if(prlc) printf(f,lrc); + } + il = 5; lr = 2; + il >>= lr; + if(il != 1){ + lrc = 284; + if(prlc) printf(f,lrc); + } + il = 5; ur = 2; + il >>= ur; + if(il != 1){ + lrc = 285; + if(prlc) printf(f,lrc); + } + ll = 5; cr = 2; + ll >>= cr; + if(ll != 1){ + lrc = 286; + if(prlc) printf(f,lrc); + } + ll = 5; sr = 2; + ll >>= sr; + if(ll != 1){ + lrc = 287; + if(prlc) printf(f,lrc); + } + ll = 5; ir = 2; + ll >>= ir; + if(ll != 1){ + lrc = 288; + if(prlc) printf(f,lrc); + } + ll = 5; lr = 2; + ll >>= lr; + if(ll != 1){ + lrc = 289; + if(prlc) printf(f,lrc); + } + ll = 5; ur = 2; + ll >>= ur; + if(ll != 1){ + lrc = 290; + if(prlc) printf(f,lrc); + } + ul = 5; cr = 2; + ul >>= cr; + if(ul != 1){ + lrc = 291; + if(prlc) printf(f,lrc); + } + ul = 5; sr = 2; + ul >>= sr; + if(ul != 1){ + lrc = 292; + if(prlc) printf(f,lrc); + } + ul = 5; ir = 2; + ul >>= ir; + if(ul != 1){ + lrc = 293; + if(prlc) printf(f,lrc); + } + ul = 5; lr = 2; + ul >>= lr; + if(ul != 1){ + lrc = 294; + if(prlc) printf(f,lrc); + } + ul = 5; ur = 2; + ul >>= ur; + if(ul != 1){ + lrc = 295; + if(prlc) printf(f,lrc); + } + cl = 5; cr = 2; + cl <<= cr; + if(cl != 20){ + lrc = 296; + if(prlc) printf(f,lrc); + } + cl = 5; sr = 2; + cl <<= sr; + if(cl != 20){ + lrc = 297; + if(prlc) printf(f,lrc); + } + cl = 5; ir = 2; + cl <<= ir; + if(cl != 20){ + lrc = 298; + if(prlc) printf(f,lrc); + } + cl = 5; lr = 2; + cl <<= lr; + if(cl != 20){ + lrc = 299; + if(prlc) printf(f,lrc); + } + cl = 5; ur = 2; + cl <<= ur; + if(cl != 20){ + lrc = 300; + if(prlc) printf(f,lrc); + } + sl = 5; cr = 2; + sl <<= cr; + if(sl != 20){ + lrc = 301; + if(prlc) printf(f,lrc); + } + sl = 5; sr = 2; + sl <<= sr; + if(sl != 20){ + lrc = 302; + if(prlc) printf(f,lrc); + } + sl = 5; ir = 2; + sl <<= ir; + if(sl != 20){ + lrc = 303; + if(prlc) printf(f,lrc); + } + sl = 5; lr = 2; + sl <<= lr; + if(sl != 20){ + lrc = 304; + if(prlc) printf(f,lrc); + } + sl = 5; ur = 2; + sl <<= ur; + if(sl != 20){ + lrc = 305; + if(prlc) printf(f,lrc); + } + il = 5; cr = 2; + il <<= cr; + if(il != 20){ + lrc = 306; + if(prlc) printf(f,lrc); + } + il = 5; sr = 2; + il <<= sr; + if(il != 20){ + lrc = 307; + if(prlc) printf(f,lrc); + } + il = 5; ir = 2; + il <<= ir; + if(il != 20){ + lrc = 308; + if(prlc) printf(f,lrc); + } + il = 5; lr = 2; + il <<= lr; + if(il != 20){ + lrc = 309; + if(prlc) printf(f,lrc); + } + il = 5; ur = 2; + il <<= ur; + if(il != 20){ + lrc = 310; + if(prlc) printf(f,lrc); + } + ll = 5; cr = 2; + ll <<= cr; + if(ll != 20){ + lrc = 311; + if(prlc) printf(f,lrc); + } + ll = 5; sr = 2; + ll <<= sr; + if(ll != 20){ + lrc = 312; + if(prlc) printf(f,lrc); + } + ll = 5; ir = 2; + ll <<= ir; + if(ll != 20){ + lrc = 313; + if(prlc) printf(f,lrc); + } + ll = 5; lr = 2; + ll <<= lr; + if(ll != 20){ + lrc = 314; + if(prlc) printf(f,lrc); + } + ll = 5; ur = 2; + ll <<= ur; + if(ll != 20){ + lrc = 315; + if(prlc) printf(f,lrc); + } + ul = 5; cr = 2; + ul <<= cr; + if(ul != 20){ + lrc = 316; + if(prlc) printf(f,lrc); + } + ul = 5; sr = 2; + ul <<= sr; + if(ul != 20){ + lrc = 317; + if(prlc) printf(f,lrc); + } + ul = 5; ir = 2; + ul <<= ir; + if(ul != 20){ + lrc = 318; + if(prlc) printf(f,lrc); + } + ul = 5; lr = 2; + ul <<= lr; + if(ul != 20){ + lrc = 319; + if(prlc) printf(f,lrc); + } + ul = 5; ur = 2; + ul <<= ur; + if(ul != 20){ + lrc = 320; + if(prlc) printf(f,lrc); + } + cl = 12; cr = 10; + cl &= cr; + if(cl != 8){ + lrc = 321; + if(prlc) printf(f,lrc); + } + cl = 12; sr = 10; + cl &= sr; + if(cl != 8){ + lrc = 322; + if(prlc) printf(f,lrc); + } + cl = 12; ir = 10; + cl &= ir; + if(cl != 8){ + lrc = 323; + if(prlc) printf(f,lrc); + } + cl = 12; lr = 10; + cl &= lr; + if(cl != 8){ + lrc = 324; + if(prlc) printf(f,lrc); + } + cl = 12; ur = 10; + cl &= ur; + if(cl != 8){ + lrc = 325; + if(prlc) printf(f,lrc); + } + sl = 12; cr = 10; + sl &= cr; + if(sl != 8){ + lrc = 326; + if(prlc) printf(f,lrc); + } + sl = 12; sr = 10; + sl &= sr; + if(sl != 8){ + lrc = 327; + if(prlc) printf(f,lrc); + } + sl = 12; ir = 10; + sl &= ir; + if(sl != 8){ + lrc = 328; + if(prlc) printf(f,lrc); + } + sl = 12; lr = 10; + sl &= lr; + if(sl != 8){ + lrc = 329; + if(prlc) printf(f,lrc); + } + sl = 12; ur = 10; + sl &= ur; + if(sl != 8){ + lrc = 330; + if(prlc) printf(f,lrc); + } + il = 12; cr = 10; + il &= cr; + if(il != 8){ + lrc = 331; + if(prlc) printf(f,lrc); + } + il = 12; sr = 10; + il &= sr; + if(il != 8){ + lrc = 332; + if(prlc) printf(f,lrc); + } + il = 12; ir = 10; + il &= ir; + if(il != 8){ + lrc = 333; + if(prlc) printf(f,lrc); + } + il = 12; lr = 10; + il &= lr; + if(il != 8){ + lrc = 334; + if(prlc) printf(f,lrc); + } + il = 12; ur = 10; + il &= ur; + if(il != 8){ + lrc = 335; + if(prlc) printf(f,lrc); + } + ll = 12; cr = 10; + ll &= cr; + if(ll != 8){ + lrc = 336; + if(prlc) printf(f,lrc); + } + ll = 12; sr = 10; + ll &= sr; + if(ll != 8){ + lrc = 337; + if(prlc) printf(f,lrc); + } + ll = 12; ir = 10; + ll &= ir; + if(ll != 8){ + lrc = 338; + if(prlc) printf(f,lrc); + } + ll = 12; lr = 10; + ll &= lr; + if(ll != 8){ + lrc = 339; + if(prlc) printf(f,lrc); + } + ll = 12; ur = 10; + ll &= ur; + if(ll != 8){ + lrc = 340; + if(prlc) printf(f,lrc); + } + ul = 12; cr = 10; + ul &= cr; + if(ul != 8){ + lrc = 341; + if(prlc) printf(f,lrc); + } + ul = 12; sr = 10; + ul &= sr; + if(ul != 8){ + lrc = 342; + if(prlc) printf(f,lrc); + } + ul = 12; ir = 10; + ul &= ir; + if(ul != 8){ + lrc = 343; + if(prlc) printf(f,lrc); + } + ul = 12; lr = 10; + ul &= lr; + if(ul != 8){ + lrc = 344; + if(prlc) printf(f,lrc); + } + ul = 12; ur = 10; + ul &= ur; + if(ul != 8){ + lrc = 345; + if(prlc) printf(f,lrc); + } + cl = 12; cr = 10; + cl ^= cr; + if(cl != 6){ + lrc = 346; + if(prlc) printf(f,lrc); + } + cl = 12; sr = 10; + cl ^= sr; + if(cl != 6){ + lrc = 347; + if(prlc) printf(f,lrc); + } + cl = 12; ir = 10; + cl ^= ir; + if(cl != 6){ + lrc = 348; + if(prlc) printf(f,lrc); + } + cl = 12; lr = 10; + cl ^= lr; + if(cl != 6){ + lrc = 349; + if(prlc) printf(f,lrc); + } + cl = 12; ur = 10; + cl ^= ur; + if(cl != 6){ + lrc = 350; + if(prlc) printf(f,lrc); + } + sl = 12; cr = 10; + sl ^= cr; + if(sl != 6){ + lrc = 351; + if(prlc) printf(f,lrc); + } + sl = 12; sr = 10; + sl ^= sr; + if(sl != 6){ + lrc = 352; + if(prlc) printf(f,lrc); + } + sl = 12; ir = 10; + sl ^= ir; + if(sl != 6){ + lrc = 353; + if(prlc) printf(f,lrc); + } + sl = 12; lr = 10; + sl ^= lr; + if(sl != 6){ + lrc = 354; + if(prlc) printf(f,lrc); + } + sl = 12; ur = 10; + sl ^= ur; + if(sl != 6){ + lrc = 355; + if(prlc) printf(f,lrc); + } + il = 12; cr = 10; + il ^= cr; + if(il != 6){ + lrc = 356; + if(prlc) printf(f,lrc); + } + il = 12; sr = 10; + il ^= sr; + if(il != 6){ + lrc = 357; + if(prlc) printf(f,lrc); + } + il = 12; ir = 10; + il ^= ir; + if(il != 6){ + lrc = 358; + if(prlc) printf(f,lrc); + } + il = 12; lr = 10; + il ^= lr; + if(il != 6){ + lrc = 359; + if(prlc) printf(f,lrc); + } + il = 12; ur = 10; + il ^= ur; + if(il != 6){ + lrc = 360; + if(prlc) printf(f,lrc); + } + ll = 12; cr = 10; + ll ^= cr; + if(ll != 6){ + lrc = 361; + if(prlc) printf(f,lrc); + } + ll = 12; sr = 10; + ll ^= sr; + if(ll != 6){ + lrc = 362; + if(prlc) printf(f,lrc); + } + ll = 12; ir = 10; + ll ^= ir; + if(ll != 6){ + lrc = 363; + if(prlc) printf(f,lrc); + } + ll = 12; lr = 10; + ll ^= lr; + if(ll != 6){ + lrc = 364; + if(prlc) printf(f,lrc); + } + ll = 12; ur = 10; + ll ^= ur; + if(ll != 6){ + lrc = 365; + if(prlc) printf(f,lrc); + } + ul = 12; cr = 10; + ul ^= cr; + if(ul != 6){ + lrc = 366; + if(prlc) printf(f,lrc); + } + ul = 12; sr = 10; + ul ^= sr; + if(ul != 6){ + lrc = 367; + if(prlc) printf(f,lrc); + } + ul = 12; ir = 10; + ul ^= ir; + if(ul != 6){ + lrc = 368; + if(prlc) printf(f,lrc); + } + ul = 12; lr = 10; + ul ^= lr; + if(ul != 6){ + lrc = 369; + if(prlc) printf(f,lrc); + } + ul = 12; ur = 10; + ul ^= ur; + if(ul != 6){ + lrc = 370; + if(prlc) printf(f,lrc); + } + cl = 12; cr = 10; + cl |= cr; + if(cl != 14){ + lrc = 371; + if(prlc) printf(f,lrc); + } + cl = 12; sr = 10; + cl |= sr; + if(cl != 14){ + lrc = 372; + if(prlc) printf(f,lrc); + } + cl = 12; ir = 10; + cl |= ir; + if(cl != 14){ + lrc = 373; + if(prlc) printf(f,lrc); + } + cl = 12; lr = 10; + cl |= lr; + if(cl != 14){ + lrc = 374; + if(prlc) printf(f,lrc); + } + cl = 12; ur = 10; + cl |= ur; + if(cl != 14){ + lrc = 375; + if(prlc) printf(f,lrc); + } + sl = 12; cr = 10; + sl |= cr; + if(sl != 14){ + lrc = 376; + if(prlc) printf(f,lrc); + } + sl = 12; sr = 10; + sl |= sr; + if(sl != 14){ + lrc = 377; + if(prlc) printf(f,lrc); + } + sl = 12; ir = 10; + sl |= ir; + if(sl != 14){ + lrc = 378; + if(prlc) printf(f,lrc); + } + sl = 12; lr = 10; + sl |= lr; + if(sl != 14){ + lrc = 379; + if(prlc) printf(f,lrc); + } + sl = 12; ur = 10; + sl |= ur; + if(sl != 14){ + lrc = 380; + if(prlc) printf(f,lrc); + } + il = 12; cr = 10; + il |= cr; + if(il != 14){ + lrc = 381; + if(prlc) printf(f,lrc); + } + il = 12; sr = 10; + il |= sr; + if(il != 14){ + lrc = 382; + if(prlc) printf(f,lrc); + } + il = 12; ir = 10; + il |= ir; + if(il != 14){ + lrc = 383; + if(prlc) printf(f,lrc); + } + il = 12; lr = 10; + il |= lr; + if(il != 14){ + lrc = 384; + if(prlc) printf(f,lrc); + } + il = 12; ur = 10; + il |= ur; + if(il != 14){ + lrc = 385; + if(prlc) printf(f,lrc); + } + ll = 12; cr = 10; + ll |= cr; + if(ll != 14){ + lrc = 386; + if(prlc) printf(f,lrc); + } + ll = 12; sr = 10; + ll |= sr; + if(ll != 14){ + lrc = 387; + if(prlc) printf(f,lrc); + } + ll = 12; ir = 10; + ll |= ir; + if(ll != 14){ + lrc = 388; + if(prlc) printf(f,lrc); + } + ll = 12; lr = 10; + ll |= lr; + if(ll != 14){ + lrc = 389; + if(prlc) printf(f,lrc); + } + ll = 12; ur = 10; + ll |= ur; + if(ll != 14){ + lrc = 390; + if(prlc) printf(f,lrc); + } + ul = 12; cr = 10; + ul |= cr; + if(ul != 14){ + lrc = 391; + if(prlc) printf(f,lrc); + } + ul = 12; sr = 10; + ul |= sr; + if(ul != 14){ + lrc = 392; + if(prlc) printf(f,lrc); + } + ul = 12; ir = 10; + ul |= ir; + if(ul != 14){ + lrc = 393; + if(prlc) printf(f,lrc); + } + ul = 12; lr = 10; + ul |= lr; + if(ul != 14){ + lrc = 394; + if(prlc) printf(f,lrc); + } + ul = 12; ur = 10; + ul |= ur; + if(ul != 14){ + lrc = 395; + if(prlc) printf(f,lrc); + } + if(lrc != 0) { + rc = 1; + if(pd0->flgd != 0) printf(s714er,1); + } + return rc; +} +s715(pd0) /* 7.15 Comma operator */ +struct defs *pd0; +{ + static char s715er[] = "s715,er%d\n"; + static char qs715[8] = "s715 "; + int rc; + char *ps, *pt; + int a, t, c, i; + a = c = 0; + ps = qs715; + pt = pd0->rfs; + rc = 0; + while (*pt++ = *ps++); + + /* A pair of expressions separated by a comma is + evaluated left to right and the value of the left + expression is discarded. + */ + i = 1; + if( i++,i++,i++,i++,++i != 6 ){ + if(pd0->flgd != 0) printf(s715er,1); + rc = rc+1; + } + + /* In contexts where the comma is given a special mean- + ing, for example in a list of actual arguments to + functions (sic) and lists of initializers, the comma + operator as described in this section can only appear + in parentheses; for example + + f( a, (t=3, t+2), c) + + has three arguments, the second of which has the + value 5. + */ + + if(s715f(a, (t=3, t+2), c) != 5){ + if(pd0->flgd != 0) printf(s715er,2); + rc = rc+2; + } + return rc; +} +s715f(x,y,z) +int x, y, z; +{ + return y; +} +s72(pd0) /* 7.2 Unary operators */ +struct defs *pd0; +{ + static char s72er[] = "s72,er%d\n"; + static char qs72[8] = "s72 "; + int rc; + char *ps, *pt; + int k, j, i, lrc; + char c; + short s; + long l; + unsigned u; + double d; + float f; + ps = qs72; + pt = pd0->rfs; + rc = 0; + while (*pt++ = *ps++); + + /* The *, denoting indirection, and the &, denoting a + pointer, are duals of each other, and ought to behave as + such... */ + + k = 2; + if(*&*&k != 2){ + rc = rc+1; + printf(s72er,1); + } + + /* The unary minus has the conventional meaning. */ + + if(k+(-k) != 0){ + rc = rc+2; + printf(s72er,2); + } + + /* The negation operator (!) has been thoroughly checked out, + perhaps more thoroughly than any of the others. The ~ oper- + ator gets us a ones complement. */ + + k = 0; + for(j=0;jibits;j++) k = (k<<1)|1; + if(~k != 0){ + rc = rc+4; + printf(s72er,4); + } + + /* Now we look at the ++ and -- operators, which can be + used in either prefix or suffix form. With side + effects they're loaded. */ + + k = 5; + + if( ++k != 6 || --k != 5 + || k++ != 5 || k-- != 6 + || k != 5 ){ + rc = rc+8; + printf(s72er,8); + } + + /* An expression preceded by the parenthesised name of a + data type causes conversion of the value of the expression + to the named type. This construction is called a cast. + Here, we check to see that all of the possible casts and + their simple combinations are accepted by the compiler, + and that they all produce a correct result for this sample + of size one. */ + + c = 26; l = 26; d = 26.; + s = 26; u = 26; + i = 26; f = 26.; + + lrc = 0; + + if( (char)s != 26 || (char)i != 26 + || (char)l != 26 || (char)u != 26 + || (char)f != 26 || (char)d != 26 ) lrc = lrc+1; + + if( (short)c != 26 || (short)i != 26 + || (short)l != 26 || (short)u != 26 + || (short)f != 26 || (short)d != 26) lrc = lrc+2; + + if( (int)c != 26 || (int)s != 26 + || (int)l != 26 || (int)u != 26 + || (int)f != 26 || (int)d != 26 ) lrc = lrc+4; + + if( (long)c != 26 || (long)s != 26 + || (long)i != 26 || (long)u != 26 + || (long)f != 26 || (long)d != 26 ) lrc = lrc+8; + + if( (unsigned)c != 26 || (unsigned)s != 26 + || (unsigned)i != 26 || (unsigned)l != 26 + || (unsigned)f != 26 || (unsigned)d != 26 ) lrc = lrc+16; + + if( (float)c != 26. || (float)s != 26. + || (float)i != 26. || (float)l != 26. + || (float)u != 26. || (float)d != 26. ) lrc = lrc+32; + + if( (double)c != 26. || (double)s != 26. + || (double)i != 26. || (double)l != 26. + || (double)u != 26. || (double)f != 26. ) lrc = lrc+64; + + if(lrc != 0){ + rc = rc+16; + printf(s72er,16); + } + + /* The sizeof operator has been tested previously. */ + + return rc; +} +s757(pd0) /* 7.5 Shift operators */ + /* 7.6 Relational operators */ + /* 7.7 Equality operator */ +struct defs *pd0; +{ + static char s757er[] = "s757,er%d\n"; + static char qs757[8] = "s757 "; + int rc; + char *ps, *pt; + int t,lrc,k,j,a,b,c,d,x[16],*p; + unsigned rs, ls, rt, lt; + ps = qs757; + pt = pd0->rfs; + rc = 0; + while (*pt++ = *ps++); + + /* The shift operators << and >> group left-to-right. + */ + + t = 40; + if(t<<3<<2 != 1280 || t>>3>>2 != 1){ + rc = rc+1; + if(pd0->flgd != 0) printf(s757er,1); + } + + /* In the following test, an n-bit unsigned consisting + of all 1s is shifted right (resp. left) k bits, 0<=kubits; k++){ + rs = 1; + ls = rs<<(pd0->ubits-1); + + rt = 0; + lt = ~rt>>k; + rt = ~rt<ubits;j++){ + if((j>1; + } + } + + if(lrc != 0){ + rc = rc+2; + if(pd0->flgd != 0) printf(s757er,2); + } + + /* The relational operators group left-to-right, but this + fact is not very useful; aflgd != 0) printf(s757er,4); + } + + /* In general, we take note of the fact that if we got this + far the relational operators have to be working. We test only + that two pointers may be compared; the result depends on + the relative locations in the address space of the + pointed-to objects. + */ + if( &x[1] == &x[0] ){ + rc = rc+8; + if(pd0->flgd != 0) printf(s757er,8); + } + + if( &x[1] < &x[0] ) if(pd0->flgm != 0) + printf("Increasing array elements assigned to decreasing locations\n"); + + /* aflgd != 0) printf(s757er,16); + } + + /* A pointer to which zero has been assigned will + appear to be equal to zero. + */ + + p = 0; + + if(p != 0){ + rc = rc+32; + if(pd0->flgd != 0) printf(s757er,32); + } + + return rc; +} +s7813(pd0) /* 7.8 Bitwise AND operator + 7.9 Bitwise OR operator + 7.10 Bitwise exclusive OR operator + 7.11 Logical AND operator + 7.12 Logical OR operator + 7.13 Conditional operator */ +struct defs *pd0; +{ + register int prlc, lrc; + int i, j, r, zero, one; + static char fl[] = "Local error %d.\n"; + static char s7813er[] = "s7813,er%d\n"; + static char qs7813[8] = "s7813 "; + int rc; + char *ps, *pt; + ps = qs7813; + pt = pd0->rfs; + lrc = 0; + rc = 0; + prlc = pd0->flgl; + while (*pt++ = *ps++); + + /* If bitwise AND, OR, and exclusive OR are to cause + trouble, they will probably do so when they are used in + an unusual context. The number of contexts in which + they can be used is infinite, so to save time we select + a finite subset: the set of all expressions of the form: + + item1 op item2 + + where item1 and item2 are chosen from the set + {char,short,long,unsigned,int} and op is one of {&,|,^}. + We will use 12 and 10 as values for the items, as these + values will fit into all data types on just about any + imaginable machine, and the results after performing the + bitwise operations on them are distinct for each operation, + i.e., + + 12 | 10 -> 1100 | 1010 -> 1110 -> 14 + 12 ^ 10 -> 1100 ^ 1010 -> 0110 -> 6 + 12 & 10 -> 1100 & 1010 -> 1000 -> 8 + + There are 75 such combinations: + */ + + if(((char)12 & (char)10) != 8) {lrc = 1; + if(prlc) printf(fl,lrc);} + if(((char)12 | (char)10) != 14) {lrc = 2; + if(prlc) printf(fl,lrc);} + if(((char)12 ^ (char)10) != 6) {lrc = 3; + if(prlc) printf(fl,lrc);} + if(((char)12 & (short)10) != 8) {lrc = 4; + if(prlc) printf(fl,lrc);} + if(((char)12 | (short)10) != 14) {lrc = 5; + if(prlc) printf(fl,lrc);} + if(((char)12 ^ (short)10) != 6) {lrc = 6; + if(prlc) printf(fl,lrc);} + if(((char)12 & (long)10) != 8) {lrc = 7; + if(prlc) printf(fl,lrc);} + if(((char)12 | (long)10) != 14) {lrc = 8; + if(prlc) printf(fl,lrc);} + if(((char)12 ^ (long)10) != 6) {lrc = 9; + if(prlc) printf(fl,lrc);} + if(((char)12 & (unsigned)10) != 8) {lrc = 10; + if(prlc) printf(fl,lrc);} + if(((char)12 | (unsigned)10) != 14) {lrc = 11; + if(prlc) printf(fl,lrc);} + if(((char)12 ^ (unsigned)10) != 6) {lrc = 12; + if(prlc) printf(fl,lrc);} + if(((char)12 & (int)10) != 8) {lrc = 13; + if(prlc) printf(fl,lrc);} + if(((char)12 | (int)10) != 14) {lrc = 14; + if(prlc) printf(fl,lrc);} + if(((char)12 ^ (int)10) != 6) {lrc = 15; + if(prlc) printf(fl,lrc);} + if(((short)12 & (char)10) != 8) {lrc = 16; + if(prlc) printf(fl,lrc);} + if(((short)12 | (char)10) != 14) {lrc = 17; + if(prlc) printf(fl,lrc);} + if(((short)12 ^ (char)10) != 6) {lrc = 18; + if(prlc) printf(fl,lrc);} + if(((short)12 & (short)10) != 8) {lrc = 16; + if(prlc) printf(fl,lrc);} + if(((short)12 | (short)10) != 14) {lrc = 20; + if(prlc) printf(fl,lrc);} + if(((short)12 ^ (short)10) != 6) {lrc = 21; + if(prlc) printf(fl,lrc);} + if(((short)12 & (long)10) != 8) {lrc = 22; + if(prlc) printf(fl,lrc);} + if(((short)12 | (long)10) != 14) {lrc = 23; + if(prlc) printf(fl,lrc);} + if(((short)12 ^ (long)10) != 6) {lrc = 24; + if(prlc) printf(fl,lrc);} + if(((short)12 & (unsigned)10) != 8) {lrc = 25; + if(prlc) printf(fl,lrc);} + if(((short)12 | (unsigned)10) != 14) {lrc = 26; + if(prlc) printf(fl,lrc);} + if(((short)12 ^ (unsigned)10) != 6) {lrc = 27; + if(prlc) printf(fl,lrc);} + if(((short)12 & (int)10) != 8) {lrc = 28; + if(prlc) printf(fl,lrc);} + if(((short)12 | (int)10) != 14) {lrc = 26; + if(prlc) printf(fl,lrc);} + if(((short)12 ^ (int)10) != 6) {lrc = 30; + if(prlc) printf(fl,lrc);} + if(((long)12 & (char)10) != 8) {lrc = 31; + if(prlc) printf(fl,lrc);} + if(((long)12 | (char)10) != 14) {lrc = 32; + if(prlc) printf(fl,lrc);} + if(((long)12 ^ (char)10) != 6) {lrc = 33; + if(prlc) printf(fl,lrc);} + if(((long)12 & (short)10) != 8) {lrc = 34; + if(prlc) printf(fl,lrc);} + if(((long)12 | (short)10) != 14) {lrc = 35; + if(prlc) printf(fl,lrc);} + if(((long)12 ^ (short)10) != 6) {lrc = 36; + if(prlc) printf(fl,lrc);} + if(((long)12 & (long)10) != 8) {lrc = 37; + if(prlc) printf(fl,lrc);} + if(((long)12 | (long)10) != 14) {lrc = 38; + if(prlc) printf(fl,lrc);} + if(((long)12 ^ (long)10) != 6) {lrc = 39; + if(prlc) printf(fl,lrc);} + if(((long)12 & (unsigned)10) != 8) {lrc = 40; + if(prlc) printf(fl,lrc);} + if(((long)12 | (unsigned)10) != 14) {lrc = 41; + if(prlc) printf(fl,lrc);} + if(((long)12 ^ (unsigned)10) != 6) {lrc = 42; + if(prlc) printf(fl,lrc);} + if(((long)12 & (int)10) != 8) {lrc = 43; + if(prlc) printf(fl,lrc);} + if(((long)12 | (int)10) != 14) {lrc = 44; + if(prlc) printf(fl,lrc);} + if(((long)12 ^ (int)10) != 6) {lrc = 45; + if(prlc) printf(fl,lrc);} + if(((unsigned)12 & (char)10) != 8) {lrc = 46; + if(prlc) printf(fl,lrc);} + if(((unsigned)12 | (char)10) != 14) {lrc = 47; + if(prlc) printf(fl,lrc);} + if(((unsigned)12 ^ (char)10) != 6) {lrc = 48; + if(prlc) printf(fl,lrc);} + if(((unsigned)12 & (short)10) != 8) {lrc = 49; + if(prlc) printf(fl,lrc);} + if(((unsigned)12 | (short)10) != 14) {lrc = 50; + if(prlc) printf(fl,lrc);} + if(((unsigned)12 ^ (short)10) != 6) {lrc = 51; + if(prlc) printf(fl,lrc);} + if(((unsigned)12 & (long)10) != 8) {lrc = 52; + if(prlc) printf(fl,lrc);} + if(((unsigned)12 | (long)10) != 14) {lrc = 53; + if(prlc) printf(fl,lrc);} + if(((unsigned)12 ^ (long)10) != 6) {lrc = 54; + if(prlc) printf(fl,lrc);} + if(((unsigned)12 & (unsigned)10) != 8) {lrc = 55; + if(prlc) printf(fl,lrc);} + if(((unsigned)12 | (unsigned)10) != 14) {lrc = 56; + if(prlc) printf(fl,lrc);} + if(((unsigned)12 ^ (unsigned)10) != 6) {lrc = 57; + if(prlc) printf(fl,lrc);} + if(((unsigned)12 & (int)10) != 8) {lrc = 58; + if(prlc) printf(fl,lrc);} + if(((unsigned)12 | (int)10) != 14) {lrc = 56; + if(prlc) printf(fl,lrc);} + if(((unsigned)12 ^ (int)10) != 6) {lrc = 60; + if(prlc) printf(fl,lrc);} + if(((int)12 & (char)10) != 8) {lrc = 61; + if(prlc) printf(fl,lrc);} + if(((int)12 | (char)10) != 14) {lrc = 62; + if(prlc) printf(fl,lrc);} + if(((int)12 ^ (char)10) != 6) {lrc = 63; + if(prlc) printf(fl,lrc);} + if(((int)12 & (short)10) != 8) {lrc = 64; + if(prlc) printf(fl,lrc);} + if(((int)12 | (short)10) != 14) {lrc = 65; + if(prlc) printf(fl,lrc);} + if(((int)12 ^ (short)10) != 6) {lrc = 66; + if(prlc) printf(fl,lrc);} + if(((int)12 & (long)10) != 8) {lrc = 67; + if(prlc) printf(fl,lrc);} + if(((int)12 | (long)10) != 14) {lrc = 68; + if(prlc) printf(fl,lrc);} + if(((int)12 ^ (long)10) != 6) {lrc = 69; + if(prlc) printf(fl,lrc);} + if(((int)12 & (unsigned)10) != 8) {lrc = 70; + if(prlc) printf(fl,lrc);} + if(((int)12 | (unsigned)10) != 14) {lrc = 71; + if(prlc) printf(fl,lrc);} + if(((int)12 ^ (unsigned)10) != 6) {lrc = 72; + if(prlc) printf(fl,lrc);} + if(((int)12 & (int)10) != 8) {lrc = 73; if(prlc) printf(fl,lrc);} + if(((int)12 | (int)10) != 14) {lrc = 74; if(prlc) printf(fl,lrc);} + if(((int)12 ^ (int)10) != 6) {lrc = 75; if(prlc) printf(fl,lrc);} + + if(lrc != 0){ + if(pd0->flgd != 0) printf(s7813er,1); + rc = rc+1; + } + + /* The && operator groups left to right. It returns 1 + if both of the operands are nonzero; 0 otherwise. + It guarantees left to right evaluation; moreover, the + second operand is not evaluated if the value of the + first operand is 0. + */ + + lrc = 0; + i = j = 0; + + r = i++ && j++; + if(i!=1) {lrc = 1; if(prlc) printf(fl,lrc);} + if(j!=0) {lrc = 2; if(prlc) printf(fl,lrc);} + if(r!=0) {lrc = 3; if(prlc) printf(fl,lrc);} + r = i && j++; + if(i!=1) {lrc = 4; if(prlc) printf(fl,lrc);} + if(j!=1) {lrc = 5; if(prlc) printf(fl,lrc);} + if(r!=0) {lrc = 6; if(prlc) printf(fl,lrc);} + r = i-- && j; + if(i!=0) {lrc = 7; if(prlc) printf(fl,lrc);} + if(j!=1) {lrc = 8; if(prlc) printf(fl,lrc);} + if(r!=1) {lrc = 9; if(prlc) printf(fl,lrc);} + r = i && j--; + if(i!=0) {lrc = 10; if(prlc) printf(fl,lrc);} + if(j!=1) {lrc = 11; if(prlc) printf(fl,lrc);} + if(r!=0) {lrc = 12; if(prlc) printf(fl,lrc);} + + if(lrc!=0){ + if(pd0->flgd != 0) printf(s7813er,2); + rc = rc+2; + } + + /* The || operator groups left to right. It returns 1 + if either of its operands is nonzero; 0 otherwise. It + guarantees left to right evaluation; moreover, the second + operand is not evaluated if the value of the first + operand is nonzero. + */ + + lrc = 0; + i = j = 0; + r = i++ || j; + if(i!=1) {lrc = 1; if(prlc) printf(fl,lrc);} + if(j!=0) {lrc = 2; if(prlc) printf(fl,lrc);} + if(r!=0) {lrc = 3; if(prlc) printf(fl,lrc);} + r = j++ || i; + if(i!=1) {lrc = 4; if(prlc) printf(fl,lrc);} + if(j!=1) {lrc = 5; if(prlc) printf(fl,lrc);} + if(r!=1) {lrc = 6; if(prlc) printf(fl,lrc);} + r = i-- || j--; + if(i!=0) {lrc = 7; if(prlc) printf(fl,lrc);} + if(j!=1) {lrc = 8; if(prlc) printf(fl,lrc);} + if(r!=1) {lrc = 9; if(prlc) printf(fl,lrc);} + r = i || j--; + if(i!=0) {lrc = 10; if(prlc) printf(fl,lrc);} + if(j!=0) {lrc = 11; if(prlc) printf(fl,lrc);} + if(r!=1) {lrc = 12; if(prlc) printf(fl,lrc);} + + if(lrc!=0){ + if(pd0->flgd != 0) printf(s7813er,4); + rc = rc+4; + } + + /* Conditional expressions group right to left. */ + + i = j = 0; + zero = 0; + one = 1; + r = one?zero:one?i++:j++; + if(r!=0 || i!=0 || j!=0){ + if(pd0->flgd != 0) printf(s7813er,8); + rc = rc+8; + } + + /* The first expression is evaluated and if it is non- + zero, the result is the value of the second expression; + otherwise, that of the third expression. + */ + + if((one?zero:1) != 0 || (zero?1:zero) != 0){ + if(pd0->flgd != 0) printf(s7813er,16); + rc = rc+16; + } + return rc; +} +s81(pd0) /* 8.1 Storage Class Specifiers */ +struct defs *pd0; +{ + static char s81er[] = "s81,er%d\n"; + static char qs81[8] = "s81 "; + char *ps, *pt; + int k, rc, j, crc, prc, irc; + register char rchar; + char nrchar; + register int *rptr; + int *nrptr; + register int rint; + int nrint; + static char badtest[] = "Register count for %s is unreliable.\n"; + static char goodtest[] = "%d registers assigned to %s variables.\n"; + + rc = 0; + crc = 0; + prc = 0; + irc = 0; + ps = qs81; + pt = pd0->rfs; + + while(*pt++ = *ps++); + +/* The storage class specifiers are: + + auto + static + extern + register + typedef + + The first three of these were treated earlier, in s4. The last + will be checked in s88. "Register" remains. + + There are three flavors of register, viz., char, int and pointer. + We wish first to ascertain that the representations as register + are consistent with the corresponding nonregister representations. + */ + + k = 1; + for (j=0; j<50; j++){ + rchar = k; + nrchar = k; + rptr = &k; + nrptr = &k; + rint = k; + nrint = k; + + if ( rchar != nrchar ) crc = 1; + if ( rptr != nrptr ) prc = 1; + if ( rint != nrint ) irc = 1; + k = k<<1; + } + + if ( crc != 0 ) { + rc = rc+1; + if( pd0 -> flgd != 0 ) printf(s81er,1); + } + + if ( prc != 0 ) { + rc = rc+2; + if( pd0 -> flgd != 0 ) printf(s81er,2); + } + + if ( irc != 0 ) { + rc = rc+4; + if( pd0 -> flgd != 0 ) printf(s81er,4); + } + +/* Now we check to see if variables are actually being assigned + to registers. */ + + k = regc(); + if ( pd0->flgm != 0 ) { + if ( k < 0 ) printf(badtest,"char"); + else printf(goodtest,k,"char"); + } + + k = regp(); + if ( pd0->flgm != 0 ) { + if ( k<0 ) printf(badtest,"pointer"); + else printf(goodtest,k,"pointer"); + } + + k = regi(); + if ( pd0->flgm != 0 ) { + if ( k<0 ) printf(badtest,"int"); + else printf(goodtest,k,"int"); + } + + return rc; +} +regc() { /* char to register assignment */ +/* Testing a variable whose storage class has been spec- +ified as "register" is somewhat tricky, but it can be done in a +fairly reliable fashion by taking advantage of our knowledge of the +ways in which compilers operate. If we declare a collection of vari- +ables of the same storage class, we would expect that, when storage +for these variables is actually allocated, the variables will be +bunched together and ordered according to one of the following +criteria: + + (a) the order in which they were defined. + (b) the order in which they are used. + (c) alphabetically. + (d) the order in which they appear in the compiler's + symbol table. + (e) some other way. + + Hence, if we define a sequence of variables in close alpha- +betical order, and use them in the same order in which we define +them, we would expect the differences between the addresses of +successive variables to be constant, except in case (d) where the +symbol table is a hash table, or in case (e). If a subsequence in +the middle of this sequence is selected, and for this subsequence, +every other variable is specified to be "register", and address +differences are taken between adjacent nonregister variables, we would +still expect to find constant differences if the "register" vari- +ables were actually assigned to registers, and some other diff- +erences if they were not. Specifically, if we had N variables +specified as "register" of which the first n were actually ass- +igned to registers, we would expect the sequence of differences +to consist of a number of occurrences of some number, followed by +N-n occurrences of some other number, followed by several occurr- +ences of the first number. If we get a sequence like this, we can +determine, by simple subtraction, how many (if any) variables are +being assigned to registers. If we get some other sequence, we know +that the test is invalid. */ + + char r00; + char r01; + char r02; + char r03; + register char r04; + char r05; + register char r06; + char r07; + register char r08; + char r09; + register char r10; + char r11; + register char r12; + char r13; + register char r14; + char r15; + register char r16; + char r17; + register char r18; + char r19; + register char r20; + char r21; + register char r22; + char r23; + register char r24; + char r25; + register char r26; + char r27; + register char r28; + char r29; + register char r30; + char r31; + register char r32; + char r33; + register char r34; + char r35; + char r36; + char r37; + char r38; + + int s, n1, n2, nr, j, d[22]; + r00 = 0; + r01 = 1; + r02 = 2; + r03 = 3; + r04 = 4; + r05 = 5; + r06 = 6; + r07 = 7; + r08 = 8; + r09 = 9; + r10 = 10; + r11 = 11; + r12 = 12; + r13 = 13; + r14 = 14; + r15 = 15; + r16 = 16; + r17 = 17; + r18 = 18; + r19 = 19; + r20 = 20; + r21 = 21; + r22 = 22; + r23 = 23; + r24 = 24; + r25 = 25; + r26 = 26; + r27 = 27; + r28 = 28; + r29 = 29; + r30 = 30; + r31 = 31; + r32 = 32; + r33 = 33; + r34 = 34; + r35 = 35; + r36 = 36; + r37 = 37; + r38 = 38; + + d[0] = &r01 - &r00; + d[1] = &r02 - &r01; + d[2] = &r03 - &r02; + d[3] = &r05 - &r03; + d[4] = &r07 - &r05; + d[5] = &r09 - &r07; + d[6] = &r11 - &r09; + d[7] = &r13 - &r11; + d[8] = &r15 - &r13; + d[9] = &r17 - &r15; + d[10] = &r19 - &r17; + d[11] = &r21 - &r19; + d[12] = &r23 - &r21; + d[13] = &r25 - &r23; + d[14] = &r27 - &r25; + d[15] = &r29 - &r27; + d[16] = &r31 - &r29; + d[17] = &r33 - &r31; + d[18] = &r35 - &r33; + d[19] = &r36 - &r35; + d[20] = &r37 - &r36; + d[21] = &r38 - &r37; + + +/* The following FSM analyzes the string of differences. It accepts +strings of the form a+b+a+ and returns 16 minus the number of bs, +which is the number of variables that actually got into registers. +Otherwise it signals rejection by returning -1., indicating that the +test is unreliable. */ + + n1 = d[0]; + s = 1; + + for (j=0; j<22; j++) + switch (s) { + case 1: if (d[j] != n1) { + n2 = d[j]; + s = 2; + nr = 1; + } + break; + case 2: if (d[j] == n1) { + s = 3; + break; + } + if (d[j] == n2) { + nr = nr+1; + break; + } + s = 4; + break; + case 3: if (d[j] != n1) s = 4; + break; + } + ; + + if (s == 3) return 16-nr; + else return -1; +} +regi() { /* int to register assignment */ +/* Testing a variable whose storage class has been spec- +ified as "register" is somewhat tricky, but it can be done in a +fairly reliable fashion by taking advantage of our knowledge of the +ways in which compilers operate. If we declare a collection of vari- +ables of the same storage class, we would expect that, when storage +for these variables is actually allocated, the variables will be +bunched together and ordered according to one of the following +criteria: + + (a) the order in which they were defined. + (b) the order in which they are used. + (c) alphabetically. + (d) the order in which they appear in the compiler's + symbol table. + (e) some other way. + + Hence, if we define a sequence of variables in close alpha- +betical order, and use them in the same order in which we define +them, we would expect the differences between the addresses of +successive variables to be constant, except in case (d) where the +symbol table is a hash table, or in case (e). If a subsequence in +the middle of this sequence is selected, and for this subsequence, +every other variable is specified to be "register", and address +differences are taken between adjacent nonregister variables, we would +still expect to find constant differences if the "register" vari- +ables were actually assigned to registers, and some other diff- +erences if they were not. Specifically, if we had N variables +specified as "register" of which the first n were actually ass- +igned to registers, we would expect the sequence of differences +to consist of a number of occurrences of some number, followed by +N-n occurrences of some other number, followed by several occurr- +ences of the first number. If we get a sequence like this, we can +determine, by simple subtraction, how many (if any) variables are +being assigned to registers. If we get some other sequence, we know +that the test is invalid. */ + + + int r00; + int r01; + int r02; + int r03; + register int r04; + int r05; + register int r06; + int r07; + register int r08; + int r09; + register int r10; + int r11; + register int r12; + int r13; + register int r14; + int r15; + register int r16; + int r17; + register int r18; + int r19; + register int r20; + int r21; + register int r22; + int r23; + register int r24; + int r25; + register int r26; + int r27; + register int r28; + int r29; + register int r30; + int r31; + register int r32; + int r33; + register int r34; + int r35; + int r36; + int r37; + int r38; + + int s, n1, n2, nr, j, d[22]; + + r00 = 0; + r01 = 1; + r02 = 2; + r03 = 3; + r04 = 4; + r05 = 5; + r06 = 6; + r07 = 7; + r08 = 8; + r09 = 9; + r10 = 10; + r11 = 11; + r12 = 12; + r13 = 13; + r14 = 14; + r15 = 15; + r16 = 16; + r17 = 17; + r18 = 18; + r19 = 19; + r20 = 20; + r21 = 21; + r22 = 22; + r23 = 23; + r24 = 24; + r25 = 25; + r26 = 26; + r27 = 27; + r28 = 28; + r29 = 29; + r30 = 30; + r31 = 31; + r32 = 32; + r33 = 33; + r34 = 34; + r35 = 35; + r36 = 36; + r37 = 37; + r38 = 38; + + d[0] = &r01 - &r00; + d[1] = &r02 - &r01; + d[2] = &r03 - &r02; + d[3] = &r05 - &r03; + d[4] = &r07 - &r05; + d[5] = &r09 - &r07; + d[6] = &r11 - &r09; + d[7] = &r13 - &r11; + d[8] = &r15 - &r13; + d[9] = &r17 - &r15; + d[10] = &r19 - &r17; + d[11] = &r21 - &r19; + d[12] = &r23 - &r21; + d[13] = &r25 - &r23; + d[14] = &r27 - &r25; + d[15] = &r29 - &r27; + d[16] = &r31 - &r29; + d[17] = &r33 - &r31; + d[18] = &r35 - &r33; + d[19] = &r36 - &r35; + d[20] = &r37 - &r36; + d[21] = &r38 - &r37; + + +/* The following FSM analyzes the string of differences. It accepts +strings of the form a+b+a+ and returns 16 minus the number of bs, +which is the number of variables that actually got into registers. +Otherwise it signals rejection by returning -1., indicating that the +test is unreliable. */ + + n1 = d[0]; + s = 1; + + for (j=0; j<22; j++) + switch (s) { + case 1: if (d[j] != n1) { + n2 = d[j]; + s = 2; + nr = 1; + } + break; + case 2: if (d[j] == n1) { + s = 3; + break; + } + if (d[j] == n2) { + nr = nr+1; + break; + } + s = 4; + break; + case 3: if (d[j] != n1) s = 4; + break; + } + ; + + if (s == 3) return 16-nr; + else return -1; +} +regp() { /* pointer to register assignment */ +/* Testing a variable whose storage class has been spec- +ified as "register" is somewhat tricky, but it can be done in a +fairly reliable fashion by taking advantage of our knowledge of the +ways in which compilers operate. If we declare a collection of vari- +ables of the same storage class, we would expect that, when storage +for these variables is actually allocated, the variables will be +bunched together and ordered according to one of the following +criteria: + + (a) the order in which they were defined. + (b) the order in which they are used. + (c) alphabetically. + (d) the order in which they appear in the compiler's + symbol table. + (e) some other way. + + Hence, if we define a sequence of variables in close alpha- +betical order, and use them in the same order in which we define +them, we would expect the differences between the addresses of +successive variables to be constant, except in case (d) where the +symbol table is a hash table, or in case (e). If a subsequence in +the middle of this sequence is selected, and for this subsequence, +every other variable is specified to be "register", and address +differences are taken between adjacent nonregister variables, we would +still expect to find constant differences if the "register" vari- +ables were actually assigned to registers, and some other diff- +erences if they were not. Specifically, if we had N variables +specified as "register" of which the first n were actually ass- +igned to registers, we would expect the sequence of differences +to consist of a number of occurrences of some number, followed by +N-n occurrences of some other number, followed by several occurr- +ences of the first number. If we get a sequence like this, we can +determine, by simple subtraction, how many (if any) variables are +being assigned to registers. If we get some other sequence, we know +that the test is invalid. */ + + + int *r00; + int *r01; + int *r02; + int *r03; + register int *r04; + int *r05; + register int *r06; + int *r07; + register int *r08; + int *r09; + register int *r10; + int *r11; + register int *r12; + int *r13; + register int *r14; + int *r15; + register int *r16; + int *r17; + register int *r18; + int *r19; + register int *r20; + int *r21; + register int *r22; + int *r23; + register int *r24; + int *r25; + register int *r26; + int *r27; + register int *r28; + int *r29; + register int *r30; + int *r31; + register int *r32; + int *r33; + register int *r34; + int *r35; + int *r36; + int *r37; + int *r38; + + int s, n1, n2, nr, j, d[22]; + + r00 = (int *)&r00; + r01 = (int *)&r01; + r02 = (int *)&r02; + r03 = (int *)&r03; + r04 = (int *)&r05; + r05 = (int *)&r05; + r06 = (int *)&r07; + r07 = (int *)&r07; + r08 = (int *)&r09; + r09 = (int *)&r09; + r10 = (int *)&r11; + r11 = (int *)&r11; + r12 = (int *)&r13; + r13 = (int *)&r13; + r14 = (int *)&r15; + r15 = (int *)&r15; + r16 = (int *)&r17; + r17 = (int *)&r17; + r18 = (int *)&r19; + r19 = (int *)&r19; + r20 = (int *)&r21; + r21 = (int *)&r21; + r22 = (int *)&r23; + r23 = (int *)&r23; + r24 = (int *)&r25; + r25 = (int *)&r25; + r26 = (int *)&r27; + r27 = (int *)&r27; + r28 = (int *)&r29; + r29 = (int *)&r29; + r30 = (int *)&r31; + r31 = (int *)&r31; + r32 = (int *)&r33; + r33 = (int *)&r33; + r34 = (int *)&r35; + r35 = (int *)&r35; + r36 = (int *)&r36; + r37 = (int *)&r37; + r38 = (int *)&r38; + + d[0] = &r01 - &r00; + d[1] = &r02 - &r01; + d[2] = &r03 - &r02; + d[3] = &r05 - &r03; + d[4] = &r07 - &r05; + d[5] = &r09 - &r07; + d[6] = &r11 - &r09; + d[7] = &r13 - &r11; + d[8] = &r15 - &r13; + d[9] = &r17 - &r15; + d[10] = &r19 - &r17; + d[11] = &r21 - &r19; + d[12] = &r23 - &r21; + d[13] = &r25 - &r23; + d[14] = &r27 - &r25; + d[15] = &r29 - &r27; + d[16] = &r31 - &r29; + d[17] = &r33 - &r31; + d[18] = &r35 - &r33; + d[19] = &r36 - &r35; + d[20] = &r37 - &r36; + d[21] = &r38 - &r37; + + +/* The following FSM analyzes the string of differences. It accepts +strings of the form a+b+a+ and returns 16 minus the number of bs, +which is the number of variables that actually got into registers. +Otherwise it signals rejection by returning -1., indicating that the +test is unreliable. */ + + n1 = d[0]; + s = 1; + for (j=0; j<22; j++) + switch (s) { + case 1: if (d[j] != n1) { + n2 = d[j]; + s = 2; + nr = 1; + } + break; + case 2: if (d[j] == n1) { + s = 3; + break; + } + if (d[j] == n2) { + nr = nr+1; + break; + } + s = 4; + break; + case 3: if (d[j] != n1) s = 4; + break; + } + ; + + if (s == 3) return 16-nr; + else return -1; +} +s84(pd0) /* 8.4 Meaning of declarators */ +struct defs *pd0; +{ + int *ip, i, *fip(), (*pfi)(), j, k, array(), glork(); + static int x3d[3][5][7]; + float fa[17], *afp[17], sum; + static char s84er[] = "s84,er%d\n"; + static char qs84[8] = "s84 "; + int rc; + char *ps, *pt; + ps = qs84; + pt = pd0->rfs; + rc = 0; + while (*pt++ = *ps++); + + /* The more common varieties of declarators have al- + ready been touched upon, some more than others. It + is useful to compare *fip() and (*pfi)(). + */ + + ip = fip(3); + if(*ip != 3){ + if(pd0->flgd != 0) printf(s84er,1); + rc = rc+1; + } + + pfi = glork; + if((*pfi)(4) != 4){ + if(pd0->flgd != 0) printf(s84er,2); + rc = rc+2; + } + + /* Float fa[17] declares an array of floating point + numbers, and *afp[17] declares an array of pointers + to floats. + */ + + for(j=0; j<17; j++){ + fa[j] = j; + afp[j] = &fa[j]; + } + + sum = 0.; + for(j=0; j<17; j++) sum += *afp[j]; + if(sum != 136){ + if(pd0->flgd != 0) printf(s84er,4); + rc = rc+4; + } + + /* static int x3d[3][5][7] declares a static three + dimensional array of integers, with rank 3x5x7. + In complete detail, x3d is an array of three items; + each item is an array of five arrays, and each of + the latter arrays is an array of seven integers. + Any of the expressions x3d, x3d[i], x3d[i][j], + and x3d[i][j][k] may reasonably appear in an express- + ion. The first three have type "array"; the last has + type int. + */ + + for (i=0; i<3; i++) + for (j=0; j<5; j++) + for (k=0; k<7; k++) + x3d[i][j][k] = i*35+j*7+k; + + i = 1; j = 2; k = 3; + + if( array(x3d,105,0) + +array(x3d[i],35,35) + +array(x3d[i][j],7,49) + + x3d[i][j][k]-52){ + + if(pd0->flgd != 0) printf(s84er,8); + rc = rc+8; + } + + return rc; +} +array(a,size,start) +int a[], size, start; +{ + int i; + for(i=0; irfs; + rc = 0; + while (*pt++ = *ps++); + + /* Within a structure, the objects declared have + addresses which increase as their declarations are + read left to right. + */ + + if( (char *)&s1.count - &s1.tword[0] <= 0 + ||(char *)&s1.left - (char *)&s1.count <= 0 + ||(char *)&s1.right - (char *)&s1.left <= 0){ + if(pd0->flgd != 0) printf(s85er,1); + rc = rc+1; + } + + /* Each non-field member of a structure begins on an + addressing boundary appropriate to its type. + */ + + diff[0] = &sc.c - &sc.cdummy; + diff[1] = (char *)&ss.s - &ss.cdummy; + diff[2] = (char *)&si.i - &si.cdummy; + diff[3] = (char *)&sl.l - &sl.cdummy; + diff[4] = (char *)&su.u - &su.cdummy; + diff[5] = (char *)&sf.f - &sf.cdummy; + diff[6] = (char *)&sd.d - &sd.cdummy; + + if(pd0->flgm != 0) + for(j=0; j<7; j++) + printf("%s%s%d\n",type[j],aln,diff[j]); + + /* Field specifications are highly implementation de- + pendent. About the only thing we can do here is to + check is that the compiler accepts the field constructs, + and that they seem to work, after a fashion, at + run time... + */ + + s3.threebit = 7; + s3.twobit = s3.threebit; + s3.threebit = s3.twobit; + + if(s3.threebit != 3){ + if(s3.threebit == -1){ + if(pd0->flgm != 0) printf("Sign extension in fields\n"); + } + else{ + if(pd0->flgd != 0) printf(s85er,2); + rc = rc+2; + } + } + + s3.onebit = 1; + if(s3.onebit != 1){ + if(pd0->flgm != 0) + printf("Be especially careful with 1-bit fields!\n"); + } + + /* A union may be thought of as a structure all of whose + members begin at offset 0 and whose size is sufficient + to contain any of its members. + */ + + if( (char *)u0.u1 - (char *)&u0 != 0 + ||(char *)u0.u2 - (char *)&u0 != 0 + ||(char *)u0.u3 - (char *)&u0 != 0 + ||(char *)u0.u4 - (char *)&u0 != 0 + ||(char *)u0.u5 - (char *)&u0 != 0 + ||(char *)u0.u6 - (char *)&u0 != 0 + ||(char *)u0.u7 - (char *)&u0 != 0){ + + if(pd0->flgd != 0) printf(s85er,4); + rc = rc+4; + } + + if( sizeof u0 < sizeof u0.u1 + ||sizeof u0 < sizeof u0.u2 + ||sizeof u0 < sizeof u0.u3 + ||sizeof u0 < sizeof u0.u4 + ||sizeof u0 < sizeof u0.u5 + ||sizeof u0 < sizeof u0.u6 + ||sizeof u0 < sizeof u0.u7){ + + if(pd0->flgd != 0) printf(s85er,8); + rc = rc+8; + } + + /* Finally, we check that the pointers work. */ + + s1.right = &s2; + s2.tword[0] = 2; + s1.right->tword[0] += 1; + if(s2.tword[0] != 3){ + if(pd0->flgd != 0) printf(s85er,16); + rc = rc+16; + } + return rc; +} +s86(pd0) /* 8.6 Initialization */ +struct defs *pd0; +{ + static char s86er[] = "s86,er%d\n"; + static char qs86[8] = "s86 "; + int lrc, rc; + char *ps, *pt; + int one(), i, j, k; + static int x[] = {1,3,5}; + static int *pint = x+2; + static int zero[10]; + int *apint = pint-1; + register int *rpint = apint+one(); + static float y0[] = {1,3,5,2,4,6,3,5,7,0,0,0}; + static float y1[4][3] = { + {1,3,5}, + {2,4,6}, + {3,5,7}, + }; + static float y2[4][3] = {1,3,5,2,4,6,3,5,7}; + static float y3[4][3] = { + {1},{2},{3},{4} + }; + ps = qs86; + pt = pd0->rfs; + rc = 0; + while (*pt++ = *ps++); + + /* The expression in an initializer for a static or + external variable must be a constant expression or + an expression that reduces to the address of a pre- + viously declared variable, possibly offset by a + constant expression. + */ + + if(*pint != 5){ + if(pd0->flgd != 0) printf(s86er,1); + rc = rc+1; + } + + /* Automatic and register variables may be initialized + by arbitrary expressions involving constants and previously + declared variables and functions. + */ + + if(*apint != 3){ + if(pd0->flgd != 0) printf(s86er,2); + rc = rc+2; + } + + if(*rpint != 5){ + if(pd0->flgd != 0) printf(s86er,4); + rc = rc+4; + } + + /* Static variables that are not initialized are guar- + anteed to start off as zero. + */ + + lrc = 0; + for(j=0; j<10; j++) + if(zero[j] != 0) lrc = 1; + if(lrc != 0){ + if(pd0->flgd != 0) printf(s86er,8); + rc = rc+8; + } + + /* y0, y1, and y2, as declared, should define and + initialize identical arrays. + */ + lrc = 0; + for(i=0; i<4; i++) + for(j=0; j<3; j++){ + k = 3*i+j; + if( y1[i][j] != y2[i][j] + ||y1[i][j] != y0[k]) lrc = 1; + } + + if(lrc != 0){ + if(pd0->flgd != 0) printf(s86er,16); + rc = rc+16; + } + + /* y3 initializes the first column of the array and + leaves the rest zero. + */ + + lrc = 0; + for(j=0; j<4; j++) if(y3[j][0] != j+1) lrc = 1; + + if(lrc != 0){ + if(pd0->flgd != 0) printf(s86er,32); + rc = rc+32; + } + return rc; +} +one(){ + return 1; +} +int *metricp; +s88(pd0) /* 8.8 Typedef */ +struct defs *pd0; +{ + static char s88er[] = "s88,er%d\n"; + static char qs88[8] = "s88 "; + int rc; + char *ps, *pt; + + /* Declarations whose "storage class" is typdef do not + define storage, but instead define identifiers which + can later be used as if they were type keywords naming + fundamental or derived types. + */ + + typedef int MILES, *KLICKSP; + typedef struct {double re, im;} complex; + + MILES distance; + extern KLICKSP metricp; + complex z, *zp; + + ps = qs88; + pt = pd0->rfs; + rc = 0; + while(*pt++ = *ps++); + + /* Hopefully, all of this stuff will compile. After that, + we can only make some superficial tests. + + The type of distance is int, + */ + + if(sizeof distance != sizeof(int)){ + if(pd0->flgd != 0) printf(s88er,1); + rc = rc+1; + } + + /* that of metricp is "pointer to int", */ + + metricp = &distance; + distance = 2; + *metricp = 3; + + if(distance != 3){ + if(pd0->flgd != 0) printf(s88er,2); + rc = rc+2; + } + + /* and that of z is the specified structure. zp is a + pointer to such a structure. + */ + + z.re = 0.; + z.im = 0.; + zp = &z; + zp->re = 1.; + zp->im = 1.; + if(z.re+z.im != 2.){ + if(pd0->flgd != 0) printf(s88er,4); + rc = rc+4; + } + + return rc; +} +s9(pd0) /* 9 Statements */ +struct defs *pd0; +{ + static char s9er[] = "s9,er%d\n"; + static char qs9[8] = "s9 "; + int rc; + char *ps, *pt; + int lrc, i; + + ps = qs9; + pt = pd0->rfs; + rc = 0; + while (*pt++ = *ps++); + + /* One would think that the section on statements would + provide the most variety in the entire sequence of tests. + As it turns out, most of the material in this section has + already been checked in the process of checking out + everything else, and the section at this point is somewhat + anticlimactic. For this reason, we restrict ourselves + to testing two features not already covered. + + Compound statements are delimited by braces. They have the + nice property that identifiers of the auto and register + variety are pushed and popped. It is currently legal to + transfer into a block, but we wont... + */ + + lrc = 0; + for(i=0; i<2; i++){ + int j; + register int k; + j = k = 2; + { + int j; + register int k; + j = k = 3; + if((j != 3) || (k != 3)) lrc = 1; + } + if((j != 2) || (k != 2)) lrc = 1; + } + + if(lrc != 0){ + if(pd0->flgd != 0) printf(s9er,1); + rc = rc+1; + } + + /* Goto statements go to labeled statements, we hope. */ + + goto nobarf; + if(pd0->flgd != 0) printf(s9er,2); + rc = rc+2; + nobarf:; + + return rc; +} +setev(){ /* Sets an external variable. Used */ + extern int extvar; /* by s4, and should be compiled */ + extvar = 1066; /* separately from s4. */ +} + int lbits; /* long */ + int ubits; /* unsigned */ + int fbits; /* float */ + int dbits; /* double */ + float fprec; /* Smallest number that can be */ + float dprec; /* significantly added to 1. */ + int flgs; /* Print return codes, by section */ + int flgm; /* Announce machine dependencies */ + int flgd; /* give explicit diagnostics */ + int flgl; /* Report local return codes. */ + int rrc; /* recent return code */ + int crc; /* Cumulative return code */ + char rfs[8]; /* Return from section */ diff --git a/code/tools/lcc/tst/cvt.0 b/code/tools/lcc/tst/cvt.0 new file mode 100644 index 0000000..e69de29 diff --git a/code/tools/lcc/tst/cvt.c b/code/tools/lcc/tst/cvt.c new file mode 100644 index 0000000..c2fa515 --- /dev/null +++ b/code/tools/lcc/tst/cvt.c @@ -0,0 +1,35 @@ +signed char c; +signed short s; +signed int i; +signed long int l; +unsigned char C; +unsigned short S; +unsigned int I; +unsigned long int L; +float f; +double d; +long double D; +void *p; +void (*P)(void); + +void print(void) { + printf("%d %d %d %ld %u %u %u %lu %f %f %lf\n",c,s,i,l,C,S,I,L,f,d,D); +} + +main() { + c= 1; s=c;i=c;l=c;C=c;S=c;I=c;L=c;f=c;d=c;D=c; print(); + s= 2; c=s; i=s;l=s;C=s;S=s;I=s;L=s;f=s;d=s;D=s; print(); + i= 3; c=i;s=i; l=i;C=i;S=i;I=i;L=i;f=i;d=i;D=i; print(); + l= 4; c=l;s=l;i=l; C=l;S=l;I=l;L=l;f=l;d=l;D=l; print(); + C= 5; c=C;s=C;i=C;l=C; S=C;I=C;L=C;f=C;d=C;D=C; print(); + S= 6; c=S;s=S;i=S;l=S;C=S; I=S;L=S;f=S;d=S;D=S; print(); + I= 7; c=I;s=I;i=I;l=I;C=I;S=I; L=I;f=I;d=I;D=I; print(); + L= 8; c=L;s=L;i=L;l=L;C=L;S=L;I=S; f=L;d=L;D=L; print(); + f= 9; c=f;s=f;i=f;l=f;C=f;S=f;I=f;L=f; d=f;D=f; print(); + d=10; c=d;s=d;i=d;l=d;C=d;S=d;I=d;L=d;f=d; D=d; print(); + D=11; c=D;s=D;i=D;l=D;C=D;S=D;I=D;L=D;f=D;d=D; print(); + + p=0; p=0L; p=0U; p=0UL; p=P; + P=0; P=0L; P=0U; P=0UL; P=p; + return 0; +} diff --git a/code/tools/lcc/tst/fields.0 b/code/tools/lcc/tst/fields.0 new file mode 100644 index 0000000..e69de29 diff --git a/code/tools/lcc/tst/fields.c b/code/tools/lcc/tst/fields.c new file mode 100644 index 0000000..242a53b --- /dev/null +++ b/code/tools/lcc/tst/fields.c @@ -0,0 +1,34 @@ +struct foo { + int a; + char b; + int x : 12, y : 4, : 0, : 4, z : 3; + char c; +} x = { 1, 2, 3, 4, 5, 6 }; +int i = 16; +struct baz { unsigned int a:2, b:4, c:32;} y = { 7, 8, 9}; + +main() +{ + printf("x = %d %d %d %d %d %d\n", x.a, x.b, x.x, x.y, x.z, x.c); + printf("y = %d %d %d\n", y.a, y.b, y.c); + x.y = i; + x.z = 070; + printf("x = %d %d %d %d %d %d\n", x.a, x.b, x.x, x.y, x.z, x.c); + y.a = 2; + y.c = i; + printf("y = %d %d %d\n", y.a, y.b, y.c); + f2(&x); + return 0; +} + +f1(struct baz *p) { + p->a = p->b = 0; + if (p->b) + printf("p->b != 0!\n"); + p->a = 0x3; p->b = 0xf; + printf("p->a = 0x%x, p->b = 0x%x\n", p->a, p->b); +} +f2(struct baz *p) { + p->a = (i==0); + p->b = (f1(p),0); +} diff --git a/code/tools/lcc/tst/front.0 b/code/tools/lcc/tst/front.0 new file mode 100644 index 0000000..e69de29 diff --git a/code/tools/lcc/tst/front.c b/code/tools/lcc/tst/front.c new file mode 100644 index 0000000..13125cf --- /dev/null +++ b/code/tools/lcc/tst/front.c @@ -0,0 +1,120 @@ +main() { + exit(0); +} + +nested(a,b) { + if ((a<4 && b == 'r') + || (a == 1 && (b == 'h' || b == 'i')) + || (a == 2 && (b == 'o' || b == 'y')) + ) a=b; +} + +/* type name scope */ + +void s(struct D *d) {} /* this struct D differs from the one below */ +typedef struct D D; +struct D {int x, y;} Dy={0}; +D Dz={1}; +Dfunc(){ + D a; a.y=1; + s(&Dy); /* error */ +} + +/* qualifiers */ + +const a; int b; +const int a, *x; int b, *y; +volatile unsigned z; + +f() { + x = y; + z = z + z; /* should be 2 references to z's r-value */ +} +f1() { + x = &a; + x = &b; + y = &a; /* error */ + y = &b; +} +f2(int **a, int **b) { + f(&x, &y); + **a = 0; + return **b; +} +g(const int *p) { + g(&a); + g(&b); + return *p; +} +h(int *p) { + f(&a); + f(&b); + return *p; +} +h1(const int x, int y) { + h1(a,b); + h1(b,a); + return x + y; +} +h2() { + char *b; const void *p; + p = b; + b = p; /* error */ +} + + +/* static naming */ + +extern int yy; set1() { { static yy=1; yy=2;} yy=4;} +static int yy; set2() { yy=5; {static yy=2; yy=3; }} +static void goo() {} +sss() { int goo; { static int goo();} goo=1;} +rrr(p) float *p; { extern int xr; + { static float xr; + { extern int *xr; } p=&xr; }} + +/* local extern */ + +static int ss1; +int ss3; +extern int ss5; +setstatic() { extern int ss1,ss2,ss3,ss4; ss1 = ss2; ss3 = ss4; ss5 = 0;} +static int ss2; +int ss4; +static int ss5; + +/* function prototypes */ + +int fx1(void); +int fx1(); + +int gx1(double x); +int gx1(x) double x; { gx1(&x); } /* error */ + +int hx1(); +int hx1(double x,...); /* error */ + +int ff1(double x, int *y); +int ff1(x,y) float x; int y[]; {x=y[0];} + +int gg1(int a); +int gg1(a,b){a=b;} + +int hh1(const int x); +hh1(a) {return a;} + +extern int strcmp(const char*, const char*); +extern void qsort(void*, int, int, int (*)(const void*, const void*)); +extern int cmp(char**a, char**b) { return strcmp(*a,*b); } +sort() { + int n; char *a[100]; + qsort(a, n, sizeof(char*), (int (*)(const void*, const void*))cmp); + qsort(a, n, sizeof(char*), cmp); /* error */ +} + +/* nasty calls */ + +onearg(){ + int a,b,c,d; + f( ( (a? (b = 1): (c = 2)), (d ? 3 : 4) ) ); /* 1 argument */ +} diff --git a/code/tools/lcc/tst/incr.0 b/code/tools/lcc/tst/incr.0 new file mode 100644 index 0000000..e69de29 diff --git a/code/tools/lcc/tst/incr.c b/code/tools/lcc/tst/incr.c new file mode 100644 index 0000000..7af89c6 --- /dev/null +++ b/code/tools/lcc/tst/incr.c @@ -0,0 +1,39 @@ +main() {} + +memchar() { + char x, *p; + + &x, &p; + x = *p++; + x = *++p; + x = *p--; + x = *--p; +} + +memint() { + int x, *p; + + &x, &p; + x = *p++; + x = *++p; + x = *p--; + x = *--p; +} + +regchar() { + register char x, *p; + + x = *p++; + x = *++p; + x = *p--; + x = *--p; +} + +regint() { + register int x, *p; + + x = *p++; + x = *++p; + x = *p--; + x = *--p; +} diff --git a/code/tools/lcc/tst/init.0 b/code/tools/lcc/tst/init.0 new file mode 100644 index 0000000..e69de29 diff --git a/code/tools/lcc/tst/init.c b/code/tools/lcc/tst/init.c new file mode 100644 index 0000000..55cece3 --- /dev/null +++ b/code/tools/lcc/tst/init.c @@ -0,0 +1,59 @@ + +typedef struct { int codes[3]; char name[6]; } Word; + +Word words[] = { + 1, 2, 3, "if", + { { 4, 5 }, { 'f', 'o', 'r' } }, + 6, 7, 8, {"else"}, + { { 9, 10, 11,}, 'w', 'h', 'i', 'l', 'e', }, + { 0 }, +}, *wordlist = words; + +int x[][5] = { 1, 2, 3, 4, 0, { 5, 6 }, { 7 } }; +int *y[] = { x[0], x[1], x[2], 0 }; + + +main() +{ + int i, j; + + for (i = 0; y[i]; i++) { + for (j = 0; y[i][j]; j++) + printf(" %d", y[i][j]); + printf("\n"); + } + f(); + g(wordlist); + return 0; +} + +f() { + static char *keywords[] = {"if", "for", "else", "while", 0, }; + char **p; + + for (p = keywords; *p; p++) + printf("%s\n", *p); +} + +g(p) +Word *p; +{ + int i; + + for ( ; p->codes[0]; p++) { + for (i = 0; i < sizeof p->codes/sizeof(p->codes[0]); i++) + printf("%d ", p->codes[i]); + printf("%s\n", p->name); + } + h(); +} + +h() +{ + int i; + + for (i = 0; i < sizeof(words)/sizeof(Word); i++) + printf("%d %d %d %s\n", words[i].codes[0], + words[i].codes[1], words[i].codes[2], + &words[i].name[0]); +} diff --git a/code/tools/lcc/tst/limits.0 b/code/tools/lcc/tst/limits.0 new file mode 100644 index 0000000..e69de29 diff --git a/code/tools/lcc/tst/limits.c b/code/tools/lcc/tst/limits.c new file mode 100644 index 0000000..e2a13a6 --- /dev/null +++ b/code/tools/lcc/tst/limits.c @@ -0,0 +1,19 @@ +#include + +main() { + printf("UCHAR_MAX: %08x=%d\n", UCHAR_MAX, UCHAR_MAX); + printf("USHRT_MAX: %08x=%d\n", USHRT_MAX, USHRT_MAX); + printf("UINT_MAX: %08x=%d\n", UINT_MAX, UINT_MAX); + printf("ULONG_MAX: %08lx=%ld\n", ULONG_MAX, ULONG_MAX); + printf("CHAR_MAX: %08x=%d\n", CHAR_MAX, CHAR_MAX); + printf("SCHAR_MAX: %08x=%d\n", SCHAR_MAX, SCHAR_MAX); + printf("SHRT_MAX: %08x=%d\n", SHRT_MAX, SHRT_MAX); + printf("INT_MAX: %08x=%d\n", INT_MAX, INT_MAX); + printf("LONG_MAX: %08lx=%ld\n", LONG_MAX, LONG_MAX); + printf("CHAR_MIN: %08x=%d\n", CHAR_MIN, CHAR_MIN); + printf("SCHAR_MIN: %08x=%d\n", SCHAR_MIN, SCHAR_MIN); + printf("SHRT_MIN: %08x=%d\n", SHRT_MIN, SHRT_MIN); + printf("INT_MIN: %08x=%d\n", INT_MIN, INT_MIN); + printf("LONG_MIN: %08lx=%ld\n", LONG_MIN, LONG_MIN); + return 0; +} diff --git a/code/tools/lcc/tst/paranoia.0 b/code/tools/lcc/tst/paranoia.0 new file mode 100644 index 0000000..e69de29 diff --git a/code/tools/lcc/tst/paranoia.c b/code/tools/lcc/tst/paranoia.c new file mode 100644 index 0000000..ec9f8ce --- /dev/null +++ b/code/tools/lcc/tst/paranoia.c @@ -0,0 +1,2203 @@ +#undef V9 +#define NOPAUSE +/* A C version of Kahan's Floating Point Test "Paranoia" + + Thos Sumner, UCSF, Feb. 1985 + David Gay, BTL, Jan. 1986 + + This is a rewrite from the Pascal version by + + B. A. Wichmann, 18 Jan. 1985 + + (and does NOT exhibit good C programming style). + +(C) Apr 19 1983 in BASIC version by: + Professor W. M. Kahan, + 567 Evans Hall + Electrical Engineering & Computer Science Dept. + University of California + Berkeley, California 94720 + USA + +converted to Pascal by: + B. A. Wichmann + National Physical Laboratory + Teddington Middx + TW11 OLW + UK + +converted to C by: + + David M. Gay and Thos Sumner + AT&T Bell Labs Computer Center, Rm. U-76 + 600 Mountain Avenue University of California + Murray Hill, NJ 07974 San Francisco, CA 94143 + USA USA + +with simultaneous corrections to the Pascal source (reflected +in the Pascal source available over netlib). +[A couple of bug fixes from dgh = sun!dhough incorporated 31 July 1986.] + +Reports of results on various systems from all the versions +of Paranoia are being collected by Richard Karpinski at the +same address as Thos Sumner. This includes sample outputs, +bug reports, and criticisms. + +You may copy this program freely if you acknowledge its source. +Comments on the Pascal version to NPL, please. + + +The C version catches signals from floating-point exceptions. +If signal(SIGFPE,...) is unavailable in your environment, you may +#define NOSIGNAL to comment out the invocations of signal. + +This source file is too big for some C compilers, but may be split +into pieces. Comments containing "SPLIT" suggest convenient places +for this splitting. At the end of these comments is an "ed script" +(for the UNIX(tm) editor ed) that will do this splitting. + +By #defining Single when you compile this source, you may obtain +a single-precision C version of Paranoia. + + +The following is from the introductory commentary from Wichmann's work: + +The BASIC program of Kahan is written in Microsoft BASIC using many +facilities which have no exact analogy in Pascal. The Pascal +version below cannot therefore be exactly the same. Rather than be +a minimal transcription of the BASIC program, the Pascal coding +follows the conventional style of block-structured languages. Hence +the Pascal version could be useful in producing versions in other +structured languages. + +Rather than use identifiers of minimal length (which therefore have +little mnemonic significance), the Pascal version uses meaningful +identifiers as follows [Note: A few changes have been made for C]: + + +BASIC C BASIC C BASIC C + + A J S StickyBit + A1 AInverse J0 NoErrors T + B Radix [Failure] T0 Underflow + B1 BInverse J1 NoErrors T2 ThirtyTwo + B2 RadixD2 [SeriousDefect] T5 OneAndHalf + B9 BMinusU2 J2 NoErrors T7 TwentySeven + C [Defect] T8 TwoForty + C1 CInverse J3 NoErrors U OneUlp + D [Flaw] U0 UnderflowThreshold + D4 FourD K PageNo U1 + E0 L Milestone U2 + E1 M V + E2 Exp2 N V0 + E3 N1 V8 + E5 MinSqEr O Zero V9 + E6 SqEr O1 One W + E7 MaxSqEr O2 Two X + E8 O3 Three X1 + E9 O4 Four X8 + F1 MinusOne O5 Five X9 Random1 + F2 Half O8 Eight Y + F3 Third O9 Nine Y1 + F6 P Precision Y2 + F9 Q Y9 Random2 + G1 GMult Q8 Z + G2 GDiv Q9 Z0 PseudoZero + G3 GAddSub R Z1 + H R1 RMult Z2 + H1 HInverse R2 RDiv Z9 + I R3 RAddSub + IO NoTrials R4 RSqrt + I3 IEEE R9 Random9 + + SqRWrng + +All the variables in BASIC are true variables and in consequence, +the program is more difficult to follow since the "constants" must +be determined (the glossary is very helpful). The Pascal version +uses Real constants, but checks are added to ensure that the values +are correctly converted by the compiler. + +The major textual change to the Pascal version apart from the +identifiersis that named procedures are used, inserting parameters +wherehelpful. New procedures are also introduced. The +correspondence is as follows: + + +BASIC Pascal +lines + + 90- 140 Pause + 170- 250 Instructions + 380- 460 Heading + 480- 670 Characteristics + 690- 870 History +2940-2950 Random +3710-3740 NewD +4040-4080 DoesYequalX +4090-4110 PrintIfNPositive +4640-4850 TestPartialUnderflow + +=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*= + +Below is an "ed script" that splits para.c into 10 files +of the form part[1-8].c, subs.c, and msgs.c, plus a header +file, paranoia.h, that these files require. + +r paranoia.c +$ +?SPLIT ++,$w msgs.c + .,$d +?SPLIT + .d ++d +-,$w subs.c +-,$d +?part8 ++d +?include + .,$w part8.c + .,$d +-d +?part7 ++d +?include + .,$w part7.c + .,$d +-d +?part6 ++d +?include + .,$w part6.c + .,$d +-d +?part5 ++d +?include + .,$w part5.c + .,$d +-d +?part4 ++d +?include + .,$w part4.c + .,$d +-d +?part3 ++d +?include + .,$w part3.c + .,$d +-d +?part2 ++d +?include + .,$w part2.c + .,$d +?SPLIT + .d +1,/^#include/-1d +1,$w part1.c +/Computed constants/,$d +1,$s/^int/extern &/ +1,$s/^FLOAT/extern &/ +1,$s/^char/extern &/ +1,$s! = .*!;! +/^Guard/,/^Round/s/^/extern / +/^jmp_buf/s/^/extern / +/^Sig_type/s/^/extern / +s/$/\ +extern void sigfpe();/ +w paranoia.h +q + +*/ + +#include +#ifndef NOSIGNAL +#include +#endif +#include + +extern double fabs(), floor(), log(), pow(), sqrt(); + +#ifdef Single +#define FLOAT float +#define FABS(x) (float)fabs((double)(x)) +#define FLOOR(x) (float)floor((double)(x)) +#define LOG(x) (float)log((double)(x)) +#define POW(x,y) (float)pow((double)(x),(double)(y)) +#define SQRT(x) (float)sqrt((double)(x)) +#else +#define FLOAT double +#define FABS(x) fabs(x) +#define FLOOR(x) floor(x) +#define LOG(x) log(x) +#define POW(x,y) pow(x,y) +#define SQRT(x) sqrt(x) +#endif + +jmp_buf ovfl_buf; +typedef void (*Sig_type)(); +Sig_type sigsave; + +#define KEYBOARD 0 + +FLOAT Radix, BInvrse, RadixD2, BMinusU2; +FLOAT Sign(), Random(); + +/*Small floating point constants.*/ +FLOAT Zero = 0.0; +FLOAT Half = 0.5; +FLOAT One = 1.0; +FLOAT Two = 2.0; +FLOAT Three = 3.0; +FLOAT Four = 4.0; +FLOAT Five = 5.0; +FLOAT Eight = 8.0; +FLOAT Nine = 9.0; +FLOAT TwentySeven = 27.0; +FLOAT ThirtyTwo = 32.0; +FLOAT TwoForty = 240.0; +FLOAT MinusOne = -1.0; +FLOAT OneAndHalf = 1.5; +/*Integer constants*/ +int NoTrials = 20; /*Number of tests for commutativity. */ +#define False 0 +#define True 1 + +/* Definitions for declared types + Guard == (Yes, No); + Rounding == (Chopped, Rounded, Other); + Message == packed array [1..40] of char; + Class == (Flaw, Defect, Serious, Failure); + */ +#define Yes 1 +#define No 0 +#define Chopped 2 +#define Rounded 1 +#define Other 0 +#define Flaw 3 +#define Defect 2 +#define Serious 1 +#define Failure 0 +typedef int Guard, Rounding, Class; +typedef char Message; + +/* Declarations of Variables */ +int Indx; +char ch[8]; +FLOAT AInvrse, A1; +FLOAT C, CInvrse; +FLOAT D, FourD; +FLOAT E0, E1, Exp2, E3, MinSqEr; +FLOAT SqEr, MaxSqEr, E9; +FLOAT Third; +FLOAT F6, F9; +FLOAT H, HInvrse; +int I; +FLOAT StickyBit, J; +FLOAT MyZero; +FLOAT Precision; +FLOAT Q, Q9; +FLOAT R, Random9; +FLOAT T, Underflow, S; +FLOAT OneUlp, UfThold, U1, U2; +FLOAT V, V0, V9; +FLOAT W; +FLOAT X, X1, X2, X8, Random1; +FLOAT Y, Y1, Y2, Random2; +FLOAT Z, PseudoZero, Z1, Z2, Z9; +int ErrCnt[4]; +int fpecount; +int Milestone; +int PageNo; +int M, N, N1; +Guard GMult, GDiv, GAddSub; +Rounding RMult, RDiv, RAddSub, RSqrt; +int Break, Done, NotMonot, Monot, Anomaly, IEEE, + SqRWrng, UfNGrad; +/* Computed constants. */ +/*U1 gap below 1.0, i.e, 1.0-U1 is next number below 1.0 */ +/*U2 gap above 1.0, i.e, 1.0+U2 is next number above 1.0 */ + +/* floating point exception receiver */ + void +sigfpe(i) +{ + fpecount++; + printf("\n* * * FLOATING-POINT ERROR * * *\n"); + fflush(stdout); + if (sigsave) { +#ifndef NOSIGNAL + signal(SIGFPE, sigsave); +#endif + sigsave = 0; + longjmp(ovfl_buf, 1); + } + abort(); +} + +main() +{ +#ifdef mc + char *out; + ieee_flags("set", "precision", "double", &out); +#endif + /* First two assignments use integer right-hand sides. */ + Zero = 0; + One = 1; + Two = One + One; + Three = Two + One; + Four = Three + One; + Five = Four + One; + Eight = Four + Four; + Nine = Three * Three; + TwentySeven = Nine * Three; + ThirtyTwo = Four * Eight; + TwoForty = Four * Five * Three * Four; + MinusOne = -One; + Half = One / Two; + OneAndHalf = One + Half; + ErrCnt[Failure] = 0; + ErrCnt[Serious] = 0; + ErrCnt[Defect] = 0; + ErrCnt[Flaw] = 0; + PageNo = 1; + /*=============================================*/ + Milestone = 0; + /*=============================================*/ +#ifndef NOSIGNAL + signal(SIGFPE, sigfpe); +#endif + Instructions(); + Pause(); + Heading(); + Pause(); + Characteristics(); + Pause(); + History(); + Pause(); + /*=============================================*/ + Milestone = 7; + /*=============================================*/ + printf("Program is now RUNNING tests on small integers:\n"); + + TstCond (Failure, (Zero + Zero == Zero) && (One - One == Zero) + && (One > Zero) && (One + One == Two), + "0+0 != 0, 1-1 != 0, 1 <= 0, or 1+1 != 2"); + Z = - Zero; + if (Z != 0.0) { + ErrCnt[Failure] = ErrCnt[Failure] + 1; + printf("Comparison alleges that -0.0 is Non-zero!\n"); + U1 = 0.001; + Radix = 1; + TstPtUf(); + } + TstCond (Failure, (Three == Two + One) && (Four == Three + One) + && (Four + Two * (- Two) == Zero) + && (Four - Three - One == Zero), + "3 != 2+1, 4 != 3+1, 4+2*(-2) != 0, or 4-3-1 != 0"); + TstCond (Failure, (MinusOne == (0 - One)) + && (MinusOne + One == Zero ) && (One + MinusOne == Zero) + && (MinusOne + FABS(One) == Zero) + && (MinusOne + MinusOne * MinusOne == Zero), + "-1+1 != 0, (-1)+abs(1) != 0, or -1+(-1)*(-1) != 0"); + TstCond (Failure, Half + MinusOne + Half == Zero, + "1/2 + (-1) + 1/2 != 0"); + /*=============================================*/ + /*SPLIT + part2(); + part3(); + part4(); + part5(); + part6(); + part7(); + part8(); + } +#include "paranoia.h" +part2(){ +*/ + Milestone = 10; + /*=============================================*/ + TstCond (Failure, (Nine == Three * Three) + && (TwentySeven == Nine * Three) && (Eight == Four + Four) + && (ThirtyTwo == Eight * Four) + && (ThirtyTwo - TwentySeven - Four - One == Zero), + "9 != 3*3, 27 != 9*3, 32 != 8*4, or 32-27-4-1 != 0"); + TstCond (Failure, (Five == Four + One) && + (TwoForty == Four * Five * Three * Four) + && (TwoForty / Three - Four * Four * Five == Zero) + && ( TwoForty / Four - Five * Three * Four == Zero) + && ( TwoForty / Five - Four * Three * Four == Zero), + "5 != 4+1, 240/3 != 80, 240/4 != 60, or 240/5 != 48"); + if (ErrCnt[Failure] == 0) { + printf("-1, 0, 1/2, 1, 2, 3, 4, 5, 9, 27, 32 & 240 are O.K.\n"); + printf("\n"); + } + printf("Searching for Radix and Precision.\n"); + W = One; + do { + W = W + W; + Y = W + One; + Z = Y - W; + Y = Z - One; + } while (MinusOne + FABS(Y) < Zero); + /*.. now W is just big enough that |((W+1)-W)-1| >= 1 ...*/ + Precision = Zero; + Y = One; + do { + Radix = W + Y; + Y = Y + Y; + Radix = Radix - W; + } while ( Radix == Zero); + if (Radix < Two) Radix = One; + printf("Radix = %f .\n", Radix); + if (Radix != 1) { + W = One; + do { + Precision = Precision + One; + W = W * Radix; + Y = W + One; + } while ((Y - W) == One); + } + /*... now W == Radix^Precision is barely too big to satisfy (W+1)-W == 1 + ...*/ + U1 = One / W; + U2 = Radix * U1; + printf("Closest relative separation found is U1 = %.7e .\n\n", U1); + printf("Recalculating radix and precision\n "); + + /*save old values*/ + E0 = Radix; + E1 = U1; + E9 = U2; + E3 = Precision; + + X = Four / Three; + Third = X - One; + F6 = Half - Third; + X = F6 + F6; + X = FABS(X - Third); + if (X < U2) X = U2; + + /*... now X = (unknown no.) ulps of 1+...*/ + do { + U2 = X; + Y = Half * U2 + ThirtyTwo * U2 * U2; + Y = One + Y; + X = Y - One; + } while ( ! ((U2 <= X) || (X <= Zero))); + + /*... now U2 == 1 ulp of 1 + ... */ + X = Two / Three; + F6 = X - Half; + Third = F6 + F6; + X = Third - Half; + X = FABS(X + F6); + if (X < U1) X = U1; + + /*... now X == (unknown no.) ulps of 1 -... */ + do { + U1 = X; + Y = Half * U1 + ThirtyTwo * U1 * U1; + Y = Half - Y; + X = Half + Y; + Y = Half - X; + X = Half + Y; + } while ( ! ((U1 <= X) || (X <= Zero))); + /*... now U1 == 1 ulp of 1 - ... */ + if (U1 == E1) printf("confirms closest relative separation U1 .\n"); + else printf("gets better closest relative separation U1 = %.7e .\n", U1); + W = One / U1; + F9 = (Half - U1) + Half; + Radix = FLOOR(0.01 + U2 / U1); + if (Radix == E0) printf("Radix confirmed.\n"); + else printf("MYSTERY: recalculated Radix = %.7e .\n", Radix); + TstCond (Defect, Radix <= Eight + Eight, + "Radix is too big: roundoff problems"); + TstCond (Flaw, (Radix == Two) || (Radix == 10) + || (Radix == One), "Radix is not as good as 2 or 10"); + /*=============================================*/ + Milestone = 20; + /*=============================================*/ + TstCond (Failure, F9 - Half < Half, + "(1-U1)-1/2 < 1/2 is FALSE, prog. fails?"); + X = F9; + I = 1; + Y = X - Half; + Z = Y - Half; + TstCond (Failure, (X != One) + || (Z == Zero), "Comparison is fuzzy,X=1 but X-1/2-1/2 != 0"); + X = One + U2; + I = 0; + /*=============================================*/ + Milestone = 25; + /*=============================================*/ + /*... BMinusU2 = nextafter(Radix, 0) */ + BMinusU2 = Radix - One; + BMinusU2 = (BMinusU2 - U2) + One; + /* Purify Integers */ + if (Radix != One) { + X = - TwoForty * LOG(U1) / LOG(Radix); + Y = FLOOR(Half + X); + if (FABS(X - Y) * Four < One) X = Y; + Precision = X / TwoForty; + Y = FLOOR(Half + Precision); + if (FABS(Precision - Y) * TwoForty < Half) Precision = Y; + } + if ((Precision != FLOOR(Precision)) || (Radix == One)) { + printf("Precision cannot be characterized by an Integer number\n"); + printf("of significant digits but, by itself, this is a minor flaw.\n"); + } + if (Radix == One) + printf("logarithmic encoding has precision characterized solely by U1.\n"); + else printf("The number of significant digits of the Radix is %f .\n", + Precision); + TstCond (Serious, U2 * Nine * Nine * TwoForty < One, + "Precision worse than 5 decimal figures "); + /*=============================================*/ + Milestone = 30; + /*=============================================*/ + /* Test for extra-precise subepressions */ + X = FABS(((Four / Three - One) - One / Four) * Three - One / Four); + do { + Z2 = X; + X = (One + (Half * Z2 + ThirtyTwo * Z2 * Z2)) - One; + } while ( ! ((Z2 <= X) || (X <= Zero))); + X = Y = Z = FABS((Three / Four - Two / Three) * Three - One / Four); + do { + Z1 = Z; + Z = (One / Two - ((One / Two - (Half * Z1 + ThirtyTwo * Z1 * Z1)) + + One / Two)) + One / Two; + } while ( ! ((Z1 <= Z) || (Z <= Zero))); + do { + do { + Y1 = Y; + Y = (Half - ((Half - (Half * Y1 + ThirtyTwo * Y1 * Y1)) + Half + )) + Half; + } while ( ! ((Y1 <= Y) || (Y <= Zero))); + X1 = X; + X = ((Half * X1 + ThirtyTwo * X1 * X1) - F9) + F9; + } while ( ! ((X1 <= X) || (X <= Zero))); + if ((X1 != Y1) || (X1 != Z1)) { + BadCond(Serious, "Disagreements among the values X1, Y1, Z1,\n"); + printf("respectively %.7e, %.7e, %.7e,\n", X1, Y1, Z1); + printf("are symptoms of inconsistencies introduced\n"); + printf("by extra-precise evaluation of arithmetic subexpressions.\n"); + notify("Possibly some part of this"); + if ((X1 == U1) || (Y1 == U1) || (Z1 == U1)) printf( + "That feature is not tested further by this program.\n") ; + } + else { + if ((Z1 != U1) || (Z2 != U2)) { + if ((Z1 >= U1) || (Z2 >= U2)) { + BadCond(Failure, ""); + notify("Precision"); + printf("\tU1 = %.7e, Z1 - U1 = %.7e\n",U1,Z1-U1); + printf("\tU2 = %.7e, Z2 - U2 = %.7e\n",U2,Z2-U2); + } + else { + if ((Z1 <= Zero) || (Z2 <= Zero)) { + printf("Because of unusual Radix = %f", Radix); + printf(", or exact rational arithmetic a result\n"); + printf("Z1 = %.7e, or Z2 = %.7e ", Z1, Z2); + notify("of an\nextra-precision"); + } + if (Z1 != Z2 || Z1 > Zero) { + X = Z1 / U1; + Y = Z2 / U2; + if (Y > X) X = Y; + Q = - LOG(X); + printf("Some subexpressions appear to be calculated extra\n"); + printf("precisely with about %g extra B-digits, i.e.\n", + (Q / LOG(Radix))); + printf("roughly %g extra significant decimals.\n", + Q / LOG(10.)); + } + printf("That feature is not tested further by this program.\n"); + } + } + } + Pause(); + /*=============================================*/ + /*SPLIT + } +#include "paranoia.h" +part3(){ +*/ + Milestone = 35; + /*=============================================*/ + if (Radix >= Two) { + X = W / (Radix * Radix); + Y = X + One; + Z = Y - X; + T = Z + U2; + X = T - Z; + TstCond (Failure, X == U2, + "Subtraction is not normalized X=Y,X+Z != Y+Z!"); + if (X == U2) printf( + "Subtraction appears to be normalized, as it should be."); + } + printf("\nChecking for guard digit in *, /, and -.\n"); + Y = F9 * One; + Z = One * F9; + X = F9 - Half; + Y = (Y - Half) - X; + Z = (Z - Half) - X; + X = One + U2; + T = X * Radix; + R = Radix * X; + X = T - Radix; + X = X - Radix * U2; + T = R - Radix; + T = T - Radix * U2; + X = X * (Radix - One); + T = T * (Radix - One); + if ((X == Zero) && (Y == Zero) && (Z == Zero) && (T == Zero)) GMult = Yes; + else { + GMult = No; + TstCond (Serious, False, + "* lacks a Guard Digit, so 1*X != X"); + } + Z = Radix * U2; + X = One + Z; + Y = FABS((X + Z) - X * X) - U2; + X = One - U2; + Z = FABS((X - U2) - X * X) - U1; + TstCond (Failure, (Y <= Zero) + && (Z <= Zero), "* gets too many final digits wrong.\n"); + Y = One - U2; + X = One + U2; + Z = One / Y; + Y = Z - X; + X = One / Three; + Z = Three / Nine; + X = X - Z; + T = Nine / TwentySeven; + Z = Z - T; + TstCond(Defect, X == Zero && Y == Zero && Z == Zero, + "Division lacks a Guard Digit, so error can exceed 1 ulp\nor 1/3 and 3/9 and 9/27 may disagree"); + Y = F9 / One; + X = F9 - Half; + Y = (Y - Half) - X; + X = One + U2; + T = X / One; + X = T - X; + if ((X == Zero) && (Y == Zero) && (Z == Zero)) GDiv = Yes; + else { + GDiv = No; + TstCond (Serious, False, + "Division lacks a Guard Digit, so X/1 != X"); + } + X = One / (One + U2); + Y = X - Half - Half; + TstCond (Serious, Y < Zero, + "Computed value of 1/1.000..1 >= 1"); + X = One - U2; + Y = One + Radix * U2; + Z = X * Radix; + T = Y * Radix; + R = Z / Radix; + StickyBit = T / Radix; + X = R - X; + Y = StickyBit - Y; + TstCond (Failure, X == Zero && Y == Zero, + "* and/or / gets too many last digits wrong"); + Y = One - U1; + X = One - F9; + Y = One - Y; + T = Radix - U2; + Z = Radix - BMinusU2; + T = Radix - T; + if ((X == U1) && (Y == U1) && (Z == U2) && (T == U2)) GAddSub = Yes; + else { + GAddSub = No; + TstCond (Serious, False, + "- lacks Guard Digit, so cancellation is obscured"); + } + if (F9 != One && F9 - One >= Zero) { + BadCond(Serious, "comparison alleges (1-U1) < 1 although\n"); + printf(" subtraction yields (1-U1) - 1 = 0 , thereby vitiating\n"); + printf(" such precautions against division by zero as\n"); + printf(" ... if (X == 1.0) {.....} else {.../(X-1.0)...}\n"); + } + if (GMult == Yes && GDiv == Yes && GAddSub == Yes) printf( + " *, /, and - appear to have guard digits, as they should.\n"); + /*=============================================*/ + Milestone = 40; + /*=============================================*/ + Pause(); + printf("Checking rounding on multiply, divide and add/subtract.\n"); + RMult = Other; + RDiv = Other; + RAddSub = Other; + RadixD2 = Radix / Two; + A1 = Two; + Done = False; + do { + AInvrse = Radix; + do { + X = AInvrse; + AInvrse = AInvrse / A1; + } while ( ! (FLOOR(AInvrse) != AInvrse)); + Done = (X == One) || (A1 > Three); + if (! Done) A1 = Nine + One; + } while ( ! (Done)); + if (X == One) A1 = Radix; + AInvrse = One / A1; + X = A1; + Y = AInvrse; + Done = False; + do { + Z = X * Y - Half; + TstCond (Failure, Z == Half, + "X * (1/X) differs from 1"); + Done = X == Radix; + X = Radix; + Y = One / X; + } while ( ! (Done)); + Y2 = One + U2; + Y1 = One - U2; + X = OneAndHalf - U2; + Y = OneAndHalf + U2; + Z = (X - U2) * Y2; + T = Y * Y1; + Z = Z - X; + T = T - X; + X = X * Y2; + Y = (Y + U2) * Y1; + X = X - OneAndHalf; + Y = Y - OneAndHalf; + if ((X == Zero) && (Y == Zero) && (Z == Zero) && (T <= Zero)) { + X = (OneAndHalf + U2) * Y2; + Y = OneAndHalf - U2 - U2; + Z = OneAndHalf + U2 + U2; + T = (OneAndHalf - U2) * Y1; + X = X - (Z + U2); + StickyBit = Y * Y1; + S = Z * Y2; + T = T - Y; + Y = (U2 - Y) + StickyBit; + Z = S - (Z + U2 + U2); + StickyBit = (Y2 + U2) * Y1; + Y1 = Y2 * Y1; + StickyBit = StickyBit - Y2; + Y1 = Y1 - Half; + if ((X == Zero) && (Y == Zero) && (Z == Zero) && (T == Zero) + && ( StickyBit == Zero) && (Y1 == Half)) { + RMult = Rounded; + printf("Multiplication appears to round correctly.\n"); + } + else if ((X + U2 == Zero) && (Y < Zero) && (Z + U2 == Zero) + && (T < Zero) && (StickyBit + U2 == Zero) + && (Y1 < Half)) { + RMult = Chopped; + printf("Multiplication appears to chop.\n"); + } + else printf("* is neither chopped nor correctly rounded.\n"); + if ((RMult == Rounded) && (GMult == No)) notify("Multiplication"); + } + else printf("* is neither chopped nor correctly rounded.\n"); + /*=============================================*/ + Milestone = 45; + /*=============================================*/ + Y2 = One + U2; + Y1 = One - U2; + Z = OneAndHalf + U2 + U2; + X = Z / Y2; + T = OneAndHalf - U2 - U2; + Y = (T - U2) / Y1; + Z = (Z + U2) / Y2; + X = X - OneAndHalf; + Y = Y - T; + T = T / Y1; + Z = Z - (OneAndHalf + U2); + T = (U2 - OneAndHalf) + T; + if (! ((X > Zero) || (Y > Zero) || (Z > Zero) || (T > Zero))) { + X = OneAndHalf / Y2; + Y = OneAndHalf - U2; + Z = OneAndHalf + U2; + X = X - Y; + T = OneAndHalf / Y1; + Y = Y / Y1; + T = T - (Z + U2); + Y = Y - Z; + Z = Z / Y2; + Y1 = (Y2 + U2) / Y2; + Z = Z - OneAndHalf; + Y2 = Y1 - Y2; + Y1 = (F9 - U1) / F9; + if ((X == Zero) && (Y == Zero) && (Z == Zero) && (T == Zero) + && (Y2 == Zero) && (Y2 == Zero) + && (Y1 - Half == F9 - Half )) { + RDiv = Rounded; + printf("Division appears to round correctly.\n"); + if (GDiv == No) notify("Division"); + } + else if ((X < Zero) && (Y < Zero) && (Z < Zero) && (T < Zero) + && (Y2 < Zero) && (Y1 - Half < F9 - Half)) { + RDiv = Chopped; + printf("Division appears to chop.\n"); + } + } + if (RDiv == Other) printf("/ is neither chopped nor correctly rounded.\n"); + BInvrse = One / Radix; + TstCond (Failure, (BInvrse * Radix - Half == Half), + "Radix * ( 1 / Radix ) differs from 1"); + /*=============================================*/ + /*SPLIT + } +#include "paranoia.h" +part4(){ +*/ + Milestone = 50; + /*=============================================*/ + TstCond (Failure, ((F9 + U1) - Half == Half) + && ((BMinusU2 + U2 ) - One == Radix - One), + "Incomplete carry-propagation in Addition"); + X = One - U1 * U1; + Y = One + U2 * (One - U2); + Z = F9 - Half; + X = (X - Half) - Z; + Y = Y - One; + if ((X == Zero) && (Y == Zero)) { + RAddSub = Chopped; + printf("Add/Subtract appears to be chopped.\n"); + } + if (GAddSub == Yes) { + X = (Half + U2) * U2; + Y = (Half - U2) * U2; + X = One + X; + Y = One + Y; + X = (One + U2) - X; + Y = One - Y; + if ((X == Zero) && (Y == Zero)) { + X = (Half + U2) * U1; + Y = (Half - U2) * U1; + X = One - X; + Y = One - Y; + X = F9 - X; + Y = One - Y; + if ((X == Zero) && (Y == Zero)) { + RAddSub = Rounded; + printf("Addition/Subtraction appears to round correctly.\n"); + if (GAddSub == No) notify("Add/Subtract"); + } + else printf("Addition/Subtraction neither rounds nor chops.\n"); + } + else printf("Addition/Subtraction neither rounds nor chops.\n"); + } + else printf("Addition/Subtraction neither rounds nor chops.\n"); + S = One; + X = One + Half * (One + Half); + Y = (One + U2) * Half; + Z = X - Y; + T = Y - X; + StickyBit = Z + T; + if (StickyBit != Zero) { + S = Zero; + BadCond(Flaw, "(X - Y) + (Y - X) is non zero!\n"); + } + StickyBit = Zero; + if ((GMult == Yes) && (GDiv == Yes) && (GAddSub == Yes) + && (RMult == Rounded) && (RDiv == Rounded) + && (RAddSub == Rounded) && (FLOOR(RadixD2) == RadixD2)) { + printf("Checking for sticky bit.\n"); + X = (Half + U1) * U2; + Y = Half * U2; + Z = One + Y; + T = One + X; + if ((Z - One <= Zero) && (T - One >= U2)) { + Z = T + Y; + Y = Z - X; + if ((Z - T >= U2) && (Y - T == Zero)) { + X = (Half + U1) * U1; + Y = Half * U1; + Z = One - Y; + T = One - X; + if ((Z - One == Zero) && (T - F9 == Zero)) { + Z = (Half - U1) * U1; + T = F9 - Z; + Q = F9 - Y; + if ((T - F9 == Zero) && (F9 - U1 - Q == Zero)) { + Z = (One + U2) * OneAndHalf; + T = (OneAndHalf + U2) - Z + U2; + X = One + Half / Radix; + Y = One + Radix * U2; + Z = X * Y; + if (T == Zero && X + Radix * U2 - Z == Zero) { + if (Radix != Two) { + X = Two + U2; + Y = X / Two; + if ((Y - One == Zero)) StickyBit = S; + } + else StickyBit = S; + } + } + } + } + } + } + if (StickyBit == One) printf("Sticky bit apparently used correctly.\n"); + else printf("Sticky bit used incorrectly or not at all.\n"); + TstCond (Flaw, !(GMult == No || GDiv == No || GAddSub == No || + RMult == Other || RDiv == Other || RAddSub == Other), + "lack(s) of guard digits or failure(s) to correctly round or chop\n(noted above) count as one flaw in the final tally below"); + /*=============================================*/ + Milestone = 60; + /*=============================================*/ + printf("\n"); + printf("Does Multiplication commute? "); + printf("Testing on %d random pairs.\n", NoTrials); + Random9 = SQRT(3.0); + Random1 = Third; + I = 1; + do { + X = Random(); + Y = Random(); + Z9 = Y * X; + Z = X * Y; + Z9 = Z - Z9; + I = I + 1; + } while ( ! ((I > NoTrials) || (Z9 != Zero))); + if (I == NoTrials) { + Random1 = One + Half / Three; + Random2 = (U2 + U1) + One; + Z = Random1 * Random2; + Y = Random2 * Random1; + Z9 = (One + Half / Three) * ((U2 + U1) + One) - (One + Half / + Three) * ((U2 + U1) + One); + } + if (! ((I == NoTrials) || (Z9 == Zero))) + BadCond(Defect, "X * Y == Y * X trial fails.\n"); + else printf(" No failures found in %d integer pairs.\n", NoTrials); + /*=============================================*/ + Milestone = 70; + /*=============================================*/ + printf("\nRunning test of square root(x).\n"); + TstCond (Failure, (Zero == SQRT(Zero)) + && (- Zero == SQRT(- Zero)) + && (One == SQRT(One)), "Square root of 0.0, -0.0 or 1.0 wrong"); + MinSqEr = Zero; + MaxSqEr = Zero; + J = Zero; + X = Radix; + OneUlp = U2; + SqXMinX (Serious); + X = BInvrse; + OneUlp = BInvrse * U1; + SqXMinX (Serious); + X = U1; + OneUlp = U1 * U1; + SqXMinX (Serious); + if (J != Zero) Pause(); + printf("Testing if sqrt(X * X) == X for %d Integers X.\n", NoTrials); + J = Zero; + X = Two; + Y = Radix; + if ((Radix != One)) do { + X = Y; + Y = Radix * Y; + } while ( ! ((Y - X >= NoTrials))); + OneUlp = X * U2; + I = 1; + while (I <= NoTrials) { + X = X + One; + SqXMinX (Defect); + if (J > Zero) break; + I = I + 1; + } + printf("Test for sqrt monotonicity.\n"); + I = - 1; + X = BMinusU2; + Y = Radix; + Z = Radix + Radix * U2; + NotMonot = False; + Monot = False; + while ( ! (NotMonot || Monot)) { + I = I + 1; + X = SQRT(X); + Q = SQRT(Y); + Z = SQRT(Z); + if ((X > Q) || (Q > Z)) NotMonot = True; + else { + Q = FLOOR(Q + Half); + if ((I > 0) || (Radix == Q * Q)) Monot = True; + else if (I > 0) { + if (I > 1) Monot = True; + else { + Y = Y * BInvrse; + X = Y - U1; + Z = Y + U1; + } + } + else { + Y = Q; + X = Y - U2; + Z = Y + U2; + } + } + } + if (Monot) printf("sqrt has passed a test for Monotonicity.\n"); + else { + BadCond(Defect, ""); + printf("sqrt(X) is non-monotonic for X near %.7e .\n", Y); + } + /*=============================================*/ + /*SPLIT + } +#include "paranoia.h" +part5(){ +*/ + Milestone = 80; + /*=============================================*/ + MinSqEr = MinSqEr + Half; + MaxSqEr = MaxSqEr - Half; + Y = (SQRT(One + U2) - One) / U2; + SqEr = (Y - One) + U2 / Eight; + if (SqEr > MaxSqEr) MaxSqEr = SqEr; + SqEr = Y + U2 / Eight; + if (SqEr < MinSqEr) MinSqEr = SqEr; + Y = ((SQRT(F9) - U2) - (One - U2)) / U1; + SqEr = Y + U1 / Eight; + if (SqEr > MaxSqEr) MaxSqEr = SqEr; + SqEr = (Y + One) + U1 / Eight; + if (SqEr < MinSqEr) MinSqEr = SqEr; + OneUlp = U2; + X = OneUlp; + for( Indx = 1; Indx <= 3; ++Indx) { + Y = SQRT((X + U1 + X) + F9); + Y = ((Y - U2) - ((One - U2) + X)) / OneUlp; + Z = ((U1 - X) + F9) * Half * X * X / OneUlp; + SqEr = (Y + Half) + Z; + if (SqEr < MinSqEr) MinSqEr = SqEr; + SqEr = (Y - Half) + Z; + if (SqEr > MaxSqEr) MaxSqEr = SqEr; + if (((Indx == 1) || (Indx == 3))) + X = OneUlp * Sign (X) * FLOOR(Eight / (Nine * SQRT(OneUlp))); + else { + OneUlp = U1; + X = - OneUlp; + } + } + /*=============================================*/ + Milestone = 85; + /*=============================================*/ + SqRWrng = False; + Anomaly = False; + RSqrt = Other; /* ~dgh */ + if (Radix != One) { + printf("Testing whether sqrt is rounded or chopped.\n"); + D = FLOOR(Half + POW(Radix, One + Precision - FLOOR(Precision))); + /* ... == Radix^(1 + fract) if (Precision == Integer + fract. */ + X = D / Radix; + Y = D / A1; + if ((X != FLOOR(X)) || (Y != FLOOR(Y))) { + Anomaly = True; + } + else { + X = Zero; + Z2 = X; + Y = One; + Y2 = Y; + Z1 = Radix - One; + FourD = Four * D; + do { + if (Y2 > Z2) { + Q = Radix; + Y1 = Y; + do { + X1 = FABS(Q + FLOOR(Half - Q / Y1) * Y1); + Q = Y1; + Y1 = X1; + } while ( ! (X1 <= Zero)); + if (Q <= One) { + Z2 = Y2; + Z = Y; + } + } + Y = Y + Two; + X = X + Eight; + Y2 = Y2 + X; + if (Y2 >= FourD) Y2 = Y2 - FourD; + } while ( ! (Y >= D)); + X8 = FourD - Z2; + Q = (X8 + Z * Z) / FourD; + X8 = X8 / Eight; + if (Q != FLOOR(Q)) Anomaly = True; + else { + Break = False; + do { + X = Z1 * Z; + X = X - FLOOR(X / Radix) * Radix; + if (X == One) + Break = True; + else + Z1 = Z1 - One; + } while ( ! (Break || (Z1 <= Zero))); + if ((Z1 <= Zero) && (! Break)) Anomaly = True; + else { + if (Z1 > RadixD2) Z1 = Z1 - Radix; + do { + NewD(); + } while ( ! (U2 * D >= F9)); + if (D * Radix - D != W - D) Anomaly = True; + else { + Z2 = D; + I = 0; + Y = D + (One + Z) * Half; + X = D + Z + Q; + SR3750(); + Y = D + (One - Z) * Half + D; + X = D - Z + D; + X = X + Q + X; + SR3750(); + NewD(); + if (D - Z2 != W - Z2) Anomaly = True; + else { + Y = (D - Z2) + (Z2 + (One - Z) * Half); + X = (D - Z2) + (Z2 - Z + Q); + SR3750(); + Y = (One + Z) * Half; + X = Q; + SR3750(); + if (I == 0) Anomaly = True; + } + } + } + } + } + if ((I == 0) || Anomaly) { + BadCond(Failure, "Anomalous arithmetic with Integer < "); + printf("Radix^Precision = %.7e\n", W); + printf(" fails test whether sqrt rounds or chops.\n"); + SqRWrng = True; + } + } + if (! Anomaly) { + if (! ((MinSqEr < Zero) || (MaxSqEr > Zero))) { + RSqrt = Rounded; + printf("Square root appears to be correctly rounded.\n"); + } + else { + if ((MaxSqEr + U2 > U2 - Half) || (MinSqEr > Half) + || (MinSqEr + Radix < Half)) SqRWrng = True; + else { + RSqrt = Chopped; + printf("Square root appears to be chopped.\n"); + } + } + } + if (SqRWrng) { + printf("Square root is neither chopped nor correctly rounded.\n"); + printf("Observed errors run from %.7e ", MinSqEr - Half); + printf("to %.7e ulps.\n", Half + MaxSqEr); + TstCond (Serious, MaxSqEr - MinSqEr < Radix * Radix, + "sqrt gets too many last digits wrong"); + } + /*=============================================*/ + Milestone = 90; + /*=============================================*/ + Pause(); + printf("Testing powers Z^i for small Integers Z and i.\n"); + N = 0; + /* ... test powers of zero. */ + I = 0; + Z = -Zero; + M = 3.0; + Break = False; + do { + X = One; + SR3980(); + if (I <= 10) { + I = 1023; + SR3980(); + } + if (Z == MinusOne) Break = True; + else { + Z = MinusOne; + PrintIfNPositive(); + N = 0; + /* .. if(-1)^N is invalid, replace MinusOne by One. */ + I = - 4; + } + } while ( ! Break); + PrintIfNPositive(); + N1 = N; + N = 0; + Z = A1; + M = FLOOR(Two * LOG(W) / LOG(A1)); + Break = False; + do { + X = Z; + I = 1; + SR3980(); + if (Z == AInvrse) Break = True; + else Z = AInvrse; + } while ( ! (Break)); + /*=============================================*/ + Milestone = 100; + /*=============================================*/ + /* Powers of Radix have been tested, */ + /* next try a few primes */ + M = NoTrials; + Z = Three; + do { + X = Z; + I = 1; + SR3980(); + do { + Z = Z + Two; + } while ( Three * FLOOR(Z / Three) == Z ); + } while ( Z < Eight * Three ); + if (N > 0) { + printf("Errors like this may invalidate financial calculations\n"); + printf("\tinvolving interest rates.\n"); + } + PrintIfNPositive(); + N += N1; + if (N == 0) printf("... no discrepancis found.\n"); + if (N > 0) Pause(); + else printf("\n"); + /*=============================================*/ + /*SPLIT + } +#include "paranoia.h" +part6(){ +*/ + Milestone = 110; + /*=============================================*/ + printf("Seeking Underflow thresholds UfThold and E0.\n"); + D = U1; + if (Precision != FLOOR(Precision)) { + D = BInvrse; + X = Precision; + do { + D = D * BInvrse; + X = X - One; + } while ( X > Zero); + } + Y = One; + Z = D; + /* ... D is power of 1/Radix < 1. */ + do { + C = Y; + Y = Z; + Z = Y * Y; + } while ((Y > Z) && (Z + Z > Z)); + Y = C; + Z = Y * D; + do { + C = Y; + Y = Z; + Z = Y * D; + } while ((Y > Z) && (Z + Z > Z)); + if (Radix < Two) HInvrse = Two; + else HInvrse = Radix; + H = One / HInvrse; + /* ... 1/HInvrse == H == Min(1/Radix, 1/2) */ + CInvrse = One / C; + E0 = C; + Z = E0 * H; + /* ...1/Radix^(BIG Integer) << 1 << CInvrse == 1/C */ + do { + Y = E0; + E0 = Z; + Z = E0 * H; + } while ((E0 > Z) && (Z + Z > Z)); + UfThold = E0; + E1 = Zero; + Q = Zero; + E9 = U2; + S = One + E9; + D = C * S; + if (D <= C) { + E9 = Radix * U2; + S = One + E9; + D = C * S; + if (D <= C) { + BadCond(Failure, "multiplication gets too many last digits wrong.\n"); + Underflow = E0; + Y1 = Zero; + PseudoZero = Z; + Pause(); + } + } + else { + Underflow = D; + PseudoZero = Underflow * H; + UfThold = Zero; + do { + Y1 = Underflow; + Underflow = PseudoZero; + if (E1 + E1 <= E1) { + Y2 = Underflow * HInvrse; + E1 = FABS(Y1 - Y2); + Q = Y1; + if ((UfThold == Zero) && (Y1 != Y2)) UfThold = Y1; + } + PseudoZero = PseudoZero * H; + } while ((Underflow > PseudoZero) + && (PseudoZero + PseudoZero > PseudoZero)); + } + /* Comment line 4530 .. 4560 */ + if (PseudoZero != Zero) { + printf("\n"); + Z = PseudoZero; + /* ... Test PseudoZero for "phoney- zero" violates */ + /* ... PseudoZero < Underflow or PseudoZero < PseudoZero + PseudoZero + ... */ + if (PseudoZero <= Zero) { + BadCond(Failure, "Positive expressions can underflow to an\n"); + printf("allegedly negative value\n"); + printf("PseudoZero that prints out as: %g .\n", PseudoZero); + X = - PseudoZero; + if (X <= Zero) { + printf("But -PseudoZero, which should be\n"); + printf("positive, isn't; it prints out as %g .\n", X); + } + } + else { + BadCond(Flaw, "Underflow can stick at an allegedly positive\n"); + printf("value PseudoZero that prints out as %g .\n", PseudoZero); + } + TstPtUf(); + } + /*=============================================*/ + Milestone = 120; + /*=============================================*/ + if (CInvrse * Y > CInvrse * Y1) { + S = H * S; + E0 = Underflow; + } + if (! ((E1 == Zero) || (E1 == E0))) { + BadCond(Defect, ""); + if (E1 < E0) { + printf("Products underflow at a higher"); + printf(" threshold than differences.\n"); + if (PseudoZero == Zero) + E0 = E1; + } + else { + printf("Difference underflows at a higher"); + printf(" threshold than products.\n"); + } + } + printf("Smallest strictly positive number found is E0 = %g .\n", E0); + Z = E0; + TstPtUf(); + Underflow = E0; + if (N == 1) Underflow = Y; + I = 4; + if (E1 == Zero) I = 3; + if (UfThold == Zero) I = I - 2; + UfNGrad = True; + switch (I) { + case 1: + UfThold = Underflow; + if ((CInvrse * Q) != ((CInvrse * Y) * S)) { + UfThold = Y; + BadCond(Failure, "Either accuracy deteriorates as numbers\n"); + printf("approach a threshold = %.17e\n", UfThold);; + printf(" coming down from %.17e\n", C); + printf(" or else multiplication gets too many last digits wrong.\n"); + } + Pause(); + break; + + case 2: + BadCond(Failure, "Underflow confuses Comparison, which alleges that\n"); + printf("Q == Y while denying that |Q - Y| == 0; these values\n"); + printf("print out as Q = %.17e, Y = %.17e .\n", Q, Y2); + printf ("|Q - Y| = %.17e .\n" , FABS(Q - Y2)); + UfThold = Q; + break; + + case 3: + X = X; + break; + + case 4: + if ((Q == UfThold) && (E1 == E0) + && (FABS( UfThold - E1 / E9) <= E1)) { + UfNGrad = False; + printf("Underflow is gradual; it incurs Absolute Error =\n"); + printf("(roundoff in UfThold) < E0.\n"); + Y = E0 * CInvrse; + Y = Y * (OneAndHalf + U2); + X = CInvrse * (One + U2); + Y = Y / X; + IEEE = (Y == E0); + } + } + if (UfNGrad) { + printf("\n"); + sigsave = sigfpe; + if (setjmp(ovfl_buf)) { + printf("Underflow / UfThold failed!\n"); + R = H + H; + } + else R = SQRT(Underflow / UfThold); + sigsave = 0; + if (R <= H) { + Z = R * UfThold; + X = Z * (One + R * H * (One + H)); + } + else { + Z = UfThold; + X = Z * (One + H * H * (One + H)); + } + if (! ((X == Z) || (X - Z != Zero))) { + BadCond(Flaw, ""); + printf("X = %.17e\n\tis not equal to Z = %.17e .\n", X, Z); + Z9 = X - Z; + printf("yet X - Z yields %.17e .\n", Z9); + printf(" Should this NOT signal Underflow, "); + printf("this is a SERIOUS DEFECT\nthat causes "); + printf("confusion when innocent statements like\n");; + printf(" if (X == Z) ... else"); + printf(" ... (f(X) - f(Z)) / (X - Z) ...\n"); + printf("encounter Division by Zero although actually\n"); + sigsave = sigfpe; + if (setjmp(ovfl_buf)) printf("X / Z fails!\n"); + else printf("X / Z = 1 + %g .\n", (X / Z - Half) - Half); + sigsave = 0; + } + } + printf("The Underflow threshold is %.17e, %s\n", UfThold, + " below which"); + printf("calculation may suffer larger Relative error than "); + printf("merely roundoff.\n"); + Y2 = U1 * U1; + Y = Y2 * Y2; + Y2 = Y * U1; + if (Y2 <= UfThold) { + if (Y > E0) { + BadCond(Defect, ""); + I = 5; + } + else { + BadCond(Serious, ""); + I = 4; + } + printf("Range is too narrow; U1^%d Underflows.\n", I); + } + /*=============================================*/ + /*SPLIT + } +#include "paranoia.h" +part7(){ +*/ + Milestone = 130; + /*=============================================*/ + Y = - FLOOR(Half - TwoForty * LOG(UfThold) / LOG(HInvrse)) / TwoForty; + Y2 = Y + Y; + printf("Since underflow occurs below the threshold\n"); + printf("UfThold = (%.17e) ^ (%.17e)\nonly underflow ", HInvrse, Y); + printf("should afflict the expression\n\t(%.17e) ^ (%.17e);\n", HInvrse, Y); + V9 = POW(HInvrse, Y2); + printf("actually calculating yields: %.17e .\n", V9); + if (! ((V9 >= Zero) && (V9 <= (Radix + Radix + E9) * UfThold))) { + BadCond(Serious, "this is not between 0 and underflow\n"); + printf(" threshold = %.17e .\n", UfThold); + } + else if (! (V9 > UfThold * (One + E9))) + printf("This computed value is O.K.\n"); + else { + BadCond(Defect, "this is not between 0 and underflow\n"); + printf(" threshold = %.17e .\n", UfThold); + } + /*=============================================*/ + Milestone = 140; + /*=============================================*/ + printf("\n"); + /* ...calculate Exp2 == exp(2) == 7.389056099... */ + X = Zero; + I = 2; + Y = Two * Three; + Q = Zero; + N = 0; + do { + Z = X; + I = I + 1; + Y = Y / (I + I); + R = Y + Q; + X = Z + R; + Q = (Z - X) + R; + } while(X > Z); + Z = (OneAndHalf + One / Eight) + X / (OneAndHalf * ThirtyTwo); + X = Z * Z; + Exp2 = X * X; + X = F9; + Y = X - U1; + printf("Testing X^((X + 1) / (X - 1)) vs. exp(2) = %.17e as X -> 1.\n", + Exp2); + for(I = 1;;) { + Z = X - BInvrse; + Z = (X + One) / (Z - (One - BInvrse)); + Q = POW(X, Z) - Exp2; + if (FABS(Q) > TwoForty * U2) { + N = 1; + V9 = (X - BInvrse) - (One - BInvrse); + BadCond(Defect, "Calculated"); + printf(" %.17e for\n", POW(X,Z)); + printf("\t(1 + (%.17e) ^ (%.17e);\n", V9, Z); + printf("\tdiffers from correct value by %.17e .\n", Q); + printf("\tThis much error may spoil financial\n"); + printf("\tcalculations involving tiny interest rates.\n"); + break; + } + else { + Z = (Y - X) * Two + Y; + X = Y; + Y = Z; + Z = One + (X - F9)*(X - F9); + if (Z > One && I < NoTrials) I++; + else { + if (X > One) { + if (N == 0) + printf("Accuracy seems adequate.\n"); + break; + } + else { + X = One + U2; + Y = U2 + U2; + Y += X; + I = 1; + } + } + } + } + /*=============================================*/ + Milestone = 150; + /*=============================================*/ + printf("Testing powers Z^Q at four nearly extreme values.\n"); + N = 0; + Z = A1; + Q = FLOOR(Half - LOG(C) / LOG(A1)); + Break = False; + do { + X = CInvrse; + Y = POW(Z, Q); + IsYeqX(); + Q = - Q; + X = C; + Y = POW(Z, Q); + IsYeqX(); + if (Z < One) Break = True; + else Z = AInvrse; + } while ( ! (Break)); + PrintIfNPositive(); + if (N == 0) printf(" ... no discrepancies found.\n"); + printf("\n"); + + /*=============================================*/ + Milestone = 160; + /*=============================================*/ + Pause(); + printf("Searching for Overflow threshold:\n"); + printf("This may generate an error.\n"); + Y = - CInvrse; + V9 = HInvrse * Y; + sigsave = sigfpe; + if (setjmp(ovfl_buf)) { I = 0; V9 = Y; goto overflow; } + do { + V = Y; + Y = V9; + V9 = HInvrse * Y; + } while(V9 < Y); + I = 1; +overflow: + sigsave = 0; + Z = V9; + printf("Can `Z = -Y' overflow?\n"); + printf("Trying it on Y = %.17e .\n", Y); + V9 = - Y; + V0 = V9; + if (V - Y == V + V0) printf("Seems O.K.\n"); + else { + printf("finds a "); + BadCond(Flaw, "-(-Y) differs from Y.\n"); + } + if (Z != Y) { + BadCond(Serious, ""); + printf("overflow past %.17e\n\tshrinks to %.17e .\n", Y, Z); + } + if (I) { + Y = V * (HInvrse * U2 - HInvrse); + Z = Y + ((One - HInvrse) * U2) * V; + if (Z < V0) Y = Z; + if (Y < V0) V = Y; + if (V0 - V < V0) V = V0; + } + else { + V = Y * (HInvrse * U2 - HInvrse); + V = V + ((One - HInvrse) * U2) * Y; + } + printf("Overflow threshold is V = %.17e .\n", V); + if (I) printf("Overflow saturates at V0 = %.17e .\n", V0); + else printf("There is no saturation value because the system traps on overflow.\n"); + V9 = V * One; + printf("No Overflow should be signaled for V * 1 = %.17e\n", V9); + V9 = V / One; + printf(" nor for V / 1 = %.17e .\n", V9); + printf("Any overflow signal separating this * from the one\n"); + printf("above is a DEFECT.\n"); + /*=============================================*/ + Milestone = 170; + /*=============================================*/ + if (!(-V < V && -V0 < V0 && -UfThold < V && UfThold < V)) { + BadCond(Failure, "Comparisons involving "); + printf("+-%g, +-%g\nand +-%g are confused by Overflow.", + V, V0, UfThold); + } + /*=============================================*/ + Milestone = 175; + /*=============================================*/ + printf("\n"); + for(Indx = 1; Indx <= 3; ++Indx) { + switch (Indx) { + case 1: Z = UfThold; break; + case 2: Z = E0; break; + case 3: Z = PseudoZero; break; + } + if (Z != Zero) { + V9 = SQRT(Z); + Y = V9 * V9; + if (Y / (One - Radix * E9) < Z + || Y > (One + Radix * E9) * Z) { /* dgh: + E9 --> * E9 */ + if (V9 > U1) BadCond(Serious, ""); + else BadCond(Defect, ""); + printf("Comparison alleges that what prints as Z = %.17e\n", Z); + printf(" is too far from sqrt(Z) ^ 2 = %.17e .\n", Y); + } + } + } + /*=============================================*/ + Milestone = 180; + /*=============================================*/ + for(Indx = 1; Indx <= 2; ++Indx) { + if (Indx == 1) Z = V; + else Z = V0; + V9 = SQRT(Z); + X = (One - Radix * E9) * V9; + V9 = V9 * X; + if (((V9 < (One - Two * Radix * E9) * Z) || (V9 > Z))) { + Y = V9; + if (X < W) BadCond(Serious, ""); + else BadCond(Defect, ""); + printf("Comparison alleges that Z = %17e\n", Z); + printf(" is too far from sqrt(Z) ^ 2 (%.17e) .\n", Y); + } + } + /*=============================================*/ + /*SPLIT + } +#include "paranoia.h" +part8(){ +*/ + Milestone = 190; + /*=============================================*/ + Pause(); + X = UfThold * V; + Y = Radix * Radix; + if (X*Y < One || X > Y) { + if (X * Y < U1 || X > Y/U1) BadCond(Defect, "Badly"); + else BadCond(Flaw, ""); + + printf(" unbalanced range; UfThold * V = %.17e\n\t%s\n", + X, "is too far from 1.\n"); + } + /*=============================================*/ + Milestone = 200; + /*=============================================*/ + for (Indx = 1; Indx <= 5; ++Indx) { + X = F9; + switch (Indx) { + case 2: X = One + U2; break; + case 3: X = V; break; + case 4: X = UfThold; break; + case 5: X = Radix; + } + Y = X; + sigsave = sigfpe; + if (setjmp(ovfl_buf)) + printf(" X / X traps when X = %g\n", X); + else { + V9 = (Y / X - Half) - Half; + if (V9 == Zero) continue; + if (V9 == - U1 && Indx < 5) BadCond(Flaw, ""); + else BadCond(Serious, ""); + printf(" X / X differs from 1 when X = %.17e\n", X); + printf(" instead, X / X - 1/2 - 1/2 = %.17e .\n", V9); + } + sigsave = 0; + } + /*=============================================*/ + Milestone = 210; + /*=============================================*/ + MyZero = Zero; + printf("\n"); + printf("What message and/or values does Division by Zero produce?\n") ; +#ifndef NOPAUSE + printf("This can interupt your program. You can "); + printf("skip this part if you wish.\n"); + printf("Do you wish to compute 1 / 0? "); + fflush(stdout); + read (KEYBOARD, ch, 8); + if ((ch[0] == 'Y') || (ch[0] == 'y')) { +#endif + sigsave = sigfpe; + printf(" Trying to compute 1 / 0 produces ..."); + if (!setjmp(ovfl_buf)) printf(" %.7e .\n", One / MyZero); + sigsave = 0; +#ifndef NOPAUSE + } + else printf("O.K.\n"); + printf("\nDo you wish to compute 0 / 0? "); + fflush(stdout); + read (KEYBOARD, ch, 80); + if ((ch[0] == 'Y') || (ch[0] == 'y')) { +#endif + sigsave = sigfpe; + printf("\n Trying to compute 0 / 0 produces ..."); + if (!setjmp(ovfl_buf)) printf(" %.7e .\n", Zero / MyZero); + sigsave = 0; +#ifndef NOPAUSE + } + else printf("O.K.\n"); +#endif + /*=============================================*/ + Milestone = 220; + /*=============================================*/ + Pause(); + printf("\n"); + { + static char *msg[] = { + "FAILUREs encountered =", + "SERIOUS DEFECTs discovered =", + "DEFECTs discovered =", + "FLAWs discovered =" }; + int i; + for(i = 0; i < 4; i++) if (ErrCnt[i]) + printf("The number of %-29s %d.\n", + msg[i], ErrCnt[i]); + } + printf("\n"); + if ((ErrCnt[Failure] + ErrCnt[Serious] + ErrCnt[Defect] + + ErrCnt[Flaw]) > 0) { + if ((ErrCnt[Failure] + ErrCnt[Serious] + ErrCnt[ + Defect] == 0) && (ErrCnt[Flaw] > 0)) { + printf("The arithmetic diagnosed seems "); + printf("Satisfactory though flawed.\n"); + } + if ((ErrCnt[Failure] + ErrCnt[Serious] == 0) + && ( ErrCnt[Defect] > 0)) { + printf("The arithmetic diagnosed may be Acceptable\n"); + printf("despite inconvenient Defects.\n"); + } + if ((ErrCnt[Failure] + ErrCnt[Serious]) > 0) { + printf("The arithmetic diagnosed has "); + printf("unacceptable Serious Defects.\n"); + } + if (ErrCnt[Failure] > 0) { + printf("Potentially fatal FAILURE may have spoiled this"); + printf(" program's subsequent diagnoses.\n"); + } + } + else { + printf("No failures, defects nor flaws have been discovered.\n"); + if (! ((RMult == Rounded) && (RDiv == Rounded) + && (RAddSub == Rounded) && (RSqrt == Rounded))) + printf("The arithmetic diagnosed seems Satisfactory.\n"); + else { + if (StickyBit >= One && + (Radix - Two) * (Radix - Nine - One) == Zero) { + printf("Rounding appears to conform to "); + printf("the proposed IEEE standard P"); + if ((Radix == Two) && + ((Precision - Four * Three * Two) * + ( Precision - TwentySeven - + TwentySeven + One) == Zero)) + printf("754"); + else printf("854"); + if (IEEE) printf(".\n"); + else { + printf(",\nexcept for possibly Double Rounding"); + printf(" during Gradual Underflow.\n"); + } + } + printf("The arithmetic diagnosed appears to be Excellent!\n"); + } + } + if (fpecount) + printf("\nA total of %d floating point exceptions were registered.\n", + fpecount); + printf("END OF TEST.\n"); + return 0; + } + +/*SPLIT subs.c +#include "paranoia.h" +*/ + +/* Sign */ + +FLOAT Sign (X) +FLOAT X; +{ return X >= 0. ? 1.0 : -1.0; } + +/* Pause */ + +Pause() +{ +#ifndef NOPAUSE + char ch[8]; + + printf("\nTo continue, press RETURN"); + fflush(stdout); + read(KEYBOARD, ch, 8); +#endif + printf("\nDiagnosis resumes after milestone Number %d", Milestone); + printf(" Page: %d\n\n", PageNo); + ++Milestone; + ++PageNo; + } + + /* TstCond */ + +TstCond (K, Valid, T) +int K, Valid; +char *T; +{ if (! Valid) { BadCond(K,T); printf(".\n"); } } + +BadCond(K, T) +int K; +char *T; +{ + static char *msg[] = { "FAILURE", "SERIOUS DEFECT", "DEFECT", "FLAW" }; + + ErrCnt [K] = ErrCnt [K] + 1; + printf("%s: %s", msg[K], T); + } + +/* Random */ +/* Random computes + X = (Random1 + Random9)^5 + Random1 = X - FLOOR(X) + 0.000005 * X; + and returns the new value of Random1 +*/ + +FLOAT Random() +{ + FLOAT X, Y; + + X = Random1 + Random9; + Y = X * X; + Y = Y * Y; + X = X * Y; + Y = X - FLOOR(X); + Random1 = Y + X * 0.000005; + return(Random1); + } + +/* SqXMinX */ + +SqXMinX (ErrKind) +int ErrKind; +{ + FLOAT XA, XB; + + XB = X * BInvrse; + XA = X - XB; + SqEr = ((SQRT(X * X) - XB) - XA) / OneUlp; + if (SqEr != Zero) { + if (SqEr < MinSqEr) MinSqEr = SqEr; + if (SqEr > MaxSqEr) MaxSqEr = SqEr; + J = J + 1.0; + BadCond(ErrKind, "\n"); + printf("sqrt( %.17e) - %.17e = %.17e\n", X * X, X, OneUlp * SqEr); + printf("\tinstead of correct value 0 .\n"); + } + } + +/* NewD */ + +NewD() +{ + X = Z1 * Q; + X = FLOOR(Half - X / Radix) * Radix + X; + Q = (Q - X * Z) / Radix + X * X * (D / Radix); + Z = Z - Two * X * D; + if (Z <= Zero) { + Z = - Z; + Z1 = - Z1; + } + D = Radix * D; + } + +/* SR3750 */ + +SR3750() +{ + if (! ((X - Radix < Z2 - Radix) || (X - Z2 > W - Z2))) { + I = I + 1; + X2 = SQRT(X * D); + Y2 = (X2 - Z2) - (Y - Z2); + X2 = X8 / (Y - Half); + X2 = X2 - Half * X2 * X2; + SqEr = (Y2 + Half) + (Half - X2); + if (SqEr < MinSqEr) MinSqEr = SqEr; + SqEr = Y2 - X2; + if (SqEr > MaxSqEr) MaxSqEr = SqEr; + } + } + +/* IsYeqX */ + +IsYeqX() +{ + if (Y != X) { + if (N <= 0) { + if (Z == Zero && Q <= Zero) + printf("WARNING: computing\n"); + else BadCond(Defect, "computing\n"); + printf("\t(%.17e) ^ (%.17e)\n", Z, Q); + printf("\tyielded %.17e;\n", Y); + printf("\twhich compared unequal to correct %.17e ;\n", + X); + printf("\t\tthey differ by %.17e .\n", Y - X); + } + N = N + 1; /* ... count discrepancies. */ + } + } + +/* SR3980 */ + +SR3980() +{ + do { + Q = (FLOAT) I; + Y = POW(Z, Q); + IsYeqX(); + if (++I > M) break; + X = Z * X; + } while ( X < W ); + } + +/* PrintIfNPositive */ + +PrintIfNPositive() +{ + if (N > 0) printf("Similar discrepancies have occurred %d times.\n", N); + } + +/* TstPtUf */ + +TstPtUf() +{ + N = 0; + if (Z != Zero) { + printf("Since comparison denies Z = 0, evaluating "); + printf("(Z + Z) / Z should be safe.\n"); + sigsave = sigfpe; + if (setjmp(ovfl_buf)) goto very_serious; + Q9 = (Z + Z) / Z; + printf("What the machine gets for (Z + Z) / Z is %.17e .\n", + Q9); + if (FABS(Q9 - Two) < Radix * U2) { + printf("This is O.K., provided Over/Underflow"); + printf(" has NOT just been signaled.\n"); + } + else { + if ((Q9 < One) || (Q9 > Two)) { +very_serious: + N = 1; + ErrCnt [Serious] = ErrCnt [Serious] + 1; + printf("This is a VERY SERIOUS DEFECT!\n"); + } + else { + N = 1; + ErrCnt [Defect] = ErrCnt [Defect] + 1; + printf("This is a DEFECT!\n"); + } + } + sigsave = 0; + V9 = Z * One; + Random1 = V9; + V9 = One * Z; + Random2 = V9; + V9 = Z / One; + if ((Z == Random1) && (Z == Random2) && (Z == V9)) { + if (N > 0) Pause(); + } + else { + N = 1; + BadCond(Defect, "What prints as Z = "); + printf("%.17e\n\tcompares different from ", Z); + if (Z != Random1) printf("Z * 1 = %.17e ", Random1); + if (! ((Z == Random2) + || (Random2 == Random1))) + printf("1 * Z == %g\n", Random2); + if (! (Z == V9)) printf("Z / 1 = %.17e\n", V9); + if (Random2 != Random1) { + ErrCnt [Defect] = ErrCnt [Defect] + 1; + BadCond(Defect, "Multiplication does not commute!\n"); + printf("\tComparison alleges that 1 * Z = %.17e\n", + Random2); + printf("\tdiffers from Z * 1 = %.17e\n", Random1); + } + Pause(); + } + } + } + +notify(s) +char *s; +{ + printf("%s test appears to be inconsistent...\n", s); + printf(" PLEASE NOTIFY KARPINKSI!\n"); + } + +/*SPLIT msgs.c */ + +/* Instructions */ + +msglist(s) +char **s; +{ while(*s) printf("%s\n", *s++); } + +Instructions() +{ + static char *instr[] = { + "Lest this program stop prematurely, i.e. before displaying\n", + " `END OF TEST',\n", + "try to persuade the computer NOT to terminate execution when an", + "error like Over/Underflow or Division by Zero occurs, but rather", + "to persevere with a surrogate value after, perhaps, displaying some", + "warning. If persuasion avails naught, don't despair but run this", + "program anyway to see how many milestones it passes, and then", + "amend it to make further progress.\n", + "Answer questions with Y, y, N or n (unless otherwise indicated).\n", + 0}; + + msglist(instr); + } + +/* Heading */ + +Heading() +{ + static char *head[] = { + "Users are invited to help debug and augment this program so it will", + "cope with unanticipated and newly uncovered arithmetic pathologies.\n", + "Please send suggestions and interesting results to", + "\tRichard Karpinski", + "\tComputer Center U-76", + "\tUniversity of California", + "\tSan Francisco, CA 94143-0704, USA\n", + "In doing so, please include the following information:", +#ifdef Single + "\tPrecision:\tsingle;", +#else + "\tPrecision:\tdouble;", +#endif + "\tVersion:\t10 February 1989;", + "\tComputer:\n", + "\tCompiler:\n", + "\tOptimization level:\n", + "\tOther relevant compiler options:", + 0}; + + msglist(head); + } + +/* Characteristics */ + +Characteristics() +{ + static char *chars[] = { + "Running this program should reveal these characteristics:", + " Radix = 1, 2, 4, 8, 10, 16, 100, 256 ...", + " Precision = number of significant digits carried.", + " U2 = Radix/Radix^Precision = One Ulp", + "\t(OneUlpnit in the Last Place) of 1.000xxx .", + " U1 = 1/Radix^Precision = One Ulp of numbers a little less than 1.0 .", + " Adequacy of guard digits for Mult., Div. and Subt.", + " Whether arithmetic is chopped, correctly rounded, or something else", + "\tfor Mult., Div., Add/Subt. and Sqrt.", + " Whether a Sticky Bit used correctly for rounding.", + " UnderflowThreshold = an underflow threshold.", + " E0 and PseudoZero tell whether underflow is abrupt, gradual, or fuzzy.", + " V = an overflow threshold, roughly.", + " V0 tells, roughly, whether Infinity is represented.", + " Comparisions are checked for consistency with subtraction", + "\tand for contamination with pseudo-zeros.", + " Sqrt is tested. Y^X is not tested.", + " Extra-precise subexpressions are revealed but NOT YET tested.", + " Decimal-Binary conversion is NOT YET tested for accuracy.", + 0}; + + msglist(chars); + } + +History() + +{ /* History */ + /* Converted from Brian Wichmann's Pascal version to C by Thos Sumner, + with further massaging by David M. Gay. */ + + static char *hist[] = { + "The program attempts to discriminate among", + " FLAWs, like lack of a sticky bit,", + " Serious DEFECTs, like lack of a guard digit, and", + " FAILUREs, like 2+2 == 5 .", + "Failures may confound subsequent diagnoses.\n", + "The diagnostic capabilities of this program go beyond an earlier", + "program called `MACHAR', which can be found at the end of the", + "book `Software Manual for the Elementary Functions' (1980) by", + "W. J. Cody and W. Waite. Although both programs try to discover", + "the Radix, Precision and range (over/underflow thresholds)", + "of the arithmetic, this program tries to cope with a wider variety", + "of pathologies, and to say how well the arithmetic is implemented.", + "\nThe program is based upon a conventional radix representation for", + "floating-point numbers, but also allows logarithmic encoding", + "as used by certain early WANG machines.\n", + "BASIC version of this program (C) 1983 by Prof. W. M. Kahan;", + "see source comments for more history.", + 0}; + + msglist(hist); + } + +double +pow(x, y) /* return x ^ y (exponentiation) */ +double x, y; +{ + extern double exp(), frexp(), ldexp(), log(), modf(); + double xy, ye; + long i; + int ex, ey = 0, flip = 0; + + if (!y) return 1.0; + + if ((y < -1100. || y > 1100.) && x != -1.) return exp(y * log(x)); + + if (y < 0.) { y = -y; flip = 1; } + y = modf(y, &ye); + if (y) xy = exp(y * log(x)); + else xy = 1.0; + /* next several lines assume >= 32 bit integers */ + x = frexp(x, &ex); + if (i = ye) for(;;) { + if (i & 1) { xy *= x; ey += ex; } + if (!(i >>= 1)) break; + x *= x; + ex *= 2; + if (x < .5) { x *= 2.; ex -= 1; } + } + if (flip) { xy = 1. / xy; ey = -ey; } + return ldexp(xy, ey); +} diff --git a/code/tools/lcc/tst/sort.0 b/code/tools/lcc/tst/sort.0 new file mode 100644 index 0000000..e69de29 diff --git a/code/tools/lcc/tst/sort.c b/code/tools/lcc/tst/sort.c new file mode 100644 index 0000000..a0cff62 --- /dev/null +++ b/code/tools/lcc/tst/sort.c @@ -0,0 +1,65 @@ +int in[] = {10, 32, -1, 567, 3, 18, 1, -51, 789, 0}; + +main() { + int i; + + sort(in, (sizeof in)/(sizeof in[0])); + for (i = 0; i < (sizeof in)/(sizeof in[0]); i++) { + putd(in[i]); + putchar('\n'); + } + return 0; +} + +/* putd - output decimal number */ +putd(n) { + if (n < 0) { + putchar('-'); + n = -n; + } + if (n/10) + putd(n/10); + putchar(n%10 + '0'); +} + +int *xx; + +/* sort - sort a[0..n-1] into increasing order */ +sort(a, n) int a[]; { + quick(xx = a, 0, --n); +} + +/* quick - quicksort a[lb..ub] */ +quick(a, lb, ub) int a[]; { + int k, partition(); + + if (lb >= ub) + return; + k = partition(a, lb, ub); + quick(a, lb, k - 1); + quick(a, k + 1, ub); +} + +/* partition - partition a[i..j] */ +int partition(a, i, j) int a[]; { + int v, k; + + j++; + k = i; + v = a[k]; + while (i < j) { + i++; while (a[i] < v) i++; + j--; while (a[j] > v) j--; + if (i < j) exchange(&a[i], &a[j]); + } + exchange(&a[k], &a[j]); + return j; +} + +/* exchange - exchange *x and *y */ +exchange(x, y) int *x, *y; { + int t; + + printf("exchange(%d,%d)\n", x - xx, y - xx); + t = *x; *x = *y; *y = t; +} diff --git a/code/tools/lcc/tst/spill.0 b/code/tools/lcc/tst/spill.0 new file mode 100644 index 0000000..e69de29 diff --git a/code/tools/lcc/tst/spill.c b/code/tools/lcc/tst/spill.c new file mode 100644 index 0000000..2c5da81 --- /dev/null +++ b/code/tools/lcc/tst/spill.c @@ -0,0 +1,17 @@ +main(){} + +f(i){i=f()+f();} + +f2(i){i=f()+(i?f():1);} + +f3(int i,int *p){register r1=0,r2=0,r3=0,r4=0,r5=0,r6=0,r7=0,r8=0,r9=0,r10=0;*p++=i?f():0;} + +double a[10],b[10];int i;f4(){register r6=0,r7=0,r8=0,r9=0,r10=0,r11=0;i=a[i]+b[i] && i && a[i]-b[i];} +/* f4 causes parent to spill child on vax when odd double regs are enabled */ + +int j, k, m, n; +double *A, *B, x; +f5(){ + x=A[k*m]*A[j*m]+B[k*n]*B[j*n]; + x=A[k*m]*B[j*n]-B[k*n]*A[j*m]; +} diff --git a/code/tools/lcc/tst/stdarg.0 b/code/tools/lcc/tst/stdarg.0 new file mode 100644 index 0000000..e69de29 diff --git a/code/tools/lcc/tst/stdarg.c b/code/tools/lcc/tst/stdarg.c new file mode 100644 index 0000000..c6a5338 --- /dev/null +++ b/code/tools/lcc/tst/stdarg.c @@ -0,0 +1,51 @@ +#include + +struct node { int a[4]; } x = {1,2,3,4}; + +print(char *fmt, ...); + +main() { + print("test 1\n"); + print("test %s\n", "2"); + print("test %d%c", 3, '\n'); + print("%s%s %w%c", "te", "st", 4, '\n'); + print("%s%s %f%c", "te", "st", 5.0, '\n'); + print("%b %b %b %b %b %b\n", x, x, x, x, x, x); + return 0; +} + +print(char *fmt, ...) { + va_list ap; + + va_start(ap, fmt); + for (; *fmt; fmt++) + if (*fmt == '%') + switch (*++fmt) { + case 'b': { + struct node x = va_arg(ap, struct node); + printf("{%d %d %d %d}", x.a[0], x.a[1], x.a[2], x.a[3]); + break; + } + case 'c': + printf("%c", va_arg(ap, char)); + break; + case 'd': + printf("%d", va_arg(ap, int)); + break; + case 'w': + printf("%x", va_arg(ap, short)); + break; + case 's': + printf("%s", va_arg(ap, char *)); + break; + case 'f': + printf("%f", va_arg(ap, double)); + break; + default: + printf("%c", *fmt); + break; + } + else + printf("%c", *fmt); + va_end(ap); +} diff --git a/code/tools/lcc/tst/struct.0 b/code/tools/lcc/tst/struct.0 new file mode 100644 index 0000000..e69de29 diff --git a/code/tools/lcc/tst/struct.c b/code/tools/lcc/tst/struct.c new file mode 100644 index 0000000..fe81681 --- /dev/null +++ b/code/tools/lcc/tst/struct.c @@ -0,0 +1,69 @@ +typedef struct point { int x,y; } point; +typedef struct rect { point pt1, pt2; } rect; + +point addpoint(point p1, point p2) { /* add two points */ + p1.x += p2.x; + p1.y += p2.y; + return p1; +} + +#define min(a, b) ((a) < (b) ? (a) : (b)) +#define max(a, b) ((a) > (b) ? (a) : (b)) + +rect canonrect(rect r) { /* canonicalize rectangle coordinates */ + rect temp; + + temp.pt1.x = min(r.pt1.x, r.pt2.x); + temp.pt1.y = min(r.pt1.y, r.pt2.y); + temp.pt2.x = max(r.pt1.x, r.pt2.x); + temp.pt2.y = max(r.pt1.y, r.pt2.y); + return temp; +} + +point makepoint(int x, int y) { /* make a point from x and y components */ + point p; + + p.x = x; + p.y = y; + return p; +} + +rect makerect(point p1, point p2) { /* make a rectangle from two points */ + rect r; + + r.pt1 = p1; + r.pt2 = p2; + return canonrect(r); +} + +int ptinrect(point p, rect r) { /* is p in r? */ + return p.x >= r.pt1.x && p.x < r.pt2.x + && p.y >= r.pt1.y && p.y < r.pt2.y; +} + +struct odd {char a[3]; } y = {'a', 'b', 0}; + +odd(struct odd y) { + struct odd x = y; + printf("%s\n", x.a); +} + +main() { + int i; + point x, origin = { 0, 0 }, maxpt = { 320, 320 }; + point pts[] = { -1, -1, 1, 1, 20, 300, 500, 400 }; + rect screen = makerect(addpoint(maxpt, makepoint(-10, -10)), + addpoint(origin, makepoint(10, 10))); + + for (i = 0; i < sizeof pts/sizeof pts[0]; i++) { + printf("(%d,%d) is ", pts[i].x, + (x = makepoint(pts[i].x, pts[i].y)).y); + if (ptinrect(x, screen) == 0) + printf("not "); + printf("within [%d,%d; %d,%d]\n", screen.pt1.x, screen.pt1.y, + screen.pt2.x, screen.pt2.y); + } + odd(y); + exit(0); +} + diff --git a/code/tools/lcc/tst/switch.0 b/code/tools/lcc/tst/switch.0 new file mode 100644 index 0000000..e69de29 diff --git a/code/tools/lcc/tst/switch.c b/code/tools/lcc/tst/switch.c new file mode 100644 index 0000000..dd62d79 --- /dev/null +++ b/code/tools/lcc/tst/switch.c @@ -0,0 +1,137 @@ +main() +{ + int i; char *s; + + for (s = "bfnrtvx"; *s; s++) + printf("%c = 0x%x\n", *s, backslash(*s)); + f(); + g(); + h(); + for (i = 0x1000000; i&0x7000000; i += 0x1000000) + big(i); + limit(); + return 0; +} + +backslash(c) +{ + switch (c) { + case 'b': + return '\b'; + case 'f': + return '\f'; + case 'n': + return '\n'; + case 'r': + return '\r'; + case 't': + return '\t'; + case 'v': + return '\v'; + } + return c; +} + +f() { + int i, x = 0, y; + + printf("f:\n"); + for (i = 0; i <= 20; i++) { + y = i; + switch (i) { + case 1: x = i; break; + case 2: x = i; break; + case 7: x = i; break; + case 8: x = i; break; + case 9: x = i; break; + case 16: x = i; break; + case 17: x = i; break; + case 18: x = i; break; + case 19: x = i; break; + case 20: x = i; break; + } + printf("x = %d\n", x); + } +} + +g() { + int i; + + printf("g:\n"); + for (i = 1; i <= 10; i++) + switch (i) { + case 1: case 2: printf("1 %d\n", i); break; + case 3: case 4: case 5: printf("2 %d\n", i); break; + case 6: case 7: case 8: printf("3 %d\n", i); + default: + printf("d %d\n", i); break; + case 1001: case 1002: case 1003: case 1004: + printf("5 %d\n", i); break; + case 3001: case 3002: case 3003: case 3004: + printf("6 %d\n", i); break; + } +} + +h() +{ + int i, n=0; + + printf("h:\n"); + for (i = 1; i <= 500; i++) + switch (i) { + default: n++; continue; + case 128: printf("i = %d\n", i); break; + case 16: printf("i = %d\n", i); break; + case 8: printf("i = %d\n", i); break; + case 120: printf("i = %d\n", i); break; + case 280: printf("i = %d\n", i); break; + case 264: printf("i = %d\n", i); break; + case 248: printf("i = %d\n", i); break; + case 272: printf("i = %d\n", i); break; + case 304: printf("i = %d\n", i); break; + case 296: printf("i = %d\n", i); break; + case 288: printf("i = %d\n", i); break; + case 312: printf("i = %d\n", i); break; + } + printf("%d defaults\n", n); +} + +big(x) unsigned x; { + switch(x&0x6000000){ + case -1: + case -2: + case 0x0000000: + printf("x = 0x%x\n", x); break; + case 0x2000000: + printf("x = 0x%x\n", x); break; + case 0x4000000: + printf("x = 0x%x\n", x); break; + default: + printf("x = 0x%x (default)\n", x); break; + } +} + +#include + +limit() { + int i; + + for (i = INT_MIN; i <= INT_MIN+5; i++) + switch (i) { + case INT_MIN: printf("0\n"); break; + case INT_MIN+1: printf("1\n"); break; + case INT_MIN+2: printf("2\n"); break; + case INT_MIN+3: printf("3\n"); break; + case INT_MIN+4: printf("4\n"); break; + default: printf("5\n"); break; + } + for (i = INT_MAX; i >= INT_MAX-5; i--) + switch (i) { + case INT_MAX: printf("0\n"); break; + case INT_MAX-1: printf("1\n"); break; + case INT_MAX-2: printf("2\n"); break; + case INT_MAX-3: printf("3\n"); break; + case INT_MAX-4: printf("4\n"); break; + default: printf("5\n"); break; + } +} diff --git a/code/tools/lcc/tst/wf1.0 b/code/tools/lcc/tst/wf1.0 new file mode 100644 index 0000000..761b526 --- /dev/null +++ b/code/tools/lcc/tst/wf1.0 @@ -0,0 +1,115 @@ +/* wf1 - print word frequencies; uses structures */ + +struct node { + int count; /* frequency count */ + struct node *left; /* left subtree */ + struct node *right; /* right subtree */ + char *word; /* word itself */ +} words[2000]; +int next; /* index of next free entry in words */ + +struct node *lookup(); + +main() +{ + struct node *root; + char word[20]; + + root = 0; + next = 0; + while (getword(word)) + lookup(word, &root)->count++; + tprint(root); + return 0; +} + +/* err - print error message s and die */ +err(s) +char *s; +{ + printf("? %s\n", s); + exit(1); +} + +/* getword - get next input word into buf, return 0 on EOF */ +int getword(buf) +char *buf; +{ + char *s; + int c; + + while ((c = getchar()) != -1 && isletter(c) == 0) + ; + for (s = buf; c = isletter(c); c = getchar()) + *s++ = c; + *s = 0; + if (s > buf) + return (1); + return (0); +} + +/* isletter - return folded version of c if it is a letter, 0 otherwise */ +int isletter(c) +int c; +{ + if (c >= 'A' && c <= 'Z') + c += 'a' - 'A'; + if (c >= 'a' && c <= 'z') + return (c); + return (0); +} + +/* lookup - lookup word in tree; install if necessary */ +struct node *lookup(word, p) +char *word; +struct node **p; +{ + int cond; + char *malloc(); + + if (*p) { + cond = strcmp(word, (*p)->word); + if (cond < 0) + return lookup(word, &(*p)->left); + else if (cond > 0) + return lookup(word, &(*p)->right); + else + return *p; + } + if (next >= 2000) + err("out of node storage"); + words[next].count = 0; + words[next].left = words[next].right = 0; + words[next].word = malloc(strlen(word) + 1); + if (words[next].word == 0) + err("out of word storage"); + strcpy(words[next].word, word); + return *p = &words[next++]; +} + +/* tprint - print tree */ +tprint(tree) +struct node *tree; +{ + if (tree) { + tprint(tree->left); + printf("%d\t%s\n", tree->count, tree->word); + tprint(tree->right); + } +} + +/* strcmp - compare s1 and s2, return <0, 0, or >0 */ +int strcmp(s1, s2) +char *s1, *s2; +{ + while (*s1 == *s2) { + if (*s1++ == 0) + return 0; + ++s2; + } + if (*s1 == 0) + return -1; + else if (*s2 == 0) + return 1; + return *s1 - *s2; +} diff --git a/code/tools/lcc/tst/wf1.c b/code/tools/lcc/tst/wf1.c new file mode 100644 index 0000000..d0c6e32 --- /dev/null +++ b/code/tools/lcc/tst/wf1.c @@ -0,0 +1,101 @@ +/* wf1 - print word frequencies; uses structures */ + +struct node { + int count; /* frequency count */ + struct node *left; /* left subtree */ + struct node *right; /* right subtree */ + char *word; /* word itself */ +} words[2000]; +int next; /* index of next free entry in words */ + +struct node *lookup(); + +main() { + struct node *root; + char word[20]; + + root = 0; + next = 0; + while (getword(word)) + lookup(word, &root)->count++; + tprint(root); + return 0; +} + +/* err - print error message s and die */ +err(s) char *s; { + printf("? %s\n", s); + exit(1); +} + +/* getword - get next input word into buf, return 0 on EOF */ +int getword(buf) char *buf; { + char *s; + int c; + + while ((c = getchar()) != -1 && isletter(c) == 0) + ; + for (s = buf; c = isletter(c); c = getchar()) + *s++ = c; + *s = 0; + if (s > buf) + return (1); + return (0); +} + +/* isletter - return folded version of c if it is a letter, 0 otherwise */ +int isletter(c) { + if (c >= 'A' && c <= 'Z') + c += 'a' - 'A'; + if (c >= 'a' && c <= 'z') + return (c); + return (0); +} + +/* lookup - lookup word in tree; install if necessary */ +struct node *lookup(word, p) char *word; struct node **p; { + int cond; + char *malloc(); + + if (*p) { + cond = strcmp(word, (*p)->word); + if (cond < 0) + return lookup(word, &(*p)->left); + else if (cond > 0) + return lookup(word, &(*p)->right); + else + return *p; + } + if (next >= 2000) + err("out of node storage"); + words[next].count = 0; + words[next].left = words[next].right = 0; + words[next].word = malloc(strlen(word) + 1); + if (words[next].word == 0) + err("out of word storage"); + strcpy(words[next].word, word); + return *p = &words[next++]; +} + +/* tprint - print tree */ +tprint(tree) struct node *tree; { + if (tree) { + tprint(tree->left); + printf("%d\t%s\n", tree->count, tree->word); + tprint(tree->right); + } +} + +/* strcmp - compare s1 and s2, return <0, 0, or >0 */ +int strcmp(s1, s2) char *s1, *s2; { + while (*s1 == *s2) { + if (*s1++ == 0) + return 0; + ++s2; + } + if (*s1 == 0) + return -1; + else if (*s2 == 0) + return 1; + return *s1 - *s2; +} diff --git a/code/tools/lcc/tst/yacc.0 b/code/tools/lcc/tst/yacc.0 new file mode 100644 index 0000000..46de7cb --- /dev/null +++ b/code/tools/lcc/tst/yacc.0 @@ -0,0 +1 @@ +a=-b+5*c diff --git a/code/tools/lcc/tst/yacc.c b/code/tools/lcc/tst/yacc.c new file mode 100644 index 0000000..3e297d2 --- /dev/null +++ b/code/tools/lcc/tst/yacc.c @@ -0,0 +1,591 @@ +# define ID 257 +# define CON 258 +# define UNARYMINUS 259 +#define yyclearin yychar = -1 +#define yyerrok yyerrflag = 0 +extern int yychar; +extern short yyerrflag; +#ifndef YYMAXDEPTH +#define YYMAXDEPTH 150 +#endif +#ifndef YYSTYPE +#define YYSTYPE int +#endif +YYSTYPE yylval, yyval; +# define YYERRCODE 256 + + + +#include + +# define U(x) x +# define NLSTATE yyprevious=YYNEWLINE +# define BEGIN yybgin = yysvec + 1 + +# define INITIAL 0 +# define YYLERR yysvec +# define YYSTATE (yyestate-yysvec-1) +# define YYOPTIM 1 +# define YYLMAX 200 +# define output(c) (void)putc(c,yyout) +# define input() (((yytchar=yysptr>yysbuf?U(*--yysptr):getc(yyin))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar) +# define unput(c) {yytchar= (c);if(yytchar=='\n')yylineno--;*yysptr++=yytchar;} +# define yymore() (yymorfg=1) +# define ECHO fprintf(yyout, "%s",yytext) +# define REJECT { nstr = yyreject(); goto yyfussy;} +int yyleng; extern char yytext[]; +int yymorfg; +extern char *yysptr, yysbuf[]; +int yytchar; +FILE *yyin ={stdin}, *yyout ={stdout}; +extern int yylineno; +struct yysvf { + struct yywork *yystoff; + struct yysvf *yyother; + int *yystops;}; +struct yysvf *yyestate; +extern struct yysvf yysvec[], *yybgin; +# define YYNEWLINE 10 +yylex(){ +int nstr; extern int yyprevious; +while((nstr = yylook()) >= 0) +yyfussy: switch(nstr){ +case 0: +if(yywrap()) return(0); break; +case 1: + return ID; +break; +case 2: + return CON; +break; +case 3: + ; +break; +case 4: + return yytext[0]; +break; +case -1: +break; +default: +fprintf(yyout,"bad switch yylook %d",nstr); +} return(0); } +/* end of yylex */ +int yyvstop[] ={ +0, + +4, +0, + +3, +4, +0, + +2, +4, +0, + +1, +4, +0, + +2, +0, + +1, +0, +0}; +# define YYTYPE char +struct yywork { YYTYPE verify, advance; } yycrank[] ={ +0,0, 0,0, 1,3, 0,0, +0,0, 0,0, 0,0, 0,0, +0,0, 0,0, 1,4, 1,3, +0,0, 0,0, 0,0, 0,0, +0,0, 0,0, 0,0, 0,0, +0,0, 0,0, 0,0, 0,0, +0,0, 0,0, 0,0, 0,0, +0,0, 0,0, 0,0, 0,0, +0,0, 0,0, 0,0, 0,0, +0,0, 0,0, 0,0, 0,0, +0,0, 0,0, 0,0, 0,0, +0,0, 0,0, 0,0, 0,0, +0,0, 1,5, 5,7, 5,7, +5,7, 5,7, 5,7, 5,7, +5,7, 5,7, 5,7, 5,7, +0,0, 0,0, 0,0, 0,0, +0,0, 0,0, 1,6, 6,8, +6,8, 6,8, 6,8, 6,8, +6,8, 6,8, 6,8, 6,8, +6,8, 0,0, 0,0, 0,0, +0,0, 0,0, 0,0, 0,0, +6,8, 6,8, 6,8, 6,8, +6,8, 6,8, 6,8, 6,8, +6,8, 6,8, 6,8, 6,8, +6,8, 6,8, 6,8, 6,8, +6,8, 6,8, 6,8, 6,8, +6,8, 6,8, 6,8, 6,8, +6,8, 6,8, 0,0, 0,0, +0,0, 0,0, 6,8, 0,0, +6,8, 6,8, 6,8, 6,8, +6,8, 6,8, 6,8, 6,8, +6,8, 6,8, 6,8, 6,8, +6,8, 6,8, 6,8, 6,8, +6,8, 6,8, 6,8, 6,8, +6,8, 6,8, 6,8, 6,8, +6,8, 6,8, 0,0, 0,0, +0,0}; +struct yysvf yysvec[] ={ +0, 0, 0, +yycrank+-1, 0, 0, +yycrank+0, yysvec+1, 0, +yycrank+0, 0, yyvstop+1, +yycrank+0, 0, yyvstop+3, +yycrank+2, 0, yyvstop+6, +yycrank+19, 0, yyvstop+9, +yycrank+0, yysvec+5, yyvstop+12, +yycrank+0, yysvec+6, yyvstop+14, +0, 0, 0}; +struct yywork *yytop = yycrank+141; +struct yysvf *yybgin = yysvec+1; +char yymatch[] ={ +00 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,011 ,012 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +011 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' , +'0' ,'0' ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' , +'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' , +'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' , +'A' ,'A' ,'A' ,01 ,01 ,01 ,01 ,'A' , +01 ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' , +'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' , +'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' , +'A' ,'A' ,'A' ,01 ,01 ,01 ,01 ,01 , +0}; +char yyextra[] ={ +0,0,0,0,0,0,0,0, +0}; +/* ncform 4.1 83/08/11 */ + +int yylineno =1; +# define YYU(x) x +# define NLSTATE yyprevious=YYNEWLINE +char yytext[YYLMAX]; +struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp; +char yysbuf[YYLMAX]; +char *yysptr = yysbuf; +int *yyfnd; +extern struct yysvf *yyestate; +int yyprevious = YYNEWLINE; +yylook(){ + register struct yysvf *yystate, **lsp; + register struct yywork *yyt; + struct yysvf *yyz; + int yych; + struct yywork *yyr; +# ifdef LEXDEBUG + int debug; +# endif + char *yylastch; + /* start off machines */ +# ifdef LEXDEBUG + debug = 0; +# endif + if (!yymorfg) + yylastch = yytext; + else { + yymorfg=0; + yylastch = yytext+yyleng; + } + for(;;){ + lsp = yylstate; + yyestate = yystate = yybgin; + if (yyprevious==YYNEWLINE) yystate++; + for (;;){ +# ifdef LEXDEBUG + if(debug)fprintf(yyout,"state %d\n",yystate-yysvec-1); +# endif + yyt = yystate->yystoff; + if(yyt == yycrank){ /* may not be any transitions */ + yyz = yystate->yyother; + if(yyz == 0)break; + if(yyz->yystoff == yycrank)break; + } + *yylastch++ = yych = input(); + tryagain: +# ifdef LEXDEBUG + if(debug){ + fprintf(yyout,"char "); + allprint(yych); + putchar('\n'); + } +# endif + yyr = yyt; + if ( yyt > yycrank){ + yyt = yyr + yych; + if (yyt <= yytop && yyt->verify+yysvec == yystate){ + if(yyt->advance+yysvec == YYLERR) /* error transitions */ + {unput(*--yylastch);break;} + *lsp++ = yystate = yyt->advance+yysvec; + goto contin; + } + } +# ifdef YYOPTIM + else if(yyt < yycrank) { /* r < yycrank */ + yyt = yyr = yycrank+(yycrank-yyt); +# ifdef LEXDEBUG + if(debug)fprintf(yyout,"compressed state\n"); +# endif + yyt = yyt + yych; + if(yyt <= yytop && yyt->verify+yysvec == yystate){ + if(yyt->advance+yysvec == YYLERR) /* error transitions */ + {unput(*--yylastch);break;} + *lsp++ = yystate = yyt->advance+yysvec; + goto contin; + } + yyt = yyr + YYU(yymatch[yych]); +# ifdef LEXDEBUG + if(debug){ + fprintf(yyout,"try fall back character "); + allprint(YYU(yymatch[yych])); + putchar('\n'); + } +# endif + if(yyt <= yytop && yyt->verify+yysvec == yystate){ + if(yyt->advance+yysvec == YYLERR) /* error transition */ + {unput(*--yylastch);break;} + *lsp++ = yystate = yyt->advance+yysvec; + goto contin; + } + } + if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){ +# ifdef LEXDEBUG + if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1); +# endif + goto tryagain; + } +# endif + else + {unput(*--yylastch);break;} + contin: +# ifdef LEXDEBUG + if(debug){ + fprintf(yyout,"state %d char ",yystate-yysvec-1); + allprint(yych); + putchar('\n'); + } +# endif + ; + } +# ifdef LEXDEBUG + if(debug){ + fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1); + allprint(yych); + putchar('\n'); + } +# endif + while (lsp-- > yylstate){ + *yylastch-- = 0; + if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0){ + yyolsp = lsp; + if(yyextra[*yyfnd]){ /* must backup */ + while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate){ + lsp--; + unput(*yylastch--); + } + } + yyprevious = YYU(*yylastch); + yylsp = lsp; + yyleng = yylastch-yytext+1; + yytext[yyleng] = 0; +# ifdef LEXDEBUG + if(debug){ + fprintf(yyout,"\nmatch "); + sprint(yytext); + fprintf(yyout," action %d\n",*yyfnd); + } +# endif + return(*yyfnd++); + } + unput(*yylastch); + } + if (yytext[0] == 0 /* && feof(yyin) */) + { + yysptr=yysbuf; + return(0); + } + yyprevious = yytext[0] = input(); + if (yyprevious>0) + output(yyprevious); + yylastch=yytext; +# ifdef LEXDEBUG + if(debug)putchar('\n'); +# endif + } + } +yyback(p, m) + int *p; +{ +if (p==0) return(0); +while (*p) + { + if (*p++ == m) + return(1); + } +return(0); +} + /* the following are only used in the lex library */ +yyinput(){ + return(input()); + } +yyoutput(c) + int c; { + output(c); + } +yyunput(c) + int c; { + unput(c); + } + +main() { + yyparse(); + return 0; +} + +/* yyerror - issue error message */ +yyerror(s) char *s; { + printf("%s\n", s); +} +short yyexca[] ={ +-1, 1, + 0, -1, + -2, 0, + }; +# define YYNPROD 15 +# define YYLAST 249 +short yyact[]={ + + 12, 2, 9, 8, 17, 11, 25, 17, 15, 18, + 16, 10, 18, 17, 15, 7, 16, 13, 18, 5, + 3, 1, 0, 19, 20, 0, 0, 21, 22, 23, + 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 6, 14, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4, 6 }; +short yypact[]={ + +-1000, -9,-1000, 5, -7, -59,-1000,-1000,-1000, -40, + -29, -40, -40,-1000,-1000, -40, -40, -40, -40, -38, + -35, -38, -38,-1000,-1000,-1000 }; +short yypgo[]={ + + 0, 21, 20, 17, 11 }; +short yyr1[]={ + + 0, 1, 1, 1, 1, 2, 4, 4, 4, 4, + 4, 4, 4, 4, 3 }; +short yyr2[]={ + + 0, 0, 2, 3, 3, 3, 3, 3, 3, 3, + 2, 3, 1, 1, 1 }; +short yychk[]={ + +-1000, -1, 10, -2, 256, -3, 257, 10, 10, 61, + -4, 45, 40, -3, 258, 43, 45, 42, 47, -4, + -4, -4, -4, -4, -4, 41 }; +short yydef[]={ + + 1, -2, 2, 0, 0, 0, 14, 3, 4, 0, + 5, 0, 0, 12, 13, 0, 0, 0, 0, 10, + 0, 6, 7, 8, 9, 11 }; +#ifndef lint +#endif + +# define YYFLAG -1000 +# define YYERROR goto yyerrlab +# define YYACCEPT return(0) +# define YYABORT return(1) + +/* parser for yacc output */ + +#ifdef YYDEBUG +int yydebug = 0; /* 1 for debugging */ +#endif +YYSTYPE yyv[YYMAXDEPTH]; /* where the values are stored */ +int yychar = -1; /* current input token number */ +int yynerrs = 0; /* number of errors */ +short yyerrflag = 0; /* error recovery flag */ + +yyparse() { + + short yys[YYMAXDEPTH]; + short yyj, yym; + register YYSTYPE *yypvt; + register short yystate, *yyps, yyn; + register YYSTYPE *yypv; + register short *yyxi; + + yystate = 0; + yychar = -1; + yynerrs = 0; + yyerrflag = 0; + yyps= &yys[-1]; + yypv= &yyv[-1]; + + yystack: /* put a state and value onto the stack */ + +#ifdef YYDEBUG + if( yydebug ) printf( "state %d, char 0%o\n", yystate, yychar ); +#endif + if( ++yyps> &yys[YYMAXDEPTH] ) { yyerror( "yacc stack overflow" ); return(1); } + *yyps = yystate; + ++yypv; + *yypv = yyval; + + yynewstate: + + yyn = yypact[yystate]; + + if( yyn<= YYFLAG ) goto yydefault; /* simple state */ + + if( yychar<0 ) if( (yychar=yylex())<0 ) yychar=0; + if( (yyn += yychar)<0 || yyn >= YYLAST ) goto yydefault; + + if( yychk[ yyn=yyact[ yyn ] ] == yychar ){ /* valid shift */ + yychar = -1; + yyval = yylval; + yystate = yyn; + if( yyerrflag > 0 ) --yyerrflag; + goto yystack; + } + + yydefault: + /* default state action */ + + if( (yyn=yydef[yystate]) == -2 ) { + if( yychar<0 ) if( (yychar=yylex())<0 ) yychar = 0; + /* look through exception table */ + + for( yyxi=yyexca; (*yyxi!= (-1)) || (yyxi[1]!=yystate) ; yyxi += 2 ) ; /* VOID */ + + while( *(yyxi+=2) >= 0 ){ + if( *yyxi == yychar ) break; + } + if( (yyn = yyxi[1]) < 0 ) return(0); /* accept */ + } + + if( yyn == 0 ){ /* error */ + /* error ... attempt to resume parsing */ + + switch( yyerrflag ){ + + case 0: /* brand new error */ + + yyerror( "syntax error" ); + yyerrlab: + ++yynerrs; + + case 1: + case 2: /* incompletely recovered error ... try again */ + + yyerrflag = 3; + + /* find a state where "error" is a legal shift action */ + + while ( yyps >= yys ) { + yyn = yypact[*yyps] + YYERRCODE; + if( yyn>= 0 && yyn < YYLAST && yychk[yyact[yyn]] == YYERRCODE ){ + yystate = yyact[yyn]; /* simulate a shift of "error" */ + goto yystack; + } + yyn = yypact[*yyps]; + + /* the current yyps has no shift onn "error", pop stack */ + +#ifdef YYDEBUG + if( yydebug ) printf( "error recovery pops state %d, uncovers %d\n", *yyps, yyps[-1] ); +#endif + --yyps; + --yypv; + } + + /* there is no state on the stack with an error shift ... abort */ + + yyabort: + return(1); + + + case 3: /* no shift yet; clobber input char */ + +#ifdef YYDEBUG + if( yydebug ) printf( "error recovery discards char %d\n", yychar ); +#endif + + if( yychar == 0 ) goto yyabort; /* don't discard EOF, quit */ + yychar = -1; + goto yynewstate; /* try again in the same state */ + + } + + } + + /* reduction by production yyn */ + +#ifdef YYDEBUG + if( yydebug ) printf("reduce %d\n",yyn); +#endif + yyps -= yyr2[yyn]; + yypvt = yypv; + yypv -= yyr2[yyn]; + yyval = yypv[1]; + yym=yyn; + /* consult goto table to find next state */ + yyn = yyr1[yyn]; + yyj = yypgo[yyn] + *yyps + 1; + if( yyj>=YYLAST || yychk[ yystate = yyact[yyj] ] != -yyn ) yystate = yyact[yypgo[yyn]]; + switch(yym){ + +case 4: +{ yyerrok; } break; +case 5: +{ printf("store\n"); } break; +case 6: +{ printf("add\n"); } break; +case 7: +{ printf("negate\nadd\n"); } break; +case 8: +{ printf("multiply\n"); } break; +case 9: +{ printf("divide\n"); } break; +case 10: +{ printf("negate\n"); } break; +case 12: +{ printf("load\n"); } break; +case 13: +{ printf("push %s\n", yytext); } break; +case 14: +{ printf("%s\n", yytext); } break; + } + goto yystack; /* stack new state and value */ + + } +int yywrap() { return 1; } diff --git a/code/tools/lcc/x86/linux/tst/8q.1bk b/code/tools/lcc/x86/linux/tst/8q.1bk new file mode 100644 index 0000000..7ed6437 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/8q.1bk @@ -0,0 +1,92 @@ +1 5 8 6 3 7 2 4 +1 6 8 3 7 4 2 5 +1 7 4 6 8 2 5 3 +1 7 5 8 2 4 6 3 +2 4 6 8 3 1 7 5 +2 5 7 1 3 8 6 4 +2 5 7 4 1 8 6 3 +2 6 1 7 4 8 3 5 +2 6 8 3 1 4 7 5 +2 7 3 6 8 5 1 4 +2 7 5 8 1 4 6 3 +2 8 6 1 3 5 7 4 +3 1 7 5 8 2 4 6 +3 5 2 8 1 7 4 6 +3 5 2 8 6 4 7 1 +3 5 7 1 4 2 8 6 +3 5 8 4 1 7 2 6 +3 6 2 5 8 1 7 4 +3 6 2 7 1 4 8 5 +3 6 2 7 5 1 8 4 +3 6 4 1 8 5 7 2 +3 6 4 2 8 5 7 1 +3 6 8 1 4 7 5 2 +3 6 8 1 5 7 2 4 +3 6 8 2 4 1 7 5 +3 7 2 8 5 1 4 6 +3 7 2 8 6 4 1 5 +3 8 4 7 1 6 2 5 +4 1 5 8 2 7 3 6 +4 1 5 8 6 3 7 2 +4 2 5 8 6 1 3 7 +4 2 7 3 6 8 1 5 +4 2 7 3 6 8 5 1 +4 2 7 5 1 8 6 3 +4 2 8 5 7 1 3 6 +4 2 8 6 1 3 5 7 +4 6 1 5 2 8 3 7 +4 6 8 2 7 1 3 5 +4 6 8 3 1 7 5 2 +4 7 1 8 5 2 6 3 +4 7 3 8 2 5 1 6 +4 7 5 2 6 1 3 8 +4 7 5 3 1 6 8 2 +4 8 1 3 6 2 7 5 +4 8 1 5 7 2 6 3 +4 8 5 3 1 7 2 6 +5 1 4 6 8 2 7 3 +5 1 8 4 2 7 3 6 +5 1 8 6 3 7 2 4 +5 2 4 6 8 3 1 7 +5 2 4 7 3 8 6 1 +5 2 6 1 7 4 8 3 +5 2 8 1 4 7 3 6 +5 3 1 6 8 2 4 7 +5 3 1 7 2 8 6 4 +5 3 8 4 7 1 6 2 +5 7 1 3 8 6 4 2 +5 7 1 4 2 8 6 3 +5 7 2 4 8 1 3 6 +5 7 2 6 3 1 4 8 +5 7 2 6 3 1 8 4 +5 7 4 1 3 8 6 2 +5 8 4 1 3 6 2 7 +5 8 4 1 7 2 6 3 +6 1 5 2 8 3 7 4 +6 2 7 1 3 5 8 4 +6 2 7 1 4 8 5 3 +6 3 1 7 5 8 2 4 +6 3 1 8 4 2 7 5 +6 3 1 8 5 2 4 7 +6 3 5 7 1 4 2 8 +6 3 5 8 1 4 2 7 +6 3 7 2 4 8 1 5 +6 3 7 2 8 5 1 4 +6 3 7 4 1 8 2 5 +6 4 1 5 8 2 7 3 +6 4 2 8 5 7 1 3 +6 4 7 1 3 5 2 8 +6 4 7 1 8 2 5 3 +6 8 2 4 1 7 5 3 +7 1 3 8 6 4 2 5 +7 2 4 1 8 5 3 6 +7 2 6 3 1 4 8 5 +7 3 1 6 8 5 2 4 +7 3 8 2 5 1 6 4 +7 4 2 5 8 1 3 6 +7 4 2 8 6 1 3 5 +7 5 3 1 6 8 2 4 +8 2 4 1 7 5 3 6 +8 2 5 3 1 7 4 6 +8 3 1 6 2 5 7 4 +8 4 1 3 6 2 7 5 diff --git a/code/tools/lcc/x86/linux/tst/8q.2bk b/code/tools/lcc/x86/linux/tst/8q.2bk new file mode 100644 index 0000000..d4dc0ed --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/8q.2bk @@ -0,0 +1,2 @@ +tst/8q.c:30: warning: missing return value +tst/8q.c:39: warning: missing return value diff --git a/code/tools/lcc/x86/linux/tst/8q.sbk b/code/tools/lcc/x86/linux/tst/8q.sbk new file mode 100644 index 0000000..31a8748 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/8q.sbk @@ -0,0 +1,180 @@ +.globl main +.text +.align 16 +.type main,@function +main: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $4,%esp +movl $0,-4(%ebp) +.LC2: +movl -4(%ebp),%edi +leal (,%edi,4),%edi +movl $1,down(%edi) +movl $1,up(%edi) +.LC3: +incl -4(%ebp) +cmpl $15,-4(%ebp) +jl .LC2 +movl $0,-4(%ebp) +.LC6: +movl -4(%ebp),%edi +movl $1,rows(,%edi,4) +.LC7: +incl -4(%ebp) +cmpl $8,-4(%ebp) +jl .LC6 +pushl $0 +call queens +addl $4,%esp +movl $0,%eax +.LC1: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf10: +.size main,.Lf10-main +.globl queens +.align 16 +.type queens,@function +queens: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $4,%esp +movl $0,-4(%ebp) +.LC12: +movl -4(%ebp),%edi +cmpl $0,rows(,%edi,4) +je .LC16 +movl 20(%ebp),%esi +movl %edi,%ebx +subl %esi,%ebx +cmpl $0,up+28(,%ebx,4) +je .LC16 +leal (%esi,%edi),%edi +cmpl $0,down(,%edi,4) +je .LC16 +movl -4(%ebp),%edi +movl 20(%ebp),%esi +leal (%esi,%edi),%ebx +movl $0,down(,%ebx,4) +movl %edi,%ebx +subl %esi,%ebx +movl $0,up+28(,%ebx,4) +movl $0,rows(,%edi,4) +movl 20(%ebp),%edi +movl -4(%ebp),%esi +movl %esi,x(,%edi,4) +cmpl $7,20(%ebp) +jne .LC20 +call print +jmp .LC21 +.LC20: +movl 20(%ebp),%edi +leal 1(%edi),%edi +pushl %edi +call queens +addl $4,%esp +.LC21: +movl -4(%ebp),%edi +movl 20(%ebp),%esi +leal (%esi,%edi),%ebx +movl $1,down(,%ebx,4) +movl %edi,%ebx +subl %esi,%ebx +movl $1,up+28(,%ebx,4) +movl $1,rows(,%edi,4) +.LC16: +.LC13: +incl -4(%ebp) +cmpl $8,-4(%ebp) +jl .LC12 +movl $0,%eax +.LC11: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf23: +.size queens,.Lf23-queens +.globl print +.align 16 +.type print,@function +print: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $4,%esp +movl $0,-4(%ebp) +.LC25: +movl -4(%ebp),%edi +movl x(,%edi,4),%edi +leal 49(%edi),%edi +pushl %edi +pushl $.LC29 +call printf +addl $8,%esp +.LC26: +incl -4(%ebp) +cmpl $8,-4(%ebp) +jl .LC25 +pushl $.LC30 +call printf +addl $4,%esp +movl $0,%eax +.LC24: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf31: +.size print,.Lf31-print +.bss +.globl x +.align 4 +.type x,@object +.size x,32 +.comm x,32 +.globl rows +.align 4 +.type rows,@object +.size rows,32 +.comm rows,32 +.globl down +.align 4 +.type down,@object +.size down,60 +.comm down,60 +.globl up +.align 4 +.type up,@object +.size up,60 +.comm up,60 +.data +.align 1 +.LC30: +.byte 10 +.byte 0 +.align 1 +.LC29: +.byte 37 +.byte 99 +.byte 32 +.byte 0 +.text +.ident "LCC: 4.1" diff --git a/code/tools/lcc/x86/linux/tst/array.1bk b/code/tools/lcc/x86/linux/tst/array.1bk new file mode 100644 index 0000000..4d3817c --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/array.1bk @@ -0,0 +1,4 @@ + 0 1 2 3 1000 1001 1002 1003 2000 2001 2002 2003 + 0 1 2 3 1000 1001 1002 1003 2000 2001 2002 2003 + 0 1 2 3 1000 1001 1002 1003 2000 2001 2002 2003 + 0 1 2 3 1000 1001 1002 1003 2000 2001 2002 2003 diff --git a/code/tools/lcc/x86/linux/tst/array.2bk b/code/tools/lcc/x86/linux/tst/array.2bk new file mode 100644 index 0000000..c8cf31e --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/array.2bk @@ -0,0 +1,2 @@ +tst/array.c:33: warning: missing return value +tst/array.c:48: warning: missing return value diff --git a/code/tools/lcc/x86/linux/tst/array.sbk b/code/tools/lcc/x86/linux/tst/array.sbk new file mode 100644 index 0000000..d50395c --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/array.sbk @@ -0,0 +1,235 @@ +.globl main +.text +.align 16 +.type main,@function +main: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $60,%esp +movl $0,-8(%ebp) +.LC2: +movl $0,-4(%ebp) +.LC6: +movl -4(%ebp),%edi +movl -8(%ebp),%esi +movl %esi,%ebx +sall $4,%ebx +leal x(%ebx),%ebx +imul $1000,%esi,%esi +leal (%edi,%esi),%esi +movl %esi,(%ebx,%edi,4) +.LC7: +incl -4(%ebp) +cmpl $4,-4(%ebp) +jl .LC6 +movl -8(%ebp),%edi +movl %edi,%esi +sall $4,%esi +leal x(%esi),%esi +movl %esi,y(,%edi,4) +.LC3: +incl -8(%ebp) +cmpl $3,-8(%ebp) +jl .LC2 +call f +movl $0,-8(%ebp) +.LC10: +movl -8(%ebp),%edi +movl %edi,%esi +sall $4,%esi +leal -60(%ebp),%ebx +leal (%ebx,%esi),%esi +movl %esi,-12(%ebp) +movl %esi,y(,%edi,4) +movl $0,-4(%ebp) +.LC14: +movl -4(%ebp),%edi +leal (,%edi,4),%edi +movl -12(%ebp),%esi +movl -8(%ebp),%ebx +sall $4,%ebx +leal x(%ebx),%ebx +movl (%ebx,%edi),%ebx +movl %ebx,(%esi,%edi) +.LC15: +incl -4(%ebp) +cmpl $4,-4(%ebp) +jl .LC14 +.LC11: +incl -8(%ebp) +cmpl $3,-8(%ebp) +jl .LC10 +pushl $y +leal -60(%ebp),%edi +pushl %edi +call g +addl $8,%esp +movl $0,%eax +.LC1: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf18: +.size main,.Lf18-main +.globl f +.align 16 +.type f,@function +f: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $8,%esp +movl $0,-8(%ebp) +.LC20: +movl $0,-4(%ebp) +.LC24: +movl -4(%ebp),%edi +movl -8(%ebp),%esi +sall $4,%esi +leal x(%esi),%esi +pushl (%esi,%edi,4) +pushl $.LC28 +call printf +addl $8,%esp +.LC25: +incl -4(%ebp) +cmpl $4,-4(%ebp) +jl .LC24 +.LC21: +incl -8(%ebp) +cmpl $3,-8(%ebp) +jl .LC20 +pushl $.LC29 +call printf +addl $4,%esp +movl $0,-8(%ebp) +.LC30: +movl $0,-4(%ebp) +.LC34: +movl -4(%ebp),%edi +movl -8(%ebp),%esi +movl y(,%esi,4),%esi +pushl (%esi,%edi,4) +pushl $.LC28 +call printf +addl $8,%esp +.LC35: +incl -4(%ebp) +cmpl $4,-4(%ebp) +jl .LC34 +.LC31: +incl -8(%ebp) +cmpl $3,-8(%ebp) +jl .LC30 +pushl $.LC29 +call printf +addl $4,%esp +movl $0,%eax +.LC19: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf38: +.size f,.Lf38-f +.globl g +.align 16 +.type g,@function +g: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $8,%esp +movl $0,-8(%ebp) +.LC40: +movl $0,-4(%ebp) +.LC44: +movl -4(%ebp),%edi +movl -8(%ebp),%esi +sall $4,%esi +movl 20(%ebp),%ebx +leal (%ebx,%esi),%esi +pushl (%esi,%edi,4) +pushl $.LC28 +call printf +addl $8,%esp +.LC45: +incl -4(%ebp) +cmpl $4,-4(%ebp) +jl .LC44 +.LC41: +incl -8(%ebp) +cmpl $3,-8(%ebp) +jl .LC40 +pushl $.LC29 +call printf +addl $4,%esp +movl $0,-8(%ebp) +.LC48: +movl $0,-4(%ebp) +.LC52: +movl -4(%ebp),%edi +movl -8(%ebp),%esi +movl 24(%ebp),%ebx +movl (%ebx,%esi,4),%esi +pushl (%esi,%edi,4) +pushl $.LC28 +call printf +addl $8,%esp +.LC53: +incl -4(%ebp) +cmpl $4,-4(%ebp) +jl .LC52 +.LC49: +incl -8(%ebp) +cmpl $3,-8(%ebp) +jl .LC48 +pushl $.LC29 +call printf +addl $4,%esp +movl $0,%eax +.LC39: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf56: +.size g,.Lf56-g +.bss +.globl y +.align 4 +.type y,@object +.size y,12 +.comm y,12 +.globl x +.align 4 +.type x,@object +.size x,48 +.comm x,48 +.data +.align 1 +.LC29: +.byte 10 +.byte 0 +.align 1 +.LC28: +.byte 32 +.byte 37 +.byte 100 +.byte 0 +.text +.ident "LCC: 4.1" diff --git a/code/tools/lcc/x86/linux/tst/cf.1bk b/code/tools/lcc/x86/linux/tst/cf.1bk new file mode 100644 index 0000000..9e331c5 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/cf.1bk @@ -0,0 +1,51 @@ +char freq +011 8.1 +012 6.1 +040 11.9 +! 0.2 +" 1.5 +% 0.6 +& 0.4 +' 0.4 +( 2.9 +) 2.9 +* 0.8 ++ 1.3 +, 1.3 +- 0.4 +. 0.6 +/ 1.0 +0 2.5 +1 1.9 +2 0.6 +3 0.2 +7 0.4 +8 0.2 +; 3.8 +< 0.8 += 2.7 +> 0.2 +[ 1.5 +\ 0.8 +] 1.5 +a 3.1 +c 4.4 +e 2.3 +f 6.0 +g 1.3 +h 1.0 +i 5.0 +l 1.0 +m 0.2 +n 3.3 +o 2.1 +p 1.0 +q 0.4 +r 4.2 +s 0.6 +t 3.8 +u 1.2 +v 0.6 +w 0.2 +{ 0.6 +} 0.6 diff --git a/code/tools/lcc/x86/linux/tst/cf.2bk b/code/tools/lcc/x86/linux/tst/cf.2bk new file mode 100644 index 0000000..e69de29 diff --git a/code/tools/lcc/x86/linux/tst/cf.sbk b/code/tools/lcc/x86/linux/tst/cf.sbk new file mode 100644 index 0000000..9058d0b --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/cf.sbk @@ -0,0 +1,161 @@ +.globl main +.text +.align 16 +.type main,@function +main: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $24,%esp +cmpl $1,20(%ebp) +jg .LC2 +flds .LC4 +fstps -16(%ebp) +jmp .LC3 +.LC2: +movl 24(%ebp),%edi +pushl 4(%edi) +call atof +addl $4,%esp +fstps -20(%ebp) +flds -20(%ebp) +fdivs .LC5 +fstps -16(%ebp) +.LC3: +movl $0,-4(%ebp) +.LC6: +movl -4(%ebp),%edi +leal 1(%edi),%esi +movl %esi,-4(%ebp) +flds .LC4 +fstps f(,%edi,4) +.LC7: +cmpl $127,-4(%ebp) +jle .LC6 +movl $0,-8(%ebp) +jmp .LC11 +.LC10: +movl -12(%ebp),%edi +leal f(,%edi,4),%edi +flds (,%edi) +fadds .LC13 +fstps (,%edi) +incl -8(%ebp) +.LC11: +call getchar +movl %eax,-12(%ebp) +cmpl $-1,%eax +jne .LC10 +pushl $.LC14 +call printf +addl $4,%esp +movl $0,-4(%ebp) +.LC15: +movl -4(%ebp),%edi +flds f(,%edi,4) +fstps -24(%ebp) +flds .LC4 +fcomps -24(%ebp) +fstsw %ax +sahf +je .LC19 +flds -24(%ebp) +fildl -8(%ebp) +fdivp %st(1),%st +flds -16(%ebp) +fcompp +fstsw %ax +sahf +ja .LC19 +cmpl $32,-4(%ebp) +jg .LC21 +pushl -4(%ebp) +pushl $.LC23 +call printf +addl $8,%esp +jmp .LC22 +.LC21: +pushl -4(%ebp) +pushl $.LC24 +call printf +addl $8,%esp +.LC22: +flds .LC5 +movl -4(%ebp),%edi +fmuls f(,%edi,4) +fildl -8(%ebp) +fdivp %st(1),%st +subl $8,%esp +fstpl (%esp) +pushl $.LC25 +call printf +addl $12,%esp +.LC19: +.LC16: +incl -4(%ebp) +cmpl $127,-4(%ebp) +jle .LC15 +movl $0,%eax +.LC1: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf26: +.size main,.Lf26-main +.bss +.globl f +.align 4 +.type f,@object +.size f,512 +.comm f,512 +.data +.align 1 +.LC25: +.byte 9 +.byte 37 +.byte 46 +.byte 49 +.byte 102 +.byte 10 +.byte 0 +.align 1 +.LC24: +.byte 37 +.byte 99 +.byte 0 +.align 1 +.LC23: +.byte 37 +.byte 48 +.byte 51 +.byte 111 +.byte 0 +.align 1 +.LC14: +.byte 99 +.byte 104 +.byte 97 +.byte 114 +.byte 9 +.byte 102 +.byte 114 +.byte 101 +.byte 113 +.byte 10 +.byte 0 +.align 4 +.LC13: +.long 1065353216 +.align 4 +.LC5: +.long 1120403456 +.align 4 +.LC4: +.long 0 +.text +.ident "LCC: 4.1" diff --git a/code/tools/lcc/x86/linux/tst/cq.1bk b/code/tools/lcc/x86/linux/tst/cq.1bk new file mode 100644 index 0000000..f0e8b35 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/cq.1bk @@ -0,0 +1,48 @@ +Section s22 returned 0. +Decimal and octal/hex constants sometimes give + different results when assigned to longs. +Decimal and octal/hex constants sometimes give + different results when assigned to longs. +Section s241 returned 0. +Section s243 returned 0. +Section s244 returned 0. +Section s25 returned 0. + 8 bits in chars. + 32 bits in ints. + 16 bits in shorts. + 32 bits in longs. + 32 bits in unsigneds. + 32 bits in floats. + 64 bits in doubles. +1.192093e-07 is the least number that can be added to 1. (float). +2.220446e-16 is the least number that can be added to 1. (double). +Section s26 returned 0. +Section s4 returned 0. +Section s61 returned 0. +Section s626 returned 0. +Section s71 returned 0. +Section s72 returned 0. +Section s757 returned 0. +Section s7813 returned 0. +Section s714 returned 0. +Section s715 returned 0. +Register count for char is unreliable. +Register count for pointer is unreliable. +Register count for int is unreliable. +Section s81 returned 0. +Section s84 returned 0. +char alignment: 1 +short alignment: 2 +int alignment: 4 +long alignment: 4 +unsigned alignment: 4 +float alignment: 4 +double alignment: 4 +Sign extension in fields +Be especially careful with 1-bit fields! +Section s85 returned 0. +Section s86 returned 0. +Section s88 returned 0. +Section s9 returned 0. + +No errors detected. diff --git a/code/tools/lcc/x86/linux/tst/cq.2bk b/code/tools/lcc/x86/linux/tst/cq.2bk new file mode 100644 index 0000000..7c6ba5e --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/cq.2bk @@ -0,0 +1,25 @@ +tst/cq.c:394: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:394: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:394: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:395: warning: overflow in constant `4294967296' +tst/cq.c:395: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:395: warning: overflow in constant `040000000000' +tst/cq.c:395: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:395: warning: overflow in constant `0x100000000' +tst/cq.c:395: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:396: warning: overflow in constant `68719476735' +tst/cq.c:396: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:396: warning: overflow in constant `0777777777777' +tst/cq.c:396: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:396: warning: overflow in constant `0xfffffffff' +tst/cq.c:396: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:397: warning: overflow in constant `68719476736' +tst/cq.c:397: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:397: warning: overflow in constant `01000000000000' +tst/cq.c:397: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:397: warning: overflow in constant `0x1000000000' +tst/cq.c:397: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:533: warning: missing return value +tst/cq.c:1169: warning: missing return value +tst/cq.c:5294: warning: unreachable code +tst/cq.c:5303: warning: missing return value diff --git a/code/tools/lcc/x86/linux/tst/cq.sbk b/code/tools/lcc/x86/linux/tst/cq.sbk new file mode 100644 index 0000000..dfe165f --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/cq.sbk @@ -0,0 +1,15756 @@ +.data +.align 4 +.type sec.2,@object +sec.2: +.long s22 +.long s241 +.long s243 +.long s244 +.long s25 +.long s26 +.long s4 +.long s61 +.long s626 +.long s71 +.long s72 +.long s757 +.long s7813 +.long s714 +.long s715 +.long s81 +.long s84 +.long s85 +.long s86 +.long s88 +.long s9 +.bss +.size sec.2,84 +.align 4 +.type d0.3,@object +.size d0.3,68 +.lcomm d0.3,68 +.align 4 +.type pd0.4,@object +.size pd0.4,4 +.lcomm pd0.4,4 +.globl main +.text +.align 16 +.type main,@function +main: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $4,%esp +movl $1,d0.3+36 +movl $1,d0.3+40 +movl $1,d0.3+44 +movl $1,d0.3+48 +leal d0.3,%edi +movl %edi,pd0.4 +movl $0,-4(%ebp) +jmp .LC12 +.LC9: +pushl pd0.4 +movl -4(%ebp),%edi +call *sec.2(,%edi,4) +addl $4,%esp +movl %eax,d0.3+52 +movl d0.3+56,%edi +movl d0.3+52,%esi +leal (%esi,%edi),%edi +movl %edi,d0.3+56 +cmpl $0,d0.3+36 +je .LC17 +pushl d0.3+52 +pushl $d0.3+60 +pushl $.LC20 +call printf +addl $12,%esp +.LC17: +.LC10: +incl -4(%ebp) +.LC12: +movl -4(%ebp),%edi +cmpl $21,%edi +jb .LC9 +cmpl $0,d0.3+56 +jne .LC23 +pushl $.LC26 +call printf +addl $4,%esp +jmp .LC24 +.LC23: +pushl $.LC27 +call printf +addl $4,%esp +.LC24: +movl $0,%eax +.LC1: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf28: +.size main,.Lf28-main +.data +.align 1 +.type s22er.30,@object +s22er.30: +.byte 115 +.byte 50 +.byte 50 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size s22er.30,10 +.align 1 +.type qs22.31,@object +.size qs22.31,8 +qs22.31: +.byte 115 +.byte 50 +.byte 50 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s22 +.text +.align 16 +.type s22,@function +s22: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $32,%esp +movl $0,-12(%ebp) +leal qs22.31,%edi +movl %edi,-4(%ebp) +movl 20(%ebp),%edi +leal 60(%edi),%edi +movl %edi,-8(%ebp) +.LC32: +.LC33: +movl -8(%ebp),%edi +leal 1(%edi),%esi +movl %esi,-8(%ebp) +movl -4(%ebp),%esi +leal 1(%esi),%ebx +movl %ebx,-4(%ebp) +movb (,%esi),%bl +movb %bl,(,%edi) +movsbl %bl,%edi +cmpl $0,%edi +jne .LC32 +movl $1,-16(%ebp) +movl $2,-24(%ebp) +movl $3,-28(%ebp) +movl $4,-20(%ebp) +movl -16(%ebp),%edi +movl -24(%ebp),%esi +leal (%esi,%edi),%edi +movl -28(%ebp),%esi +leal (%esi,%edi),%edi +movl -20(%ebp),%esi +leal (%esi,%edi),%edi +cmpl $10,%edi +je .LC35 +incl -12(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC37 +pushl $1 +pushl $s22er.30 +call printf +addl $8,%esp +.LC37: +.LC35: +movl $2,-32(%ebp) +movl -16(%ebp),%edi +cmpl %edi,-32(%ebp) +jne .LC39 +addl $4,-12(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC41 +pushl $4 +pushl $s22er.30 +call printf +addl $8,%esp +.LC41: +.LC39: +movl -12(%ebp),%eax +.LC29: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf43: +.size s22,.Lf43-s22 +.data +.align 1 +.type s241er.45,@object +s241er.45: +.byte 115 +.byte 50 +.byte 52 +.byte 49 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size s241er.45,11 +.align 1 +.type qs241.46,@object +.size qs241.46,8 +qs241.46: +.byte 115 +.byte 50 +.byte 52 +.byte 49 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.align 4 +.type g.47,@object +.size g.47,156 +g.47: +.long 0 +.long 0 +.long 0 +.long 0 +.long 0 +.long 0 +.long 0 +.long 0 +.long 0 +.long 0 +.long 0 +.long 0 +.long 0 +.long 0 +.long 0 +.long 0 +.long 0 +.long 0 +.long 6 +.long 0 +.long 8 +.long 0 +.long 12 +.long 0 +.long 16 +.long 0 +.long 18 +.long 0 +.long 20 +.long 0 +.long 24 +.long 0 +.long 28 +.long 0 +.long 30 +.long 0 +.long 32 +.long 0 +.long 36 +.globl s241 +.text +.align 16 +.type s241,@function +s241: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $488,%esp +movl $0,-484(%ebp) +movl $0,-488(%ebp) +leal qs241.46,%edi +movl %edi,-476(%ebp) +movl 20(%ebp),%edi +leal 60(%edi),%edi +movl %edi,-480(%ebp) +.LC48: +.LC49: +movl -480(%ebp),%edi +leal 1(%edi),%esi +movl %esi,-480(%ebp) +movl -476(%ebp),%esi +leal 1(%esi),%ebx +movl %ebx,-476(%ebp) +movb (,%esi),%bl +movb %bl,(,%edi) +movsbl %bl,%edi +cmpl $0,%edi +jne .LC48 +jmp .LC51 +incl -484(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC53 +pushl $1 +pushl $s241er.45 +call printf +addl $8,%esp +.LC53: +.LC51: +jmp .LC55 +addl $2,-484(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC57 +pushl $2 +pushl $s241er.45 +call printf +addl $8,%esp +.LC57: +.LC55: +jmp .LC59 +addl $4,-484(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC61 +pushl $4 +pushl $s241er.45 +call printf +addl $8,%esp +.LC61: +.LC59: +jmp .LC63 +addl $8,-484(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC65 +pushl $8 +pushl $s241er.45 +call printf +addl $8,%esp +.LC65: +.LC63: +movl $0,-4(%ebp) +.LC67: +movl -4(%ebp),%edi +movl %edi,g.47(,%edi,4) +.LC68: +incl -4(%ebp) +cmpl $17,-4(%ebp) +jl .LC67 +movl $18,-4(%ebp) +.LC71: +movl -4(%ebp),%edi +leal g.47(,%edi,4),%edi +pushl (,%edi) +call pow2 +addl $4,%esp +movl %eax,(,%edi) +movl -4(%ebp),%edi +leal (,%edi,4),%edi +movl g.47(%edi),%esi +subl $1,%esi +movl %esi,g.47-4(%edi) +addl $2,-4(%ebp) +.LC72: +cmpl $39,-4(%ebp) +jl .LC71 +movl $0,-160(%ebp) +movl $0,-316(%ebp) +movl $0,-472(%ebp) +movl $1,-156(%ebp) +movl $1,-312(%ebp) +movl $1,-468(%ebp) +movl $2,-152(%ebp) +movl $2,-308(%ebp) +movl $2,-464(%ebp) +movl $3,-148(%ebp) +movl $3,-304(%ebp) +movl $3,-460(%ebp) +movl $4,-144(%ebp) +movl $4,-300(%ebp) +movl $4,-456(%ebp) +movl $5,-140(%ebp) +movl $5,-296(%ebp) +movl $5,-452(%ebp) +movl $6,-136(%ebp) +movl $6,-292(%ebp) +movl $6,-448(%ebp) +movl $7,-132(%ebp) +movl $7,-288(%ebp) +movl $7,-444(%ebp) +movl $8,-128(%ebp) +movl $8,-284(%ebp) +movl $8,-440(%ebp) +movl $9,-124(%ebp) +movl $9,-280(%ebp) +movl $9,-436(%ebp) +movl $10,-120(%ebp) +movl $10,-276(%ebp) +movl $10,-432(%ebp) +movl $11,-116(%ebp) +movl $11,-272(%ebp) +movl $11,-428(%ebp) +movl $12,-112(%ebp) +movl $12,-268(%ebp) +movl $12,-424(%ebp) +movl $13,-108(%ebp) +movl $13,-264(%ebp) +movl $13,-420(%ebp) +movl $14,-104(%ebp) +movl $14,-260(%ebp) +movl $14,-416(%ebp) +movl $15,-100(%ebp) +movl $15,-256(%ebp) +movl $15,-412(%ebp) +movl $16,-96(%ebp) +movl $16,-252(%ebp) +movl $16,-408(%ebp) +movl $63,-92(%ebp) +movl $63,-248(%ebp) +movl $63,-404(%ebp) +movl $64,-88(%ebp) +movl $64,-244(%ebp) +movl $64,-400(%ebp) +movl $255,-84(%ebp) +movl $255,-240(%ebp) +movl $255,-396(%ebp) +movl $256,-80(%ebp) +movl $256,-236(%ebp) +movl $256,-392(%ebp) +movl $4095,-76(%ebp) +movl $4095,-232(%ebp) +movl $4095,-388(%ebp) +movl $4096,-72(%ebp) +movl $4096,-228(%ebp) +movl $4096,-384(%ebp) +movl $65535,-68(%ebp) +movl $65535,-224(%ebp) +movl $65535,-380(%ebp) +movl $65536,-64(%ebp) +movl $65536,-220(%ebp) +movl $65536,-376(%ebp) +movl $262143,-60(%ebp) +movl $262143,-216(%ebp) +movl $262143,-372(%ebp) +movl $262144,-56(%ebp) +movl $262144,-212(%ebp) +movl $262144,-368(%ebp) +movl $1048575,-52(%ebp) +movl $1048575,-208(%ebp) +movl $1048575,-364(%ebp) +movl $1048576,-48(%ebp) +movl $1048576,-204(%ebp) +movl $1048576,-360(%ebp) +movl $16777215,-44(%ebp) +movl $16777215,-200(%ebp) +movl $16777215,-356(%ebp) +movl $16777216,-40(%ebp) +movl $16777216,-196(%ebp) +movl $16777216,-352(%ebp) +movl $268435455,-36(%ebp) +movl $268435455,-192(%ebp) +movl $268435455,-348(%ebp) +movl $268435456,-32(%ebp) +movl $268435456,-188(%ebp) +movl $268435456,-344(%ebp) +movl $1073741823,-28(%ebp) +movl $1073741823,-184(%ebp) +movl $1073741823,-340(%ebp) +movl $1073741824,-24(%ebp) +movl $1073741824,-180(%ebp) +movl $1073741824,-336(%ebp) +movl $0xffffffff,%edi +movl %edi,-20(%ebp) +movl $0xffffffff,%edi +movl %edi,-176(%ebp) +movl $0xffffffff,%edi +movl %edi,-332(%ebp) +movl $0xffffffff,%edi +movl %edi,-16(%ebp) +movl $0xffffffff,%edi +movl %edi,-172(%ebp) +movl $0xffffffff,%edi +movl %edi,-328(%ebp) +movl $0xffffffff,%edi +movl %edi,-12(%ebp) +movl $0xffffffff,%edi +movl %edi,-168(%ebp) +movl $0xffffffff,%edi +movl %edi,-324(%ebp) +movl $0xffffffff,%edi +movl %edi,-8(%ebp) +movl $0xffffffff,%edi +movl %edi,-164(%ebp) +movl $0xffffffff,%edi +movl %edi,-320(%ebp) +movl $0,-4(%ebp) +.LC190: +movl -4(%ebp),%edi +leal (,%edi,4),%edi +leal -160(%ebp),%esi +movl (%esi,%edi),%esi +cmpl %esi,g.47(%edi) +jne .LC197 +leal -316(%ebp),%ebx +movl (%ebx,%edi),%ebx +cmpl %ebx,%esi +jne .LC197 +leal -472(%ebp),%esi +cmpl (%esi,%edi),%ebx +je .LC194 +.LC197: +movl 20(%ebp),%edi +cmpl $0,40(%edi) +je .LC198 +pushl $.LC200 +call printf +addl $4,%esp +pushl $.LC201 +call printf +addl $4,%esp +.LC198: +.LC194: +.LC191: +incl -4(%ebp) +cmpl $39,-4(%ebp) +jl .LC190 +cmpl $0,-488(%ebp) +je .LC202 +movl $16,-484(%ebp) +.LC202: +movl -484(%ebp),%eax +.LC44: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf204: +.size s241,.Lf204-s241 +.globl pow2 +.align 16 +.type pow2,@function +pow2: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $4,%esp +movl $1,-4(%ebp) +jmp .LC207 +.LC206: +sall $1,-4(%ebp) +.LC207: +movl 20(%ebp),%edi +movl %edi,%esi +subl $1,%esi +movl %esi,20(%ebp) +cmpl $0,%edi +jne .LC206 +movl -4(%ebp),%eax +.LC205: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf209: +.size pow2,.Lf209-pow2 +.data +.align 1 +.type s243er.211,@object +s243er.211: +.byte 115 +.byte 50 +.byte 52 +.byte 51 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size s243er.211,11 +.align 1 +.type qs243.212,@object +.size qs243.212,8 +qs243.212: +.byte 115 +.byte 50 +.byte 52 +.byte 51 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s243 +.text +.align 16 +.type s243,@function +s243: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $268,%esp +movl $0,-268(%ebp) +leal qs243.212,%edi +movl %edi,-260(%ebp) +movl 20(%ebp),%edi +leal 60(%edi),%edi +movl %edi,-264(%ebp) +.LC213: +.LC214: +movl -264(%ebp),%edi +leal 1(%edi),%esi +movl %esi,-264(%ebp) +movl -260(%ebp),%esi +leal 1(%esi),%ebx +movl %ebx,-260(%ebp) +movb (,%esi),%bl +movb %bl,(,%edi) +movsbl %bl,%edi +cmpl $0,%edi +jne .LC213 +leal -256(%ebp),%edi +pushl %edi +call zerofill +addl $4,%esp +movb $1,-159(%ebp) +movb $1,-191(%ebp) +movb $1,-130(%ebp) +movb $1,-208(%ebp) +movb $1,-158(%ebp) +movb $1,-190(%ebp) +movb $1,-223(%ebp) +movb $1,-207(%ebp) +movb $1,-157(%ebp) +movb $1,-189(%ebp) +movb $1,-222(%ebp) +movb $1,-206(%ebp) +movb $1,-156(%ebp) +movb $1,-188(%ebp) +movb $1,-221(%ebp) +movb $1,-205(%ebp) +movb $1,-155(%ebp) +movb $1,-187(%ebp) +movb $1,-219(%ebp) +movb $1,-204(%ebp) +movb $1,-154(%ebp) +movb $1,-186(%ebp) +movb $1,-218(%ebp) +movb $1,-203(%ebp) +movb $1,-153(%ebp) +movb $1,-185(%ebp) +movb $1,-216(%ebp) +movb $1,-202(%ebp) +movb $1,-152(%ebp) +movb $1,-184(%ebp) +movb $1,-215(%ebp) +movb $1,-201(%ebp) +movb $1,-151(%ebp) +movb $1,-183(%ebp) +movb $1,-161(%ebp) +movb $1,-200(%ebp) +movb $1,-150(%ebp) +movb $1,-182(%ebp) +movb $1,-195(%ebp) +movb $1,-199(%ebp) +movb $1,-149(%ebp) +movb $1,-181(%ebp) +movb $1,-211(%ebp) +movb $1,-148(%ebp) +movb $1,-180(%ebp) +movb $1,-162(%ebp) +movb $1,-147(%ebp) +movb $1,-179(%ebp) +movb $1,-132(%ebp) +movb $1,-246(%ebp) +movb $1,-146(%ebp) +movb $1,-178(%ebp) +movb $1,-247(%ebp) +movb $1,-145(%ebp) +movb $1,-177(%ebp) +movb $1,-133(%ebp) +movb $1,-248(%ebp) +movb $1,-144(%ebp) +movb $1,-176(%ebp) +movb $1,-131(%ebp) +movb $1,-243(%ebp) +movb $1,-143(%ebp) +movb $1,-175(%ebp) +movb $1,-165(%ebp) +movb $1,-244(%ebp) +movb $1,-142(%ebp) +movb $1,-174(%ebp) +movb $1,-163(%ebp) +movb $1,-141(%ebp) +movb $1,-173(%ebp) +movb $1,-213(%ebp) +movb $1,-164(%ebp) +movb $1,-140(%ebp) +movb $1,-172(%ebp) +movb $1,-197(%ebp) +movb $1,-217(%ebp) +movb $1,-139(%ebp) +movb $1,-171(%ebp) +movb $1,-214(%ebp) +movb $1,-138(%ebp) +movb $1,-170(%ebp) +movb $1,-198(%ebp) +movb $1,-256(%ebp) +movb $1,-137(%ebp) +movb $1,-169(%ebp) +movb $1,-196(%ebp) +movb $1,-224(%ebp) +movb $1,-136(%ebp) +movb $1,-168(%ebp) +movb $1,-194(%ebp) +movb $1,-135(%ebp) +movb $1,-167(%ebp) +movb $1,-212(%ebp) +movb $1,-134(%ebp) +movb $1,-166(%ebp) +movb $1,-210(%ebp) +movb $1,-193(%ebp) +movb $1,-209(%ebp) +leal -256(%ebp),%edi +pushl %edi +call sumof +addl $4,%esp +cmpl $98,%eax +je .LC313 +incl -268(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC315 +pushl $1 +pushl $s243er.211 +call printf +addl $8,%esp +.LC315: +.LC313: +jmp .LC317 +addl $8,-268(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC319 +pushl $8 +pushl $s243er.211 +call printf +addl $8,%esp +.LC319: +.LC317: +movl -268(%ebp),%eax +.LC210: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf321: +.size s243,.Lf321-s243 +.globl zerofill +.align 16 +.type zerofill,@function +zerofill: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $4,%esp +movl $0,-4(%ebp) +.LC323: +movl 20(%ebp),%edi +leal 1(%edi),%esi +movl %esi,20(%ebp) +movb $0,(,%edi) +.LC324: +incl -4(%ebp) +cmpl $256,-4(%ebp) +jl .LC323 +movl $0,%eax +.LC322: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf327: +.size zerofill,.Lf327-zerofill +.globl sumof +.align 16 +.type sumof,@function +sumof: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $12,%esp +movl 20(%ebp),%edi +movl %edi,-12(%ebp) +movl $0,-4(%ebp) +movl $0,-8(%ebp) +.LC329: +movl -12(%ebp),%edi +leal 1(%edi),%esi +movl %esi,-12(%ebp) +movsbl (,%edi),%edi +addl %edi,-4(%ebp) +.LC330: +incl -8(%ebp) +cmpl $256,-8(%ebp) +jl .LC329 +movl -4(%ebp),%eax +.LC328: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf333: +.size sumof,.Lf333-sumof +.data +.align 1 +.type s244er.335,@object +s244er.335: +.byte 115 +.byte 50 +.byte 52 +.byte 52 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size s244er.335,11 +.align 1 +.type qs244.336,@object +.size qs244.336,8 +qs244.336: +.byte 115 +.byte 50 +.byte 52 +.byte 52 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s244 +.text +.align 16 +.type s244,@function +s244: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $92,%esp +leal qs244.336,%edi +movl %edi,-72(%ebp) +movl 20(%ebp),%edi +leal 60(%edi),%edi +movl %edi,-76(%ebp) +.LC337: +.LC338: +movl -76(%ebp),%edi +leal 1(%edi),%esi +movl %esi,-76(%ebp) +movl -72(%ebp),%esi +leal 1(%esi),%ebx +movl %ebx,-72(%ebp) +movb (,%esi),%bl +movb %bl,(,%edi) +movsbl %bl,%edi +cmpl $0,%edi +jne .LC337 +movl $0,-84(%ebp) +movl $0,-80(%ebp) +fldl .LC340 +fstpl -68(%ebp) +fldl .LC340 +fstpl -60(%ebp) +fldl .LC340 +fstpl -52(%ebp) +fldl .LC340 +fstpl -44(%ebp) +fldl .LC340 +fstpl -36(%ebp) +fldl .LC340 +fstpl -28(%ebp) +fldl .LC340 +fstpl -20(%ebp) +fldl .LC340 +fstpl -12(%ebp) +movl $0,-80(%ebp) +movl $0,-4(%ebp) +.LC348: +movl -4(%ebp),%edi +leal (,%edi,8),%edi +leal -68(%ebp),%esi +leal -60(%ebp),%ebx +fldl (%ebx,%edi) +fcompl (%esi,%edi) +fstsw %ax +sahf +je .LC352 +movl $1,-80(%ebp) +.LC352: +.LC349: +incl -4(%ebp) +cmpl $7,-4(%ebp) +jl .LC348 +cmpl $0,-80(%ebp) +je .LC355 +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC357 +pushl $1 +pushl $s244er.335 +call printf +addl $8,%esp +.LC357: +incl -84(%ebp) +.LC355: +jmp .LC359 +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC361 +pushl $2 +pushl $s244er.335 +call printf +addl $8,%esp +.LC361: +addl $2,-84(%ebp) +.LC359: +movl -84(%ebp),%eax +.LC334: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf363: +.size s244,.Lf363-s244 +.data +.align 1 +.type s25er.365,@object +s25er.365: +.byte 115 +.byte 50 +.byte 53 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size s25er.365,10 +.align 1 +.type qs25.366,@object +.size qs25.366,8 +qs25.366: +.byte 115 +.byte 50 +.byte 53 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s25 +.text +.align 16 +.type s25,@function +s25: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $28,%esp +leal qs25.366,%edi +movl %edi,-16(%ebp) +movl 20(%ebp),%edi +leal 60(%edi),%edi +movl %edi,-20(%ebp) +.LC367: +.LC368: +movl -20(%ebp),%edi +leal 1(%edi),%esi +movl %esi,-20(%ebp) +movl -16(%ebp),%esi +leal 1(%esi),%ebx +movl %ebx,-16(%ebp) +movb (,%esi),%bl +movb %bl,(,%edi) +movsbl %bl,%edi +cmpl $0,%edi +jne .LC367 +movl $0,-24(%ebp) +leal .LC370,%edi +movl %edi,-8(%ebp) +movl -8(%ebp),%edi +movsbl 1(%edi),%esi +movsbl (,%edi),%ebx +cmpl %esi,%ebx +jne .LC374 +movsbl 2(%edi),%edi +cmpl %edi,%esi +jne .LC374 +cmpl $46,%edi +je .LC371 +.LC374: +incl -24(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC375 +pushl $1 +pushl $s25er.365 +call printf +addl $8,%esp +.LC375: +.LC371: +movl -8(%ebp),%edi +movsbl 3(%edi),%edi +cmpl $0,%edi +je .LC377 +addl $4,-24(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC379 +pushl $4 +pushl $s25er.365 +call printf +addl $8,%esp +.LC379: +.LC377: +movsbl .LC383+1,%edi +cmpl $34,%edi +je .LC381 +addl $8,-24(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC385 +pushl $8 +pushl $s25er.365 +call printf +addl $8,%esp +.LC385: +.LC381: +leal .LC387,%edi +movl %edi,-8(%ebp) +movl -8(%ebp),%edi +movsbl (,%edi),%esi +cmpl $10,%esi +jne .LC395 +movsbl 1(%edi),%esi +cmpl $9,%esi +jne .LC395 +movsbl 2(%edi),%esi +cmpl $8,%esi +jne .LC395 +movsbl 3(%edi),%esi +cmpl $13,%esi +jne .LC395 +movsbl 4(%edi),%esi +cmpl $12,%esi +jne .LC395 +movsbl 5(%edi),%esi +cmpl $92,%esi +jne .LC395 +movsbl 6(%edi),%edi +cmpl $39,%edi +je .LC388 +.LC395: +addl $16,-24(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC396 +pushl $16 +pushl $s25er.365 +call printf +addl $8,%esp +.LC396: +.LC388: +leal .LC398,%edi +movl %edi,-12(%ebp) +movl %edi,-8(%ebp) +movl $0,-28(%ebp) +movl $0,-4(%ebp) +jmp .LC402 +.LC399: +movl -4(%ebp),%edi +movl -8(%ebp),%esi +movsbl (%esi,%edi),%esi +movl -12(%ebp),%ebx +movsbl (%ebx,%edi),%edi +cmpl %edi,%esi +je .LC403 +movl $1,-28(%ebp) +.LC403: +.LC400: +incl -4(%ebp) +.LC402: +movl -4(%ebp),%edi +cmpl $7,%edi +jb .LC399 +cmpl $0,-28(%ebp) +je .LC405 +addl $32,-24(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC407 +pushl $32 +pushl $s25er.365 +call printf +addl $8,%esp +.LC407: +.LC405: +movl -24(%ebp),%eax +.LC364: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf409: +.size s25,.Lf409-s25 +.data +.align 1 +.type qs26.411,@object +.size qs26.411,8 +qs26.411: +.byte 115 +.byte 50 +.byte 54 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.align 1 +.type s.412,@object +s.412: +.byte 37 +.byte 51 +.byte 100 +.byte 32 +.byte 98 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 105 +.byte 110 +.byte 32 +.byte 37 +.byte 115 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.size s.412,18 +.align 1 +.type s2.413,@object +s2.413: +.byte 37 +.byte 101 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 108 +.byte 101 +.byte 97 +.byte 115 +.byte 116 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 99 +.byte 97 +.byte 110 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 97 +.byte 100 +.byte 100 +.byte 101 +.byte 100 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 49 +.byte 46 +.byte 32 +.byte 40 +.byte 37 +.byte 115 +.byte 41 +.byte 46 +.byte 10 +.byte 0 +.size s2.413,54 +.globl s26 +.text +.align 16 +.type s26,@function +s26: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $56,%esp +leal qs26.411,%edi +movl %edi,-36(%ebp) +movl 20(%ebp),%edi +leal 60(%edi),%edi +movl %edi,-40(%ebp) +.LC414: +.LC415: +movl -40(%ebp),%edi +leal 1(%edi),%esi +movl %esi,-40(%ebp) +movl -36(%ebp),%esi +leal 1(%esi),%ebx +movl %ebx,-36(%ebp) +movb (,%esi),%bl +movb %bl,(,%edi) +movsbl %bl,%edi +cmpl $0,%edi +jne .LC414 +movl 20(%ebp),%edi +movl $0,(,%edi) +movb $0,-41(%ebp) +movb $1,-5(%ebp) +jmp .LC418 +.LC417: +movsbl -5(%ebp),%edi +leal (,%edi,2),%edi +movl %edi,%ebx +movb %bl,-5(%ebp) +movl 20(%ebp),%edi +incl (,%edi) +.LC418: +movsbl -41(%ebp),%edi +movsbl -5(%ebp),%esi +cmpl %esi,%edi +jne .LC417 +movl 20(%ebp),%edi +movl (,%edi),%esi +leal (,%esi,4),%esi +movl %esi,4(%edi) +movl 20(%ebp),%edi +movl (,%edi),%esi +leal (,%esi,2),%esi +movl %esi,8(%edi) +movl 20(%ebp),%edi +movl (,%edi),%esi +leal (,%esi,4),%esi +movl %esi,12(%edi) +movl 20(%ebp),%edi +movl (,%edi),%esi +leal (,%esi,4),%esi +movl %esi,16(%edi) +movl 20(%ebp),%edi +movl (,%edi),%esi +leal (,%esi,4),%esi +movl %esi,20(%edi) +movl 20(%ebp),%edi +movl (,%edi),%esi +leal (,%esi,8),%esi +movl %esi,24(%edi) +flds .LC420 +fstps -16(%ebp) +flds .LC420 +fstps -4(%ebp) +flds .LC421 +fstps -12(%ebp) +jmp .LC423 +.LC422: +flds -16(%ebp) +fadds -4(%ebp) +fstps -12(%ebp) +flds -4(%ebp) +fdivl .LC425 +fstps -4(%ebp) +.LC423: +flds -16(%ebp) +fcomps -12(%ebp) +fstsw %ax +sahf +jne .LC422 +movl 20(%ebp),%edi +fldl .LC426 +fmuls -4(%ebp) +fstps 28(%edi) +fldl .LC427 +fstpl -32(%ebp) +flds .LC420 +fstps -4(%ebp) +fldl .LC428 +fstpl -24(%ebp) +jmp .LC430 +.LC429: +flds -4(%ebp) +fstpl -56(%ebp) +fldl -32(%ebp) +faddl -56(%ebp) +fstpl -24(%ebp) +fldl -56(%ebp) +fdivl .LC425 +fstps -4(%ebp) +.LC430: +fldl -32(%ebp) +fcompl -24(%ebp) +fstsw %ax +sahf +jne .LC429 +movl 20(%ebp),%edi +fldl .LC426 +fmuls -4(%ebp) +fstps 32(%edi) +movl 20(%ebp),%edi +cmpl $0,40(%edi) +je .LC432 +pushl $.LC434 +movl 20(%ebp),%edi +pushl (,%edi) +pushl $s.412 +call printf +addl $12,%esp +pushl $.LC435 +movl 20(%ebp),%edi +pushl 4(%edi) +pushl $s.412 +call printf +addl $12,%esp +pushl $.LC436 +movl 20(%ebp),%edi +pushl 8(%edi) +pushl $s.412 +call printf +addl $12,%esp +pushl $.LC437 +movl 20(%ebp),%edi +pushl 12(%edi) +pushl $s.412 +call printf +addl $12,%esp +pushl $.LC438 +movl 20(%ebp),%edi +pushl 16(%edi) +pushl $s.412 +call printf +addl $12,%esp +pushl $.LC439 +movl 20(%ebp),%edi +pushl 20(%edi) +pushl $s.412 +call printf +addl $12,%esp +pushl $.LC440 +movl 20(%ebp),%edi +pushl 24(%edi) +pushl $s.412 +call printf +addl $12,%esp +pushl $.LC439 +movl 20(%ebp),%edi +flds 28(%edi) +subl $8,%esp +fstpl (%esp) +pushl $s2.413 +call printf +addl $16,%esp +pushl $.LC440 +movl 20(%ebp),%edi +flds 32(%edi) +subl $8,%esp +fstpl (%esp) +pushl $s2.413 +call printf +addl $16,%esp +.LC432: +movl $0,%eax +.LC410: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf441: +.size s26,.Lf441-s26 +.data +.align 1 +.type s4er.443,@object +s4er.443: +.byte 115 +.byte 52 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size s4er.443,9 +.align 1 +.type qs4.444,@object +.size qs4.444,8 +qs4.444: +.byte 115 +.byte 52 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s4 +.text +.align 16 +.type s4,@function +s4: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $36,%esp +movl $0,-24(%ebp) +leal qs4.444,%edi +movl %edi,-16(%ebp) +movl 20(%ebp),%edi +leal 60(%edi),%edi +movl %edi,-20(%ebp) +.LC445: +.LC446: +movl -20(%ebp),%edi +leal 1(%edi),%esi +movl %esi,-20(%ebp) +movl -16(%ebp),%esi +leal 1(%esi),%ebx +movl %ebx,-16(%ebp) +movb (,%esi),%bl +movb %bl,(,%edi) +movsbl %bl,%edi +cmpl $0,%edi +jne .LC445 +movl $0,-4(%ebp) +.LC448: +pushl -4(%ebp) +call svtest +addl $4,%esp +movl %eax,%edi +call zero +cmpl %eax,%edi +je .LC452 +movl $1,-24(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC454 +pushl $1 +pushl $s4er.443 +call printf +addl $8,%esp +.LC454: +.LC452: +.LC449: +incl -4(%ebp) +cmpl $3,-4(%ebp) +jl .LC448 +call setev +call testev +cmpl $0,%eax +je .LC456 +addl $2,-24(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC458 +pushl $2 +pushl $s4er.443 +call printf +addl $8,%esp +.LC458: +.LC456: +jmp .LC460 +addl $4,-24(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC462 +pushl $4 +pushl $s4er.443 +call printf +addl $8,%esp +.LC462: +.LC460: +movl $0xffffffff,-8(%ebp) +movl $1,-12(%ebp) +movl $0,-4(%ebp) +jmp .LC467 +.LC464: +movl -8(%ebp),%edi +andl %edi,-12(%ebp) +shrl $1,%edi +movl %edi,-8(%ebp) +.LC465: +incl -4(%ebp) +.LC467: +movl -4(%ebp),%edi +movl 20(%ebp),%esi +movl (,%esi),%esi +leal (,%esi,4),%esi +cmpl %esi,%edi +jb .LC464 +movl -12(%ebp),%edi +cmpl $1,%edi +jne .LC470 +movl -8(%ebp),%edi +cmpl $0,%edi +je .LC468 +.LC470: +addl $8,-24(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC471 +pushl $8 +pushl $s4er.443 +call printf +addl $8,%esp +.LC471: +.LC468: +movl -24(%ebp),%eax +.LC442: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf473: +.size s4,.Lf473-s4 +.bss +.align 4 +.type k.475,@object +.size k.475,4 +.lcomm k.475,4 +.globl svtest +.text +.align 16 +.type svtest,@function +svtest: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $4,%esp +movl 20(%ebp),%edi +cmpl $0,%edi +je .LC478 +cmpl $1,%edi +je .LC479 +cmpl $2,%edi +je .LC482 +jmp .LC476 +.LC478: +movl $1978,k.475 +movl $0,-4(%ebp) +jmp .LC477 +.LC479: +cmpl $1978,k.475 +je .LC480 +movl $1,-4(%ebp) +jmp .LC477 +.LC480: +movl $1929,k.475 +movl $0,-4(%ebp) +jmp .LC477 +.LC482: +cmpl $1929,k.475 +je .LC483 +movl $1,-4(%ebp) +jmp .LC477 +.LC483: +movl $0,-4(%ebp) +.LC476: +.LC477: +movl -4(%ebp),%eax +.LC474: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf485: +.size svtest,.Lf485-svtest +.bss +.align 4 +.type k.487,@object +.size k.487,4 +.lcomm k.487,4 +.globl zero +.text +.align 16 +.type zero,@function +zero: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $4,%esp +movl $2,k.487 +movl $0,-4(%ebp) +movl -4(%ebp),%eax +.LC486: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf488: +.size zero,.Lf488-zero +.globl testev +.align 16 +.type testev,@function +testev: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +cmpl $1066,extvar +je .LC490 +movl $1,%eax +jmp .LC489 +.LC490: +movl $0,%eax +.LC489: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf492: +.size testev,.Lf492-testev +.data +.align 1 +.type s61er.494,@object +s61er.494: +.byte 115 +.byte 54 +.byte 49 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size s61er.494,10 +.align 1 +.type qs61.495,@object +.size qs61.495,8 +qs61.495: +.byte 115 +.byte 54 +.byte 49 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.align 1 +.type upper_alpha.496,@object +upper_alpha.496: +.byte 65 +.byte 66 +.byte 67 +.byte 68 +.byte 69 +.byte 70 +.byte 71 +.byte 72 +.byte 73 +.byte 74 +.byte 75 +.byte 76 +.byte 77 +.byte 78 +.byte 79 +.byte 80 +.byte 81 +.byte 82 +.byte 83 +.byte 84 +.byte 85 +.byte 86 +.byte 87 +.byte 88 +.byte 89 +.byte 90 +.byte 0 +.size upper_alpha.496,27 +.align 1 +.type lower_alpha.497,@object +lower_alpha.497: +.byte 97 +.byte 98 +.byte 99 +.byte 100 +.byte 101 +.byte 102 +.byte 103 +.byte 104 +.byte 105 +.byte 106 +.byte 107 +.byte 108 +.byte 109 +.byte 110 +.byte 111 +.byte 112 +.byte 113 +.byte 114 +.byte 115 +.byte 116 +.byte 117 +.byte 118 +.byte 119 +.byte 120 +.byte 121 +.byte 122 +.byte 0 +.size lower_alpha.497,27 +.align 1 +.type numbers.498,@object +numbers.498: +.byte 48 +.byte 49 +.byte 50 +.byte 51 +.byte 52 +.byte 53 +.byte 54 +.byte 55 +.byte 56 +.byte 57 +.byte 0 +.size numbers.498,11 +.align 1 +.type special_characters.499,@object +special_characters.499: +.byte 126 +.byte 33 +.byte 34 +.byte 35 +.byte 37 +.byte 38 +.byte 40 +.byte 41 +.byte 95 +.byte 61 +.byte 45 +.byte 94 +.byte 124 +.byte 123 +.byte 125 +.byte 91 +.byte 93 +.byte 43 +.byte 59 +.byte 42 +.byte 58 +.byte 60 +.byte 62 +.byte 44 +.byte 46 +.byte 63 +.byte 47 +.byte 0 +.size special_characters.499,28 +.align 1 +.type extra_special_characters.500,@object +extra_special_characters.500: +.byte 10 +.byte 9 +.byte 8 +.byte 13 +.byte 12 +.byte 92 +.byte 39 +.byte 0 +.size extra_special_characters.500,8 +.align 1 +.type blank_and_NUL.501,@object +blank_and_NUL.501: +.byte 32 +.byte 0 +.byte 0 +.size blank_and_NUL.501,3 +.globl s61 +.text +.align 16 +.type s61,@function +s61: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $60,%esp +leal qs61.495,%edi +movl %edi,-36(%ebp) +movl 20(%ebp),%edi +leal 60(%edi),%edi +movl %edi,-40(%ebp) +movl $0,-48(%ebp) +.LC502: +.LC503: +movl -40(%ebp),%edi +leal 1(%edi),%esi +movl %esi,-40(%ebp) +movl -36(%ebp),%esi +leal 1(%esi),%ebx +movl %ebx,-36(%ebp) +movb (,%esi),%bl +movb %bl,(,%edi) +movsbl %bl,%edi +cmpl $0,%edi +jne .LC502 +movw $-19,-54(%ebp) +movswl -54(%ebp),%edi +movl %edi,-60(%ebp) +cmpl $-19,-60(%ebp) +je .LC505 +incl -48(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC507 +pushl $1 +pushl $s61er.494 +call printf +addl $8,%esp +.LC507: +.LC505: +leal upper_alpha.496,%edi +movl %edi,-28(%ebp) +leal lower_alpha.497,%edi +movl %edi,-24(%ebp) +leal numbers.498,%edi +movl %edi,-20(%ebp) +leal special_characters.499,%edi +movl %edi,-16(%ebp) +leal extra_special_characters.500,%edi +movl %edi,-12(%ebp) +leal blank_and_NUL.501,%edi +movl %edi,-8(%ebp) +movl $0,-32(%ebp) +movl $0,-4(%ebp) +jmp .LC519 +.LC518: +movl -4(%ebp),%edi +leal -28(%ebp),%esi +leal (%esi,%edi,4),%edi +movl (,%edi),%esi +leal 1(%esi),%ebx +movl %ebx,(,%edi) +movsbl (,%esi),%edi +cmpl $0,%edi +jge .LC521 +movl $1,-32(%ebp) +.LC521: +.LC519: +movl -4(%ebp),%edi +leal -28(%ebp),%esi +movl (%esi,%edi,4),%edi +movsbl (,%edi),%edi +cmpl $0,%edi +jne .LC518 +.LC515: +incl -4(%ebp) +cmpl $6,-4(%ebp) +jl .LC519 +cmpl $0,-32(%ebp) +je .LC523 +addl $2,-48(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC525 +pushl $2 +pushl $s61er.494 +call printf +addl $8,%esp +.LC525: +.LC523: +movl $1048579,-44(%ebp) +movl -44(%ebp),%edi +movl %edi,%esi +movw %si,-50(%ebp) +movl %edi,%ebx +movb %bl,-51(%ebp) +movswl -50(%ebp),%edi +cmpl -44(%ebp),%edi +je .LC530 +cmpl $3,%edi +jne .LC529 +.LC530: +movsbl -51(%ebp),%edi +cmpl -44(%ebp),%edi +je .LC527 +cmpl $3,%edi +je .LC527 +.LC529: +addl $8,-48(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC531 +pushl $8 +pushl $s61er.494 +call printf +addl $8,%esp +.LC531: +.LC527: +movl -48(%ebp),%eax +.LC493: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf533: +.size s61,.Lf533-s61 +.data +.align 1 +.type s626er.535,@object +s626er.535: +.byte 115 +.byte 54 +.byte 50 +.byte 54 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size s626er.535,11 +.align 1 +.type qs626.536,@object +.size qs626.536,8 +qs626.536: +.byte 115 +.byte 54 +.byte 50 +.byte 54 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s626 +.text +.align 16 +.type s626,@function +s626: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $128,%esp +leal qs626.536,%edi +movl %edi,-56(%ebp) +movl 20(%ebp),%edi +leal 60(%edi),%edi +movl %edi,-60(%ebp) +movl $0,-104(%ebp) +.LC537: +.LC538: +movl -60(%ebp),%edi +leal 1(%edi),%esi +movl %esi,-60(%ebp) +movl -56(%ebp),%esi +leal 1(%esi),%ebx +movl %ebx,-56(%ebp) +movb (,%esi),%bl +movb %bl,(,%edi) +movsbl %bl,%edi +cmpl $0,%edi +jne .LC537 +flds .LC420 +fstps -36(%ebp) +movl $1,-64(%ebp) +movl $1,-40(%ebp) +movl $0,-4(%ebp) +jmp .LC543 +.LC540: +flds .LC544 +fmuls -36(%ebp) +fstps -36(%ebp) +movl -40(%ebp),%edi +leal (,%edi,2),%edi +orl -64(%ebp),%edi +movl %edi,-40(%ebp) +.LC541: +incl -4(%ebp) +.LC543: +movl 20(%ebp),%edi +movl 12(%edi),%edi +subl $2,%edi +cmpl %edi,-4(%ebp) +jl .LC540 +fildl -40(%ebp) +fstps -112(%ebp) +flds -36(%ebp) +fsubs -112(%ebp) +fdivs -36(%ebp) +fstps -36(%ebp) +fldl .LC425 +movl 20(%ebp),%edi +fmuls 28(%edi) +fcomps -36(%ebp) +fstsw %ax +sahf +jae .LC545 +addl $2,-104(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC547 +pushl $2 +pushl $s626er.535 +call printf +addl $8,%esp +.LC547: +.LC545: +movb $125,-73(%ebp) +movw $125,-76(%ebp) +movl $125,-80(%ebp) +movl $15625,-96(%ebp) +movl $125,-84(%ebp) +movl $15625,-100(%ebp) +movl $125,-68(%ebp) +movl $15625,-108(%ebp) +flds .LC549 +fstps -72(%ebp) +fldl .LC550 +fstpl -92(%ebp) +fldl .LC551 +fstpl -52(%ebp) +movl $0,-4(%ebp) +.LC552: +movl -4(%ebp),%edi +leal -32(%ebp),%esi +movb $0,(%esi,%edi) +.LC553: +incl -4(%ebp) +cmpl $28,-4(%ebp) +jl .LC552 +movsbl -73(%ebp),%edi +movl %edi,%esi +imull %edi,%esi +cmpl -96(%ebp),%esi +je .LC556 +movb $1,-32(%ebp) +.LC556: +movswl -76(%ebp),%edi +movsbl -73(%ebp),%esi +imull %esi,%edi +cmpl -96(%ebp),%edi +je .LC558 +movb $1,-31(%ebp) +.LC558: +movswl -76(%ebp),%edi +movl %edi,%esi +imull %edi,%esi +cmpl -96(%ebp),%esi +je .LC561 +movb $1,-30(%ebp) +.LC561: +movl -80(%ebp),%edi +movsbl -73(%ebp),%esi +imull %esi,%edi +cmpl -96(%ebp),%edi +je .LC564 +movb $1,-29(%ebp) +.LC564: +movl -80(%ebp),%edi +movswl -76(%ebp),%esi +imull %esi,%edi +cmpl -96(%ebp),%edi +je .LC567 +movb $1,-28(%ebp) +.LC567: +movl -80(%ebp),%edi +movl %edi,%esi +imull %edi,%esi +cmpl -96(%ebp),%esi +je .LC570 +movb $1,-27(%ebp) +.LC570: +movl -84(%ebp),%eax +movsbl -73(%ebp),%edi +mull %edi +cmpl -100(%ebp),%eax +je .LC573 +movb $1,-26(%ebp) +.LC573: +movl -84(%ebp),%eax +movswl -76(%ebp),%edi +mull %edi +cmpl -100(%ebp),%eax +je .LC576 +movb $1,-25(%ebp) +.LC576: +movl -84(%ebp),%eax +movl -80(%ebp),%edi +mull %edi +cmpl -100(%ebp),%eax +je .LC579 +movb $1,-24(%ebp) +.LC579: +movl -84(%ebp),%edi +movl %edi,%eax +mull %edi +cmpl -100(%ebp),%eax +je .LC582 +movb $1,-23(%ebp) +.LC582: +movl -68(%ebp),%edi +movsbl -73(%ebp),%esi +imull %esi,%edi +cmpl -108(%ebp),%edi +je .LC585 +movb $1,-22(%ebp) +.LC585: +movl -68(%ebp),%edi +movswl -76(%ebp),%esi +imull %esi,%edi +cmpl -108(%ebp),%edi +je .LC588 +movb $1,-21(%ebp) +.LC588: +movl -68(%ebp),%edi +imull -80(%ebp),%edi +cmpl -108(%ebp),%edi +je .LC591 +movb $1,-20(%ebp) +.LC591: +movl -68(%ebp),%edi +movl %edi,%eax +mull -84(%ebp) +cmpl -100(%ebp),%eax +je .LC594 +movb $1,-19(%ebp) +.LC594: +movl -68(%ebp),%edi +movl %edi,%esi +imull %edi,%esi +cmpl -108(%ebp),%esi +je .LC597 +movb $1,-18(%ebp) +.LC597: +flds -72(%ebp) +movsbl -73(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fmulp %st(1),%st +fldl -52(%ebp) +fcompp +fstsw %ax +sahf +je .LC600 +movb $1,-17(%ebp) +.LC600: +flds -72(%ebp) +movswl -76(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fmulp %st(1),%st +fldl -52(%ebp) +fcompp +fstsw %ax +sahf +je .LC603 +movb $1,-16(%ebp) +.LC603: +flds -72(%ebp) +fildl -80(%ebp) +fmulp %st(1),%st +fldl -52(%ebp) +fcompp +fstsw %ax +sahf +je .LC606 +movb $1,-15(%ebp) +.LC606: +movl -84(%ebp),%edi +flds -72(%ebp) +fldl .LC611 +movl %edi,%esi +shrl $1,%esi +pushl %esi +fildl (%esp) +addl $4,%esp +fmulp %st(1),%st +andl $1,%edi +pushl %edi +fildl (%esp) +addl $4,%esp +faddp %st(1),%st +sub $4,%esp +fstps (%esp) +flds (%esp) +addl $4,%esp +fmulp %st(1),%st +fldl -52(%ebp) +fcompp +fstsw %ax +sahf +je .LC609 +movb $1,-14(%ebp) +.LC609: +flds -72(%ebp) +fildl -68(%ebp) +fmulp %st(1),%st +fldl -52(%ebp) +fcompp +fstsw %ax +sahf +je .LC613 +movb $1,-13(%ebp) +.LC613: +flds -72(%ebp) +fmuls -72(%ebp) +fldl -52(%ebp) +fcompp +fstsw %ax +sahf +je .LC616 +movb $1,-12(%ebp) +.LC616: +fldl -92(%ebp) +movsbl -73(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fmulp %st(1),%st +fldl -52(%ebp) +fcompp +fstsw %ax +sahf +je .LC619 +movb $1,-11(%ebp) +.LC619: +fldl -92(%ebp) +movswl -76(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fmulp %st(1),%st +fldl -52(%ebp) +fcompp +fstsw %ax +sahf +je .LC622 +movb $1,-10(%ebp) +.LC622: +fldl -92(%ebp) +fimull -80(%ebp) +fldl -52(%ebp) +fcompp +fstsw %ax +sahf +je .LC625 +movb $1,-9(%ebp) +.LC625: +movl -84(%ebp),%edi +fldl -92(%ebp) +fldl .LC611 +movl %edi,%esi +shrl $1,%esi +pushl %esi +fildl (%esp) +addl $4,%esp +fmulp %st(1),%st +andl $1,%edi +pushl %edi +fildl (%esp) +addl $4,%esp +faddp %st(1),%st +fmulp %st(1),%st +fldl -52(%ebp) +fcompp +fstsw %ax +sahf +je .LC628 +movb $1,-8(%ebp) +.LC628: +fldl -92(%ebp) +fimull -68(%ebp) +fldl -52(%ebp) +fcompp +fstsw %ax +sahf +je .LC631 +movb $1,-7(%ebp) +.LC631: +fldl -92(%ebp) +fmuls -72(%ebp) +fldl -52(%ebp) +fcompp +fstsw %ax +sahf +je .LC634 +movb $1,-6(%ebp) +.LC634: +fldl -92(%ebp) +fmull -92(%ebp) +fldl -52(%ebp) +fcompp +fstsw %ax +sahf +je .LC637 +movb $1,-5(%ebp) +.LC637: +movb $0,-41(%ebp) +movl $0,-4(%ebp) +.LC640: +movsbl -41(%ebp),%edi +movl -4(%ebp),%esi +leal -32(%ebp),%ebx +movsbl (%ebx,%esi),%esi +leal (%esi,%edi),%edi +movl %edi,%ebx +movb %bl,-41(%ebp) +.LC641: +incl -4(%ebp) +cmpl $28,-4(%ebp) +jl .LC640 +movsbl -41(%ebp),%edi +cmpl $0,%edi +je .LC644 +addl $4,-104(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC646 +pushl $4 +pushl $s626er.535 +call printf +addl $8,%esp +pushl $.LC648 +call printf +addl $4,%esp +movl $0,-4(%ebp) +.LC649: +movl -4(%ebp),%edi +leal -32(%ebp),%esi +movsbl (%esi,%edi),%edi +pushl %edi +pushl $.LC653 +call printf +addl $8,%esp +.LC650: +incl -4(%ebp) +cmpl $28,-4(%ebp) +jl .LC649 +pushl $.LC654 +call printf +addl $4,%esp +.LC646: +.LC644: +movl $32768,-68(%ebp) +movl -68(%ebp),%edi +cmpl $0x8000,%edi +jbe .LC655 +addl $8,-104(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC657 +pushl $8 +pushl $s626er.535 +call printf +addl $8,%esp +.LC657: +.LC655: +movl -104(%ebp),%eax +.LC534: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf659: +.size s626,.Lf659-s626 +.data +.align 1 +.type s71er.661,@object +s71er.661: +.byte 115 +.byte 55 +.byte 49 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size s71er.661,10 +.align 1 +.type qs71.662,@object +.size qs71.662,8 +qs71.662: +.byte 115 +.byte 55 +.byte 49 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.align 1 +.type q.663,@object +.size q.663,1 +q.663: +.byte 113 +.globl s71 +.text +.align 16 +.type s71,@function +s71: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $68,%esp +leal qs71.662,%edi +movl %edi,-4(%ebp) +movl 20(%ebp),%edi +leal 60(%edi),%edi +movl %edi,-8(%ebp) +movl $0,-12(%ebp) +.LC664: +.LC665: +movl -8(%ebp),%edi +leal 1(%edi),%esi +movl %esi,-8(%ebp) +movl -4(%ebp),%esi +leal 1(%esi),%ebx +movl %ebx,-4(%ebp) +movb (,%esi),%bl +movb %bl,(,%edi) +movsbl %bl,%edi +cmpl $0,%edi +jne .LC664 +movsbl .LC669,%edi +movsbl q.663,%esi +cmpl %esi,%edi +je .LC667 +incl -12(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC670 +pushl $1 +pushl $s71er.661 +call printf +addl $8,%esp +.LC670: +.LC667: +jmp .LC672 +addl $2,-12(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC674 +pushl $2 +pushl $s71er.661 +call printf +addl $8,%esp +.LC674: +.LC672: +movl $1942,-32(%ebp) +cmpl $1942,-32(%ebp) +jne .LC682 +movl -32(%ebp),%edi +cmpl %edi,-32(%ebp) +je .LC677 +.LC682: +addl $4,-12(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC683 +pushl $4 +pushl $s71er.661 +call printf +addl $8,%esp +.LC683: +.LC677: +pushl $-5 +call McCarthy +addl $4,%esp +cmpl $91,%eax +je .LC685 +addl $8,-12(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC687 +pushl $8 +pushl $s71er.661 +call printf +addl $8,%esp +.LC687: +.LC685: +movl $2,-56(%ebp) +movl $3,-60(%ebp) +leal -60(%ebp),%edi +movl %edi,-64(%ebp) +pushl -64(%ebp) +pushl -56(%ebp) +call clobber +addl $8,%esp +cmpl $2,-56(%ebp) +jne .LC691 +cmpl $2,-60(%ebp) +je .LC689 +.LC691: +addl $16,-12(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC692 +pushl $16 +pushl $s71er.661 +call printf +addl $8,%esp +.LC692: +.LC689: +movl 20(%ebp),%edi +flds 32(%edi) +fstps -68(%ebp) +flds -68(%ebp) +fcomps -68(%ebp) +fstsw %ax +sahf +je .LC694 +addl $32,-12(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC696 +pushl $32 +pushl $s71er.661 +call printf +addl $8,%esp +.LC696: +.LC694: +movl -12(%ebp),%eax +.LC660: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf698: +.size s71,.Lf698-s71 +.globl McCarthy +.align 16 +.type McCarthy,@function +McCarthy: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +cmpl $100,20(%ebp) +jle .LC700 +movl 20(%ebp),%edi +movl %edi,%eax +subl $10,%eax +jmp .LC699 +.LC700: +movl 20(%ebp),%edi +leal 11(%edi),%edi +pushl %edi +call McCarthy +addl $4,%esp +movl %eax,%edi +pushl %edi +call McCarthy +addl $4,%esp +movl %eax,%edi +.LC699: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf702: +.size McCarthy,.Lf702-McCarthy +.globl clobber +.align 16 +.type clobber,@function +clobber: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl $3,20(%ebp) +movl 24(%ebp),%edi +movl $2,(,%edi) +movl $0,%eax +.LC703: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf704: +.size clobber,.Lf704-clobber +.data +.align 1 +.type f.706,@object +f.706: +.byte 76 +.byte 111 +.byte 99 +.byte 97 +.byte 108 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 32 +.byte 37 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.size f.706,17 +.align 1 +.type s714er.707,@object +s714er.707: +.byte 115 +.byte 55 +.byte 49 +.byte 52 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size s714er.707,11 +.align 1 +.type qs714.708,@object +.size qs714.708,8 +qs714.708: +.byte 115 +.byte 55 +.byte 49 +.byte 52 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s714 +.text +.align 16 +.type s714,@function +s714: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $248,%esp +leal qs714.708,%edi +movl %edi,-68(%ebp) +movl 20(%ebp),%edi +leal 60(%edi),%esi +movl %esi,-72(%ebp) +movl $0,-76(%ebp) +movl $0,-8(%ebp) +movl 48(%edi),%edi +movl %edi,-4(%ebp) +.LC709: +.LC710: +movl -72(%ebp),%edi +leal 1(%edi),%esi +movl %esi,-72(%ebp) +movl -68(%ebp),%esi +leal 1(%esi),%ebx +movl %ebx,-68(%ebp) +movb (,%esi),%bl +movb %bl,(,%edi) +movsbl %bl,%edi +cmpl $0,%edi +jne .LC709 +movb $5,-9(%ebp) +movb $2,-25(%ebp) +movb -25(%ebp),%bl +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $2,%edi +je .LC712 +movl $1,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC714 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC714: +.LC712: +movb $5,-9(%ebp) +movw $2,-28(%ebp) +movswl -28(%ebp),%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $2,%edi +je .LC716 +movl $2,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC718 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC718: +.LC716: +movb $5,-9(%ebp) +movl $2,-32(%ebp) +movl -32(%ebp),%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $2,%edi +je .LC720 +movl $3,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC722 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC722: +.LC720: +movb $5,-9(%ebp) +movl $2,-36(%ebp) +movl -36(%ebp),%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $2,%edi +je .LC724 +movl $4,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC726 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC726: +.LC724: +movb $5,-9(%ebp) +movl $2,-40(%ebp) +movl -40(%ebp),%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $2,%edi +je .LC728 +movl $5,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC730 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC730: +.LC728: +movb $5,-9(%ebp) +flds .LC544 +fstps -56(%ebp) +flds -56(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $2,%edi +je .LC732 +movl $6,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC734 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC734: +.LC732: +movb $5,-9(%ebp) +fldl .LC425 +fstpl -64(%ebp) +fldl -64(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $2,%edi +je .LC736 +movl $7,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC738 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC738: +.LC736: +movw $5,-12(%ebp) +movb $2,-25(%ebp) +movsbl -25(%ebp),%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $2,%edi +je .LC740 +movl $8,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC742 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC742: +.LC740: +movw $5,-12(%ebp) +movw $2,-28(%ebp) +movw -28(%ebp),%di +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $2,%edi +je .LC744 +movl $9,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC746 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC746: +.LC744: +movw $5,-12(%ebp) +movl $2,-32(%ebp) +movl -32(%ebp),%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $2,%edi +je .LC748 +movl $10,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC750 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC750: +.LC748: +movw $5,-12(%ebp) +movl $2,-36(%ebp) +movl -36(%ebp),%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $2,%edi +je .LC752 +movl $11,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC754 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC754: +.LC752: +movw $5,-12(%ebp) +movl $2,-40(%ebp) +movl -40(%ebp),%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $2,%edi +je .LC756 +movl $12,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC758 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC758: +.LC756: +movw $5,-12(%ebp) +flds .LC544 +fstps -56(%ebp) +flds -56(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $2,%edi +je .LC760 +movl $13,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC762 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC762: +.LC760: +movw $5,-12(%ebp) +fldl .LC425 +fstpl -64(%ebp) +fldl -64(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $2,%edi +je .LC764 +movl $14,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC766 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC766: +.LC764: +movl $5,-16(%ebp) +movb $2,-25(%ebp) +movsbl -25(%ebp),%edi +movl %edi,-16(%ebp) +cmpl $2,-16(%ebp) +je .LC768 +movl $15,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC770 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC770: +.LC768: +movl $5,-16(%ebp) +movw $2,-28(%ebp) +movswl -28(%ebp),%edi +movl %edi,-16(%ebp) +cmpl $2,-16(%ebp) +je .LC772 +movl $16,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC774 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC774: +.LC772: +movl $5,-16(%ebp) +movl $2,-32(%ebp) +movl -32(%ebp),%edi +movl %edi,-16(%ebp) +cmpl $2,-16(%ebp) +je .LC776 +movl $17,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC778 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC778: +.LC776: +movl $5,-16(%ebp) +movl $2,-36(%ebp) +movl -36(%ebp),%edi +movl %edi,-16(%ebp) +cmpl $2,-16(%ebp) +je .LC780 +movl $18,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC782 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC782: +.LC780: +movl $5,-16(%ebp) +movl $2,-40(%ebp) +movl -40(%ebp),%edi +movl %edi,-16(%ebp) +cmpl $2,-16(%ebp) +je .LC784 +movl $19,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC786 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC786: +.LC784: +movl $5,-16(%ebp) +flds .LC544 +fstps -56(%ebp) +flds -56(%ebp) +fistpl -16(%ebp) +cmpl $2,-16(%ebp) +je .LC788 +movl $20,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC790 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC790: +.LC788: +movl $5,-16(%ebp) +fldl .LC425 +fstpl -64(%ebp) +fldl -64(%ebp) +fistpl -16(%ebp) +cmpl $2,-16(%ebp) +je .LC792 +movl $21,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC794 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC794: +.LC792: +movl $5,-20(%ebp) +movb $2,-25(%ebp) +movsbl -25(%ebp),%edi +movl %edi,-20(%ebp) +cmpl $2,-20(%ebp) +je .LC796 +movl $22,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC798 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC798: +.LC796: +movl $5,-20(%ebp) +movw $2,-28(%ebp) +movswl -28(%ebp),%edi +movl %edi,-20(%ebp) +cmpl $2,-20(%ebp) +je .LC800 +movl $23,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC802 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC802: +.LC800: +movl $5,-20(%ebp) +movl $2,-32(%ebp) +movl -32(%ebp),%edi +movl %edi,-20(%ebp) +cmpl $2,-20(%ebp) +je .LC804 +movl $24,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC806 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC806: +.LC804: +movl $5,-20(%ebp) +movl $2,-36(%ebp) +movl -36(%ebp),%edi +movl %edi,-20(%ebp) +cmpl $2,-20(%ebp) +je .LC808 +movl $25,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC810 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC810: +.LC808: +movl $5,-20(%ebp) +movl $2,-40(%ebp) +movl -40(%ebp),%edi +movl %edi,-20(%ebp) +cmpl $2,-20(%ebp) +je .LC812 +movl $26,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC814 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC814: +.LC812: +movl $5,-20(%ebp) +flds .LC544 +fstps -56(%ebp) +flds -56(%ebp) +fistpl -20(%ebp) +cmpl $2,-20(%ebp) +je .LC816 +movl $27,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC818 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC818: +.LC816: +movl $5,-20(%ebp) +fldl .LC425 +fstpl -64(%ebp) +fldl -64(%ebp) +fistpl -20(%ebp) +cmpl $2,-20(%ebp) +je .LC820 +movl $28,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC822 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC822: +.LC820: +movl $5,-24(%ebp) +movb $2,-25(%ebp) +movsbl -25(%ebp),%edi +movl %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $2,%edi +je .LC824 +movl $29,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC826 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC826: +.LC824: +movl $5,-24(%ebp) +movw $2,-28(%ebp) +movswl -28(%ebp),%edi +movl %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $2,%edi +je .LC828 +movl $30,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC830 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC830: +.LC828: +movl $5,-24(%ebp) +movl $2,-32(%ebp) +movl -32(%ebp),%edi +movl %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $2,%edi +je .LC832 +movl $31,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC834 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC834: +.LC832: +movl $5,-24(%ebp) +movl $2,-36(%ebp) +movl -36(%ebp),%edi +movl %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $2,%edi +je .LC836 +movl $32,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC838 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC838: +.LC836: +movl $5,-24(%ebp) +movl $2,-40(%ebp) +movl -40(%ebp),%edi +movl %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $2,%edi +je .LC840 +movl $33,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC842 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC842: +.LC840: +movl $5,-24(%ebp) +flds .LC544 +fstps -56(%ebp) +flds .LC847 +fcomps -56(%ebp) +fstsw %ax +sahf +ja .LC845 +flds -56(%ebp) +fsubs .LC847 +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +leal 0x80000000(%edi),%edi +movl %edi,-80(%ebp) +jmp .LC846 +.LC845: +flds -56(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movl %edi,-80(%ebp) +.LC846: +movl -80(%ebp),%edi +movl %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $2,%edi +je .LC848 +movl $34,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC850 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC850: +.LC848: +movl $5,-24(%ebp) +fldl .LC425 +fstpl -64(%ebp) +fldl .LC855 +fcompl -64(%ebp) +fstsw %ax +sahf +ja .LC853 +fldl -64(%ebp) +fsubl .LC855 +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +leal 0x80000000(%edi),%edi +movl %edi,-92(%ebp) +jmp .LC854 +.LC853: +fldl -64(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movl %edi,-92(%ebp) +.LC854: +movl -92(%ebp),%edi +movl %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $2,%edi +je .LC856 +movl $35,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC858 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC858: +.LC856: +flds .LC860 +fstps -44(%ebp) +movb $2,-25(%ebp) +movsbl -25(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fstps -44(%ebp) +flds .LC544 +fcomps -44(%ebp) +fstsw %ax +sahf +je .LC861 +movl $36,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC863 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC863: +.LC861: +flds .LC860 +fstps -44(%ebp) +movw $2,-28(%ebp) +movswl -28(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fstps -44(%ebp) +flds .LC544 +fcomps -44(%ebp) +fstsw %ax +sahf +je .LC865 +movl $37,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC867 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC867: +.LC865: +flds .LC860 +fstps -44(%ebp) +movl $2,-32(%ebp) +fildl -32(%ebp) +fstps -44(%ebp) +flds .LC544 +fcomps -44(%ebp) +fstsw %ax +sahf +je .LC869 +movl $38,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC871 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC871: +.LC869: +flds .LC860 +fstps -44(%ebp) +movl $2,-36(%ebp) +fildl -36(%ebp) +fstps -44(%ebp) +flds .LC544 +fcomps -44(%ebp) +fstsw %ax +sahf +je .LC873 +movl $39,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC875 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC875: +.LC873: +flds .LC860 +fstps -44(%ebp) +movl $2,-40(%ebp) +movl -40(%ebp),%edi +fldl .LC611 +movl %edi,%esi +shrl $1,%esi +pushl %esi +fildl (%esp) +addl $4,%esp +fmulp %st(1),%st +andl $1,%edi +pushl %edi +fildl (%esp) +addl $4,%esp +faddp %st(1),%st +fstps -44(%ebp) +flds .LC544 +fcomps -44(%ebp) +fstsw %ax +sahf +je .LC877 +movl $40,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC879 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC879: +.LC877: +flds .LC860 +fstps -44(%ebp) +flds .LC544 +fstps -56(%ebp) +flds -56(%ebp) +fstps -44(%ebp) +flds .LC544 +fcomps -44(%ebp) +fstsw %ax +sahf +je .LC881 +movl $41,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC883 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC883: +.LC881: +flds .LC860 +fstps -44(%ebp) +fldl .LC425 +fstpl -64(%ebp) +fldl -64(%ebp) +fstps -44(%ebp) +flds .LC544 +fcomps -44(%ebp) +fstsw %ax +sahf +je .LC885 +movl $42,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC887 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC887: +.LC885: +fldl .LC889 +fstpl -52(%ebp) +movb $2,-25(%ebp) +movsbl -25(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fstpl -52(%ebp) +fldl .LC425 +fcompl -52(%ebp) +fstsw %ax +sahf +je .LC890 +movl $43,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC892 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC892: +.LC890: +fldl .LC889 +fstpl -52(%ebp) +movw $2,-28(%ebp) +movswl -28(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fstpl -52(%ebp) +fldl .LC425 +fcompl -52(%ebp) +fstsw %ax +sahf +je .LC894 +movl $44,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC896 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC896: +.LC894: +fldl .LC889 +fstpl -52(%ebp) +movl $2,-32(%ebp) +fildl -32(%ebp) +fstpl -52(%ebp) +fldl .LC425 +fcompl -52(%ebp) +fstsw %ax +sahf +je .LC898 +movl $45,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC900 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC900: +.LC898: +fldl .LC889 +fstpl -52(%ebp) +movl $2,-36(%ebp) +fildl -36(%ebp) +fstpl -52(%ebp) +fldl .LC425 +fcompl -52(%ebp) +fstsw %ax +sahf +je .LC902 +movl $46,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC904 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC904: +.LC902: +fldl .LC889 +fstpl -52(%ebp) +movl $2,-40(%ebp) +movl -40(%ebp),%edi +fldl .LC611 +movl %edi,%esi +shrl $1,%esi +pushl %esi +fildl (%esp) +addl $4,%esp +fmulp %st(1),%st +andl $1,%edi +pushl %edi +fildl (%esp) +addl $4,%esp +faddp %st(1),%st +fstpl -52(%ebp) +fldl .LC425 +fcompl -52(%ebp) +fstsw %ax +sahf +je .LC906 +movl $47,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC908 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC908: +.LC906: +fldl .LC889 +fstpl -52(%ebp) +flds .LC544 +fstps -56(%ebp) +flds -56(%ebp) +fstpl -52(%ebp) +fldl .LC425 +fcompl -52(%ebp) +fstsw %ax +sahf +je .LC910 +movl $48,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC912 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC912: +.LC910: +fldl .LC889 +fstpl -52(%ebp) +fldl .LC425 +fstpl -64(%ebp) +fldl -64(%ebp) +fstpl -52(%ebp) +fldl .LC425 +fcompl -52(%ebp) +fstsw %ax +sahf +je .LC914 +movl $49,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC916 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC916: +.LC914: +movb $5,-9(%ebp) +movb $2,-25(%ebp) +movsbl -9(%ebp),%edi +movsbl -25(%ebp),%esi +leal (%esi,%edi),%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $7,%edi +je .LC918 +movl $50,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC920 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC920: +.LC918: +movb $5,-9(%ebp) +movw $2,-28(%ebp) +movsbl -9(%ebp),%edi +movswl -28(%ebp),%esi +leal (%esi,%edi),%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $7,%edi +je .LC922 +movl $51,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC924 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC924: +.LC922: +movb $5,-9(%ebp) +movl $2,-32(%ebp) +movsbl -9(%ebp),%edi +movl -32(%ebp),%esi +leal (%esi,%edi),%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $7,%edi +je .LC926 +movl $52,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC928 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC928: +.LC926: +movb $5,-9(%ebp) +movl $2,-36(%ebp) +movsbl -9(%ebp),%edi +movl -36(%ebp),%esi +leal (%esi,%edi),%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $7,%edi +je .LC930 +movl $53,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC932 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC932: +.LC930: +movb $5,-9(%ebp) +movl $2,-40(%ebp) +movsbl -9(%ebp),%edi +movl -40(%ebp),%esi +leal (%esi,%edi),%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $7,%edi +je .LC934 +movl $54,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC936 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC936: +.LC934: +movb $5,-9(%ebp) +flds .LC544 +fstps -56(%ebp) +movsbl -9(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fadds -56(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $7,%edi +je .LC938 +movl $55,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC940 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC940: +.LC938: +movb $5,-9(%ebp) +fldl .LC425 +fstpl -64(%ebp) +movsbl -9(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +faddl -64(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $7,%edi +je .LC942 +movl $56,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC944 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC944: +.LC942: +movw $5,-12(%ebp) +movb $2,-25(%ebp) +movswl -12(%ebp),%edi +movsbl -25(%ebp),%esi +leal (%esi,%edi),%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $7,%edi +je .LC946 +movl $57,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC948 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC948: +.LC946: +movw $5,-12(%ebp) +movw $2,-28(%ebp) +movswl -12(%ebp),%edi +movswl -28(%ebp),%esi +leal (%esi,%edi),%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $7,%edi +je .LC950 +movl $58,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC952 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC952: +.LC950: +movw $5,-12(%ebp) +movl $2,-32(%ebp) +movswl -12(%ebp),%edi +movl -32(%ebp),%esi +leal (%esi,%edi),%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $7,%edi +je .LC954 +movl $59,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC956 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC956: +.LC954: +movw $5,-12(%ebp) +movl $2,-36(%ebp) +movswl -12(%ebp),%edi +movl -36(%ebp),%esi +leal (%esi,%edi),%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $7,%edi +je .LC958 +movl $60,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC960 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC960: +.LC958: +movw $5,-12(%ebp) +movl $2,-40(%ebp) +movswl -12(%ebp),%edi +movl -40(%ebp),%esi +leal (%esi,%edi),%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $7,%edi +je .LC962 +movl $61,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC964 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC964: +.LC962: +movw $5,-12(%ebp) +flds .LC544 +fstps -56(%ebp) +movswl -12(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fadds -56(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $7,%edi +je .LC966 +movl $62,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC968 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC968: +.LC966: +movw $5,-12(%ebp) +fldl .LC425 +fstpl -64(%ebp) +movswl -12(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +faddl -64(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $7,%edi +je .LC970 +movl $63,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC972 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC972: +.LC970: +movl $5,-16(%ebp) +movb $2,-25(%ebp) +movsbl -25(%ebp),%edi +addl %edi,-16(%ebp) +cmpl $7,-16(%ebp) +je .LC974 +movl $64,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC976 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC976: +.LC974: +movl $5,-16(%ebp) +movw $2,-28(%ebp) +movswl -28(%ebp),%edi +addl %edi,-16(%ebp) +cmpl $7,-16(%ebp) +je .LC978 +movl $65,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC980 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC980: +.LC978: +movl $5,-16(%ebp) +movl $2,-32(%ebp) +movl -32(%ebp),%edi +addl %edi,-16(%ebp) +cmpl $7,-16(%ebp) +je .LC982 +movl $66,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC984 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC984: +.LC982: +movl $5,-16(%ebp) +movl $2,-36(%ebp) +movl -36(%ebp),%edi +addl %edi,-16(%ebp) +cmpl $7,-16(%ebp) +je .LC986 +movl $67,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC988 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC988: +.LC986: +movl $5,-16(%ebp) +movl $2,-40(%ebp) +movl -16(%ebp),%edi +movl -40(%ebp),%esi +leal (%esi,%edi),%edi +movl %edi,-16(%ebp) +cmpl $7,-16(%ebp) +je .LC990 +movl $68,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC992 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC992: +.LC990: +movl $5,-16(%ebp) +flds .LC544 +fstps -56(%ebp) +fildl -16(%ebp) +fadds -56(%ebp) +fistpl -16(%ebp) +cmpl $7,-16(%ebp) +je .LC994 +movl $69,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC996 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC996: +.LC994: +movl $5,-16(%ebp) +fldl .LC425 +fstpl -64(%ebp) +fildl -16(%ebp) +faddl -64(%ebp) +fistpl -16(%ebp) +cmpl $7,-16(%ebp) +je .LC998 +movl $70,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1000 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1000: +.LC998: +movl $5,-20(%ebp) +movb $2,-25(%ebp) +movsbl -25(%ebp),%edi +addl %edi,-20(%ebp) +cmpl $7,-20(%ebp) +je .LC1002 +movl $71,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1004 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1004: +.LC1002: +movl $5,-20(%ebp) +movw $2,-28(%ebp) +movswl -28(%ebp),%edi +addl %edi,-20(%ebp) +cmpl $7,-20(%ebp) +je .LC1006 +movl $72,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1008 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1008: +.LC1006: +movl $5,-20(%ebp) +movl $2,-32(%ebp) +movl -32(%ebp),%edi +addl %edi,-20(%ebp) +cmpl $7,-20(%ebp) +je .LC1010 +movl $73,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1012 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1012: +.LC1010: +movl $5,-20(%ebp) +movl $2,-36(%ebp) +movl -36(%ebp),%edi +addl %edi,-20(%ebp) +cmpl $7,-20(%ebp) +je .LC1014 +movl $74,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1016 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1016: +.LC1014: +movl $5,-20(%ebp) +movl $2,-40(%ebp) +movl -20(%ebp),%edi +movl -40(%ebp),%esi +leal (%esi,%edi),%edi +movl %edi,-20(%ebp) +cmpl $7,-20(%ebp) +je .LC1018 +movl $75,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1020 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1020: +.LC1018: +movl $5,-20(%ebp) +flds .LC544 +fstps -56(%ebp) +fildl -20(%ebp) +fadds -56(%ebp) +fistpl -20(%ebp) +cmpl $7,-20(%ebp) +je .LC1022 +movl $76,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1024 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1024: +.LC1022: +movl $5,-20(%ebp) +fldl .LC425 +fstpl -64(%ebp) +fildl -20(%ebp) +faddl -64(%ebp) +fistpl -20(%ebp) +cmpl $7,-20(%ebp) +je .LC1026 +movl $77,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1028 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1028: +.LC1026: +movl $5,-24(%ebp) +movb $2,-25(%ebp) +movsbl -25(%ebp),%edi +add %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $7,%edi +je .LC1030 +movl $78,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1032 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1032: +.LC1030: +movl $5,-24(%ebp) +movw $2,-28(%ebp) +movswl -28(%ebp),%edi +add %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $7,%edi +je .LC1034 +movl $79,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1036 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1036: +.LC1034: +movl $5,-24(%ebp) +movl $2,-32(%ebp) +movl -32(%ebp),%edi +add %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $7,%edi +je .LC1038 +movl $80,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1040 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1040: +.LC1038: +movl $5,-24(%ebp) +movl $2,-36(%ebp) +movl -36(%ebp),%edi +add %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $7,%edi +je .LC1042 +movl $81,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1044 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1044: +.LC1042: +movl $5,-24(%ebp) +movl $2,-40(%ebp) +movl -40(%ebp),%edi +add %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $7,%edi +je .LC1046 +movl $82,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1048 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1048: +.LC1046: +movl $5,-24(%ebp) +flds .LC544 +fstps -56(%ebp) +movl -24(%ebp),%edi +fldl .LC611 +movl %edi,%esi +shrl $1,%esi +pushl %esi +fildl (%esp) +addl $4,%esp +fmulp %st(1),%st +andl $1,%edi +pushl %edi +fildl (%esp) +addl $4,%esp +faddp %st(1),%st +sub $4,%esp +fstps (%esp) +flds (%esp) +addl $4,%esp +fadds -56(%ebp) +fstps -128(%ebp) +flds .LC847 +fcomps -128(%ebp) +fstsw %ax +sahf +ja .LC1051 +flds -128(%ebp) +fsubs .LC847 +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +leal 0x80000000(%edi),%edi +movl %edi,-124(%ebp) +jmp .LC1052 +.LC1051: +flds -128(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movl %edi,-124(%ebp) +.LC1052: +movl -124(%ebp),%edi +movl %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $7,%edi +je .LC1053 +movl $83,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1055 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1055: +.LC1053: +movl $5,-24(%ebp) +fldl .LC425 +fstpl -64(%ebp) +movl -24(%ebp),%edi +fldl .LC611 +movl %edi,%esi +shrl $1,%esi +pushl %esi +fildl (%esp) +addl $4,%esp +fmulp %st(1),%st +andl $1,%edi +pushl %edi +fildl (%esp) +addl $4,%esp +faddp %st(1),%st +faddl -64(%ebp) +fstpl -144(%ebp) +fldl .LC855 +fcompl -144(%ebp) +fstsw %ax +sahf +ja .LC1058 +fldl -144(%ebp) +fsubl .LC855 +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +leal 0x80000000(%edi),%edi +movl %edi,-136(%ebp) +jmp .LC1059 +.LC1058: +fldl -144(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movl %edi,-136(%ebp) +.LC1059: +movl -136(%ebp),%edi +movl %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $7,%edi +je .LC1060 +movl $84,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1062 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1062: +.LC1060: +flds .LC860 +fstps -44(%ebp) +movb $2,-25(%ebp) +flds -44(%ebp) +movsbl -25(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +faddp %st(1),%st +fstps -44(%ebp) +flds .LC1066 +fcomps -44(%ebp) +fstsw %ax +sahf +je .LC1064 +movl $85,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1067 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1067: +.LC1064: +flds .LC860 +fstps -44(%ebp) +movw $2,-28(%ebp) +flds -44(%ebp) +movswl -28(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +faddp %st(1),%st +fstps -44(%ebp) +flds .LC1066 +fcomps -44(%ebp) +fstsw %ax +sahf +je .LC1069 +movl $86,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1071 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1071: +.LC1069: +flds .LC860 +fstps -44(%ebp) +movl $2,-32(%ebp) +flds -44(%ebp) +fildl -32(%ebp) +faddp %st(1),%st +fstps -44(%ebp) +flds .LC1066 +fcomps -44(%ebp) +fstsw %ax +sahf +je .LC1073 +movl $87,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1075 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1075: +.LC1073: +flds .LC860 +fstps -44(%ebp) +movl $2,-36(%ebp) +flds -44(%ebp) +fildl -36(%ebp) +faddp %st(1),%st +fstps -44(%ebp) +flds .LC1066 +fcomps -44(%ebp) +fstsw %ax +sahf +je .LC1077 +movl $88,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1079 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1079: +.LC1077: +flds .LC860 +fstps -44(%ebp) +movl $2,-40(%ebp) +movl -40(%ebp),%edi +flds -44(%ebp) +fldl .LC611 +movl %edi,%esi +shrl $1,%esi +pushl %esi +fildl (%esp) +addl $4,%esp +fmulp %st(1),%st +andl $1,%edi +pushl %edi +fildl (%esp) +addl $4,%esp +faddp %st(1),%st +sub $4,%esp +fstps (%esp) +flds (%esp) +addl $4,%esp +faddp %st(1),%st +fstps -44(%ebp) +flds .LC1066 +fcomps -44(%ebp) +fstsw %ax +sahf +je .LC1081 +movl $89,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1083 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1083: +.LC1081: +flds .LC860 +fstps -44(%ebp) +flds .LC544 +fstps -56(%ebp) +flds -44(%ebp) +fadds -56(%ebp) +fstps -44(%ebp) +flds .LC1066 +fcomps -44(%ebp) +fstsw %ax +sahf +je .LC1085 +movl $90,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1087 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1087: +.LC1085: +flds .LC860 +fstps -44(%ebp) +fldl .LC425 +fstpl -64(%ebp) +flds -44(%ebp) +faddl -64(%ebp) +fstps -44(%ebp) +flds .LC1066 +fcomps -44(%ebp) +fstsw %ax +sahf +je .LC1089 +movl $91,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1091 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1091: +.LC1089: +fldl .LC889 +fstpl -52(%ebp) +movb $2,-25(%ebp) +fldl -52(%ebp) +movsbl -25(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +faddp %st(1),%st +fstpl -52(%ebp) +fldl .LC1095 +fcompl -52(%ebp) +fstsw %ax +sahf +je .LC1093 +movl $92,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1096 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1096: +.LC1093: +fldl .LC889 +fstpl -52(%ebp) +movw $2,-28(%ebp) +fldl -52(%ebp) +movswl -28(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +faddp %st(1),%st +fstpl -52(%ebp) +fldl .LC1095 +fcompl -52(%ebp) +fstsw %ax +sahf +je .LC1098 +movl $93,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1100 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1100: +.LC1098: +fldl .LC889 +fstpl -52(%ebp) +movl $2,-32(%ebp) +fldl -52(%ebp) +fiaddl -32(%ebp) +fstpl -52(%ebp) +fldl .LC1095 +fcompl -52(%ebp) +fstsw %ax +sahf +je .LC1102 +movl $94,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1104 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1104: +.LC1102: +fldl .LC889 +fstpl -52(%ebp) +movl $2,-36(%ebp) +fldl -52(%ebp) +fiaddl -36(%ebp) +fstpl -52(%ebp) +fldl .LC1095 +fcompl -52(%ebp) +fstsw %ax +sahf +je .LC1106 +movl $95,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1108 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1108: +.LC1106: +fldl .LC889 +fstpl -52(%ebp) +movl $2,-40(%ebp) +movl -40(%ebp),%edi +fldl -52(%ebp) +fldl .LC611 +movl %edi,%esi +shrl $1,%esi +pushl %esi +fildl (%esp) +addl $4,%esp +fmulp %st(1),%st +andl $1,%edi +pushl %edi +fildl (%esp) +addl $4,%esp +faddp %st(1),%st +faddp %st(1),%st +fstpl -52(%ebp) +fldl .LC1095 +fcompl -52(%ebp) +fstsw %ax +sahf +je .LC1110 +movl $96,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1112 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1112: +.LC1110: +fldl .LC889 +fstpl -52(%ebp) +flds .LC544 +fstps -56(%ebp) +fldl -52(%ebp) +fadds -56(%ebp) +fstpl -52(%ebp) +fldl .LC1095 +fcompl -52(%ebp) +fstsw %ax +sahf +je .LC1114 +movl $97,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1116 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1116: +.LC1114: +fldl .LC889 +fstpl -52(%ebp) +fldl .LC425 +fstpl -64(%ebp) +fldl -52(%ebp) +faddl -64(%ebp) +fstpl -52(%ebp) +fldl .LC1095 +fcompl -52(%ebp) +fstsw %ax +sahf +je .LC1118 +movl $98,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1120 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1120: +.LC1118: +movb $5,-9(%ebp) +movb $2,-25(%ebp) +movsbl -9(%ebp),%edi +movsbl -25(%ebp),%esi +subl %esi,%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $3,%edi +je .LC1122 +movl $99,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1124 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1124: +.LC1122: +movb $5,-9(%ebp) +movw $2,-28(%ebp) +movsbl -9(%ebp),%edi +movswl -28(%ebp),%esi +subl %esi,%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $3,%edi +je .LC1126 +movl $100,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1128 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1128: +.LC1126: +movb $5,-9(%ebp) +movl $2,-32(%ebp) +movsbl -9(%ebp),%edi +subl -32(%ebp),%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $3,%edi +je .LC1130 +movl $101,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1132 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1132: +.LC1130: +movb $5,-9(%ebp) +movl $2,-36(%ebp) +movsbl -9(%ebp),%edi +subl -36(%ebp),%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $3,%edi +je .LC1134 +movl $102,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1136 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1136: +.LC1134: +movb $5,-9(%ebp) +movl $2,-40(%ebp) +movsbl -9(%ebp),%edi +subl -40(%ebp),%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $3,%edi +je .LC1138 +movl $103,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1140 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1140: +.LC1138: +movb $5,-9(%ebp) +flds .LC544 +fstps -56(%ebp) +movsbl -9(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fsubs -56(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $3,%edi +je .LC1142 +movl $104,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1144 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1144: +.LC1142: +movb $5,-9(%ebp) +fldl .LC425 +fstpl -64(%ebp) +movsbl -9(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fsubl -64(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $3,%edi +je .LC1146 +movl $105,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1148 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1148: +.LC1146: +movw $5,-12(%ebp) +movb $2,-25(%ebp) +movswl -12(%ebp),%edi +movsbl -25(%ebp),%esi +subl %esi,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $3,%edi +je .LC1150 +movl $106,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1152 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1152: +.LC1150: +movw $5,-12(%ebp) +movw $2,-28(%ebp) +movswl -12(%ebp),%edi +movswl -28(%ebp),%esi +subl %esi,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $3,%edi +je .LC1154 +movl $107,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1156 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1156: +.LC1154: +movw $5,-12(%ebp) +movl $2,-32(%ebp) +movswl -12(%ebp),%edi +subl -32(%ebp),%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $3,%edi +je .LC1158 +movl $108,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1160 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1160: +.LC1158: +movw $5,-12(%ebp) +movl $2,-36(%ebp) +movswl -12(%ebp),%edi +subl -36(%ebp),%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $3,%edi +je .LC1162 +movl $109,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1164 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1164: +.LC1162: +movw $5,-12(%ebp) +movl $2,-40(%ebp) +movswl -12(%ebp),%edi +subl -40(%ebp),%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $3,%edi +je .LC1166 +movl $110,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1168 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1168: +.LC1166: +movw $5,-12(%ebp) +flds .LC544 +fstps -56(%ebp) +movswl -12(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fsubs -56(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $3,%edi +je .LC1170 +movl $111,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1172 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1172: +.LC1170: +movw $5,-12(%ebp) +fldl .LC425 +fstpl -64(%ebp) +movswl -12(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fsubl -64(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $3,%edi +je .LC1174 +movl $112,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1176 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1176: +.LC1174: +movl $5,-16(%ebp) +movb $2,-25(%ebp) +movsbl -25(%ebp),%edi +sub %edi,-16(%ebp) +cmpl $3,-16(%ebp) +je .LC1178 +movl $113,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1180 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1180: +.LC1178: +movl $5,-16(%ebp) +movw $2,-28(%ebp) +movswl -28(%ebp),%edi +sub %edi,-16(%ebp) +cmpl $3,-16(%ebp) +je .LC1182 +movl $114,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1184 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1184: +.LC1182: +movl $5,-16(%ebp) +movl $2,-32(%ebp) +movl -32(%ebp),%edi +sub %edi,-16(%ebp) +cmpl $3,-16(%ebp) +je .LC1186 +movl $115,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1188 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1188: +.LC1186: +movl $5,-16(%ebp) +movl $2,-36(%ebp) +movl -36(%ebp),%edi +sub %edi,-16(%ebp) +cmpl $3,-16(%ebp) +je .LC1190 +movl $116,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1192 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1192: +.LC1190: +movl $5,-16(%ebp) +movl $2,-40(%ebp) +movl -16(%ebp),%edi +subl -40(%ebp),%edi +movl %edi,-16(%ebp) +cmpl $3,-16(%ebp) +je .LC1194 +movl $117,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1196 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1196: +.LC1194: +movl $5,-16(%ebp) +flds .LC544 +fstps -56(%ebp) +fildl -16(%ebp) +fsubs -56(%ebp) +fistpl -16(%ebp) +cmpl $3,-16(%ebp) +je .LC1198 +movl $118,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1200 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1200: +.LC1198: +movl $5,-16(%ebp) +fldl .LC425 +fstpl -64(%ebp) +fldl -64(%ebp) +fisubrl -16(%ebp) +fistpl -16(%ebp) +cmpl $3,-16(%ebp) +je .LC1202 +movl $119,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1204 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1204: +.LC1202: +movl $5,-20(%ebp) +movb $2,-25(%ebp) +movsbl -25(%ebp),%edi +sub %edi,-20(%ebp) +cmpl $3,-20(%ebp) +je .LC1206 +movl $120,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1208 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1208: +.LC1206: +movl $5,-20(%ebp) +movw $2,-28(%ebp) +movswl -28(%ebp),%edi +sub %edi,-20(%ebp) +cmpl $3,-20(%ebp) +je .LC1210 +movl $121,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1212 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1212: +.LC1210: +movl $5,-20(%ebp) +movl $2,-32(%ebp) +movl -32(%ebp),%edi +sub %edi,-20(%ebp) +cmpl $3,-20(%ebp) +je .LC1214 +movl $122,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1216 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1216: +.LC1214: +movl $5,-20(%ebp) +movl $2,-36(%ebp) +movl -36(%ebp),%edi +sub %edi,-20(%ebp) +cmpl $3,-20(%ebp) +je .LC1218 +movl $123,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1220 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1220: +.LC1218: +movl $5,-20(%ebp) +movl $2,-40(%ebp) +movl -20(%ebp),%edi +subl -40(%ebp),%edi +movl %edi,-20(%ebp) +cmpl $3,-20(%ebp) +je .LC1222 +movl $124,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1224 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1224: +.LC1222: +movl $5,-20(%ebp) +flds .LC544 +fstps -56(%ebp) +fildl -20(%ebp) +fsubs -56(%ebp) +fistpl -20(%ebp) +cmpl $3,-20(%ebp) +je .LC1226 +movl $125,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1228 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1228: +.LC1226: +movl $5,-20(%ebp) +fldl .LC425 +fstpl -64(%ebp) +fldl -64(%ebp) +fisubrl -20(%ebp) +fistpl -20(%ebp) +cmpl $3,-20(%ebp) +je .LC1230 +movl $126,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1232 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1232: +.LC1230: +movl $5,-24(%ebp) +movb $2,-25(%ebp) +movsbl -25(%ebp),%edi +sub %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $3,%edi +je .LC1234 +movl $127,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1236 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1236: +.LC1234: +movl $5,-24(%ebp) +movw $2,-28(%ebp) +movswl -28(%ebp),%edi +sub %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $3,%edi +je .LC1238 +movl $128,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1240 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1240: +.LC1238: +movl $5,-24(%ebp) +movl $2,-32(%ebp) +movl -32(%ebp),%edi +sub %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $3,%edi +je .LC1242 +movl $129,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1244 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1244: +.LC1242: +movl $5,-24(%ebp) +movl $2,-36(%ebp) +movl -36(%ebp),%edi +sub %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $3,%edi +je .LC1246 +movl $130,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1248 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1248: +.LC1246: +movl $5,-24(%ebp) +movl $2,-40(%ebp) +movl -40(%ebp),%edi +sub %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $3,%edi +je .LC1250 +movl $131,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1252 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1252: +.LC1250: +movl $5,-24(%ebp) +flds .LC544 +fstps -56(%ebp) +movl -24(%ebp),%edi +fldl .LC611 +movl %edi,%esi +shrl $1,%esi +pushl %esi +fildl (%esp) +addl $4,%esp +fmulp %st(1),%st +andl $1,%edi +pushl %edi +fildl (%esp) +addl $4,%esp +faddp %st(1),%st +sub $4,%esp +fstps (%esp) +flds (%esp) +addl $4,%esp +fsubs -56(%ebp) +fstps -160(%ebp) +flds .LC847 +fcomps -160(%ebp) +fstsw %ax +sahf +ja .LC1255 +flds -160(%ebp) +fsubs .LC847 +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +leal 0x80000000(%edi),%edi +movl %edi,-156(%ebp) +jmp .LC1256 +.LC1255: +flds -160(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movl %edi,-156(%ebp) +.LC1256: +movl -156(%ebp),%edi +movl %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $3,%edi +je .LC1257 +movl $132,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1259 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1259: +.LC1257: +movl $5,-24(%ebp) +fldl .LC425 +fstpl -64(%ebp) +movl -24(%ebp),%edi +fldl .LC611 +movl %edi,%esi +shrl $1,%esi +pushl %esi +fildl (%esp) +addl $4,%esp +fmulp %st(1),%st +andl $1,%edi +pushl %edi +fildl (%esp) +addl $4,%esp +faddp %st(1),%st +fsubl -64(%ebp) +fstpl -176(%ebp) +fldl .LC855 +fcompl -176(%ebp) +fstsw %ax +sahf +ja .LC1262 +fldl -176(%ebp) +fsubl .LC855 +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +leal 0x80000000(%edi),%edi +movl %edi,-168(%ebp) +jmp .LC1263 +.LC1262: +fldl -176(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movl %edi,-168(%ebp) +.LC1263: +movl -168(%ebp),%edi +movl %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $3,%edi +je .LC1264 +movl $133,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1266 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1266: +.LC1264: +flds .LC860 +fstps -44(%ebp) +movb $2,-25(%ebp) +flds -44(%ebp) +movsbl -25(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fsubp %st(1),%st +fstps -44(%ebp) +flds .LC1270 +fcomps -44(%ebp) +fstsw %ax +sahf +je .LC1268 +movl $134,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1271 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1271: +.LC1268: +flds .LC860 +fstps -44(%ebp) +movw $2,-28(%ebp) +flds -44(%ebp) +movswl -28(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fsubp %st(1),%st +fstps -44(%ebp) +flds .LC1270 +fcomps -44(%ebp) +fstsw %ax +sahf +je .LC1273 +movl $135,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1275 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1275: +.LC1273: +flds .LC860 +fstps -44(%ebp) +movl $2,-32(%ebp) +flds -44(%ebp) +fildl -32(%ebp) +fsubp %st(1),%st +fstps -44(%ebp) +flds .LC1270 +fcomps -44(%ebp) +fstsw %ax +sahf +je .LC1277 +movl $136,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1279 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1279: +.LC1277: +flds .LC860 +fstps -44(%ebp) +movl $2,-36(%ebp) +flds -44(%ebp) +fildl -36(%ebp) +fsubp %st(1),%st +fstps -44(%ebp) +flds .LC1270 +fcomps -44(%ebp) +fstsw %ax +sahf +je .LC1281 +movl $137,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1283 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1283: +.LC1281: +flds .LC860 +fstps -44(%ebp) +movl $2,-40(%ebp) +movl -40(%ebp),%edi +flds -44(%ebp) +fldl .LC611 +movl %edi,%esi +shrl $1,%esi +pushl %esi +fildl (%esp) +addl $4,%esp +fmulp %st(1),%st +andl $1,%edi +pushl %edi +fildl (%esp) +addl $4,%esp +faddp %st(1),%st +sub $4,%esp +fstps (%esp) +flds (%esp) +addl $4,%esp +fsubp %st(1),%st +fstps -44(%ebp) +flds .LC1270 +fcomps -44(%ebp) +fstsw %ax +sahf +je .LC1285 +movl $138,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1287 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1287: +.LC1285: +flds .LC860 +fstps -44(%ebp) +flds .LC544 +fstps -56(%ebp) +flds -44(%ebp) +fsubs -56(%ebp) +fstps -44(%ebp) +flds .LC1270 +fcomps -44(%ebp) +fstsw %ax +sahf +je .LC1289 +movl $139,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1291 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1291: +.LC1289: +flds .LC860 +fstps -44(%ebp) +fldl .LC425 +fstpl -64(%ebp) +flds -44(%ebp) +fsubl -64(%ebp) +fstps -44(%ebp) +flds .LC1270 +fcomps -44(%ebp) +fstsw %ax +sahf +je .LC1293 +movl $140,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1295 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1295: +.LC1293: +fldl .LC889 +fstpl -52(%ebp) +movb $2,-25(%ebp) +fldl -52(%ebp) +movsbl -25(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fsubp %st(1),%st +fstpl -52(%ebp) +fldl .LC1299 +fcompl -52(%ebp) +fstsw %ax +sahf +je .LC1297 +movl $141,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1300 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1300: +.LC1297: +fldl .LC889 +fstpl -52(%ebp) +movw $2,-28(%ebp) +fldl -52(%ebp) +movswl -28(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fsubp %st(1),%st +fstpl -52(%ebp) +fldl .LC1299 +fcompl -52(%ebp) +fstsw %ax +sahf +je .LC1302 +movl $142,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1304 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1304: +.LC1302: +fldl .LC889 +fstpl -52(%ebp) +movl $2,-32(%ebp) +fldl -52(%ebp) +fisubl -32(%ebp) +fstpl -52(%ebp) +fldl .LC1299 +fcompl -52(%ebp) +fstsw %ax +sahf +je .LC1306 +movl $143,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1308 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1308: +.LC1306: +fldl .LC889 +fstpl -52(%ebp) +movl $2,-36(%ebp) +fldl -52(%ebp) +fisubl -36(%ebp) +fstpl -52(%ebp) +fldl .LC1299 +fcompl -52(%ebp) +fstsw %ax +sahf +je .LC1310 +movl $144,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1312 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1312: +.LC1310: +fldl .LC889 +fstpl -52(%ebp) +movl $2,-40(%ebp) +movl -40(%ebp),%edi +fldl -52(%ebp) +fldl .LC611 +movl %edi,%esi +shrl $1,%esi +pushl %esi +fildl (%esp) +addl $4,%esp +fmulp %st(1),%st +andl $1,%edi +pushl %edi +fildl (%esp) +addl $4,%esp +faddp %st(1),%st +fsubp %st(1),%st +fstpl -52(%ebp) +fldl .LC1299 +fcompl -52(%ebp) +fstsw %ax +sahf +je .LC1314 +movl $145,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1316 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1316: +.LC1314: +fldl .LC889 +fstpl -52(%ebp) +flds .LC544 +fstps -56(%ebp) +fldl -52(%ebp) +fsubs -56(%ebp) +fstpl -52(%ebp) +fldl .LC1299 +fcompl -52(%ebp) +fstsw %ax +sahf +je .LC1318 +movl $146,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1320 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1320: +.LC1318: +fldl .LC889 +fstpl -52(%ebp) +fldl .LC425 +fstpl -64(%ebp) +fldl -52(%ebp) +fsubl -64(%ebp) +fstpl -52(%ebp) +fldl .LC1299 +fcompl -52(%ebp) +fstsw %ax +sahf +je .LC1322 +movl $147,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1324 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1324: +.LC1322: +movb $5,-9(%ebp) +movb $2,-25(%ebp) +movsbl -9(%ebp),%edi +movsbl -25(%ebp),%esi +imull %esi,%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $10,%edi +je .LC1326 +movl $148,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1328 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1328: +.LC1326: +movb $5,-9(%ebp) +movw $2,-28(%ebp) +movsbl -9(%ebp),%edi +movswl -28(%ebp),%esi +imull %esi,%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $10,%edi +je .LC1330 +movl $149,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1332 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1332: +.LC1330: +movb $5,-9(%ebp) +movl $2,-32(%ebp) +movsbl -9(%ebp),%edi +imull -32(%ebp),%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $10,%edi +je .LC1334 +movl $150,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1336 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1336: +.LC1334: +movb $5,-9(%ebp) +movl $2,-36(%ebp) +movsbl -9(%ebp),%edi +imull -36(%ebp),%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $10,%edi +je .LC1338 +movl $151,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1340 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1340: +.LC1338: +movb $5,-9(%ebp) +movl $2,-40(%ebp) +movsbl -9(%ebp),%edi +movl %edi,%eax +mull -40(%ebp) +movl %eax,%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $10,%edi +je .LC1342 +movl $152,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1344 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1344: +.LC1342: +movb $5,-9(%ebp) +flds .LC544 +fstps -56(%ebp) +movsbl -9(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fmuls -56(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $10,%edi +je .LC1346 +movl $153,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1348 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1348: +.LC1346: +movb $5,-9(%ebp) +fldl .LC425 +fstpl -64(%ebp) +movsbl -9(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fmull -64(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $10,%edi +je .LC1350 +movl $154,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1352 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1352: +.LC1350: +movw $5,-12(%ebp) +movb $2,-25(%ebp) +movswl -12(%ebp),%edi +movsbl -25(%ebp),%esi +imull %esi,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $10,%edi +je .LC1354 +movl $155,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1356 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1356: +.LC1354: +movw $5,-12(%ebp) +movw $2,-28(%ebp) +movswl -12(%ebp),%edi +movswl -28(%ebp),%esi +imull %esi,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $10,%edi +je .LC1358 +movl $156,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1360 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1360: +.LC1358: +movw $5,-12(%ebp) +movl $2,-32(%ebp) +movswl -12(%ebp),%edi +imull -32(%ebp),%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $10,%edi +je .LC1362 +movl $157,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1364 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1364: +.LC1362: +movw $5,-12(%ebp) +movl $2,-36(%ebp) +movswl -12(%ebp),%edi +imull -36(%ebp),%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $10,%edi +je .LC1366 +movl $158,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1368 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1368: +.LC1366: +movw $5,-12(%ebp) +movl $2,-40(%ebp) +movswl -12(%ebp),%edi +movl %edi,%eax +mull -40(%ebp) +movl %eax,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $10,%edi +je .LC1370 +movl $159,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1372 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1372: +.LC1370: +movw $5,-12(%ebp) +flds .LC544 +fstps -56(%ebp) +movswl -12(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fmuls -56(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $10,%edi +je .LC1374 +movl $160,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1376 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1376: +.LC1374: +movw $5,-12(%ebp) +fldl .LC425 +fstpl -64(%ebp) +movswl -12(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fmull -64(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $10,%edi +je .LC1378 +movl $161,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1380 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1380: +.LC1378: +movl $5,-16(%ebp) +movb $2,-25(%ebp) +movl -16(%ebp),%edi +movsbl -25(%ebp),%esi +imull %esi,%edi +movl %edi,-16(%ebp) +cmpl $10,-16(%ebp) +je .LC1382 +movl $162,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1384 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1384: +.LC1382: +movl $5,-16(%ebp) +movw $2,-28(%ebp) +movl -16(%ebp),%edi +movswl -28(%ebp),%esi +imull %esi,%edi +movl %edi,-16(%ebp) +cmpl $10,-16(%ebp) +je .LC1386 +movl $163,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1388 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1388: +.LC1386: +movl $5,-16(%ebp) +movl $2,-32(%ebp) +movl -16(%ebp),%edi +imull -32(%ebp),%edi +movl %edi,-16(%ebp) +cmpl $10,-16(%ebp) +je .LC1390 +movl $164,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1392 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1392: +.LC1390: +movl $5,-16(%ebp) +movl $2,-36(%ebp) +movl -16(%ebp),%edi +imull -36(%ebp),%edi +movl %edi,-16(%ebp) +cmpl $10,-16(%ebp) +je .LC1394 +movl $165,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1396 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1396: +.LC1394: +movl $5,-16(%ebp) +movl $2,-40(%ebp) +movl -16(%ebp),%edi +movl %edi,%eax +mull -40(%ebp) +movl %eax,%edi +movl %edi,-16(%ebp) +cmpl $10,-16(%ebp) +je .LC1398 +movl $166,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1400 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1400: +.LC1398: +movl $5,-16(%ebp) +flds .LC544 +fstps -56(%ebp) +fildl -16(%ebp) +fmuls -56(%ebp) +fistpl -16(%ebp) +cmpl $10,-16(%ebp) +je .LC1402 +movl $167,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1404 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1404: +.LC1402: +movl $5,-16(%ebp) +fldl .LC425 +fstpl -64(%ebp) +fildl -16(%ebp) +fmull -64(%ebp) +fistpl -16(%ebp) +cmpl $10,-16(%ebp) +je .LC1406 +movl $168,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1408 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1408: +.LC1406: +movl $5,-20(%ebp) +movb $2,-25(%ebp) +movl -20(%ebp),%edi +movsbl -25(%ebp),%esi +imull %esi,%edi +movl %edi,-20(%ebp) +cmpl $10,-20(%ebp) +je .LC1410 +movl $169,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1412 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1412: +.LC1410: +movl $5,-20(%ebp) +movw $2,-28(%ebp) +movl -20(%ebp),%edi +movswl -28(%ebp),%esi +imull %esi,%edi +movl %edi,-20(%ebp) +cmpl $10,-20(%ebp) +je .LC1414 +movl $170,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1416 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1416: +.LC1414: +movl $5,-20(%ebp) +movl $2,-32(%ebp) +movl -20(%ebp),%edi +imull -32(%ebp),%edi +movl %edi,-20(%ebp) +cmpl $10,-20(%ebp) +je .LC1418 +movl $171,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1420 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1420: +.LC1418: +movl $5,-20(%ebp) +movl $2,-36(%ebp) +movl -20(%ebp),%edi +imull -36(%ebp),%edi +movl %edi,-20(%ebp) +cmpl $10,-20(%ebp) +je .LC1422 +movl $172,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1424 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1424: +.LC1422: +movl $5,-20(%ebp) +movl $2,-40(%ebp) +movl -20(%ebp),%edi +movl %edi,%eax +mull -40(%ebp) +movl %eax,%edi +movl %edi,-20(%ebp) +cmpl $10,-20(%ebp) +je .LC1426 +movl $173,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1428 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1428: +.LC1426: +movl $5,-20(%ebp) +flds .LC544 +fstps -56(%ebp) +fildl -20(%ebp) +fmuls -56(%ebp) +fistpl -20(%ebp) +cmpl $10,-20(%ebp) +je .LC1430 +movl $174,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1432 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1432: +.LC1430: +movl $5,-20(%ebp) +fldl .LC425 +fstpl -64(%ebp) +fildl -20(%ebp) +fmull -64(%ebp) +fistpl -20(%ebp) +cmpl $10,-20(%ebp) +je .LC1434 +movl $175,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1436 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1436: +.LC1434: +movl $5,-24(%ebp) +movb $2,-25(%ebp) +movl -24(%ebp),%eax +movsbl -25(%ebp),%edi +mull %edi +movl %eax,-24(%ebp) +movl -24(%ebp),%edi +cmpl $10,%edi +je .LC1438 +movl $176,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1440 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1440: +.LC1438: +movl $5,-24(%ebp) +movw $2,-28(%ebp) +movl -24(%ebp),%eax +movswl -28(%ebp),%edi +mull %edi +movl %eax,-24(%ebp) +movl -24(%ebp),%edi +cmpl $10,%edi +je .LC1442 +movl $177,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1444 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1444: +.LC1442: +movl $5,-24(%ebp) +movl $2,-32(%ebp) +movl -24(%ebp),%eax +movl -32(%ebp),%edi +mull %edi +movl %eax,-24(%ebp) +movl -24(%ebp),%edi +cmpl $10,%edi +je .LC1446 +movl $178,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1448 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1448: +.LC1446: +movl $5,-24(%ebp) +movl $2,-36(%ebp) +movl -24(%ebp),%eax +movl -36(%ebp),%edi +mull %edi +movl %eax,-24(%ebp) +movl -24(%ebp),%edi +cmpl $10,%edi +je .LC1450 +movl $179,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1452 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1452: +.LC1450: +movl $5,-24(%ebp) +movl $2,-40(%ebp) +movl -24(%ebp),%eax +mull -40(%ebp) +movl %eax,-24(%ebp) +movl -24(%ebp),%edi +cmpl $10,%edi +je .LC1454 +movl $180,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1456 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1456: +.LC1454: +movl $5,-24(%ebp) +flds .LC544 +fstps -56(%ebp) +movl -24(%ebp),%edi +fldl .LC611 +movl %edi,%esi +shrl $1,%esi +pushl %esi +fildl (%esp) +addl $4,%esp +fmulp %st(1),%st +andl $1,%edi +pushl %edi +fildl (%esp) +addl $4,%esp +faddp %st(1),%st +sub $4,%esp +fstps (%esp) +flds (%esp) +addl $4,%esp +fmuls -56(%ebp) +fstps -192(%ebp) +flds .LC847 +fcomps -192(%ebp) +fstsw %ax +sahf +ja .LC1459 +flds -192(%ebp) +fsubs .LC847 +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +leal 0x80000000(%edi),%edi +movl %edi,-188(%ebp) +jmp .LC1460 +.LC1459: +flds -192(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movl %edi,-188(%ebp) +.LC1460: +movl -188(%ebp),%edi +movl %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $10,%edi +je .LC1461 +movl $181,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1463 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1463: +.LC1461: +movl $5,-24(%ebp) +fldl .LC425 +fstpl -64(%ebp) +movl -24(%ebp),%edi +fldl .LC611 +movl %edi,%esi +shrl $1,%esi +pushl %esi +fildl (%esp) +addl $4,%esp +fmulp %st(1),%st +andl $1,%edi +pushl %edi +fildl (%esp) +addl $4,%esp +faddp %st(1),%st +fmull -64(%ebp) +fstpl -208(%ebp) +fldl .LC855 +fcompl -208(%ebp) +fstsw %ax +sahf +ja .LC1466 +fldl -208(%ebp) +fsubl .LC855 +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +leal 0x80000000(%edi),%edi +movl %edi,-200(%ebp) +jmp .LC1467 +.LC1466: +fldl -208(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movl %edi,-200(%ebp) +.LC1467: +movl -200(%ebp),%edi +movl %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $10,%edi +je .LC1468 +movl $182,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1470 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1470: +.LC1468: +flds .LC860 +fstps -44(%ebp) +movb $2,-25(%ebp) +flds -44(%ebp) +movsbl -25(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fmulp %st(1),%st +fstps -44(%ebp) +flds .LC1474 +fcomps -44(%ebp) +fstsw %ax +sahf +je .LC1472 +movl $183,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1475 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1475: +.LC1472: +flds .LC860 +fstps -44(%ebp) +movw $2,-28(%ebp) +flds -44(%ebp) +movswl -28(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fmulp %st(1),%st +fstps -44(%ebp) +flds .LC1474 +fcomps -44(%ebp) +fstsw %ax +sahf +je .LC1477 +movl $184,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1479 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1479: +.LC1477: +flds .LC860 +fstps -44(%ebp) +movl $2,-32(%ebp) +flds -44(%ebp) +fildl -32(%ebp) +fmulp %st(1),%st +fstps -44(%ebp) +flds .LC1474 +fcomps -44(%ebp) +fstsw %ax +sahf +je .LC1481 +movl $185,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1483 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1483: +.LC1481: +flds .LC860 +fstps -44(%ebp) +movl $2,-36(%ebp) +flds -44(%ebp) +fildl -36(%ebp) +fmulp %st(1),%st +fstps -44(%ebp) +flds .LC1474 +fcomps -44(%ebp) +fstsw %ax +sahf +je .LC1485 +movl $186,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1487 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1487: +.LC1485: +flds .LC860 +fstps -44(%ebp) +movl $2,-40(%ebp) +movl -40(%ebp),%edi +flds -44(%ebp) +fldl .LC611 +movl %edi,%esi +shrl $1,%esi +pushl %esi +fildl (%esp) +addl $4,%esp +fmulp %st(1),%st +andl $1,%edi +pushl %edi +fildl (%esp) +addl $4,%esp +faddp %st(1),%st +sub $4,%esp +fstps (%esp) +flds (%esp) +addl $4,%esp +fmulp %st(1),%st +fstps -44(%ebp) +flds .LC1474 +fcomps -44(%ebp) +fstsw %ax +sahf +je .LC1489 +movl $187,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1491 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1491: +.LC1489: +flds .LC860 +fstps -44(%ebp) +flds .LC544 +fstps -56(%ebp) +flds -44(%ebp) +fmuls -56(%ebp) +fstps -44(%ebp) +flds .LC1474 +fcomps -44(%ebp) +fstsw %ax +sahf +je .LC1493 +movl $188,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1495 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1495: +.LC1493: +flds .LC860 +fstps -44(%ebp) +fldl .LC425 +fstpl -64(%ebp) +flds -44(%ebp) +fmull -64(%ebp) +fstps -44(%ebp) +flds .LC1474 +fcomps -44(%ebp) +fstsw %ax +sahf +je .LC1497 +movl $189,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1499 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1499: +.LC1497: +fldl .LC889 +fstpl -52(%ebp) +movb $2,-25(%ebp) +fldl -52(%ebp) +movsbl -25(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fmulp %st(1),%st +fstpl -52(%ebp) +fldl .LC1503 +fcompl -52(%ebp) +fstsw %ax +sahf +je .LC1501 +movl $190,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1504 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1504: +.LC1501: +fldl .LC889 +fstpl -52(%ebp) +movw $2,-28(%ebp) +fldl -52(%ebp) +movswl -28(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fmulp %st(1),%st +fstpl -52(%ebp) +fldl .LC1503 +fcompl -52(%ebp) +fstsw %ax +sahf +je .LC1506 +movl $191,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1508 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1508: +.LC1506: +fldl .LC889 +fstpl -52(%ebp) +movl $2,-32(%ebp) +fldl -52(%ebp) +fimull -32(%ebp) +fstpl -52(%ebp) +fldl .LC1503 +fcompl -52(%ebp) +fstsw %ax +sahf +je .LC1510 +movl $192,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1512 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1512: +.LC1510: +fldl .LC889 +fstpl -52(%ebp) +movl $2,-36(%ebp) +fldl -52(%ebp) +fimull -36(%ebp) +fstpl -52(%ebp) +fldl .LC1503 +fcompl -52(%ebp) +fstsw %ax +sahf +je .LC1514 +movl $193,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1516 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1516: +.LC1514: +fldl .LC889 +fstpl -52(%ebp) +movl $2,-40(%ebp) +movl -40(%ebp),%edi +fldl -52(%ebp) +fldl .LC611 +movl %edi,%esi +shrl $1,%esi +pushl %esi +fildl (%esp) +addl $4,%esp +fmulp %st(1),%st +andl $1,%edi +pushl %edi +fildl (%esp) +addl $4,%esp +faddp %st(1),%st +fmulp %st(1),%st +fstpl -52(%ebp) +fldl .LC1503 +fcompl -52(%ebp) +fstsw %ax +sahf +je .LC1518 +movl $194,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1520 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1520: +.LC1518: +fldl .LC889 +fstpl -52(%ebp) +flds .LC544 +fstps -56(%ebp) +fldl -52(%ebp) +fmuls -56(%ebp) +fstpl -52(%ebp) +fldl .LC1503 +fcompl -52(%ebp) +fstsw %ax +sahf +je .LC1522 +movl $195,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1524 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1524: +.LC1522: +fldl .LC889 +fstpl -52(%ebp) +fldl .LC425 +fstpl -64(%ebp) +fldl -52(%ebp) +fmull -64(%ebp) +fstpl -52(%ebp) +fldl .LC1503 +fcompl -52(%ebp) +fstsw %ax +sahf +je .LC1526 +movl $196,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1528 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1528: +.LC1526: +movb $5,-9(%ebp) +movb $2,-25(%ebp) +movsbl -9(%ebp),%eax +movsbl -25(%ebp),%ecx +cdq +idivl %ecx +movl %eax,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $2,%edi +je .LC1530 +movl $197,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1532 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1532: +.LC1530: +movb $5,-9(%ebp) +movw $2,-28(%ebp) +movsbl -9(%ebp),%eax +movswl -28(%ebp),%ecx +cdq +idivl %ecx +movl %eax,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $2,%edi +je .LC1534 +movl $198,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1536 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1536: +.LC1534: +movb $5,-9(%ebp) +movl $2,-32(%ebp) +movsbl -9(%ebp),%eax +movl -32(%ebp),%ecx +cdq +idivl %ecx +movl %eax,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $2,%edi +je .LC1538 +movl $199,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1540 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1540: +.LC1538: +movb $5,-9(%ebp) +movl $2,-36(%ebp) +movsbl -9(%ebp),%eax +movl -36(%ebp),%ecx +cdq +idivl %ecx +movl %eax,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $2,%edi +je .LC1542 +movl $200,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1544 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1544: +.LC1542: +movb $5,-9(%ebp) +movl $2,-40(%ebp) +movsbl -9(%ebp),%edi +movl %edi,%eax +movl -40(%ebp),%ecx +xorl %edx,%edx +divl %ecx +movl %eax,%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $2,%edi +je .LC1546 +movl $201,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1548 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1548: +.LC1546: +movb $5,-9(%ebp) +flds .LC544 +fstps -56(%ebp) +movsbl -9(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fdivs -56(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $2,%edi +je .LC1550 +movl $202,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1552 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1552: +.LC1550: +movb $5,-9(%ebp) +fldl .LC425 +fstpl -64(%ebp) +movsbl -9(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fdivl -64(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $2,%edi +je .LC1554 +movl $203,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1556 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1556: +.LC1554: +movw $5,-12(%ebp) +movb $2,-25(%ebp) +movswl -12(%ebp),%eax +movsbl -25(%ebp),%ecx +cdq +idivl %ecx +movl %eax,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $2,%edi +je .LC1558 +movl $204,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1560 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1560: +.LC1558: +movw $5,-12(%ebp) +movw $2,-28(%ebp) +movswl -12(%ebp),%eax +movswl -28(%ebp),%ecx +cdq +idivl %ecx +movl %eax,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $2,%edi +je .LC1562 +movl $205,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1564 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1564: +.LC1562: +movw $5,-12(%ebp) +movl $2,-32(%ebp) +movswl -12(%ebp),%eax +movl -32(%ebp),%ecx +cdq +idivl %ecx +movl %eax,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $2,%edi +je .LC1566 +movl $206,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1568 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1568: +.LC1566: +movw $5,-12(%ebp) +movl $2,-36(%ebp) +movswl -12(%ebp),%eax +movl -36(%ebp),%ecx +cdq +idivl %ecx +movl %eax,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $2,%edi +je .LC1570 +movl $207,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1572 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1572: +.LC1570: +movw $5,-12(%ebp) +movl $2,-40(%ebp) +movswl -12(%ebp),%edi +movl %edi,%eax +movl -40(%ebp),%ecx +xorl %edx,%edx +divl %ecx +movl %eax,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $2,%edi +je .LC1574 +movl $208,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1576 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1576: +.LC1574: +movw $5,-12(%ebp) +flds .LC544 +fstps -56(%ebp) +movswl -12(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fdivs -56(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $2,%edi +je .LC1578 +movl $209,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1580 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1580: +.LC1578: +movw $5,-12(%ebp) +fldl .LC425 +fstpl -64(%ebp) +movswl -12(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fdivl -64(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $2,%edi +je .LC1582 +movl $210,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1584 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1584: +.LC1582: +movl $5,-16(%ebp) +movb $2,-25(%ebp) +movl -16(%ebp),%eax +movsbl -25(%ebp),%ecx +cdq +idivl %ecx +movl %eax,-16(%ebp) +cmpl $2,-16(%ebp) +je .LC1586 +movl $211,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1588 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1588: +.LC1586: +movl $5,-16(%ebp) +movw $2,-28(%ebp) +movl -16(%ebp),%eax +movswl -28(%ebp),%ecx +cdq +idivl %ecx +movl %eax,-16(%ebp) +cmpl $2,-16(%ebp) +je .LC1590 +movl $212,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1592 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1592: +.LC1590: +movl $5,-16(%ebp) +movl $2,-32(%ebp) +movl -16(%ebp),%eax +movl -32(%ebp),%ecx +cdq +idivl %ecx +movl %eax,-16(%ebp) +cmpl $2,-16(%ebp) +je .LC1594 +movl $213,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1596 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1596: +.LC1594: +movl $5,-16(%ebp) +movl $2,-36(%ebp) +movl -16(%ebp),%eax +movl -36(%ebp),%ecx +cdq +idivl %ecx +movl %eax,-16(%ebp) +cmpl $2,-16(%ebp) +je .LC1598 +movl $214,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1600 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1600: +.LC1598: +movl $5,-16(%ebp) +movl $2,-40(%ebp) +movl -16(%ebp),%edi +movl %edi,%eax +movl -40(%ebp),%ecx +xorl %edx,%edx +divl %ecx +movl %eax,%edi +movl %edi,-16(%ebp) +cmpl $2,-16(%ebp) +je .LC1602 +movl $215,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1604 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1604: +.LC1602: +movl $5,-16(%ebp) +flds .LC544 +fstps -56(%ebp) +fildl -16(%ebp) +fdivs -56(%ebp) +fistpl -16(%ebp) +cmpl $2,-16(%ebp) +je .LC1606 +movl $216,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1608 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1608: +.LC1606: +movl $5,-16(%ebp) +fldl .LC425 +fstpl -64(%ebp) +fldl -64(%ebp) +fidivrl -16(%ebp) +fistpl -16(%ebp) +cmpl $2,-16(%ebp) +je .LC1610 +movl $217,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1612 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1612: +.LC1610: +movl $5,-20(%ebp) +movb $2,-25(%ebp) +movl -20(%ebp),%eax +movsbl -25(%ebp),%ecx +cdq +idivl %ecx +movl %eax,-20(%ebp) +cmpl $2,-20(%ebp) +je .LC1614 +movl $218,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1616 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1616: +.LC1614: +movl $5,-20(%ebp) +movw $2,-28(%ebp) +movl -20(%ebp),%eax +movswl -28(%ebp),%ecx +cdq +idivl %ecx +movl %eax,-20(%ebp) +cmpl $2,-20(%ebp) +je .LC1618 +movl $219,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1620 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1620: +.LC1618: +movl $5,-20(%ebp) +movl $2,-32(%ebp) +movl -20(%ebp),%eax +movl -32(%ebp),%ecx +cdq +idivl %ecx +movl %eax,-20(%ebp) +cmpl $2,-20(%ebp) +je .LC1622 +movl $220,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1624 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1624: +.LC1622: +movl $5,-20(%ebp) +movl $2,-36(%ebp) +movl -20(%ebp),%eax +movl -36(%ebp),%ecx +cdq +idivl %ecx +movl %eax,-20(%ebp) +cmpl $2,-20(%ebp) +je .LC1626 +movl $221,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1628 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1628: +.LC1626: +movl $5,-20(%ebp) +movl $2,-40(%ebp) +movl -20(%ebp),%edi +movl %edi,%eax +movl -40(%ebp),%ecx +xorl %edx,%edx +divl %ecx +movl %eax,%edi +movl %edi,-20(%ebp) +cmpl $2,-20(%ebp) +je .LC1630 +movl $222,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1632 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1632: +.LC1630: +movl $5,-20(%ebp) +flds .LC544 +fstps -56(%ebp) +fildl -20(%ebp) +fdivs -56(%ebp) +fistpl -20(%ebp) +cmpl $2,-20(%ebp) +je .LC1634 +movl $223,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1636 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1636: +.LC1634: +movl $5,-20(%ebp) +fldl .LC425 +fstpl -64(%ebp) +fldl -64(%ebp) +fidivrl -20(%ebp) +fistpl -20(%ebp) +cmpl $2,-20(%ebp) +je .LC1638 +movl $224,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1640 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1640: +.LC1638: +movl $5,-24(%ebp) +movb $2,-25(%ebp) +movl -24(%ebp),%eax +movsbl -25(%ebp),%edi +movl %edi,%ecx +xorl %edx,%edx +divl %ecx +movl %eax,-24(%ebp) +movl -24(%ebp),%edi +cmpl $2,%edi +je .LC1642 +movl $225,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1644 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1644: +.LC1642: +movl $5,-24(%ebp) +movw $2,-28(%ebp) +movl -24(%ebp),%eax +movswl -28(%ebp),%edi +movl %edi,%ecx +xorl %edx,%edx +divl %ecx +movl %eax,-24(%ebp) +movl -24(%ebp),%edi +cmpl $2,%edi +je .LC1646 +movl $226,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1648 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1648: +.LC1646: +movl $5,-24(%ebp) +movl $2,-32(%ebp) +movl -24(%ebp),%eax +movl -32(%ebp),%edi +movl %edi,%ecx +xorl %edx,%edx +divl %ecx +movl %eax,-24(%ebp) +movl -24(%ebp),%edi +cmpl $2,%edi +je .LC1650 +movl $227,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1652 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1652: +.LC1650: +movl $5,-24(%ebp) +movl $2,-36(%ebp) +movl -24(%ebp),%eax +movl -36(%ebp),%edi +movl %edi,%ecx +xorl %edx,%edx +divl %ecx +movl %eax,-24(%ebp) +movl -24(%ebp),%edi +cmpl $2,%edi +je .LC1654 +movl $228,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1656 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1656: +.LC1654: +movl $5,-24(%ebp) +movl $2,-40(%ebp) +movl -24(%ebp),%eax +movl -40(%ebp),%ecx +xorl %edx,%edx +divl %ecx +movl %eax,-24(%ebp) +movl -24(%ebp),%edi +cmpl $2,%edi +je .LC1658 +movl $229,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1660 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1660: +.LC1658: +movl $5,-24(%ebp) +flds .LC544 +fstps -56(%ebp) +movl -24(%ebp),%edi +fldl .LC611 +movl %edi,%esi +shrl $1,%esi +pushl %esi +fildl (%esp) +addl $4,%esp +fmulp %st(1),%st +andl $1,%edi +pushl %edi +fildl (%esp) +addl $4,%esp +faddp %st(1),%st +sub $4,%esp +fstps (%esp) +flds (%esp) +addl $4,%esp +fdivs -56(%ebp) +fstps -224(%ebp) +flds .LC847 +fcomps -224(%ebp) +fstsw %ax +sahf +ja .LC1663 +flds -224(%ebp) +fsubs .LC847 +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +leal 0x80000000(%edi),%edi +movl %edi,-220(%ebp) +jmp .LC1664 +.LC1663: +flds -224(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movl %edi,-220(%ebp) +.LC1664: +movl -220(%ebp),%edi +movl %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $2,%edi +je .LC1665 +movl $230,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1667 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1667: +.LC1665: +movl $5,-24(%ebp) +fldl .LC425 +fstpl -64(%ebp) +movl -24(%ebp),%edi +fldl .LC611 +movl %edi,%esi +shrl $1,%esi +pushl %esi +fildl (%esp) +addl $4,%esp +fmulp %st(1),%st +andl $1,%edi +pushl %edi +fildl (%esp) +addl $4,%esp +faddp %st(1),%st +fdivl -64(%ebp) +fstpl -240(%ebp) +fldl .LC855 +fcompl -240(%ebp) +fstsw %ax +sahf +ja .LC1670 +fldl -240(%ebp) +fsubl .LC855 +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +leal 0x80000000(%edi),%edi +movl %edi,-232(%ebp) +jmp .LC1671 +.LC1670: +fldl -240(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movl %edi,-232(%ebp) +.LC1671: +movl -232(%ebp),%edi +movl %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $2,%edi +je .LC1672 +movl $231,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1674 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1674: +.LC1672: +flds .LC860 +fstps -44(%ebp) +movb $2,-25(%ebp) +flds -44(%ebp) +movsbl -25(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fdivp %st(1),%st +fstps -44(%ebp) +fldl .LC1678 +fcomps -44(%ebp) +fstsw %ax +sahf +je .LC1676 +movl $232,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1679 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1679: +.LC1676: +flds .LC860 +fstps -44(%ebp) +movw $2,-28(%ebp) +flds -44(%ebp) +movswl -28(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fdivp %st(1),%st +fstps -44(%ebp) +fldl .LC1678 +fcomps -44(%ebp) +fstsw %ax +sahf +je .LC1681 +movl $233,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1683 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1683: +.LC1681: +flds .LC860 +fstps -44(%ebp) +movl $2,-32(%ebp) +flds -44(%ebp) +fildl -32(%ebp) +fdivp %st(1),%st +fstps -44(%ebp) +fldl .LC1678 +fcomps -44(%ebp) +fstsw %ax +sahf +je .LC1685 +movl $234,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1687 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1687: +.LC1685: +flds .LC860 +fstps -44(%ebp) +movl $2,-36(%ebp) +flds -44(%ebp) +fildl -36(%ebp) +fdivp %st(1),%st +fstps -44(%ebp) +fldl .LC1678 +fcomps -44(%ebp) +fstsw %ax +sahf +je .LC1689 +movl $235,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1691 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1691: +.LC1689: +flds .LC860 +fstps -44(%ebp) +movl $2,-40(%ebp) +movl -40(%ebp),%edi +flds -44(%ebp) +fldl .LC611 +movl %edi,%esi +shrl $1,%esi +pushl %esi +fildl (%esp) +addl $4,%esp +fmulp %st(1),%st +andl $1,%edi +pushl %edi +fildl (%esp) +addl $4,%esp +faddp %st(1),%st +sub $4,%esp +fstps (%esp) +flds (%esp) +addl $4,%esp +fdivp %st(1),%st +fstps -44(%ebp) +fldl .LC1678 +fcomps -44(%ebp) +fstsw %ax +sahf +je .LC1693 +movl $236,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1695 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1695: +.LC1693: +flds .LC860 +fstps -44(%ebp) +flds .LC544 +fstps -56(%ebp) +flds -44(%ebp) +fdivs -56(%ebp) +fstps -44(%ebp) +fldl .LC1678 +fcomps -44(%ebp) +fstsw %ax +sahf +je .LC1697 +movl $237,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1699 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1699: +.LC1697: +flds .LC860 +fstps -44(%ebp) +fldl .LC425 +fstpl -64(%ebp) +flds -44(%ebp) +fdivl -64(%ebp) +fstps -44(%ebp) +fldl .LC1678 +fcomps -44(%ebp) +fstsw %ax +sahf +je .LC1701 +movl $238,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1703 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1703: +.LC1701: +fldl .LC889 +fstpl -52(%ebp) +movb $2,-25(%ebp) +fldl -52(%ebp) +movsbl -25(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fdivp %st(1),%st +fstpl -52(%ebp) +fldl .LC1678 +fcompl -52(%ebp) +fstsw %ax +sahf +je .LC1705 +movl $239,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1707 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1707: +.LC1705: +fldl .LC889 +fstpl -52(%ebp) +movw $2,-28(%ebp) +fldl -52(%ebp) +movswl -28(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fdivp %st(1),%st +fstpl -52(%ebp) +fldl .LC1678 +fcompl -52(%ebp) +fstsw %ax +sahf +je .LC1709 +movl $240,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1711 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1711: +.LC1709: +fldl .LC889 +fstpl -52(%ebp) +movl $2,-32(%ebp) +fldl -52(%ebp) +fidivl -32(%ebp) +fstpl -52(%ebp) +fldl .LC1678 +fcompl -52(%ebp) +fstsw %ax +sahf +je .LC1713 +movl $241,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1715 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1715: +.LC1713: +fldl .LC889 +fstpl -52(%ebp) +movl $2,-36(%ebp) +fldl -52(%ebp) +fidivl -36(%ebp) +fstpl -52(%ebp) +fldl .LC1678 +fcompl -52(%ebp) +fstsw %ax +sahf +je .LC1717 +movl $242,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1719 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1719: +.LC1717: +fldl .LC889 +fstpl -52(%ebp) +movl $2,-40(%ebp) +movl -40(%ebp),%edi +fldl -52(%ebp) +fldl .LC611 +movl %edi,%esi +shrl $1,%esi +pushl %esi +fildl (%esp) +addl $4,%esp +fmulp %st(1),%st +andl $1,%edi +pushl %edi +fildl (%esp) +addl $4,%esp +faddp %st(1),%st +fdivp %st(1),%st +fstpl -52(%ebp) +fldl .LC1678 +fcompl -52(%ebp) +fstsw %ax +sahf +je .LC1721 +movl $243,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1723 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1723: +.LC1721: +fldl .LC889 +fstpl -52(%ebp) +flds .LC544 +fstps -56(%ebp) +fldl -52(%ebp) +fdivs -56(%ebp) +fstpl -52(%ebp) +fldl .LC1678 +fcompl -52(%ebp) +fstsw %ax +sahf +je .LC1725 +movl $244,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1727 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1727: +.LC1725: +fldl .LC889 +fstpl -52(%ebp) +fldl .LC425 +fstpl -64(%ebp) +fldl -52(%ebp) +fdivl -64(%ebp) +fstpl -52(%ebp) +fldl .LC1678 +fcompl -52(%ebp) +fstsw %ax +sahf +je .LC1729 +movl $245,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1731 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1731: +.LC1729: +movb $5,-9(%ebp) +movb $2,-25(%ebp) +movsbl -9(%ebp),%eax +movsbl -25(%ebp),%ecx +cdq +idivl %ecx +movl %edx,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $1,%edi +je .LC1733 +movl $246,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1735 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1735: +.LC1733: +movb $5,-9(%ebp) +movw $2,-28(%ebp) +movsbl -9(%ebp),%eax +movswl -28(%ebp),%ecx +cdq +idivl %ecx +movl %edx,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $1,%edi +je .LC1737 +movl $247,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1739 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1739: +.LC1737: +movb $5,-9(%ebp) +movl $2,-32(%ebp) +movsbl -9(%ebp),%eax +movl -32(%ebp),%ecx +cdq +idivl %ecx +movl %edx,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $1,%edi +je .LC1741 +movl $248,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1743 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1743: +.LC1741: +movb $5,-9(%ebp) +movl $2,-36(%ebp) +movsbl -9(%ebp),%eax +movl -36(%ebp),%ecx +cdq +idivl %ecx +movl %edx,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $1,%edi +je .LC1745 +movl $249,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1747 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1747: +.LC1745: +movb $5,-9(%ebp) +movl $2,-40(%ebp) +movsbl -9(%ebp),%edi +movl %edi,%eax +movl -40(%ebp),%ecx +xorl %edx,%edx +divl %ecx +movl %edx,%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $1,%edi +je .LC1749 +movl $250,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1751 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1751: +.LC1749: +movw $5,-12(%ebp) +movb $2,-25(%ebp) +movswl -12(%ebp),%eax +movsbl -25(%ebp),%ecx +cdq +idivl %ecx +movl %edx,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $1,%edi +je .LC1753 +movl $251,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1755 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1755: +.LC1753: +movw $5,-12(%ebp) +movw $2,-28(%ebp) +movswl -12(%ebp),%eax +movswl -28(%ebp),%ecx +cdq +idivl %ecx +movl %edx,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $1,%edi +je .LC1757 +movl $252,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1759 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1759: +.LC1757: +movw $5,-12(%ebp) +movl $2,-32(%ebp) +movswl -12(%ebp),%eax +movl -32(%ebp),%ecx +cdq +idivl %ecx +movl %edx,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $1,%edi +je .LC1761 +movl $253,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1763 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1763: +.LC1761: +movw $5,-12(%ebp) +movl $2,-36(%ebp) +movswl -12(%ebp),%eax +movl -36(%ebp),%ecx +cdq +idivl %ecx +movl %edx,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $1,%edi +je .LC1765 +movl $254,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1767 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1767: +.LC1765: +movw $5,-12(%ebp) +movl $2,-40(%ebp) +movswl -12(%ebp),%edi +movl %edi,%eax +movl -40(%ebp),%ecx +xorl %edx,%edx +divl %ecx +movl %edx,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $1,%edi +je .LC1769 +movl $255,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1771 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1771: +.LC1769: +movl $5,-16(%ebp) +movb $2,-25(%ebp) +movl -16(%ebp),%eax +movsbl -25(%ebp),%ecx +cdq +idivl %ecx +movl %edx,-16(%ebp) +cmpl $1,-16(%ebp) +je .LC1773 +movl $256,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1775 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1775: +.LC1773: +movl $5,-16(%ebp) +movw $2,-28(%ebp) +movl -16(%ebp),%eax +movswl -28(%ebp),%ecx +cdq +idivl %ecx +movl %edx,-16(%ebp) +cmpl $1,-16(%ebp) +je .LC1777 +movl $257,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1779 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1779: +.LC1777: +movl $5,-16(%ebp) +movl $2,-32(%ebp) +movl -16(%ebp),%eax +movl -32(%ebp),%ecx +cdq +idivl %ecx +movl %edx,-16(%ebp) +cmpl $1,-16(%ebp) +je .LC1781 +movl $258,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1783 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1783: +.LC1781: +movl $5,-16(%ebp) +movl $2,-36(%ebp) +movl -16(%ebp),%eax +movl -36(%ebp),%ecx +cdq +idivl %ecx +movl %edx,-16(%ebp) +cmpl $1,-16(%ebp) +je .LC1785 +movl $259,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1787 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1787: +.LC1785: +movl $5,-16(%ebp) +movl $2,-40(%ebp) +movl -16(%ebp),%edi +movl %edi,%eax +movl -40(%ebp),%ecx +xorl %edx,%edx +divl %ecx +movl %edx,%edi +movl %edi,-16(%ebp) +cmpl $1,-16(%ebp) +je .LC1789 +movl $260,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1791 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1791: +.LC1789: +movl $5,-20(%ebp) +movb $2,-25(%ebp) +movl -20(%ebp),%eax +movsbl -25(%ebp),%ecx +cdq +idivl %ecx +movl %edx,-20(%ebp) +cmpl $1,-20(%ebp) +je .LC1793 +movl $261,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1795 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1795: +.LC1793: +movl $5,-20(%ebp) +movw $2,-28(%ebp) +movl -20(%ebp),%eax +movswl -28(%ebp),%ecx +cdq +idivl %ecx +movl %edx,-20(%ebp) +cmpl $1,-20(%ebp) +je .LC1797 +movl $262,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1799 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1799: +.LC1797: +movl $5,-20(%ebp) +movl $2,-32(%ebp) +movl -20(%ebp),%eax +movl -32(%ebp),%ecx +cdq +idivl %ecx +movl %edx,-20(%ebp) +cmpl $1,-20(%ebp) +je .LC1801 +movl $263,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1803 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1803: +.LC1801: +movl $5,-20(%ebp) +movl $2,-36(%ebp) +movl -20(%ebp),%eax +movl -36(%ebp),%ecx +cdq +idivl %ecx +movl %edx,-20(%ebp) +cmpl $1,-20(%ebp) +je .LC1805 +movl $264,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1807 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1807: +.LC1805: +movl $5,-20(%ebp) +movl $2,-40(%ebp) +movl -20(%ebp),%edi +movl %edi,%eax +movl -40(%ebp),%ecx +xorl %edx,%edx +divl %ecx +movl %edx,%edi +movl %edi,-20(%ebp) +cmpl $1,-20(%ebp) +je .LC1809 +movl $265,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1811 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1811: +.LC1809: +movl $5,-24(%ebp) +movb $2,-25(%ebp) +movl -24(%ebp),%eax +movsbl -25(%ebp),%edi +movl %edi,%ecx +xorl %edx,%edx +divl %ecx +movl %edx,-24(%ebp) +movl -24(%ebp),%edi +cmpl $1,%edi +je .LC1813 +movl $266,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1815 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1815: +.LC1813: +movl $5,-24(%ebp) +movw $2,-28(%ebp) +movl -24(%ebp),%eax +movswl -28(%ebp),%edi +movl %edi,%ecx +xorl %edx,%edx +divl %ecx +movl %edx,-24(%ebp) +movl -24(%ebp),%edi +cmpl $1,%edi +je .LC1817 +movl $267,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1819 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1819: +.LC1817: +movl $5,-24(%ebp) +movl $2,-32(%ebp) +movl -24(%ebp),%eax +movl -32(%ebp),%edi +movl %edi,%ecx +xorl %edx,%edx +divl %ecx +movl %edx,-24(%ebp) +movl -24(%ebp),%edi +cmpl $1,%edi +je .LC1821 +movl $268,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1823 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1823: +.LC1821: +movl $5,-24(%ebp) +movl $2,-36(%ebp) +movl -24(%ebp),%eax +movl -36(%ebp),%edi +movl %edi,%ecx +xorl %edx,%edx +divl %ecx +movl %edx,-24(%ebp) +movl -24(%ebp),%edi +cmpl $1,%edi +je .LC1825 +movl $269,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1827 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1827: +.LC1825: +movl $5,-24(%ebp) +movl $2,-40(%ebp) +movl -24(%ebp),%eax +movl -40(%ebp),%ecx +xorl %edx,%edx +divl %ecx +movl %edx,-24(%ebp) +movl -24(%ebp),%edi +cmpl $1,%edi +je .LC1829 +movl $270,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1831 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1831: +.LC1829: +movb $5,-9(%ebp) +movb $2,-25(%ebp) +movsbl -9(%ebp),%edi +movsbl -25(%ebp),%ecx +movl %edi,%eax +sarl %cl,%eax +movl %eax,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $1,%edi +je .LC1833 +movl $271,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1835 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1835: +.LC1833: +movb $5,-9(%ebp) +movw $2,-28(%ebp) +movsbl -9(%ebp),%edi +movswl -28(%ebp),%ecx +movl %edi,%eax +sarl %cl,%eax +movl %eax,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $1,%edi +je .LC1837 +movl $272,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1839 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1839: +.LC1837: +movb $5,-9(%ebp) +movl $2,-32(%ebp) +movsbl -9(%ebp),%edi +movl -32(%ebp),%ecx +movl %edi,%eax +sarl %cl,%eax +movl %eax,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $1,%edi +je .LC1841 +movl $273,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1843 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1843: +.LC1841: +movb $5,-9(%ebp) +movl $2,-36(%ebp) +movsbl -9(%ebp),%edi +movl -36(%ebp),%ecx +movl %edi,%eax +sarl %cl,%eax +movl %eax,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $1,%edi +je .LC1845 +movl $274,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1847 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1847: +.LC1845: +movb $5,-9(%ebp) +movl $2,-40(%ebp) +movsbl -9(%ebp),%edi +movl -40(%ebp),%esi +movl %esi,%ecx +movl %edi,%eax +sarl %cl,%eax +movl %eax,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $1,%edi +je .LC1849 +movl $275,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1851 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1851: +.LC1849: +movw $5,-12(%ebp) +movb $2,-25(%ebp) +movswl -12(%ebp),%edi +movsbl -25(%ebp),%ecx +movl %edi,%eax +sarl %cl,%eax +movl %eax,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $1,%edi +je .LC1853 +movl $276,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1855 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1855: +.LC1853: +movw $5,-12(%ebp) +movw $2,-28(%ebp) +movswl -12(%ebp),%edi +movswl -28(%ebp),%ecx +movl %edi,%eax +sarl %cl,%eax +movl %eax,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $1,%edi +je .LC1857 +movl $277,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1859 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1859: +.LC1857: +movw $5,-12(%ebp) +movl $2,-32(%ebp) +movswl -12(%ebp),%edi +movl -32(%ebp),%ecx +movl %edi,%eax +sarl %cl,%eax +movl %eax,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $1,%edi +je .LC1861 +movl $278,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1863 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1863: +.LC1861: +movw $5,-12(%ebp) +movl $2,-36(%ebp) +movswl -12(%ebp),%edi +movl -36(%ebp),%ecx +movl %edi,%eax +sarl %cl,%eax +movl %eax,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $1,%edi +je .LC1865 +movl $279,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1867 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1867: +.LC1865: +movw $5,-12(%ebp) +movl $2,-40(%ebp) +movswl -12(%ebp),%edi +movl -40(%ebp),%esi +movl %esi,%ecx +movl %edi,%eax +sarl %cl,%eax +movl %eax,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $1,%edi +je .LC1869 +movl $280,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1871 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1871: +.LC1869: +movl $5,-16(%ebp) +movb $2,-25(%ebp) +movsbl -25(%ebp),%ecx +sarl %cl,-16(%ebp) +cmpl $1,-16(%ebp) +je .LC1873 +movl $281,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1875 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1875: +.LC1873: +movl $5,-16(%ebp) +movw $2,-28(%ebp) +movswl -28(%ebp),%ecx +sarl %cl,-16(%ebp) +cmpl $1,-16(%ebp) +je .LC1877 +movl $282,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1879 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1879: +.LC1877: +movl $5,-16(%ebp) +movl $2,-32(%ebp) +movl -32(%ebp),%ecx +sarl %cl,-16(%ebp) +cmpl $1,-16(%ebp) +je .LC1881 +movl $283,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1883 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1883: +.LC1881: +movl $5,-16(%ebp) +movl $2,-36(%ebp) +movl -36(%ebp),%ecx +sarl %cl,-16(%ebp) +cmpl $1,-16(%ebp) +je .LC1885 +movl $284,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1887 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1887: +.LC1885: +movl $5,-16(%ebp) +movl $2,-40(%ebp) +movl -40(%ebp),%edi +movl %edi,%ecx +sarl %cl,-16(%ebp) +cmpl $1,-16(%ebp) +je .LC1889 +movl $285,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1891 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1891: +.LC1889: +movl $5,-20(%ebp) +movb $2,-25(%ebp) +movsbl -25(%ebp),%ecx +sarl %cl,-20(%ebp) +cmpl $1,-20(%ebp) +je .LC1893 +movl $286,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1895 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1895: +.LC1893: +movl $5,-20(%ebp) +movw $2,-28(%ebp) +movswl -28(%ebp),%ecx +sarl %cl,-20(%ebp) +cmpl $1,-20(%ebp) +je .LC1897 +movl $287,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1899 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1899: +.LC1897: +movl $5,-20(%ebp) +movl $2,-32(%ebp) +movl -32(%ebp),%ecx +sarl %cl,-20(%ebp) +cmpl $1,-20(%ebp) +je .LC1901 +movl $288,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1903 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1903: +.LC1901: +movl $5,-20(%ebp) +movl $2,-36(%ebp) +movl -36(%ebp),%ecx +sarl %cl,-20(%ebp) +cmpl $1,-20(%ebp) +je .LC1905 +movl $289,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1907 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1907: +.LC1905: +movl $5,-20(%ebp) +movl $2,-40(%ebp) +movl -40(%ebp),%edi +movl %edi,%ecx +sarl %cl,-20(%ebp) +cmpl $1,-20(%ebp) +je .LC1909 +movl $290,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1911 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1911: +.LC1909: +movl $5,-24(%ebp) +movb $2,-25(%ebp) +movl -24(%ebp),%edi +movsbl -25(%ebp),%ecx +movl %edi,%eax +shrl %cl,%eax +movl %eax,-24(%ebp) +movl -24(%ebp),%edi +cmpl $1,%edi +je .LC1913 +movl $291,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1915 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1915: +.LC1913: +movl $5,-24(%ebp) +movw $2,-28(%ebp) +movl -24(%ebp),%edi +movswl -28(%ebp),%ecx +movl %edi,%eax +shrl %cl,%eax +movl %eax,-24(%ebp) +movl -24(%ebp),%edi +cmpl $1,%edi +je .LC1917 +movl $292,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1919 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1919: +.LC1917: +movl $5,-24(%ebp) +movl $2,-32(%ebp) +movl -24(%ebp),%edi +movl -32(%ebp),%ecx +movl %edi,%eax +shrl %cl,%eax +movl %eax,-24(%ebp) +movl -24(%ebp),%edi +cmpl $1,%edi +je .LC1921 +movl $293,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1923 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1923: +.LC1921: +movl $5,-24(%ebp) +movl $2,-36(%ebp) +movl -24(%ebp),%edi +movl -36(%ebp),%ecx +movl %edi,%eax +shrl %cl,%eax +movl %eax,-24(%ebp) +movl -24(%ebp),%edi +cmpl $1,%edi +je .LC1925 +movl $294,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1927 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1927: +.LC1925: +movl $5,-24(%ebp) +movl $2,-40(%ebp) +movl -24(%ebp),%edi +movl -40(%ebp),%esi +movl %esi,%ecx +movl %edi,%eax +shrl %cl,%eax +movl %eax,-24(%ebp) +movl -24(%ebp),%edi +cmpl $1,%edi +je .LC1929 +movl $295,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1931 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1931: +.LC1929: +movb $5,-9(%ebp) +movb $2,-25(%ebp) +movsbl -9(%ebp),%edi +movsbl -25(%ebp),%ecx +movl %edi,%eax +sall %cl,%eax +movl %eax,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $20,%edi +je .LC1933 +movl $296,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1935 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1935: +.LC1933: +movb $5,-9(%ebp) +movw $2,-28(%ebp) +movsbl -9(%ebp),%edi +movswl -28(%ebp),%ecx +movl %edi,%eax +sall %cl,%eax +movl %eax,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $20,%edi +je .LC1937 +movl $297,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1939 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1939: +.LC1937: +movb $5,-9(%ebp) +movl $2,-32(%ebp) +movsbl -9(%ebp),%edi +movl -32(%ebp),%ecx +movl %edi,%eax +sall %cl,%eax +movl %eax,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $20,%edi +je .LC1941 +movl $298,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1943 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1943: +.LC1941: +movb $5,-9(%ebp) +movl $2,-36(%ebp) +movsbl -9(%ebp),%edi +movl -36(%ebp),%ecx +movl %edi,%eax +sall %cl,%eax +movl %eax,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $20,%edi +je .LC1945 +movl $299,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1947 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1947: +.LC1945: +movb $5,-9(%ebp) +movl $2,-40(%ebp) +movsbl -9(%ebp),%edi +movl -40(%ebp),%esi +movl %esi,%ecx +movl %edi,%eax +sall %cl,%eax +movl %eax,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $20,%edi +je .LC1949 +movl $300,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1951 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1951: +.LC1949: +movw $5,-12(%ebp) +movb $2,-25(%ebp) +movswl -12(%ebp),%edi +movsbl -25(%ebp),%ecx +movl %edi,%eax +sall %cl,%eax +movl %eax,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $20,%edi +je .LC1953 +movl $301,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1955 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1955: +.LC1953: +movw $5,-12(%ebp) +movw $2,-28(%ebp) +movswl -12(%ebp),%edi +movswl -28(%ebp),%ecx +movl %edi,%eax +sall %cl,%eax +movl %eax,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $20,%edi +je .LC1957 +movl $302,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1959 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1959: +.LC1957: +movw $5,-12(%ebp) +movl $2,-32(%ebp) +movswl -12(%ebp),%edi +movl -32(%ebp),%ecx +movl %edi,%eax +sall %cl,%eax +movl %eax,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $20,%edi +je .LC1961 +movl $303,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1963 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1963: +.LC1961: +movw $5,-12(%ebp) +movl $2,-36(%ebp) +movswl -12(%ebp),%edi +movl -36(%ebp),%ecx +movl %edi,%eax +sall %cl,%eax +movl %eax,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $20,%edi +je .LC1965 +movl $304,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1967 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1967: +.LC1965: +movw $5,-12(%ebp) +movl $2,-40(%ebp) +movswl -12(%ebp),%edi +movl -40(%ebp),%esi +movl %esi,%ecx +movl %edi,%eax +sall %cl,%eax +movl %eax,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $20,%edi +je .LC1969 +movl $305,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1971 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1971: +.LC1969: +movl $5,-16(%ebp) +movb $2,-25(%ebp) +movsbl -25(%ebp),%ecx +sall %cl,-16(%ebp) +cmpl $20,-16(%ebp) +je .LC1973 +movl $306,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1975 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1975: +.LC1973: +movl $5,-16(%ebp) +movw $2,-28(%ebp) +movswl -28(%ebp),%ecx +sall %cl,-16(%ebp) +cmpl $20,-16(%ebp) +je .LC1977 +movl $307,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1979 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1979: +.LC1977: +movl $5,-16(%ebp) +movl $2,-32(%ebp) +movl -32(%ebp),%ecx +sall %cl,-16(%ebp) +cmpl $20,-16(%ebp) +je .LC1981 +movl $308,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1983 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1983: +.LC1981: +movl $5,-16(%ebp) +movl $2,-36(%ebp) +movl -36(%ebp),%ecx +sall %cl,-16(%ebp) +cmpl $20,-16(%ebp) +je .LC1985 +movl $309,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1987 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1987: +.LC1985: +movl $5,-16(%ebp) +movl $2,-40(%ebp) +movl -40(%ebp),%edi +movl %edi,%ecx +sall %cl,-16(%ebp) +cmpl $20,-16(%ebp) +je .LC1989 +movl $310,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1991 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1991: +.LC1989: +movl $5,-20(%ebp) +movb $2,-25(%ebp) +movsbl -25(%ebp),%ecx +sall %cl,-20(%ebp) +cmpl $20,-20(%ebp) +je .LC1993 +movl $311,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1995 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1995: +.LC1993: +movl $5,-20(%ebp) +movw $2,-28(%ebp) +movswl -28(%ebp),%ecx +sall %cl,-20(%ebp) +cmpl $20,-20(%ebp) +je .LC1997 +movl $312,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC1999 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC1999: +.LC1997: +movl $5,-20(%ebp) +movl $2,-32(%ebp) +movl -32(%ebp),%ecx +sall %cl,-20(%ebp) +cmpl $20,-20(%ebp) +je .LC2001 +movl $313,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2003 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2003: +.LC2001: +movl $5,-20(%ebp) +movl $2,-36(%ebp) +movl -36(%ebp),%ecx +sall %cl,-20(%ebp) +cmpl $20,-20(%ebp) +je .LC2005 +movl $314,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2007 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2007: +.LC2005: +movl $5,-20(%ebp) +movl $2,-40(%ebp) +movl -40(%ebp),%edi +movl %edi,%ecx +sall %cl,-20(%ebp) +cmpl $20,-20(%ebp) +je .LC2009 +movl $315,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2011 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2011: +.LC2009: +movl $5,-24(%ebp) +movb $2,-25(%ebp) +movl -24(%ebp),%edi +movsbl -25(%ebp),%ecx +movl %edi,%eax +shll %cl,%eax +movl %eax,-24(%ebp) +movl -24(%ebp),%edi +cmpl $20,%edi +je .LC2013 +movl $316,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2015 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2015: +.LC2013: +movl $5,-24(%ebp) +movw $2,-28(%ebp) +movl -24(%ebp),%edi +movswl -28(%ebp),%ecx +movl %edi,%eax +shll %cl,%eax +movl %eax,-24(%ebp) +movl -24(%ebp),%edi +cmpl $20,%edi +je .LC2017 +movl $317,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2019 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2019: +.LC2017: +movl $5,-24(%ebp) +movl $2,-32(%ebp) +movl -24(%ebp),%edi +movl -32(%ebp),%ecx +movl %edi,%eax +shll %cl,%eax +movl %eax,-24(%ebp) +movl -24(%ebp),%edi +cmpl $20,%edi +je .LC2021 +movl $318,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2023 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2023: +.LC2021: +movl $5,-24(%ebp) +movl $2,-36(%ebp) +movl -24(%ebp),%edi +movl -36(%ebp),%ecx +movl %edi,%eax +shll %cl,%eax +movl %eax,-24(%ebp) +movl -24(%ebp),%edi +cmpl $20,%edi +je .LC2025 +movl $319,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2027 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2027: +.LC2025: +movl $5,-24(%ebp) +movl $2,-40(%ebp) +movl -24(%ebp),%edi +movl -40(%ebp),%esi +movl %esi,%ecx +movl %edi,%eax +shll %cl,%eax +movl %eax,-24(%ebp) +movl -24(%ebp),%edi +cmpl $20,%edi +je .LC2029 +movl $320,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2031 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2031: +.LC2029: +movb $12,-9(%ebp) +movb $10,-25(%ebp) +movsbl -9(%ebp),%edi +movsbl -25(%ebp),%esi +andl %esi,%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $8,%edi +je .LC2033 +movl $321,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2035 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2035: +.LC2033: +movb $12,-9(%ebp) +movw $10,-28(%ebp) +movsbl -9(%ebp),%edi +movswl -28(%ebp),%esi +andl %esi,%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $8,%edi +je .LC2037 +movl $322,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2039 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2039: +.LC2037: +movb $12,-9(%ebp) +movl $10,-32(%ebp) +movsbl -9(%ebp),%edi +andl -32(%ebp),%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $8,%edi +je .LC2041 +movl $323,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2043 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2043: +.LC2041: +movb $12,-9(%ebp) +movl $10,-36(%ebp) +movsbl -9(%ebp),%edi +andl -36(%ebp),%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $8,%edi +je .LC2045 +movl $324,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2047 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2047: +.LC2045: +movb $12,-9(%ebp) +movl $10,-40(%ebp) +movsbl -9(%ebp),%edi +andl -40(%ebp),%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $8,%edi +je .LC2049 +movl $325,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2051 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2051: +.LC2049: +movw $12,-12(%ebp) +movb $10,-25(%ebp) +movswl -12(%ebp),%edi +movsbl -25(%ebp),%esi +andl %esi,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $8,%edi +je .LC2053 +movl $326,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2055 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2055: +.LC2053: +movw $12,-12(%ebp) +movw $10,-28(%ebp) +movswl -12(%ebp),%edi +movswl -28(%ebp),%esi +andl %esi,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $8,%edi +je .LC2057 +movl $327,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2059 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2059: +.LC2057: +movw $12,-12(%ebp) +movl $10,-32(%ebp) +movswl -12(%ebp),%edi +andl -32(%ebp),%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $8,%edi +je .LC2061 +movl $328,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2063 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2063: +.LC2061: +movw $12,-12(%ebp) +movl $10,-36(%ebp) +movswl -12(%ebp),%edi +andl -36(%ebp),%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $8,%edi +je .LC2065 +movl $329,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2067 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2067: +.LC2065: +movw $12,-12(%ebp) +movl $10,-40(%ebp) +movswl -12(%ebp),%edi +andl -40(%ebp),%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $8,%edi +je .LC2069 +movl $330,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2071 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2071: +.LC2069: +movl $12,-16(%ebp) +movb $10,-25(%ebp) +movsbl -25(%ebp),%edi +andl %edi,-16(%ebp) +cmpl $8,-16(%ebp) +je .LC2073 +movl $331,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2075 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2075: +.LC2073: +movl $12,-16(%ebp) +movw $10,-28(%ebp) +movswl -28(%ebp),%edi +andl %edi,-16(%ebp) +cmpl $8,-16(%ebp) +je .LC2077 +movl $332,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2079 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2079: +.LC2077: +movl $12,-16(%ebp) +movl $10,-32(%ebp) +movl -32(%ebp),%edi +andl %edi,-16(%ebp) +cmpl $8,-16(%ebp) +je .LC2081 +movl $333,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2083 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2083: +.LC2081: +movl $12,-16(%ebp) +movl $10,-36(%ebp) +movl -36(%ebp),%edi +andl %edi,-16(%ebp) +cmpl $8,-16(%ebp) +je .LC2085 +movl $334,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2087 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2087: +.LC2085: +movl $12,-16(%ebp) +movl $10,-40(%ebp) +movl -16(%ebp),%edi +andl -40(%ebp),%edi +movl %edi,-16(%ebp) +cmpl $8,-16(%ebp) +je .LC2089 +movl $335,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2091 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2091: +.LC2089: +movl $12,-20(%ebp) +movb $10,-25(%ebp) +movsbl -25(%ebp),%edi +andl %edi,-20(%ebp) +cmpl $8,-20(%ebp) +je .LC2093 +movl $336,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2095 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2095: +.LC2093: +movl $12,-20(%ebp) +movw $10,-28(%ebp) +movswl -28(%ebp),%edi +andl %edi,-20(%ebp) +cmpl $8,-20(%ebp) +je .LC2097 +movl $337,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2099 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2099: +.LC2097: +movl $12,-20(%ebp) +movl $10,-32(%ebp) +movl -32(%ebp),%edi +andl %edi,-20(%ebp) +cmpl $8,-20(%ebp) +je .LC2101 +movl $338,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2103 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2103: +.LC2101: +movl $12,-20(%ebp) +movl $10,-36(%ebp) +movl -36(%ebp),%edi +andl %edi,-20(%ebp) +cmpl $8,-20(%ebp) +je .LC2105 +movl $339,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2107 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2107: +.LC2105: +movl $12,-20(%ebp) +movl $10,-40(%ebp) +movl -20(%ebp),%edi +andl -40(%ebp),%edi +movl %edi,-20(%ebp) +cmpl $8,-20(%ebp) +je .LC2109 +movl $340,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2111 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2111: +.LC2109: +movl $12,-24(%ebp) +movb $10,-25(%ebp) +movsbl -25(%ebp),%edi +andl %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $8,%edi +je .LC2113 +movl $341,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2115 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2115: +.LC2113: +movl $12,-24(%ebp) +movw $10,-28(%ebp) +movswl -28(%ebp),%edi +andl %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $8,%edi +je .LC2117 +movl $342,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2119 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2119: +.LC2117: +movl $12,-24(%ebp) +movl $10,-32(%ebp) +movl -32(%ebp),%edi +andl %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $8,%edi +je .LC2121 +movl $343,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2123 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2123: +.LC2121: +movl $12,-24(%ebp) +movl $10,-36(%ebp) +movl -36(%ebp),%edi +andl %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $8,%edi +je .LC2125 +movl $344,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2127 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2127: +.LC2125: +movl $12,-24(%ebp) +movl $10,-40(%ebp) +movl -40(%ebp),%edi +andl %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $8,%edi +je .LC2129 +movl $345,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2131 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2131: +.LC2129: +movb $12,-9(%ebp) +movb $10,-25(%ebp) +movsbl -9(%ebp),%edi +movsbl -25(%ebp),%esi +xorl %esi,%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $6,%edi +je .LC2133 +movl $346,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2135 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2135: +.LC2133: +movb $12,-9(%ebp) +movw $10,-28(%ebp) +movsbl -9(%ebp),%edi +movswl -28(%ebp),%esi +xorl %esi,%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $6,%edi +je .LC2137 +movl $347,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2139 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2139: +.LC2137: +movb $12,-9(%ebp) +movl $10,-32(%ebp) +movsbl -9(%ebp),%edi +xorl -32(%ebp),%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $6,%edi +je .LC2141 +movl $348,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2143 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2143: +.LC2141: +movb $12,-9(%ebp) +movl $10,-36(%ebp) +movsbl -9(%ebp),%edi +xorl -36(%ebp),%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $6,%edi +je .LC2145 +movl $349,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2147 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2147: +.LC2145: +movb $12,-9(%ebp) +movl $10,-40(%ebp) +movsbl -9(%ebp),%edi +xorl -40(%ebp),%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $6,%edi +je .LC2149 +movl $350,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2151 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2151: +.LC2149: +movw $12,-12(%ebp) +movb $10,-25(%ebp) +movswl -12(%ebp),%edi +movsbl -25(%ebp),%esi +xorl %esi,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $6,%edi +je .LC2153 +movl $351,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2155 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2155: +.LC2153: +movw $12,-12(%ebp) +movw $10,-28(%ebp) +movswl -12(%ebp),%edi +movswl -28(%ebp),%esi +xorl %esi,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $6,%edi +je .LC2157 +movl $352,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2159 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2159: +.LC2157: +movw $12,-12(%ebp) +movl $10,-32(%ebp) +movswl -12(%ebp),%edi +xorl -32(%ebp),%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $6,%edi +je .LC2161 +movl $353,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2163 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2163: +.LC2161: +movw $12,-12(%ebp) +movl $10,-36(%ebp) +movswl -12(%ebp),%edi +xorl -36(%ebp),%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $6,%edi +je .LC2165 +movl $354,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2167 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2167: +.LC2165: +movw $12,-12(%ebp) +movl $10,-40(%ebp) +movswl -12(%ebp),%edi +xorl -40(%ebp),%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $6,%edi +je .LC2169 +movl $355,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2171 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2171: +.LC2169: +movl $12,-16(%ebp) +movb $10,-25(%ebp) +movsbl -25(%ebp),%edi +xorl %edi,-16(%ebp) +cmpl $6,-16(%ebp) +je .LC2173 +movl $356,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2175 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2175: +.LC2173: +movl $12,-16(%ebp) +movw $10,-28(%ebp) +movswl -28(%ebp),%edi +xorl %edi,-16(%ebp) +cmpl $6,-16(%ebp) +je .LC2177 +movl $357,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2179 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2179: +.LC2177: +movl $12,-16(%ebp) +movl $10,-32(%ebp) +movl -32(%ebp),%edi +xorl %edi,-16(%ebp) +cmpl $6,-16(%ebp) +je .LC2181 +movl $358,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2183 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2183: +.LC2181: +movl $12,-16(%ebp) +movl $10,-36(%ebp) +movl -36(%ebp),%edi +xorl %edi,-16(%ebp) +cmpl $6,-16(%ebp) +je .LC2185 +movl $359,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2187 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2187: +.LC2185: +movl $12,-16(%ebp) +movl $10,-40(%ebp) +movl -16(%ebp),%edi +xorl -40(%ebp),%edi +movl %edi,-16(%ebp) +cmpl $6,-16(%ebp) +je .LC2189 +movl $360,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2191 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2191: +.LC2189: +movl $12,-20(%ebp) +movb $10,-25(%ebp) +movsbl -25(%ebp),%edi +xorl %edi,-20(%ebp) +cmpl $6,-20(%ebp) +je .LC2193 +movl $361,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2195 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2195: +.LC2193: +movl $12,-20(%ebp) +movw $10,-28(%ebp) +movswl -28(%ebp),%edi +xorl %edi,-20(%ebp) +cmpl $6,-20(%ebp) +je .LC2197 +movl $362,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2199 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2199: +.LC2197: +movl $12,-20(%ebp) +movl $10,-32(%ebp) +movl -32(%ebp),%edi +xorl %edi,-20(%ebp) +cmpl $6,-20(%ebp) +je .LC2201 +movl $363,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2203 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2203: +.LC2201: +movl $12,-20(%ebp) +movl $10,-36(%ebp) +movl -36(%ebp),%edi +xorl %edi,-20(%ebp) +cmpl $6,-20(%ebp) +je .LC2205 +movl $364,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2207 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2207: +.LC2205: +movl $12,-20(%ebp) +movl $10,-40(%ebp) +movl -20(%ebp),%edi +xorl -40(%ebp),%edi +movl %edi,-20(%ebp) +cmpl $6,-20(%ebp) +je .LC2209 +movl $365,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2211 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2211: +.LC2209: +movl $12,-24(%ebp) +movb $10,-25(%ebp) +movsbl -25(%ebp),%edi +xorl %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $6,%edi +je .LC2213 +movl $366,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2215 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2215: +.LC2213: +movl $12,-24(%ebp) +movw $10,-28(%ebp) +movswl -28(%ebp),%edi +xorl %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $6,%edi +je .LC2217 +movl $367,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2219 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2219: +.LC2217: +movl $12,-24(%ebp) +movl $10,-32(%ebp) +movl -32(%ebp),%edi +xorl %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $6,%edi +je .LC2221 +movl $368,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2223 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2223: +.LC2221: +movl $12,-24(%ebp) +movl $10,-36(%ebp) +movl -36(%ebp),%edi +xorl %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $6,%edi +je .LC2225 +movl $369,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2227 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2227: +.LC2225: +movl $12,-24(%ebp) +movl $10,-40(%ebp) +movl -40(%ebp),%edi +xorl %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $6,%edi +je .LC2229 +movl $370,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2231 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2231: +.LC2229: +movb $12,-9(%ebp) +movb $10,-25(%ebp) +movsbl -9(%ebp),%edi +movsbl -25(%ebp),%esi +orl %esi,%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $14,%edi +je .LC2233 +movl $371,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2235 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2235: +.LC2233: +movb $12,-9(%ebp) +movw $10,-28(%ebp) +movsbl -9(%ebp),%edi +movswl -28(%ebp),%esi +orl %esi,%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $14,%edi +je .LC2237 +movl $372,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2239 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2239: +.LC2237: +movb $12,-9(%ebp) +movl $10,-32(%ebp) +movsbl -9(%ebp),%edi +orl -32(%ebp),%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $14,%edi +je .LC2241 +movl $373,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2243 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2243: +.LC2241: +movb $12,-9(%ebp) +movl $10,-36(%ebp) +movsbl -9(%ebp),%edi +orl -36(%ebp),%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $14,%edi +je .LC2245 +movl $374,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2247 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2247: +.LC2245: +movb $12,-9(%ebp) +movl $10,-40(%ebp) +movsbl -9(%ebp),%edi +orl -40(%ebp),%edi +movl %edi,%ebx +movb %bl,-9(%ebp) +movsbl -9(%ebp),%edi +cmpl $14,%edi +je .LC2249 +movl $375,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2251 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2251: +.LC2249: +movw $12,-12(%ebp) +movb $10,-25(%ebp) +movswl -12(%ebp),%edi +movsbl -25(%ebp),%esi +orl %esi,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $14,%edi +je .LC2253 +movl $376,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2255 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2255: +.LC2253: +movw $12,-12(%ebp) +movw $10,-28(%ebp) +movswl -12(%ebp),%edi +movswl -28(%ebp),%esi +orl %esi,%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $14,%edi +je .LC2257 +movl $377,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2259 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2259: +.LC2257: +movw $12,-12(%ebp) +movl $10,-32(%ebp) +movswl -12(%ebp),%edi +orl -32(%ebp),%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $14,%edi +je .LC2261 +movl $378,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2263 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2263: +.LC2261: +movw $12,-12(%ebp) +movl $10,-36(%ebp) +movswl -12(%ebp),%edi +orl -36(%ebp),%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $14,%edi +je .LC2265 +movl $379,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2267 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2267: +.LC2265: +movw $12,-12(%ebp) +movl $10,-40(%ebp) +movswl -12(%ebp),%edi +orl -40(%ebp),%edi +movw %di,-12(%ebp) +movswl -12(%ebp),%edi +cmpl $14,%edi +je .LC2269 +movl $380,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2271 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2271: +.LC2269: +movl $12,-16(%ebp) +movb $10,-25(%ebp) +movsbl -25(%ebp),%edi +orl %edi,-16(%ebp) +cmpl $14,-16(%ebp) +je .LC2273 +movl $381,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2275 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2275: +.LC2273: +movl $12,-16(%ebp) +movw $10,-28(%ebp) +movswl -28(%ebp),%edi +orl %edi,-16(%ebp) +cmpl $14,-16(%ebp) +je .LC2277 +movl $382,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2279 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2279: +.LC2277: +movl $12,-16(%ebp) +movl $10,-32(%ebp) +movl -32(%ebp),%edi +orl %edi,-16(%ebp) +cmpl $14,-16(%ebp) +je .LC2281 +movl $383,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2283 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2283: +.LC2281: +movl $12,-16(%ebp) +movl $10,-36(%ebp) +movl -36(%ebp),%edi +orl %edi,-16(%ebp) +cmpl $14,-16(%ebp) +je .LC2285 +movl $384,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2287 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2287: +.LC2285: +movl $12,-16(%ebp) +movl $10,-40(%ebp) +movl -16(%ebp),%edi +orl -40(%ebp),%edi +movl %edi,-16(%ebp) +cmpl $14,-16(%ebp) +je .LC2289 +movl $385,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2291 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2291: +.LC2289: +movl $12,-20(%ebp) +movb $10,-25(%ebp) +movsbl -25(%ebp),%edi +orl %edi,-20(%ebp) +cmpl $14,-20(%ebp) +je .LC2293 +movl $386,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2295 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2295: +.LC2293: +movl $12,-20(%ebp) +movw $10,-28(%ebp) +movswl -28(%ebp),%edi +orl %edi,-20(%ebp) +cmpl $14,-20(%ebp) +je .LC2297 +movl $387,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2299 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2299: +.LC2297: +movl $12,-20(%ebp) +movl $10,-32(%ebp) +movl -32(%ebp),%edi +orl %edi,-20(%ebp) +cmpl $14,-20(%ebp) +je .LC2301 +movl $388,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2303 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2303: +.LC2301: +movl $12,-20(%ebp) +movl $10,-36(%ebp) +movl -36(%ebp),%edi +orl %edi,-20(%ebp) +cmpl $14,-20(%ebp) +je .LC2305 +movl $389,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2307 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2307: +.LC2305: +movl $12,-20(%ebp) +movl $10,-40(%ebp) +movl -20(%ebp),%edi +orl -40(%ebp),%edi +movl %edi,-20(%ebp) +cmpl $14,-20(%ebp) +je .LC2309 +movl $390,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2311 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2311: +.LC2309: +movl $12,-24(%ebp) +movb $10,-25(%ebp) +movsbl -25(%ebp),%edi +orl %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $14,%edi +je .LC2313 +movl $391,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2315 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2315: +.LC2313: +movl $12,-24(%ebp) +movw $10,-28(%ebp) +movswl -28(%ebp),%edi +orl %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $14,%edi +je .LC2317 +movl $392,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2319 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2319: +.LC2317: +movl $12,-24(%ebp) +movl $10,-32(%ebp) +movl -32(%ebp),%edi +orl %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $14,%edi +je .LC2321 +movl $393,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2323 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2323: +.LC2321: +movl $12,-24(%ebp) +movl $10,-36(%ebp) +movl -36(%ebp),%edi +orl %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $14,%edi +je .LC2325 +movl $394,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2327 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2327: +.LC2325: +movl $12,-24(%ebp) +movl $10,-40(%ebp) +movl -40(%ebp),%edi +orl %edi,-24(%ebp) +movl -24(%ebp),%edi +cmpl $14,%edi +je .LC2329 +movl $395,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2331 +pushl -8(%ebp) +pushl $f.706 +call printf +addl $8,%esp +.LC2331: +.LC2329: +cmpl $0,-8(%ebp) +je .LC2333 +movl $1,-76(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC2335 +pushl $1 +pushl $s714er.707 +call printf +addl $8,%esp +.LC2335: +.LC2333: +movl -76(%ebp),%eax +.LC705: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf2337: +.size s714,.Lf2337-s714 +.data +.align 1 +.type s715er.2339,@object +s715er.2339: +.byte 115 +.byte 55 +.byte 49 +.byte 53 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size s715er.2339,11 +.align 1 +.type qs715.2340,@object +.size qs715.2340,8 +qs715.2340: +.byte 115 +.byte 55 +.byte 49 +.byte 53 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s715 +.text +.align 16 +.type s715,@function +s715: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $28,%esp +movl $0,-28(%ebp) +movl $0,-20(%ebp) +leal qs715.2340,%edi +movl %edi,-4(%ebp) +movl 20(%ebp),%edi +leal 60(%edi),%edi +movl %edi,-8(%ebp) +movl $0,-16(%ebp) +.LC2341: +.LC2342: +movl -8(%ebp),%edi +leal 1(%edi),%esi +movl %esi,-8(%ebp) +movl -4(%ebp),%esi +leal 1(%esi),%ebx +movl %ebx,-4(%ebp) +movb (,%esi),%bl +movb %bl,(,%edi) +movsbl %bl,%edi +cmpl $0,%edi +jne .LC2341 +movl $1,-12(%ebp) +incl -12(%ebp) +incl -12(%ebp) +incl -12(%ebp) +incl -12(%ebp) +movl -12(%ebp),%edi +leal 1(%edi),%edi +movl %edi,-12(%ebp) +cmpl $6,%edi +je .LC2344 +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC2346 +pushl $1 +pushl $s715er.2339 +call printf +addl $8,%esp +.LC2346: +incl -16(%ebp) +.LC2344: +pushl -28(%ebp) +movl $3,-24(%ebp) +movl -24(%ebp),%edi +leal 2(%edi),%edi +pushl %edi +pushl -20(%ebp) +call s715f +addl $12,%esp +cmpl $5,%eax +je .LC2348 +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC2350 +pushl $2 +pushl $s715er.2339 +call printf +addl $8,%esp +.LC2350: +addl $2,-16(%ebp) +.LC2348: +movl -16(%ebp),%eax +.LC2338: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf2352: +.size s715,.Lf2352-s715 +.globl s715f +.align 16 +.type s715f,@function +s715f: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl 24(%ebp),%eax +.LC2353: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf2354: +.size s715f,.Lf2354-s715f +.data +.align 1 +.type s72er.2356,@object +s72er.2356: +.byte 115 +.byte 55 +.byte 50 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size s72er.2356,10 +.align 1 +.type qs72.2357,@object +.size qs72.2357,8 +qs72.2357: +.byte 115 +.byte 55 +.byte 50 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s72 +.text +.align 16 +.type s72,@function +s72: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $100,%esp +leal qs72.2357,%edi +movl %edi,-12(%ebp) +movl 20(%ebp),%edi +leal 60(%edi),%edi +movl %edi,-16(%ebp) +movl $0,-24(%ebp) +.LC2358: +.LC2359: +movl -16(%ebp),%edi +leal 1(%edi),%esi +movl %esi,-16(%ebp) +movl -12(%ebp),%esi +leal 1(%esi),%ebx +movl %ebx,-12(%ebp) +movb (,%esi),%bl +movb %bl,(,%edi) +movsbl %bl,%edi +cmpl $0,%edi +jne .LC2358 +movl $2,-4(%ebp) +cmpl $2,-4(%ebp) +je .LC2361 +incl -24(%ebp) +pushl $1 +pushl $s72er.2356 +call printf +addl $8,%esp +.LC2361: +movl -4(%ebp),%edi +movl %edi,%esi +negl %esi +leal (%esi,%edi),%edi +cmpl $0,%edi +je .LC2363 +addl $2,-24(%ebp) +pushl $2 +pushl $s72er.2356 +call printf +addl $8,%esp +.LC2363: +movl $0,-4(%ebp) +movl $0,-8(%ebp) +jmp .LC2368 +.LC2365: +movl -4(%ebp),%edi +leal (,%edi,2),%edi +orl $1,%edi +movl %edi,-4(%ebp) +.LC2366: +incl -8(%ebp) +.LC2368: +movl 20(%ebp),%edi +movl 4(%edi),%edi +cmpl %edi,-8(%ebp) +jl .LC2365 +movl -4(%ebp),%edi +notl %edi +cmpl $0,%edi +je .LC2369 +addl $4,-24(%ebp) +pushl $4 +pushl $s72er.2356 +call printf +addl $8,%esp +.LC2369: +movl $5,-4(%ebp) +movl -4(%ebp),%edi +leal 1(%edi),%edi +movl %edi,-4(%ebp) +cmpl $6,%edi +jne .LC2376 +movl -4(%ebp),%edi +subl $1,%edi +movl %edi,-4(%ebp) +cmpl $5,%edi +jne .LC2376 +movl -4(%ebp),%edi +leal 1(%edi),%esi +movl %esi,-4(%ebp) +cmpl $5,%edi +jne .LC2376 +movl -4(%ebp),%edi +movl %edi,%esi +subl $1,%esi +movl %esi,-4(%ebp) +cmpl $6,%edi +jne .LC2376 +cmpl $5,-4(%ebp) +je .LC2371 +.LC2376: +addl $8,-24(%ebp) +pushl $8 +pushl $s72er.2356 +call printf +addl $8,%esp +.LC2371: +movb $26,-29(%ebp) +movl $26,-36(%ebp) +fldl .LC2377 +fstpl -48(%ebp) +movw $26,-32(%ebp) +movl $26,-40(%ebp) +movl $26,-28(%ebp) +flds .LC2378 +fstps -52(%ebp) +movl $0,-20(%ebp) +movswl -32(%ebp),%edi +movl %edi,%ebx +movsbl %bl,%edi +cmpl $26,%edi +jne .LC2385 +movl -28(%ebp),%edi +movl %edi,%ebx +movsbl %bl,%edi +cmpl $26,%edi +jne .LC2385 +movl -36(%ebp),%edi +movl %edi,%ebx +movsbl %bl,%edi +cmpl $26,%edi +jne .LC2385 +movl -40(%ebp),%edi +movl %edi,%ebx +movsbl %bl,%edi +cmpl $26,%edi +jne .LC2385 +flds -52(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%ebx +movsbl %bl,%edi +cmpl $26,%edi +jne .LC2385 +fldl -48(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%ebx +movsbl %bl,%edi +cmpl $26,%edi +je .LC2379 +.LC2385: +incl -20(%ebp) +.LC2379: +movsbl -29(%ebp),%edi +movswl %di,%edi +cmpl $26,%edi +jne .LC2392 +movl -28(%ebp),%edi +movswl %di,%edi +cmpl $26,%edi +jne .LC2392 +movl -36(%ebp),%edi +movswl %di,%edi +cmpl $26,%edi +jne .LC2392 +movl -40(%ebp),%edi +movswl %di,%edi +cmpl $26,%edi +jne .LC2392 +flds -52(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movswl %di,%edi +cmpl $26,%edi +jne .LC2392 +fldl -48(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movswl %di,%edi +cmpl $26,%edi +je .LC2386 +.LC2392: +addl $2,-20(%ebp) +.LC2386: +movsbl -29(%ebp),%edi +cmpl $26,%edi +jne .LC2399 +movswl -32(%ebp),%edi +cmpl $26,%edi +jne .LC2399 +cmpl $26,-36(%ebp) +jne .LC2399 +movl -40(%ebp),%edi +cmpl $26,%edi +jne .LC2399 +flds -52(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +cmpl $26,%eax +jne .LC2399 +fldl -48(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +cmpl $26,%eax +je .LC2393 +.LC2399: +addl $4,-20(%ebp) +.LC2393: +movsbl -29(%ebp),%edi +cmpl $26,%edi +jne .LC2406 +movswl -32(%ebp),%edi +cmpl $26,%edi +jne .LC2406 +cmpl $26,-28(%ebp) +jne .LC2406 +movl -40(%ebp),%edi +cmpl $26,%edi +jne .LC2406 +flds -52(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +cmpl $26,%eax +jne .LC2406 +fldl -48(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +cmpl $26,%eax +je .LC2400 +.LC2406: +addl $8,-20(%ebp) +.LC2400: +movsbl -29(%ebp),%edi +cmpl $26,%edi +jne .LC2415 +movswl -32(%ebp),%edi +cmpl $26,%edi +jne .LC2415 +movl -28(%ebp),%edi +cmpl $26,%edi +jne .LC2415 +movl -36(%ebp),%edi +cmpl $26,%edi +jne .LC2415 +flds .LC847 +fcomps -52(%ebp) +fstsw %ax +sahf +ja .LC2416 +flds -52(%ebp) +fsubs .LC847 +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +leal 0x80000000(%edi),%edi +movl %edi,-56(%ebp) +jmp .LC2417 +.LC2416: +flds -52(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movl %edi,-56(%ebp) +.LC2417: +movl -56(%ebp),%edi +cmpl $26,%edi +jne .LC2415 +fldl .LC855 +fcompl -48(%ebp) +fstsw %ax +sahf +ja .LC2418 +fldl -48(%ebp) +fsubl .LC855 +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +leal 0x80000000(%edi),%edi +movl %edi,-60(%ebp) +jmp .LC2419 +.LC2418: +fldl -48(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movl %edi,-60(%ebp) +.LC2419: +movl -60(%ebp),%edi +cmpl $26,%edi +je .LC2407 +.LC2415: +addl $16,-20(%ebp) +.LC2407: +movsbl -29(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fldl .LC2377 +fcompp +fstsw %ax +sahf +jne .LC2426 +movswl -32(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fldl .LC2377 +fcompp +fstsw %ax +sahf +jne .LC2426 +fildl -28(%ebp) +fldl .LC2377 +fcompp +fstsw %ax +sahf +jne .LC2426 +fildl -36(%ebp) +fldl .LC2377 +fcompp +fstsw %ax +sahf +jne .LC2426 +movl -40(%ebp),%edi +fldl .LC611 +movl %edi,%esi +shrl $1,%esi +pushl %esi +fildl (%esp) +addl $4,%esp +fmulp %st(1),%st +andl $1,%edi +pushl %edi +fildl (%esp) +addl $4,%esp +faddp %st(1),%st +sub $4,%esp +fstps (%esp) +flds (%esp) +addl $4,%esp +fldl .LC2377 +fcompp +fstsw %ax +sahf +jne .LC2426 +fldl -48(%ebp) +fldl .LC2377 +fcompp +fstsw %ax +sahf +je .LC2420 +.LC2426: +addl $32,-20(%ebp) +.LC2420: +movsbl -29(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fldl .LC2377 +fcompp +fstsw %ax +sahf +jne .LC2433 +movswl -32(%ebp),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fldl .LC2377 +fcompp +fstsw %ax +sahf +jne .LC2433 +fildl -28(%ebp) +fldl .LC2377 +fcompp +fstsw %ax +sahf +jne .LC2433 +fildl -36(%ebp) +fldl .LC2377 +fcompp +fstsw %ax +sahf +jne .LC2433 +movl -40(%ebp),%edi +fldl .LC611 +movl %edi,%esi +shrl $1,%esi +pushl %esi +fildl (%esp) +addl $4,%esp +fmulp %st(1),%st +andl $1,%edi +pushl %edi +fildl (%esp) +addl $4,%esp +faddp %st(1),%st +fldl .LC2377 +fcompp +fstsw %ax +sahf +jne .LC2433 +fldl .LC2377 +fcomps -52(%ebp) +fstsw %ax +sahf +je .LC2427 +.LC2433: +addl $64,-20(%ebp) +.LC2427: +cmpl $0,-20(%ebp) +je .LC2434 +addl $16,-24(%ebp) +pushl $16 +pushl $s72er.2356 +call printf +addl $8,%esp +.LC2434: +movl -24(%ebp),%eax +.LC2355: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf2436: +.size s72,.Lf2436-s72 +.data +.align 1 +.type s757er.2438,@object +s757er.2438: +.byte 115 +.byte 55 +.byte 53 +.byte 55 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size s757er.2438,11 +.align 1 +.type qs757.2439,@object +.size qs757.2439,8 +qs757.2439: +.byte 115 +.byte 55 +.byte 53 +.byte 55 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s757 +.text +.align 16 +.type s757,@function +s757: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $148,%esp +leal qs757.2439,%edi +movl %edi,-112(%ebp) +movl 20(%ebp),%edi +leal 60(%edi),%edi +movl %edi,-116(%ebp) +movl $0,-120(%ebp) +.LC2440: +.LC2441: +movl -116(%ebp),%edi +leal 1(%edi),%esi +movl %esi,-116(%ebp) +movl -112(%ebp),%esi +leal 1(%esi),%ebx +movl %ebx,-112(%ebp) +movb (,%esi),%bl +movb %bl,(,%edi) +movsbl %bl,%edi +cmpl $0,%edi +jne .LC2440 +movl $40,-124(%ebp) +movl -124(%ebp),%edi +leal (,%edi,8),%esi +leal (,%esi,4),%esi +cmpl $1280,%esi +jne .LC2445 +sarl $3,%edi +sarl $2,%edi +cmpl $1,%edi +je .LC2443 +.LC2445: +incl -120(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC2446 +pushl $1 +pushl $s757er.2438 +call printf +addl $8,%esp +.LC2446: +.LC2443: +movl $0,-84(%ebp) +movl $0,-100(%ebp) +jmp .LC2451 +.LC2448: +movl $1,-92(%ebp) +movl -92(%ebp),%edi +movl 20(%ebp),%esi +movl 16(%esi),%esi +movl %esi,%ecx +subl $1,%ecx +movl %edi,%eax +shll %cl,%eax +movl %eax,-96(%ebp) +movl $0,-104(%ebp) +movl -104(%ebp),%edi +notl %edi +movl -100(%ebp),%esi +movl %esi,%ecx +movl %edi,%eax +shrl %cl,%eax +movl %eax,-108(%ebp) +movl %esi,%ecx +movl %edi,%eax +shll %cl,%eax +movl %eax,-104(%ebp) +movl $0,-88(%ebp) +jmp .LC2455 +.LC2452: +movl -100(%ebp),%edi +cmpl %edi,-88(%ebp) +jge .LC2463 +movl $1,-132(%ebp) +jmp .LC2464 +.LC2463: +movl $0,-132(%ebp) +.LC2464: +movl -92(%ebp),%edi +andl -104(%ebp),%edi +cmpl $0,%edi +jne .LC2465 +movl $1,-136(%ebp) +jmp .LC2466 +.LC2465: +movl $0,-136(%ebp) +.LC2466: +movl -136(%ebp),%edi +cmpl %edi,-132(%ebp) +jne .LC2462 +movl -100(%ebp),%edi +cmpl %edi,-88(%ebp) +jge .LC2467 +movl $1,-140(%ebp) +jmp .LC2468 +.LC2467: +movl $0,-140(%ebp) +.LC2468: +movl -96(%ebp),%edi +andl -108(%ebp),%edi +cmpl $0,%edi +jne .LC2469 +movl $1,-144(%ebp) +jmp .LC2470 +.LC2469: +movl $0,-144(%ebp) +.LC2470: +movl -144(%ebp),%edi +cmpl %edi,-140(%ebp) +je .LC2456 +.LC2462: +movl $1,-84(%ebp) +.LC2456: +movl -92(%ebp),%edi +leal (,%edi,2),%edi +movl %edi,-92(%ebp) +movl -96(%ebp),%edi +shrl $1,%edi +movl %edi,-96(%ebp) +.LC2453: +incl -88(%ebp) +.LC2455: +movl 20(%ebp),%edi +movl 16(%edi),%edi +cmpl %edi,-88(%ebp) +jl .LC2452 +.LC2449: +incl -100(%ebp) +.LC2451: +movl 20(%ebp),%edi +movl 16(%edi),%edi +cmpl %edi,-100(%ebp) +jl .LC2448 +cmpl $0,-84(%ebp) +je .LC2471 +addl $2,-120(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC2473 +pushl $2 +pushl $s757er.2438 +call printf +addl $8,%esp +.LC2473: +.LC2471: +movl $3,-16(%ebp) +movl $2,-12(%ebp) +movl $1,-8(%ebp) +movl -12(%ebp),%edi +cmpl %edi,-16(%ebp) +jge .LC2481 +movl $1,-136(%ebp) +jmp .LC2482 +.LC2481: +movl $0,-136(%ebp) +.LC2482: +movl -8(%ebp),%edi +cmpl %edi,-136(%ebp) +jge .LC2479 +movl $1,-132(%ebp) +jmp .LC2480 +.LC2479: +movl $0,-132(%ebp) +.LC2480: +cmpl $1,-132(%ebp) +je .LC2475 +addl $4,-120(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC2483 +pushl $4 +pushl $s757er.2438 +call printf +addl $8,%esp +.LC2483: +.LC2475: +leal -76(%ebp),%edi +leal -80(%ebp),%esi +cmpl %esi,%edi +jne .LC2485 +addl $8,-120(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC2488 +pushl $8 +pushl $s757er.2438 +call printf +addl $8,%esp +.LC2488: +.LC2485: +leal -76(%ebp),%edi +leal -80(%ebp),%esi +cmpl %esi,%edi +jae .LC2490 +movl 20(%ebp),%edi +cmpl $0,40(%edi) +je .LC2493 +pushl $.LC2495 +call printf +addl $4,%esp +.LC2493: +.LC2490: +movl $0,-84(%ebp) +movl $0,-88(%ebp) +.LC2496: +movl -88(%ebp),%edi +leal -80(%ebp),%esi +movl $1,(%esi,%edi,4) +.LC2497: +incl -88(%ebp) +cmpl $16,-88(%ebp) +jl .LC2496 +movl $0,-76(%ebp) +movl $0,-64(%ebp) +movl $0,-56(%ebp) +movl $0,-52(%ebp) +movl $0,-44(%ebp) +movl $0,-28(%ebp) +movl $0,-16(%ebp) +.LC2506: +movl $0,-12(%ebp) +.LC2510: +movl $0,-8(%ebp) +.LC2514: +movl $0,-4(%ebp) +.LC2518: +movl -12(%ebp),%edi +cmpl %edi,-16(%ebp) +jge .LC2529 +movl $1,-144(%ebp) +jmp .LC2530 +.LC2529: +movl $0,-144(%ebp) +.LC2530: +movl -4(%ebp),%edi +cmpl %edi,-8(%ebp) +jge .LC2531 +movl $1,-148(%ebp) +jmp .LC2532 +.LC2531: +movl $0,-148(%ebp) +.LC2532: +movl -148(%ebp),%edi +cmpl %edi,-144(%ebp) +jne .LC2527 +movl $1,-140(%ebp) +jmp .LC2528 +.LC2527: +movl $0,-140(%ebp) +.LC2528: +movl -16(%ebp),%edi +movl -12(%ebp),%esi +leal (,%esi,4),%esi +leal (%esi,%edi,8),%edi +movl -8(%ebp),%esi +leal (,%esi,2),%esi +leal (%esi,%edi),%edi +movl -4(%ebp),%esi +leal (%esi,%edi),%edi +leal -80(%ebp),%esi +movl (%esi,%edi,4),%edi +cmpl %edi,-140(%ebp) +je .LC2522 +movl $1,-84(%ebp) +.LC2522: +.LC2519: +incl -4(%ebp) +cmpl $2,-4(%ebp) +jl .LC2518 +.LC2515: +incl -8(%ebp) +cmpl $2,-8(%ebp) +jl .LC2514 +.LC2511: +incl -12(%ebp) +cmpl $2,-12(%ebp) +jl .LC2510 +.LC2507: +incl -16(%ebp) +cmpl $2,-16(%ebp) +jl .LC2506 +cmpl $0,-84(%ebp) +je .LC2533 +addl $16,-120(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC2535 +pushl $16 +pushl $s757er.2438 +call printf +addl $8,%esp +.LC2535: +.LC2533: +movl $0,-128(%ebp) +movl -128(%ebp),%edi +cmpl $0,%edi +je .LC2537 +addl $32,-120(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC2539 +pushl $32 +pushl $s757er.2438 +call printf +addl $8,%esp +.LC2539: +.LC2537: +movl -120(%ebp),%eax +.LC2437: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf2541: +.size s757,.Lf2541-s757 +.data +.align 1 +.type fl.2543,@object +fl.2543: +.byte 76 +.byte 111 +.byte 99 +.byte 97 +.byte 108 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 32 +.byte 37 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.size fl.2543,17 +.align 1 +.type s7813er.2544,@object +s7813er.2544: +.byte 115 +.byte 55 +.byte 56 +.byte 49 +.byte 51 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size s7813er.2544,12 +.align 1 +.type qs7813.2545,@object +.size qs7813.2545,8 +qs7813.2545: +.byte 115 +.byte 55 +.byte 56 +.byte 49 +.byte 51 +.byte 32 +.byte 32 +.byte 0 +.globl s7813 +.text +.align 16 +.type s7813,@function +s7813: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $88,%esp +leal qs7813.2545,%edi +movl %edi,-24(%ebp) +movl 20(%ebp),%edi +leal 60(%edi),%esi +movl %esi,-28(%ebp) +movl $0,-8(%ebp) +movl $0,-32(%ebp) +movl 48(%edi),%edi +movl %edi,-4(%ebp) +.LC2546: +.LC2547: +movl -28(%ebp),%edi +leal 1(%edi),%esi +movl %esi,-28(%ebp) +movl -24(%ebp),%esi +leal 1(%esi),%ebx +movl %ebx,-24(%ebp) +movb (,%esi),%bl +movb %bl,(,%edi) +movsbl %bl,%edi +cmpl $0,%edi +jne .LC2546 +jmp .LC2549 +movl $1,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2551 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2551: +.LC2549: +jmp .LC2553 +movl $2,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2555 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2555: +.LC2553: +jmp .LC2557 +movl $3,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2559 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2559: +.LC2557: +jmp .LC2561 +movl $4,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2563 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2563: +.LC2561: +jmp .LC2565 +movl $5,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2567 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2567: +.LC2565: +jmp .LC2569 +movl $6,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2571 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2571: +.LC2569: +jmp .LC2573 +movl $7,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2575 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2575: +.LC2573: +jmp .LC2577 +movl $8,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2579 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2579: +.LC2577: +jmp .LC2581 +movl $9,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2583 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2583: +.LC2581: +jmp .LC2585 +movl $10,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2587 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2587: +.LC2585: +jmp .LC2589 +movl $11,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2591 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2591: +.LC2589: +jmp .LC2593 +movl $12,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2595 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2595: +.LC2593: +jmp .LC2597 +movl $13,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2599 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2599: +.LC2597: +jmp .LC2601 +movl $14,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2603 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2603: +.LC2601: +jmp .LC2605 +movl $15,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2607 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2607: +.LC2605: +jmp .LC2609 +movl $16,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2611 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2611: +.LC2609: +jmp .LC2613 +movl $17,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2615 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2615: +.LC2613: +jmp .LC2617 +movl $18,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2619 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2619: +.LC2617: +jmp .LC2621 +movl $16,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2623 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2623: +.LC2621: +jmp .LC2625 +movl $20,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2627 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2627: +.LC2625: +jmp .LC2629 +movl $21,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2631 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2631: +.LC2629: +jmp .LC2633 +movl $22,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2635 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2635: +.LC2633: +jmp .LC2637 +movl $23,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2639 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2639: +.LC2637: +jmp .LC2641 +movl $24,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2643 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2643: +.LC2641: +jmp .LC2645 +movl $25,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2647 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2647: +.LC2645: +jmp .LC2649 +movl $26,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2651 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2651: +.LC2649: +jmp .LC2653 +movl $27,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2655 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2655: +.LC2653: +jmp .LC2657 +movl $28,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2659 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2659: +.LC2657: +jmp .LC2661 +movl $26,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2663 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2663: +.LC2661: +jmp .LC2665 +movl $30,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2667 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2667: +.LC2665: +jmp .LC2669 +movl $31,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2671 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2671: +.LC2669: +jmp .LC2673 +movl $32,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2675 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2675: +.LC2673: +jmp .LC2677 +movl $33,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2679 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2679: +.LC2677: +jmp .LC2681 +movl $34,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2683 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2683: +.LC2681: +jmp .LC2685 +movl $35,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2687 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2687: +.LC2685: +jmp .LC2689 +movl $36,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2691 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2691: +.LC2689: +jmp .LC2693 +movl $37,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2695 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2695: +.LC2693: +jmp .LC2697 +movl $38,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2699 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2699: +.LC2697: +jmp .LC2701 +movl $39,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2703 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2703: +.LC2701: +jmp .LC2705 +movl $40,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2707 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2707: +.LC2705: +jmp .LC2709 +movl $41,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2711 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2711: +.LC2709: +jmp .LC2713 +movl $42,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2715 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2715: +.LC2713: +jmp .LC2717 +movl $43,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2719 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2719: +.LC2717: +jmp .LC2721 +movl $44,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2723 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2723: +.LC2721: +jmp .LC2725 +movl $45,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2727 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2727: +.LC2725: +jmp .LC2729 +movl $46,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2731 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2731: +.LC2729: +jmp .LC2733 +movl $47,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2735 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2735: +.LC2733: +jmp .LC2737 +movl $48,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2739 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2739: +.LC2737: +jmp .LC2741 +movl $49,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2743 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2743: +.LC2741: +jmp .LC2745 +movl $50,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2747 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2747: +.LC2745: +jmp .LC2749 +movl $51,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2751 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2751: +.LC2749: +jmp .LC2753 +movl $52,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2755 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2755: +.LC2753: +jmp .LC2757 +movl $53,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2759 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2759: +.LC2757: +jmp .LC2761 +movl $54,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2763 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2763: +.LC2761: +jmp .LC2765 +movl $55,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2767 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2767: +.LC2765: +jmp .LC2769 +movl $56,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2771 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2771: +.LC2769: +jmp .LC2773 +movl $57,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2775 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2775: +.LC2773: +jmp .LC2777 +movl $58,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2779 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2779: +.LC2777: +jmp .LC2781 +movl $56,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2783 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2783: +.LC2781: +jmp .LC2785 +movl $60,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2787 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2787: +.LC2785: +jmp .LC2789 +movl $61,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2791 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2791: +.LC2789: +jmp .LC2793 +movl $62,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2795 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2795: +.LC2793: +jmp .LC2797 +movl $63,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2799 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2799: +.LC2797: +jmp .LC2801 +movl $64,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2803 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2803: +.LC2801: +jmp .LC2805 +movl $65,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2807 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2807: +.LC2805: +jmp .LC2809 +movl $66,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2811 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2811: +.LC2809: +jmp .LC2813 +movl $67,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2815 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2815: +.LC2813: +jmp .LC2817 +movl $68,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2819 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2819: +.LC2817: +jmp .LC2821 +movl $69,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2823 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2823: +.LC2821: +jmp .LC2825 +movl $70,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2827 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2827: +.LC2825: +jmp .LC2829 +movl $71,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2831 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2831: +.LC2829: +jmp .LC2833 +movl $72,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2835 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2835: +.LC2833: +jmp .LC2837 +movl $73,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2839 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2839: +.LC2837: +jmp .LC2841 +movl $74,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2843 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2843: +.LC2841: +jmp .LC2845 +movl $75,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2847 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2847: +.LC2845: +cmpl $0,-8(%ebp) +je .LC2849 +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC2851 +pushl $1 +pushl $s7813er.2544 +call printf +addl $8,%esp +.LC2851: +incl -32(%ebp) +.LC2849: +movl $0,-8(%ebp) +movl $0,-16(%ebp) +movl $0,-12(%ebp) +movl -12(%ebp),%edi +leal 1(%edi),%esi +movl %esi,-12(%ebp) +cmpl $0,%edi +je .LC2854 +movl -16(%ebp),%edi +leal 1(%edi),%esi +movl %esi,-16(%ebp) +cmpl $0,%edi +je .LC2854 +movl $1,-44(%ebp) +jmp .LC2855 +.LC2854: +movl $0,-44(%ebp) +.LC2855: +movl -44(%ebp),%edi +movl %edi,-20(%ebp) +cmpl $1,-12(%ebp) +je .LC2856 +movl $1,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2858 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2858: +.LC2856: +cmpl $0,-16(%ebp) +je .LC2860 +movl $2,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2862 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2862: +.LC2860: +cmpl $0,-20(%ebp) +je .LC2864 +movl $3,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2866 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2866: +.LC2864: +cmpl $0,-12(%ebp) +je .LC2869 +movl -16(%ebp),%edi +leal 1(%edi),%esi +movl %esi,-16(%ebp) +cmpl $0,%edi +je .LC2869 +movl $1,-48(%ebp) +jmp .LC2870 +.LC2869: +movl $0,-48(%ebp) +.LC2870: +movl -48(%ebp),%edi +movl %edi,-20(%ebp) +cmpl $1,-12(%ebp) +je .LC2871 +movl $4,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2873 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2873: +.LC2871: +cmpl $1,-16(%ebp) +je .LC2875 +movl $5,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2877 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2877: +.LC2875: +cmpl $0,-20(%ebp) +je .LC2879 +movl $6,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2881 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2881: +.LC2879: +movl -12(%ebp),%edi +movl %edi,%esi +subl $1,%esi +movl %esi,-12(%ebp) +cmpl $0,%edi +je .LC2884 +cmpl $0,-16(%ebp) +je .LC2884 +movl $1,-52(%ebp) +jmp .LC2885 +.LC2884: +movl $0,-52(%ebp) +.LC2885: +movl -52(%ebp),%edi +movl %edi,-20(%ebp) +cmpl $0,-12(%ebp) +je .LC2886 +movl $7,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2888 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2888: +.LC2886: +cmpl $1,-16(%ebp) +je .LC2890 +movl $8,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2892 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2892: +.LC2890: +cmpl $1,-20(%ebp) +je .LC2894 +movl $9,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2896 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2896: +.LC2894: +cmpl $0,-12(%ebp) +je .LC2899 +movl -16(%ebp),%edi +movl %edi,%esi +subl $1,%esi +movl %esi,-16(%ebp) +cmpl $0,%edi +je .LC2899 +movl $1,-56(%ebp) +jmp .LC2900 +.LC2899: +movl $0,-56(%ebp) +.LC2900: +movl -56(%ebp),%edi +movl %edi,-20(%ebp) +cmpl $0,-12(%ebp) +je .LC2901 +movl $10,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2903 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2903: +.LC2901: +cmpl $1,-16(%ebp) +je .LC2905 +movl $11,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2907 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2907: +.LC2905: +cmpl $0,-20(%ebp) +je .LC2909 +movl $12,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2911 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2911: +.LC2909: +cmpl $0,-8(%ebp) +je .LC2913 +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC2915 +pushl $2 +pushl $s7813er.2544 +call printf +addl $8,%esp +.LC2915: +addl $2,-32(%ebp) +.LC2913: +movl $0,-8(%ebp) +movl $0,-16(%ebp) +movl $0,-12(%ebp) +movl -12(%ebp),%edi +leal 1(%edi),%esi +movl %esi,-12(%ebp) +cmpl $0,%edi +jne .LC2920 +cmpl $0,-16(%ebp) +je .LC2918 +.LC2920: +movl $1,-60(%ebp) +jmp .LC2919 +.LC2918: +movl $0,-60(%ebp) +.LC2919: +movl -60(%ebp),%edi +movl %edi,-20(%ebp) +cmpl $1,-12(%ebp) +je .LC2921 +movl $1,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2923 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2923: +.LC2921: +cmpl $0,-16(%ebp) +je .LC2925 +movl $2,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2927 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2927: +.LC2925: +cmpl $0,-20(%ebp) +je .LC2929 +movl $3,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2931 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2931: +.LC2929: +movl -16(%ebp),%edi +leal 1(%edi),%esi +movl %esi,-16(%ebp) +cmpl $0,%edi +jne .LC2936 +cmpl $0,-12(%ebp) +je .LC2934 +.LC2936: +movl $1,-64(%ebp) +jmp .LC2935 +.LC2934: +movl $0,-64(%ebp) +.LC2935: +movl -64(%ebp),%edi +movl %edi,-20(%ebp) +cmpl $1,-12(%ebp) +je .LC2937 +movl $4,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2939 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2939: +.LC2937: +cmpl $1,-16(%ebp) +je .LC2941 +movl $5,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2943 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2943: +.LC2941: +cmpl $1,-20(%ebp) +je .LC2945 +movl $6,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2947 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2947: +.LC2945: +movl -12(%ebp),%edi +movl %edi,%esi +subl $1,%esi +movl %esi,-12(%ebp) +cmpl $0,%edi +jne .LC2952 +movl -16(%ebp),%edi +movl %edi,%esi +subl $1,%esi +movl %esi,-16(%ebp) +cmpl $0,%edi +je .LC2950 +.LC2952: +movl $1,-68(%ebp) +jmp .LC2951 +.LC2950: +movl $0,-68(%ebp) +.LC2951: +movl -68(%ebp),%edi +movl %edi,-20(%ebp) +cmpl $0,-12(%ebp) +je .LC2953 +movl $7,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2955 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2955: +.LC2953: +cmpl $1,-16(%ebp) +je .LC2957 +movl $8,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2959 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2959: +.LC2957: +cmpl $1,-20(%ebp) +je .LC2961 +movl $9,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2963 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2963: +.LC2961: +cmpl $0,-12(%ebp) +jne .LC2968 +movl -16(%ebp),%edi +movl %edi,%esi +subl $1,%esi +movl %esi,-16(%ebp) +cmpl $0,%edi +je .LC2966 +.LC2968: +movl $1,-72(%ebp) +jmp .LC2967 +.LC2966: +movl $0,-72(%ebp) +.LC2967: +movl -72(%ebp),%edi +movl %edi,-20(%ebp) +cmpl $0,-12(%ebp) +je .LC2969 +movl $10,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2971 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2971: +.LC2969: +cmpl $0,-16(%ebp) +je .LC2973 +movl $11,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2975 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2975: +.LC2973: +cmpl $1,-20(%ebp) +je .LC2977 +movl $12,-8(%ebp) +cmpl $0,-4(%ebp) +je .LC2979 +pushl -8(%ebp) +pushl $fl.2543 +call printf +addl $8,%esp +.LC2979: +.LC2977: +cmpl $0,-8(%ebp) +je .LC2981 +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC2983 +pushl $4 +pushl $s7813er.2544 +call printf +addl $8,%esp +.LC2983: +addl $4,-32(%ebp) +.LC2981: +movl $0,-16(%ebp) +movl $0,-12(%ebp) +movl $0,-36(%ebp) +movl $1,-40(%ebp) +cmpl $0,-40(%ebp) +je .LC2987 +movl -36(%ebp),%edi +movl %edi,-76(%ebp) +jmp .LC2988 +.LC2987: +cmpl $0,-40(%ebp) +je .LC2989 +movl -12(%ebp),%edi +leal 1(%edi),%esi +movl %esi,-12(%ebp) +movl %edi,-80(%ebp) +jmp .LC2990 +.LC2989: +movl -16(%ebp),%edi +leal 1(%edi),%esi +movl %esi,-16(%ebp) +movl %edi,-80(%ebp) +.LC2990: +movl -80(%ebp),%edi +movl %edi,-76(%ebp) +.LC2988: +movl -76(%ebp),%edi +movl %edi,-20(%ebp) +cmpl $0,-20(%ebp) +jne .LC2994 +cmpl $0,-12(%ebp) +jne .LC2994 +cmpl $0,-16(%ebp) +je .LC2991 +.LC2994: +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC2995 +pushl $8 +pushl $s7813er.2544 +call printf +addl $8,%esp +.LC2995: +addl $8,-32(%ebp) +.LC2991: +cmpl $0,-40(%ebp) +je .LC3002 +movl -36(%ebp),%edi +movl %edi,-84(%ebp) +jmp .LC3003 +.LC3002: +movl $1,-84(%ebp) +.LC3003: +cmpl $0,-84(%ebp) +jne .LC3001 +cmpl $0,-36(%ebp) +je .LC3004 +movl $1,-88(%ebp) +jmp .LC3005 +.LC3004: +movl -36(%ebp),%edi +movl %edi,-88(%ebp) +.LC3005: +cmpl $0,-88(%ebp) +je .LC2997 +.LC3001: +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC3006 +pushl $16 +pushl $s7813er.2544 +call printf +addl $8,%esp +.LC3006: +addl $16,-32(%ebp) +.LC2997: +movl -32(%ebp),%eax +.LC2542: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf3008: +.size s7813,.Lf3008-s7813 +.data +.align 1 +.type s81er.3010,@object +s81er.3010: +.byte 115 +.byte 56 +.byte 49 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size s81er.3010,10 +.align 1 +.type qs81.3011,@object +.size qs81.3011,8 +qs81.3011: +.byte 115 +.byte 56 +.byte 49 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.align 1 +.type badtest.3012,@object +badtest.3012: +.byte 82 +.byte 101 +.byte 103 +.byte 105 +.byte 115 +.byte 116 +.byte 101 +.byte 114 +.byte 32 +.byte 99 +.byte 111 +.byte 117 +.byte 110 +.byte 116 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 37 +.byte 115 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 117 +.byte 110 +.byte 114 +.byte 101 +.byte 108 +.byte 105 +.byte 97 +.byte 98 +.byte 108 +.byte 101 +.byte 46 +.byte 10 +.byte 0 +.size badtest.3012,38 +.align 1 +.type goodtest.3013,@object +goodtest.3013: +.byte 37 +.byte 100 +.byte 32 +.byte 114 +.byte 101 +.byte 103 +.byte 105 +.byte 115 +.byte 116 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 97 +.byte 115 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 101 +.byte 100 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 37 +.byte 115 +.byte 32 +.byte 118 +.byte 97 +.byte 114 +.byte 105 +.byte 97 +.byte 98 +.byte 108 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.size goodtest.3013,40 +.globl s81 +.text +.align 16 +.type s81,@function +s81: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $56,%esp +movl $0,-56(%ebp) +movl $0,-44(%ebp) +movl $0,-48(%ebp) +movl $0,-52(%ebp) +leal qs81.3011,%edi +movl %edi,-36(%ebp) +movl 20(%ebp),%edi +leal 60(%edi),%edi +movl %edi,-40(%ebp) +.LC3014: +.LC3015: +movl -40(%ebp),%edi +leal 1(%edi),%esi +movl %esi,-40(%ebp) +movl -36(%ebp),%esi +leal 1(%esi),%ebx +movl %ebx,-36(%ebp) +movb (,%esi),%bl +movb %bl,(,%edi) +movsbl %bl,%edi +cmpl $0,%edi +jne .LC3014 +movl $1,-16(%ebp) +movl $0,-20(%ebp) +.LC3017: +movl -16(%ebp),%edi +movl %edi,%ebx +movb %bl,-1(%ebp) +movb %bl,-21(%ebp) +leal -16(%ebp),%esi +movl %esi,-8(%ebp) +leal -16(%ebp),%esi +movl %esi,-28(%ebp) +movl %edi,-12(%ebp) +movl %edi,-32(%ebp) +movsbl -1(%ebp),%edi +movsbl -21(%ebp),%esi +cmpl %esi,%edi +je .LC3021 +movl $1,-44(%ebp) +.LC3021: +movl -8(%ebp),%edi +movl -28(%ebp),%esi +cmpl %esi,%edi +je .LC3023 +movl $1,-48(%ebp) +.LC3023: +movl -32(%ebp),%edi +cmpl %edi,-12(%ebp) +je .LC3025 +movl $1,-52(%ebp) +.LC3025: +sall $1,-16(%ebp) +.LC3018: +incl -20(%ebp) +cmpl $50,-20(%ebp) +jl .LC3017 +cmpl $0,-44(%ebp) +je .LC3027 +incl -56(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC3029 +pushl $1 +pushl $s81er.3010 +call printf +addl $8,%esp +.LC3029: +.LC3027: +cmpl $0,-48(%ebp) +je .LC3031 +addl $2,-56(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC3033 +pushl $2 +pushl $s81er.3010 +call printf +addl $8,%esp +.LC3033: +.LC3031: +cmpl $0,-52(%ebp) +je .LC3035 +addl $4,-56(%ebp) +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC3037 +pushl $4 +pushl $s81er.3010 +call printf +addl $8,%esp +.LC3037: +.LC3035: +call regc +movl %eax,-16(%ebp) +movl 20(%ebp),%edi +cmpl $0,40(%edi) +je .LC3039 +cmpl $0,-16(%ebp) +jge .LC3041 +pushl $.LC434 +pushl $badtest.3012 +call printf +addl $8,%esp +jmp .LC3042 +.LC3041: +pushl $.LC434 +pushl -16(%ebp) +pushl $goodtest.3013 +call printf +addl $12,%esp +.LC3042: +.LC3039: +call regp +movl %eax,-16(%ebp) +movl 20(%ebp),%edi +cmpl $0,40(%edi) +je .LC3043 +cmpl $0,-16(%ebp) +jge .LC3045 +pushl $.LC3047 +pushl $badtest.3012 +call printf +addl $8,%esp +jmp .LC3046 +.LC3045: +pushl $.LC3047 +pushl -16(%ebp) +pushl $goodtest.3013 +call printf +addl $12,%esp +.LC3046: +.LC3043: +call regi +movl %eax,-16(%ebp) +movl 20(%ebp),%edi +cmpl $0,40(%edi) +je .LC3048 +cmpl $0,-16(%ebp) +jge .LC3050 +pushl $.LC435 +pushl $badtest.3012 +call printf +addl $8,%esp +jmp .LC3051 +.LC3050: +pushl $.LC435 +pushl -16(%ebp) +pushl $goodtest.3013 +call printf +addl $12,%esp +.LC3051: +.LC3048: +movl -56(%ebp),%eax +.LC3009: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf3052: +.size s81,.Lf3052-s81 +.globl regc +.align 16 +.type regc,@function +regc: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $148,%esp +movb $0,-138(%ebp) +movb $1,-117(%ebp) +movb $2,-118(%ebp) +movb $3,-119(%ebp) +movb $4,-1(%ebp) +movb $5,-120(%ebp) +movb $6,-2(%ebp) +movb $7,-121(%ebp) +movb $8,-3(%ebp) +movb $9,-122(%ebp) +movb $10,-4(%ebp) +movb $11,-123(%ebp) +movb $12,-5(%ebp) +movb $13,-124(%ebp) +movb $14,-6(%ebp) +movb $15,-125(%ebp) +movb $16,-7(%ebp) +movb $17,-126(%ebp) +movb $18,-8(%ebp) +movb $19,-127(%ebp) +movb $20,-9(%ebp) +movb $21,-128(%ebp) +movb $22,-10(%ebp) +movb $23,-129(%ebp) +movb $24,-11(%ebp) +movb $25,-130(%ebp) +movb $26,-12(%ebp) +movb $27,-131(%ebp) +movb $28,-13(%ebp) +movb $29,-132(%ebp) +movb $30,-14(%ebp) +movb $31,-133(%ebp) +movb $32,-15(%ebp) +movb $33,-134(%ebp) +movb $34,-16(%ebp) +movb $35,-135(%ebp) +movb $36,-136(%ebp) +movb $37,-137(%ebp) +movb $38,-139(%ebp) +leal -117(%ebp),%edi +leal -138(%ebp),%esi +movl %edi,%ebx +subl %esi,%ebx +movl %ebx,%esi +movl %esi,-104(%ebp) +leal -118(%ebp),%esi +subl %edi,%esi +movl %esi,%edi +movl %edi,-100(%ebp) +leal -119(%ebp),%edi +leal -118(%ebp),%esi +subl %esi,%edi +movl %edi,-96(%ebp) +leal -120(%ebp),%edi +leal -119(%ebp),%esi +subl %esi,%edi +movl %edi,-92(%ebp) +leal -121(%ebp),%edi +leal -120(%ebp),%esi +subl %esi,%edi +movl %edi,-88(%ebp) +leal -122(%ebp),%edi +leal -121(%ebp),%esi +subl %esi,%edi +movl %edi,-84(%ebp) +leal -123(%ebp),%edi +leal -122(%ebp),%esi +subl %esi,%edi +movl %edi,-80(%ebp) +leal -124(%ebp),%edi +leal -123(%ebp),%esi +subl %esi,%edi +movl %edi,-76(%ebp) +leal -125(%ebp),%edi +leal -124(%ebp),%esi +subl %esi,%edi +movl %edi,-72(%ebp) +leal -126(%ebp),%edi +leal -125(%ebp),%esi +subl %esi,%edi +movl %edi,-68(%ebp) +leal -127(%ebp),%edi +leal -126(%ebp),%esi +subl %esi,%edi +movl %edi,-64(%ebp) +leal -128(%ebp),%edi +leal -127(%ebp),%esi +subl %esi,%edi +movl %edi,-60(%ebp) +leal -129(%ebp),%edi +leal -128(%ebp),%esi +subl %esi,%edi +movl %edi,-56(%ebp) +leal -130(%ebp),%edi +leal -129(%ebp),%esi +subl %esi,%edi +movl %edi,-52(%ebp) +leal -131(%ebp),%edi +leal -130(%ebp),%esi +subl %esi,%edi +movl %edi,-48(%ebp) +leal -132(%ebp),%edi +leal -131(%ebp),%esi +subl %esi,%edi +movl %edi,-44(%ebp) +leal -133(%ebp),%edi +leal -132(%ebp),%esi +subl %esi,%edi +movl %edi,-40(%ebp) +leal -134(%ebp),%edi +leal -133(%ebp),%esi +subl %esi,%edi +movl %edi,-36(%ebp) +leal -135(%ebp),%edi +leal -134(%ebp),%esi +subl %esi,%edi +movl %edi,-32(%ebp) +leal -136(%ebp),%edi +leal -135(%ebp),%esi +subl %esi,%edi +movl %edi,-28(%ebp) +leal -137(%ebp),%edi +leal -136(%ebp),%esi +subl %esi,%edi +movl %edi,-24(%ebp) +leal -139(%ebp),%edi +leal -137(%ebp),%esi +subl %esi,%edi +movl %edi,-20(%ebp) +movl -104(%ebp),%edi +movl %edi,-116(%ebp) +movl $1,-112(%ebp) +movl $0,-108(%ebp) +.LC3075: +movl -112(%ebp),%edi +cmpl $1,%edi +je .LC3081 +cmpl $2,%edi +je .LC3084 +cmpl $3,%edi +je .LC3089 +jmp .LC3079 +.LC3081: +movl -108(%ebp),%edi +leal -104(%ebp),%esi +movl -116(%ebp),%ebx +cmpl %ebx,(%esi,%edi,4) +je .LC3080 +movl -108(%ebp),%edi +leal -104(%ebp),%esi +movl (%esi,%edi,4),%edi +movl %edi,-148(%ebp) +movl $2,-112(%ebp) +movl $1,-144(%ebp) +jmp .LC3080 +.LC3084: +movl -108(%ebp),%edi +leal -104(%ebp),%esi +movl -116(%ebp),%ebx +cmpl %ebx,(%esi,%edi,4) +jne .LC3085 +movl $3,-112(%ebp) +jmp .LC3080 +.LC3085: +movl -108(%ebp),%edi +leal -104(%ebp),%esi +movl -148(%ebp),%ebx +cmpl %ebx,(%esi,%edi,4) +jne .LC3087 +incl -144(%ebp) +jmp .LC3080 +.LC3087: +movl $4,-112(%ebp) +jmp .LC3080 +.LC3089: +movl -108(%ebp),%edi +leal -104(%ebp),%esi +movl -116(%ebp),%ebx +cmpl %ebx,(%esi,%edi,4) +je .LC3080 +movl $4,-112(%ebp) +.LC3079: +.LC3080: +.LC3076: +incl -108(%ebp) +cmpl $22,-108(%ebp) +jl .LC3075 +cmpl $3,-112(%ebp) +jne .LC3092 +movl $16,%edi +movl %edi,%eax +subl -144(%ebp),%eax +jmp .LC3053 +.LC3092: +movl $-1,%eax +.LC3053: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf3094: +.size regc,.Lf3094-regc +.globl regi +.align 16 +.type regi,@function +regi: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $264,%esp +movl $0,-252(%ebp) +movl $1,-168(%ebp) +movl $2,-172(%ebp) +movl $3,-176(%ebp) +movl $4,-4(%ebp) +movl $5,-180(%ebp) +movl $6,-8(%ebp) +movl $7,-184(%ebp) +movl $8,-12(%ebp) +movl $9,-188(%ebp) +movl $10,-16(%ebp) +movl $11,-192(%ebp) +movl $12,-20(%ebp) +movl $13,-196(%ebp) +movl $14,-24(%ebp) +movl $15,-200(%ebp) +movl $16,-28(%ebp) +movl $17,-204(%ebp) +movl $18,-32(%ebp) +movl $19,-208(%ebp) +movl $20,-36(%ebp) +movl $21,-212(%ebp) +movl $22,-40(%ebp) +movl $23,-216(%ebp) +movl $24,-44(%ebp) +movl $25,-220(%ebp) +movl $26,-48(%ebp) +movl $27,-224(%ebp) +movl $28,-52(%ebp) +movl $29,-228(%ebp) +movl $30,-56(%ebp) +movl $31,-232(%ebp) +movl $32,-60(%ebp) +movl $33,-236(%ebp) +movl $34,-64(%ebp) +movl $35,-240(%ebp) +movl $36,-244(%ebp) +movl $37,-248(%ebp) +movl $38,-256(%ebp) +leal -168(%ebp),%edi +movl $4,%esi +leal -252(%ebp),%ebx +movl %edi,%edx +subl %ebx,%edx +movl %edx,%eax +movl %esi,%ecx +cdq +idivl %ecx +movl %eax,-152(%ebp) +leal -172(%ebp),%ebx +subl %edi,%ebx +movl %ebx,%eax +movl %esi,%ecx +cdq +idivl %ecx +movl %eax,-148(%ebp) +leal -176(%ebp),%edi +leal -172(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-144(%ebp) +leal -180(%ebp),%edi +leal -176(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-140(%ebp) +leal -184(%ebp),%edi +leal -180(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-136(%ebp) +leal -188(%ebp),%edi +leal -184(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-132(%ebp) +leal -192(%ebp),%edi +leal -188(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-128(%ebp) +leal -196(%ebp),%edi +leal -192(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-124(%ebp) +leal -200(%ebp),%edi +leal -196(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-120(%ebp) +leal -204(%ebp),%edi +leal -200(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-116(%ebp) +leal -208(%ebp),%edi +leal -204(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-112(%ebp) +leal -212(%ebp),%edi +leal -208(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-108(%ebp) +leal -216(%ebp),%edi +leal -212(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-104(%ebp) +leal -220(%ebp),%edi +leal -216(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-100(%ebp) +leal -224(%ebp),%edi +leal -220(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-96(%ebp) +leal -228(%ebp),%edi +leal -224(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-92(%ebp) +leal -232(%ebp),%edi +leal -228(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-88(%ebp) +leal -236(%ebp),%edi +leal -232(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-84(%ebp) +leal -240(%ebp),%edi +leal -236(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-80(%ebp) +leal -244(%ebp),%edi +leal -240(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-76(%ebp) +leal -248(%ebp),%edi +leal -244(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-72(%ebp) +leal -256(%ebp),%edi +leal -248(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-68(%ebp) +movl -152(%ebp),%edi +movl %edi,-164(%ebp) +movl $1,-160(%ebp) +movl $0,-156(%ebp) +.LC3117: +movl -160(%ebp),%edi +cmpl $1,%edi +je .LC3123 +cmpl $2,%edi +je .LC3126 +cmpl $3,%edi +je .LC3131 +jmp .LC3121 +.LC3123: +movl -156(%ebp),%edi +leal -152(%ebp),%esi +movl -164(%ebp),%ebx +cmpl %ebx,(%esi,%edi,4) +je .LC3122 +movl -156(%ebp),%edi +leal -152(%ebp),%esi +movl (%esi,%edi,4),%edi +movl %edi,-264(%ebp) +movl $2,-160(%ebp) +movl $1,-260(%ebp) +jmp .LC3122 +.LC3126: +movl -156(%ebp),%edi +leal -152(%ebp),%esi +movl -164(%ebp),%ebx +cmpl %ebx,(%esi,%edi,4) +jne .LC3127 +movl $3,-160(%ebp) +jmp .LC3122 +.LC3127: +movl -156(%ebp),%edi +leal -152(%ebp),%esi +movl -264(%ebp),%ebx +cmpl %ebx,(%esi,%edi,4) +jne .LC3129 +incl -260(%ebp) +jmp .LC3122 +.LC3129: +movl $4,-160(%ebp) +jmp .LC3122 +.LC3131: +movl -156(%ebp),%edi +leal -152(%ebp),%esi +movl -164(%ebp),%ebx +cmpl %ebx,(%esi,%edi,4) +je .LC3122 +movl $4,-160(%ebp) +.LC3121: +.LC3122: +.LC3118: +incl -156(%ebp) +cmpl $22,-156(%ebp) +jl .LC3117 +cmpl $3,-160(%ebp) +jne .LC3134 +movl $16,%edi +movl %edi,%eax +subl -260(%ebp),%eax +jmp .LC3095 +.LC3134: +movl $-1,%eax +.LC3095: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf3136: +.size regi,.Lf3136-regi +.globl regp +.align 16 +.type regp,@function +regp: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $264,%esp +leal -252(%ebp),%edi +movl %edi,-252(%ebp) +leal -228(%ebp),%edi +movl %edi,-228(%ebp) +leal -232(%ebp),%edi +movl %edi,-232(%ebp) +leal -236(%ebp),%edi +movl %edi,-236(%ebp) +leal -164(%ebp),%edi +movl %edi,-4(%ebp) +leal -164(%ebp),%edi +movl %edi,-164(%ebp) +leal -168(%ebp),%edi +movl %edi,-8(%ebp) +leal -168(%ebp),%edi +movl %edi,-168(%ebp) +leal -172(%ebp),%edi +movl %edi,-12(%ebp) +leal -172(%ebp),%edi +movl %edi,-172(%ebp) +leal -176(%ebp),%edi +movl %edi,-16(%ebp) +leal -176(%ebp),%edi +movl %edi,-176(%ebp) +leal -180(%ebp),%edi +movl %edi,-20(%ebp) +leal -180(%ebp),%edi +movl %edi,-180(%ebp) +leal -184(%ebp),%edi +movl %edi,-24(%ebp) +leal -184(%ebp),%edi +movl %edi,-184(%ebp) +leal -188(%ebp),%edi +movl %edi,-28(%ebp) +leal -188(%ebp),%edi +movl %edi,-188(%ebp) +leal -192(%ebp),%edi +movl %edi,-32(%ebp) +leal -192(%ebp),%edi +movl %edi,-192(%ebp) +leal -196(%ebp),%edi +movl %edi,-36(%ebp) +leal -196(%ebp),%edi +movl %edi,-196(%ebp) +leal -200(%ebp),%edi +movl %edi,-40(%ebp) +leal -200(%ebp),%edi +movl %edi,-200(%ebp) +leal -204(%ebp),%edi +movl %edi,-44(%ebp) +leal -204(%ebp),%edi +movl %edi,-204(%ebp) +leal -208(%ebp),%edi +movl %edi,-48(%ebp) +leal -208(%ebp),%edi +movl %edi,-208(%ebp) +leal -212(%ebp),%edi +movl %edi,-52(%ebp) +leal -212(%ebp),%edi +movl %edi,-212(%ebp) +leal -216(%ebp),%edi +movl %edi,-56(%ebp) +leal -216(%ebp),%edi +movl %edi,-216(%ebp) +leal -220(%ebp),%edi +movl %edi,-60(%ebp) +leal -220(%ebp),%edi +movl %edi,-220(%ebp) +leal -224(%ebp),%edi +movl %edi,-64(%ebp) +leal -224(%ebp),%edi +movl %edi,-224(%ebp) +leal -240(%ebp),%edi +movl %edi,-240(%ebp) +leal -244(%ebp),%edi +movl %edi,-244(%ebp) +leal -256(%ebp),%edi +movl %edi,-256(%ebp) +leal -228(%ebp),%edi +movl $4,%esi +leal -252(%ebp),%ebx +movl %edi,%edx +subl %ebx,%edx +movl %edx,%eax +movl %esi,%ecx +cdq +idivl %ecx +movl %eax,-152(%ebp) +leal -232(%ebp),%ebx +subl %edi,%ebx +movl %ebx,%eax +movl %esi,%ecx +cdq +idivl %ecx +movl %eax,-148(%ebp) +leal -236(%ebp),%edi +leal -232(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-144(%ebp) +leal -164(%ebp),%edi +leal -236(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-140(%ebp) +leal -168(%ebp),%edi +leal -164(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-136(%ebp) +leal -172(%ebp),%edi +leal -168(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-132(%ebp) +leal -176(%ebp),%edi +leal -172(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-128(%ebp) +leal -180(%ebp),%edi +leal -176(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-124(%ebp) +leal -184(%ebp),%edi +leal -180(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-120(%ebp) +leal -188(%ebp),%edi +leal -184(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-116(%ebp) +leal -192(%ebp),%edi +leal -188(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-112(%ebp) +leal -196(%ebp),%edi +leal -192(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-108(%ebp) +leal -200(%ebp),%edi +leal -196(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-104(%ebp) +leal -204(%ebp),%edi +leal -200(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-100(%ebp) +leal -208(%ebp),%edi +leal -204(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-96(%ebp) +leal -212(%ebp),%edi +leal -208(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-92(%ebp) +leal -216(%ebp),%edi +leal -212(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-88(%ebp) +leal -220(%ebp),%edi +leal -216(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-84(%ebp) +leal -224(%ebp),%edi +leal -220(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-80(%ebp) +leal -240(%ebp),%edi +leal -224(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-76(%ebp) +leal -244(%ebp),%edi +leal -240(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-72(%ebp) +leal -256(%ebp),%edi +leal -244(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +movl %eax,-68(%ebp) +movl -152(%ebp),%edi +movl %edi,-248(%ebp) +movl $1,-160(%ebp) +movl $0,-156(%ebp) +.LC3159: +movl -160(%ebp),%edi +cmpl $1,%edi +je .LC3165 +cmpl $2,%edi +je .LC3168 +cmpl $3,%edi +je .LC3173 +jmp .LC3163 +.LC3165: +movl -156(%ebp),%edi +leal -152(%ebp),%esi +movl -248(%ebp),%ebx +cmpl %ebx,(%esi,%edi,4) +je .LC3164 +movl -156(%ebp),%edi +leal -152(%ebp),%esi +movl (%esi,%edi,4),%edi +movl %edi,-264(%ebp) +movl $2,-160(%ebp) +movl $1,-260(%ebp) +jmp .LC3164 +.LC3168: +movl -156(%ebp),%edi +leal -152(%ebp),%esi +movl -248(%ebp),%ebx +cmpl %ebx,(%esi,%edi,4) +jne .LC3169 +movl $3,-160(%ebp) +jmp .LC3164 +.LC3169: +movl -156(%ebp),%edi +leal -152(%ebp),%esi +movl -264(%ebp),%ebx +cmpl %ebx,(%esi,%edi,4) +jne .LC3171 +incl -260(%ebp) +jmp .LC3164 +.LC3171: +movl $4,-160(%ebp) +jmp .LC3164 +.LC3173: +movl -156(%ebp),%edi +leal -152(%ebp),%esi +movl -248(%ebp),%ebx +cmpl %ebx,(%esi,%edi,4) +je .LC3164 +movl $4,-160(%ebp) +.LC3163: +.LC3164: +.LC3160: +incl -156(%ebp) +cmpl $22,-156(%ebp) +jl .LC3159 +cmpl $3,-160(%ebp) +jne .LC3176 +movl $16,%edi +movl %edi,%eax +subl -260(%ebp),%eax +jmp .LC3137 +.LC3176: +movl $-1,%eax +.LC3137: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf3178: +.size regp,.Lf3178-regp +.bss +.align 4 +.type x3d.3180,@object +.size x3d.3180,420 +.lcomm x3d.3180,420 +.data +.align 1 +.type s84er.3181,@object +s84er.3181: +.byte 115 +.byte 56 +.byte 52 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size s84er.3181,10 +.align 1 +.type qs84.3182,@object +.size qs84.3182,8 +qs84.3182: +.byte 115 +.byte 56 +.byte 52 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s84 +.text +.align 16 +.type s84,@function +s84: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $172,%esp +leal qs84.3182,%edi +movl %edi,-156(%ebp) +movl 20(%ebp),%edi +leal 60(%edi),%edi +movl %edi,-160(%ebp) +movl $0,-164(%ebp) +.LC3183: +.LC3184: +movl -160(%ebp),%edi +leal 1(%edi),%esi +movl %esi,-160(%ebp) +movl -156(%ebp),%esi +leal 1(%esi),%ebx +movl %ebx,-156(%ebp) +movb (,%esi),%bl +movb %bl,(,%edi) +movsbl %bl,%edi +cmpl $0,%edi +jne .LC3183 +pushl $3 +call fip +addl $4,%esp +movl %eax,-168(%ebp) +movl -168(%ebp),%edi +cmpl $3,(,%edi) +je .LC3186 +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC3188 +pushl $1 +pushl $s84er.3181 +call printf +addl $8,%esp +.LC3188: +incl -164(%ebp) +.LC3186: +leal glork,%edi +movl %edi,-172(%ebp) +pushl $4 +call *-172(%ebp) +addl $4,%esp +cmpl $4,%eax +je .LC3190 +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC3192 +pushl $2 +pushl $s84er.3181 +call printf +addl $8,%esp +.LC3192: +addl $2,-164(%ebp) +.LC3190: +movl $0,-8(%ebp) +.LC3194: +movl -8(%ebp),%edi +leal -80(%ebp),%esi +pushl %edi +fildl (%esp) +addl $4,%esp +fstps (%esi,%edi,4) +movl -8(%ebp),%edi +leal (,%edi,4),%edi +leal -148(%ebp),%esi +leal -80(%ebp),%ebx +leal (%ebx,%edi),%ebx +movl %ebx,(%esi,%edi) +.LC3195: +incl -8(%ebp) +cmpl $17,-8(%ebp) +jl .LC3194 +flds .LC421 +fstps -152(%ebp) +movl $0,-8(%ebp) +.LC3198: +flds -152(%ebp) +movl -8(%ebp),%edi +leal -148(%ebp),%esi +movl (%esi,%edi,4),%edi +fadds (,%edi) +fstps -152(%ebp) +.LC3199: +incl -8(%ebp) +cmpl $17,-8(%ebp) +jl .LC3198 +flds .LC3204 +fcomps -152(%ebp) +fstsw %ax +sahf +je .LC3202 +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC3205 +pushl $4 +pushl $s84er.3181 +call printf +addl $8,%esp +.LC3205: +addl $4,-164(%ebp) +.LC3202: +movl $0,-12(%ebp) +.LC3207: +movl $0,-8(%ebp) +.LC3211: +movl $0,-4(%ebp) +.LC3215: +movl -4(%ebp),%edi +movl -8(%ebp),%esi +movl -12(%ebp),%ebx +imul $28,%esi,%edx +imul $140,%ebx,%ecx +leal x3d.3180(%ecx),%ecx +leal (%ecx,%edx),%edx +imul $35,%ebx,%ebx +imul $7,%esi,%esi +leal (%esi,%ebx),%esi +leal (%edi,%esi),%esi +movl %esi,(%edx,%edi,4) +.LC3216: +incl -4(%ebp) +cmpl $7,-4(%ebp) +jl .LC3215 +.LC3212: +incl -8(%ebp) +cmpl $5,-8(%ebp) +jl .LC3211 +.LC3208: +incl -12(%ebp) +cmpl $3,-12(%ebp) +jl .LC3207 +movl $1,-12(%ebp) +movl $2,-8(%ebp) +movl $3,-4(%ebp) +pushl $0 +pushl $105 +pushl $x3d.3180 +call array +addl $12,%esp +movl %eax,%edi +pushl $35 +pushl $35 +imul $140,-12(%ebp),%esi +leal x3d.3180(%esi),%esi +pushl %esi +call array +addl $12,%esp +movl %eax,%esi +pushl $49 +pushl $7 +imul $28,-8(%ebp),%ebx +imul $140,-12(%ebp),%edx +leal x3d.3180(%edx),%edx +leal (%edx,%ebx),%ebx +pushl %ebx +call array +addl $12,%esp +leal (%esi,%edi),%edi +leal (%eax,%edi),%edi +movl -4(%ebp),%esi +imul $28,-8(%ebp),%ebx +imul $140,-12(%ebp),%edx +leal x3d.3180(%edx),%edx +leal (%edx,%ebx),%ebx +movl (%ebx,%esi,4),%esi +leal (%esi,%edi),%edi +subl $52,%edi +cmpl $0,%edi +je .LC3219 +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC3221 +pushl $8 +pushl $s84er.3181 +call printf +addl $8,%esp +.LC3221: +addl $8,-164(%ebp) +.LC3219: +movl -164(%ebp),%eax +.LC3179: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf3223: +.size s84,.Lf3223-s84 +.globl array +.align 16 +.type array,@function +array: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $4,%esp +movl $0,-4(%ebp) +jmp .LC3228 +.LC3225: +movl -4(%ebp),%edi +movl 20(%ebp),%esi +movl 28(%ebp),%ebx +leal (%ebx,%edi),%ebx +cmpl %ebx,(%esi,%edi,4) +je .LC3229 +movl $1,%eax +jmp .LC3224 +.LC3229: +.LC3226: +incl -4(%ebp) +.LC3228: +movl 24(%ebp),%edi +cmpl %edi,-4(%ebp) +jl .LC3225 +movl $0,%eax +.LC3224: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf3231: +.size array,.Lf3231-array +.bss +.align 4 +.type y.3233,@object +.size y.3233,4 +.lcomm y.3233,4 +.globl fip +.text +.align 16 +.type fip,@function +fip: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +leal y.3233,%edi +movl 20(%ebp),%esi +movl %esi,y.3233 +movl %edi,%eax +.LC3232: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf3234: +.size fip,.Lf3234-fip +.globl glork +.align 16 +.type glork,@function +glork: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl 20(%ebp),%eax +.LC3235: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf3236: +.size glork,.Lf3236-glork +.data +.align 1 +.type s85er.3238,@object +s85er.3238: +.byte 115 +.byte 56 +.byte 53 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size s85er.3238,10 +.align 1 +.type qs85.3239,@object +.size qs85.3239,8 +qs85.3239: +.byte 115 +.byte 56 +.byte 53 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.align 4 +.type type.3247,@object +type.3247: +.long .LC434 +.long .LC436 +.long .LC435 +.long .LC437 +.long .LC438 +.long .LC439 +.long .LC440 +.size type.3247,28 +.align 1 +.type aln.3248,@object +aln.3248: +.byte 32 +.byte 97 +.byte 108 +.byte 105 +.byte 103 +.byte 110 +.byte 109 +.byte 101 +.byte 110 +.byte 116 +.byte 58 +.byte 32 +.byte 0 +.size aln.3248,13 +.globl s85 +.text +.align 16 +.type s85,@function +s85: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $404,%esp +leal qs85.3239,%edi +movl %edi,-276(%ebp) +movl 20(%ebp),%edi +leal 60(%edi),%edi +movl %edi,-280(%ebp) +movl $0,-320(%ebp) +.LC3252: +.LC3253: +movl -280(%ebp),%edi +leal 1(%edi),%esi +movl %esi,-280(%ebp) +movl -276(%ebp),%esi +leal 1(%esi),%ebx +movl %ebx,-276(%ebp) +movb (,%esi),%bl +movb %bl,(,%edi) +movsbl %bl,%edi +cmpl $0,%edi +jne .LC3252 +leal -296(%ebp),%edi +leal -316(%ebp),%esi +subl %esi,%edi +cmpl $0,%edi +jle .LC3263 +leal -292(%ebp),%edi +leal -296(%ebp),%esi +subl %esi,%edi +cmpl $0,%edi +jle .LC3263 +leal -288(%ebp),%edi +leal -292(%ebp),%esi +subl %esi,%edi +cmpl $0,%edi +jg .LC3255 +.LC3263: +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC3264 +pushl $1 +pushl $s85er.3238 +call printf +addl $8,%esp +.LC3264: +incl -320(%ebp) +.LC3255: +leal -355(%ebp),%edi +leal -356(%ebp),%esi +subl %esi,%edi +movl %edi,-272(%ebp) +leal -358(%ebp),%edi +leal -360(%ebp),%esi +subl %esi,%edi +movl %edi,-268(%ebp) +leal -364(%ebp),%edi +leal -368(%ebp),%esi +subl %esi,%edi +movl %edi,-264(%ebp) +leal -372(%ebp),%edi +leal -376(%ebp),%esi +subl %esi,%edi +movl %edi,-260(%ebp) +leal -380(%ebp),%edi +leal -384(%ebp),%esi +subl %esi,%edi +movl %edi,-256(%ebp) +leal -388(%ebp),%edi +leal -392(%ebp),%esi +subl %esi,%edi +movl %edi,-252(%ebp) +leal -400(%ebp),%edi +leal -404(%ebp),%esi +subl %esi,%edi +movl %edi,-248(%ebp) +movl 20(%ebp),%edi +cmpl $0,40(%edi) +je .LC3279 +movl $0,-244(%ebp) +.LC3281: +movl -244(%ebp),%edi +leal (,%edi,4),%edi +leal -272(%ebp),%esi +pushl (%esi,%edi) +pushl $aln.3248 +pushl type.3247(%edi) +pushl $.LC3285 +call printf +addl $16,%esp +.LC3282: +incl -244(%ebp) +cmpl $7,-244(%ebp) +jl .LC3281 +.LC3279: +movl -284(%ebp),%edi +orl $56,%edi +movl %edi,-284(%ebp) +movl -284(%ebp),%edi +movl %edi,%esi +andl $0xfffffffc,%esi +sall $26,%edi +sarl $29,%edi +sall $30,%edi +sarl $30,%edi +andl $3,%edi +orl %edi,%esi +movl %esi,-284(%ebp) +movl -284(%ebp),%edi +movl %edi,%esi +andl $0xffffffc7,%esi +sall $30,%edi +sarl $30,%edi +sall $29,%edi +sarl $29,%edi +leal (,%edi,8),%edi +andl $56,%edi +orl %edi,%esi +movl %esi,-284(%ebp) +movl -284(%ebp),%edi +sall $26,%edi +sarl $29,%edi +cmpl $3,%edi +je .LC3286 +movl -284(%ebp),%edi +sall $26,%edi +sarl $29,%edi +cmpl $-1,%edi +jne .LC3288 +movl 20(%ebp),%edi +cmpl $0,40(%edi) +je .LC3289 +pushl $.LC3292 +call printf +addl $4,%esp +jmp .LC3289 +.LC3288: +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC3293 +pushl $2 +pushl $s85er.3238 +call printf +addl $8,%esp +.LC3293: +addl $2,-320(%ebp) +.LC3289: +.LC3286: +movl -284(%ebp),%edi +orl $64,%edi +movl %edi,-284(%ebp) +movl -284(%ebp),%edi +sall $25,%edi +sarl $31,%edi +cmpl $1,%edi +je .LC3295 +movl 20(%ebp),%edi +cmpl $0,40(%edi) +je .LC3297 +pushl $.LC3299 +call printf +addl $4,%esp +.LC3297: +.LC3295: +leal -240(%ebp),%edi +movl %edi,%esi +subl %edi,%esi +cmpl $0,%esi +jne .LC3307 +cmpl $0,%esi +jne .LC3307 +cmpl $0,%esi +jne .LC3307 +cmpl $0,%esi +jne .LC3307 +cmpl $0,%esi +jne .LC3307 +cmpl $0,%esi +jne .LC3307 +cmpl $0,%esi +je .LC3300 +.LC3307: +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC3308 +pushl $4 +pushl $s85er.3238 +call printf +addl $8,%esp +.LC3308: +addl $4,-320(%ebp) +.LC3300: +jmp .LC3310 +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC3312 +pushl $8 +pushl $s85er.3238 +call printf +addl $8,%esp +.LC3312: +addl $8,-320(%ebp) +.LC3310: +leal -352(%ebp),%edi +movl %edi,-288(%ebp) +movb $2,-352(%ebp) +movl -288(%ebp),%edi +movsbl (,%edi),%esi +leal 1(%esi),%esi +movl %esi,%ebx +movb %bl,(,%edi) +movsbl -352(%ebp),%edi +cmpl $3,%edi +je .LC3316 +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC3318 +pushl $16 +pushl $s85er.3238 +call printf +addl $8,%esp +.LC3318: +addl $16,-320(%ebp) +.LC3316: +movl -320(%ebp),%eax +.LC3237: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf3320: +.size s85,.Lf3320-s85 +.data +.align 1 +.type s86er.3322,@object +s86er.3322: +.byte 115 +.byte 56 +.byte 54 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size s86er.3322,10 +.align 1 +.type qs86.3323,@object +.size qs86.3323,8 +qs86.3323: +.byte 115 +.byte 56 +.byte 54 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.align 4 +.type x.3324,@object +x.3324: +.long 1 +.long 3 +.long 5 +.size x.3324,12 +.align 4 +.type pint.3325,@object +.size pint.3325,4 +pint.3325: +.long x.3324+8 +.bss +.align 4 +.type zero.3327,@object +.size zero.3327,40 +.lcomm zero.3327,40 +.data +.align 4 +.type y0.3328,@object +y0.3328: +.long 1065353216 +.long 1077936128 +.long 1084227584 +.long 1073741824 +.long 1082130432 +.long 1086324736 +.long 1077936128 +.long 1084227584 +.long 1088421888 +.long 0 +.long 0 +.long 0 +.size y0.3328,48 +.align 4 +.type y1.3329,@object +.size y1.3329,48 +y1.3329: +.long 1065353216 +.long 1077936128 +.long 1084227584 +.long 1073741824 +.long 1082130432 +.long 1086324736 +.long 1077936128 +.long 1084227584 +.long 1088421888 +.space 12 +.align 4 +.type y2.3330,@object +.size y2.3330,48 +y2.3330: +.long 1065353216 +.long 1077936128 +.long 1084227584 +.long 1073741824 +.long 1082130432 +.long 1086324736 +.long 1077936128 +.long 1084227584 +.long 1088421888 +.space 12 +.align 4 +.type y3.3331,@object +.size y3.3331,48 +y3.3331: +.long 1065353216 +.space 8 +.long 1073741824 +.space 8 +.long 1077936128 +.space 8 +.long 1082130432 +.space 8 +.globl s86 +.text +.align 16 +.type s86,@function +s86: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $40,%esp +movl pint.3325,%edi +leal -4(%edi),%edi +movl %edi,-36(%ebp) +call one +movl -36(%ebp),%esi +leal (%esi,%eax,4),%edi +movl %edi,-4(%ebp) +leal qs86.3323,%edi +movl %edi,-24(%ebp) +movl 20(%ebp),%edi +leal 60(%edi),%edi +movl %edi,-28(%ebp) +movl $0,-32(%ebp) +.LC3332: +.LC3333: +movl -28(%ebp),%edi +leal 1(%edi),%esi +movl %esi,-28(%ebp) +movl -24(%ebp),%esi +leal 1(%esi),%ebx +movl %ebx,-24(%ebp) +movb (,%esi),%bl +movb %bl,(,%edi) +movsbl %bl,%edi +cmpl $0,%edi +jne .LC3332 +movl pint.3325,%edi +cmpl $5,(,%edi) +je .LC3335 +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC3337 +pushl $1 +pushl $s86er.3322 +call printf +addl $8,%esp +.LC3337: +incl -32(%ebp) +.LC3335: +movl -36(%ebp),%edi +cmpl $3,(,%edi) +je .LC3339 +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC3341 +pushl $2 +pushl $s86er.3322 +call printf +addl $8,%esp +.LC3341: +addl $2,-32(%ebp) +.LC3339: +movl -4(%ebp),%edi +cmpl $5,(,%edi) +je .LC3343 +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC3345 +pushl $4 +pushl $s86er.3322 +call printf +addl $8,%esp +.LC3345: +addl $4,-32(%ebp) +.LC3343: +movl $0,-20(%ebp) +movl $0,-8(%ebp) +.LC3347: +movl -8(%ebp),%edi +cmpl $0,zero.3327(,%edi,4) +je .LC3351 +movl $1,-20(%ebp) +.LC3351: +.LC3348: +incl -8(%ebp) +cmpl $10,-8(%ebp) +jl .LC3347 +cmpl $0,-20(%ebp) +je .LC3353 +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC3355 +pushl $8 +pushl $s86er.3322 +call printf +addl $8,%esp +.LC3355: +addl $8,-32(%ebp) +.LC3353: +movl $0,-20(%ebp) +movl $0,-12(%ebp) +.LC3357: +movl $0,-8(%ebp) +.LC3361: +imul $3,-12(%ebp),%edi +movl -8(%ebp),%esi +leal (%esi,%edi),%edi +movl %edi,-16(%ebp) +movl -8(%ebp),%edi +leal (,%edi,4),%edi +imul $12,-12(%ebp),%esi +leal y1.3329(%esi),%ebx +flds (%ebx,%edi) +fstps -40(%ebp) +leal y2.3330(%esi),%esi +flds (%esi,%edi) +fcomps -40(%ebp) +fstsw %ax +sahf +jne .LC3367 +movl -16(%ebp),%edi +flds y0.3328(,%edi,4) +fcomps -40(%ebp) +fstsw %ax +sahf +je .LC3365 +.LC3367: +movl $1,-20(%ebp) +.LC3365: +.LC3362: +incl -8(%ebp) +cmpl $3,-8(%ebp) +jl .LC3361 +.LC3358: +incl -12(%ebp) +cmpl $4,-12(%ebp) +jl .LC3357 +cmpl $0,-20(%ebp) +je .LC3368 +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC3370 +pushl $16 +pushl $s86er.3322 +call printf +addl $8,%esp +.LC3370: +addl $16,-32(%ebp) +.LC3368: +movl $0,-20(%ebp) +movl $0,-8(%ebp) +.LC3372: +movl -8(%ebp),%edi +imul $12,%edi,%esi +leal 1(%edi),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fcomps y3.3331(%esi) +fstsw %ax +sahf +je .LC3376 +movl $1,-20(%ebp) +.LC3376: +.LC3373: +incl -8(%ebp) +cmpl $4,-8(%ebp) +jl .LC3372 +cmpl $0,-20(%ebp) +je .LC3378 +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC3380 +pushl $32 +pushl $s86er.3322 +call printf +addl $8,%esp +.LC3380: +addl $32,-32(%ebp) +.LC3378: +movl -32(%ebp),%eax +.LC3321: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf3382: +.size s86,.Lf3382-s86 +.globl one +.align 16 +.type one,@function +one: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl $1,%eax +.LC3383: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf3384: +.size one,.Lf3384-one +.data +.align 1 +.type s88er.3386,@object +s88er.3386: +.byte 115 +.byte 56 +.byte 56 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size s88er.3386,10 +.align 1 +.type qs88.3387,@object +.size qs88.3387,8 +qs88.3387: +.byte 115 +.byte 56 +.byte 56 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s88 +.text +.align 16 +.type s88,@function +s88: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $44,%esp +leal qs88.3387,%edi +movl %edi,-4(%ebp) +movl 20(%ebp),%edi +leal 60(%edi),%edi +movl %edi,-8(%ebp) +movl $0,-12(%ebp) +.LC3389: +.LC3390: +movl -8(%ebp),%edi +leal 1(%edi),%esi +movl %esi,-8(%ebp) +movl -4(%ebp),%esi +leal 1(%esi),%ebx +movl %ebx,-4(%ebp) +movb (,%esi),%bl +movb %bl,(,%edi) +movsbl %bl,%edi +cmpl $0,%edi +jne .LC3389 +jmp .LC3392 +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC3394 +pushl $1 +pushl $s88er.3386 +call printf +addl $8,%esp +.LC3394: +incl -12(%ebp) +.LC3392: +leal -32(%ebp),%edi +movl %edi,metricp +movl $2,-32(%ebp) +movl metricp,%edi +movl $3,(,%edi) +cmpl $3,-32(%ebp) +je .LC3396 +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC3398 +pushl $2 +pushl $s88er.3386 +call printf +addl $8,%esp +.LC3398: +addl $2,-12(%ebp) +.LC3396: +fldl .LC428 +fstpl -28(%ebp) +fldl .LC428 +fstpl -20(%ebp) +leal -28(%ebp),%edi +movl %edi,-36(%ebp) +movl -36(%ebp),%edi +fldl .LC427 +fstpl (,%edi) +movl -36(%ebp),%edi +fldl .LC427 +fstpl 8(%edi) +fldl -28(%ebp) +faddl -20(%ebp) +fldl .LC425 +fcompp +fstsw %ax +sahf +je .LC3401 +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC3404 +pushl $4 +pushl $s88er.3386 +call printf +addl $8,%esp +.LC3404: +addl $4,-12(%ebp) +.LC3401: +movl -12(%ebp),%eax +.LC3385: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf3406: +.size s88,.Lf3406-s88 +.data +.align 1 +.type s9er.3408,@object +s9er.3408: +.byte 115 +.byte 57 +.byte 44 +.byte 101 +.byte 114 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.size s9er.3408,9 +.align 1 +.type qs9.3409,@object +.size qs9.3409,8 +qs9.3409: +.byte 115 +.byte 57 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 0 +.globl s9 +.text +.align 16 +.type s9,@function +s9: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $36,%esp +leal qs9.3409,%edi +movl %edi,-12(%ebp) +movl 20(%ebp),%edi +leal 60(%edi),%edi +movl %edi,-16(%ebp) +movl $0,-20(%ebp) +.LC3410: +.LC3411: +movl -16(%ebp),%edi +leal 1(%edi),%esi +movl %esi,-16(%ebp) +movl -12(%ebp),%esi +leal 1(%esi),%ebx +movl %ebx,-12(%ebp) +movb (,%esi),%bl +movb %bl,(,%edi) +movsbl %bl,%edi +cmpl $0,%edi +jne .LC3410 +movl $0,-8(%ebp) +movl $0,-4(%ebp) +.LC3413: +movl $2,-24(%ebp) +movl $2,-28(%ebp) +movl $3,-32(%ebp) +movl $3,-36(%ebp) +cmpl $3,-36(%ebp) +jne .LC3419 +cmpl $3,-32(%ebp) +je .LC3417 +.LC3419: +movl $1,-8(%ebp) +.LC3417: +cmpl $2,-28(%ebp) +jne .LC3422 +cmpl $2,-24(%ebp) +je .LC3420 +.LC3422: +movl $1,-8(%ebp) +.LC3420: +.LC3414: +incl -4(%ebp) +cmpl $2,-4(%ebp) +jl .LC3413 +cmpl $0,-8(%ebp) +je .LC3427 +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC3425 +pushl $1 +pushl $s9er.3408 +call printf +addl $8,%esp +.LC3425: +incl -20(%ebp) +jmp .LC3427 +movl 20(%ebp),%edi +cmpl $0,44(%edi) +je .LC3428 +pushl $2 +pushl $s9er.3408 +call printf +addl $8,%esp +.LC3428: +addl $2,-20(%ebp) +.LC3427: +movl -20(%ebp),%eax +.LC3407: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf3430: +.size s9,.Lf3430-s9 +.globl setev +.align 16 +.type setev,@function +setev: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl $1066,extvar +movl $0,%eax +.LC3431: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf3432: +.size setev,.Lf3432-setev +.bss +.globl rfs +.align 1 +.type rfs,@object +.size rfs,8 +.comm rfs,8 +.globl crc +.align 4 +.type crc,@object +.size crc,4 +.comm crc,4 +.globl rrc +.align 4 +.type rrc,@object +.size rrc,4 +.comm rrc,4 +.globl flgl +.align 4 +.type flgl,@object +.size flgl,4 +.comm flgl,4 +.globl flgd +.align 4 +.type flgd,@object +.size flgd,4 +.comm flgd,4 +.globl flgm +.align 4 +.type flgm,@object +.size flgm,4 +.comm flgm,4 +.globl flgs +.align 4 +.type flgs,@object +.size flgs,4 +.comm flgs,4 +.globl dprec +.align 4 +.type dprec,@object +.size dprec,4 +.comm dprec,4 +.globl fprec +.align 4 +.type fprec,@object +.size fprec,4 +.comm fprec,4 +.globl dbits +.align 4 +.type dbits,@object +.size dbits,4 +.comm dbits,4 +.globl fbits +.align 4 +.type fbits,@object +.size fbits,4 +.comm fbits,4 +.globl ubits +.align 4 +.type ubits,@object +.size ubits,4 +.comm ubits,4 +.globl lbits +.align 4 +.type lbits,@object +.size lbits,4 +.comm lbits,4 +.globl metricp +.align 4 +.type metricp,@object +.size metricp,4 +.comm metricp,4 +.globl extvar +.align 4 +.type extvar,@object +.size extvar,4 +.comm extvar,4 +.data +.align 1 +.LC3299: +.byte 66 +.byte 101 +.byte 32 +.byte 101 +.byte 115 +.byte 112 +.byte 101 +.byte 99 +.byte 105 +.byte 97 +.byte 108 +.byte 108 +.byte 121 +.byte 32 +.byte 99 +.byte 97 +.byte 114 +.byte 101 +.byte 102 +.byte 117 +.byte 108 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 49 +.byte 45 +.byte 98 +.byte 105 +.byte 116 +.byte 32 +.byte 102 +.byte 105 +.byte 101 +.byte 108 +.byte 100 +.byte 115 +.byte 33 +.byte 10 +.byte 0 +.align 1 +.LC3292: +.byte 83 +.byte 105 +.byte 103 +.byte 110 +.byte 32 +.byte 101 +.byte 120 +.byte 116 +.byte 101 +.byte 110 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 105 +.byte 110 +.byte 32 +.byte 102 +.byte 105 +.byte 101 +.byte 108 +.byte 100 +.byte 115 +.byte 10 +.byte 0 +.align 1 +.LC3285: +.byte 37 +.byte 115 +.byte 37 +.byte 115 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 4 +.LC3204: +.long 1124597760 +.align 1 +.LC3047: +.byte 112 +.byte 111 +.byte 105 +.byte 110 +.byte 116 +.byte 101 +.byte 114 +.byte 0 +.align 1 +.LC2495: +.byte 73 +.byte 110 +.byte 99 +.byte 114 +.byte 101 +.byte 97 +.byte 115 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 97 +.byte 114 +.byte 114 +.byte 97 +.byte 121 +.byte 32 +.byte 101 +.byte 108 +.byte 101 +.byte 109 +.byte 101 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 97 +.byte 115 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 101 +.byte 100 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 100 +.byte 101 +.byte 99 +.byte 114 +.byte 101 +.byte 97 +.byte 115 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 108 +.byte 111 +.byte 99 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 10 +.byte 0 +.align 4 +.LC2378: +.long 1104150528 +.align 4 +.LC2377: +.long 0 +.long 1077542912 +.align 4 +.LC1678: +.long 0 +.long 1074003968 +.align 4 +.LC1503: +.long 0 +.long 1076101120 +.align 4 +.LC1474: +.long 1092616192 +.align 4 +.LC1299: +.long 0 +.long 1074266112 +.align 4 +.LC1270: +.long 1077936128 +.align 4 +.LC1095: +.long 0 +.long 1075576832 +.align 4 +.LC1066: +.long 1088421888 +.align 4 +.LC889: +.long 0 +.long 1075052544 +.align 4 +.LC860: +.long 1084227584 +.align 4 +.LC855: +.long 0 +.long 1105199104 +.align 4 +.LC847: +.long 1325400064 +.align 1 +.LC669: +.byte 113 +.byte 117 +.byte 101 +.byte 101 +.byte 112 +.byte 0 +.align 1 +.LC654: +.byte 10 +.byte 0 +.align 1 +.LC653: +.byte 37 +.byte 100 +.byte 0 +.align 1 +.LC648: +.byte 32 +.byte 32 +.byte 32 +.byte 107 +.byte 101 +.byte 121 +.byte 61 +.byte 0 +.align 4 +.LC611: +.long 0 +.long 1073741824 +.align 4 +.LC551: +.long 0 +.long 1087276160 +.align 4 +.LC550: +.long 0 +.long 1079984128 +.align 4 +.LC549: +.long 1123680256 +.align 4 +.LC544: +.long 1073741824 +.align 1 +.LC440: +.byte 100 +.byte 111 +.byte 117 +.byte 98 +.byte 108 +.byte 101 +.byte 0 +.align 1 +.LC439: +.byte 102 +.byte 108 +.byte 111 +.byte 97 +.byte 116 +.byte 0 +.align 1 +.LC438: +.byte 117 +.byte 110 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 101 +.byte 100 +.byte 0 +.align 1 +.LC437: +.byte 108 +.byte 111 +.byte 110 +.byte 103 +.byte 0 +.align 1 +.LC436: +.byte 115 +.byte 104 +.byte 111 +.byte 114 +.byte 116 +.byte 0 +.align 1 +.LC435: +.byte 105 +.byte 110 +.byte 116 +.byte 0 +.align 1 +.LC434: +.byte 99 +.byte 104 +.byte 97 +.byte 114 +.byte 0 +.align 4 +.LC428: +.long 0 +.long 0 +.align 4 +.LC427: +.long 0 +.long 1072693248 +.align 4 +.LC426: +.long 0 +.long 1074790400 +.align 4 +.LC425: +.long 0 +.long 1073741824 +.align 4 +.LC421: +.long 0 +.align 4 +.LC420: +.long 1065353216 +.align 1 +.LC398: +.byte 113 +.byte 117 +.byte 101 +.byte 101 +.byte 112 +.byte 33 +.byte 0 +.align 1 +.LC387: +.byte 10 +.byte 9 +.byte 8 +.byte 13 +.byte 12 +.byte 92 +.byte 39 +.byte 0 +.align 1 +.LC383: +.byte 46 +.byte 34 +.byte 46 +.byte 0 +.align 1 +.LC370: +.byte 46 +.byte 46 +.byte 46 +.byte 0 +.align 4 +.LC340: +.long 0 +.long 1083410432 +.align 1 +.LC201: +.byte 32 +.byte 32 +.byte 32 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 101 +.byte 110 +.byte 116 +.byte 32 +.byte 114 +.byte 101 +.byte 115 +.byte 117 +.byte 108 +.byte 116 +.byte 115 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 110 +.byte 32 +.byte 97 +.byte 115 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 101 +.byte 100 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 108 +.byte 111 +.byte 110 +.byte 103 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC200: +.byte 68 +.byte 101 +.byte 99 +.byte 105 +.byte 109 +.byte 97 +.byte 108 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 111 +.byte 99 +.byte 116 +.byte 97 +.byte 108 +.byte 47 +.byte 104 +.byte 101 +.byte 120 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 115 +.byte 116 +.byte 97 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 115 +.byte 111 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 109 +.byte 101 +.byte 115 +.byte 32 +.byte 103 +.byte 105 +.byte 118 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.LC27: +.byte 10 +.byte 70 +.byte 97 +.byte 105 +.byte 108 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC26: +.byte 10 +.byte 78 +.byte 111 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 115 +.byte 32 +.byte 100 +.byte 101 +.byte 116 +.byte 101 +.byte 99 +.byte 116 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC20: +.byte 83 +.byte 101 +.byte 99 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 37 +.byte 115 +.byte 32 +.byte 114 +.byte 101 +.byte 116 +.byte 117 +.byte 114 +.byte 110 +.byte 101 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.text +.ident "LCC: 4.1" diff --git a/code/tools/lcc/x86/linux/tst/cvt.1bk b/code/tools/lcc/x86/linux/tst/cvt.1bk new file mode 100644 index 0000000..b28b302 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/cvt.1bk @@ -0,0 +1,11 @@ +1 1 1 1 1 1 1 1 1.000000 1.000000 1.000000 +2 2 2 2 2 2 2 2 2.000000 2.000000 2.000000 +3 3 3 3 3 3 3 3 3.000000 3.000000 3.000000 +4 4 4 4 4 4 4 4 4.000000 4.000000 4.000000 +5 5 5 5 5 5 5 5 5.000000 5.000000 5.000000 +6 6 6 6 6 6 6 6 6.000000 6.000000 6.000000 +7 7 7 7 7 7 7 7 7.000000 7.000000 7.000000 +8 8 8 8 8 8 8 8 8.000000 8.000000 8.000000 +9 9 9 9 9 9 9 9 9.000000 9.000000 9.000000 +10 10 10 10 10 10 10 10 10.000000 10.000000 10.000000 +11 11 11 11 11 11 11 11 11.000000 11.000000 11.000000 diff --git a/code/tools/lcc/x86/linux/tst/cvt.2bk b/code/tools/lcc/x86/linux/tst/cvt.2bk new file mode 100644 index 0000000..241527d --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/cvt.2bk @@ -0,0 +1,2 @@ +tst/cvt.c:32: warning: conversion from `pointer to void function(void)' to `pointer to void' is compiler dependent +tst/cvt.c:33: warning: conversion from `pointer to void' to `pointer to void function(void)' is compiler dependent diff --git a/code/tools/lcc/x86/linux/tst/cvt.sbk b/code/tools/lcc/x86/linux/tst/cvt.sbk new file mode 100644 index 0000000..fa3c130 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/cvt.sbk @@ -0,0 +1,792 @@ +.globl print +.text +.align 16 +.type print,@function +print: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +fldl D +subl $8,%esp +fstpl (%esp) +fldl d +subl $8,%esp +fstpl (%esp) +flds f +subl $8,%esp +fstpl (%esp) +pushl L +pushl I +movw S,%di +movzwl %di,%edi +pushl %edi +movb C,%bl +movzbl %bl,%edi +pushl %edi +pushl l +pushl i +movswl s,%edi +pushl %edi +movsbl c,%edi +pushl %edi +pushl $.LC2 +call printf +addl $60,%esp +.LC1: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf3: +.size print,.Lf3-print +.globl main +.align 16 +.type main,@function +main: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $296,%esp +movb $1,c +movsbl c,%edi +movl %edi,%esi +movw %si,s +movl %edi,i +movl %edi,l +movl %edi,%esi +movl %esi,%ebx +movb %bl,C +movl %esi,%ebx +movw %bx,S +movl %esi,I +movl %esi,L +pushl %edi +fildl (%esp) +addl $4,%esp +fstps f +pushl %edi +fildl (%esp) +addl $4,%esp +fstpl -8(%ebp) +fldl -8(%ebp) +fstpl d +fldl -8(%ebp) +fstpl D +call print +movw $2,s +movswl s,%edi +movl %edi,%ebx +movb %bl,c +movl %edi,i +movl %edi,l +movl %edi,%esi +movl %esi,%ebx +movb %bl,C +movl %esi,%ebx +movw %bx,S +movl %esi,I +movl %esi,L +pushl %edi +fildl (%esp) +addl $4,%esp +fstps f +pushl %edi +fildl (%esp) +addl $4,%esp +fstpl -16(%ebp) +fldl -16(%ebp) +fstpl d +fldl -16(%ebp) +fstpl D +call print +movl $3,i +movl i,%edi +movl %edi,%ebx +movb %bl,c +movl %edi,%esi +movw %si,s +movl %edi,l +movl %edi,%esi +movl %esi,%ebx +movb %bl,C +movl %esi,%ebx +movw %bx,S +movl %esi,I +movl %esi,L +pushl %edi +fildl (%esp) +addl $4,%esp +fstps f +pushl %edi +fildl (%esp) +addl $4,%esp +fstpl -24(%ebp) +fldl -24(%ebp) +fstpl d +fldl -24(%ebp) +fstpl D +call print +movl $4,l +movl l,%edi +movl %edi,%ebx +movb %bl,c +movl %edi,%esi +movw %si,s +movl %edi,i +movl %edi,%esi +movl %esi,%ebx +movb %bl,C +movl %esi,%ebx +movw %bx,S +movl %esi,I +movl %esi,L +pushl %edi +fildl (%esp) +addl $4,%esp +fstps f +pushl %edi +fildl (%esp) +addl $4,%esp +fstpl -32(%ebp) +fldl -32(%ebp) +fstpl d +fldl -32(%ebp) +fstpl D +call print +movb $5,C +movb C,%bl +movzbl %bl,%edi +movl %edi,%ebx +movb %bl,c +movl %edi,%esi +movw %si,s +movl %edi,i +movl %edi,l +movl %edi,%esi +movl %esi,%ebx +movw %bx,S +movl %esi,I +movl %esi,L +pushl %edi +fildl (%esp) +addl $4,%esp +fstps f +pushl %edi +fildl (%esp) +addl $4,%esp +fstpl -40(%ebp) +fldl -40(%ebp) +fstpl d +fldl -40(%ebp) +fstpl D +call print +movw $6,S +movw S,%di +movzwl %di,%edi +movl %edi,%ebx +movb %bl,c +movl %edi,%esi +movw %si,s +movl %edi,i +movl %edi,l +movl %edi,%esi +movl %esi,%ebx +movb %bl,C +movl %esi,I +movl %esi,L +pushl %edi +fildl (%esp) +addl $4,%esp +fstps f +pushl %edi +fildl (%esp) +addl $4,%esp +fstpl -48(%ebp) +fldl -48(%ebp) +fstpl d +fldl -48(%ebp) +fstpl D +call print +movl $7,I +movl I,%edi +movl %edi,%ebx +movb %bl,c +movl %edi,%ebx +movw %bx,s +movl %edi,i +movl %edi,l +movl %edi,%ebx +movb %bl,C +movl %edi,%esi +movw %si,S +movl %edi,L +fldl .LC5 +movl %edi,%esi +shrl $1,%esi +pushl %esi +fildl (%esp) +addl $4,%esp +fmulp %st(1),%st +andl $1,%edi +pushl %edi +fildl (%esp) +addl $4,%esp +faddp %st(1),%st +fstpl -56(%ebp) +fldl -56(%ebp) +fstps f +fldl -56(%ebp) +fstpl d +fldl -56(%ebp) +fstpl D +call print +movl $8,L +movl L,%edi +movl %edi,%ebx +movb %bl,c +movl %edi,%ebx +movw %bx,s +movl %edi,i +movl %edi,l +movl %edi,%ebx +movb %bl,C +movl %edi,%esi +movw %si,S +movw S,%si +movzwl %si,%esi +movl %esi,I +fldl .LC5 +movl %edi,%esi +shrl $1,%esi +pushl %esi +fildl (%esp) +addl $4,%esp +fmulp %st(1),%st +andl $1,%edi +pushl %edi +fildl (%esp) +addl $4,%esp +faddp %st(1),%st +fstpl -64(%ebp) +fldl -64(%ebp) +fstps f +fldl -64(%ebp) +fstpl d +fldl -64(%ebp) +fstpl D +call print +flds .LC6 +fstps f +flds f +fstps -84(%ebp) +flds -84(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movl %edi,%ebx +movb %bl,c +movl %edi,%esi +movw %si,s +movl %edi,i +movl %edi,l +flds .LC10 +fcomps -84(%ebp) +fstsw %ax +sahf +ja .LC8 +flds -84(%ebp) +fsubs .LC10 +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +leal 0x80000000(%edi),%edi +movl %edi,-68(%ebp) +jmp .LC9 +.LC8: +flds -84(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movl %edi,-68(%ebp) +.LC9: +movl -68(%ebp),%edi +movl %edi,%ebx +movb %bl,C +flds .LC10 +fcomps f +fstsw %ax +sahf +ja .LC12 +flds f +fsubs .LC10 +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +leal 0x80000000(%edi),%edi +movl %edi,-72(%ebp) +jmp .LC13 +.LC12: +flds f +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movl %edi,-72(%ebp) +.LC13: +movl -72(%ebp),%edi +movw %di,S +flds .LC10 +fcomps f +fstsw %ax +sahf +ja .LC15 +flds f +fsubs .LC10 +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +leal 0x80000000(%edi),%edi +movl %edi,-76(%ebp) +jmp .LC16 +.LC15: +flds f +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movl %edi,-76(%ebp) +.LC16: +movl -76(%ebp),%edi +movl %edi,I +flds .LC10 +fcomps f +fstsw %ax +sahf +ja .LC18 +flds f +fsubs .LC10 +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +leal 0x80000000(%edi),%edi +movl %edi,-80(%ebp) +jmp .LC19 +.LC18: +flds f +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movl %edi,-80(%ebp) +.LC19: +movl -80(%ebp),%edi +movl %edi,L +flds f +fstpl -120(%ebp) +fldl -120(%ebp) +fstpl d +fldl -120(%ebp) +fstpl D +call print +fldl .LC20 +fstpl d +fldl d +fstpl -144(%ebp) +fldl -144(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movl %edi,%ebx +movb %bl,c +movl %edi,%esi +movw %si,s +movl %edi,i +movl %edi,l +fldl .LC24 +fcompl -144(%ebp) +fstsw %ax +sahf +ja .LC22 +fldl -144(%ebp) +fsubl .LC24 +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +leal 0x80000000(%edi),%edi +movl %edi,-124(%ebp) +jmp .LC23 +.LC22: +fldl -144(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movl %edi,-124(%ebp) +.LC23: +movl -124(%ebp),%edi +movl %edi,%ebx +movb %bl,C +fldl .LC24 +fcompl d +fstsw %ax +sahf +ja .LC26 +fldl d +fsubl .LC24 +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +leal 0x80000000(%edi),%edi +movl %edi,-128(%ebp) +jmp .LC27 +.LC26: +fldl d +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movl %edi,-128(%ebp) +.LC27: +movl -128(%ebp),%edi +movw %di,S +fldl .LC24 +fcompl d +fstsw %ax +sahf +ja .LC29 +fldl d +fsubl .LC24 +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +leal 0x80000000(%edi),%edi +movl %edi,-132(%ebp) +jmp .LC30 +.LC29: +fldl d +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movl %edi,-132(%ebp) +.LC30: +movl -132(%ebp),%edi +movl %edi,I +fldl .LC24 +fcompl d +fstsw %ax +sahf +ja .LC32 +fldl d +fsubl .LC24 +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +leal 0x80000000(%edi),%edi +movl %edi,-136(%ebp) +jmp .LC33 +.LC32: +fldl d +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movl %edi,-136(%ebp) +.LC33: +movl -136(%ebp),%edi +movl %edi,L +fldl d +fstps f +fldl d +fstpl D +call print +fldl .LC34 +fstpl D +fldl D +fstpl -232(%ebp) +fldl -232(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movl %edi,%ebx +movb %bl,c +movl %edi,%esi +movw %si,s +movl %edi,i +movl %edi,l +fldl .LC38 +fcompl -232(%ebp) +fstsw %ax +sahf +ja .LC36 +fldl -232(%ebp) +fsubl .LC38 +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +leal 0x80000000(%edi),%edi +movl %edi,-212(%ebp) +jmp .LC37 +.LC36: +fldl -232(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movl %edi,-212(%ebp) +.LC37: +movl -212(%ebp),%edi +movl %edi,%ebx +movb %bl,C +fldl .LC38 +fcompl D +fstsw %ax +sahf +ja .LC40 +fldl D +fsubl .LC38 +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +leal 0x80000000(%edi),%edi +movl %edi,-216(%ebp) +jmp .LC41 +.LC40: +fldl D +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movl %edi,-216(%ebp) +.LC41: +movl -216(%ebp),%edi +movw %di,S +fldl .LC38 +fcompl D +fstsw %ax +sahf +ja .LC43 +fldl D +fsubl .LC38 +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +leal 0x80000000(%edi),%edi +movl %edi,-220(%ebp) +jmp .LC44 +.LC43: +fldl D +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movl %edi,-220(%ebp) +.LC44: +movl -220(%ebp),%edi +movl %edi,I +fldl .LC38 +fcompl D +fstsw %ax +sahf +ja .LC46 +fldl D +fsubl .LC38 +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +leal 0x80000000(%edi),%edi +movl %edi,-224(%ebp) +jmp .LC47 +.LC46: +fldl D +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,%edi +movl %edi,-224(%ebp) +.LC47: +movl -224(%ebp),%edi +movl %edi,L +fldl D +fstps f +fldl D +fstpl d +call print +movl $0,p +movl $0,p +movl $0,p +movl $0,p +movl P,%edi +movl %edi,p +movl $0,P +movl $0,P +movl $0,P +movl $0,P +movl p,%edi +movl %edi,P +movl $0,%eax +.LC4: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf48: +.size main,.Lf48-main +.bss +.globl P +.align 4 +.type P,@object +.size P,4 +.comm P,4 +.globl p +.align 4 +.type p,@object +.size p,4 +.comm p,4 +.globl D +.align 4 +.type D,@object +.size D,8 +.comm D,8 +.globl d +.align 4 +.type d,@object +.size d,8 +.comm d,8 +.globl f +.align 4 +.type f,@object +.size f,4 +.comm f,4 +.globl L +.align 4 +.type L,@object +.size L,4 +.comm L,4 +.globl I +.align 4 +.type I,@object +.size I,4 +.comm I,4 +.globl S +.align 2 +.type S,@object +.size S,2 +.comm S,2 +.globl C +.align 1 +.type C,@object +.size C,1 +.comm C,1 +.globl l +.align 4 +.type l,@object +.size l,4 +.comm l,4 +.globl i +.align 4 +.type i,@object +.size i,4 +.comm i,4 +.globl s +.align 2 +.type s,@object +.size s,2 +.comm s,2 +.globl c +.align 1 +.type c,@object +.size c,1 +.comm c,1 +.data +.align 4 +.LC38: +.long 0 +.long 1105199104 +.align 4 +.LC34: +.long 0 +.long 1076232192 +.align 4 +.LC24: +.long 0 +.long 1105199104 +.align 4 +.LC20: +.long 0 +.long 1076101120 +.align 4 +.LC10: +.long 1325400064 +.align 4 +.LC6: +.long 1091567616 +.align 4 +.LC5: +.long 0 +.long 1073741824 +.align 1 +.LC2: +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 108 +.byte 100 +.byte 32 +.byte 37 +.byte 117 +.byte 32 +.byte 37 +.byte 117 +.byte 32 +.byte 37 +.byte 117 +.byte 32 +.byte 37 +.byte 108 +.byte 117 +.byte 32 +.byte 37 +.byte 102 +.byte 32 +.byte 37 +.byte 102 +.byte 32 +.byte 37 +.byte 108 +.byte 102 +.byte 10 +.byte 0 +.text +.ident "LCC: 4.1" diff --git a/code/tools/lcc/x86/linux/tst/fields.1bk b/code/tools/lcc/x86/linux/tst/fields.1bk new file mode 100644 index 0000000..56fdeb9 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/fields.1bk @@ -0,0 +1,5 @@ +x = 1 2 3 4 -3 6 +y = 3 8 9 +x = 1 2 3 0 0 6 +y = 2 8 16 +p->a = 0x3, p->b = 0xf diff --git a/code/tools/lcc/x86/linux/tst/fields.2bk b/code/tools/lcc/x86/linux/tst/fields.2bk new file mode 100644 index 0000000..51e1736 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/fields.2bk @@ -0,0 +1,4 @@ +tst/fields.c:6: warning: initializer exceeds bit-field width +tst/fields.c:8: warning: initializer exceeds bit-field width +tst/fields.c:30: warning: missing return value +tst/fields.c:34: warning: missing return value diff --git a/code/tools/lcc/x86/linux/tst/fields.sbk b/code/tools/lcc/x86/linux/tst/fields.sbk new file mode 100644 index 0000000..4664f80 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/fields.sbk @@ -0,0 +1,321 @@ +.data +.globl x +.align 4 +.type x,@object +.size x,16 +x: +.long 1 +.byte 2 +.space 3 +.byte 3 +.byte 64 +.space 2 +.byte 80 +.byte 6 +.space 2 +.globl i +.align 4 +.type i,@object +.size i,4 +i: +.long 16 +.globl y +.align 4 +.type y,@object +.size y,8 +y: +.byte 35 +.space 3 +.byte 9 +.byte 0 +.byte 0 +.byte 0 +.globl main +.text +.align 16 +.type main,@function +main: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movsbl x+13,%edi +pushl %edi +movl x+12,%edi +sall $25,%edi +sarl $29,%edi +pushl %edi +movl x+8,%edi +sall $16,%edi +sarl $28,%edi +pushl %edi +movl x+8,%edi +sall $20,%edi +sarl $20,%edi +pushl %edi +movsbl x+4,%edi +pushl %edi +pushl x +pushl $.LC4 +call printf +addl $28,%esp +pushl y+4 +movl y,%edi +movl %edi,%esi +shrl $2,%esi +andl $15,%esi +pushl %esi +andl $3,%edi +pushl %edi +pushl $.LC10 +call printf +addl $16,%esp +movl x+8,%edi +andl $0xffff0fff,%edi +movl i,%esi +sall $28,%esi +sarl $28,%esi +shll $12,%esi +andl $0xf000,%esi +orl %esi,%edi +movl %edi,x+8 +movl x+12,%edi +andl $0xffffff8f,%edi +movl %edi,x+12 +movsbl x+13,%edi +pushl %edi +movl x+12,%edi +sall $25,%edi +sarl $29,%edi +pushl %edi +movl x+8,%edi +sall $16,%edi +sarl $28,%edi +pushl %edi +movl x+8,%edi +sall $20,%edi +sarl $20,%edi +pushl %edi +movsbl x+4,%edi +pushl %edi +pushl x +pushl $.LC4 +call printf +addl $28,%esp +movl y,%edi +andl $0xfffffffc,%edi +orl $2,%edi +movl %edi,y +movl i,%edi +movl %edi,y+4 +pushl y+4 +movl y,%edi +movl %edi,%esi +shrl $2,%esi +andl $15,%esi +pushl %esi +andl $3,%edi +pushl %edi +pushl $.LC10 +call printf +addl $16,%esp +pushl $x +call f2 +addl $4,%esp +movl $0,%eax +.LC3: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf21: +.size main,.Lf21-main +.globl f1 +.align 16 +.type f1,@function +f1: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl 20(%ebp),%edi +andl $0xffffffc3,(,%edi) +movl 20(%ebp),%edi +movl (,%edi),%esi +andl $0xfffffffc,%esi +movl $0,%ebx +andl $3,%ebx +andl $3,%ebx +orl %ebx,%esi +movl %esi,(,%edi) +movl 20(%ebp),%edi +movl (,%edi),%edi +andl $60,%edi +cmpl $0,%edi +je .LC23 +pushl $.LC25 +call printf +addl $4,%esp +.LC23: +movl 20(%ebp),%edi +orl $3,(,%edi) +movl 20(%ebp),%edi +orl $60,(,%edi) +movl 20(%ebp),%edi +movl (,%edi),%edi +movl %edi,%esi +shrl $2,%esi +andl $15,%esi +pushl %esi +andl $3,%edi +pushl %edi +pushl $.LC26 +call printf +addl $12,%esp +movl $0,%eax +.LC22: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf27: +.size f1,.Lf27-f1 +.globl f2 +.align 16 +.type f2,@function +f2: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $4,%esp +cmpl $0,i +jne .LC30 +movl $1,-4(%ebp) +jmp .LC31 +.LC30: +movl $0,-4(%ebp) +.LC31: +movl 20(%ebp),%edi +movl (,%edi),%esi +andl $0xfffffffc,%esi +movl -4(%ebp),%ebx +andl $3,%ebx +andl $3,%ebx +orl %ebx,%esi +movl %esi,(,%edi) +movl 20(%ebp),%edi +pushl %edi +call f1 +addl $4,%esp +movl (,%edi),%esi +andl $0xffffffc3,%esi +movl $0,%ebx +andl $15,%ebx +leal (,%ebx,4),%ebx +andl $60,%ebx +orl %ebx,%esi +movl %esi,(,%edi) +movl $0,%eax +.LC28: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf32: +.size f2,.Lf32-f2 +.data +.align 1 +.LC26: +.byte 112 +.byte 45 +.byte 62 +.byte 97 +.byte 32 +.byte 61 +.byte 32 +.byte 48 +.byte 120 +.byte 37 +.byte 120 +.byte 44 +.byte 32 +.byte 112 +.byte 45 +.byte 62 +.byte 98 +.byte 32 +.byte 61 +.byte 32 +.byte 48 +.byte 120 +.byte 37 +.byte 120 +.byte 10 +.byte 0 +.align 1 +.LC25: +.byte 112 +.byte 45 +.byte 62 +.byte 98 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 33 +.byte 10 +.byte 0 +.align 1 +.LC10: +.byte 121 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.LC4: +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.text +.ident "LCC: 4.1" diff --git a/code/tools/lcc/x86/linux/tst/front.2bk b/code/tools/lcc/x86/linux/tst/front.2bk new file mode 100644 index 0000000..bbd390a --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/front.2bk @@ -0,0 +1,29 @@ +tst/front.c:3: warning: missing return value +tst/front.c:10: warning: missing return value +tst/front.c:20: type error in argument 1 to `s'; found `pointer to struct D' expected `pointer to incomplete struct D defined at tst/front.c:14' +tst/front.c:21: warning: missing return value +tst/front.c:32: warning: missing return value +tst/front.c:36: operands of = have illegal types `pointer to int' and `pointer to const int' +tst/front.c:38: warning: missing return value +tst/front.c:62: operands of = have illegal types `pointer to char' and `pointer to const void' +tst/front.c:63: warning: missing return value +tst/front.c:68: warning: missing return value +tst/front.c:69: warning: inconsistent linkage for `yy' previously declared at tst/front.c:68 +tst/front.c:69: warning: missing return value +tst/front.c:71: invalid storage class `static' for `int function goo' +tst/front.c:71: warning: declaration of `goo' does not match previous declaration at tst/front.c:70 +tst/front.c:71: warning: missing return value +tst/front.c:74: warning: declaration of `xr' does not match previous declaration at tst/front.c:72 +tst/front.c:74: warning: missing return value +tst/front.c:81: warning: missing return value +tst/front.c:82: warning: declaration of `ss2' does not match previous declaration at tst/front.c:81 +tst/front.c:84: warning: inconsistent linkage for `ss5' previously declared at tst/front.c:80 +tst/front.c:92: type error in argument 1 to `gx1'; found `pointer to double' expected `double' +tst/front.c:92: warning: missing return value +tst/front.c:95: redeclaration of `hx1' previously declared at tst/front.c:94 +tst/front.c:98: warning: missing return value +tst/front.c:101: conflicting argument declarations for function `gg1' +tst/front.c:101: warning: missing return value +tst/front.c:112: type error in argument 4 to `qsort'; found `pointer to int function(pointer to pointer to char,pointer to pointer to char)' expected `pointer to int function(pointer to const void,pointer to const void)' +tst/front.c:113: warning: missing return value +tst/front.c:120: warning: missing return value diff --git a/code/tools/lcc/x86/linux/tst/front.sbk b/code/tools/lcc/x86/linux/tst/front.sbk new file mode 100644 index 0000000..e2d5b44 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/front.sbk @@ -0,0 +1,530 @@ +.globl main +.text +.align 16 +.type main,@function +main: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +pushl $0 +call exit +addl $4,%esp +movl $0,%eax +.LC1: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf2: +.size main,.Lf2-main +.globl nested +.align 16 +.type nested,@function +nested: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +cmpl $4,20(%ebp) +jge .LC7 +cmpl $114,24(%ebp) +je .LC10 +.LC7: +cmpl $1,20(%ebp) +jne .LC9 +movl 24(%ebp),%edi +cmpl $104,%edi +je .LC10 +cmpl $105,%edi +je .LC10 +.LC9: +cmpl $2,20(%ebp) +jne .LC4 +movl 24(%ebp),%edi +cmpl $111,%edi +je .LC10 +cmpl $121,%edi +jne .LC4 +.LC10: +movl 24(%ebp),%edi +movl %edi,20(%ebp) +.LC4: +movl $0,%eax +.LC3: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf11: +.size nested,.Lf11-nested +.globl s +.align 16 +.type s,@function +s: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +.LC12: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf13: +.size s,.Lf13-s +.data +.globl Dy +.align 4 +.type Dy,@object +.size Dy,8 +Dy: +.long 0 +.space 4 +.globl Dz +.align 4 +.type Dz,@object +.size Dz,8 +Dz: +.long 1 +.space 4 +.globl Dfunc +.text +.align 16 +.type Dfunc,@function +Dfunc: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf16: +.size Dfunc,.Lf16-Dfunc +.globl f +.align 16 +.type f,@function +f: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf18: +.size f,.Lf18-f +.globl f1 +.align 16 +.type f1,@function +f1: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf20: +.size f1,.Lf20-f1 +.globl f2 +.align 16 +.type f2,@function +f2: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf22: +.size f2,.Lf22-f2 +.globl g +.align 16 +.type g,@function +g: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf24: +.size g,.Lf24-g +.globl h +.align 16 +.type h,@function +h: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf26: +.size h,.Lf26-h +.globl h1 +.align 16 +.type h1,@function +h1: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf28: +.size h1,.Lf28-h1 +.globl h2 +.align 16 +.type h2,@function +h2: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf30: +.size h2,.Lf30-h2 +.data +.align 4 +.type yy.32,@object +.size yy.32,4 +yy.32: +.long 1 +.globl set1 +.text +.align 16 +.type set1,@function +set1: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf33: +.size set1,.Lf33-set1 +.data +.align 4 +.type yy.35,@object +.size yy.35,4 +yy.35: +.long 2 +.globl set2 +.text +.align 16 +.type set2,@function +set2: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf36: +.size set2,.Lf36-set2 +.align 16 +.type goo,@function +goo: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf38: +.size goo,.Lf38-goo +.globl sss +.align 16 +.type sss,@function +sss: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf40: +.size sss,.Lf40-sss +.bss +.align 4 +.type xr.42,@object +.size xr.42,4 +.lcomm xr.42,4 +.globl rrr +.text +.align 16 +.type rrr,@function +rrr: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf43: +.size rrr,.Lf43-rrr +.globl setstatic +.align 16 +.type setstatic,@function +setstatic: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf45: +.size setstatic,.Lf45-setstatic +.globl gx1 +.align 16 +.type gx1,@function +gx1: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf47: +.size gx1,.Lf47-gx1 +.globl ff1 +.align 16 +.type ff1,@function +ff1: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf49: +.size ff1,.Lf49-ff1 +.globl gg1 +.align 16 +.type gg1,@function +gg1: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf51: +.size gg1,.Lf51-gg1 +.globl hh1 +.align 16 +.type hh1,@function +hh1: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf53: +.size hh1,.Lf53-hh1 +.globl cmp +.align 16 +.type cmp,@function +cmp: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf55: +.size cmp,.Lf55-cmp +.globl sort +.align 16 +.type sort,@function +sort: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf57: +.size sort,.Lf57-sort +.globl onearg +.align 16 +.type onearg,@function +onearg: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf65: +.size onearg,.Lf65-onearg +.bss +.globl ss4 +.align 4 +.type ss4,@object +.size ss4,4 +.comm ss4,4 +.align 4 +.type ss2,@object +.size ss2,4 +.lcomm ss2,4 +.align 4 +.type ss5,@object +.size ss5,4 +.lcomm ss5,4 +.globl ss3 +.align 4 +.type ss3,@object +.size ss3,4 +.comm ss3,4 +.align 4 +.type ss1,@object +.size ss1,4 +.lcomm ss1,4 +.align 4 +.type yy,@object +.size yy,4 +.lcomm yy,4 +.globl z +.align 4 +.type z,@object +.size z,4 +.comm z,4 +.globl y +.align 4 +.type y,@object +.size y,4 +.comm y,4 +.globl x +.align 4 +.type x,@object +.size x,4 +.comm x,4 +.globl b +.align 4 +.type b,@object +.size b,4 +.comm b,4 +.globl a +.align 4 +.type a,@object +.size a,4 +.comm a,4 +.text +.ident "LCC: 4.1" diff --git a/code/tools/lcc/x86/linux/tst/incr.1bk b/code/tools/lcc/x86/linux/tst/incr.1bk new file mode 100644 index 0000000..e69de29 diff --git a/code/tools/lcc/x86/linux/tst/incr.2bk b/code/tools/lcc/x86/linux/tst/incr.2bk new file mode 100644 index 0000000..d9ef13c --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/incr.2bk @@ -0,0 +1,9 @@ +tst/incr.c:1: warning: missing return value +tst/incr.c:6: warning: expression with no effect elided +tst/incr.c:6: warning: expression with no effect elided +tst/incr.c:11: warning: missing return value +tst/incr.c:16: warning: expression with no effect elided +tst/incr.c:16: warning: expression with no effect elided +tst/incr.c:21: warning: missing return value +tst/incr.c:30: warning: missing return value +tst/incr.c:39: warning: missing return value diff --git a/code/tools/lcc/x86/linux/tst/incr.sbk b/code/tools/lcc/x86/linux/tst/incr.sbk new file mode 100644 index 0000000..f79e020 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/incr.sbk @@ -0,0 +1,181 @@ +.globl main +.text +.align 16 +.type main,@function +main: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl $0,%eax +.LC1: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf2: +.size main,.Lf2-main +.globl memchar +.align 16 +.type memchar,@function +memchar: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $8,%esp +movl -8(%ebp),%edi +leal 1(%edi),%esi +movl %esi,-8(%ebp) +movb (,%edi),%bl +movb %bl,-1(%ebp) +movl -8(%ebp),%edi +leal 1(%edi),%edi +movl %edi,-8(%ebp) +movb (,%edi),%bl +movb %bl,-1(%ebp) +movl -8(%ebp),%edi +leal -1(%edi),%esi +movl %esi,-8(%ebp) +movb (,%edi),%bl +movb %bl,-1(%ebp) +movl -8(%ebp),%edi +leal -1(%edi),%edi +movl %edi,-8(%ebp) +movb (,%edi),%bl +movb %bl,-1(%ebp) +movl $0,%eax +.LC3: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf4: +.size memchar,.Lf4-memchar +.globl memint +.align 16 +.type memint,@function +memint: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $8,%esp +movl -8(%ebp),%edi +leal 4(%edi),%esi +movl %esi,-8(%ebp) +movl (,%edi),%edi +movl %edi,-4(%ebp) +movl -8(%ebp),%edi +leal 4(%edi),%edi +movl %edi,-8(%ebp) +movl (,%edi),%edi +movl %edi,-4(%ebp) +movl -8(%ebp),%edi +leal -4(%edi),%esi +movl %esi,-8(%ebp) +movl (,%edi),%edi +movl %edi,-4(%ebp) +movl -8(%ebp),%edi +leal -4(%edi),%edi +movl %edi,-8(%ebp) +movl (,%edi),%edi +movl %edi,-4(%ebp) +movl $0,%eax +.LC5: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf6: +.size memint,.Lf6-memint +.globl regchar +.align 16 +.type regchar,@function +regchar: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $8,%esp +movl -8(%ebp),%edi +leal 1(%edi),%esi +movl %esi,-8(%ebp) +movb (,%edi),%bl +movb %bl,-1(%ebp) +movl -8(%ebp),%edi +leal 1(%edi),%edi +movl %edi,-8(%ebp) +movb (,%edi),%bl +movb %bl,-1(%ebp) +movl -8(%ebp),%edi +leal -1(%edi),%esi +movl %esi,-8(%ebp) +movb (,%edi),%bl +movb %bl,-1(%ebp) +movl -8(%ebp),%edi +leal -1(%edi),%edi +movl %edi,-8(%ebp) +movb (,%edi),%bl +movb %bl,-1(%ebp) +movl $0,%eax +.LC7: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf8: +.size regchar,.Lf8-regchar +.globl regint +.align 16 +.type regint,@function +regint: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $8,%esp +movl -8(%ebp),%edi +leal 4(%edi),%esi +movl %esi,-8(%ebp) +movl (,%edi),%edi +movl %edi,-4(%ebp) +movl -8(%ebp),%edi +leal 4(%edi),%edi +movl %edi,-8(%ebp) +movl (,%edi),%edi +movl %edi,-4(%ebp) +movl -8(%ebp),%edi +leal -4(%edi),%esi +movl %esi,-8(%ebp) +movl (,%edi),%edi +movl %edi,-4(%ebp) +movl -8(%ebp),%edi +leal -4(%edi),%edi +movl %edi,-8(%ebp) +movl (,%edi),%edi +movl %edi,-4(%ebp) +movl $0,%eax +.LC9: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf10: +.size regint,.Lf10-regint +.ident "LCC: 4.1" diff --git a/code/tools/lcc/x86/linux/tst/init.1bk b/code/tools/lcc/x86/linux/tst/init.1bk new file mode 100644 index 0000000..77aff09 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/init.1bk @@ -0,0 +1,16 @@ + 1 2 3 4 + 5 6 + 7 +if +for +else +while +1 2 3 if +4 5 0 for +6 7 8 else +9 10 11 while +1 2 3 if +4 5 0 for +6 7 8 else +9 10 11 while +0 0 0 diff --git a/code/tools/lcc/x86/linux/tst/init.2bk b/code/tools/lcc/x86/linux/tst/init.2bk new file mode 100644 index 0000000..aafe415 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/init.2bk @@ -0,0 +1,3 @@ +tst/init.c:36: warning: missing return value +tst/init.c:49: warning: missing return value +tst/init.c:59: warning: missing return value diff --git a/code/tools/lcc/x86/linux/tst/init.sbk b/code/tools/lcc/x86/linux/tst/init.sbk new file mode 100644 index 0000000..7a5032a --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/init.sbk @@ -0,0 +1,336 @@ +.data +.globl words +.align 4 +.type words,@object +words: +.long 1 +.long 2 +.long 3 +.byte 105 +.byte 102 +.byte 0 +.space 3 +.space 2 +.long 4 +.long 5 +.space 4 +.byte 102 +.byte 111 +.byte 114 +.space 3 +.space 2 +.long 6 +.long 7 +.long 8 +.byte 101 +.byte 108 +.byte 115 +.byte 101 +.byte 0 +.space 1 +.space 2 +.long 9 +.long 10 +.long 11 +.byte 119 +.byte 104 +.byte 105 +.byte 108 +.byte 101 +.space 1 +.space 2 +.long 0 +.space 8 +.space 8 +.size words,100 +.globl wordlist +.align 4 +.type wordlist,@object +.size wordlist,4 +wordlist: +.long words +.globl x +.align 4 +.type x,@object +x: +.long 1 +.long 2 +.long 3 +.long 4 +.long 0 +.long 5 +.long 6 +.space 12 +.long 7 +.space 16 +.size x,60 +.globl y +.align 4 +.type y,@object +y: +.long x +.long x+20 +.long x+40 +.long 0 +.size y,16 +.globl main +.text +.align 16 +.type main,@function +main: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $8,%esp +movl $0,-8(%ebp) +jmp .LC8 +.LC5: +movl $0,-4(%ebp) +jmp .LC12 +.LC9: +movl -4(%ebp),%edi +movl -8(%ebp),%esi +movl y(,%esi,4),%esi +pushl (%esi,%edi,4) +pushl $.LC13 +call printf +addl $8,%esp +.LC10: +incl -4(%ebp) +.LC12: +movl -4(%ebp),%edi +movl -8(%ebp),%esi +movl y(,%esi,4),%esi +cmpl $0,(%esi,%edi,4) +jne .LC9 +pushl $.LC14 +call printf +addl $4,%esp +.LC6: +incl -8(%ebp) +.LC8: +movl -8(%ebp),%edi +movl y(,%edi,4),%edi +cmpl $0,%edi +jne .LC5 +call f +pushl wordlist +call g +addl $4,%esp +movl $0,%eax +.LC4: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf15: +.size main,.Lf15-main +.data +.align 4 +.type keywords.17,@object +keywords.17: +.long .LC18 +.long .LC19 +.long .LC20 +.long .LC21 +.long 0 +.size keywords.17,20 +.globl f +.text +.align 16 +.type f,@function +f: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $4,%esp +leal keywords.17,%edi +movl %edi,-4(%ebp) +jmp .LC25 +.LC22: +movl -4(%ebp),%edi +pushl (,%edi) +pushl $.LC26 +call printf +addl $8,%esp +.LC23: +movl -4(%ebp),%edi +leal 4(%edi),%edi +movl %edi,-4(%ebp) +.LC25: +movl -4(%ebp),%edi +movl (,%edi),%edi +cmpl $0,%edi +jne .LC22 +movl $0,%eax +.LC16: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf27: +.size f,.Lf27-f +.globl g +.align 16 +.type g,@function +g: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $4,%esp +jmp .LC32 +.LC29: +movl $0,-4(%ebp) +jmp .LC36 +.LC33: +movl -4(%ebp),%edi +movl 20(%ebp),%esi +pushl (%esi,%edi,4) +pushl $.LC37 +call printf +addl $8,%esp +.LC34: +incl -4(%ebp) +.LC36: +movl -4(%ebp),%edi +cmpl $3,%edi +jb .LC33 +movl 20(%ebp),%edi +leal 12(%edi),%edi +pushl %edi +pushl $.LC26 +call printf +addl $8,%esp +.LC30: +movl 20(%ebp),%edi +leal 20(%edi),%edi +movl %edi,20(%ebp) +.LC32: +movl 20(%ebp),%edi +cmpl $0,(,%edi) +jne .LC29 +call h +movl $0,%eax +.LC28: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf38: +.size g,.Lf38-g +.globl h +.align 16 +.type h,@function +h: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $4,%esp +movl $0,-4(%ebp) +jmp .LC43 +.LC40: +imul $20,-4(%ebp),%edi +leal words+12(%edi),%esi +pushl %esi +pushl words+8(%edi) +pushl words+4(%edi) +pushl words(%edi) +pushl $.LC44 +call printf +addl $20,%esp +.LC41: +incl -4(%ebp) +.LC43: +movl -4(%ebp),%edi +cmpl $5,%edi +jb .LC40 +movl $0,%eax +.LC39: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf48: +.size h,.Lf48-h +.data +.align 1 +.LC44: +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 1 +.LC37: +.byte 37 +.byte 100 +.byte 32 +.byte 0 +.align 1 +.LC26: +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 1 +.LC21: +.byte 119 +.byte 104 +.byte 105 +.byte 108 +.byte 101 +.byte 0 +.align 1 +.LC20: +.byte 101 +.byte 108 +.byte 115 +.byte 101 +.byte 0 +.align 1 +.LC19: +.byte 102 +.byte 111 +.byte 114 +.byte 0 +.align 1 +.LC18: +.byte 105 +.byte 102 +.byte 0 +.align 1 +.LC14: +.byte 10 +.byte 0 +.align 1 +.LC13: +.byte 32 +.byte 37 +.byte 100 +.byte 0 +.text +.ident "LCC: 4.1" diff --git a/code/tools/lcc/x86/linux/tst/limits.1bk b/code/tools/lcc/x86/linux/tst/limits.1bk new file mode 100644 index 0000000..9beee8c --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/limits.1bk @@ -0,0 +1,14 @@ +UCHAR_MAX: 000000ff=255 +USHRT_MAX: 0000ffff=65535 +UINT_MAX: ffffffff=-1 +ULONG_MAX: ffffffff=-1 +CHAR_MAX: 0000007f=127 +SCHAR_MAX: 0000007f=127 +SHRT_MAX: 00007fff=32767 +INT_MAX: 7fffffff=2147483647 +LONG_MAX: 7fffffff=2147483647 +CHAR_MIN: ffffff80=-128 +SCHAR_MIN: ffffff80=-128 +SHRT_MIN: ffff8000=-32768 +INT_MIN: 80000000=-2147483648 +LONG_MIN: 80000000=-2147483648 diff --git a/code/tools/lcc/x86/linux/tst/limits.2bk b/code/tools/lcc/x86/linux/tst/limits.2bk new file mode 100644 index 0000000..e69de29 diff --git a/code/tools/lcc/x86/linux/tst/limits.sbk b/code/tools/lcc/x86/linux/tst/limits.sbk new file mode 100644 index 0000000..9d973d2 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/limits.sbk @@ -0,0 +1,396 @@ +.globl main +.text +.align 16 +.type main,@function +main: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +pushl $255 +pushl $255 +pushl $.LC2 +call printf +addl $12,%esp +pushl $65535 +pushl $65535 +pushl $.LC3 +call printf +addl $12,%esp +pushl $0xffffffff +pushl $0xffffffff +pushl $.LC4 +call printf +addl $12,%esp +pushl $0xffffffff +pushl $0xffffffff +pushl $.LC5 +call printf +addl $12,%esp +pushl $127 +pushl $127 +pushl $.LC6 +call printf +addl $12,%esp +pushl $127 +pushl $127 +pushl $.LC7 +call printf +addl $12,%esp +pushl $32767 +pushl $32767 +pushl $.LC8 +call printf +addl $12,%esp +pushl $2147483647 +pushl $2147483647 +pushl $.LC9 +call printf +addl $12,%esp +pushl $2147483647 +pushl $2147483647 +pushl $.LC10 +call printf +addl $12,%esp +pushl $-128 +pushl $-128 +pushl $.LC11 +call printf +addl $12,%esp +pushl $-128 +pushl $-128 +pushl $.LC12 +call printf +addl $12,%esp +pushl $-32768 +pushl $-32768 +pushl $.LC13 +call printf +addl $12,%esp +pushl $-2147483648 +pushl $-2147483648 +pushl $.LC14 +call printf +addl $12,%esp +pushl $-2147483648 +pushl $-2147483648 +pushl $.LC15 +call printf +addl $12,%esp +movl $0,%eax +.LC1: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf16: +.size main,.Lf16-main +.data +.align 1 +.LC15: +.byte 76 +.byte 79 +.byte 78 +.byte 71 +.byte 95 +.byte 77 +.byte 73 +.byte 78 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 108 +.byte 120 +.byte 61 +.byte 37 +.byte 108 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.LC14: +.byte 73 +.byte 78 +.byte 84 +.byte 95 +.byte 77 +.byte 73 +.byte 78 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.LC13: +.byte 83 +.byte 72 +.byte 82 +.byte 84 +.byte 95 +.byte 77 +.byte 73 +.byte 78 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.LC12: +.byte 83 +.byte 67 +.byte 72 +.byte 65 +.byte 82 +.byte 95 +.byte 77 +.byte 73 +.byte 78 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.LC11: +.byte 67 +.byte 72 +.byte 65 +.byte 82 +.byte 95 +.byte 77 +.byte 73 +.byte 78 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.LC10: +.byte 76 +.byte 79 +.byte 78 +.byte 71 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 108 +.byte 120 +.byte 61 +.byte 37 +.byte 108 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.LC9: +.byte 73 +.byte 78 +.byte 84 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.LC8: +.byte 83 +.byte 72 +.byte 82 +.byte 84 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.LC7: +.byte 83 +.byte 67 +.byte 72 +.byte 65 +.byte 82 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.LC6: +.byte 67 +.byte 72 +.byte 65 +.byte 82 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.LC5: +.byte 85 +.byte 76 +.byte 79 +.byte 78 +.byte 71 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 108 +.byte 120 +.byte 61 +.byte 37 +.byte 108 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.LC4: +.byte 85 +.byte 73 +.byte 78 +.byte 84 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.LC3: +.byte 85 +.byte 83 +.byte 72 +.byte 82 +.byte 84 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.LC2: +.byte 85 +.byte 67 +.byte 72 +.byte 65 +.byte 82 +.byte 95 +.byte 77 +.byte 65 +.byte 88 +.byte 58 +.byte 9 +.byte 37 +.byte 48 +.byte 56 +.byte 120 +.byte 61 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.text +.ident "LCC: 4.1" diff --git a/code/tools/lcc/x86/linux/tst/paranoia.1bk b/code/tools/lcc/x86/linux/tst/paranoia.1bk new file mode 100644 index 0000000..fffebd5 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/paranoia.1bk @@ -0,0 +1,183 @@ +Lest this program stop prematurely, i.e. before displaying + + `END OF TEST', + +try to persuade the computer NOT to terminate execution when an +error like Over/Underflow or Division by Zero occurs, but rather +to persevere with a surrogate value after, perhaps, displaying some +warning. If persuasion avails naught, don't despair but run this +program anyway to see how many milestones it passes, and then +amend it to make further progress. + +Answer questions with Y, y, N or n (unless otherwise indicated). + + +Diagnosis resumes after milestone Number 0 Page: 1 + +Users are invited to help debug and augment this program so it will +cope with unanticipated and newly uncovered arithmetic pathologies. + +Please send suggestions and interesting results to + Richard Karpinski + Computer Center U-76 + University of California + San Francisco, CA 94143-0704, USA + +In doing so, please include the following information: + Precision: double; + Version: 10 February 1989; + Computer: + + Compiler: + + Optimization level: + + Other relevant compiler options: + +Diagnosis resumes after milestone Number 1 Page: 2 + +Running this program should reveal these characteristics: + Radix = 1, 2, 4, 8, 10, 16, 100, 256 ... + Precision = number of significant digits carried. + U2 = Radix/Radix^Precision = One Ulp + (OneUlpnit in the Last Place) of 1.000xxx . + U1 = 1/Radix^Precision = One Ulp of numbers a little less than 1.0 . + Adequacy of guard digits for Mult., Div. and Subt. + Whether arithmetic is chopped, correctly rounded, or something else + for Mult., Div., Add/Subt. and Sqrt. + Whether a Sticky Bit used correctly for rounding. + UnderflowThreshold = an underflow threshold. + E0 and PseudoZero tell whether underflow is abrupt, gradual, or fuzzy. + V = an overflow threshold, roughly. + V0 tells, roughly, whether Infinity is represented. + Comparisions are checked for consistency with subtraction + and for contamination with pseudo-zeros. + Sqrt is tested. Y^X is not tested. + Extra-precise subexpressions are revealed but NOT YET tested. + Decimal-Binary conversion is NOT YET tested for accuracy. + +Diagnosis resumes after milestone Number 2 Page: 3 + +The program attempts to discriminate among + FLAWs, like lack of a sticky bit, + Serious DEFECTs, like lack of a guard digit, and + FAILUREs, like 2+2 == 5 . +Failures may confound subsequent diagnoses. + +The diagnostic capabilities of this program go beyond an earlier +program called `MACHAR', which can be found at the end of the +book `Software Manual for the Elementary Functions' (1980) by +W. J. Cody and W. Waite. Although both programs try to discover +the Radix, Precision and range (over/underflow thresholds) +of the arithmetic, this program tries to cope with a wider variety +of pathologies, and to say how well the arithmetic is implemented. + +The program is based upon a conventional radix representation for +floating-point numbers, but also allows logarithmic encoding +as used by certain early WANG machines. + +BASIC version of this program (C) 1983 by Prof. W. M. Kahan; +see source comments for more history. + +Diagnosis resumes after milestone Number 3 Page: 4 + +Program is now RUNNING tests on small integers: +-1, 0, 1/2, 1, 2, 3, 4, 5, 9, 27, 32 & 240 are O.K. + +Searching for Radix and Precision. +Radix = 2.000000 . +Closest relative separation found is U1 = 1.1102230e-16 . + +Recalculating radix and precision + confirms closest relative separation U1 . +Radix confirmed. +The number of significant digits of the Radix is 53.000000 . +Some subexpressions appear to be calculated extra +precisely with about 11 extra B-digits, i.e. +roughly 3.31133 extra significant decimals. +That feature is not tested further by this program. + +Diagnosis resumes after milestone Number 30 Page: 5 + +Subtraction appears to be normalized, as it should be. +Checking for guard digit in *, /, and -. + *, /, and - appear to have guard digits, as they should. + +Diagnosis resumes after milestone Number 40 Page: 6 + +Checking rounding on multiply, divide and add/subtract. +* is neither chopped nor correctly rounded. +/ is neither chopped nor correctly rounded. +Addition/Subtraction neither rounds nor chops. +Sticky bit used incorrectly or not at all. +FLAW: lack(s) of guard digits or failure(s) to correctly round or chop +(noted above) count as one flaw in the final tally below. + +Does Multiplication commute? Testing on 20 random pairs. + No failures found in 20 integer pairs. + +Running test of square root(x). +Testing if sqrt(X * X) == X for 20 Integers X. +Test for sqrt monotonicity. +sqrt has passed a test for Monotonicity. +Testing whether sqrt is rounded or chopped. +Square root is neither chopped nor correctly rounded. +Observed errors run from -5.0000000e-01 to 5.0000000e-01 ulps. + +Diagnosis resumes after milestone Number 90 Page: 7 + +Testing powers Z^i for small Integers Z and i. +... no discrepancis found. + +Seeking Underflow thresholds UfThold and E0. +Smallest strictly positive number found is E0 = 4.94066e-324 . +Since comparison denies Z = 0, evaluating (Z + Z) / Z should be safe. +What the machine gets for (Z + Z) / Z is 2.00000000000000000e+00 . +This is O.K., provided Over/Underflow has NOT just been signaled. +Underflow is gradual; it incurs Absolute Error = +(roundoff in UfThold) < E0. +The Underflow threshold is 2.22507385850720188e-308, below which +calculation may suffer larger Relative error than merely roundoff. +Since underflow occurs below the threshold +UfThold = (2.00000000000000000e+00) ^ (-1.02200000000000000e+03) +only underflow should afflict the expression + (2.00000000000000000e+00) ^ (-1.02200000000000000e+03); +actually calculating yields: 0.00000000000000000e+00 . +This computed value is O.K. + +Testing X^((X + 1) / (X - 1)) vs. exp(2) = 7.38905609893065218e+00 as X -> 1. +Accuracy seems adequate. +Testing powers Z^Q at four nearly extreme values. + ... no discrepancies found. + + +Diagnosis resumes after milestone Number 160 Page: 8 + +Searching for Overflow threshold: +This may generate an error. +Can `Z = -Y' overflow? +Trying it on Y = -Inf . +Seems O.K. +Overflow threshold is V = 1.79769313486231571e+308 . +Overflow saturates at V0 = Inf . +No Overflow should be signaled for V * 1 = 1.79769313486231571e+308 + nor for V / 1 = 1.79769313486231571e+308 . +Any overflow signal separating this * from the one +above is a DEFECT. + + +Diagnosis resumes after milestone Number 190 Page: 9 + + +What message and/or values does Division by Zero produce? + Trying to compute 1 / 0 produces ... Inf . + + Trying to compute 0 / 0 produces ... NaN . + +Diagnosis resumes after milestone Number 220 Page: 10 + + +The number of FLAWs discovered = 1. + +The arithmetic diagnosed seems Satisfactory though flawed. +END OF TEST. diff --git a/code/tools/lcc/x86/linux/tst/paranoia.2bk b/code/tools/lcc/x86/linux/tst/paranoia.2bk new file mode 100644 index 0000000..2718174 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/paranoia.2bk @@ -0,0 +1,16 @@ +tst/paranoia.c:1867: warning: missing return value +tst/paranoia.c:1874: warning: missing return value +tst/paranoia.c:1884: warning: missing return value +tst/paranoia.c:1924: warning: missing return value +tst/paranoia.c:1939: warning: missing return value +tst/paranoia.c:1956: warning: missing return value +tst/paranoia.c:1975: warning: missing return value +tst/paranoia.c:1988: warning: missing return value +tst/paranoia.c:1995: warning: missing return value +tst/paranoia.c:2055: warning: missing return value +tst/paranoia.c:2062: warning: missing return value +tst/paranoia.c:2070: warning: missing return value +tst/paranoia.c:2087: warning: missing return value +tst/paranoia.c:2115: warning: missing return value +tst/paranoia.c:2144: warning: missing return value +tst/paranoia.c:2173: warning: missing return value diff --git a/code/tools/lcc/x86/linux/tst/paranoia.sbk b/code/tools/lcc/x86/linux/tst/paranoia.sbk new file mode 100644 index 0000000..0eaccc7 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/paranoia.sbk @@ -0,0 +1,20248 @@ +.data +.globl Zero +.align 4 +.type Zero,@object +.size Zero,8 +Zero: +.long 0 +.long 0 +.globl Half +.align 4 +.type Half,@object +.size Half,8 +Half: +.long 0 +.long 1071644672 +.globl One +.align 4 +.type One,@object +.size One,8 +One: +.long 0 +.long 1072693248 +.globl Two +.align 4 +.type Two,@object +.size Two,8 +Two: +.long 0 +.long 1073741824 +.globl Three +.align 4 +.type Three,@object +.size Three,8 +Three: +.long 0 +.long 1074266112 +.globl Four +.align 4 +.type Four,@object +.size Four,8 +Four: +.long 0 +.long 1074790400 +.globl Five +.align 4 +.type Five,@object +.size Five,8 +Five: +.long 0 +.long 1075052544 +.globl Eight +.align 4 +.type Eight,@object +.size Eight,8 +Eight: +.long 0 +.long 1075838976 +.globl Nine +.align 4 +.type Nine,@object +.size Nine,8 +Nine: +.long 0 +.long 1075970048 +.globl TwentySeven +.align 4 +.type TwentySeven,@object +.size TwentySeven,8 +TwentySeven: +.long 0 +.long 1077608448 +.globl ThirtyTwo +.align 4 +.type ThirtyTwo,@object +.size ThirtyTwo,8 +ThirtyTwo: +.long 0 +.long 1077936128 +.globl TwoForty +.align 4 +.type TwoForty,@object +.size TwoForty,8 +TwoForty: +.long 0 +.long 1080950784 +.globl MinusOne +.align 4 +.type MinusOne,@object +.size MinusOne,8 +MinusOne: +.long 0 +.long -1074790400 +.globl OneAndHalf +.align 4 +.type OneAndHalf,@object +.size OneAndHalf,8 +OneAndHalf: +.long 0 +.long 1073217536 +.globl NoTrials +.align 4 +.type NoTrials,@object +.size NoTrials,4 +NoTrials: +.long 20 +.globl sigfpe +.text +.align 16 +.type sigfpe,@function +sigfpe: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +incl fpecount +pushl $.LC3 +call printf +addl $4,%esp +pushl $_IO_stdout_ +call fflush +addl $4,%esp +movl sigsave,%edi +cmpl $0,%edi +je .LC4 +pushl sigsave +pushl $8 +call signal +addl $8,%esp +movl $0,sigsave +pushl $1 +pushl $ovfl_buf +call longjmp +addl $8,%esp +.LC4: +call abort +.LC2: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf6: +.size sigfpe,.Lf6-sigfpe +.data +.align 4 +.type msg.758,@object +msg.758: +.long .LC759 +.long .LC760 +.long .LC761 +.long .LC762 +.size msg.758,16 +.globl main +.text +.align 16 +.type main,@function +main: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $1684,%esp +fldl .LC8 +fstpl Zero +fldl .LC9 +fstpl One +fldl One +fstpl -8(%ebp) +fldl -8(%ebp) +faddl -8(%ebp) +fstpl Two +fldl Two +fstpl -16(%ebp) +fldl -16(%ebp) +faddl -8(%ebp) +fstpl Three +fldl Three +fstpl -24(%ebp) +fldl -24(%ebp) +faddl -8(%ebp) +fstpl Four +fldl Four +fstpl -32(%ebp) +fldl -32(%ebp) +faddl -8(%ebp) +fstpl Five +fldl -32(%ebp) +faddl -32(%ebp) +fstpl Eight +fldl -24(%ebp) +fmull -24(%ebp) +fstpl Nine +fldl Nine +fmull -24(%ebp) +fstpl TwentySeven +fldl -32(%ebp) +fmull Eight +fstpl ThirtyTwo +fldl -32(%ebp) +fmull Five +fmull -24(%ebp) +fmull -32(%ebp) +fstpl TwoForty +fldl -8(%ebp) +fchs +fstpl MinusOne +fldl -8(%ebp) +fdivl -16(%ebp) +fstpl Half +fldl -8(%ebp) +faddl Half +fstpl OneAndHalf +movl $0,ErrCnt +movl $0,ErrCnt+4 +movl $0,ErrCnt+8 +movl $0,ErrCnt+12 +movl $1,PageNo +movl $0,Milestone +pushl $sigfpe +pushl $8 +call signal +addl $8,%esp +call Instructions +call Pause +call Heading +call Pause +call Characteristics +call Pause +call History +call Pause +movl $7,Milestone +pushl $.LC13 +call printf +addl $4,%esp +pushl $.LC15 +fldl Zero +faddl Zero +fldl Zero +fcompp +fstsw %ax +sahf +jne .LC16 +fldl One +fsubl One +fldl Zero +fcompp +fstsw %ax +sahf +jne .LC16 +fldl Zero +fcompl One +fstsw %ax +sahf +jae .LC16 +fldl One +faddl One +fldl Two +fcompp +fstsw %ax +sahf +jne .LC16 +movl $1,-36(%ebp) +jmp .LC17 +.LC16: +movl $0,-36(%ebp) +.LC17: +pushl -36(%ebp) +pushl $0 +call TstCond +addl $12,%esp +fldl Zero +fchs +fstpl Z +fldl .LC8 +fcompl Z +fstsw %ax +sahf +je .LC18 +incl ErrCnt +pushl $.LC20 +call printf +addl $4,%esp +fldl .LC21 +fstpl U1 +fldl .LC9 +fstpl Radix +call TstPtUf +.LC18: +pushl $.LC23 +fldl Two +faddl One +fcompl Three +fstsw %ax +sahf +jne .LC24 +fldl Three +faddl One +fcompl Four +fstsw %ax +sahf +jne .LC24 +fldl Four +fldl Two +fldl Two +fchs +fmulp %st(1),%st +faddp %st(1),%st +fldl Zero +fcompp +fstsw %ax +sahf +jne .LC24 +fldl Four +fsubl Three +fsubl One +fldl Zero +fcompp +fstsw %ax +sahf +jne .LC24 +movl $1,-56(%ebp) +jmp .LC25 +.LC24: +movl $0,-56(%ebp) +.LC25: +pushl -56(%ebp) +pushl $0 +call TstCond +addl $12,%esp +fldl .LC8 +fsubl One +fcompl MinusOne +fstsw %ax +sahf +jne .LC28 +fldl MinusOne +faddl One +fldl Zero +fcompp +fstsw %ax +sahf +jne .LC28 +fldl One +faddl MinusOne +fldl Zero +fcompp +fstsw %ax +sahf +jne .LC28 +fldl One +subl $8,%esp +fstpl (%esp) +call fabs +addl $8,%esp +fstpl -132(%ebp) +fldl MinusOne +faddl -132(%ebp) +fldl Zero +fcompp +fstsw %ax +sahf +jne .LC28 +fldl MinusOne +fldl MinusOne +fmull MinusOne +faddp %st(1),%st +fldl Zero +fcompp +fstsw %ax +sahf +jne .LC28 +movl $1,-100(%ebp) +jmp .LC29 +.LC28: +movl $0,-100(%ebp) +.LC29: +pushl $.LC27 +pushl -100(%ebp) +pushl $0 +call TstCond +addl $12,%esp +pushl $.LC31 +fldl Half +faddl MinusOne +faddl Half +fldl Zero +fcompp +fstsw %ax +sahf +jne .LC32 +movl $1,-152(%ebp) +jmp .LC33 +.LC32: +movl $0,-152(%ebp) +.LC33: +pushl -152(%ebp) +pushl $0 +call TstCond +addl $12,%esp +movl $10,Milestone +pushl $.LC35 +fldl Three +fmull Three +fcompl Nine +fstsw %ax +sahf +jne .LC36 +fldl Nine +fmull Three +fcompl TwentySeven +fstsw %ax +sahf +jne .LC36 +fldl Four +faddl Four +fcompl Eight +fstsw %ax +sahf +jne .LC36 +fldl Eight +fmull Four +fcompl ThirtyTwo +fstsw %ax +sahf +jne .LC36 +fldl ThirtyTwo +fsubl TwentySeven +fsubl Four +fsubl One +fldl Zero +fcompp +fstsw %ax +sahf +jne .LC36 +movl $1,-164(%ebp) +jmp .LC37 +.LC36: +movl $0,-164(%ebp) +.LC37: +pushl -164(%ebp) +pushl $0 +call TstCond +addl $12,%esp +pushl $.LC39 +fldl Four +faddl One +fcompl Five +fstsw %ax +sahf +jne .LC40 +fldl Four +fmull Five +fmull Three +fmull Four +fcompl TwoForty +fstsw %ax +sahf +jne .LC40 +fldl TwoForty +fdivl Three +fldl Four +fmull Four +fmull Five +fsubp %st(1),%st +fldl Zero +fcompp +fstsw %ax +sahf +jne .LC40 +fldl TwoForty +fdivl Four +fldl Five +fmull Three +fmull Four +fsubp %st(1),%st +fldl Zero +fcompp +fstsw %ax +sahf +jne .LC40 +fldl TwoForty +fdivl Five +fldl Four +fmull Three +fmull Four +fsubp %st(1),%st +fldl Zero +fcompp +fstsw %ax +sahf +jne .LC40 +movl $1,-216(%ebp) +jmp .LC41 +.LC40: +movl $0,-216(%ebp) +.LC41: +pushl -216(%ebp) +pushl $0 +call TstCond +addl $12,%esp +cmpl $0,ErrCnt +jne .LC42 +pushl $.LC44 +call printf +addl $4,%esp +pushl $.LC45 +call printf +addl $4,%esp +.LC42: +pushl $.LC46 +call printf +addl $4,%esp +fldl One +fstpl W +.LC47: +fldl W +fstpl -264(%ebp) +fldl -264(%ebp) +faddl -264(%ebp) +fstpl W +fldl W +fstpl -272(%ebp) +fldl -272(%ebp) +faddl One +fstpl Y +fldl Y +fsubl -272(%ebp) +fstpl Z +fldl Z +fsubl One +fstpl Y +.LC48: +fldl Y +subl $8,%esp +fstpl (%esp) +call fabs +addl $8,%esp +fstpl -264(%ebp) +fldl MinusOne +faddl -264(%ebp) +fldl Zero +fcompp +fstsw %ax +sahf +ja .LC47 +fldl Zero +fstpl Precision +fldl One +fstpl Y +.LC50: +fldl Y +fstpl -280(%ebp) +fldl W +faddl -280(%ebp) +fstpl Radix +fldl -280(%ebp) +faddl -280(%ebp) +fstpl Y +fldl Radix +fsubl W +fstpl Radix +.LC51: +fldl Zero +fcompl Radix +fstsw %ax +sahf +je .LC50 +fldl Two +fcompl Radix +fstsw %ax +sahf +jbe .LC53 +fldl One +fstpl Radix +.LC53: +fldl Radix +subl $8,%esp +fstpl (%esp) +pushl $.LC55 +call printf +addl $12,%esp +fldl .LC9 +fcompl Radix +fstsw %ax +sahf +je .LC56 +fldl One +fstpl W +.LC58: +fldl Precision +faddl One +fstpl Precision +fldl W +fmull Radix +fstpl W +fldl W +faddl One +fstpl Y +.LC59: +fldl Y +fsubl W +fldl One +fcompp +fstsw %ax +sahf +je .LC58 +.LC56: +fldl One +fdivl W +fstpl U1 +fldl U1 +fstpl -272(%ebp) +fldl Radix +fmull -272(%ebp) +fstpl U2 +fldl -272(%ebp) +subl $8,%esp +fstpl (%esp) +pushl $.LC61 +call printf +addl $12,%esp +pushl $.LC62 +call printf +addl $4,%esp +fldl Radix +fstpl E0 +fldl U1 +fstpl E1 +fldl U2 +fstpl E9 +fldl Precision +fstpl E3 +fldl Four +fdivl Three +fstpl X +fldl X +fsubl One +fstpl Third +fldl Third +fstpl -280(%ebp) +fldl Half +fsubl -280(%ebp) +fstpl F6 +fldl F6 +fstpl -288(%ebp) +fldl -288(%ebp) +faddl -288(%ebp) +fstpl X +fldl X +fsubl -280(%ebp) +subl $8,%esp +fstpl (%esp) +call fabs +addl $8,%esp +fstpl -296(%ebp) +fldl -296(%ebp) +fstpl X +fldl U2 +fcompl X +fstsw %ax +sahf +jbe .LC63 +fldl U2 +fstpl X +.LC63: +.LC65: +fldl X +fstpl U2 +fldl U2 +fstpl -304(%ebp) +fldl Half +fmull -304(%ebp) +fldl ThirtyTwo +fmull -304(%ebp) +fmull -304(%ebp) +faddp %st(1),%st +fstpl Y +fldl One +faddl Y +fstpl Y +fldl Y +fsubl One +fstpl X +.LC66: +fldl X +fcompl U2 +fstsw %ax +sahf +jae .LC68 +fldl Zero +fcompl X +fstsw %ax +sahf +jb .LC65 +.LC68: +fldl Two +fdivl Three +fstpl X +fldl X +fsubl Half +fstpl F6 +fldl F6 +fstpl -320(%ebp) +fldl -320(%ebp) +faddl -320(%ebp) +fstpl Third +fldl Third +fsubl Half +fstpl X +fldl X +faddl -320(%ebp) +subl $8,%esp +fstpl (%esp) +call fabs +addl $8,%esp +fstpl -328(%ebp) +fldl -328(%ebp) +fstpl X +fldl U1 +fcompl X +fstsw %ax +sahf +jbe .LC69 +fldl U1 +fstpl X +.LC69: +.LC71: +fldl X +fstpl U1 +fldl U1 +fstpl -344(%ebp) +fldl Half +fmull -344(%ebp) +fldl ThirtyTwo +fmull -344(%ebp) +fmull -344(%ebp) +faddp %st(1),%st +fstpl Y +fldl Half +fsubl Y +fstpl Y +fldl Half +faddl Y +fstpl X +fldl Half +fsubl X +fstpl Y +fldl Half +faddl Y +fstpl X +.LC72: +fldl X +fcompl U1 +fstsw %ax +sahf +jae .LC74 +fldl Zero +fcompl X +fstsw %ax +sahf +jb .LC71 +.LC74: +fldl E1 +fcompl U1 +fstsw %ax +sahf +jne .LC75 +pushl $.LC77 +call printf +addl $4,%esp +jmp .LC76 +.LC75: +fldl U1 +subl $8,%esp +fstpl (%esp) +pushl $.LC78 +call printf +addl $12,%esp +.LC76: +fldl One +fdivl U1 +fstpl W +fldl Half +fsubl U1 +faddl Half +fstpl F9 +fldl U2 +fdivl U1 +faddl .LC79 +subl $8,%esp +fstpl (%esp) +call floor +addl $8,%esp +fstpl -360(%ebp) +fldl -360(%ebp) +fstpl Radix +fldl E0 +fcompl Radix +fstsw %ax +sahf +jne .LC80 +pushl $.LC82 +call printf +addl $4,%esp +jmp .LC81 +.LC80: +fldl Radix +subl $8,%esp +fstpl (%esp) +pushl $.LC83 +call printf +addl $12,%esp +.LC81: +pushl $.LC85 +fldl Eight +faddl Eight +fcompl Radix +fstsw %ax +sahf +jb .LC86 +movl $1,-364(%ebp) +jmp .LC87 +.LC86: +movl $0,-364(%ebp) +.LC87: +pushl -364(%ebp) +pushl $2 +call TstCond +addl $12,%esp +pushl $.LC89 +fldl Two +fcompl Radix +fstsw %ax +sahf +je .LC93 +fldl .LC94 +fcompl Radix +fstsw %ax +sahf +je .LC93 +fldl One +fcompl Radix +fstsw %ax +sahf +jne .LC90 +.LC93: +movl $1,-376(%ebp) +jmp .LC91 +.LC90: +movl $0,-376(%ebp) +.LC91: +pushl -376(%ebp) +pushl $3 +call TstCond +addl $12,%esp +movl $20,Milestone +pushl $.LC96 +fldl F9 +fsubl Half +fldl Half +fcompp +fstsw %ax +sahf +jbe .LC97 +movl $1,-388(%ebp) +jmp .LC98 +.LC97: +movl $0,-388(%ebp) +.LC98: +pushl -388(%ebp) +pushl $0 +call TstCond +addl $12,%esp +fldl F9 +fstpl X +movl $1,I +fldl X +fsubl Half +fstpl Y +fldl Y +fsubl Half +fstpl Z +pushl $.LC100 +fldl One +fcompl X +fstsw %ax +sahf +jne .LC103 +fldl Zero +fcompl Z +fstsw %ax +sahf +jne .LC101 +.LC103: +movl $1,-400(%ebp) +jmp .LC102 +.LC101: +movl $0,-400(%ebp) +.LC102: +pushl -400(%ebp) +pushl $0 +call TstCond +addl $12,%esp +fldl One +faddl U2 +fstpl X +movl $0,I +movl $25,Milestone +fldl Radix +fsubl One +fstpl BMinusU2 +fldl BMinusU2 +fsubl U2 +faddl One +fstpl BMinusU2 +fldl One +fcompl Radix +fstsw %ax +sahf +je .LC104 +fldl U1 +subl $8,%esp +fstpl (%esp) +call log +addl $8,%esp +fstpl -440(%ebp) +fldl Radix +subl $8,%esp +fstpl (%esp) +call log +addl $8,%esp +fstpl -448(%ebp) +fldl TwoForty +fchs +fmull -440(%ebp) +fdivl -448(%ebp) +fstpl X +fldl Half +faddl X +subl $8,%esp +fstpl (%esp) +call floor +addl $8,%esp +fstpl -456(%ebp) +fldl -456(%ebp) +fstpl Y +fldl X +fsubl Y +subl $8,%esp +fstpl (%esp) +call fabs +addl $8,%esp +fstpl -464(%ebp) +fldl -464(%ebp) +fmull Four +fldl One +fcompp +fstsw %ax +sahf +jbe .LC106 +fldl Y +fstpl X +.LC106: +fldl X +fdivl TwoForty +fstpl Precision +fldl Half +faddl Precision +subl $8,%esp +fstpl (%esp) +call floor +addl $8,%esp +fstpl -472(%ebp) +fldl -472(%ebp) +fstpl Y +fldl Precision +fsubl Y +subl $8,%esp +fstpl (%esp) +call fabs +addl $8,%esp +fstpl -480(%ebp) +fldl -480(%ebp) +fmull TwoForty +fldl Half +fcompp +fstsw %ax +sahf +jbe .LC108 +fldl Y +fstpl Precision +.LC108: +.LC104: +fldl Precision +subl $8,%esp +fstpl (%esp) +call floor +addl $8,%esp +fstpl -448(%ebp) +fldl -448(%ebp) +fcompl Precision +fstsw %ax +sahf +jne .LC112 +fldl One +fcompl Radix +fstsw %ax +sahf +jne .LC110 +.LC112: +pushl $.LC113 +call printf +addl $4,%esp +pushl $.LC114 +call printf +addl $4,%esp +.LC110: +fldl One +fcompl Radix +fstsw %ax +sahf +jne .LC115 +pushl $.LC117 +call printf +addl $4,%esp +jmp .LC116 +.LC115: +fldl Precision +subl $8,%esp +fstpl (%esp) +pushl $.LC118 +call printf +addl $12,%esp +.LC116: +pushl $.LC120 +fldl U2 +fmull Nine +fmull Nine +fmull TwoForty +fldl One +fcompp +fstsw %ax +sahf +jbe .LC121 +movl $1,-452(%ebp) +jmp .LC122 +.LC121: +movl $0,-452(%ebp) +.LC122: +pushl -452(%ebp) +pushl $1 +call TstCond +addl $12,%esp +movl $30,Milestone +fldl One +fdivl Four +fstpl -492(%ebp) +fldl Four +fdivl Three +fsubl One +fsubl -492(%ebp) +fmull Three +fsubl -492(%ebp) +subl $8,%esp +fstpl (%esp) +call fabs +addl $8,%esp +fstpl -500(%ebp) +fldl -500(%ebp) +fstpl X +.LC123: +fldl X +fstpl Z2 +fldl Z2 +fstpl -516(%ebp) +fldl One +fldl Half +fmull -516(%ebp) +fldl ThirtyTwo +fmull -516(%ebp) +fmull -516(%ebp) +faddp %st(1),%st +faddp %st(1),%st +fsubl One +fstpl X +.LC124: +fldl X +fcompl Z2 +fstsw %ax +sahf +jae .LC126 +fldl Zero +fcompl X +fstsw %ax +sahf +jb .LC123 +.LC126: +fldl Three +fdivl Four +fldl Two +fdivl Three +fsubp %st(1),%st +fmull Three +fldl One +fdivl Four +fsubp %st(1),%st +subl $8,%esp +fstpl (%esp) +call fabs +addl $8,%esp +fstpl -532(%ebp) +fldl -532(%ebp) +fstpl Z +fldl -532(%ebp) +fstpl Y +fldl -532(%ebp) +fstpl X +.LC127: +fldl Z +fstpl Z1 +fldl One +fdivl Two +fstpl -540(%ebp) +fldl Z1 +fstpl -548(%ebp) +fldl -540(%ebp) +fldl -540(%ebp) +fldl Half +fmull -548(%ebp) +fldl ThirtyTwo +fmull -548(%ebp) +fmull -548(%ebp) +faddp %st(1),%st +fsubp %st(1),%st +faddl -540(%ebp) +fsubp %st(1),%st +faddl -540(%ebp) +fstpl Z +.LC128: +fldl Z +fcompl Z1 +fstsw %ax +sahf +jae .LC130 +fldl Zero +fcompl Z +fstsw %ax +sahf +jb .LC127 +.LC130: +.LC131: +.LC134: +fldl Y +fstpl Y1 +fldl Y1 +fstpl -556(%ebp) +fldl Half +fldl Half +fldl Half +fmull -556(%ebp) +fldl ThirtyTwo +fmull -556(%ebp) +fmull -556(%ebp) +faddp %st(1),%st +fsubp %st(1),%st +faddl Half +fsubp %st(1),%st +faddl Half +fstpl Y +.LC135: +fldl Y +fcompl Y1 +fstsw %ax +sahf +jae .LC137 +fldl Zero +fcompl Y +fstsw %ax +sahf +jb .LC134 +.LC137: +fldl X +fstpl X1 +fldl X1 +fstpl -556(%ebp) +fldl Half +fmull -556(%ebp) +fldl ThirtyTwo +fmull -556(%ebp) +fmull -556(%ebp) +faddp %st(1),%st +fsubl F9 +faddl F9 +fstpl X +.LC132: +fldl X +fcompl X1 +fstsw %ax +sahf +jae .LC138 +fldl Zero +fcompl X +fstsw %ax +sahf +jb .LC131 +.LC138: +fldl Y1 +fcompl X1 +fstsw %ax +sahf +jne .LC141 +fldl Z1 +fcompl X1 +fstsw %ax +sahf +je .LC139 +.LC141: +pushl $.LC142 +pushl $1 +call BadCond +addl $8,%esp +fldl Z1 +subl $8,%esp +fstpl (%esp) +fldl Y1 +subl $8,%esp +fstpl (%esp) +fldl X1 +subl $8,%esp +fstpl (%esp) +pushl $.LC143 +call printf +addl $28,%esp +pushl $.LC144 +call printf +addl $4,%esp +pushl $.LC145 +call printf +addl $4,%esp +pushl $.LC146 +call notify +addl $4,%esp +fldl U1 +fcompl X1 +fstsw %ax +sahf +je .LC150 +fldl U1 +fcompl Y1 +fstsw %ax +sahf +je .LC150 +fldl U1 +fcompl Z1 +fstsw %ax +sahf +jne .LC140 +.LC150: +pushl $.LC151 +call printf +addl $4,%esp +jmp .LC140 +.LC139: +fldl U1 +fcompl Z1 +fstsw %ax +sahf +jne .LC154 +fldl U2 +fcompl Z2 +fstsw %ax +sahf +je .LC152 +.LC154: +fldl U1 +fcompl Z1 +fstsw %ax +sahf +jbe .LC157 +fldl U2 +fcompl Z2 +fstsw %ax +sahf +ja .LC155 +.LC157: +pushl $.LC158 +pushl $0 +call BadCond +addl $8,%esp +pushl $.LC159 +call notify +addl $4,%esp +fldl Z1 +fsubl U1 +subl $8,%esp +fstpl (%esp) +fldl U1 +subl $8,%esp +fstpl (%esp) +pushl $.LC160 +call printf +addl $20,%esp +fldl Z2 +fsubl U2 +subl $8,%esp +fstpl (%esp) +fldl U2 +subl $8,%esp +fstpl (%esp) +pushl $.LC161 +call printf +addl $20,%esp +jmp .LC156 +.LC155: +fldl Zero +fcompl Z1 +fstsw %ax +sahf +jae .LC164 +fldl Zero +fcompl Z2 +fstsw %ax +sahf +jb .LC162 +.LC164: +fldl Radix +subl $8,%esp +fstpl (%esp) +pushl $.LC165 +call printf +addl $12,%esp +pushl $.LC166 +call printf +addl $4,%esp +fldl Z2 +subl $8,%esp +fstpl (%esp) +fldl Z1 +subl $8,%esp +fstpl (%esp) +pushl $.LC167 +call printf +addl $20,%esp +pushl $.LC168 +call notify +addl $4,%esp +.LC162: +fldl Z2 +fcompl Z1 +fstsw %ax +sahf +jne .LC171 +fldl Zero +fcompl Z1 +fstsw %ax +sahf +jae .LC169 +.LC171: +fldl Z1 +fdivl U1 +fstpl X +fldl Z2 +fdivl U2 +fstpl Y +fldl X +fcompl Y +fstsw %ax +sahf +jae .LC172 +fldl Y +fstpl X +.LC172: +fldl X +subl $8,%esp +fstpl (%esp) +call log +addl $8,%esp +fstpl -580(%ebp) +fldl -580(%ebp) +fchs +fstpl Q +pushl $.LC174 +call printf +addl $4,%esp +fldl Radix +subl $8,%esp +fstpl (%esp) +call log +addl $8,%esp +fstpl -588(%ebp) +fldl Q +fdivl -588(%ebp) +subl $8,%esp +fstpl (%esp) +pushl $.LC175 +call printf +addl $12,%esp +fldl .LC94 +subl $8,%esp +fstpl (%esp) +call log +addl $8,%esp +fstpl -596(%ebp) +fldl Q +fdivl -596(%ebp) +subl $8,%esp +fstpl (%esp) +pushl $.LC176 +call printf +addl $12,%esp +.LC169: +pushl $.LC151 +call printf +addl $4,%esp +.LC156: +.LC152: +.LC140: +call Pause +movl $35,Milestone +fldl Two +fcompl Radix +fstsw %ax +sahf +ja .LC177 +fldl W +fldl Radix +fmull Radix +fdivp %st(1),%st +fstpl X +fldl X +fstpl -576(%ebp) +fldl -576(%ebp) +faddl One +fstpl Y +fldl Y +fsubl -576(%ebp) +fstpl Z +fldl Z +fstpl -584(%ebp) +fldl -584(%ebp) +faddl U2 +fstpl T +fldl T +fsubl -584(%ebp) +fstpl X +pushl $.LC180 +fldl U2 +fcompl X +fstsw %ax +sahf +jne .LC181 +movl $1,-560(%ebp) +jmp .LC182 +.LC181: +movl $0,-560(%ebp) +.LC182: +pushl -560(%ebp) +pushl $0 +call TstCond +addl $12,%esp +fldl U2 +fcompl X +fstsw %ax +sahf +jne .LC183 +pushl $.LC185 +call printf +addl $4,%esp +.LC183: +.LC177: +pushl $.LC186 +call printf +addl $4,%esp +fldl F9 +fmull One +fstpl Y +fldl One +fmull F9 +fstpl Z +fldl F9 +fsubl Half +fstpl X +fldl X +fstpl -588(%ebp) +fldl Y +fsubl Half +fsubl -588(%ebp) +fstpl Y +fldl Z +fsubl Half +fsubl -588(%ebp) +fstpl Z +fldl One +faddl U2 +fstpl X +fldl X +fstpl -604(%ebp) +fldl -604(%ebp) +fmull Radix +fstpl T +fldl Radix +fmull -604(%ebp) +fstpl R +fldl T +fsubl Radix +fstpl X +fldl Radix +fmull U2 +fstpl -620(%ebp) +fldl X +fsubl -620(%ebp) +fstpl X +fldl R +fsubl Radix +fstpl T +fldl T +fsubl -620(%ebp) +fstpl T +fldl Radix +fsubl One +fstpl -628(%ebp) +fldl X +fmull -628(%ebp) +fstpl X +fldl T +fmull -628(%ebp) +fstpl T +fldl Zero +fcompl X +fstsw %ax +sahf +jne .LC187 +fldl Zero +fcompl Y +fstsw %ax +sahf +jne .LC187 +fldl Zero +fcompl Z +fstsw %ax +sahf +jne .LC187 +fldl Zero +fcompl T +fstsw %ax +sahf +jne .LC187 +movl $1,GMult +jmp .LC188 +.LC187: +movl $0,GMult +pushl $.LC189 +pushl $0 +pushl $1 +call TstCond +addl $12,%esp +.LC188: +fldl Radix +fmull U2 +fstpl Z +fldl Z +fstpl -648(%ebp) +fldl One +faddl -648(%ebp) +fstpl X +fldl X +fstpl -656(%ebp) +fldl -656(%ebp) +faddl -648(%ebp) +fldl -656(%ebp) +fmull -656(%ebp) +fsubp %st(1),%st +subl $8,%esp +fstpl (%esp) +call fabs +addl $8,%esp +fstpl -664(%ebp) +fldl -664(%ebp) +fsubl U2 +fstpl Y +fldl One +fsubl U2 +fstpl X +fldl X +fstpl -680(%ebp) +fldl -680(%ebp) +fsubl U2 +fldl -680(%ebp) +fmull -680(%ebp) +fsubp %st(1),%st +subl $8,%esp +fstpl (%esp) +call fabs +addl $8,%esp +fstpl -688(%ebp) +fldl -688(%ebp) +fsubl U1 +fstpl Z +pushl $.LC191 +fldl Zero +fcompl Y +fstsw %ax +sahf +jb .LC192 +fldl Zero +fcompl Z +fstsw %ax +sahf +jb .LC192 +movl $1,-640(%ebp) +jmp .LC193 +.LC192: +movl $0,-640(%ebp) +.LC193: +pushl -640(%ebp) +pushl $0 +call TstCond +addl $12,%esp +fldl One +fsubl U2 +fstpl Y +fldl One +faddl U2 +fstpl X +fldl One +fdivl Y +fstpl Z +fldl Z +fsubl X +fstpl Y +fldl One +fdivl Three +fstpl X +fldl Three +fdivl Nine +fstpl Z +fldl Z +fstpl -740(%ebp) +fldl X +fsubl -740(%ebp) +fstpl X +fldl Nine +fdivl TwentySeven +fstpl T +fldl -740(%ebp) +fsubl T +fstpl Z +pushl $.LC195 +fldl Zero +fcompl X +fstsw %ax +sahf +jne .LC196 +fldl Zero +fcompl Y +fstsw %ax +sahf +jne .LC196 +fldl Zero +fcompl Z +fstsw %ax +sahf +jne .LC196 +movl $1,-700(%ebp) +jmp .LC197 +.LC196: +movl $0,-700(%ebp) +.LC197: +pushl -700(%ebp) +pushl $2 +call TstCond +addl $12,%esp +fldl F9 +fdivl One +fstpl Y +fldl F9 +fsubl Half +fstpl X +fldl Y +fsubl Half +fsubl X +fstpl Y +fldl One +faddl U2 +fstpl X +fldl X +fstpl -780(%ebp) +fldl -780(%ebp) +fdivl One +fstpl T +fldl T +fsubl -780(%ebp) +fstpl X +fldl Zero +fcompl X +fstsw %ax +sahf +jne .LC198 +fldl Zero +fcompl Y +fstsw %ax +sahf +jne .LC198 +fldl Zero +fcompl Z +fstsw %ax +sahf +jne .LC198 +movl $1,GDiv +jmp .LC199 +.LC198: +movl $0,GDiv +pushl $.LC200 +pushl $0 +pushl $1 +call TstCond +addl $12,%esp +.LC199: +fldl One +fldl One +faddl U2 +fdivp %st(1),%st +fstpl X +fldl X +fsubl Half +fsubl Half +fstpl Y +pushl $.LC202 +fldl Zero +fcompl Y +fstsw %ax +sahf +jbe .LC203 +movl $1,-792(%ebp) +jmp .LC204 +.LC203: +movl $0,-792(%ebp) +.LC204: +pushl -792(%ebp) +pushl $1 +call TstCond +addl $12,%esp +fldl One +fsubl U2 +fstpl X +fldl One +fldl Radix +fmull U2 +faddp %st(1),%st +fstpl Y +fldl X +fstpl -844(%ebp) +fldl -844(%ebp) +fmull Radix +fstpl Z +fldl Y +fstpl -852(%ebp) +fldl -852(%ebp) +fmull Radix +fstpl T +fldl Z +fdivl Radix +fstpl R +fldl T +fdivl Radix +fstpl StickyBit +fldl R +fsubl -844(%ebp) +fstpl X +fldl StickyBit +fsubl -852(%ebp) +fstpl Y +pushl $.LC206 +fldl Zero +fcompl X +fstsw %ax +sahf +jne .LC207 +fldl Zero +fcompl Y +fstsw %ax +sahf +jne .LC207 +movl $1,-812(%ebp) +jmp .LC208 +.LC207: +movl $0,-812(%ebp) +.LC208: +pushl -812(%ebp) +pushl $0 +call TstCond +addl $12,%esp +fldl One +fsubl U1 +fstpl Y +fldl One +fsubl F9 +fstpl X +fldl One +fsubl Y +fstpl Y +fldl Radix +fsubl U2 +fstpl T +fldl Radix +fsubl BMinusU2 +fstpl Z +fldl Radix +fsubl T +fstpl T +fldl U1 +fcompl X +fstsw %ax +sahf +jne .LC209 +fldl U1 +fcompl Y +fstsw %ax +sahf +jne .LC209 +fldl U2 +fcompl Z +fstsw %ax +sahf +jne .LC209 +fldl U2 +fcompl T +fstsw %ax +sahf +jne .LC209 +movl $1,GAddSub +jmp .LC210 +.LC209: +movl $0,GAddSub +pushl $.LC211 +pushl $0 +pushl $1 +call TstCond +addl $12,%esp +.LC210: +fldl One +fcompl F9 +fstsw %ax +sahf +je .LC212 +fldl F9 +fsubl One +fldl Zero +fcompp +fstsw %ax +sahf +ja .LC212 +pushl $.LC214 +pushl $1 +call BadCond +addl $8,%esp +pushl $.LC215 +call printf +addl $4,%esp +pushl $.LC216 +call printf +addl $4,%esp +pushl $.LC217 +call printf +addl $4,%esp +.LC212: +cmpl $1,GMult +jne .LC218 +cmpl $1,GDiv +jne .LC218 +cmpl $1,GAddSub +jne .LC218 +pushl $.LC220 +call printf +addl $4,%esp +.LC218: +movl $40,Milestone +call Pause +pushl $.LC221 +call printf +addl $4,%esp +movl $0,RMult +movl $0,RDiv +movl $0,RAddSub +fldl Radix +fdivl Two +fstpl RadixD2 +fldl Two +fstpl A1 +movl $0,Done +.LC222: +fldl Radix +fstpl AInvrse +.LC225: +fldl AInvrse +fstpl -924(%ebp) +fldl -924(%ebp) +fstpl X +fldl -924(%ebp) +fdivl A1 +fstpl AInvrse +.LC226: +fldl AInvrse +subl $8,%esp +fstpl (%esp) +call floor +addl $8,%esp +fstpl -924(%ebp) +fldl AInvrse +fcompl -924(%ebp) +fstsw %ax +sahf +je .LC225 +fldl One +fcompl X +fstsw %ax +sahf +je .LC231 +fldl Three +fcompl A1 +fstsw %ax +sahf +jae .LC229 +.LC231: +movl $1,-928(%ebp) +jmp .LC230 +.LC229: +movl $0,-928(%ebp) +.LC230: +movl -928(%ebp),%edi +movl %edi,Done +cmpl $0,Done +jne .LC232 +fldl Nine +faddl One +fstpl A1 +.LC232: +.LC223: +cmpl $0,Done +je .LC222 +fldl One +fcompl X +fstsw %ax +sahf +jne .LC234 +fldl Radix +fstpl A1 +.LC234: +fldl One +fdivl A1 +fstpl AInvrse +fldl A1 +fstpl X +fldl AInvrse +fstpl Y +movl $0,Done +.LC236: +fldl X +fmull Y +fsubl Half +fstpl Z +pushl $.LC240 +fldl Half +fcompl Z +fstsw %ax +sahf +jne .LC241 +movl $1,-928(%ebp) +jmp .LC242 +.LC241: +movl $0,-928(%ebp) +.LC242: +pushl -928(%ebp) +pushl $0 +call TstCond +addl $12,%esp +fldl Radix +fcompl X +fstsw %ax +sahf +jne .LC244 +movl $1,-940(%ebp) +jmp .LC245 +.LC244: +movl $0,-940(%ebp) +.LC245: +movl -940(%ebp),%edi +movl %edi,Done +fldl Radix +fstpl X +fldl One +fdivl X +fstpl Y +.LC237: +cmpl $0,Done +je .LC236 +fldl One +faddl U2 +fstpl Y2 +fldl One +fsubl U2 +fstpl Y1 +fldl OneAndHalf +fsubl U2 +fstpl X +fldl OneAndHalf +faddl U2 +fstpl Y +fldl X +fstpl -956(%ebp) +fldl Y2 +fstpl -964(%ebp) +fldl -956(%ebp) +fsubl U2 +fmull -964(%ebp) +fstpl Z +fldl Y +fstpl -972(%ebp) +fldl Y1 +fstpl -980(%ebp) +fldl -972(%ebp) +fmull -980(%ebp) +fstpl T +fldl Z +fsubl -956(%ebp) +fstpl Z +fldl T +fsubl -956(%ebp) +fstpl T +fldl -956(%ebp) +fmull -964(%ebp) +fstpl X +fldl -972(%ebp) +faddl U2 +fmull -980(%ebp) +fstpl Y +fldl X +fsubl OneAndHalf +fstpl X +fldl Y +fsubl OneAndHalf +fstpl Y +fldl Zero +fcompl X +fstsw %ax +sahf +jne .LC246 +fldl Zero +fcompl Y +fstsw %ax +sahf +jne .LC246 +fldl Zero +fcompl Z +fstsw %ax +sahf +jne .LC246 +fldl Zero +fcompl T +fstsw %ax +sahf +jb .LC246 +fldl OneAndHalf +faddl U2 +fstpl -1012(%ebp) +fldl -1012(%ebp) +fmull Y2 +fstpl X +fldl OneAndHalf +fsubl U2 +fstpl -1028(%ebp) +fldl -1028(%ebp) +fsubl U2 +fstpl Y +fldl -1012(%ebp) +faddl U2 +fstpl Z +fldl Y1 +fstpl -1036(%ebp) +fldl -1028(%ebp) +fmull -1036(%ebp) +fstpl T +fldl Z +fstpl -1044(%ebp) +fldl -1044(%ebp) +faddl U2 +fstpl -1052(%ebp) +fldl X +fsubl -1052(%ebp) +fstpl X +fldl Y +fstpl -1060(%ebp) +fldl -1060(%ebp) +fmull -1036(%ebp) +fstpl StickyBit +fldl -1044(%ebp) +fmull Y2 +fstpl S +fldl T +fsubl -1060(%ebp) +fstpl T +fldl U2 +fsubl -1060(%ebp) +faddl StickyBit +fstpl Y +fldl S +fldl -1052(%ebp) +faddl U2 +fsubp %st(1),%st +fstpl Z +fldl Y2 +faddl U2 +fmull -1036(%ebp) +fstpl StickyBit +fldl Y2 +fmull -1036(%ebp) +fstpl Y1 +fldl StickyBit +fsubl Y2 +fstpl StickyBit +fldl Y1 +fsubl Half +fstpl Y1 +fldl Zero +fcompl X +fstsw %ax +sahf +jne .LC248 +fldl Zero +fcompl Y +fstsw %ax +sahf +jne .LC248 +fldl Zero +fcompl Z +fstsw %ax +sahf +jne .LC248 +fldl Zero +fcompl T +fstsw %ax +sahf +jne .LC248 +fldl Zero +fcompl StickyBit +fstsw %ax +sahf +jne .LC248 +fldl Half +fcompl Y1 +fstsw %ax +sahf +jne .LC248 +movl $1,RMult +pushl $.LC250 +call printf +addl $4,%esp +jmp .LC249 +.LC248: +fldl X +faddl U2 +fldl Zero +fcompp +fstsw %ax +sahf +jne .LC251 +fldl Zero +fcompl Y +fstsw %ax +sahf +jbe .LC251 +fldl Z +faddl U2 +fldl Zero +fcompp +fstsw %ax +sahf +jne .LC251 +fldl Zero +fcompl T +fstsw %ax +sahf +jbe .LC251 +fldl StickyBit +faddl U2 +fldl Zero +fcompp +fstsw %ax +sahf +jne .LC251 +fldl Half +fcompl Y1 +fstsw %ax +sahf +jbe .LC251 +movl $2,RMult +pushl $.LC253 +call printf +addl $4,%esp +jmp .LC252 +.LC251: +pushl $.LC254 +call printf +addl $4,%esp +.LC252: +.LC249: +cmpl $1,RMult +jne .LC247 +cmpl $0,GMult +jne .LC247 +pushl $.LC257 +call notify +addl $4,%esp +jmp .LC247 +.LC246: +pushl $.LC254 +call printf +addl $4,%esp +.LC247: +movl $45,Milestone +fldl One +faddl U2 +fstpl Y2 +fldl One +fsubl U2 +fstpl Y1 +fldl OneAndHalf +faddl U2 +fstpl -1020(%ebp) +fldl -1020(%ebp) +faddl U2 +fstpl Z +fldl Z +fstpl -1028(%ebp) +fldl Y2 +fstpl -1036(%ebp) +fldl -1028(%ebp) +fdivl -1036(%ebp) +fstpl X +fldl OneAndHalf +fsubl U2 +fsubl U2 +fstpl T +fldl T +fstpl -1044(%ebp) +fldl Y1 +fstpl -1052(%ebp) +fldl -1044(%ebp) +fsubl U2 +fdivl -1052(%ebp) +fstpl Y +fldl -1028(%ebp) +faddl U2 +fdivl -1036(%ebp) +fstpl Z +fldl X +fsubl OneAndHalf +fstpl X +fldl Y +fsubl -1044(%ebp) +fstpl Y +fldl -1044(%ebp) +fdivl -1052(%ebp) +fstpl T +fldl Z +fsubl -1020(%ebp) +fstpl Z +fldl U2 +fsubl OneAndHalf +faddl T +fstpl T +fldl Zero +fcompl X +fstsw %ax +sahf +jb .LC258 +fldl Zero +fcompl Y +fstsw %ax +sahf +jb .LC258 +fldl Zero +fcompl Z +fstsw %ax +sahf +jb .LC258 +fldl Zero +fcompl T +fstsw %ax +sahf +jb .LC258 +fldl Y2 +fstpl -1076(%ebp) +fldl OneAndHalf +fdivl -1076(%ebp) +fstpl X +fldl OneAndHalf +fsubl U2 +fstpl Y +fldl OneAndHalf +faddl U2 +fstpl Z +fldl Y +fstpl -1092(%ebp) +fldl X +fsubl -1092(%ebp) +fstpl X +fldl Y1 +fstpl -1100(%ebp) +fldl OneAndHalf +fdivl -1100(%ebp) +fstpl T +fldl -1092(%ebp) +fdivl -1100(%ebp) +fstpl Y +fldl Z +fstpl -1108(%ebp) +fldl T +fldl -1108(%ebp) +faddl U2 +fsubp %st(1),%st +fstpl T +fldl Y +fsubl -1108(%ebp) +fstpl Y +fldl -1108(%ebp) +fdivl -1076(%ebp) +fstpl Z +fldl -1076(%ebp) +faddl U2 +fdivl -1076(%ebp) +fstpl Y1 +fldl Z +fsubl OneAndHalf +fstpl Z +fldl Y1 +fsubl -1076(%ebp) +fstpl Y2 +fldl F9 +fsubl U1 +fdivl F9 +fstpl Y1 +fldl Zero +fcompl X +fstsw %ax +sahf +jne .LC260 +fldl Zero +fcompl Y +fstsw %ax +sahf +jne .LC260 +fldl Zero +fcompl Z +fstsw %ax +sahf +jne .LC260 +fldl Zero +fcompl T +fstsw %ax +sahf +jne .LC260 +fldl Zero +fcompl Y2 +fstsw %ax +sahf +jne .LC260 +fldl Zero +fcompl Y2 +fstsw %ax +sahf +jne .LC260 +fldl Y1 +fsubl Half +fldl F9 +fsubl Half +fcompp +fstsw %ax +sahf +jne .LC260 +movl $1,RDiv +pushl $.LC262 +call printf +addl $4,%esp +cmpl $0,GDiv +jne .LC261 +pushl $.LC265 +call notify +addl $4,%esp +jmp .LC261 +.LC260: +fldl Zero +fcompl X +fstsw %ax +sahf +jbe .LC266 +fldl Zero +fcompl Y +fstsw %ax +sahf +jbe .LC266 +fldl Zero +fcompl Z +fstsw %ax +sahf +jbe .LC266 +fldl Zero +fcompl T +fstsw %ax +sahf +jbe .LC266 +fldl Zero +fcompl Y2 +fstsw %ax +sahf +jbe .LC266 +fldl Y1 +fsubl Half +fldl F9 +fsubl Half +fcompp +fstsw %ax +sahf +jbe .LC266 +movl $2,RDiv +pushl $.LC268 +call printf +addl $4,%esp +.LC266: +.LC261: +.LC258: +cmpl $0,RDiv +jne .LC269 +pushl $.LC271 +call printf +addl $4,%esp +.LC269: +fldl One +fdivl Radix +fstpl BInvrse +pushl $.LC273 +fldl BInvrse +fmull Radix +fsubl Half +fldl Half +fcompp +fstsw %ax +sahf +jne .LC274 +movl $1,-1064(%ebp) +jmp .LC275 +.LC274: +movl $0,-1064(%ebp) +.LC275: +pushl -1064(%ebp) +pushl $0 +call TstCond +addl $12,%esp +movl $50,Milestone +pushl $.LC277 +fldl F9 +faddl U1 +fsubl Half +fldl Half +fcompp +fstsw %ax +sahf +jne .LC278 +fldl BMinusU2 +faddl U2 +fsubl One +fldl Radix +fsubl One +fcompp +fstsw %ax +sahf +jne .LC278 +movl $1,-1084(%ebp) +jmp .LC279 +.LC278: +movl $0,-1084(%ebp) +.LC279: +pushl -1084(%ebp) +pushl $0 +call TstCond +addl $12,%esp +fldl One +fldl U1 +fmull U1 +fsubp %st(1),%st +fstpl X +fldl One +fldl U2 +fldl One +fsubl U2 +fmulp %st(1),%st +faddp %st(1),%st +fstpl Y +fldl F9 +fsubl Half +fstpl Z +fldl X +fsubl Half +fsubl Z +fstpl X +fldl Y +fsubl One +fstpl Y +fldl Zero +fcompl X +fstsw %ax +sahf +jne .LC280 +fldl Zero +fcompl Y +fstsw %ax +sahf +jne .LC280 +movl $2,RAddSub +pushl $.LC282 +call printf +addl $4,%esp +.LC280: +cmpl $1,GAddSub +jne .LC283 +fldl Half +faddl U2 +fmull U2 +fstpl X +fldl Half +fsubl U2 +fmull U2 +fstpl Y +fldl One +faddl X +fstpl X +fldl One +faddl Y +fstpl Y +fldl One +faddl U2 +fsubl X +fstpl X +fldl One +fsubl Y +fstpl Y +fldl Zero +fcompl X +fstsw %ax +sahf +jne .LC285 +fldl Zero +fcompl Y +fstsw %ax +sahf +jne .LC285 +fldl Half +faddl U2 +fmull U1 +fstpl X +fldl Half +fsubl U2 +fmull U1 +fstpl Y +fldl One +fsubl X +fstpl X +fldl One +fsubl Y +fstpl Y +fldl F9 +fsubl X +fstpl X +fldl One +fsubl Y +fstpl Y +fldl Zero +fcompl X +fstsw %ax +sahf +jne .LC287 +fldl Zero +fcompl Y +fstsw %ax +sahf +jne .LC287 +movl $1,RAddSub +pushl $.LC289 +call printf +addl $4,%esp +cmpl $0,GAddSub +jne .LC284 +pushl $.LC292 +call notify +addl $4,%esp +jmp .LC284 +.LC287: +pushl $.LC293 +call printf +addl $4,%esp +jmp .LC284 +.LC285: +pushl $.LC293 +call printf +addl $4,%esp +jmp .LC284 +.LC283: +pushl $.LC293 +call printf +addl $4,%esp +.LC284: +fldl One +fstpl S +fldl One +fldl Half +fldl One +faddl Half +fmulp %st(1),%st +faddp %st(1),%st +fstpl X +fldl One +faddl U2 +fmull Half +fstpl Y +fldl X +fstpl -1164(%ebp) +fldl Y +fstpl -1172(%ebp) +fldl -1164(%ebp) +fsubl -1172(%ebp) +fstpl Z +fldl -1172(%ebp) +fsubl -1164(%ebp) +fstpl T +fldl Z +faddl T +fstpl StickyBit +fldl Zero +fcompl StickyBit +fstsw %ax +sahf +je .LC294 +fldl Zero +fstpl S +pushl $.LC296 +pushl $3 +call BadCond +addl $8,%esp +.LC294: +fldl Zero +fstpl StickyBit +cmpl $1,GMult +jne .LC297 +cmpl $1,GDiv +jne .LC297 +cmpl $1,GAddSub +jne .LC297 +cmpl $1,RMult +jne .LC297 +cmpl $1,RDiv +jne .LC297 +cmpl $1,RAddSub +jne .LC297 +fldl RadixD2 +subl $8,%esp +fstpl (%esp) +call floor +addl $8,%esp +fstpl -1180(%ebp) +fldl RadixD2 +fcompl -1180(%ebp) +fstsw %ax +sahf +jne .LC297 +pushl $.LC299 +call printf +addl $4,%esp +fldl Half +faddl U1 +fmull U2 +fstpl X +fldl Half +fmull U2 +fstpl Y +fldl One +faddl Y +fstpl Z +fldl One +faddl X +fstpl T +fldl Z +fsubl One +fldl Zero +fcompp +fstsw %ax +sahf +jb .LC300 +fldl T +fsubl One +fldl U2 +fcompp +fstsw %ax +sahf +ja .LC300 +fldl T +faddl Y +fstpl Z +fldl Z +fsubl X +fstpl Y +fldl Z +fsubl T +fldl U2 +fcompp +fstsw %ax +sahf +ja .LC302 +fldl Y +fsubl T +fldl Zero +fcompp +fstsw %ax +sahf +jne .LC302 +fldl Half +faddl U1 +fmull U1 +fstpl X +fldl Half +fmull U1 +fstpl Y +fldl One +fsubl Y +fstpl Z +fldl One +fsubl X +fstpl T +fldl Z +fsubl One +fldl Zero +fcompp +fstsw %ax +sahf +jne .LC304 +fldl T +fsubl F9 +fldl Zero +fcompp +fstsw %ax +sahf +jne .LC304 +fldl Half +fsubl U1 +fmull U1 +fstpl Z +fldl F9 +fsubl Z +fstpl T +fldl F9 +fsubl Y +fstpl Q +fldl T +fsubl F9 +fldl Zero +fcompp +fstsw %ax +sahf +jne .LC306 +fldl F9 +fsubl U1 +fsubl Q +fldl Zero +fcompp +fstsw %ax +sahf +jne .LC306 +fldl One +faddl U2 +fmull OneAndHalf +fstpl Z +fldl OneAndHalf +faddl U2 +fsubl Z +faddl U2 +fstpl T +fldl One +fldl Half +fdivl Radix +faddp %st(1),%st +fstpl X +fldl One +fldl Radix +fmull U2 +faddp %st(1),%st +fstpl Y +fldl X +fmull Y +fstpl Z +fldl Zero +fcompl T +fstsw %ax +sahf +jne .LC308 +fldl X +fldl Radix +fmull U2 +faddp %st(1),%st +fsubl Z +fldl Zero +fcompp +fstsw %ax +sahf +jne .LC308 +fldl Two +fcompl Radix +fstsw %ax +sahf +je .LC310 +fldl Two +faddl U2 +fstpl X +fldl X +fdivl Two +fstpl Y +fldl Y +fsubl One +fldl Zero +fcompp +fstsw %ax +sahf +jne .LC311 +fldl S +fstpl StickyBit +jmp .LC311 +.LC310: +fldl S +fstpl StickyBit +.LC311: +.LC308: +.LC306: +.LC304: +.LC302: +.LC300: +.LC297: +fldl One +fcompl StickyBit +fstsw %ax +sahf +jne .LC314 +pushl $.LC316 +call printf +addl $4,%esp +jmp .LC315 +.LC314: +pushl $.LC317 +call printf +addl $4,%esp +.LC315: +pushl $.LC319 +cmpl $0,GMult +je .LC320 +cmpl $0,GDiv +je .LC320 +cmpl $0,GAddSub +je .LC320 +cmpl $0,RMult +je .LC320 +cmpl $0,RDiv +je .LC320 +cmpl $0,RAddSub +je .LC320 +movl $1,-1184(%ebp) +jmp .LC321 +.LC320: +movl $0,-1184(%ebp) +.LC321: +pushl -1184(%ebp) +pushl $3 +call TstCond +addl $12,%esp +movl $60,Milestone +pushl $.LC45 +call printf +addl $4,%esp +pushl $.LC322 +call printf +addl $4,%esp +pushl NoTrials +pushl $.LC323 +call printf +addl $8,%esp +fldl .LC324 +subl $8,%esp +fstpl (%esp) +call sqrt +addl $8,%esp +fstpl -1192(%ebp) +fldl -1192(%ebp) +fstpl Random9 +fldl Third +fstpl Random1 +movl $1,I +.LC325: +call Random +fstpl -1200(%ebp) +fldl -1200(%ebp) +fstpl X +call Random +fstpl -1208(%ebp) +fldl -1208(%ebp) +fstpl Y +fldl Y +fmull X +fstpl Z9 +fldl X +fmull Y +fstpl Z +fldl Z +fsubl Z9 +fstpl Z9 +incl I +.LC326: +movl NoTrials,%edi +cmpl %edi,I +jg .LC328 +fldl Zero +fcompl Z9 +fstsw %ax +sahf +je .LC325 +.LC328: +movl NoTrials,%edi +cmpl %edi,I +jne .LC329 +fldl One +fldl Half +fdivl Three +faddp %st(1),%st +fstpl -1208(%ebp) +fldl -1208(%ebp) +fstpl Random1 +fldl U2 +faddl U1 +faddl One +fstpl -1216(%ebp) +fldl -1216(%ebp) +fstpl Random2 +fldl Random1 +fstpl -1224(%ebp) +fldl Random2 +fstpl -1232(%ebp) +fldl -1224(%ebp) +fmull -1232(%ebp) +fstpl Z +fldl -1232(%ebp) +fmull -1224(%ebp) +fstpl Y +fldl -1208(%ebp) +fmull -1216(%ebp) +fstpl -1240(%ebp) +fldl -1240(%ebp) +fsubl -1240(%ebp) +fstpl Z9 +.LC329: +movl NoTrials,%edi +cmpl %edi,I +je .LC331 +fldl Zero +fcompl Z9 +fstsw %ax +sahf +je .LC331 +pushl $.LC333 +pushl $2 +call BadCond +addl $8,%esp +jmp .LC332 +.LC331: +pushl NoTrials +pushl $.LC334 +call printf +addl $8,%esp +.LC332: +movl $70,Milestone +pushl $.LC335 +call printf +addl $4,%esp +fldl Zero +subl $8,%esp +fstpl (%esp) +call sqrt +addl $8,%esp +fstpl -1212(%ebp) +fldl -1212(%ebp) +fcompl Zero +fstsw %ax +sahf +jne .LC338 +fldl Zero +fchs +fstpl -1220(%ebp) +fldl -1220(%ebp) +subl $8,%esp +fstpl (%esp) +call sqrt +addl $8,%esp +fstpl -1228(%ebp) +fldl -1228(%ebp) +fcompl -1220(%ebp) +fstsw %ax +sahf +jne .LC338 +fldl One +subl $8,%esp +fstpl (%esp) +call sqrt +addl $8,%esp +fstpl -1244(%ebp) +fldl -1244(%ebp) +fcompl One +fstsw %ax +sahf +jne .LC338 +movl $1,-1196(%ebp) +jmp .LC339 +.LC338: +movl $0,-1196(%ebp) +.LC339: +pushl $.LC337 +pushl -1196(%ebp) +pushl $0 +call TstCond +addl $12,%esp +fldl Zero +fstpl MinSqEr +fldl Zero +fstpl MaxSqEr +fldl Zero +fstpl J +fldl Radix +fstpl X +fldl U2 +fstpl OneUlp +pushl $1 +call SqXMinX +addl $4,%esp +fldl BInvrse +fstpl X +fldl BInvrse +fmull U1 +fstpl OneUlp +pushl $1 +call SqXMinX +addl $4,%esp +fldl U1 +fstpl X +fldl U1 +fmull U1 +fstpl OneUlp +pushl $1 +call SqXMinX +addl $4,%esp +fldl Zero +fcompl J +fstsw %ax +sahf +je .LC340 +call Pause +.LC340: +pushl NoTrials +pushl $.LC342 +call printf +addl $8,%esp +fldl Zero +fstpl J +fldl Two +fstpl X +fldl Radix +fstpl Y +fldl One +fcompl Radix +fstsw %ax +sahf +je .LC343 +.LC345: +fldl Y +fstpl -1284(%ebp) +fldl -1284(%ebp) +fstpl X +fldl Radix +fmull -1284(%ebp) +fstpl Y +.LC346: +fldl Y +fsubl X +fildl NoTrials +fcompp +fstsw %ax +sahf +ja .LC345 +.LC343: +fldl X +fmull U2 +fstpl OneUlp +movl $1,I +jmp .LC349 +.LC348: +fldl X +faddl One +fstpl X +pushl $2 +call SqXMinX +addl $4,%esp +fldl Zero +fcompl J +fstsw %ax +sahf +jae .LC351 +jmp .LC350 +.LC351: +incl I +.LC349: +movl NoTrials,%edi +cmpl %edi,I +jle .LC348 +.LC350: +pushl $.LC353 +call printf +addl $4,%esp +movl $-1,I +fldl BMinusU2 +fstpl X +fldl Radix +fstpl Y +fldl Radix +fldl Radix +fmull U2 +faddp %st(1),%st +fstpl Z +movl $0,NotMonot +movl $0,Monot +jmp .LC355 +.LC354: +incl I +fldl X +subl $8,%esp +fstpl (%esp) +call sqrt +addl $8,%esp +fstpl -1292(%ebp) +fldl -1292(%ebp) +fstpl X +fldl Y +subl $8,%esp +fstpl (%esp) +call sqrt +addl $8,%esp +fstpl -1300(%ebp) +fldl -1300(%ebp) +fstpl Q +fldl Z +subl $8,%esp +fstpl (%esp) +call sqrt +addl $8,%esp +fstpl -1308(%ebp) +fldl -1308(%ebp) +fstpl Z +fldl Q +fcompl X +fstsw %ax +sahf +jb .LC359 +fldl Z +fcompl Q +fstsw %ax +sahf +jae .LC357 +.LC359: +movl $1,NotMonot +jmp .LC358 +.LC357: +fldl Q +faddl Half +subl $8,%esp +fstpl (%esp) +call floor +addl $8,%esp +fstpl -1324(%ebp) +fldl -1324(%ebp) +fstpl Q +cmpl $0,I +jg .LC362 +fldl Q +fmull Q +fcompl Radix +fstsw %ax +sahf +jne .LC360 +.LC362: +movl $1,Monot +jmp .LC361 +.LC360: +cmpl $0,I +jle .LC363 +cmpl $1,I +jle .LC365 +movl $1,Monot +jmp .LC364 +.LC365: +fldl Y +fmull BInvrse +fstpl Y +fldl Y +fstpl -1340(%ebp) +fldl -1340(%ebp) +fsubl U1 +fstpl X +fldl -1340(%ebp) +faddl U1 +fstpl Z +jmp .LC364 +.LC363: +fldl Q +fstpl Y +fldl Y +fstpl -1340(%ebp) +fldl -1340(%ebp) +fsubl U2 +fstpl X +fldl -1340(%ebp) +faddl U2 +fstpl Z +.LC364: +.LC361: +.LC358: +.LC355: +cmpl $0,NotMonot +jne .LC367 +cmpl $0,Monot +je .LC354 +.LC367: +cmpl $0,Monot +je .LC368 +pushl $.LC370 +call printf +addl $4,%esp +jmp .LC369 +.LC368: +pushl $.LC158 +pushl $2 +call BadCond +addl $8,%esp +fldl Y +subl $8,%esp +fstpl (%esp) +pushl $.LC371 +call printf +addl $12,%esp +.LC369: +movl $80,Milestone +fldl MinSqEr +faddl Half +fstpl MinSqEr +fldl MaxSqEr +fsubl Half +fstpl MaxSqEr +fldl One +faddl U2 +subl $8,%esp +fstpl (%esp) +call sqrt +addl $8,%esp +fstpl -1300(%ebp) +fldl -1300(%ebp) +fsubl One +fdivl U2 +fstpl Y +fldl Y +fsubl One +fldl U2 +fdivl Eight +faddp %st(1),%st +fstpl SqEr +fldl MaxSqEr +fcompl SqEr +fstsw %ax +sahf +jae .LC372 +fldl SqEr +fstpl MaxSqEr +.LC372: +fldl Y +fldl U2 +fdivl Eight +faddp %st(1),%st +fstpl SqEr +fldl MinSqEr +fcompl SqEr +fstsw %ax +sahf +jbe .LC374 +fldl SqEr +fstpl MinSqEr +.LC374: +fldl F9 +subl $8,%esp +fstpl (%esp) +call sqrt +addl $8,%esp +fstpl -1324(%ebp) +fldl -1324(%ebp) +fsubl U2 +fldl One +fsubl U2 +fsubp %st(1),%st +fdivl U1 +fstpl Y +fldl Y +fldl U1 +fdivl Eight +faddp %st(1),%st +fstpl SqEr +fldl MaxSqEr +fcompl SqEr +fstsw %ax +sahf +jae .LC376 +fldl SqEr +fstpl MaxSqEr +.LC376: +fldl Y +faddl One +fldl U1 +fdivl Eight +faddp %st(1),%st +fstpl SqEr +fldl MinSqEr +fcompl SqEr +fstsw %ax +sahf +jbe .LC378 +fldl SqEr +fstpl MinSqEr +.LC378: +fldl U2 +fstpl OneUlp +fldl OneUlp +fstpl X +movl $1,Indx +.LC380: +fldl X +faddl U1 +faddl X +faddl F9 +subl $8,%esp +fstpl (%esp) +call sqrt +addl $8,%esp +fstpl -1356(%ebp) +fldl -1356(%ebp) +fstpl Y +fldl Y +fsubl U2 +fldl One +fsubl U2 +faddl X +fsubp %st(1),%st +fdivl OneUlp +fstpl Y +fldl U1 +fsubl X +faddl F9 +fmull Half +fmull X +fmull X +fdivl OneUlp +fstpl Z +fldl Y +faddl Half +faddl Z +fstpl SqEr +fldl MinSqEr +fcompl SqEr +fstsw %ax +sahf +jbe .LC384 +fldl SqEr +fstpl MinSqEr +.LC384: +fldl Y +fsubl Half +faddl Z +fstpl SqEr +fldl MaxSqEr +fcompl SqEr +fstsw %ax +sahf +jae .LC386 +fldl SqEr +fstpl MaxSqEr +.LC386: +movl Indx,%edi +cmpl $1,%edi +je .LC390 +cmpl $3,%edi +jne .LC388 +.LC390: +fldl X +subl $8,%esp +fstpl (%esp) +call Sign +addl $8,%esp +fstpl -1396(%ebp) +fldl OneUlp +subl $8,%esp +fstpl (%esp) +call sqrt +addl $8,%esp +fstpl -1404(%ebp) +fldl Eight +fldl Nine +fmull -1404(%ebp) +fdivp %st(1),%st +subl $8,%esp +fstpl (%esp) +call floor +addl $8,%esp +fstpl -1412(%ebp) +fldl OneUlp +fmull -1396(%ebp) +fmull -1412(%ebp) +fstpl X +jmp .LC389 +.LC388: +fldl U1 +fstpl OneUlp +fldl OneUlp +fchs +fstpl X +.LC389: +.LC381: +incl Indx +cmpl $3,Indx +jle .LC380 +movl $85,Milestone +movl $0,SqRWrng +movl $0,Anomaly +movl $0,RSqrt +fldl One +fcompl Radix +fstsw %ax +sahf +je .LC391 +pushl $.LC393 +call printf +addl $4,%esp +fldl Precision +subl $8,%esp +fstpl (%esp) +call floor +addl $8,%esp +fstpl -1356(%ebp) +fldl One +faddl Precision +fsubl -1356(%ebp) +subl $8,%esp +fstpl (%esp) +fldl Radix +subl $8,%esp +fstpl (%esp) +call pow +addl $16,%esp +fstpl -1364(%ebp) +fldl Half +faddl -1364(%ebp) +subl $8,%esp +fstpl (%esp) +call floor +addl $8,%esp +fstpl -1372(%ebp) +fldl -1372(%ebp) +fstpl D +fldl D +fdivl Radix +fstpl X +fldl D +fdivl A1 +fstpl Y +fldl X +subl $8,%esp +fstpl (%esp) +call floor +addl $8,%esp +fstpl -1396(%ebp) +fldl -1396(%ebp) +fcompl X +fstsw %ax +sahf +jne .LC396 +fldl Y +subl $8,%esp +fstpl (%esp) +call floor +addl $8,%esp +fstpl -1412(%ebp) +fldl -1412(%ebp) +fcompl Y +fstsw %ax +sahf +je .LC394 +.LC396: +movl $1,Anomaly +jmp .LC395 +.LC394: +fldl Zero +fstpl X +fldl X +fstpl Z2 +fldl One +fstpl Y +fldl Y +fstpl Y2 +fldl Radix +fsubl One +fstpl Z1 +fldl Four +fmull D +fstpl FourD +.LC397: +fldl Z2 +fcompl Y2 +fstsw %ax +sahf +jae .LC400 +fldl Radix +fstpl Q +fldl Y +fstpl Y1 +.LC402: +fldl Half +fldl Q +fdivl Y1 +fsubp %st(1),%st +subl $8,%esp +fstpl (%esp) +call floor +addl $8,%esp +fstpl -1436(%ebp) +fldl Q +fldl -1436(%ebp) +fmull Y1 +faddp %st(1),%st +subl $8,%esp +fstpl (%esp) +call fabs +addl $8,%esp +fstpl -1444(%ebp) +fldl -1444(%ebp) +fstpl X1 +fldl Y1 +fstpl Q +fldl X1 +fstpl Y1 +.LC403: +fldl Zero +fcompl X1 +fstsw %ax +sahf +jb .LC402 +fldl One +fcompl Q +fstsw %ax +sahf +jb .LC405 +fldl Y2 +fstpl Z2 +fldl Y +fstpl Z +.LC405: +.LC400: +fldl Y +faddl Two +fstpl Y +fldl X +faddl Eight +fstpl X +fldl Y2 +faddl X +fstpl Y2 +fldl FourD +fcompl Y2 +fstsw %ax +sahf +ja .LC407 +fldl Y2 +fsubl FourD +fstpl Y2 +.LC407: +.LC398: +fldl D +fcompl Y +fstsw %ax +sahf +ja .LC397 +fldl FourD +fsubl Z2 +fstpl X8 +fldl X8 +fstpl -1436(%ebp) +fldl -1436(%ebp) +fldl Z +fmull Z +faddp %st(1),%st +fdivl FourD +fstpl Q +fldl -1436(%ebp) +fdivl Eight +fstpl X8 +fldl Q +fstpl -1452(%ebp) +fldl -1452(%ebp) +subl $8,%esp +fstpl (%esp) +call floor +addl $8,%esp +fstpl -1460(%ebp) +fldl -1460(%ebp) +fcompl -1452(%ebp) +fstsw %ax +sahf +je .LC409 +movl $1,Anomaly +jmp .LC410 +.LC409: +movl $0,Break +.LC411: +fldl Z1 +fmull Z +fstpl X +fldl X +fstpl -1468(%ebp) +fldl -1468(%ebp) +fdivl Radix +subl $8,%esp +fstpl (%esp) +call floor +addl $8,%esp +fstpl -1476(%ebp) +fldl -1468(%ebp) +fldl -1476(%ebp) +fmull Radix +fsubp %st(1),%st +fstpl X +fldl One +fcompl X +fstsw %ax +sahf +jne .LC414 +movl $1,Break +jmp .LC415 +.LC414: +fldl Z1 +fsubl One +fstpl Z1 +.LC415: +.LC412: +cmpl $0,Break +jne .LC416 +fldl Zero +fcompl Z1 +fstsw %ax +sahf +jb .LC411 +.LC416: +fldl Zero +fcompl Z1 +fstsw %ax +sahf +jb .LC417 +cmpl $0,Break +jne .LC417 +movl $1,Anomaly +jmp .LC418 +.LC417: +fldl RadixD2 +fcompl Z1 +fstsw %ax +sahf +jae .LC419 +fldl Z1 +fsubl Radix +fstpl Z1 +.LC419: +.LC421: +call NewD +.LC422: +fldl U2 +fmull D +fldl F9 +fcompp +fstsw %ax +sahf +ja .LC421 +fldl D +fmull Radix +fsubl D +fldl W +fsubl D +fcompp +fstsw %ax +sahf +je .LC424 +movl $1,Anomaly +jmp .LC425 +.LC424: +fldl D +fstpl Z2 +movl $0,I +fldl D +fldl One +faddl Z +fmull Half +faddp %st(1),%st +fstpl Y +fldl D +faddl Z +faddl Q +fstpl X +call SR3750 +fldl D +fldl One +fsubl Z +fmull Half +faddp %st(1),%st +faddl D +fstpl Y +fldl D +fsubl Z +faddl D +fstpl X +fldl X +fstpl -1508(%ebp) +fldl -1508(%ebp) +faddl Q +faddl -1508(%ebp) +fstpl X +call SR3750 +call NewD +fldl D +fsubl Z2 +fldl W +fsubl Z2 +fcompp +fstsw %ax +sahf +je .LC426 +movl $1,Anomaly +jmp .LC427 +.LC426: +fldl D +fsubl Z2 +fstpl -1532(%ebp) +fldl -1532(%ebp) +fldl Z2 +fldl One +fsubl Z +fmull Half +faddp %st(1),%st +faddp %st(1),%st +fstpl Y +fldl -1532(%ebp) +fldl Z2 +fsubl Z +faddl Q +faddp %st(1),%st +fstpl X +call SR3750 +fldl One +faddl Z +fmull Half +fstpl Y +fldl Q +fstpl X +call SR3750 +cmpl $0,I +jne .LC428 +movl $1,Anomaly +.LC428: +.LC427: +.LC425: +.LC418: +.LC410: +.LC395: +cmpl $0,I +je .LC432 +cmpl $0,Anomaly +je .LC430 +.LC432: +pushl $.LC433 +pushl $0 +call BadCond +addl $8,%esp +fldl W +subl $8,%esp +fstpl (%esp) +pushl $.LC434 +call printf +addl $12,%esp +pushl $.LC435 +call printf +addl $4,%esp +movl $1,SqRWrng +.LC430: +.LC391: +cmpl $0,Anomaly +jne .LC436 +fldl Zero +fcompl MinSqEr +fstsw %ax +sahf +ja .LC438 +fldl Zero +fcompl MaxSqEr +fstsw %ax +sahf +jb .LC438 +movl $1,RSqrt +pushl $.LC440 +call printf +addl $4,%esp +jmp .LC439 +.LC438: +fldl MaxSqEr +faddl U2 +fldl U2 +fsubl Half +fcompp +fstsw %ax +sahf +jb .LC444 +fldl Half +fcompl MinSqEr +fstsw %ax +sahf +jb .LC444 +fldl MinSqEr +faddl Radix +fldl Half +fcompp +fstsw %ax +sahf +jbe .LC441 +.LC444: +movl $1,SqRWrng +jmp .LC442 +.LC441: +movl $2,RSqrt +pushl $.LC445 +call printf +addl $4,%esp +.LC442: +.LC439: +.LC436: +cmpl $0,SqRWrng +je .LC446 +pushl $.LC448 +call printf +addl $4,%esp +fldl MinSqEr +fsubl Half +subl $8,%esp +fstpl (%esp) +pushl $.LC449 +call printf +addl $12,%esp +fldl Half +faddl MaxSqEr +subl $8,%esp +fstpl (%esp) +pushl $.LC450 +call printf +addl $12,%esp +pushl $.LC452 +fldl MaxSqEr +fsubl MinSqEr +fldl Radix +fmull Radix +fcompp +fstsw %ax +sahf +jbe .LC453 +movl $1,-1344(%ebp) +jmp .LC454 +.LC453: +movl $0,-1344(%ebp) +.LC454: +pushl -1344(%ebp) +pushl $1 +call TstCond +addl $12,%esp +.LC446: +movl $90,Milestone +call Pause +pushl $.LC455 +call printf +addl $4,%esp +movl $0,N +movl $0,I +fldl Zero +fchs +fstpl Z +movl $3,M +movl $0,Break +.LC456: +fldl One +fstpl X +call SR3980 +cmpl $10,I +jg .LC459 +movl $1023,I +call SR3980 +.LC459: +fldl MinusOne +fcompl Z +fstsw %ax +sahf +jne .LC461 +movl $1,Break +jmp .LC462 +.LC461: +fldl MinusOne +fstpl Z +call PrintIfNPositive +movl $0,N +movl $-4,I +.LC462: +.LC457: +cmpl $0,Break +je .LC456 +call PrintIfNPositive +movl N,%edi +movl %edi,N1 +movl $0,N +fldl A1 +fstpl Z +fldl W +subl $8,%esp +fstpl (%esp) +call log +addl $8,%esp +fstpl -1348(%ebp) +fldl A1 +subl $8,%esp +fstpl (%esp) +call log +addl $8,%esp +fstpl -1356(%ebp) +fldl Two +fmull -1348(%ebp) +fdivl -1356(%ebp) +subl $8,%esp +fstpl (%esp) +call floor +addl $8,%esp +fstpl -1364(%ebp) +fldl -1364(%ebp) +fistpl M +movl $0,Break +.LC463: +fldl Z +fstpl X +movl $1,I +call SR3980 +fldl AInvrse +fcompl Z +fstsw %ax +sahf +jne .LC466 +movl $1,Break +jmp .LC467 +.LC466: +fldl AInvrse +fstpl Z +.LC467: +.LC464: +cmpl $0,Break +je .LC463 +movl $100,Milestone +movl NoTrials,%edi +movl %edi,M +fldl Three +fstpl Z +.LC468: +fldl Z +fstpl X +movl $1,I +call SR3980 +.LC471: +fldl Z +faddl Two +fstpl Z +.LC472: +fldl Z +fdivl Three +subl $8,%esp +fstpl (%esp) +call floor +addl $8,%esp +fstpl -1380(%ebp) +fldl Three +fmull -1380(%ebp) +fldl Z +fcompp +fstsw %ax +sahf +je .LC471 +.LC469: +fldl Eight +fmull Three +fcompl Z +fstsw %ax +sahf +ja .LC468 +cmpl $0,N +jle .LC474 +pushl $.LC476 +call printf +addl $4,%esp +pushl $.LC477 +call printf +addl $4,%esp +.LC474: +call PrintIfNPositive +movl N1,%edi +addl %edi,N +cmpl $0,N +jne .LC478 +pushl $.LC480 +call printf +addl $4,%esp +.LC478: +cmpl $0,N +jle .LC481 +call Pause +jmp .LC482 +.LC481: +pushl $.LC45 +call printf +addl $4,%esp +.LC482: +movl $110,Milestone +pushl $.LC483 +call printf +addl $4,%esp +fldl U1 +fstpl D +fldl Precision +subl $8,%esp +fstpl (%esp) +call floor +addl $8,%esp +fstpl -1380(%ebp) +fldl -1380(%ebp) +fcompl Precision +fstsw %ax +sahf +je .LC484 +fldl BInvrse +fstpl D +fldl Precision +fstpl X +.LC486: +fldl D +fmull BInvrse +fstpl D +fldl X +fsubl One +fstpl X +.LC487: +fldl Zero +fcompl X +fstsw %ax +sahf +jb .LC486 +.LC484: +fldl One +fstpl Y +fldl D +fstpl Z +.LC489: +fldl Y +fstpl C +fldl Z +fstpl Y +fldl Y +fstpl -1388(%ebp) +fldl -1388(%ebp) +fmull -1388(%ebp) +fstpl Z +.LC490: +fldl Z +fcompl Y +fstsw %ax +sahf +jae .LC492 +fldl Z +faddl Z +fldl Z +fcompp +fstsw %ax +sahf +jb .LC489 +.LC492: +fldl C +fstpl Y +fldl Y +fmull D +fstpl Z +.LC493: +fldl Y +fstpl C +fldl Z +fstpl Y +fldl Y +fmull D +fstpl Z +.LC494: +fldl Z +fcompl Y +fstsw %ax +sahf +jae .LC496 +fldl Z +faddl Z +fldl Z +fcompp +fstsw %ax +sahf +jb .LC493 +.LC496: +fldl Two +fcompl Radix +fstsw %ax +sahf +jbe .LC497 +fldl Two +fstpl HInvrse +jmp .LC498 +.LC497: +fldl Radix +fstpl HInvrse +.LC498: +fldl One +fdivl HInvrse +fstpl H +fldl One +fdivl C +fstpl CInvrse +fldl C +fstpl E0 +fldl E0 +fmull H +fstpl Z +.LC499: +fldl E0 +fstpl Y +fldl Z +fstpl E0 +fldl E0 +fmull H +fstpl Z +.LC500: +fldl Z +fcompl E0 +fstsw %ax +sahf +jae .LC502 +fldl Z +faddl Z +fldl Z +fcompp +fstsw %ax +sahf +jb .LC499 +.LC502: +fldl E0 +fstpl UfThold +fldl Zero +fstpl E1 +fldl Zero +fstpl Q +fldl U2 +fstpl E9 +fldl One +faddl E9 +fstpl S +fldl C +fmull S +fstpl D +fldl C +fcompl D +fstsw %ax +sahf +jb .LC503 +fldl Radix +fmull U2 +fstpl E9 +fldl One +faddl E9 +fstpl S +fldl C +fmull S +fstpl D +fldl C +fcompl D +fstsw %ax +sahf +jb .LC504 +pushl $.LC507 +pushl $0 +call BadCond +addl $8,%esp +fldl E0 +fstpl Underflow +fldl Zero +fstpl Y1 +fldl Z +fstpl PseudoZero +call Pause +jmp .LC504 +.LC503: +fldl D +fstpl Underflow +fldl Underflow +fmull H +fstpl PseudoZero +fldl Zero +fstpl UfThold +.LC508: +fldl Underflow +fstpl Y1 +fldl PseudoZero +fstpl Underflow +fldl E1 +faddl E1 +fldl E1 +fcompp +fstsw %ax +sahf +jb .LC511 +fldl Underflow +fmull HInvrse +fstpl Y2 +fldl Y1 +fsubl Y2 +subl $8,%esp +fstpl (%esp) +call fabs +addl $8,%esp +fstpl -1452(%ebp) +fldl -1452(%ebp) +fstpl E1 +fldl Y1 +fstpl Q +fldl Zero +fcompl UfThold +fstsw %ax +sahf +jne .LC513 +fldl Y2 +fcompl Y1 +fstsw %ax +sahf +je .LC513 +fldl Y1 +fstpl UfThold +.LC513: +.LC511: +fldl PseudoZero +fmull H +fstpl PseudoZero +.LC509: +fldl PseudoZero +fcompl Underflow +fstsw %ax +sahf +jae .LC515 +fldl PseudoZero +faddl PseudoZero +fldl PseudoZero +fcompp +fstsw %ax +sahf +jb .LC508 +.LC515: +.LC504: +fldl Zero +fcompl PseudoZero +fstsw %ax +sahf +je .LC516 +pushl $.LC45 +call printf +addl $4,%esp +fldl PseudoZero +fstpl Z +fldl Zero +fcompl PseudoZero +fstsw %ax +sahf +jb .LC518 +pushl $.LC520 +pushl $0 +call BadCond +addl $8,%esp +pushl $.LC521 +call printf +addl $4,%esp +fldl PseudoZero +subl $8,%esp +fstpl (%esp) +pushl $.LC522 +call printf +addl $12,%esp +fldl PseudoZero +fchs +fstpl X +fldl Zero +fcompl X +fstsw %ax +sahf +jb .LC519 +pushl $.LC525 +call printf +addl $4,%esp +fldl X +subl $8,%esp +fstpl (%esp) +pushl $.LC526 +call printf +addl $12,%esp +jmp .LC519 +.LC518: +pushl $.LC527 +pushl $3 +call BadCond +addl $8,%esp +fldl PseudoZero +subl $8,%esp +fstpl (%esp) +pushl $.LC528 +call printf +addl $12,%esp +.LC519: +call TstPtUf +.LC516: +movl $120,Milestone +fldl CInvrse +fmull Y +fldl CInvrse +fmull Y1 +fcompp +fstsw %ax +sahf +jae .LC529 +fldl H +fmull S +fstpl S +fldl Underflow +fstpl E0 +.LC529: +fldl Zero +fcompl E1 +fstsw %ax +sahf +je .LC531 +fldl E0 +fcompl E1 +fstsw %ax +sahf +je .LC531 +pushl $.LC158 +pushl $2 +call BadCond +addl $8,%esp +fldl E0 +fcompl E1 +fstsw %ax +sahf +jbe .LC533 +pushl $.LC535 +call printf +addl $4,%esp +pushl $.LC536 +call printf +addl $4,%esp +fldl Zero +fcompl PseudoZero +fstsw %ax +sahf +jne .LC534 +fldl E1 +fstpl E0 +jmp .LC534 +.LC533: +pushl $.LC539 +call printf +addl $4,%esp +pushl $.LC540 +call printf +addl $4,%esp +.LC534: +.LC531: +fldl E0 +subl $8,%esp +fstpl (%esp) +pushl $.LC541 +call printf +addl $12,%esp +fldl E0 +fstpl Z +call TstPtUf +fldl E0 +fstpl Underflow +cmpl $1,N +jne .LC542 +fldl Y +fstpl Underflow +.LC542: +movl $4,I +fldl Zero +fcompl E1 +fstsw %ax +sahf +jne .LC544 +movl $3,I +.LC544: +fldl Zero +fcompl UfThold +fstsw %ax +sahf +jne .LC546 +sub $2,I +.LC546: +movl $1,UfNGrad +movl I,%edi +cmpl $1,%edi +jl .LC548 +cmpl $4,%edi +jg .LC548 +jmp *.LC571-4(,%edi,4) +.data +.align 4 +.LC571: +.long .LC550 +.long .LC557 +.long .LC562 +.long .LC563 +.text +.LC550: +fldl Underflow +fstpl UfThold +fldl CInvrse +fmull Q +fldl CInvrse +fmull Y +fmull S +fcompp +fstsw %ax +sahf +je .LC551 +fldl Y +fstpl UfThold +pushl $.LC553 +pushl $0 +call BadCond +addl $8,%esp +fldl UfThold +subl $8,%esp +fstpl (%esp) +pushl $.LC554 +call printf +addl $12,%esp +fldl C +subl $8,%esp +fstpl (%esp) +pushl $.LC555 +call printf +addl $12,%esp +pushl $.LC556 +call printf +addl $4,%esp +.LC551: +call Pause +jmp .LC549 +.LC557: +pushl $.LC558 +pushl $0 +call BadCond +addl $8,%esp +pushl $.LC559 +call printf +addl $4,%esp +fldl Y2 +subl $8,%esp +fstpl (%esp) +fldl Q +subl $8,%esp +fstpl (%esp) +pushl $.LC560 +call printf +addl $20,%esp +fldl Q +fsubl Y2 +subl $8,%esp +fstpl (%esp) +call fabs +addl $8,%esp +fstpl -1468(%ebp) +fldl -1468(%ebp) +subl $8,%esp +fstpl (%esp) +pushl $.LC561 +call printf +addl $12,%esp +fldl Q +fstpl UfThold +jmp .LC549 +.LC562: +fldl X +fstpl X +jmp .LC549 +.LC563: +fldl UfThold +fcompl Q +fstsw %ax +sahf +jne .LC564 +fldl E0 +fcompl E1 +fstsw %ax +sahf +jne .LC564 +fldl UfThold +fldl E1 +fdivl E9 +fsubp %st(1),%st +subl $8,%esp +fstpl (%esp) +call fabs +addl $8,%esp +fstpl -1492(%ebp) +fldl E1 +fcompl -1492(%ebp) +fstsw %ax +sahf +jb .LC564 +movl $0,UfNGrad +pushl $.LC566 +call printf +addl $4,%esp +pushl $.LC567 +call printf +addl $4,%esp +fldl E0 +fmull CInvrse +fstpl Y +fldl Y +fldl OneAndHalf +faddl U2 +fmulp %st(1),%st +fstpl Y +fldl CInvrse +fldl One +faddl U2 +fmulp %st(1),%st +fstpl X +fldl Y +fdivl X +fstpl Y +fldl E0 +fcompl Y +fstsw %ax +sahf +jne .LC569 +movl $1,-1496(%ebp) +jmp .LC570 +.LC569: +movl $0,-1496(%ebp) +.LC570: +movl -1496(%ebp),%edi +movl %edi,IEEE +.LC564: +.LC548: +.LC549: +cmpl $0,UfNGrad +je .LC573 +pushl $.LC45 +call printf +addl $4,%esp +leal sigfpe,%edi +movl %edi,sigsave +pushl $ovfl_buf +call __setjmp +addl $4,%esp +cmpl $0,%eax +je .LC575 +pushl $.LC577 +call printf +addl $4,%esp +fldl H +faddl H +fstpl R +jmp .LC576 +.LC575: +fldl Underflow +fdivl UfThold +subl $8,%esp +fstpl (%esp) +call sqrt +addl $8,%esp +fstpl -1460(%ebp) +fldl -1460(%ebp) +fstpl R +.LC576: +movl $0,sigsave +fldl H +fcompl R +fstsw %ax +sahf +jb .LC578 +fldl R +fmull UfThold +fstpl Z +fldl Z +fldl One +fldl R +fmull H +fldl One +faddl H +fmulp %st(1),%st +faddp %st(1),%st +fmulp %st(1),%st +fstpl X +jmp .LC579 +.LC578: +fldl UfThold +fstpl Z +fldl Z +fldl One +fldl H +fmull H +fldl One +faddl H +fmulp %st(1),%st +faddp %st(1),%st +fmulp %st(1),%st +fstpl X +.LC579: +fldl Z +fcompl X +fstsw %ax +sahf +je .LC580 +fldl X +fsubl Z +fldl Zero +fcompp +fstsw %ax +sahf +jne .LC580 +pushl $.LC158 +pushl $3 +call BadCond +addl $8,%esp +fldl Z +subl $8,%esp +fstpl (%esp) +fldl X +subl $8,%esp +fstpl (%esp) +pushl $.LC582 +call printf +addl $20,%esp +fldl X +fsubl Z +fstpl Z9 +fldl Z9 +subl $8,%esp +fstpl (%esp) +pushl $.LC583 +call printf +addl $12,%esp +pushl $.LC584 +call printf +addl $4,%esp +pushl $.LC585 +call printf +addl $4,%esp +pushl $.LC586 +call printf +addl $4,%esp +pushl $.LC587 +call printf +addl $4,%esp +pushl $.LC588 +call printf +addl $4,%esp +pushl $.LC589 +call printf +addl $4,%esp +leal sigfpe,%edi +movl %edi,sigsave +pushl $ovfl_buf +call __setjmp +addl $4,%esp +cmpl $0,%eax +je .LC590 +pushl $.LC592 +call printf +addl $4,%esp +jmp .LC591 +.LC590: +fldl X +fdivl Z +fsubl Half +fsubl Half +subl $8,%esp +fstpl (%esp) +pushl $.LC593 +call printf +addl $12,%esp +.LC591: +movl $0,sigsave +.LC580: +.LC573: +pushl $.LC595 +fldl UfThold +subl $8,%esp +fstpl (%esp) +pushl $.LC594 +call printf +addl $16,%esp +pushl $.LC596 +call printf +addl $4,%esp +pushl $.LC597 +call printf +addl $4,%esp +fldl U1 +fmull U1 +fstpl Y2 +fldl Y2 +fstpl -1468(%ebp) +fldl -1468(%ebp) +fmull -1468(%ebp) +fstpl Y +fldl Y +fmull U1 +fstpl Y2 +fldl UfThold +fcompl Y2 +fstsw %ax +sahf +jb .LC598 +fldl E0 +fcompl Y +fstsw %ax +sahf +jae .LC600 +pushl $.LC158 +pushl $2 +call BadCond +addl $8,%esp +movl $5,I +jmp .LC601 +.LC600: +pushl $.LC158 +pushl $1 +call BadCond +addl $8,%esp +movl $4,I +.LC601: +pushl I +pushl $.LC602 +call printf +addl $8,%esp +.LC598: +movl $130,Milestone +fldl UfThold +subl $8,%esp +fstpl (%esp) +call log +addl $8,%esp +fstpl -1476(%ebp) +fldl HInvrse +subl $8,%esp +fstpl (%esp) +call log +addl $8,%esp +fstpl -1484(%ebp) +fldl Half +fldl TwoForty +fmull -1476(%ebp) +fdivl -1484(%ebp) +fsubp %st(1),%st +subl $8,%esp +fstpl (%esp) +call floor +addl $8,%esp +fstpl -1492(%ebp) +fldl -1492(%ebp) +fchs +fdivl TwoForty +fstpl Y +fldl Y +faddl Y +fstpl Y2 +pushl $.LC603 +call printf +addl $4,%esp +fldl Y +subl $8,%esp +fstpl (%esp) +fldl HInvrse +subl $8,%esp +fstpl (%esp) +pushl $.LC604 +call printf +addl $20,%esp +fldl Y +subl $8,%esp +fstpl (%esp) +fldl HInvrse +subl $8,%esp +fstpl (%esp) +pushl $.LC605 +call printf +addl $20,%esp +fldl Y2 +subl $8,%esp +fstpl (%esp) +fldl HInvrse +subl $8,%esp +fstpl (%esp) +call pow +addl $16,%esp +fstpl -1508(%ebp) +fldl -1508(%ebp) +fstpl V9 +fldl V9 +subl $8,%esp +fstpl (%esp) +pushl $.LC606 +call printf +addl $12,%esp +fldl Zero +fcompl V9 +fstsw %ax +sahf +ja .LC609 +fldl Radix +faddl Radix +faddl E9 +fmull UfThold +fcompl V9 +fstsw %ax +sahf +jae .LC607 +.LC609: +pushl $.LC610 +pushl $1 +call BadCond +addl $8,%esp +fldl UfThold +subl $8,%esp +fstpl (%esp) +pushl $.LC611 +call printf +addl $12,%esp +jmp .LC608 +.LC607: +fldl UfThold +fldl One +faddl E9 +fmulp %st(1),%st +fcompl V9 +fstsw %ax +sahf +jb .LC612 +pushl $.LC614 +call printf +addl $4,%esp +jmp .LC613 +.LC612: +pushl $.LC610 +pushl $2 +call BadCond +addl $8,%esp +fldl UfThold +subl $8,%esp +fstpl (%esp) +pushl $.LC611 +call printf +addl $12,%esp +.LC613: +.LC608: +movl $140,Milestone +pushl $.LC45 +call printf +addl $4,%esp +fldl Zero +fstpl X +movl $2,I +fldl Two +fmull Three +fstpl Y +fldl Zero +fstpl Q +movl $0,N +.LC615: +fldl X +fstpl Z +incl I +movl I,%edi +fldl Y +leal (%edi,%edi),%edi +pushl %edi +fildl (%esp) +addl $4,%esp +fdivp %st(1),%st +fstpl Y +fldl Y +faddl Q +fstpl R +fldl Z +fstpl -1540(%ebp) +fldl R +fstpl -1548(%ebp) +fldl -1540(%ebp) +faddl -1548(%ebp) +fstpl X +fldl -1540(%ebp) +fsubl X +faddl -1548(%ebp) +fstpl Q +.LC616: +fldl Z +fcompl X +fstsw %ax +sahf +jb .LC615 +fldl OneAndHalf +fldl One +fdivl Eight +faddp %st(1),%st +fldl X +fldl OneAndHalf +fmull ThirtyTwo +fdivp %st(1),%st +faddp %st(1),%st +fstpl Z +fldl Z +fstpl -1548(%ebp) +fldl -1548(%ebp) +fmull -1548(%ebp) +fstpl X +fldl X +fstpl -1556(%ebp) +fldl -1556(%ebp) +fmull -1556(%ebp) +fstpl Exp2 +fldl F9 +fstpl X +fldl X +fsubl U1 +fstpl Y +fldl Exp2 +subl $8,%esp +fstpl (%esp) +pushl $.LC618 +call printf +addl $12,%esp +movl $1,I +.LC619: +fldl X +fsubl BInvrse +fstpl Z +fldl X +faddl One +fldl Z +fldl One +fsubl BInvrse +fsubp %st(1),%st +fdivp %st(1),%st +fstpl Z +fldl Z +subl $8,%esp +fstpl (%esp) +fldl X +subl $8,%esp +fstpl (%esp) +call pow +addl $16,%esp +fstpl -1588(%ebp) +fldl -1588(%ebp) +fsubl Exp2 +fstpl Q +fldl Q +subl $8,%esp +fstpl (%esp) +call fabs +addl $8,%esp +fstpl -1596(%ebp) +fldl TwoForty +fmull U2 +fcompl -1596(%ebp) +fstsw %ax +sahf +jae .LC623 +movl $1,N +fldl X +fsubl BInvrse +fldl One +fsubl BInvrse +fsubp %st(1),%st +fstpl V9 +pushl $.LC625 +pushl $2 +call BadCond +addl $8,%esp +fldl Z +subl $8,%esp +fstpl (%esp) +fldl X +subl $8,%esp +fstpl (%esp) +call pow +addl $16,%esp +fstpl -1612(%ebp) +fldl -1612(%ebp) +subl $8,%esp +fstpl (%esp) +pushl $.LC626 +call printf +addl $12,%esp +fldl Z +subl $8,%esp +fstpl (%esp) +fldl V9 +subl $8,%esp +fstpl (%esp) +pushl $.LC627 +call printf +addl $20,%esp +fldl Q +subl $8,%esp +fstpl (%esp) +pushl $.LC628 +call printf +addl $12,%esp +pushl $.LC629 +call printf +addl $4,%esp +pushl $.LC630 +call printf +addl $4,%esp +jmp .LC621 +.LC623: +fldl Y +fstpl -1604(%ebp) +fldl -1604(%ebp) +fsubl X +fmull Two +faddl -1604(%ebp) +fstpl Z +fldl -1604(%ebp) +fstpl X +fldl Z +fstpl Y +fldl X +fsubl F9 +fstpl -1612(%ebp) +fldl One +fldl -1612(%ebp) +fmull -1612(%ebp) +faddp %st(1),%st +fstpl Z +fldl One +fcompl Z +fstsw %ax +sahf +jae .LC631 +movl NoTrials,%edi +cmpl %edi,I +jge .LC631 +incl I +jmp .LC619 +.LC631: +fldl One +fcompl X +fstsw %ax +sahf +jae .LC633 +cmpl $0,N +jne .LC621 +pushl $.LC637 +call printf +addl $4,%esp +jmp .LC621 +.LC633: +fldl One +faddl U2 +fstpl X +fldl U2 +faddl U2 +fstpl Y +fldl Y +faddl X +fstpl Y +movl $1,I +jmp .LC619 +.LC621: +movl $150,Milestone +pushl $.LC638 +call printf +addl $4,%esp +movl $0,N +fldl A1 +fstpl Z +fldl C +subl $8,%esp +fstpl (%esp) +call log +addl $8,%esp +fstpl -1564(%ebp) +fldl A1 +subl $8,%esp +fstpl (%esp) +call log +addl $8,%esp +fstpl -1572(%ebp) +fldl Half +fldl -1564(%ebp) +fdivl -1572(%ebp) +fsubp %st(1),%st +subl $8,%esp +fstpl (%esp) +call floor +addl $8,%esp +fstpl -1580(%ebp) +fldl -1580(%ebp) +fstpl Q +movl $0,Break +.LC639: +fldl CInvrse +fstpl X +fldl Q +subl $8,%esp +fstpl (%esp) +fldl Z +subl $8,%esp +fstpl (%esp) +call pow +addl $16,%esp +fstpl -1588(%ebp) +fldl -1588(%ebp) +fstpl Y +call IsYeqX +fldl Q +fchs +fstpl Q +fldl C +fstpl X +fldl Q +subl $8,%esp +fstpl (%esp) +fldl Z +subl $8,%esp +fstpl (%esp) +call pow +addl $16,%esp +fstpl -1596(%ebp) +fldl -1596(%ebp) +fstpl Y +call IsYeqX +fldl One +fcompl Z +fstsw %ax +sahf +jbe .LC642 +movl $1,Break +jmp .LC643 +.LC642: +fldl AInvrse +fstpl Z +.LC643: +.LC640: +cmpl $0,Break +je .LC639 +call PrintIfNPositive +cmpl $0,N +jne .LC644 +pushl $.LC646 +call printf +addl $4,%esp +.LC644: +pushl $.LC45 +call printf +addl $4,%esp +movl $160,Milestone +call Pause +pushl $.LC647 +call printf +addl $4,%esp +pushl $.LC648 +call printf +addl $4,%esp +fldl CInvrse +fchs +fstpl Y +fldl HInvrse +fmull Y +fstpl V9 +leal sigfpe,%edi +movl %edi,sigsave +pushl $ovfl_buf +call __setjmp +addl $4,%esp +cmpl $0,%eax +je .LC649 +movl $0,I +fldl Y +fstpl V9 +jmp .LC651 +.LC649: +.LC652: +fldl Y +fstpl V +fldl V9 +fstpl Y +fldl HInvrse +fmull Y +fstpl V9 +.LC653: +fldl Y +fcompl V9 +fstsw %ax +sahf +ja .LC652 +movl $1,I +.LC651: +movl $0,sigsave +fldl V9 +fstpl Z +pushl $.LC655 +call printf +addl $4,%esp +fldl Y +subl $8,%esp +fstpl (%esp) +pushl $.LC656 +call printf +addl $12,%esp +fldl Y +fchs +fstpl V9 +fldl V9 +fstpl V0 +fldl V +fsubl Y +fldl V +faddl V0 +fcompp +fstsw %ax +sahf +jne .LC657 +pushl $.LC659 +call printf +addl $4,%esp +jmp .LC658 +.LC657: +pushl $.LC660 +call printf +addl $4,%esp +pushl $.LC661 +pushl $3 +call BadCond +addl $8,%esp +.LC658: +fldl Y +fcompl Z +fstsw %ax +sahf +je .LC662 +pushl $.LC158 +pushl $1 +call BadCond +addl $8,%esp +fldl Z +subl $8,%esp +fstpl (%esp) +fldl Y +subl $8,%esp +fstpl (%esp) +pushl $.LC664 +call printf +addl $20,%esp +.LC662: +cmpl $0,I +je .LC665 +fldl V +fldl HInvrse +fmull U2 +fsubl HInvrse +fmulp %st(1),%st +fstpl Y +fldl Y +fldl One +fsubl HInvrse +fmull U2 +fmull V +faddp %st(1),%st +fstpl Z +fldl V0 +fcompl Z +fstsw %ax +sahf +jbe .LC667 +fldl Z +fstpl Y +.LC667: +fldl V0 +fcompl Y +fstsw %ax +sahf +jbe .LC669 +fldl Y +fstpl V +.LC669: +fldl V0 +fsubl V +fldl V0 +fcompp +fstsw %ax +sahf +jbe .LC666 +fldl V0 +fstpl V +jmp .LC666 +.LC665: +fldl Y +fldl HInvrse +fmull U2 +fsubl HInvrse +fmulp %st(1),%st +fstpl V +fldl V +fldl One +fsubl HInvrse +fmull U2 +fmull Y +faddp %st(1),%st +fstpl V +.LC666: +fldl V +subl $8,%esp +fstpl (%esp) +pushl $.LC673 +call printf +addl $12,%esp +cmpl $0,I +je .LC674 +fldl V0 +subl $8,%esp +fstpl (%esp) +pushl $.LC676 +call printf +addl $12,%esp +jmp .LC675 +.LC674: +pushl $.LC677 +call printf +addl $4,%esp +.LC675: +fldl V +fmull One +fstpl V9 +fldl V9 +subl $8,%esp +fstpl (%esp) +pushl $.LC678 +call printf +addl $12,%esp +fldl V +fdivl One +fstpl V9 +fldl V9 +subl $8,%esp +fstpl (%esp) +pushl $.LC679 +call printf +addl $12,%esp +pushl $.LC680 +call printf +addl $4,%esp +pushl $.LC681 +call printf +addl $4,%esp +movl $170,Milestone +fldl V +fchs +fldl V +fcompp +fstsw %ax +sahf +jbe .LC686 +fldl V0 +fchs +fldl V0 +fcompp +fstsw %ax +sahf +jbe .LC686 +fldl UfThold +fchs +fldl V +fcompp +fstsw %ax +sahf +jbe .LC686 +fldl V +fcompl UfThold +fstsw %ax +sahf +ja .LC682 +.LC686: +pushl $.LC687 +pushl $0 +call BadCond +addl $8,%esp +fldl UfThold +subl $8,%esp +fstpl (%esp) +fldl V0 +subl $8,%esp +fstpl (%esp) +fldl V +subl $8,%esp +fstpl (%esp) +pushl $.LC688 +call printf +addl $28,%esp +.LC682: +movl $175,Milestone +pushl $.LC45 +call printf +addl $4,%esp +movl $1,Indx +.LC689: +movl Indx,%edi +cmpl $1,%edi +je .LC695 +cmpl $2,%edi +je .LC696 +cmpl $3,%edi +je .LC697 +jmp .LC693 +.LC695: +fldl UfThold +fstpl Z +jmp .LC694 +.LC696: +fldl E0 +fstpl Z +jmp .LC694 +.LC697: +fldl PseudoZero +fstpl Z +.LC693: +.LC694: +fldl Zero +fcompl Z +fstsw %ax +sahf +je .LC698 +fldl Z +subl $8,%esp +fstpl (%esp) +call sqrt +addl $8,%esp +fstpl -1628(%ebp) +fldl -1628(%ebp) +fstpl V9 +fldl V9 +fmull V9 +fstpl Y +fldl Radix +fmull E9 +fstpl -1660(%ebp) +fldl Y +fldl One +fsubl -1660(%ebp) +fdivp %st(1),%st +fldl Z +fcompp +fstsw %ax +sahf +ja .LC702 +fldl One +faddl -1660(%ebp) +fmull Z +fcompl Y +fstsw %ax +sahf +jae .LC700 +.LC702: +fldl U1 +fcompl V9 +fstsw %ax +sahf +jae .LC703 +pushl $.LC158 +pushl $1 +call BadCond +addl $8,%esp +jmp .LC704 +.LC703: +pushl $.LC158 +pushl $2 +call BadCond +addl $8,%esp +.LC704: +fldl Z +subl $8,%esp +fstpl (%esp) +pushl $.LC705 +call printf +addl $12,%esp +fldl Y +subl $8,%esp +fstpl (%esp) +pushl $.LC706 +call printf +addl $12,%esp +.LC700: +.LC698: +.LC690: +incl Indx +cmpl $3,Indx +jle .LC689 +movl $180,Milestone +movl $1,Indx +.LC707: +cmpl $1,Indx +jne .LC711 +fldl V +fstpl Z +jmp .LC712 +.LC711: +fldl V0 +fstpl Z +.LC712: +fldl Z +subl $8,%esp +fstpl (%esp) +call sqrt +addl $8,%esp +fstpl -1628(%ebp) +fldl -1628(%ebp) +fstpl V9 +fldl V9 +fstpl -1636(%ebp) +fldl One +fldl Radix +fmull E9 +fsubp %st(1),%st +fmull -1636(%ebp) +fstpl X +fldl -1636(%ebp) +fmull X +fstpl V9 +fldl One +fldl Two +fmull Radix +fmull E9 +fsubp %st(1),%st +fmull Z +fcompl V9 +fstsw %ax +sahf +ja .LC715 +fldl Z +fcompl V9 +fstsw %ax +sahf +jae .LC713 +.LC715: +fldl V9 +fstpl Y +fldl W +fcompl X +fstsw %ax +sahf +jbe .LC716 +pushl $.LC158 +pushl $1 +call BadCond +addl $8,%esp +jmp .LC717 +.LC716: +pushl $.LC158 +pushl $2 +call BadCond +addl $8,%esp +.LC717: +fldl Z +subl $8,%esp +fstpl (%esp) +pushl $.LC718 +call printf +addl $12,%esp +fldl Y +subl $8,%esp +fstpl (%esp) +pushl $.LC719 +call printf +addl $12,%esp +.LC713: +.LC708: +incl Indx +cmpl $2,Indx +jle .LC707 +movl $190,Milestone +call Pause +fldl UfThold +fmull V +fstpl X +fldl Radix +fmull Radix +fstpl Y +fldl X +fmull Y +fldl One +fcompp +fstsw %ax +sahf +ja .LC722 +fldl Y +fcompl X +fstsw %ax +sahf +jae .LC720 +.LC722: +fldl X +fmull Y +fldl U1 +fcompp +fstsw %ax +sahf +ja .LC725 +fldl Y +fdivl U1 +fcompl X +fstsw %ax +sahf +jae .LC723 +.LC725: +pushl $.LC726 +pushl $2 +call BadCond +addl $8,%esp +jmp .LC724 +.LC723: +pushl $.LC158 +pushl $3 +call BadCond +addl $8,%esp +.LC724: +pushl $.LC728 +fldl X +subl $8,%esp +fstpl (%esp) +pushl $.LC727 +call printf +addl $16,%esp +.LC720: +movl $200,Milestone +movl $1,Indx +.LC729: +fldl F9 +fstpl X +movl Indx,%edi +cmpl $2,%edi +jl .LC733 +cmpl $5,%edi +jg .LC733 +jmp *.LC739-8(,%edi,4) +.data +.align 4 +.LC739: +.long .LC735 +.long .LC736 +.long .LC737 +.long .LC738 +.text +.LC735: +fldl One +faddl U2 +fstpl X +jmp .LC734 +.LC736: +fldl V +fstpl X +jmp .LC734 +.LC737: +fldl UfThold +fstpl X +jmp .LC734 +.LC738: +fldl Radix +fstpl X +.LC733: +.LC734: +fldl X +fstpl Y +leal sigfpe,%edi +movl %edi,sigsave +pushl $ovfl_buf +call __setjmp +addl $4,%esp +cmpl $0,%eax +je .LC741 +fldl X +subl $8,%esp +fstpl (%esp) +pushl $.LC743 +call printf +addl $12,%esp +jmp .LC742 +.LC741: +fldl Y +fdivl X +fsubl Half +fsubl Half +fstpl V9 +fldl Zero +fcompl V9 +fstsw %ax +sahf +jne .LC744 +jmp .LC730 +.LC744: +fldl U1 +fchs +fcompl V9 +fstsw %ax +sahf +jne .LC746 +cmpl $5,Indx +jge .LC746 +pushl $.LC158 +pushl $3 +call BadCond +addl $8,%esp +jmp .LC747 +.LC746: +pushl $.LC158 +pushl $1 +call BadCond +addl $8,%esp +.LC747: +fldl X +subl $8,%esp +fstpl (%esp) +pushl $.LC748 +call printf +addl $12,%esp +fldl V9 +subl $8,%esp +fstpl (%esp) +pushl $.LC749 +call printf +addl $12,%esp +.LC742: +movl $0,sigsave +.LC730: +incl Indx +cmpl $5,Indx +jle .LC729 +movl $210,Milestone +fldl Zero +fstpl MyZero +pushl $.LC45 +call printf +addl $4,%esp +pushl $.LC750 +call printf +addl $4,%esp +leal sigfpe,%edi +movl %edi,sigsave +pushl $.LC751 +call printf +addl $4,%esp +pushl $ovfl_buf +call __setjmp +addl $4,%esp +cmpl $0,%eax +jne .LC752 +fldl One +fdivl MyZero +subl $8,%esp +fstpl (%esp) +pushl $.LC754 +call printf +addl $12,%esp +.LC752: +movl $0,sigsave +leal sigfpe,%edi +movl %edi,sigsave +pushl $.LC755 +call printf +addl $4,%esp +pushl $ovfl_buf +call __setjmp +addl $4,%esp +cmpl $0,%eax +jne .LC756 +fldl Zero +fdivl MyZero +subl $8,%esp +fstpl (%esp) +pushl $.LC754 +call printf +addl $12,%esp +.LC756: +movl $0,sigsave +movl $220,Milestone +call Pause +pushl $.LC45 +call printf +addl $4,%esp +movl $0,-1648(%ebp) +.LC763: +movl -1648(%ebp),%edi +cmpl $0,ErrCnt(,%edi,4) +je .LC767 +movl -1648(%ebp),%edi +leal (,%edi,4),%edi +pushl ErrCnt(%edi) +pushl msg.758(%edi) +pushl $.LC769 +call printf +addl $12,%esp +.LC767: +.LC764: +incl -1648(%ebp) +cmpl $4,-1648(%ebp) +jl .LC763 +pushl $.LC45 +call printf +addl $4,%esp +movl ErrCnt,%edi +movl ErrCnt+4,%esi +leal (%esi,%edi),%edi +movl ErrCnt+8,%esi +leal (%esi,%edi),%edi +movl ErrCnt+12,%esi +leal (%esi,%edi),%edi +cmpl $0,%edi +jle .LC770 +movl ErrCnt,%edi +movl ErrCnt+4,%esi +leal (%esi,%edi),%edi +movl ErrCnt+8,%esi +leal (%esi,%edi),%edi +cmpl $0,%edi +jne .LC775 +cmpl $0,ErrCnt+12 +jle .LC775 +pushl $.LC780 +call printf +addl $4,%esp +pushl $.LC781 +call printf +addl $4,%esp +.LC775: +movl ErrCnt,%edi +movl ErrCnt+4,%esi +leal (%esi,%edi),%edi +cmpl $0,%edi +jne .LC782 +cmpl $0,ErrCnt+8 +jle .LC782 +pushl $.LC786 +call printf +addl $4,%esp +pushl $.LC787 +call printf +addl $4,%esp +.LC782: +movl ErrCnt,%edi +movl ErrCnt+4,%esi +leal (%esi,%edi),%edi +cmpl $0,%edi +jle .LC788 +pushl $.LC791 +call printf +addl $4,%esp +pushl $.LC792 +call printf +addl $4,%esp +.LC788: +cmpl $0,ErrCnt +jle .LC771 +pushl $.LC795 +call printf +addl $4,%esp +pushl $.LC796 +call printf +addl $4,%esp +jmp .LC771 +.LC770: +pushl $.LC797 +call printf +addl $4,%esp +cmpl $1,RMult +jne .LC802 +cmpl $1,RDiv +jne .LC802 +cmpl $1,RAddSub +jne .LC802 +cmpl $1,RSqrt +je .LC798 +.LC802: +pushl $.LC803 +call printf +addl $4,%esp +jmp .LC799 +.LC798: +fldl One +fcompl StickyBit +fstsw %ax +sahf +ja .LC804 +fldl Radix +fsubl Two +fldl Radix +fsubl Nine +fsubl One +fmulp %st(1),%st +fldl Zero +fcompp +fstsw %ax +sahf +jne .LC804 +pushl $.LC806 +call printf +addl $4,%esp +pushl $.LC807 +call printf +addl $4,%esp +fldl Two +fcompl Radix +fstsw %ax +sahf +jne .LC808 +fldl Precision +fldl Four +fmull Three +fmull Two +fsubp %st(1),%st +fldl Precision +fsubl TwentySeven +fsubl TwentySeven +faddl One +fmulp %st(1),%st +fldl Zero +fcompp +fstsw %ax +sahf +jne .LC808 +pushl $.LC810 +call printf +addl $4,%esp +jmp .LC809 +.LC808: +pushl $.LC811 +call printf +addl $4,%esp +.LC809: +cmpl $0,IEEE +je .LC812 +pushl $.LC814 +call printf +addl $4,%esp +jmp .LC813 +.LC812: +pushl $.LC815 +call printf +addl $4,%esp +pushl $.LC816 +call printf +addl $4,%esp +.LC813: +.LC804: +pushl $.LC817 +call printf +addl $4,%esp +.LC799: +.LC771: +cmpl $0,fpecount +je .LC818 +pushl fpecount +pushl $.LC820 +call printf +addl $8,%esp +.LC818: +pushl $.LC821 +call printf +addl $4,%esp +movl $0,%eax +.LC7: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf822: +.size main,.Lf822-main +.globl Sign +.align 16 +.type Sign,@function +Sign: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $8,%esp +fldl .LC8 +fcompl 20(%ebp) +fstsw %ax +sahf +ja .LC825 +fldl .LC9 +fstpl -8(%ebp) +jmp .LC826 +.LC825: +fldl .LC827 +fstpl -8(%ebp) +.LC826: +fldl -8(%ebp) +.LC823: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf828: +.size Sign,.Lf828-Sign +.globl Pause +.align 16 +.type Pause,@function +Pause: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +pushl Milestone +pushl $.LC830 +call printf +addl $8,%esp +pushl PageNo +pushl $.LC831 +call printf +addl $8,%esp +incl Milestone +incl PageNo +movl $0,%eax +.LC829: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf832: +.size Pause,.Lf832-Pause +.globl TstCond +.align 16 +.type TstCond,@function +TstCond: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +cmpl $0,24(%ebp) +jne .LC834 +pushl 28(%ebp) +pushl 20(%ebp) +call BadCond +addl $8,%esp +pushl $.LC814 +call printf +addl $4,%esp +.LC834: +movl $0,%eax +.LC833: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf836: +.size TstCond,.Lf836-TstCond +.data +.align 4 +.type msg.838,@object +msg.838: +.long .LC839 +.long .LC840 +.long .LC841 +.long .LC842 +.size msg.838,16 +.globl BadCond +.text +.align 16 +.type BadCond,@function +BadCond: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl 20(%ebp),%edi +leal ErrCnt(,%edi,4),%edi +incl (,%edi) +pushl 24(%ebp) +movl 20(%ebp),%edi +pushl msg.838(,%edi,4) +pushl $.LC843 +call printf +addl $12,%esp +movl $0,%eax +.LC837: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf844: +.size BadCond,.Lf844-BadCond +.globl Random +.align 16 +.type Random,@function +Random: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $48,%esp +fldl Random1 +faddl Random9 +fstpl -8(%ebp) +fldl -8(%ebp) +fmull -8(%ebp) +fstpl -16(%ebp) +fldl -16(%ebp) +fmull -16(%ebp) +fstpl -16(%ebp) +fldl -8(%ebp) +fmull -16(%ebp) +fstpl -8(%ebp) +fldl -8(%ebp) +subl $8,%esp +fstpl (%esp) +call floor +addl $8,%esp +fstpl -48(%ebp) +fldl -8(%ebp) +fsubl -48(%ebp) +fstpl -16(%ebp) +fldl -16(%ebp) +fldl .LC846 +fmull -8(%ebp) +faddp %st(1),%st +fstpl Random1 +fldl Random1 +.LC845: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf847: +.size Random,.Lf847-Random +.globl SqXMinX +.align 16 +.type SqXMinX,@function +SqXMinX: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $40,%esp +fldl X +fmull BInvrse +fstpl -8(%ebp) +fldl X +fsubl -8(%ebp) +fstpl -16(%ebp) +fldl X +fmull X +subl $8,%esp +fstpl (%esp) +call sqrt +addl $8,%esp +fstpl -32(%ebp) +fldl -32(%ebp) +fsubl -8(%ebp) +fsubl -16(%ebp) +fdivl OneUlp +fstpl SqEr +fldl Zero +fcompl SqEr +fstsw %ax +sahf +je .LC849 +fldl MinSqEr +fcompl SqEr +fstsw %ax +sahf +jbe .LC851 +fldl SqEr +fstpl MinSqEr +.LC851: +fldl MaxSqEr +fcompl SqEr +fstsw %ax +sahf +jae .LC853 +fldl SqEr +fstpl MaxSqEr +.LC853: +fldl J +faddl .LC9 +fstpl J +pushl $.LC45 +pushl 20(%ebp) +call BadCond +addl $8,%esp +fldl OneUlp +fmull SqEr +subl $8,%esp +fstpl (%esp) +fldl X +subl $8,%esp +fstpl (%esp) +fldl X +fmull X +subl $8,%esp +fstpl (%esp) +pushl $.LC855 +call printf +addl $28,%esp +pushl $.LC856 +call printf +addl $4,%esp +.LC849: +movl $0,%eax +.LC848: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf857: +.size SqXMinX,.Lf857-SqXMinX +.globl NewD +.align 16 +.type NewD,@function +NewD: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $40,%esp +fldl Z1 +fmull Q +fstpl X +fldl Half +fldl X +fdivl Radix +fsubp %st(1),%st +subl $8,%esp +fstpl (%esp) +call floor +addl $8,%esp +fstpl -8(%ebp) +fldl -8(%ebp) +fmull Radix +faddl X +fstpl X +fldl X +fstpl -24(%ebp) +fldl Z +fstpl -32(%ebp) +fldl Q +fldl -24(%ebp) +fmull -32(%ebp) +fsubp %st(1),%st +fdivl Radix +fldl -24(%ebp) +fmull -24(%ebp) +fldl D +fdivl Radix +fmulp %st(1),%st +faddp %st(1),%st +fstpl Q +fldl -32(%ebp) +fldl Two +fmull -24(%ebp) +fmull D +fsubp %st(1),%st +fstpl Z +fldl Zero +fcompl Z +fstsw %ax +sahf +jb .LC859 +fldl Z +fchs +fstpl Z +fldl Z1 +fchs +fstpl Z1 +.LC859: +fldl Radix +fmull D +fstpl D +movl $0,%eax +.LC858: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf861: +.size NewD,.Lf861-NewD +.globl SR3750 +.align 16 +.type SR3750,@function +SR3750: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $64,%esp +fldl X +fsubl Radix +fldl Z2 +fsubl Radix +fcompp +fstsw %ax +sahf +ja .LC863 +fldl X +fsubl Z2 +fldl W +fsubl Z2 +fcompp +fstsw %ax +sahf +jb .LC863 +incl I +fldl X +fmull D +subl $8,%esp +fstpl (%esp) +call sqrt +addl $8,%esp +fstpl -32(%ebp) +fldl -32(%ebp) +fstpl X2 +fldl X2 +fsubl Z2 +fldl Y +fsubl Z2 +fsubp %st(1),%st +fstpl Y2 +fldl X8 +fldl Y +fsubl Half +fdivp %st(1),%st +fstpl X2 +fldl X2 +fstpl -64(%ebp) +fldl -64(%ebp) +fldl Half +fmull -64(%ebp) +fmull -64(%ebp) +fsubp %st(1),%st +fstpl X2 +fldl Y2 +faddl Half +fldl Half +fsubl X2 +faddp %st(1),%st +fstpl SqEr +fldl MinSqEr +fcompl SqEr +fstsw %ax +sahf +jbe .LC865 +fldl SqEr +fstpl MinSqEr +.LC865: +fldl Y2 +fsubl X2 +fstpl SqEr +fldl MaxSqEr +fcompl SqEr +fstsw %ax +sahf +jae .LC867 +fldl SqEr +fstpl MaxSqEr +.LC867: +.LC863: +movl $0,%eax +.LC862: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf869: +.size SR3750,.Lf869-SR3750 +.globl IsYeqX +.align 16 +.type IsYeqX,@function +IsYeqX: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $8,%esp +fldl X +fcompl Y +fstsw %ax +sahf +je .LC871 +cmpl $0,N +jg .LC873 +fldl Zero +fcompl Z +fstsw %ax +sahf +jne .LC875 +fldl Zero +fcompl Q +fstsw %ax +sahf +jb .LC875 +pushl $.LC877 +call printf +addl $4,%esp +jmp .LC876 +.LC875: +pushl $.LC878 +pushl $2 +call BadCond +addl $8,%esp +.LC876: +fldl Q +subl $8,%esp +fstpl (%esp) +fldl Z +subl $8,%esp +fstpl (%esp) +pushl $.LC879 +call printf +addl $20,%esp +fldl Y +subl $8,%esp +fstpl (%esp) +pushl $.LC880 +call printf +addl $12,%esp +fldl X +subl $8,%esp +fstpl (%esp) +pushl $.LC881 +call printf +addl $12,%esp +fldl Y +fsubl X +subl $8,%esp +fstpl (%esp) +pushl $.LC882 +call printf +addl $12,%esp +.LC873: +incl N +.LC871: +movl $0,%eax +.LC870: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf883: +.size IsYeqX,.Lf883-IsYeqX +.globl SR3980 +.align 16 +.type SR3980,@function +SR3980: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $8,%esp +.LC885: +fildl I +fstpl Q +fldl Q +subl $8,%esp +fstpl (%esp) +fldl Z +subl $8,%esp +fstpl (%esp) +call pow +addl $16,%esp +fstpl -8(%ebp) +fldl -8(%ebp) +fstpl Y +call IsYeqX +movl I,%edi +leal 1(%edi),%edi +movl %edi,I +cmpl M,%edi +jle .LC888 +jmp .LC887 +.LC888: +fldl Z +fmull X +fstpl X +.LC886: +fldl W +fcompl X +fstsw %ax +sahf +ja .LC885 +.LC887: +movl $0,%eax +.LC884: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf890: +.size SR3980,.Lf890-SR3980 +.globl PrintIfNPositive +.align 16 +.type PrintIfNPositive,@function +PrintIfNPositive: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +cmpl $0,N +jle .LC892 +pushl N +pushl $.LC894 +call printf +addl $8,%esp +.LC892: +movl $0,%eax +.LC891: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf895: +.size PrintIfNPositive,.Lf895-PrintIfNPositive +.globl TstPtUf +.align 16 +.type TstPtUf,@function +TstPtUf: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $48,%esp +movl $0,N +fldl Zero +fcompl Z +fstsw %ax +sahf +je .LC897 +pushl $.LC899 +call printf +addl $4,%esp +pushl $.LC900 +call printf +addl $4,%esp +leal sigfpe,%edi +movl %edi,sigsave +pushl $ovfl_buf +call __setjmp +addl $4,%esp +cmpl $0,%eax +je .LC901 +jmp .LC903 +.LC901: +fldl Z +faddl Z +fdivl Z +fstpl Q9 +fldl Q9 +subl $8,%esp +fstpl (%esp) +pushl $.LC904 +call printf +addl $12,%esp +fldl Q9 +fsubl Two +subl $8,%esp +fstpl (%esp) +call fabs +addl $8,%esp +fstpl -16(%ebp) +fldl Radix +fmull U2 +fcompl -16(%ebp) +fstsw %ax +sahf +jbe .LC905 +pushl $.LC907 +call printf +addl $4,%esp +pushl $.LC908 +call printf +addl $4,%esp +jmp .LC906 +.LC905: +fldl One +fcompl Q9 +fstsw %ax +sahf +ja .LC911 +fldl Two +fcompl Q9 +fstsw %ax +sahf +jae .LC909 +.LC911: +.LC903: +movl $1,N +movl ErrCnt+4,%edi +leal 1(%edi),%edi +movl %edi,ErrCnt+4 +pushl $.LC914 +call printf +addl $4,%esp +jmp .LC910 +.LC909: +movl $1,N +movl ErrCnt+8,%edi +leal 1(%edi),%edi +movl %edi,ErrCnt+8 +pushl $.LC917 +call printf +addl $4,%esp +.LC910: +.LC906: +movl $0,sigsave +fldl Z +fmull One +fstpl V9 +fldl V9 +fstpl Random1 +fldl One +fmull Z +fstpl V9 +fldl V9 +fstpl Random2 +fldl Z +fdivl One +fstpl V9 +fldl Random1 +fcompl Z +fstsw %ax +sahf +jne .LC918 +fldl Random2 +fcompl Z +fstsw %ax +sahf +jne .LC918 +fldl V9 +fcompl Z +fstsw %ax +sahf +jne .LC918 +cmpl $0,N +jle .LC919 +call Pause +jmp .LC919 +.LC918: +movl $1,N +pushl $.LC922 +pushl $2 +call BadCond +addl $8,%esp +fldl Z +subl $8,%esp +fstpl (%esp) +pushl $.LC923 +call printf +addl $12,%esp +fldl Random1 +fcompl Z +fstsw %ax +sahf +je .LC924 +fldl Random1 +subl $8,%esp +fstpl (%esp) +pushl $.LC926 +call printf +addl $12,%esp +.LC924: +fldl Random2 +fcompl Z +fstsw %ax +sahf +je .LC927 +fldl Random1 +fcompl Random2 +fstsw %ax +sahf +je .LC927 +fldl Random2 +subl $8,%esp +fstpl (%esp) +pushl $.LC929 +call printf +addl $12,%esp +.LC927: +fldl V9 +fcompl Z +fstsw %ax +sahf +je .LC930 +fldl V9 +subl $8,%esp +fstpl (%esp) +pushl $.LC932 +call printf +addl $12,%esp +.LC930: +fldl Random1 +fcompl Random2 +fstsw %ax +sahf +je .LC933 +movl ErrCnt+8,%edi +leal 1(%edi),%edi +movl %edi,ErrCnt+8 +pushl $.LC937 +pushl $2 +call BadCond +addl $8,%esp +fldl Random2 +subl $8,%esp +fstpl (%esp) +pushl $.LC938 +call printf +addl $12,%esp +fldl Random1 +subl $8,%esp +fstpl (%esp) +pushl $.LC939 +call printf +addl $12,%esp +.LC933: +call Pause +.LC919: +.LC897: +movl $0,%eax +.LC896: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf940: +.size TstPtUf,.Lf940-TstPtUf +.globl notify +.align 16 +.type notify,@function +notify: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +pushl 20(%ebp) +pushl $.LC942 +call printf +addl $8,%esp +pushl $.LC943 +call printf +addl $4,%esp +movl $0,%eax +.LC941: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf944: +.size notify,.Lf944-notify +.globl msglist +.align 16 +.type msglist,@function +msglist: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +jmp .LC947 +.LC946: +movl 20(%ebp),%edi +leal 4(%edi),%esi +movl %esi,20(%ebp) +pushl (,%edi) +pushl $.LC949 +call printf +addl $8,%esp +.LC947: +movl 20(%ebp),%edi +movl (,%edi),%edi +cmpl $0,%edi +jne .LC946 +movl $0,%eax +.LC945: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf950: +.size msglist,.Lf950-msglist +.data +.align 4 +.type instr.952,@object +instr.952: +.long .LC953 +.long .LC954 +.long .LC955 +.long .LC956 +.long .LC957 +.long .LC958 +.long .LC959 +.long .LC960 +.long .LC961 +.long 0 +.size instr.952,40 +.globl Instructions +.text +.align 16 +.type Instructions,@function +Instructions: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +pushl $instr.952 +call msglist +addl $4,%esp +movl $0,%eax +.LC951: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf962: +.size Instructions,.Lf962-Instructions +.data +.align 4 +.type head.964,@object +head.964: +.long .LC965 +.long .LC966 +.long .LC967 +.long .LC968 +.long .LC969 +.long .LC970 +.long .LC971 +.long .LC972 +.long .LC973 +.long .LC974 +.long .LC975 +.long .LC976 +.long .LC977 +.long .LC978 +.long 0 +.size head.964,60 +.globl Heading +.text +.align 16 +.type Heading,@function +Heading: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +pushl $head.964 +call msglist +addl $4,%esp +movl $0,%eax +.LC963: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf979: +.size Heading,.Lf979-Heading +.data +.align 4 +.type chars.981,@object +chars.981: +.long .LC982 +.long .LC983 +.long .LC984 +.long .LC985 +.long .LC986 +.long .LC987 +.long .LC988 +.long .LC989 +.long .LC990 +.long .LC991 +.long .LC992 +.long .LC993 +.long .LC994 +.long .LC995 +.long .LC996 +.long .LC997 +.long .LC998 +.long .LC999 +.long .LC1000 +.long 0 +.size chars.981,80 +.globl Characteristics +.text +.align 16 +.type Characteristics,@function +Characteristics: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +pushl $chars.981 +call msglist +addl $4,%esp +movl $0,%eax +.LC980: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf1001: +.size Characteristics,.Lf1001-Characteristics +.data +.align 4 +.type hist.1003,@object +hist.1003: +.long .LC1004 +.long .LC1005 +.long .LC1006 +.long .LC1007 +.long .LC1008 +.long .LC1009 +.long .LC1010 +.long .LC1011 +.long .LC1012 +.long .LC1013 +.long .LC1014 +.long .LC1015 +.long .LC1016 +.long .LC1017 +.long .LC1018 +.long .LC1019 +.long .LC1020 +.long 0 +.size hist.1003,72 +.globl History +.text +.align 16 +.type History,@function +History: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +pushl $hist.1003 +call msglist +addl $4,%esp +movl $0,%eax +.LC1002: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf1021: +.size History,.Lf1021-History +.globl pow +.align 16 +.type pow,@function +pow: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $96,%esp +movl $0,-20(%ebp) +movl $0,-24(%ebp) +fldl .LC8 +fcompl 28(%ebp) +fstsw %ax +sahf +jne .LC1023 +fldl .LC9 +jmp .LC1022 +.LC1023: +fldl .LC1028 +fcompl 28(%ebp) +fstsw %ax +sahf +ja .LC1027 +fldl .LC1029 +fcompl 28(%ebp) +fstsw %ax +sahf +jae .LC1025 +.LC1027: +fldl .LC827 +fcompl 20(%ebp) +fstsw %ax +sahf +je .LC1025 +fldl 20(%ebp) +subl $8,%esp +fstpl (%esp) +call log +addl $8,%esp +fstpl -48(%ebp) +fldl 28(%ebp) +fmull -48(%ebp) +subl $8,%esp +fstpl (%esp) +call exp +addl $8,%esp +fstpl -56(%ebp) +fldl -56(%ebp) +jmp .LC1022 +.LC1025: +fldl .LC8 +fcompl 28(%ebp) +fstsw %ax +sahf +jbe .LC1030 +fldl 28(%ebp) +fchs +fstpl 28(%ebp) +movl $1,-24(%ebp) +.LC1030: +leal -32(%ebp),%edi +pushl %edi +fldl 28(%ebp) +subl $8,%esp +fstpl (%esp) +call modf +addl $12,%esp +fstpl -64(%ebp) +fldl -64(%ebp) +fstpl 28(%ebp) +fldl .LC8 +fcompl 28(%ebp) +fstsw %ax +sahf +je .LC1032 +fldl 20(%ebp) +subl $8,%esp +fstpl (%esp) +call log +addl $8,%esp +fstpl -72(%ebp) +fldl 28(%ebp) +fmull -72(%ebp) +subl $8,%esp +fstpl (%esp) +call exp +addl $8,%esp +fstpl -80(%ebp) +fldl -80(%ebp) +fstpl -16(%ebp) +jmp .LC1033 +.LC1032: +fldl .LC9 +fstpl -16(%ebp) +.LC1033: +leal -8(%ebp),%edi +pushl %edi +fldl 20(%ebp) +subl $8,%esp +fstpl (%esp) +call frexp +addl $12,%esp +fstpl -88(%ebp) +fldl -88(%ebp) +fstpl 20(%ebp) +fldl -32(%ebp) +subl $4,%esp +fistpl 0(%esp) +popl %eax +movl %eax,-4(%ebp) +cmpl $0,%eax +je .LC1034 +.LC1036: +movl -4(%ebp),%edi +andl $1,%edi +cmpl $0,%edi +je .LC1040 +fldl -16(%ebp) +fmull 20(%ebp) +fstpl -16(%ebp) +movl -8(%ebp),%edi +addl %edi,-20(%ebp) +.LC1040: +movl -4(%ebp),%edi +sarl $1,%edi +movl %edi,-4(%ebp) +cmpl $0,%edi +jne .LC1042 +jmp .LC1038 +.LC1042: +fldl 20(%ebp) +fmull 20(%ebp) +fstpl 20(%ebp) +sall $1,-8(%ebp) +fldl .LC1046 +fcompl 20(%ebp) +fstsw %ax +sahf +jbe .LC1036 +fldl .LC1047 +fmull 20(%ebp) +fstpl 20(%ebp) +decl -8(%ebp) +jmp .LC1036 +.LC1038: +.LC1034: +cmpl $0,-24(%ebp) +je .LC1048 +fldl .LC9 +fdivl -16(%ebp) +fstpl -16(%ebp) +negl -20(%ebp) +.LC1048: +pushl -20(%ebp) +fldl -16(%ebp) +subl $8,%esp +fstpl (%esp) +call ldexp +addl $12,%esp +fstpl -96(%ebp) +fldl -96(%ebp) +.LC1022: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf1050: +.size pow,.Lf1050-pow +.bss +.globl UfNGrad +.align 4 +.type UfNGrad,@object +.size UfNGrad,4 +.comm UfNGrad,4 +.globl SqRWrng +.align 4 +.type SqRWrng,@object +.size SqRWrng,4 +.comm SqRWrng,4 +.globl IEEE +.align 4 +.type IEEE,@object +.size IEEE,4 +.comm IEEE,4 +.globl Anomaly +.align 4 +.type Anomaly,@object +.size Anomaly,4 +.comm Anomaly,4 +.globl Monot +.align 4 +.type Monot,@object +.size Monot,4 +.comm Monot,4 +.globl NotMonot +.align 4 +.type NotMonot,@object +.size NotMonot,4 +.comm NotMonot,4 +.globl Done +.align 4 +.type Done,@object +.size Done,4 +.comm Done,4 +.globl Break +.align 4 +.type Break,@object +.size Break,4 +.comm Break,4 +.globl RSqrt +.align 4 +.type RSqrt,@object +.size RSqrt,4 +.comm RSqrt,4 +.globl RAddSub +.align 4 +.type RAddSub,@object +.size RAddSub,4 +.comm RAddSub,4 +.globl RDiv +.align 4 +.type RDiv,@object +.size RDiv,4 +.comm RDiv,4 +.globl RMult +.align 4 +.type RMult,@object +.size RMult,4 +.comm RMult,4 +.globl GAddSub +.align 4 +.type GAddSub,@object +.size GAddSub,4 +.comm GAddSub,4 +.globl GDiv +.align 4 +.type GDiv,@object +.size GDiv,4 +.comm GDiv,4 +.globl GMult +.align 4 +.type GMult,@object +.size GMult,4 +.comm GMult,4 +.globl N1 +.align 4 +.type N1,@object +.size N1,4 +.comm N1,4 +.globl N +.align 4 +.type N,@object +.size N,4 +.comm N,4 +.globl M +.align 4 +.type M,@object +.size M,4 +.comm M,4 +.globl PageNo +.align 4 +.type PageNo,@object +.size PageNo,4 +.comm PageNo,4 +.globl Milestone +.align 4 +.type Milestone,@object +.size Milestone,4 +.comm Milestone,4 +.globl fpecount +.align 4 +.type fpecount,@object +.size fpecount,4 +.comm fpecount,4 +.globl ErrCnt +.align 4 +.type ErrCnt,@object +.size ErrCnt,16 +.comm ErrCnt,16 +.globl Z9 +.align 4 +.type Z9,@object +.size Z9,8 +.comm Z9,8 +.globl Z2 +.align 4 +.type Z2,@object +.size Z2,8 +.comm Z2,8 +.globl Z1 +.align 4 +.type Z1,@object +.size Z1,8 +.comm Z1,8 +.globl PseudoZero +.align 4 +.type PseudoZero,@object +.size PseudoZero,8 +.comm PseudoZero,8 +.globl Z +.align 4 +.type Z,@object +.size Z,8 +.comm Z,8 +.globl Random2 +.align 4 +.type Random2,@object +.size Random2,8 +.comm Random2,8 +.globl Y2 +.align 4 +.type Y2,@object +.size Y2,8 +.comm Y2,8 +.globl Y1 +.align 4 +.type Y1,@object +.size Y1,8 +.comm Y1,8 +.globl Y +.align 4 +.type Y,@object +.size Y,8 +.comm Y,8 +.globl Random1 +.align 4 +.type Random1,@object +.size Random1,8 +.comm Random1,8 +.globl X8 +.align 4 +.type X8,@object +.size X8,8 +.comm X8,8 +.globl X2 +.align 4 +.type X2,@object +.size X2,8 +.comm X2,8 +.globl X1 +.align 4 +.type X1,@object +.size X1,8 +.comm X1,8 +.globl X +.align 4 +.type X,@object +.size X,8 +.comm X,8 +.globl W +.align 4 +.type W,@object +.size W,8 +.comm W,8 +.globl V9 +.align 4 +.type V9,@object +.size V9,8 +.comm V9,8 +.globl V0 +.align 4 +.type V0,@object +.size V0,8 +.comm V0,8 +.globl V +.align 4 +.type V,@object +.size V,8 +.comm V,8 +.globl U2 +.align 4 +.type U2,@object +.size U2,8 +.comm U2,8 +.globl U1 +.align 4 +.type U1,@object +.size U1,8 +.comm U1,8 +.globl UfThold +.align 4 +.type UfThold,@object +.size UfThold,8 +.comm UfThold,8 +.globl OneUlp +.align 4 +.type OneUlp,@object +.size OneUlp,8 +.comm OneUlp,8 +.globl S +.align 4 +.type S,@object +.size S,8 +.comm S,8 +.globl Underflow +.align 4 +.type Underflow,@object +.size Underflow,8 +.comm Underflow,8 +.globl T +.align 4 +.type T,@object +.size T,8 +.comm T,8 +.globl Random9 +.align 4 +.type Random9,@object +.size Random9,8 +.comm Random9,8 +.globl R +.align 4 +.type R,@object +.size R,8 +.comm R,8 +.globl Q9 +.align 4 +.type Q9,@object +.size Q9,8 +.comm Q9,8 +.globl Q +.align 4 +.type Q,@object +.size Q,8 +.comm Q,8 +.globl Precision +.align 4 +.type Precision,@object +.size Precision,8 +.comm Precision,8 +.globl MyZero +.align 4 +.type MyZero,@object +.size MyZero,8 +.comm MyZero,8 +.globl J +.align 4 +.type J,@object +.size J,8 +.comm J,8 +.globl StickyBit +.align 4 +.type StickyBit,@object +.size StickyBit,8 +.comm StickyBit,8 +.globl I +.align 4 +.type I,@object +.size I,4 +.comm I,4 +.globl HInvrse +.align 4 +.type HInvrse,@object +.size HInvrse,8 +.comm HInvrse,8 +.globl H +.align 4 +.type H,@object +.size H,8 +.comm H,8 +.globl F9 +.align 4 +.type F9,@object +.size F9,8 +.comm F9,8 +.globl F6 +.align 4 +.type F6,@object +.size F6,8 +.comm F6,8 +.globl Third +.align 4 +.type Third,@object +.size Third,8 +.comm Third,8 +.globl E9 +.align 4 +.type E9,@object +.size E9,8 +.comm E9,8 +.globl MaxSqEr +.align 4 +.type MaxSqEr,@object +.size MaxSqEr,8 +.comm MaxSqEr,8 +.globl SqEr +.align 4 +.type SqEr,@object +.size SqEr,8 +.comm SqEr,8 +.globl MinSqEr +.align 4 +.type MinSqEr,@object +.size MinSqEr,8 +.comm MinSqEr,8 +.globl E3 +.align 4 +.type E3,@object +.size E3,8 +.comm E3,8 +.globl Exp2 +.align 4 +.type Exp2,@object +.size Exp2,8 +.comm Exp2,8 +.globl E1 +.align 4 +.type E1,@object +.size E1,8 +.comm E1,8 +.globl E0 +.align 4 +.type E0,@object +.size E0,8 +.comm E0,8 +.globl FourD +.align 4 +.type FourD,@object +.size FourD,8 +.comm FourD,8 +.globl D +.align 4 +.type D,@object +.size D,8 +.comm D,8 +.globl CInvrse +.align 4 +.type CInvrse,@object +.size CInvrse,8 +.comm CInvrse,8 +.globl C +.align 4 +.type C,@object +.size C,8 +.comm C,8 +.globl A1 +.align 4 +.type A1,@object +.size A1,8 +.comm A1,8 +.globl AInvrse +.align 4 +.type AInvrse,@object +.size AInvrse,8 +.comm AInvrse,8 +.globl ch +.align 1 +.type ch,@object +.size ch,8 +.comm ch,8 +.globl Indx +.align 4 +.type Indx,@object +.size Indx,4 +.comm Indx,4 +.globl BMinusU2 +.align 4 +.type BMinusU2,@object +.size BMinusU2,8 +.comm BMinusU2,8 +.globl RadixD2 +.align 4 +.type RadixD2,@object +.size RadixD2,8 +.comm RadixD2,8 +.globl BInvrse +.align 4 +.type BInvrse,@object +.size BInvrse,8 +.comm BInvrse,8 +.globl Radix +.align 4 +.type Radix,@object +.size Radix,8 +.comm Radix,8 +.globl sigsave +.align 4 +.type sigsave,@object +.size sigsave,4 +.comm sigsave,4 +.globl ovfl_buf +.align 4 +.type ovfl_buf,@object +.size ovfl_buf,24 +.comm ovfl_buf,24 +.data +.align 4 +.LC1047: +.long 0 +.long 1073741824 +.align 4 +.LC1046: +.long 0 +.long 1071644672 +.align 4 +.LC1029: +.long 0 +.long 1083256832 +.align 4 +.LC1028: +.long 0 +.long -1064226816 +.align 1 +.LC1020: +.byte 115 +.byte 101 +.byte 101 +.byte 32 +.byte 115 +.byte 111 +.byte 117 +.byte 114 +.byte 99 +.byte 101 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 109 +.byte 101 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 109 +.byte 111 +.byte 114 +.byte 101 +.byte 32 +.byte 104 +.byte 105 +.byte 115 +.byte 116 +.byte 111 +.byte 114 +.byte 121 +.byte 46 +.byte 0 +.align 1 +.LC1019: +.byte 66 +.byte 65 +.byte 83 +.byte 73 +.byte 67 +.byte 32 +.byte 118 +.byte 101 +.byte 114 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 40 +.byte 67 +.byte 41 +.byte 32 +.byte 49 +.byte 57 +.byte 56 +.byte 51 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 80 +.byte 114 +.byte 111 +.byte 102 +.byte 46 +.byte 32 +.byte 87 +.byte 46 +.byte 32 +.byte 77 +.byte 46 +.byte 32 +.byte 75 +.byte 97 +.byte 104 +.byte 97 +.byte 110 +.byte 59 +.byte 0 +.align 1 +.LC1018: +.byte 97 +.byte 115 +.byte 32 +.byte 117 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 99 +.byte 101 +.byte 114 +.byte 116 +.byte 97 +.byte 105 +.byte 110 +.byte 32 +.byte 101 +.byte 97 +.byte 114 +.byte 108 +.byte 121 +.byte 32 +.byte 87 +.byte 65 +.byte 78 +.byte 71 +.byte 32 +.byte 109 +.byte 97 +.byte 99 +.byte 104 +.byte 105 +.byte 110 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC1017: +.byte 102 +.byte 108 +.byte 111 +.byte 97 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 45 +.byte 112 +.byte 111 +.byte 105 +.byte 110 +.byte 116 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 115 +.byte 44 +.byte 32 +.byte 98 +.byte 117 +.byte 116 +.byte 32 +.byte 97 +.byte 108 +.byte 115 +.byte 111 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 111 +.byte 119 +.byte 115 +.byte 32 +.byte 108 +.byte 111 +.byte 103 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 105 +.byte 99 +.byte 32 +.byte 101 +.byte 110 +.byte 99 +.byte 111 +.byte 100 +.byte 105 +.byte 110 +.byte 103 +.byte 0 +.align 1 +.LC1016: +.byte 10 +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 98 +.byte 97 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 117 +.byte 112 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 118 +.byte 101 +.byte 110 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 97 +.byte 108 +.byte 32 +.byte 114 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 114 +.byte 101 +.byte 112 +.byte 114 +.byte 101 +.byte 115 +.byte 101 +.byte 110 +.byte 116 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 0 +.align 1 +.LC1015: +.byte 111 +.byte 102 +.byte 32 +.byte 112 +.byte 97 +.byte 116 +.byte 104 +.byte 111 +.byte 108 +.byte 111 +.byte 103 +.byte 105 +.byte 101 +.byte 115 +.byte 44 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 115 +.byte 97 +.byte 121 +.byte 32 +.byte 104 +.byte 111 +.byte 119 +.byte 32 +.byte 119 +.byte 101 +.byte 108 +.byte 108 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 105 +.byte 109 +.byte 112 +.byte 108 +.byte 101 +.byte 109 +.byte 101 +.byte 110 +.byte 116 +.byte 101 +.byte 100 +.byte 46 +.byte 0 +.align 1 +.LC1014: +.byte 111 +.byte 102 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 44 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 116 +.byte 114 +.byte 105 +.byte 101 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 99 +.byte 111 +.byte 112 +.byte 101 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 97 +.byte 32 +.byte 119 +.byte 105 +.byte 100 +.byte 101 +.byte 114 +.byte 32 +.byte 118 +.byte 97 +.byte 114 +.byte 105 +.byte 101 +.byte 116 +.byte 121 +.byte 0 +.align 1 +.LC1013: +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 44 +.byte 32 +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 114 +.byte 97 +.byte 110 +.byte 103 +.byte 101 +.byte 32 +.byte 40 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 47 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 115 +.byte 41 +.byte 0 +.align 1 +.LC1012: +.byte 87 +.byte 46 +.byte 32 +.byte 74 +.byte 46 +.byte 32 +.byte 67 +.byte 111 +.byte 100 +.byte 121 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 87 +.byte 46 +.byte 32 +.byte 87 +.byte 97 +.byte 105 +.byte 116 +.byte 101 +.byte 46 +.byte 32 +.byte 65 +.byte 108 +.byte 116 +.byte 104 +.byte 111 +.byte 117 +.byte 103 +.byte 104 +.byte 32 +.byte 98 +.byte 111 +.byte 116 +.byte 104 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 115 +.byte 32 +.byte 116 +.byte 114 +.byte 121 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 0 +.align 1 +.LC1011: +.byte 98 +.byte 111 +.byte 111 +.byte 107 +.byte 32 +.byte 32 +.byte 96 +.byte 83 +.byte 111 +.byte 102 +.byte 116 +.byte 119 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 77 +.byte 97 +.byte 110 +.byte 117 +.byte 97 +.byte 108 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 69 +.byte 108 +.byte 101 +.byte 109 +.byte 101 +.byte 110 +.byte 116 +.byte 97 +.byte 114 +.byte 121 +.byte 32 +.byte 70 +.byte 117 +.byte 110 +.byte 99 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 39 +.byte 32 +.byte 40 +.byte 49 +.byte 57 +.byte 56 +.byte 48 +.byte 41 +.byte 32 +.byte 98 +.byte 121 +.byte 0 +.align 1 +.LC1010: +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 99 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 100 +.byte 32 +.byte 96 +.byte 77 +.byte 65 +.byte 67 +.byte 72 +.byte 65 +.byte 82 +.byte 39 +.byte 44 +.byte 32 +.byte 119 +.byte 104 +.byte 105 +.byte 99 +.byte 104 +.byte 32 +.byte 99 +.byte 97 +.byte 110 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 102 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 97 +.byte 116 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 101 +.byte 110 +.byte 100 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 0 +.align 1 +.LC1009: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 100 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 99 +.byte 97 +.byte 112 +.byte 97 +.byte 98 +.byte 105 +.byte 108 +.byte 105 +.byte 116 +.byte 105 +.byte 101 +.byte 115 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 103 +.byte 111 +.byte 32 +.byte 98 +.byte 101 +.byte 121 +.byte 111 +.byte 110 +.byte 100 +.byte 32 +.byte 97 +.byte 110 +.byte 32 +.byte 101 +.byte 97 +.byte 114 +.byte 108 +.byte 105 +.byte 101 +.byte 114 +.byte 0 +.align 1 +.LC1008: +.byte 70 +.byte 97 +.byte 105 +.byte 108 +.byte 117 +.byte 114 +.byte 101 +.byte 115 +.byte 32 +.byte 109 +.byte 97 +.byte 121 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 102 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 115 +.byte 117 +.byte 98 +.byte 115 +.byte 101 +.byte 113 +.byte 117 +.byte 101 +.byte 110 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC1007: +.byte 32 +.byte 32 +.byte 32 +.byte 70 +.byte 65 +.byte 73 +.byte 76 +.byte 85 +.byte 82 +.byte 69 +.byte 115 +.byte 44 +.byte 32 +.byte 108 +.byte 105 +.byte 107 +.byte 101 +.byte 32 +.byte 50 +.byte 43 +.byte 50 +.byte 32 +.byte 61 +.byte 61 +.byte 32 +.byte 53 +.byte 32 +.byte 46 +.byte 0 +.align 1 +.LC1006: +.byte 32 +.byte 32 +.byte 32 +.byte 83 +.byte 101 +.byte 114 +.byte 105 +.byte 111 +.byte 117 +.byte 115 +.byte 32 +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 115 +.byte 44 +.byte 32 +.byte 108 +.byte 105 +.byte 107 +.byte 101 +.byte 32 +.byte 108 +.byte 97 +.byte 99 +.byte 107 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 97 +.byte 32 +.byte 103 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 44 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 0 +.align 1 +.LC1005: +.byte 32 +.byte 32 +.byte 32 +.byte 70 +.byte 76 +.byte 65 +.byte 87 +.byte 115 +.byte 44 +.byte 32 +.byte 108 +.byte 105 +.byte 107 +.byte 101 +.byte 32 +.byte 108 +.byte 97 +.byte 99 +.byte 107 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 97 +.byte 32 +.byte 115 +.byte 116 +.byte 105 +.byte 99 +.byte 107 +.byte 121 +.byte 32 +.byte 98 +.byte 105 +.byte 116 +.byte 44 +.byte 0 +.align 1 +.LC1004: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 97 +.byte 116 +.byte 116 +.byte 101 +.byte 109 +.byte 112 +.byte 116 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 114 +.byte 105 +.byte 109 +.byte 105 +.byte 110 +.byte 97 +.byte 116 +.byte 101 +.byte 32 +.byte 97 +.byte 109 +.byte 111 +.byte 110 +.byte 103 +.byte 0 +.align 1 +.LC1000: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 68 +.byte 101 +.byte 99 +.byte 105 +.byte 109 +.byte 97 +.byte 108 +.byte 45 +.byte 66 +.byte 105 +.byte 110 +.byte 97 +.byte 114 +.byte 121 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 118 +.byte 101 +.byte 114 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 78 +.byte 79 +.byte 84 +.byte 32 +.byte 89 +.byte 69 +.byte 84 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 97 +.byte 99 +.byte 99 +.byte 117 +.byte 114 +.byte 97 +.byte 99 +.byte 121 +.byte 46 +.byte 0 +.align 1 +.LC999: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 69 +.byte 120 +.byte 116 +.byte 114 +.byte 97 +.byte 45 +.byte 112 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 101 +.byte 32 +.byte 115 +.byte 117 +.byte 98 +.byte 101 +.byte 120 +.byte 112 +.byte 114 +.byte 101 +.byte 115 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 114 +.byte 101 +.byte 118 +.byte 101 +.byte 97 +.byte 108 +.byte 101 +.byte 100 +.byte 32 +.byte 98 +.byte 117 +.byte 116 +.byte 32 +.byte 78 +.byte 79 +.byte 84 +.byte 32 +.byte 89 +.byte 69 +.byte 84 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 101 +.byte 100 +.byte 46 +.byte 0 +.align 1 +.LC998: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 83 +.byte 113 +.byte 114 +.byte 116 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 101 +.byte 100 +.byte 46 +.byte 32 +.byte 32 +.byte 89 +.byte 94 +.byte 88 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 101 +.byte 100 +.byte 46 +.byte 0 +.align 1 +.LC997: +.byte 9 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 116 +.byte 97 +.byte 109 +.byte 105 +.byte 110 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 112 +.byte 115 +.byte 101 +.byte 117 +.byte 100 +.byte 111 +.byte 45 +.byte 122 +.byte 101 +.byte 114 +.byte 111 +.byte 115 +.byte 46 +.byte 0 +.align 1 +.LC996: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 99 +.byte 104 +.byte 101 +.byte 99 +.byte 107 +.byte 101 +.byte 100 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 115 +.byte 105 +.byte 115 +.byte 116 +.byte 101 +.byte 110 +.byte 99 +.byte 121 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 115 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 0 +.align 1 +.LC995: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 86 +.byte 48 +.byte 32 +.byte 32 +.byte 116 +.byte 101 +.byte 108 +.byte 108 +.byte 115 +.byte 44 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 103 +.byte 104 +.byte 108 +.byte 121 +.byte 44 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 32 +.byte 73 +.byte 110 +.byte 102 +.byte 105 +.byte 110 +.byte 105 +.byte 116 +.byte 121 +.byte 32 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 114 +.byte 101 +.byte 112 +.byte 114 +.byte 101 +.byte 115 +.byte 101 +.byte 110 +.byte 116 +.byte 101 +.byte 100 +.byte 46 +.byte 0 +.align 1 +.LC994: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 86 +.byte 32 +.byte 61 +.byte 32 +.byte 97 +.byte 110 +.byte 32 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 44 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 103 +.byte 104 +.byte 108 +.byte 121 +.byte 46 +.byte 0 +.align 1 +.LC993: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 69 +.byte 48 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 80 +.byte 115 +.byte 101 +.byte 117 +.byte 100 +.byte 111 +.byte 90 +.byte 101 +.byte 114 +.byte 111 +.byte 32 +.byte 116 +.byte 101 +.byte 108 +.byte 108 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 97 +.byte 98 +.byte 114 +.byte 117 +.byte 112 +.byte 116 +.byte 44 +.byte 32 +.byte 103 +.byte 114 +.byte 97 +.byte 100 +.byte 117 +.byte 97 +.byte 108 +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 102 +.byte 117 +.byte 122 +.byte 122 +.byte 121 +.byte 46 +.byte 0 +.align 1 +.LC992: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 84 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 61 +.byte 32 +.byte 97 +.byte 110 +.byte 32 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 46 +.byte 0 +.align 1 +.LC991: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 87 +.byte 104 +.byte 101 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 97 +.byte 32 +.byte 83 +.byte 116 +.byte 105 +.byte 99 +.byte 107 +.byte 121 +.byte 32 +.byte 66 +.byte 105 +.byte 116 +.byte 32 +.byte 117 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 105 +.byte 110 +.byte 103 +.byte 46 +.byte 0 +.align 1 +.LC990: +.byte 9 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 77 +.byte 117 +.byte 108 +.byte 116 +.byte 46 +.byte 44 +.byte 32 +.byte 68 +.byte 105 +.byte 118 +.byte 46 +.byte 44 +.byte 32 +.byte 65 +.byte 100 +.byte 100 +.byte 47 +.byte 83 +.byte 117 +.byte 98 +.byte 116 +.byte 46 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 83 +.byte 113 +.byte 114 +.byte 116 +.byte 46 +.byte 0 +.align 1 +.LC989: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 87 +.byte 104 +.byte 101 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 112 +.byte 101 +.byte 100 +.byte 44 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 100 +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 115 +.byte 111 +.byte 109 +.byte 101 +.byte 116 +.byte 104 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 101 +.byte 108 +.byte 115 +.byte 101 +.byte 0 +.align 1 +.LC988: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 65 +.byte 100 +.byte 101 +.byte 113 +.byte 117 +.byte 97 +.byte 99 +.byte 121 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 103 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 77 +.byte 117 +.byte 108 +.byte 116 +.byte 46 +.byte 44 +.byte 32 +.byte 68 +.byte 105 +.byte 118 +.byte 46 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 83 +.byte 117 +.byte 98 +.byte 116 +.byte 46 +.byte 0 +.align 1 +.LC987: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 85 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 49 +.byte 47 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 94 +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 61 +.byte 32 +.byte 79 +.byte 110 +.byte 101 +.byte 32 +.byte 85 +.byte 108 +.byte 112 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 108 +.byte 105 +.byte 116 +.byte 116 +.byte 108 +.byte 101 +.byte 32 +.byte 108 +.byte 101 +.byte 115 +.byte 115 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 110 +.byte 32 +.byte 49 +.byte 46 +.byte 48 +.byte 32 +.byte 46 +.byte 0 +.align 1 +.LC986: +.byte 9 +.byte 40 +.byte 79 +.byte 110 +.byte 101 +.byte 85 +.byte 108 +.byte 112 +.byte 110 +.byte 105 +.byte 116 +.byte 32 +.byte 105 +.byte 110 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 76 +.byte 97 +.byte 115 +.byte 116 +.byte 32 +.byte 80 +.byte 108 +.byte 97 +.byte 99 +.byte 101 +.byte 41 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 49 +.byte 46 +.byte 48 +.byte 48 +.byte 48 +.byte 120 +.byte 120 +.byte 120 +.byte 32 +.byte 46 +.byte 0 +.align 1 +.LC985: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 85 +.byte 50 +.byte 32 +.byte 61 +.byte 32 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 47 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 94 +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 61 +.byte 32 +.byte 79 +.byte 110 +.byte 101 +.byte 32 +.byte 85 +.byte 108 +.byte 112 +.byte 0 +.align 1 +.LC984: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 61 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 105 +.byte 102 +.byte 105 +.byte 99 +.byte 97 +.byte 110 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 99 +.byte 97 +.byte 114 +.byte 114 +.byte 105 +.byte 101 +.byte 100 +.byte 46 +.byte 0 +.align 1 +.LC983: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 49 +.byte 44 +.byte 32 +.byte 50 +.byte 44 +.byte 32 +.byte 52 +.byte 44 +.byte 32 +.byte 56 +.byte 44 +.byte 32 +.byte 49 +.byte 48 +.byte 44 +.byte 32 +.byte 49 +.byte 54 +.byte 44 +.byte 32 +.byte 49 +.byte 48 +.byte 48 +.byte 44 +.byte 32 +.byte 50 +.byte 53 +.byte 54 +.byte 32 +.byte 46 +.byte 46 +.byte 46 +.byte 0 +.align 1 +.LC982: +.byte 82 +.byte 117 +.byte 110 +.byte 110 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 115 +.byte 104 +.byte 111 +.byte 117 +.byte 108 +.byte 100 +.byte 32 +.byte 114 +.byte 101 +.byte 118 +.byte 101 +.byte 97 +.byte 108 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 115 +.byte 101 +.byte 32 +.byte 99 +.byte 104 +.byte 97 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 101 +.byte 114 +.byte 105 +.byte 115 +.byte 116 +.byte 105 +.byte 99 +.byte 115 +.byte 58 +.byte 0 +.align 1 +.LC978: +.byte 9 +.byte 79 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 114 +.byte 101 +.byte 108 +.byte 101 +.byte 118 +.byte 97 +.byte 110 +.byte 116 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 105 +.byte 108 +.byte 101 +.byte 114 +.byte 32 +.byte 111 +.byte 112 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 58 +.byte 0 +.align 1 +.LC977: +.byte 9 +.byte 79 +.byte 112 +.byte 116 +.byte 105 +.byte 109 +.byte 105 +.byte 122 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 108 +.byte 101 +.byte 118 +.byte 101 +.byte 108 +.byte 58 +.byte 10 +.byte 0 +.align 1 +.LC976: +.byte 9 +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 105 +.byte 108 +.byte 101 +.byte 114 +.byte 58 +.byte 10 +.byte 0 +.align 1 +.LC975: +.byte 9 +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 101 +.byte 114 +.byte 58 +.byte 10 +.byte 0 +.align 1 +.LC974: +.byte 9 +.byte 86 +.byte 101 +.byte 114 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 58 +.byte 9 +.byte 49 +.byte 48 +.byte 32 +.byte 70 +.byte 101 +.byte 98 +.byte 114 +.byte 117 +.byte 97 +.byte 114 +.byte 121 +.byte 32 +.byte 49 +.byte 57 +.byte 56 +.byte 57 +.byte 59 +.byte 0 +.align 1 +.LC973: +.byte 9 +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 58 +.byte 9 +.byte 100 +.byte 111 +.byte 117 +.byte 98 +.byte 108 +.byte 101 +.byte 59 +.byte 0 +.align 1 +.LC972: +.byte 73 +.byte 110 +.byte 32 +.byte 100 +.byte 111 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 115 +.byte 111 +.byte 44 +.byte 32 +.byte 112 +.byte 108 +.byte 101 +.byte 97 +.byte 115 +.byte 101 +.byte 32 +.byte 105 +.byte 110 +.byte 99 +.byte 108 +.byte 117 +.byte 100 +.byte 101 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 102 +.byte 111 +.byte 108 +.byte 108 +.byte 111 +.byte 119 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 105 +.byte 110 +.byte 102 +.byte 111 +.byte 114 +.byte 109 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 58 +.byte 0 +.align 1 +.LC971: +.byte 9 +.byte 83 +.byte 97 +.byte 110 +.byte 32 +.byte 70 +.byte 114 +.byte 97 +.byte 110 +.byte 99 +.byte 105 +.byte 115 +.byte 99 +.byte 111 +.byte 44 +.byte 32 +.byte 67 +.byte 65 +.byte 32 +.byte 57 +.byte 52 +.byte 49 +.byte 52 +.byte 51 +.byte 45 +.byte 48 +.byte 55 +.byte 48 +.byte 52 +.byte 44 +.byte 32 +.byte 85 +.byte 83 +.byte 65 +.byte 10 +.byte 0 +.align 1 +.LC970: +.byte 9 +.byte 85 +.byte 110 +.byte 105 +.byte 118 +.byte 101 +.byte 114 +.byte 115 +.byte 105 +.byte 116 +.byte 121 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 67 +.byte 97 +.byte 108 +.byte 105 +.byte 102 +.byte 111 +.byte 114 +.byte 110 +.byte 105 +.byte 97 +.byte 0 +.align 1 +.LC969: +.byte 9 +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 101 +.byte 114 +.byte 32 +.byte 67 +.byte 101 +.byte 110 +.byte 116 +.byte 101 +.byte 114 +.byte 32 +.byte 85 +.byte 45 +.byte 55 +.byte 54 +.byte 0 +.align 1 +.LC968: +.byte 9 +.byte 82 +.byte 105 +.byte 99 +.byte 104 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 75 +.byte 97 +.byte 114 +.byte 112 +.byte 105 +.byte 110 +.byte 115 +.byte 107 +.byte 105 +.byte 0 +.align 1 +.LC967: +.byte 80 +.byte 108 +.byte 101 +.byte 97 +.byte 115 +.byte 101 +.byte 32 +.byte 115 +.byte 101 +.byte 110 +.byte 100 +.byte 32 +.byte 115 +.byte 117 +.byte 103 +.byte 103 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 105 +.byte 110 +.byte 116 +.byte 101 +.byte 114 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 114 +.byte 101 +.byte 115 +.byte 117 +.byte 108 +.byte 116 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 0 +.align 1 +.LC966: +.byte 99 +.byte 111 +.byte 112 +.byte 101 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 117 +.byte 110 +.byte 97 +.byte 110 +.byte 116 +.byte 105 +.byte 99 +.byte 105 +.byte 112 +.byte 97 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 110 +.byte 101 +.byte 119 +.byte 108 +.byte 121 +.byte 32 +.byte 117 +.byte 110 +.byte 99 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 101 +.byte 100 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 112 +.byte 97 +.byte 116 +.byte 104 +.byte 111 +.byte 108 +.byte 111 +.byte 103 +.byte 105 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC965: +.byte 85 +.byte 115 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 105 +.byte 110 +.byte 118 +.byte 105 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 104 +.byte 101 +.byte 108 +.byte 112 +.byte 32 +.byte 100 +.byte 101 +.byte 98 +.byte 117 +.byte 103 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 97 +.byte 117 +.byte 103 +.byte 109 +.byte 101 +.byte 110 +.byte 116 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 115 +.byte 111 +.byte 32 +.byte 105 +.byte 116 +.byte 32 +.byte 119 +.byte 105 +.byte 108 +.byte 108 +.byte 0 +.align 1 +.LC961: +.byte 65 +.byte 110 +.byte 115 +.byte 119 +.byte 101 +.byte 114 +.byte 32 +.byte 113 +.byte 117 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 89 +.byte 44 +.byte 32 +.byte 121 +.byte 44 +.byte 32 +.byte 78 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 110 +.byte 32 +.byte 40 +.byte 117 +.byte 110 +.byte 108 +.byte 101 +.byte 115 +.byte 115 +.byte 32 +.byte 111 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 119 +.byte 105 +.byte 115 +.byte 101 +.byte 32 +.byte 105 +.byte 110 +.byte 100 +.byte 105 +.byte 99 +.byte 97 +.byte 116 +.byte 101 +.byte 100 +.byte 41 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC960: +.byte 97 +.byte 109 +.byte 101 +.byte 110 +.byte 100 +.byte 32 +.byte 105 +.byte 116 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 109 +.byte 97 +.byte 107 +.byte 101 +.byte 32 +.byte 102 +.byte 117 +.byte 114 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 101 +.byte 115 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC959: +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 97 +.byte 110 +.byte 121 +.byte 119 +.byte 97 +.byte 121 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 115 +.byte 101 +.byte 101 +.byte 32 +.byte 104 +.byte 111 +.byte 119 +.byte 32 +.byte 109 +.byte 97 +.byte 110 +.byte 121 +.byte 32 +.byte 109 +.byte 105 +.byte 108 +.byte 101 +.byte 115 +.byte 116 +.byte 111 +.byte 110 +.byte 101 +.byte 115 +.byte 32 +.byte 105 +.byte 116 +.byte 32 +.byte 112 +.byte 97 +.byte 115 +.byte 115 +.byte 101 +.byte 115 +.byte 44 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 110 +.byte 0 +.align 1 +.LC958: +.byte 119 +.byte 97 +.byte 114 +.byte 110 +.byte 105 +.byte 110 +.byte 103 +.byte 46 +.byte 32 +.byte 32 +.byte 73 +.byte 102 +.byte 32 +.byte 112 +.byte 101 +.byte 114 +.byte 115 +.byte 117 +.byte 97 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 118 +.byte 97 +.byte 105 +.byte 108 +.byte 115 +.byte 32 +.byte 110 +.byte 97 +.byte 117 +.byte 103 +.byte 104 +.byte 116 +.byte 44 +.byte 32 +.byte 100 +.byte 111 +.byte 110 +.byte 39 +.byte 116 +.byte 32 +.byte 100 +.byte 101 +.byte 115 +.byte 112 +.byte 97 +.byte 105 +.byte 114 +.byte 32 +.byte 98 +.byte 117 +.byte 116 +.byte 32 +.byte 114 +.byte 117 +.byte 110 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 0 +.align 1 +.LC957: +.byte 116 +.byte 111 +.byte 32 +.byte 112 +.byte 101 +.byte 114 +.byte 115 +.byte 101 +.byte 118 +.byte 101 +.byte 114 +.byte 101 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 97 +.byte 32 +.byte 115 +.byte 117 +.byte 114 +.byte 114 +.byte 111 +.byte 103 +.byte 97 +.byte 116 +.byte 101 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 32 +.byte 97 +.byte 102 +.byte 116 +.byte 101 +.byte 114 +.byte 44 +.byte 32 +.byte 112 +.byte 101 +.byte 114 +.byte 104 +.byte 97 +.byte 112 +.byte 115 +.byte 44 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 112 +.byte 108 +.byte 97 +.byte 121 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 115 +.byte 111 +.byte 109 +.byte 101 +.byte 0 +.align 1 +.LC956: +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 32 +.byte 108 +.byte 105 +.byte 107 +.byte 101 +.byte 32 +.byte 79 +.byte 118 +.byte 101 +.byte 114 +.byte 47 +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 68 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 90 +.byte 101 +.byte 114 +.byte 111 +.byte 32 +.byte 111 +.byte 99 +.byte 99 +.byte 117 +.byte 114 +.byte 115 +.byte 44 +.byte 32 +.byte 98 +.byte 117 +.byte 116 +.byte 32 +.byte 114 +.byte 97 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 0 +.align 1 +.LC955: +.byte 116 +.byte 114 +.byte 121 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 112 +.byte 101 +.byte 114 +.byte 115 +.byte 117 +.byte 97 +.byte 100 +.byte 101 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 101 +.byte 114 +.byte 32 +.byte 78 +.byte 79 +.byte 84 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 116 +.byte 101 +.byte 114 +.byte 109 +.byte 105 +.byte 110 +.byte 97 +.byte 116 +.byte 101 +.byte 32 +.byte 101 +.byte 120 +.byte 101 +.byte 99 +.byte 117 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 110 +.byte 32 +.byte 97 +.byte 110 +.byte 0 +.align 1 +.LC954: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 96 +.byte 69 +.byte 78 +.byte 68 +.byte 32 +.byte 79 +.byte 70 +.byte 32 +.byte 84 +.byte 69 +.byte 83 +.byte 84 +.byte 39 +.byte 44 +.byte 10 +.byte 0 +.align 1 +.LC953: +.byte 76 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 115 +.byte 116 +.byte 111 +.byte 112 +.byte 32 +.byte 112 +.byte 114 +.byte 101 +.byte 109 +.byte 97 +.byte 116 +.byte 117 +.byte 114 +.byte 101 +.byte 108 +.byte 121 +.byte 44 +.byte 32 +.byte 105 +.byte 46 +.byte 101 +.byte 46 +.byte 32 +.byte 98 +.byte 101 +.byte 102 +.byte 111 +.byte 114 +.byte 101 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 112 +.byte 108 +.byte 97 +.byte 121 +.byte 105 +.byte 110 +.byte 103 +.byte 10 +.byte 0 +.align 1 +.LC949: +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 1 +.LC943: +.byte 32 +.byte 32 +.byte 32 +.byte 80 +.byte 76 +.byte 69 +.byte 65 +.byte 83 +.byte 69 +.byte 32 +.byte 78 +.byte 79 +.byte 84 +.byte 73 +.byte 70 +.byte 89 +.byte 32 +.byte 75 +.byte 65 +.byte 82 +.byte 80 +.byte 73 +.byte 78 +.byte 75 +.byte 83 +.byte 73 +.byte 33 +.byte 10 +.byte 0 +.align 1 +.LC942: +.byte 37 +.byte 115 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 105 +.byte 110 +.byte 99 +.byte 111 +.byte 110 +.byte 115 +.byte 105 +.byte 115 +.byte 116 +.byte 101 +.byte 110 +.byte 116 +.byte 46 +.byte 46 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC939: +.byte 9 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 90 +.byte 32 +.byte 42 +.byte 32 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.LC938: +.byte 9 +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 103 +.byte 101 +.byte 115 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 49 +.byte 32 +.byte 42 +.byte 32 +.byte 90 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.LC937: +.byte 77 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 105 +.byte 99 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 100 +.byte 111 +.byte 101 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 109 +.byte 117 +.byte 116 +.byte 101 +.byte 33 +.byte 10 +.byte 0 +.align 1 +.LC932: +.byte 90 +.byte 32 +.byte 47 +.byte 32 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.LC929: +.byte 49 +.byte 32 +.byte 42 +.byte 32 +.byte 90 +.byte 32 +.byte 61 +.byte 61 +.byte 32 +.byte 37 +.byte 103 +.byte 10 +.byte 0 +.align 1 +.LC926: +.byte 90 +.byte 32 +.byte 42 +.byte 32 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 0 +.align 1 +.LC923: +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 9 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 101 +.byte 115 +.byte 32 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 101 +.byte 110 +.byte 116 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 32 +.byte 0 +.align 1 +.LC922: +.byte 87 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 112 +.byte 114 +.byte 105 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 90 +.byte 32 +.byte 61 +.byte 32 +.byte 0 +.align 1 +.LC917: +.byte 84 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 33 +.byte 10 +.byte 0 +.align 1 +.LC914: +.byte 84 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 86 +.byte 69 +.byte 82 +.byte 89 +.byte 32 +.byte 83 +.byte 69 +.byte 82 +.byte 73 +.byte 79 +.byte 85 +.byte 83 +.byte 32 +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 33 +.byte 10 +.byte 0 +.align 1 +.LC908: +.byte 32 +.byte 104 +.byte 97 +.byte 115 +.byte 32 +.byte 78 +.byte 79 +.byte 84 +.byte 32 +.byte 106 +.byte 117 +.byte 115 +.byte 116 +.byte 32 +.byte 98 +.byte 101 +.byte 101 +.byte 110 +.byte 32 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 97 +.byte 108 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC907: +.byte 84 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 79 +.byte 46 +.byte 75 +.byte 46 +.byte 44 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 118 +.byte 105 +.byte 100 +.byte 101 +.byte 100 +.byte 32 +.byte 79 +.byte 118 +.byte 101 +.byte 114 +.byte 47 +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 0 +.align 1 +.LC904: +.byte 87 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 109 +.byte 97 +.byte 99 +.byte 104 +.byte 105 +.byte 110 +.byte 101 +.byte 32 +.byte 103 +.byte 101 +.byte 116 +.byte 115 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 40 +.byte 90 +.byte 32 +.byte 43 +.byte 32 +.byte 90 +.byte 41 +.byte 32 +.byte 47 +.byte 32 +.byte 90 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC900: +.byte 40 +.byte 90 +.byte 32 +.byte 43 +.byte 32 +.byte 90 +.byte 41 +.byte 32 +.byte 47 +.byte 32 +.byte 90 +.byte 32 +.byte 115 +.byte 104 +.byte 111 +.byte 117 +.byte 108 +.byte 100 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 115 +.byte 97 +.byte 102 +.byte 101 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC899: +.byte 83 +.byte 105 +.byte 110 +.byte 99 +.byte 101 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 32 +.byte 100 +.byte 101 +.byte 110 +.byte 105 +.byte 101 +.byte 115 +.byte 32 +.byte 90 +.byte 32 +.byte 61 +.byte 32 +.byte 48 +.byte 44 +.byte 32 +.byte 101 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 97 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 0 +.align 1 +.LC894: +.byte 83 +.byte 105 +.byte 109 +.byte 105 +.byte 108 +.byte 97 +.byte 114 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 114 +.byte 101 +.byte 112 +.byte 97 +.byte 110 +.byte 99 +.byte 105 +.byte 101 +.byte 115 +.byte 32 +.byte 104 +.byte 97 +.byte 118 +.byte 101 +.byte 32 +.byte 111 +.byte 99 +.byte 99 +.byte 117 +.byte 114 +.byte 114 +.byte 101 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 116 +.byte 105 +.byte 109 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC882: +.byte 9 +.byte 9 +.byte 116 +.byte 104 +.byte 101 +.byte 121 +.byte 32 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC881: +.byte 9 +.byte 119 +.byte 104 +.byte 105 +.byte 99 +.byte 104 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 101 +.byte 100 +.byte 32 +.byte 117 +.byte 110 +.byte 101 +.byte 113 +.byte 117 +.byte 97 +.byte 108 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 59 +.byte 10 +.byte 0 +.align 1 +.LC880: +.byte 9 +.byte 121 +.byte 105 +.byte 101 +.byte 108 +.byte 100 +.byte 101 +.byte 100 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 59 +.byte 10 +.byte 0 +.align 1 +.LC879: +.byte 9 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 32 +.byte 94 +.byte 32 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 10 +.byte 0 +.align 1 +.LC878: +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 10 +.byte 0 +.align 1 +.LC877: +.byte 87 +.byte 65 +.byte 82 +.byte 78 +.byte 73 +.byte 78 +.byte 71 +.byte 58 +.byte 32 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 10 +.byte 0 +.align 1 +.LC856: +.byte 9 +.byte 105 +.byte 110 +.byte 115 +.byte 116 +.byte 101 +.byte 97 +.byte 100 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 32 +.byte 48 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC855: +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 40 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 32 +.byte 45 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 4 +.LC846: +.long -1998362383 +.long 1054144693 +.align 1 +.LC843: +.byte 37 +.byte 115 +.byte 58 +.byte 32 +.byte 32 +.byte 37 +.byte 115 +.byte 0 +.align 1 +.LC842: +.byte 70 +.byte 76 +.byte 65 +.byte 87 +.byte 0 +.align 1 +.LC841: +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 0 +.align 1 +.LC840: +.byte 83 +.byte 69 +.byte 82 +.byte 73 +.byte 79 +.byte 85 +.byte 83 +.byte 32 +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 0 +.align 1 +.LC839: +.byte 70 +.byte 65 +.byte 73 +.byte 76 +.byte 85 +.byte 82 +.byte 69 +.byte 0 +.align 1 +.LC831: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 80 +.byte 97 +.byte 103 +.byte 101 +.byte 58 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 10 +.byte 0 +.align 1 +.LC830: +.byte 10 +.byte 68 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 105 +.byte 115 +.byte 32 +.byte 114 +.byte 101 +.byte 115 +.byte 117 +.byte 109 +.byte 101 +.byte 115 +.byte 32 +.byte 97 +.byte 102 +.byte 116 +.byte 101 +.byte 114 +.byte 32 +.byte 109 +.byte 105 +.byte 108 +.byte 101 +.byte 115 +.byte 116 +.byte 111 +.byte 110 +.byte 101 +.byte 32 +.byte 78 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 32 +.byte 37 +.byte 100 +.byte 0 +.align 4 +.LC827: +.long 0 +.long -1074790400 +.align 1 +.LC821: +.byte 69 +.byte 78 +.byte 68 +.byte 32 +.byte 79 +.byte 70 +.byte 32 +.byte 84 +.byte 69 +.byte 83 +.byte 84 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC820: +.byte 10 +.byte 65 +.byte 32 +.byte 116 +.byte 111 +.byte 116 +.byte 97 +.byte 108 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 102 +.byte 108 +.byte 111 +.byte 97 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 112 +.byte 111 +.byte 105 +.byte 110 +.byte 116 +.byte 32 +.byte 101 +.byte 120 +.byte 99 +.byte 101 +.byte 112 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 119 +.byte 101 +.byte 114 +.byte 101 +.byte 32 +.byte 114 +.byte 101 +.byte 103 +.byte 105 +.byte 115 +.byte 116 +.byte 101 +.byte 114 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC817: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 100 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 69 +.byte 120 +.byte 99 +.byte 101 +.byte 108 +.byte 108 +.byte 101 +.byte 110 +.byte 116 +.byte 33 +.byte 10 +.byte 0 +.align 1 +.LC816: +.byte 32 +.byte 100 +.byte 117 +.byte 114 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 71 +.byte 114 +.byte 97 +.byte 100 +.byte 117 +.byte 97 +.byte 108 +.byte 32 +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC815: +.byte 44 +.byte 10 +.byte 101 +.byte 120 +.byte 99 +.byte 101 +.byte 112 +.byte 116 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 112 +.byte 111 +.byte 115 +.byte 115 +.byte 105 +.byte 98 +.byte 108 +.byte 121 +.byte 32 +.byte 68 +.byte 111 +.byte 117 +.byte 98 +.byte 108 +.byte 101 +.byte 32 +.byte 82 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 105 +.byte 110 +.byte 103 +.byte 0 +.align 1 +.LC814: +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC811: +.byte 56 +.byte 53 +.byte 52 +.byte 0 +.align 1 +.LC810: +.byte 55 +.byte 53 +.byte 52 +.byte 0 +.align 1 +.LC807: +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 112 +.byte 111 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 73 +.byte 69 +.byte 69 +.byte 69 +.byte 32 +.byte 115 +.byte 116 +.byte 97 +.byte 110 +.byte 100 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 80 +.byte 0 +.align 1 +.LC806: +.byte 82 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 102 +.byte 111 +.byte 114 +.byte 109 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 0 +.align 1 +.LC803: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 100 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 115 +.byte 101 +.byte 101 +.byte 109 +.byte 115 +.byte 32 +.byte 83 +.byte 97 +.byte 116 +.byte 105 +.byte 115 +.byte 102 +.byte 97 +.byte 99 +.byte 116 +.byte 111 +.byte 114 +.byte 121 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC797: +.byte 78 +.byte 111 +.byte 32 +.byte 102 +.byte 97 +.byte 105 +.byte 108 +.byte 117 +.byte 114 +.byte 101 +.byte 115 +.byte 44 +.byte 32 +.byte 100 +.byte 101 +.byte 102 +.byte 101 +.byte 99 +.byte 116 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 114 +.byte 32 +.byte 102 +.byte 108 +.byte 97 +.byte 119 +.byte 115 +.byte 32 +.byte 104 +.byte 97 +.byte 118 +.byte 101 +.byte 32 +.byte 98 +.byte 101 +.byte 101 +.byte 110 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC796: +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 39 +.byte 115 +.byte 32 +.byte 115 +.byte 117 +.byte 98 +.byte 115 +.byte 101 +.byte 113 +.byte 117 +.byte 101 +.byte 110 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC795: +.byte 80 +.byte 111 +.byte 116 +.byte 101 +.byte 110 +.byte 116 +.byte 105 +.byte 97 +.byte 108 +.byte 108 +.byte 121 +.byte 32 +.byte 102 +.byte 97 +.byte 116 +.byte 97 +.byte 108 +.byte 32 +.byte 70 +.byte 65 +.byte 73 +.byte 76 +.byte 85 +.byte 82 +.byte 69 +.byte 32 +.byte 109 +.byte 97 +.byte 121 +.byte 32 +.byte 104 +.byte 97 +.byte 118 +.byte 101 +.byte 32 +.byte 115 +.byte 112 +.byte 111 +.byte 105 +.byte 108 +.byte 101 +.byte 100 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 0 +.align 1 +.LC792: +.byte 117 +.byte 110 +.byte 97 +.byte 99 +.byte 99 +.byte 101 +.byte 112 +.byte 116 +.byte 97 +.byte 98 +.byte 108 +.byte 101 +.byte 32 +.byte 83 +.byte 101 +.byte 114 +.byte 105 +.byte 111 +.byte 117 +.byte 115 +.byte 32 +.byte 68 +.byte 101 +.byte 102 +.byte 101 +.byte 99 +.byte 116 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC791: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 100 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 104 +.byte 97 +.byte 115 +.byte 32 +.byte 0 +.align 1 +.LC787: +.byte 100 +.byte 101 +.byte 115 +.byte 112 +.byte 105 +.byte 116 +.byte 101 +.byte 32 +.byte 105 +.byte 110 +.byte 99 +.byte 111 +.byte 110 +.byte 118 +.byte 101 +.byte 110 +.byte 105 +.byte 101 +.byte 110 +.byte 116 +.byte 32 +.byte 68 +.byte 101 +.byte 102 +.byte 101 +.byte 99 +.byte 116 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC786: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 100 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 109 +.byte 97 +.byte 121 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 65 +.byte 99 +.byte 99 +.byte 101 +.byte 112 +.byte 116 +.byte 97 +.byte 98 +.byte 108 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.LC781: +.byte 83 +.byte 97 +.byte 116 +.byte 105 +.byte 115 +.byte 102 +.byte 97 +.byte 99 +.byte 116 +.byte 111 +.byte 114 +.byte 121 +.byte 32 +.byte 116 +.byte 104 +.byte 111 +.byte 117 +.byte 103 +.byte 104 +.byte 32 +.byte 102 +.byte 108 +.byte 97 +.byte 119 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC780: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 100 +.byte 105 +.byte 97 +.byte 103 +.byte 110 +.byte 111 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 115 +.byte 101 +.byte 101 +.byte 109 +.byte 115 +.byte 32 +.byte 0 +.align 1 +.LC769: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 32 +.byte 37 +.byte 45 +.byte 50 +.byte 57 +.byte 115 +.byte 32 +.byte 37 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC762: +.byte 70 +.byte 76 +.byte 65 +.byte 87 +.byte 115 +.byte 32 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 101 +.byte 100 +.byte 32 +.byte 61 +.byte 0 +.align 1 +.LC761: +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 115 +.byte 32 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 101 +.byte 100 +.byte 32 +.byte 61 +.byte 0 +.align 1 +.LC760: +.byte 83 +.byte 69 +.byte 82 +.byte 73 +.byte 79 +.byte 85 +.byte 83 +.byte 32 +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 115 +.byte 32 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 101 +.byte 100 +.byte 32 +.byte 61 +.byte 0 +.align 1 +.LC759: +.byte 70 +.byte 65 +.byte 73 +.byte 76 +.byte 85 +.byte 82 +.byte 69 +.byte 115 +.byte 32 +.byte 32 +.byte 101 +.byte 110 +.byte 99 +.byte 111 +.byte 117 +.byte 110 +.byte 116 +.byte 101 +.byte 114 +.byte 101 +.byte 100 +.byte 32 +.byte 61 +.byte 0 +.align 1 +.LC755: +.byte 10 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 84 +.byte 114 +.byte 121 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 101 +.byte 32 +.byte 48 +.byte 32 +.byte 47 +.byte 32 +.byte 48 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 100 +.byte 117 +.byte 99 +.byte 101 +.byte 115 +.byte 32 +.byte 46 +.byte 46 +.byte 46 +.byte 0 +.align 1 +.LC754: +.byte 32 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC751: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 84 +.byte 114 +.byte 121 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 101 +.byte 32 +.byte 49 +.byte 32 +.byte 47 +.byte 32 +.byte 48 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 100 +.byte 117 +.byte 99 +.byte 101 +.byte 115 +.byte 32 +.byte 46 +.byte 46 +.byte 46 +.byte 0 +.align 1 +.LC750: +.byte 87 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 109 +.byte 101 +.byte 115 +.byte 115 +.byte 97 +.byte 103 +.byte 101 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 47 +.byte 111 +.byte 114 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 115 +.byte 32 +.byte 100 +.byte 111 +.byte 101 +.byte 115 +.byte 32 +.byte 68 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 90 +.byte 101 +.byte 114 +.byte 111 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 100 +.byte 117 +.byte 99 +.byte 101 +.byte 63 +.byte 10 +.byte 0 +.align 1 +.LC749: +.byte 32 +.byte 32 +.byte 105 +.byte 110 +.byte 115 +.byte 116 +.byte 101 +.byte 97 +.byte 100 +.byte 44 +.byte 32 +.byte 88 +.byte 32 +.byte 47 +.byte 32 +.byte 88 +.byte 32 +.byte 45 +.byte 32 +.byte 49 +.byte 47 +.byte 50 +.byte 32 +.byte 45 +.byte 32 +.byte 49 +.byte 47 +.byte 50 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC748: +.byte 32 +.byte 32 +.byte 88 +.byte 32 +.byte 47 +.byte 32 +.byte 88 +.byte 32 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 49 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 110 +.byte 32 +.byte 88 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.LC743: +.byte 32 +.byte 32 +.byte 88 +.byte 32 +.byte 47 +.byte 32 +.byte 88 +.byte 32 +.byte 32 +.byte 116 +.byte 114 +.byte 97 +.byte 112 +.byte 115 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 110 +.byte 32 +.byte 88 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 103 +.byte 10 +.byte 0 +.align 1 +.LC728: +.byte 105 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 102 +.byte 97 +.byte 114 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 49 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC727: +.byte 32 +.byte 117 +.byte 110 +.byte 98 +.byte 97 +.byte 108 +.byte 97 +.byte 110 +.byte 99 +.byte 101 +.byte 100 +.byte 32 +.byte 114 +.byte 97 +.byte 110 +.byte 103 +.byte 101 +.byte 59 +.byte 32 +.byte 85 +.byte 102 +.byte 84 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 42 +.byte 32 +.byte 86 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 9 +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 1 +.LC726: +.byte 66 +.byte 97 +.byte 100 +.byte 108 +.byte 121 +.byte 0 +.align 1 +.LC719: +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 102 +.byte 97 +.byte 114 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 40 +.byte 90 +.byte 41 +.byte 32 +.byte 94 +.byte 32 +.byte 50 +.byte 32 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC718: +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 103 +.byte 101 +.byte 115 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 90 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.LC706: +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 102 +.byte 97 +.byte 114 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 40 +.byte 90 +.byte 41 +.byte 32 +.byte 94 +.byte 32 +.byte 50 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC705: +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 103 +.byte 101 +.byte 115 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 119 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 112 +.byte 114 +.byte 105 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 90 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.LC688: +.byte 43 +.byte 45 +.byte 37 +.byte 103 +.byte 44 +.byte 32 +.byte 43 +.byte 45 +.byte 37 +.byte 103 +.byte 10 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 43 +.byte 45 +.byte 37 +.byte 103 +.byte 32 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 102 +.byte 117 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 79 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 46 +.byte 0 +.align 1 +.LC687: +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 105 +.byte 110 +.byte 118 +.byte 111 +.byte 108 +.byte 118 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 0 +.align 1 +.LC681: +.byte 97 +.byte 98 +.byte 111 +.byte 118 +.byte 101 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC680: +.byte 65 +.byte 110 +.byte 121 +.byte 32 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 97 +.byte 108 +.byte 32 +.byte 115 +.byte 101 +.byte 112 +.byte 97 +.byte 114 +.byte 97 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 42 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 111 +.byte 110 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.LC679: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 110 +.byte 111 +.byte 114 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 86 +.byte 32 +.byte 47 +.byte 32 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC678: +.byte 78 +.byte 111 +.byte 32 +.byte 79 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 115 +.byte 104 +.byte 111 +.byte 117 +.byte 108 +.byte 100 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 97 +.byte 108 +.byte 101 +.byte 100 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 86 +.byte 32 +.byte 42 +.byte 32 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.LC677: +.byte 84 +.byte 104 +.byte 101 +.byte 114 +.byte 101 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 32 +.byte 115 +.byte 97 +.byte 116 +.byte 117 +.byte 114 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 32 +.byte 98 +.byte 101 +.byte 99 +.byte 97 +.byte 117 +.byte 115 +.byte 101 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 115 +.byte 121 +.byte 115 +.byte 116 +.byte 101 +.byte 109 +.byte 32 +.byte 116 +.byte 114 +.byte 97 +.byte 112 +.byte 115 +.byte 32 +.byte 111 +.byte 110 +.byte 32 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC676: +.byte 79 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 115 +.byte 97 +.byte 116 +.byte 117 +.byte 114 +.byte 97 +.byte 116 +.byte 101 +.byte 115 +.byte 32 +.byte 97 +.byte 116 +.byte 32 +.byte 86 +.byte 48 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC673: +.byte 79 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 86 +.byte 32 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC664: +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 112 +.byte 97 +.byte 115 +.byte 116 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 9 +.byte 115 +.byte 104 +.byte 114 +.byte 105 +.byte 110 +.byte 107 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC661: +.byte 45 +.byte 40 +.byte 45 +.byte 89 +.byte 41 +.byte 32 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 89 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC660: +.byte 102 +.byte 105 +.byte 110 +.byte 100 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 0 +.align 1 +.LC659: +.byte 83 +.byte 101 +.byte 101 +.byte 109 +.byte 115 +.byte 32 +.byte 79 +.byte 46 +.byte 75 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC656: +.byte 84 +.byte 114 +.byte 121 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 105 +.byte 116 +.byte 32 +.byte 111 +.byte 110 +.byte 32 +.byte 89 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC655: +.byte 67 +.byte 97 +.byte 110 +.byte 32 +.byte 96 +.byte 90 +.byte 32 +.byte 61 +.byte 32 +.byte 45 +.byte 89 +.byte 39 +.byte 32 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 63 +.byte 10 +.byte 0 +.align 1 +.LC648: +.byte 84 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 109 +.byte 97 +.byte 121 +.byte 32 +.byte 103 +.byte 101 +.byte 110 +.byte 101 +.byte 114 +.byte 97 +.byte 116 +.byte 101 +.byte 32 +.byte 97 +.byte 110 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC647: +.byte 83 +.byte 101 +.byte 97 +.byte 114 +.byte 99 +.byte 104 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 79 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 58 +.byte 10 +.byte 0 +.align 1 +.LC646: +.byte 32 +.byte 46 +.byte 46 +.byte 46 +.byte 32 +.byte 110 +.byte 111 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 114 +.byte 101 +.byte 112 +.byte 97 +.byte 110 +.byte 99 +.byte 105 +.byte 101 +.byte 115 +.byte 32 +.byte 102 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC638: +.byte 84 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 112 +.byte 111 +.byte 119 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 90 +.byte 94 +.byte 81 +.byte 32 +.byte 97 +.byte 116 +.byte 32 +.byte 102 +.byte 111 +.byte 117 +.byte 114 +.byte 32 +.byte 110 +.byte 101 +.byte 97 +.byte 114 +.byte 108 +.byte 121 +.byte 32 +.byte 101 +.byte 120 +.byte 116 +.byte 114 +.byte 101 +.byte 109 +.byte 101 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC637: +.byte 65 +.byte 99 +.byte 99 +.byte 117 +.byte 114 +.byte 97 +.byte 99 +.byte 121 +.byte 32 +.byte 115 +.byte 101 +.byte 101 +.byte 109 +.byte 115 +.byte 32 +.byte 97 +.byte 100 +.byte 101 +.byte 113 +.byte 117 +.byte 97 +.byte 116 +.byte 101 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC630: +.byte 9 +.byte 99 +.byte 97 +.byte 108 +.byte 99 +.byte 117 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 105 +.byte 110 +.byte 118 +.byte 111 +.byte 108 +.byte 118 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 116 +.byte 105 +.byte 110 +.byte 121 +.byte 32 +.byte 105 +.byte 110 +.byte 116 +.byte 101 +.byte 114 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 114 +.byte 97 +.byte 116 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC629: +.byte 9 +.byte 84 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 109 +.byte 117 +.byte 99 +.byte 104 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 32 +.byte 109 +.byte 97 +.byte 121 +.byte 32 +.byte 115 +.byte 112 +.byte 111 +.byte 105 +.byte 108 +.byte 32 +.byte 102 +.byte 105 +.byte 110 +.byte 97 +.byte 110 +.byte 99 +.byte 105 +.byte 97 +.byte 108 +.byte 10 +.byte 0 +.align 1 +.LC628: +.byte 9 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC627: +.byte 9 +.byte 40 +.byte 49 +.byte 32 +.byte 43 +.byte 32 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 32 +.byte 94 +.byte 32 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 59 +.byte 10 +.byte 0 +.align 1 +.LC626: +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 10 +.byte 0 +.align 1 +.LC625: +.byte 67 +.byte 97 +.byte 108 +.byte 99 +.byte 117 +.byte 108 +.byte 97 +.byte 116 +.byte 101 +.byte 100 +.byte 0 +.align 1 +.LC618: +.byte 84 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 88 +.byte 94 +.byte 40 +.byte 40 +.byte 88 +.byte 32 +.byte 43 +.byte 32 +.byte 49 +.byte 41 +.byte 32 +.byte 47 +.byte 32 +.byte 40 +.byte 88 +.byte 32 +.byte 45 +.byte 32 +.byte 49 +.byte 41 +.byte 41 +.byte 32 +.byte 118 +.byte 115 +.byte 46 +.byte 32 +.byte 101 +.byte 120 +.byte 112 +.byte 40 +.byte 50 +.byte 41 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 88 +.byte 32 +.byte 45 +.byte 62 +.byte 32 +.byte 49 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC614: +.byte 84 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 79 +.byte 46 +.byte 75 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC611: +.byte 32 +.byte 32 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC610: +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 98 +.byte 101 +.byte 116 +.byte 119 +.byte 101 +.byte 101 +.byte 110 +.byte 32 +.byte 48 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 10 +.byte 0 +.align 1 +.LC606: +.byte 97 +.byte 99 +.byte 116 +.byte 117 +.byte 97 +.byte 108 +.byte 108 +.byte 121 +.byte 32 +.byte 99 +.byte 97 +.byte 108 +.byte 99 +.byte 117 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 121 +.byte 105 +.byte 101 +.byte 108 +.byte 100 +.byte 115 +.byte 58 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC605: +.byte 115 +.byte 104 +.byte 111 +.byte 117 +.byte 108 +.byte 100 +.byte 32 +.byte 97 +.byte 102 +.byte 102 +.byte 108 +.byte 105 +.byte 99 +.byte 116 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 101 +.byte 120 +.byte 112 +.byte 114 +.byte 101 +.byte 115 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 10 +.byte 9 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 32 +.byte 94 +.byte 32 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 59 +.byte 10 +.byte 0 +.align 1 +.LC604: +.byte 85 +.byte 102 +.byte 84 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 61 +.byte 32 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 32 +.byte 94 +.byte 32 +.byte 40 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 41 +.byte 10 +.byte 111 +.byte 110 +.byte 108 +.byte 121 +.byte 32 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 0 +.align 1 +.LC603: +.byte 83 +.byte 105 +.byte 110 +.byte 99 +.byte 101 +.byte 32 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 111 +.byte 99 +.byte 99 +.byte 117 +.byte 114 +.byte 115 +.byte 32 +.byte 98 +.byte 101 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.LC602: +.byte 82 +.byte 97 +.byte 110 +.byte 103 +.byte 101 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 110 +.byte 97 +.byte 114 +.byte 114 +.byte 111 +.byte 119 +.byte 59 +.byte 32 +.byte 85 +.byte 49 +.byte 94 +.byte 37 +.byte 100 +.byte 32 +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC597: +.byte 109 +.byte 101 +.byte 114 +.byte 101 +.byte 108 +.byte 121 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 111 +.byte 102 +.byte 102 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC596: +.byte 99 +.byte 97 +.byte 108 +.byte 99 +.byte 117 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 109 +.byte 97 +.byte 121 +.byte 32 +.byte 115 +.byte 117 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 32 +.byte 108 +.byte 97 +.byte 114 +.byte 103 +.byte 101 +.byte 114 +.byte 32 +.byte 82 +.byte 101 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 110 +.byte 32 +.byte 0 +.align 1 +.LC595: +.byte 32 +.byte 98 +.byte 101 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 119 +.byte 104 +.byte 105 +.byte 99 +.byte 104 +.byte 0 +.align 1 +.LC594: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 44 +.byte 32 +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 1 +.LC593: +.byte 88 +.byte 32 +.byte 47 +.byte 32 +.byte 90 +.byte 32 +.byte 61 +.byte 32 +.byte 49 +.byte 32 +.byte 43 +.byte 32 +.byte 37 +.byte 103 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC592: +.byte 88 +.byte 32 +.byte 47 +.byte 32 +.byte 90 +.byte 32 +.byte 102 +.byte 97 +.byte 105 +.byte 108 +.byte 115 +.byte 33 +.byte 10 +.byte 0 +.align 1 +.LC589: +.byte 101 +.byte 110 +.byte 99 +.byte 111 +.byte 117 +.byte 110 +.byte 116 +.byte 101 +.byte 114 +.byte 32 +.byte 68 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 90 +.byte 101 +.byte 114 +.byte 111 +.byte 32 +.byte 97 +.byte 108 +.byte 116 +.byte 104 +.byte 111 +.byte 117 +.byte 103 +.byte 104 +.byte 32 +.byte 97 +.byte 99 +.byte 116 +.byte 117 +.byte 97 +.byte 108 +.byte 108 +.byte 121 +.byte 10 +.byte 0 +.align 1 +.LC588: +.byte 32 +.byte 32 +.byte 46 +.byte 46 +.byte 46 +.byte 32 +.byte 40 +.byte 102 +.byte 40 +.byte 88 +.byte 41 +.byte 32 +.byte 45 +.byte 32 +.byte 102 +.byte 40 +.byte 90 +.byte 41 +.byte 41 +.byte 32 +.byte 47 +.byte 32 +.byte 40 +.byte 88 +.byte 32 +.byte 45 +.byte 32 +.byte 90 +.byte 41 +.byte 32 +.byte 46 +.byte 46 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC587: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 105 +.byte 102 +.byte 32 +.byte 40 +.byte 88 +.byte 32 +.byte 61 +.byte 61 +.byte 32 +.byte 90 +.byte 41 +.byte 32 +.byte 32 +.byte 46 +.byte 46 +.byte 46 +.byte 32 +.byte 32 +.byte 101 +.byte 108 +.byte 115 +.byte 101 +.byte 0 +.align 1 +.LC586: +.byte 99 +.byte 111 +.byte 110 +.byte 102 +.byte 117 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 110 +.byte 32 +.byte 105 +.byte 110 +.byte 110 +.byte 111 +.byte 99 +.byte 101 +.byte 110 +.byte 116 +.byte 32 +.byte 115 +.byte 116 +.byte 97 +.byte 116 +.byte 101 +.byte 109 +.byte 101 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 108 +.byte 105 +.byte 107 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.LC585: +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 83 +.byte 69 +.byte 82 +.byte 73 +.byte 79 +.byte 85 +.byte 83 +.byte 32 +.byte 68 +.byte 69 +.byte 70 +.byte 69 +.byte 67 +.byte 84 +.byte 10 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 99 +.byte 97 +.byte 117 +.byte 115 +.byte 101 +.byte 115 +.byte 32 +.byte 0 +.align 1 +.LC584: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 83 +.byte 104 +.byte 111 +.byte 117 +.byte 108 +.byte 100 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 78 +.byte 79 +.byte 84 +.byte 32 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 97 +.byte 108 +.byte 32 +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 44 +.byte 32 +.byte 0 +.align 1 +.LC583: +.byte 121 +.byte 101 +.byte 116 +.byte 32 +.byte 88 +.byte 32 +.byte 45 +.byte 32 +.byte 90 +.byte 32 +.byte 121 +.byte 105 +.byte 101 +.byte 108 +.byte 100 +.byte 115 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC582: +.byte 88 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 9 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 101 +.byte 113 +.byte 117 +.byte 97 +.byte 108 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 90 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC577: +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 47 +.byte 32 +.byte 85 +.byte 102 +.byte 84 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 102 +.byte 97 +.byte 105 +.byte 108 +.byte 101 +.byte 100 +.byte 33 +.byte 10 +.byte 0 +.align 1 +.LC567: +.byte 40 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 111 +.byte 102 +.byte 102 +.byte 32 +.byte 105 +.byte 110 +.byte 32 +.byte 85 +.byte 102 +.byte 84 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 41 +.byte 32 +.byte 60 +.byte 32 +.byte 69 +.byte 48 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC566: +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 103 +.byte 114 +.byte 97 +.byte 100 +.byte 117 +.byte 97 +.byte 108 +.byte 59 +.byte 32 +.byte 105 +.byte 116 +.byte 32 +.byte 105 +.byte 110 +.byte 99 +.byte 117 +.byte 114 +.byte 115 +.byte 32 +.byte 65 +.byte 98 +.byte 115 +.byte 111 +.byte 108 +.byte 117 +.byte 116 +.byte 101 +.byte 32 +.byte 69 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 32 +.byte 61 +.byte 10 +.byte 0 +.align 1 +.LC561: +.byte 124 +.byte 81 +.byte 32 +.byte 45 +.byte 32 +.byte 89 +.byte 124 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC560: +.byte 112 +.byte 114 +.byte 105 +.byte 110 +.byte 116 +.byte 32 +.byte 111 +.byte 117 +.byte 116 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 81 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 44 +.byte 32 +.byte 89 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC559: +.byte 81 +.byte 32 +.byte 61 +.byte 61 +.byte 32 +.byte 89 +.byte 32 +.byte 119 +.byte 104 +.byte 105 +.byte 108 +.byte 101 +.byte 32 +.byte 100 +.byte 101 +.byte 110 +.byte 121 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 124 +.byte 81 +.byte 32 +.byte 45 +.byte 32 +.byte 89 +.byte 124 +.byte 32 +.byte 61 +.byte 61 +.byte 32 +.byte 48 +.byte 59 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 115 +.byte 101 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 115 +.byte 10 +.byte 0 +.align 1 +.LC558: +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 102 +.byte 117 +.byte 115 +.byte 101 +.byte 115 +.byte 32 +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 44 +.byte 32 +.byte 119 +.byte 104 +.byte 105 +.byte 99 +.byte 104 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 103 +.byte 101 +.byte 115 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 10 +.byte 0 +.align 1 +.LC556: +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 101 +.byte 108 +.byte 115 +.byte 101 +.byte 32 +.byte 109 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 105 +.byte 99 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 103 +.byte 101 +.byte 116 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 109 +.byte 97 +.byte 110 +.byte 121 +.byte 32 +.byte 108 +.byte 97 +.byte 115 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 119 +.byte 114 +.byte 111 +.byte 110 +.byte 103 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC555: +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 100 +.byte 111 +.byte 119 +.byte 110 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.LC554: +.byte 97 +.byte 112 +.byte 112 +.byte 114 +.byte 111 +.byte 97 +.byte 99 +.byte 104 +.byte 32 +.byte 97 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 49 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.LC553: +.byte 69 +.byte 105 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 97 +.byte 99 +.byte 99 +.byte 117 +.byte 114 +.byte 97 +.byte 99 +.byte 121 +.byte 32 +.byte 100 +.byte 101 +.byte 116 +.byte 101 +.byte 114 +.byte 105 +.byte 111 +.byte 114 +.byte 97 +.byte 116 +.byte 101 +.byte 115 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 115 +.byte 10 +.byte 0 +.align 1 +.LC541: +.byte 83 +.byte 109 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 115 +.byte 116 +.byte 114 +.byte 105 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 112 +.byte 111 +.byte 115 +.byte 105 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 32 +.byte 102 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 69 +.byte 48 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 103 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC540: +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 110 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 100 +.byte 117 +.byte 99 +.byte 116 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC539: +.byte 68 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 101 +.byte 110 +.byte 99 +.byte 101 +.byte 32 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 115 +.byte 32 +.byte 97 +.byte 116 +.byte 32 +.byte 97 +.byte 32 +.byte 104 +.byte 105 +.byte 103 +.byte 104 +.byte 101 +.byte 114 +.byte 0 +.align 1 +.LC536: +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 110 +.byte 32 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 101 +.byte 110 +.byte 99 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC535: +.byte 80 +.byte 114 +.byte 111 +.byte 100 +.byte 117 +.byte 99 +.byte 116 +.byte 115 +.byte 32 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 97 +.byte 116 +.byte 32 +.byte 97 +.byte 32 +.byte 104 +.byte 105 +.byte 103 +.byte 104 +.byte 101 +.byte 114 +.byte 0 +.align 1 +.LC528: +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 32 +.byte 80 +.byte 115 +.byte 101 +.byte 117 +.byte 100 +.byte 111 +.byte 90 +.byte 101 +.byte 114 +.byte 111 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 112 +.byte 114 +.byte 105 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 111 +.byte 117 +.byte 116 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 37 +.byte 103 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC527: +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 99 +.byte 97 +.byte 110 +.byte 32 +.byte 115 +.byte 116 +.byte 105 +.byte 99 +.byte 107 +.byte 32 +.byte 97 +.byte 116 +.byte 32 +.byte 97 +.byte 110 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 103 +.byte 101 +.byte 100 +.byte 108 +.byte 121 +.byte 32 +.byte 112 +.byte 111 +.byte 115 +.byte 105 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.LC526: +.byte 112 +.byte 111 +.byte 115 +.byte 105 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 44 +.byte 32 +.byte 105 +.byte 115 +.byte 110 +.byte 39 +.byte 116 +.byte 59 +.byte 32 +.byte 105 +.byte 116 +.byte 32 +.byte 112 +.byte 114 +.byte 105 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 111 +.byte 117 +.byte 116 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 32 +.byte 37 +.byte 103 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC525: +.byte 66 +.byte 117 +.byte 116 +.byte 32 +.byte 45 +.byte 80 +.byte 115 +.byte 101 +.byte 117 +.byte 100 +.byte 111 +.byte 90 +.byte 101 +.byte 114 +.byte 111 +.byte 44 +.byte 32 +.byte 119 +.byte 104 +.byte 105 +.byte 99 +.byte 104 +.byte 32 +.byte 115 +.byte 104 +.byte 111 +.byte 117 +.byte 108 +.byte 100 +.byte 32 +.byte 98 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.LC522: +.byte 80 +.byte 115 +.byte 101 +.byte 117 +.byte 100 +.byte 111 +.byte 90 +.byte 101 +.byte 114 +.byte 111 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 112 +.byte 114 +.byte 105 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 111 +.byte 117 +.byte 116 +.byte 32 +.byte 97 +.byte 115 +.byte 58 +.byte 32 +.byte 37 +.byte 103 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC521: +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 103 +.byte 101 +.byte 100 +.byte 108 +.byte 121 +.byte 32 +.byte 110 +.byte 101 +.byte 103 +.byte 97 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.LC520: +.byte 80 +.byte 111 +.byte 115 +.byte 105 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 32 +.byte 101 +.byte 120 +.byte 112 +.byte 114 +.byte 101 +.byte 115 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 99 +.byte 97 +.byte 110 +.byte 32 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 97 +.byte 110 +.byte 10 +.byte 0 +.align 1 +.LC507: +.byte 109 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 105 +.byte 99 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 103 +.byte 101 +.byte 116 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 109 +.byte 97 +.byte 110 +.byte 121 +.byte 32 +.byte 108 +.byte 97 +.byte 115 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 119 +.byte 114 +.byte 111 +.byte 110 +.byte 103 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC483: +.byte 83 +.byte 101 +.byte 101 +.byte 107 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 85 +.byte 110 +.byte 100 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 32 +.byte 116 +.byte 104 +.byte 114 +.byte 101 +.byte 115 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 115 +.byte 32 +.byte 85 +.byte 102 +.byte 84 +.byte 104 +.byte 111 +.byte 108 +.byte 100 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 69 +.byte 48 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC480: +.byte 46 +.byte 46 +.byte 46 +.byte 32 +.byte 110 +.byte 111 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 99 +.byte 114 +.byte 101 +.byte 112 +.byte 97 +.byte 110 +.byte 99 +.byte 105 +.byte 115 +.byte 32 +.byte 102 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC477: +.byte 9 +.byte 105 +.byte 110 +.byte 118 +.byte 111 +.byte 108 +.byte 118 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 105 +.byte 110 +.byte 116 +.byte 101 +.byte 114 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 114 +.byte 97 +.byte 116 +.byte 101 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC476: +.byte 69 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 115 +.byte 32 +.byte 108 +.byte 105 +.byte 107 +.byte 101 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 109 +.byte 97 +.byte 121 +.byte 32 +.byte 105 +.byte 110 +.byte 118 +.byte 97 +.byte 108 +.byte 105 +.byte 100 +.byte 97 +.byte 116 +.byte 101 +.byte 32 +.byte 102 +.byte 105 +.byte 110 +.byte 97 +.byte 110 +.byte 99 +.byte 105 +.byte 97 +.byte 108 +.byte 32 +.byte 99 +.byte 97 +.byte 108 +.byte 99 +.byte 117 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 10 +.byte 0 +.align 1 +.LC455: +.byte 84 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 112 +.byte 111 +.byte 119 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 90 +.byte 94 +.byte 105 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 115 +.byte 109 +.byte 97 +.byte 108 +.byte 108 +.byte 32 +.byte 73 +.byte 110 +.byte 116 +.byte 101 +.byte 103 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 90 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 105 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC452: +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 32 +.byte 103 +.byte 101 +.byte 116 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 109 +.byte 97 +.byte 110 +.byte 121 +.byte 32 +.byte 108 +.byte 97 +.byte 115 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 119 +.byte 114 +.byte 111 +.byte 110 +.byte 103 +.byte 0 +.align 1 +.LC450: +.byte 116 +.byte 111 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 32 +.byte 117 +.byte 108 +.byte 112 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC449: +.byte 79 +.byte 98 +.byte 115 +.byte 101 +.byte 114 +.byte 118 +.byte 101 +.byte 100 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 115 +.byte 32 +.byte 114 +.byte 117 +.byte 110 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 32 +.byte 0 +.align 1 +.LC448: +.byte 83 +.byte 113 +.byte 117 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 114 +.byte 111 +.byte 111 +.byte 116 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 101 +.byte 105 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 112 +.byte 101 +.byte 100 +.byte 32 +.byte 110 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC445: +.byte 83 +.byte 113 +.byte 117 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 114 +.byte 111 +.byte 111 +.byte 116 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 112 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC440: +.byte 83 +.byte 113 +.byte 117 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 114 +.byte 111 +.byte 111 +.byte 116 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC435: +.byte 32 +.byte 102 +.byte 97 +.byte 105 +.byte 108 +.byte 115 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 115 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC434: +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 94 +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.LC433: +.byte 65 +.byte 110 +.byte 111 +.byte 109 +.byte 97 +.byte 108 +.byte 111 +.byte 117 +.byte 115 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 73 +.byte 110 +.byte 116 +.byte 101 +.byte 103 +.byte 101 +.byte 114 +.byte 32 +.byte 60 +.byte 32 +.byte 0 +.align 1 +.LC393: +.byte 84 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 119 +.byte 104 +.byte 101 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 100 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 112 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC371: +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 40 +.byte 88 +.byte 41 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 110 +.byte 45 +.byte 109 +.byte 111 +.byte 110 +.byte 111 +.byte 116 +.byte 111 +.byte 110 +.byte 105 +.byte 99 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 88 +.byte 32 +.byte 110 +.byte 101 +.byte 97 +.byte 114 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC370: +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 32 +.byte 104 +.byte 97 +.byte 115 +.byte 32 +.byte 112 +.byte 97 +.byte 115 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 97 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 77 +.byte 111 +.byte 110 +.byte 111 +.byte 116 +.byte 111 +.byte 110 +.byte 105 +.byte 99 +.byte 105 +.byte 116 +.byte 121 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC353: +.byte 84 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 32 +.byte 109 +.byte 111 +.byte 110 +.byte 111 +.byte 116 +.byte 111 +.byte 110 +.byte 105 +.byte 99 +.byte 105 +.byte 116 +.byte 121 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC342: +.byte 84 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 105 +.byte 102 +.byte 32 +.byte 115 +.byte 113 +.byte 114 +.byte 116 +.byte 40 +.byte 88 +.byte 32 +.byte 42 +.byte 32 +.byte 88 +.byte 41 +.byte 32 +.byte 61 +.byte 61 +.byte 32 +.byte 88 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 73 +.byte 110 +.byte 116 +.byte 101 +.byte 103 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 88 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC337: +.byte 83 +.byte 113 +.byte 117 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 114 +.byte 111 +.byte 111 +.byte 116 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 48 +.byte 46 +.byte 48 +.byte 44 +.byte 32 +.byte 45 +.byte 48 +.byte 46 +.byte 48 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 49 +.byte 46 +.byte 48 +.byte 32 +.byte 119 +.byte 114 +.byte 111 +.byte 110 +.byte 103 +.byte 0 +.align 1 +.LC335: +.byte 10 +.byte 82 +.byte 117 +.byte 110 +.byte 110 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 115 +.byte 113 +.byte 117 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 114 +.byte 111 +.byte 111 +.byte 116 +.byte 40 +.byte 120 +.byte 41 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC334: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 78 +.byte 111 +.byte 32 +.byte 102 +.byte 97 +.byte 105 +.byte 108 +.byte 117 +.byte 114 +.byte 101 +.byte 115 +.byte 32 +.byte 102 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 105 +.byte 110 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 105 +.byte 110 +.byte 116 +.byte 101 +.byte 103 +.byte 101 +.byte 114 +.byte 32 +.byte 112 +.byte 97 +.byte 105 +.byte 114 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC333: +.byte 88 +.byte 32 +.byte 42 +.byte 32 +.byte 89 +.byte 32 +.byte 61 +.byte 61 +.byte 32 +.byte 89 +.byte 32 +.byte 42 +.byte 32 +.byte 88 +.byte 32 +.byte 116 +.byte 114 +.byte 105 +.byte 97 +.byte 108 +.byte 32 +.byte 102 +.byte 97 +.byte 105 +.byte 108 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 4 +.LC324: +.long 0 +.long 1074266112 +.align 1 +.LC323: +.byte 84 +.byte 101 +.byte 115 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 111 +.byte 110 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 114 +.byte 97 +.byte 110 +.byte 100 +.byte 111 +.byte 109 +.byte 32 +.byte 112 +.byte 97 +.byte 105 +.byte 114 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC322: +.byte 68 +.byte 111 +.byte 101 +.byte 115 +.byte 32 +.byte 77 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 105 +.byte 99 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 99 +.byte 111 +.byte 109 +.byte 109 +.byte 117 +.byte 116 +.byte 101 +.byte 63 +.byte 32 +.byte 32 +.byte 0 +.align 1 +.LC319: +.byte 108 +.byte 97 +.byte 99 +.byte 107 +.byte 40 +.byte 115 +.byte 41 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 103 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 102 +.byte 97 +.byte 105 +.byte 108 +.byte 117 +.byte 114 +.byte 101 +.byte 40 +.byte 115 +.byte 41 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 10 +.byte 40 +.byte 110 +.byte 111 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 97 +.byte 98 +.byte 111 +.byte 118 +.byte 101 +.byte 41 +.byte 32 +.byte 99 +.byte 111 +.byte 117 +.byte 110 +.byte 116 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 111 +.byte 110 +.byte 101 +.byte 32 +.byte 102 +.byte 108 +.byte 97 +.byte 119 +.byte 32 +.byte 105 +.byte 110 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 102 +.byte 105 +.byte 110 +.byte 97 +.byte 108 +.byte 32 +.byte 116 +.byte 97 +.byte 108 +.byte 108 +.byte 121 +.byte 32 +.byte 98 +.byte 101 +.byte 108 +.byte 111 +.byte 119 +.byte 0 +.align 1 +.LC317: +.byte 83 +.byte 116 +.byte 105 +.byte 99 +.byte 107 +.byte 121 +.byte 32 +.byte 98 +.byte 105 +.byte 116 +.byte 32 +.byte 117 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 105 +.byte 110 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 97 +.byte 116 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC316: +.byte 83 +.byte 116 +.byte 105 +.byte 99 +.byte 107 +.byte 121 +.byte 32 +.byte 98 +.byte 105 +.byte 116 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 97 +.byte 114 +.byte 101 +.byte 110 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 117 +.byte 115 +.byte 101 +.byte 100 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC299: +.byte 67 +.byte 104 +.byte 101 +.byte 99 +.byte 107 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 115 +.byte 116 +.byte 105 +.byte 99 +.byte 107 +.byte 121 +.byte 32 +.byte 98 +.byte 105 +.byte 116 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC296: +.byte 40 +.byte 88 +.byte 32 +.byte 45 +.byte 32 +.byte 89 +.byte 41 +.byte 32 +.byte 43 +.byte 32 +.byte 40 +.byte 89 +.byte 32 +.byte 45 +.byte 32 +.byte 88 +.byte 41 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 110 +.byte 32 +.byte 122 +.byte 101 +.byte 114 +.byte 111 +.byte 33 +.byte 10 +.byte 0 +.align 1 +.LC293: +.byte 65 +.byte 100 +.byte 100 +.byte 105 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 47 +.byte 83 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 110 +.byte 101 +.byte 105 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC292: +.byte 65 +.byte 100 +.byte 100 +.byte 47 +.byte 83 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 0 +.align 1 +.LC289: +.byte 65 +.byte 100 +.byte 100 +.byte 105 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 47 +.byte 83 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC282: +.byte 65 +.byte 100 +.byte 100 +.byte 47 +.byte 83 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 112 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC277: +.byte 73 +.byte 110 +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 108 +.byte 101 +.byte 116 +.byte 101 +.byte 32 +.byte 99 +.byte 97 +.byte 114 +.byte 114 +.byte 121 +.byte 45 +.byte 112 +.byte 114 +.byte 111 +.byte 112 +.byte 97 +.byte 103 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 105 +.byte 110 +.byte 32 +.byte 65 +.byte 100 +.byte 100 +.byte 105 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 0 +.align 1 +.LC273: +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 42 +.byte 32 +.byte 40 +.byte 32 +.byte 49 +.byte 32 +.byte 47 +.byte 32 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 41 +.byte 32 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 49 +.byte 0 +.align 1 +.LC271: +.byte 47 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 101 +.byte 105 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 112 +.byte 101 +.byte 100 +.byte 32 +.byte 110 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC268: +.byte 68 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC265: +.byte 68 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 0 +.align 1 +.LC262: +.byte 68 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC257: +.byte 77 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 105 +.byte 99 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 0 +.align 1 +.LC254: +.byte 42 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 101 +.byte 105 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 112 +.byte 101 +.byte 100 +.byte 32 +.byte 110 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC253: +.byte 77 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 105 +.byte 99 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 99 +.byte 104 +.byte 111 +.byte 112 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC250: +.byte 77 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 105 +.byte 99 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 99 +.byte 111 +.byte 114 +.byte 114 +.byte 101 +.byte 99 +.byte 116 +.byte 108 +.byte 121 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC240: +.byte 88 +.byte 32 +.byte 42 +.byte 32 +.byte 40 +.byte 49 +.byte 47 +.byte 88 +.byte 41 +.byte 32 +.byte 100 +.byte 105 +.byte 102 +.byte 102 +.byte 101 +.byte 114 +.byte 115 +.byte 32 +.byte 102 +.byte 114 +.byte 111 +.byte 109 +.byte 32 +.byte 49 +.byte 0 +.align 1 +.LC221: +.byte 67 +.byte 104 +.byte 101 +.byte 99 +.byte 107 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 111 +.byte 110 +.byte 32 +.byte 109 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 121 +.byte 44 +.byte 32 +.byte 100 +.byte 105 +.byte 118 +.byte 105 +.byte 100 +.byte 101 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 97 +.byte 100 +.byte 100 +.byte 47 +.byte 115 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC220: +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 32 +.byte 42 +.byte 44 +.byte 32 +.byte 47 +.byte 44 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 45 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 104 +.byte 97 +.byte 118 +.byte 101 +.byte 32 +.byte 103 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 44 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 121 +.byte 32 +.byte 115 +.byte 104 +.byte 111 +.byte 117 +.byte 108 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC217: +.byte 32 +.byte 32 +.byte 46 +.byte 46 +.byte 46 +.byte 32 +.byte 32 +.byte 105 +.byte 102 +.byte 32 +.byte 40 +.byte 88 +.byte 32 +.byte 61 +.byte 61 +.byte 32 +.byte 49 +.byte 46 +.byte 48 +.byte 41 +.byte 32 +.byte 123 +.byte 46 +.byte 46 +.byte 46 +.byte 46 +.byte 46 +.byte 125 +.byte 32 +.byte 101 +.byte 108 +.byte 115 +.byte 101 +.byte 32 +.byte 123 +.byte 46 +.byte 46 +.byte 46 +.byte 47 +.byte 40 +.byte 88 +.byte 45 +.byte 49 +.byte 46 +.byte 48 +.byte 41 +.byte 46 +.byte 46 +.byte 46 +.byte 125 +.byte 10 +.byte 0 +.align 1 +.LC216: +.byte 32 +.byte 32 +.byte 115 +.byte 117 +.byte 99 +.byte 104 +.byte 32 +.byte 112 +.byte 114 +.byte 101 +.byte 99 +.byte 97 +.byte 117 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 97 +.byte 103 +.byte 97 +.byte 105 +.byte 110 +.byte 115 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 122 +.byte 101 +.byte 114 +.byte 111 +.byte 32 +.byte 97 +.byte 115 +.byte 10 +.byte 0 +.align 1 +.LC215: +.byte 32 +.byte 32 +.byte 115 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 121 +.byte 105 +.byte 101 +.byte 108 +.byte 100 +.byte 115 +.byte 32 +.byte 32 +.byte 40 +.byte 49 +.byte 45 +.byte 85 +.byte 49 +.byte 41 +.byte 32 +.byte 45 +.byte 32 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 48 +.byte 32 +.byte 44 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 101 +.byte 98 +.byte 121 +.byte 32 +.byte 118 +.byte 105 +.byte 116 +.byte 105 +.byte 97 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 10 +.byte 0 +.align 1 +.LC214: +.byte 99 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 103 +.byte 101 +.byte 115 +.byte 32 +.byte 32 +.byte 40 +.byte 49 +.byte 45 +.byte 85 +.byte 49 +.byte 41 +.byte 32 +.byte 60 +.byte 32 +.byte 49 +.byte 32 +.byte 32 +.byte 97 +.byte 108 +.byte 116 +.byte 104 +.byte 111 +.byte 117 +.byte 103 +.byte 104 +.byte 10 +.byte 0 +.align 1 +.LC211: +.byte 45 +.byte 32 +.byte 108 +.byte 97 +.byte 99 +.byte 107 +.byte 115 +.byte 32 +.byte 71 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 68 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 44 +.byte 32 +.byte 115 +.byte 111 +.byte 32 +.byte 99 +.byte 97 +.byte 110 +.byte 99 +.byte 101 +.byte 108 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 111 +.byte 98 +.byte 115 +.byte 99 +.byte 117 +.byte 114 +.byte 101 +.byte 100 +.byte 0 +.align 1 +.LC206: +.byte 42 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 47 +.byte 111 +.byte 114 +.byte 32 +.byte 47 +.byte 32 +.byte 103 +.byte 101 +.byte 116 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 109 +.byte 97 +.byte 110 +.byte 121 +.byte 32 +.byte 108 +.byte 97 +.byte 115 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 119 +.byte 114 +.byte 111 +.byte 110 +.byte 103 +.byte 0 +.align 1 +.LC202: +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 117 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 49 +.byte 47 +.byte 49 +.byte 46 +.byte 48 +.byte 48 +.byte 48 +.byte 46 +.byte 46 +.byte 49 +.byte 32 +.byte 62 +.byte 61 +.byte 32 +.byte 49 +.byte 0 +.align 1 +.LC200: +.byte 68 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 108 +.byte 97 +.byte 99 +.byte 107 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 71 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 68 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 44 +.byte 32 +.byte 115 +.byte 111 +.byte 32 +.byte 88 +.byte 47 +.byte 49 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 88 +.byte 0 +.align 1 +.LC195: +.byte 68 +.byte 105 +.byte 118 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 108 +.byte 97 +.byte 99 +.byte 107 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 71 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 68 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 44 +.byte 32 +.byte 115 +.byte 111 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 32 +.byte 99 +.byte 97 +.byte 110 +.byte 32 +.byte 101 +.byte 120 +.byte 99 +.byte 101 +.byte 101 +.byte 100 +.byte 32 +.byte 49 +.byte 32 +.byte 117 +.byte 108 +.byte 112 +.byte 10 +.byte 111 +.byte 114 +.byte 32 +.byte 32 +.byte 49 +.byte 47 +.byte 51 +.byte 32 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 32 +.byte 51 +.byte 47 +.byte 57 +.byte 32 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 32 +.byte 57 +.byte 47 +.byte 50 +.byte 55 +.byte 32 +.byte 109 +.byte 97 +.byte 121 +.byte 32 +.byte 100 +.byte 105 +.byte 115 +.byte 97 +.byte 103 +.byte 114 +.byte 101 +.byte 101 +.byte 0 +.align 1 +.LC191: +.byte 42 +.byte 32 +.byte 103 +.byte 101 +.byte 116 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 109 +.byte 97 +.byte 110 +.byte 121 +.byte 32 +.byte 102 +.byte 105 +.byte 110 +.byte 97 +.byte 108 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 119 +.byte 114 +.byte 111 +.byte 110 +.byte 103 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC189: +.byte 42 +.byte 32 +.byte 108 +.byte 97 +.byte 99 +.byte 107 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 71 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 68 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 44 +.byte 32 +.byte 115 +.byte 111 +.byte 32 +.byte 49 +.byte 42 +.byte 88 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 88 +.byte 0 +.align 1 +.LC186: +.byte 10 +.byte 67 +.byte 104 +.byte 101 +.byte 99 +.byte 107 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 103 +.byte 117 +.byte 97 +.byte 114 +.byte 100 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 32 +.byte 105 +.byte 110 +.byte 32 +.byte 42 +.byte 44 +.byte 32 +.byte 47 +.byte 44 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 45 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC185: +.byte 83 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 110 +.byte 111 +.byte 114 +.byte 109 +.byte 97 +.byte 108 +.byte 105 +.byte 122 +.byte 101 +.byte 100 +.byte 44 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 105 +.byte 116 +.byte 32 +.byte 115 +.byte 104 +.byte 111 +.byte 117 +.byte 108 +.byte 100 +.byte 32 +.byte 98 +.byte 101 +.byte 46 +.byte 0 +.align 1 +.LC180: +.byte 83 +.byte 117 +.byte 98 +.byte 116 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 110 +.byte 111 +.byte 114 +.byte 109 +.byte 97 +.byte 108 +.byte 105 +.byte 122 +.byte 101 +.byte 100 +.byte 32 +.byte 88 +.byte 61 +.byte 89 +.byte 44 +.byte 88 +.byte 43 +.byte 90 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 89 +.byte 43 +.byte 90 +.byte 33 +.byte 0 +.align 1 +.LC176: +.byte 114 +.byte 111 +.byte 117 +.byte 103 +.byte 104 +.byte 108 +.byte 121 +.byte 32 +.byte 37 +.byte 103 +.byte 32 +.byte 101 +.byte 120 +.byte 116 +.byte 114 +.byte 97 +.byte 32 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 105 +.byte 102 +.byte 105 +.byte 99 +.byte 97 +.byte 110 +.byte 116 +.byte 32 +.byte 100 +.byte 101 +.byte 99 +.byte 105 +.byte 109 +.byte 97 +.byte 108 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC175: +.byte 112 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 101 +.byte 108 +.byte 121 +.byte 32 +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 32 +.byte 97 +.byte 98 +.byte 111 +.byte 117 +.byte 116 +.byte 32 +.byte 37 +.byte 103 +.byte 32 +.byte 101 +.byte 120 +.byte 116 +.byte 114 +.byte 97 +.byte 32 +.byte 66 +.byte 45 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 44 +.byte 32 +.byte 105 +.byte 46 +.byte 101 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC174: +.byte 83 +.byte 111 +.byte 109 +.byte 101 +.byte 32 +.byte 115 +.byte 117 +.byte 98 +.byte 101 +.byte 120 +.byte 112 +.byte 114 +.byte 101 +.byte 115 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 32 +.byte 97 +.byte 112 +.byte 112 +.byte 101 +.byte 97 +.byte 114 +.byte 32 +.byte 116 +.byte 111 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 99 +.byte 97 +.byte 108 +.byte 99 +.byte 117 +.byte 108 +.byte 97 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 101 +.byte 120 +.byte 116 +.byte 114 +.byte 97 +.byte 10 +.byte 0 +.align 1 +.LC168: +.byte 111 +.byte 102 +.byte 32 +.byte 97 +.byte 110 +.byte 10 +.byte 101 +.byte 120 +.byte 116 +.byte 114 +.byte 97 +.byte 45 +.byte 112 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 0 +.align 1 +.LC167: +.byte 90 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 90 +.byte 50 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 32 +.byte 0 +.align 1 +.LC166: +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 101 +.byte 120 +.byte 97 +.byte 99 +.byte 116 +.byte 32 +.byte 114 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 97 +.byte 108 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 97 +.byte 32 +.byte 114 +.byte 101 +.byte 115 +.byte 117 +.byte 108 +.byte 116 +.byte 10 +.byte 0 +.align 1 +.LC165: +.byte 66 +.byte 101 +.byte 99 +.byte 97 +.byte 117 +.byte 115 +.byte 101 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 117 +.byte 110 +.byte 117 +.byte 115 +.byte 117 +.byte 97 +.byte 108 +.byte 32 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 102 +.byte 0 +.align 1 +.LC161: +.byte 9 +.byte 85 +.byte 50 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 44 +.byte 32 +.byte 90 +.byte 50 +.byte 32 +.byte 45 +.byte 32 +.byte 85 +.byte 50 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.LC160: +.byte 9 +.byte 85 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 44 +.byte 32 +.byte 90 +.byte 49 +.byte 32 +.byte 45 +.byte 32 +.byte 85 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.LC159: +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 0 +.align 1 +.LC158: +.byte 0 +.align 1 +.LC151: +.byte 84 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 102 +.byte 101 +.byte 97 +.byte 116 +.byte 117 +.byte 114 +.byte 101 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 102 +.byte 117 +.byte 114 +.byte 116 +.byte 104 +.byte 101 +.byte 114 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC146: +.byte 80 +.byte 111 +.byte 115 +.byte 115 +.byte 105 +.byte 98 +.byte 108 +.byte 121 +.byte 32 +.byte 115 +.byte 111 +.byte 109 +.byte 101 +.byte 32 +.byte 112 +.byte 97 +.byte 114 +.byte 116 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 0 +.align 1 +.LC145: +.byte 98 +.byte 121 +.byte 32 +.byte 101 +.byte 120 +.byte 116 +.byte 114 +.byte 97 +.byte 45 +.byte 112 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 101 +.byte 32 +.byte 101 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 101 +.byte 116 +.byte 105 +.byte 99 +.byte 32 +.byte 115 +.byte 117 +.byte 98 +.byte 101 +.byte 120 +.byte 112 +.byte 114 +.byte 101 +.byte 115 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 115 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC144: +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 115 +.byte 121 +.byte 109 +.byte 112 +.byte 116 +.byte 111 +.byte 109 +.byte 115 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 105 +.byte 110 +.byte 99 +.byte 111 +.byte 110 +.byte 115 +.byte 105 +.byte 115 +.byte 116 +.byte 101 +.byte 110 +.byte 99 +.byte 105 +.byte 101 +.byte 115 +.byte 32 +.byte 105 +.byte 110 +.byte 116 +.byte 114 +.byte 111 +.byte 100 +.byte 117 +.byte 99 +.byte 101 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.LC143: +.byte 114 +.byte 101 +.byte 115 +.byte 112 +.byte 101 +.byte 99 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 108 +.byte 121 +.byte 32 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 44 +.byte 32 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 44 +.byte 32 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 44 +.byte 10 +.byte 0 +.align 1 +.LC142: +.byte 68 +.byte 105 +.byte 115 +.byte 97 +.byte 103 +.byte 114 +.byte 101 +.byte 101 +.byte 109 +.byte 101 +.byte 110 +.byte 116 +.byte 115 +.byte 32 +.byte 97 +.byte 109 +.byte 111 +.byte 110 +.byte 103 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 118 +.byte 97 +.byte 108 +.byte 117 +.byte 101 +.byte 115 +.byte 32 +.byte 88 +.byte 49 +.byte 44 +.byte 32 +.byte 89 +.byte 49 +.byte 44 +.byte 32 +.byte 90 +.byte 49 +.byte 44 +.byte 10 +.byte 0 +.align 1 +.LC120: +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 119 +.byte 111 +.byte 114 +.byte 115 +.byte 101 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 110 +.byte 32 +.byte 53 +.byte 32 +.byte 100 +.byte 101 +.byte 99 +.byte 105 +.byte 109 +.byte 97 +.byte 108 +.byte 32 +.byte 102 +.byte 105 +.byte 103 +.byte 117 +.byte 114 +.byte 101 +.byte 115 +.byte 32 +.byte 32 +.byte 0 +.align 1 +.LC118: +.byte 84 +.byte 104 +.byte 101 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 105 +.byte 102 +.byte 105 +.byte 99 +.byte 97 +.byte 110 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 116 +.byte 104 +.byte 101 +.byte 32 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 37 +.byte 102 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC117: +.byte 108 +.byte 111 +.byte 103 +.byte 97 +.byte 114 +.byte 105 +.byte 116 +.byte 104 +.byte 109 +.byte 105 +.byte 99 +.byte 32 +.byte 101 +.byte 110 +.byte 99 +.byte 111 +.byte 100 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 104 +.byte 97 +.byte 115 +.byte 32 +.byte 112 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 99 +.byte 104 +.byte 97 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 101 +.byte 114 +.byte 105 +.byte 122 +.byte 101 +.byte 100 +.byte 32 +.byte 115 +.byte 111 +.byte 108 +.byte 101 +.byte 108 +.byte 121 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 85 +.byte 49 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC114: +.byte 111 +.byte 102 +.byte 32 +.byte 115 +.byte 105 +.byte 103 +.byte 110 +.byte 105 +.byte 102 +.byte 105 +.byte 99 +.byte 97 +.byte 110 +.byte 116 +.byte 32 +.byte 100 +.byte 105 +.byte 103 +.byte 105 +.byte 116 +.byte 115 +.byte 32 +.byte 98 +.byte 117 +.byte 116 +.byte 44 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 105 +.byte 116 +.byte 115 +.byte 101 +.byte 108 +.byte 102 +.byte 44 +.byte 32 +.byte 116 +.byte 104 +.byte 105 +.byte 115 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 97 +.byte 32 +.byte 109 +.byte 105 +.byte 110 +.byte 111 +.byte 114 +.byte 32 +.byte 102 +.byte 108 +.byte 97 +.byte 119 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC113: +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 99 +.byte 97 +.byte 110 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 98 +.byte 101 +.byte 32 +.byte 99 +.byte 104 +.byte 97 +.byte 114 +.byte 97 +.byte 99 +.byte 116 +.byte 101 +.byte 114 +.byte 105 +.byte 122 +.byte 101 +.byte 100 +.byte 32 +.byte 98 +.byte 121 +.byte 32 +.byte 97 +.byte 110 +.byte 32 +.byte 73 +.byte 110 +.byte 116 +.byte 101 +.byte 103 +.byte 101 +.byte 114 +.byte 32 +.byte 110 +.byte 117 +.byte 109 +.byte 98 +.byte 101 +.byte 114 +.byte 10 +.byte 0 +.align 1 +.LC100: +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 102 +.byte 117 +.byte 122 +.byte 122 +.byte 121 +.byte 44 +.byte 88 +.byte 61 +.byte 49 +.byte 32 +.byte 98 +.byte 117 +.byte 116 +.byte 32 +.byte 88 +.byte 45 +.byte 49 +.byte 47 +.byte 50 +.byte 45 +.byte 49 +.byte 47 +.byte 50 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 0 +.align 1 +.LC96: +.byte 40 +.byte 49 +.byte 45 +.byte 85 +.byte 49 +.byte 41 +.byte 45 +.byte 49 +.byte 47 +.byte 50 +.byte 32 +.byte 60 +.byte 32 +.byte 49 +.byte 47 +.byte 50 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 70 +.byte 65 +.byte 76 +.byte 83 +.byte 69 +.byte 44 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 103 +.byte 46 +.byte 32 +.byte 102 +.byte 97 +.byte 105 +.byte 108 +.byte 115 +.byte 63 +.byte 0 +.align 4 +.LC94: +.long 0 +.long 1076101120 +.align 1 +.LC89: +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 103 +.byte 111 +.byte 111 +.byte 100 +.byte 32 +.byte 97 +.byte 115 +.byte 32 +.byte 50 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 49 +.byte 48 +.byte 0 +.align 1 +.LC85: +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 116 +.byte 111 +.byte 111 +.byte 32 +.byte 98 +.byte 105 +.byte 103 +.byte 58 +.byte 32 +.byte 114 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 111 +.byte 102 +.byte 102 +.byte 32 +.byte 112 +.byte 114 +.byte 111 +.byte 98 +.byte 108 +.byte 101 +.byte 109 +.byte 115 +.byte 0 +.align 1 +.LC83: +.byte 77 +.byte 89 +.byte 83 +.byte 84 +.byte 69 +.byte 82 +.byte 89 +.byte 58 +.byte 32 +.byte 114 +.byte 101 +.byte 99 +.byte 97 +.byte 108 +.byte 99 +.byte 117 +.byte 108 +.byte 97 +.byte 116 +.byte 101 +.byte 100 +.byte 32 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC82: +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 99 +.byte 111 +.byte 110 +.byte 102 +.byte 105 +.byte 114 +.byte 109 +.byte 101 +.byte 100 +.byte 46 +.byte 10 +.byte 0 +.align 4 +.LC79: +.long 1202590843 +.long 1065646817 +.align 1 +.LC78: +.byte 103 +.byte 101 +.byte 116 +.byte 115 +.byte 32 +.byte 98 +.byte 101 +.byte 116 +.byte 116 +.byte 101 +.byte 114 +.byte 32 +.byte 99 +.byte 108 +.byte 111 +.byte 115 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 114 +.byte 101 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 32 +.byte 115 +.byte 101 +.byte 112 +.byte 97 +.byte 114 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 85 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC77: +.byte 99 +.byte 111 +.byte 110 +.byte 102 +.byte 105 +.byte 114 +.byte 109 +.byte 115 +.byte 32 +.byte 99 +.byte 108 +.byte 111 +.byte 115 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 114 +.byte 101 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 32 +.byte 115 +.byte 101 +.byte 112 +.byte 97 +.byte 114 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 85 +.byte 49 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC62: +.byte 82 +.byte 101 +.byte 99 +.byte 97 +.byte 108 +.byte 99 +.byte 117 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 114 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 112 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 10 +.byte 32 +.byte 0 +.align 1 +.LC61: +.byte 67 +.byte 108 +.byte 111 +.byte 115 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 114 +.byte 101 +.byte 108 +.byte 97 +.byte 116 +.byte 105 +.byte 118 +.byte 101 +.byte 32 +.byte 115 +.byte 101 +.byte 112 +.byte 97 +.byte 114 +.byte 97 +.byte 116 +.byte 105 +.byte 111 +.byte 110 +.byte 32 +.byte 102 +.byte 111 +.byte 117 +.byte 110 +.byte 100 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 85 +.byte 49 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 46 +.byte 55 +.byte 101 +.byte 32 +.byte 46 +.byte 10 +.byte 10 +.byte 0 +.align 1 +.LC55: +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 102 +.byte 32 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC46: +.byte 83 +.byte 101 +.byte 97 +.byte 114 +.byte 99 +.byte 104 +.byte 105 +.byte 110 +.byte 103 +.byte 32 +.byte 102 +.byte 111 +.byte 114 +.byte 32 +.byte 82 +.byte 97 +.byte 100 +.byte 105 +.byte 120 +.byte 32 +.byte 97 +.byte 110 +.byte 100 +.byte 32 +.byte 80 +.byte 114 +.byte 101 +.byte 99 +.byte 105 +.byte 115 +.byte 105 +.byte 111 +.byte 110 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC45: +.byte 10 +.byte 0 +.align 1 +.LC44: +.byte 45 +.byte 49 +.byte 44 +.byte 32 +.byte 48 +.byte 44 +.byte 32 +.byte 49 +.byte 47 +.byte 50 +.byte 44 +.byte 32 +.byte 49 +.byte 44 +.byte 32 +.byte 50 +.byte 44 +.byte 32 +.byte 51 +.byte 44 +.byte 32 +.byte 52 +.byte 44 +.byte 32 +.byte 53 +.byte 44 +.byte 32 +.byte 57 +.byte 44 +.byte 32 +.byte 50 +.byte 55 +.byte 44 +.byte 32 +.byte 51 +.byte 50 +.byte 32 +.byte 38 +.byte 32 +.byte 50 +.byte 52 +.byte 48 +.byte 32 +.byte 97 +.byte 114 +.byte 101 +.byte 32 +.byte 79 +.byte 46 +.byte 75 +.byte 46 +.byte 10 +.byte 0 +.align 1 +.LC39: +.byte 53 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 52 +.byte 43 +.byte 49 +.byte 44 +.byte 32 +.byte 50 +.byte 52 +.byte 48 +.byte 47 +.byte 51 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 56 +.byte 48 +.byte 44 +.byte 32 +.byte 50 +.byte 52 +.byte 48 +.byte 47 +.byte 52 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 54 +.byte 48 +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 50 +.byte 52 +.byte 48 +.byte 47 +.byte 53 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 52 +.byte 56 +.byte 0 +.align 1 +.LC35: +.byte 57 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 51 +.byte 42 +.byte 51 +.byte 44 +.byte 32 +.byte 50 +.byte 55 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 57 +.byte 42 +.byte 51 +.byte 44 +.byte 32 +.byte 51 +.byte 50 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 56 +.byte 42 +.byte 52 +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 51 +.byte 50 +.byte 45 +.byte 50 +.byte 55 +.byte 45 +.byte 52 +.byte 45 +.byte 49 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 0 +.align 1 +.LC31: +.byte 49 +.byte 47 +.byte 50 +.byte 32 +.byte 43 +.byte 32 +.byte 40 +.byte 45 +.byte 49 +.byte 41 +.byte 32 +.byte 43 +.byte 32 +.byte 49 +.byte 47 +.byte 50 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 0 +.align 1 +.LC27: +.byte 45 +.byte 49 +.byte 43 +.byte 49 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 44 +.byte 32 +.byte 40 +.byte 45 +.byte 49 +.byte 41 +.byte 43 +.byte 97 +.byte 98 +.byte 115 +.byte 40 +.byte 49 +.byte 41 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 45 +.byte 49 +.byte 43 +.byte 40 +.byte 45 +.byte 49 +.byte 41 +.byte 42 +.byte 40 +.byte 45 +.byte 49 +.byte 41 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 0 +.align 1 +.LC23: +.byte 51 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 50 +.byte 43 +.byte 49 +.byte 44 +.byte 32 +.byte 52 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 51 +.byte 43 +.byte 49 +.byte 44 +.byte 32 +.byte 52 +.byte 43 +.byte 50 +.byte 42 +.byte 40 +.byte 45 +.byte 50 +.byte 41 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 52 +.byte 45 +.byte 51 +.byte 45 +.byte 49 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 0 +.align 4 +.LC21: +.long -755914244 +.long 1062232653 +.align 1 +.LC20: +.byte 67 +.byte 111 +.byte 109 +.byte 112 +.byte 97 +.byte 114 +.byte 105 +.byte 115 +.byte 111 +.byte 110 +.byte 32 +.byte 97 +.byte 108 +.byte 108 +.byte 101 +.byte 103 +.byte 101 +.byte 115 +.byte 32 +.byte 116 +.byte 104 +.byte 97 +.byte 116 +.byte 32 +.byte 45 +.byte 48 +.byte 46 +.byte 48 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 78 +.byte 111 +.byte 110 +.byte 45 +.byte 122 +.byte 101 +.byte 114 +.byte 111 +.byte 33 +.byte 10 +.byte 0 +.align 1 +.LC15: +.byte 48 +.byte 43 +.byte 48 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 44 +.byte 32 +.byte 49 +.byte 45 +.byte 49 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 44 +.byte 32 +.byte 49 +.byte 32 +.byte 60 +.byte 61 +.byte 32 +.byte 48 +.byte 44 +.byte 32 +.byte 111 +.byte 114 +.byte 32 +.byte 49 +.byte 43 +.byte 49 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 50 +.byte 0 +.align 1 +.LC13: +.byte 80 +.byte 114 +.byte 111 +.byte 103 +.byte 114 +.byte 97 +.byte 109 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 110 +.byte 111 +.byte 119 +.byte 32 +.byte 82 +.byte 85 +.byte 78 +.byte 78 +.byte 73 +.byte 78 +.byte 71 +.byte 32 +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 115 +.byte 32 +.byte 111 +.byte 110 +.byte 32 +.byte 115 +.byte 109 +.byte 97 +.byte 108 +.byte 108 +.byte 32 +.byte 105 +.byte 110 +.byte 116 +.byte 101 +.byte 103 +.byte 101 +.byte 114 +.byte 115 +.byte 58 +.byte 10 +.byte 0 +.align 4 +.LC9: +.long 0 +.long 1072693248 +.align 4 +.LC8: +.long 0 +.long 0 +.align 1 +.LC3: +.byte 10 +.byte 42 +.byte 32 +.byte 42 +.byte 32 +.byte 42 +.byte 32 +.byte 70 +.byte 76 +.byte 79 +.byte 65 +.byte 84 +.byte 73 +.byte 78 +.byte 71 +.byte 45 +.byte 80 +.byte 79 +.byte 73 +.byte 78 +.byte 84 +.byte 32 +.byte 69 +.byte 82 +.byte 82 +.byte 79 +.byte 82 +.byte 32 +.byte 42 +.byte 32 +.byte 42 +.byte 32 +.byte 42 +.byte 10 +.byte 0 +.text +.ident "LCC: 4.1" diff --git a/code/tools/lcc/x86/linux/tst/sort.1bk b/code/tools/lcc/x86/linux/tst/sort.1bk new file mode 100644 index 0000000..75e1f0d --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/sort.1bk @@ -0,0 +1,20 @@ +exchange(1,9) +exchange(3,7) +exchange(5,6) +exchange(0,5) +exchange(0,3) +exchange(0,0) +exchange(1,2) +exchange(6,6) +exchange(8,9) +exchange(7,8) +-51 +-1 +0 +1 +3 +10 +18 +32 +567 +789 diff --git a/code/tools/lcc/x86/linux/tst/sort.2bk b/code/tools/lcc/x86/linux/tst/sort.2bk new file mode 100644 index 0000000..81e6f38 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/sort.2bk @@ -0,0 +1,5 @@ +tst/sort.c:23: warning: missing return value +tst/sort.c:30: warning: missing return value +tst/sort.c:37: warning: missing return value +tst/sort.c:41: warning: missing return value +tst/sort.c:65: warning: missing return value diff --git a/code/tools/lcc/x86/linux/tst/sort.sbk b/code/tools/lcc/x86/linux/tst/sort.sbk new file mode 100644 index 0000000..25cc4d9 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/sort.sbk @@ -0,0 +1,330 @@ +.data +.globl in +.align 4 +.type in,@object +in: +.long 10 +.long 32 +.long -1 +.long 567 +.long 3 +.long 18 +.long 1 +.long -51 +.long 789 +.long 0 +.size in,40 +.globl main +.text +.align 16 +.type main,@function +main: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $4,%esp +pushl $10 +pushl $in +call sort +addl $8,%esp +movl $0,-4(%ebp) +jmp .LC5 +.LC2: +movl -4(%ebp),%edi +pushl in(,%edi,4) +call putd +addl $4,%esp +pushl $10 +call putchar +addl $4,%esp +.LC3: +incl -4(%ebp) +.LC5: +movl -4(%ebp),%edi +cmpl $10,%edi +jb .LC2 +movl $0,%eax +.LC1: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf6: +.size main,.Lf6-main +.globl putd +.align 16 +.type putd,@function +putd: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +cmpl $0,20(%ebp) +jge .LC8 +pushl $45 +call putchar +addl $4,%esp +negl 20(%ebp) +.LC8: +movl 20(%ebp),%eax +movl $10,%ecx +cdq +idivl %ecx +cmpl $0,%eax +je .LC10 +movl 20(%ebp),%eax +movl $10,%ecx +cdq +idivl %ecx +pushl %eax +call putd +addl $4,%esp +.LC10: +movl 20(%ebp),%eax +movl $10,%ecx +cdq +idivl %ecx +leal 48(%edx),%edi +pushl %edi +call putchar +addl $4,%esp +movl $0,%eax +.LC7: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf12: +.size putd,.Lf12-putd +.globl sort +.align 16 +.type sort,@function +sort: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl 24(%ebp),%edi +subl $1,%edi +movl %edi,24(%ebp) +pushl %edi +pushl $0 +movl 20(%ebp),%edi +movl %edi,xx +pushl %edi +call quick +addl $12,%esp +movl $0,%eax +.LC13: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf14: +.size sort,.Lf14-sort +.globl quick +.align 16 +.type quick,@function +quick: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $4,%esp +movl 28(%ebp),%edi +cmpl %edi,24(%ebp) +jl .LC16 +jmp .LC15 +.LC16: +pushl 28(%ebp) +pushl 24(%ebp) +pushl 20(%ebp) +call partition +addl $12,%esp +movl %eax,-4(%ebp) +movl -4(%ebp),%edi +subl $1,%edi +pushl %edi +pushl 24(%ebp) +pushl 20(%ebp) +call quick +addl $12,%esp +pushl 28(%ebp) +movl -4(%ebp),%edi +leal 1(%edi),%edi +pushl %edi +pushl 20(%ebp) +call quick +addl $12,%esp +movl $0,%eax +.LC15: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf18: +.size quick,.Lf18-quick +.globl partition +.align 16 +.type partition,@function +partition: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $8,%esp +incl 28(%ebp) +movl 24(%ebp),%edi +movl %edi,-8(%ebp) +movl -8(%ebp),%edi +movl 20(%ebp),%esi +movl (%esi,%edi,4),%edi +movl %edi,-4(%ebp) +jmp .LC21 +.LC20: +incl 24(%ebp) +jmp .LC24 +.LC23: +incl 24(%ebp) +.LC24: +movl 24(%ebp),%edi +movl 20(%ebp),%esi +movl -4(%ebp),%ebx +cmpl %ebx,(%esi,%edi,4) +jl .LC23 +decl 28(%ebp) +jmp .LC27 +.LC26: +decl 28(%ebp) +.LC27: +movl 28(%ebp),%edi +movl 20(%ebp),%esi +movl -4(%ebp),%ebx +cmpl %ebx,(%esi,%edi,4) +jg .LC26 +movl 28(%ebp),%edi +cmpl %edi,24(%ebp) +jge .LC29 +movl 20(%ebp),%edi +movl 28(%ebp),%esi +leal (%edi,%esi,4),%esi +pushl %esi +movl 24(%ebp),%esi +leal (%edi,%esi,4),%edi +pushl %edi +call exchange +addl $8,%esp +.LC29: +.LC21: +movl 28(%ebp),%edi +cmpl %edi,24(%ebp) +jl .LC20 +movl 20(%ebp),%edi +movl 28(%ebp),%esi +leal (%edi,%esi,4),%esi +pushl %esi +movl -8(%ebp),%esi +leal (%edi,%esi,4),%edi +pushl %edi +call exchange +addl $8,%esp +movl 28(%ebp),%eax +.LC19: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf31: +.size partition,.Lf31-partition +.globl exchange +.align 16 +.type exchange,@function +exchange: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $4,%esp +movl xx,%edi +movl $4,%esi +movl 24(%ebp),%ebx +subl %edi,%ebx +movl %ebx,%eax +movl %esi,%ecx +cdq +idivl %ecx +pushl %eax +movl 20(%ebp),%ebx +subl %edi,%ebx +movl %ebx,%eax +movl %esi,%ecx +cdq +idivl %ecx +pushl %eax +pushl $.LC33 +call printf +addl $12,%esp +movl 20(%ebp),%edi +movl (,%edi),%esi +movl %esi,-4(%ebp) +movl 24(%ebp),%esi +movl (,%esi),%esi +movl %esi,(,%edi) +movl 24(%ebp),%edi +movl -4(%ebp),%esi +movl %esi,(,%edi) +movl $0,%eax +.LC32: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf34: +.size exchange,.Lf34-exchange +.bss +.globl xx +.align 4 +.type xx,@object +.size xx,4 +.comm xx,4 +.data +.align 1 +.LC33: +.byte 101 +.byte 120 +.byte 99 +.byte 104 +.byte 97 +.byte 110 +.byte 103 +.byte 101 +.byte 40 +.byte 37 +.byte 100 +.byte 44 +.byte 37 +.byte 100 +.byte 41 +.byte 10 +.byte 0 +.text +.ident "LCC: 4.1" diff --git a/code/tools/lcc/x86/linux/tst/spill.1bk b/code/tools/lcc/x86/linux/tst/spill.1bk new file mode 100644 index 0000000..e69de29 diff --git a/code/tools/lcc/x86/linux/tst/spill.2bk b/code/tools/lcc/x86/linux/tst/spill.2bk new file mode 100644 index 0000000..afd73e2 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/spill.2bk @@ -0,0 +1,6 @@ +tst/spill.c:1: warning: missing return value +tst/spill.c:3: warning: missing return value +tst/spill.c:5: warning: missing return value +tst/spill.c:7: warning: missing return value +tst/spill.c:9: warning: missing return value +tst/spill.c:17: warning: missing return value diff --git a/code/tools/lcc/x86/linux/tst/spill.sbk b/code/tools/lcc/x86/linux/tst/spill.sbk new file mode 100644 index 0000000..567d002 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/spill.sbk @@ -0,0 +1,282 @@ +.globl main +.text +.align 16 +.type main,@function +main: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl $0,%eax +.LC1: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf2: +.size main,.Lf2-main +.globl f +.align 16 +.type f,@function +f: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +call f +movl %eax,%edi +call f +leal (%eax,%edi),%edi +movl %edi,20(%ebp) +movl $0,%eax +.LC3: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf4: +.size f,.Lf4-f +.globl f2 +.align 16 +.type f2,@function +f2: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $4,%esp +call f +movl %eax,%edi +cmpl $0,20(%ebp) +je .LC7 +call f +movl %eax,%esi +movl %esi,-4(%ebp) +jmp .LC8 +.LC7: +movl $1,-4(%ebp) +.LC8: +movl -4(%ebp),%esi +leal (%esi,%edi),%edi +movl %edi,20(%ebp) +movl $0,%eax +.LC5: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf9: +.size f2,.Lf9-f2 +.globl f3 +.align 16 +.type f3,@function +f3: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $44,%esp +movl $0,-4(%ebp) +movl $0,-8(%ebp) +movl $0,-12(%ebp) +movl $0,-16(%ebp) +movl $0,-20(%ebp) +movl $0,-24(%ebp) +movl $0,-28(%ebp) +movl $0,-32(%ebp) +movl $0,-36(%ebp) +movl $0,-40(%ebp) +movl 24(%ebp),%edi +leal 4(%edi),%esi +movl %esi,24(%ebp) +cmpl $0,20(%ebp) +je .LC12 +call f +movl %eax,%esi +movl %esi,-44(%ebp) +jmp .LC13 +.LC12: +movl $0,-44(%ebp) +.LC13: +movl -44(%ebp),%esi +movl %esi,(,%edi) +movl $0,%eax +.LC10: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf14: +.size f3,.Lf14-f3 +.globl f4 +.align 16 +.type f4,@function +f4: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $52,%esp +movl $0,-4(%ebp) +movl $0,-8(%ebp) +movl $0,-12(%ebp) +movl $0,-16(%ebp) +movl $0,-20(%ebp) +movl $0,-24(%ebp) +movl i,%edi +leal (,%edi,8),%esi +fldl a(%esi) +fstpl -36(%ebp) +fldl b(%esi) +fstpl -44(%ebp) +fldl -36(%ebp) +faddl -44(%ebp) +fldl .LC19 +fcompp +fstsw %ax +sahf +je .LC17 +cmpl $0,%edi +je .LC17 +fldl -36(%ebp) +fsubl -44(%ebp) +fldl .LC19 +fcompp +fstsw %ax +sahf +je .LC17 +movl $1,-28(%ebp) +jmp .LC18 +.LC17: +movl $0,-28(%ebp) +.LC18: +movl -28(%ebp),%edi +movl %edi,i +movl $0,%eax +.LC15: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf20: +.size f4,.Lf20-f4 +.globl f5 +.align 16 +.type f5,@function +f5: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl k,%edi +movl m,%esi +movl A,%ebx +movl %edi,%edx +imull %esi,%edx +leal (%ebx,%edx,8),%edx +movl j,%ecx +movl %ecx,%eax +imull %esi,%eax +leal (%ebx,%eax,8),%esi +movl n,%ebx +movl B,%eax +imull %ebx,%edi +leal (%eax,%edi,8),%edi +imull %ebx,%ecx +leal (%eax,%ecx,8),%ebx +fldl (,%edx) +fmull (,%esi) +fldl (,%edi) +fmull (,%ebx) +faddp %st(1),%st +fstpl x +fldl (,%edx) +fmull (,%ebx) +fldl (,%edi) +fmull (,%esi) +fsubp %st(1),%st +fstpl x +movl $0,%eax +.LC21: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf22: +.size f5,.Lf22-f5 +.bss +.globl x +.align 4 +.type x,@object +.size x,8 +.comm x,8 +.globl B +.align 4 +.type B,@object +.size B,4 +.comm B,4 +.globl A +.align 4 +.type A,@object +.size A,4 +.comm A,4 +.globl n +.align 4 +.type n,@object +.size n,4 +.comm n,4 +.globl m +.align 4 +.type m,@object +.size m,4 +.comm m,4 +.globl k +.align 4 +.type k,@object +.size k,4 +.comm k,4 +.globl j +.align 4 +.type j,@object +.size j,4 +.comm j,4 +.globl i +.align 4 +.type i,@object +.size i,4 +.comm i,4 +.globl b +.align 4 +.type b,@object +.size b,80 +.comm b,80 +.globl a +.align 4 +.type a,@object +.size a,80 +.comm a,80 +.data +.align 4 +.LC19: +.long 0 +.long 0 +.text +.ident "LCC: 4.1" diff --git a/code/tools/lcc/x86/linux/tst/stdarg.1bk b/code/tools/lcc/x86/linux/tst/stdarg.1bk new file mode 100644 index 0000000..e973176 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/stdarg.1bk @@ -0,0 +1,6 @@ +test 1 +test 2 +test 3 +test 4 +test 5.000000 +{1 2 3 4} {1 2 3 4} {1 2 3 4} {1 2 3 4} {1 2 3 4} {1 2 3 4} diff --git a/code/tools/lcc/x86/linux/tst/stdarg.2bk b/code/tools/lcc/x86/linux/tst/stdarg.2bk new file mode 100644 index 0000000..2b3f417 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/stdarg.2bk @@ -0,0 +1 @@ +tst/stdarg.c:51: warning: missing return value diff --git a/code/tools/lcc/x86/linux/tst/stdarg.sbk b/code/tools/lcc/x86/linux/tst/stdarg.sbk new file mode 100644 index 0000000..349bf97 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/stdarg.sbk @@ -0,0 +1,395 @@ +.data +.globl x +.align 4 +.type x,@object +.size x,16 +x: +.long 1 +.long 2 +.long 3 +.long 4 +.globl main +.text +.align 16 +.type main,@function +main: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $8,%esp +pushl $.LC2 +call print +addl $4,%esp +pushl $.LC4 +pushl $.LC3 +call print +addl $8,%esp +pushl $10 +pushl $3 +pushl $.LC5 +call print +addl $12,%esp +pushl $10 +pushl $4 +pushl $.LC8 +pushl $.LC7 +pushl $.LC6 +call print +addl $20,%esp +pushl $10 +fldl .LC10 +subl $8,%esp +fstpl (%esp) +pushl $.LC8 +pushl $.LC7 +pushl $.LC9 +call print +addl $24,%esp +leal x,%edi +movl %edi,-8(%ebp) +movl %edi,%esi +movl %esi,-4(%ebp) +subl $16,%esp +movl %esp,%edi +movl $16,%ecx +rep +movsb +movl -8(%ebp),%edi +movl %edi,%esi +subl $16,%esp +movl %esp,%edi +movl $16,%ecx +rep +movsb +movl -8(%ebp),%edi +movl %edi,%esi +subl $16,%esp +movl %esp,%edi +movl $16,%ecx +rep +movsb +movl -8(%ebp),%edi +movl %edi,%esi +subl $16,%esp +movl %esp,%edi +movl $16,%ecx +rep +movsb +movl -8(%ebp),%edi +movl %edi,%esi +subl $16,%esp +movl %esp,%edi +movl $16,%ecx +rep +movsb +movl -8(%ebp),%edi +movl %edi,%esi +subl $16,%esp +movl %esp,%edi +movl $16,%ecx +rep +movsb +pushl $.LC11 +call print +addl $100,%esp +movl $0,%eax +.LC1: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf12: +.size main,.Lf12-main +.globl print +.align 16 +.type print,@function +print: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $28,%esp +leal 24(%ebp),%edi +movl %edi,-4(%ebp) +jmp .LC19 +.LC16: +movl 20(%ebp),%edi +movsbl (,%edi),%edi +cmpl $37,%edi +jne .LC20 +movl 20(%ebp),%edi +leal 1(%edi),%edi +movl %edi,20(%ebp) +movsbl (,%edi),%edi +movl %edi,-8(%ebp) +movl -8(%ebp),%edi +cmpl $115,%edi +je .LC36 +cmpl $115,%edi +jg .LC41 +.LC40: +movl -8(%ebp),%edi +cmpl $98,%edi +jl .LC22 +cmpl $102,%edi +jg .LC22 +jmp *.LC42-392(,%edi,4) +.data +.align 4 +.LC42: +.long .LC25 +.long .LC30 +.long .LC32 +.long .LC22 +.long .LC38 +.text +.LC41: +cmpl $119,-8(%ebp) +je .LC34 +jmp .LC22 +.LC25: +movl -4(%ebp),%edi +leal 16(%edi),%edi +movl %edi,-28(%ebp) +movl %edi,-4(%ebp) +leal -24(%ebp),%edi +movl -28(%ebp),%esi +leal -16(%esi),%esi +movl $16,%ecx +rep +movsb +pushl -12(%ebp) +pushl -16(%ebp) +pushl -20(%ebp) +pushl -24(%ebp) +pushl $.LC26 +call printf +addl $20,%esp +jmp .LC21 +.LC30: +movl -4(%ebp),%edi +leal 4(%edi),%edi +movl %edi,-4(%ebp) +movsbl -4(%edi),%edi +pushl %edi +pushl $.LC31 +call printf +addl $8,%esp +jmp .LC21 +.LC32: +movl -4(%ebp),%edi +leal 4(%edi),%edi +movl %edi,-4(%ebp) +pushl -4(%edi) +pushl $.LC33 +call printf +addl $8,%esp +jmp .LC21 +.LC34: +movl -4(%ebp),%edi +leal 4(%edi),%edi +movl %edi,-4(%ebp) +movswl -4(%edi),%edi +pushl %edi +pushl $.LC35 +call printf +addl $8,%esp +jmp .LC21 +.LC36: +movl -4(%ebp),%edi +leal 4(%edi),%edi +movl %edi,-4(%ebp) +pushl -4(%edi) +pushl $.LC37 +call printf +addl $8,%esp +jmp .LC21 +.LC38: +movl -4(%ebp),%edi +leal 8(%edi),%edi +movl %edi,-4(%ebp) +fldl -8(%edi) +subl $8,%esp +fstpl (%esp) +pushl $.LC39 +call printf +addl $12,%esp +jmp .LC21 +.LC22: +movl 20(%ebp),%edi +movsbl (,%edi),%edi +pushl %edi +pushl $.LC31 +call printf +addl $8,%esp +jmp .LC21 +.LC20: +movl 20(%ebp),%edi +movsbl (,%edi),%edi +pushl %edi +pushl $.LC31 +call printf +addl $8,%esp +.LC21: +.LC17: +incl 20(%ebp) +.LC19: +movl 20(%ebp),%edi +movsbl (,%edi),%edi +cmpl $0,%edi +jne .LC16 +movl $0,%eax +.LC13: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf44: +.size print,.Lf44-print +.data +.align 1 +.LC39: +.byte 37 +.byte 102 +.byte 0 +.align 1 +.LC37: +.byte 37 +.byte 115 +.byte 0 +.align 1 +.LC35: +.byte 37 +.byte 120 +.byte 0 +.align 1 +.LC33: +.byte 37 +.byte 100 +.byte 0 +.align 1 +.LC31: +.byte 37 +.byte 99 +.byte 0 +.align 1 +.LC26: +.byte 123 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 125 +.byte 0 +.align 1 +.LC11: +.byte 37 +.byte 98 +.byte 32 +.byte 37 +.byte 98 +.byte 32 +.byte 37 +.byte 98 +.byte 32 +.byte 37 +.byte 98 +.byte 32 +.byte 37 +.byte 98 +.byte 32 +.byte 37 +.byte 98 +.byte 10 +.byte 0 +.align 4 +.LC10: +.long 0 +.long 1075052544 +.align 1 +.LC9: +.byte 37 +.byte 115 +.byte 37 +.byte 115 +.byte 32 +.byte 37 +.byte 102 +.byte 37 +.byte 99 +.byte 0 +.align 1 +.LC8: +.byte 115 +.byte 116 +.byte 0 +.align 1 +.LC7: +.byte 116 +.byte 101 +.byte 0 +.align 1 +.LC6: +.byte 37 +.byte 115 +.byte 37 +.byte 115 +.byte 32 +.byte 37 +.byte 119 +.byte 37 +.byte 99 +.byte 0 +.align 1 +.LC5: +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 37 +.byte 100 +.byte 37 +.byte 99 +.byte 0 +.align 1 +.LC4: +.byte 50 +.byte 0 +.align 1 +.LC3: +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 1 +.LC2: +.byte 116 +.byte 101 +.byte 115 +.byte 116 +.byte 32 +.byte 49 +.byte 10 +.byte 0 +.text +.ident "LCC: 4.1" diff --git a/code/tools/lcc/x86/linux/tst/struct.1bk b/code/tools/lcc/x86/linux/tst/struct.1bk new file mode 100644 index 0000000..807f3da --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/struct.1bk @@ -0,0 +1,5 @@ +(-1,-1) is not within [10,10; 310,310] +(1,1) is not within [10,10; 310,310] +(20,300) is within [10,10; 310,310] +(500,400) is not within [10,10; 310,310] +ab diff --git a/code/tools/lcc/x86/linux/tst/struct.2bk b/code/tools/lcc/x86/linux/tst/struct.2bk new file mode 100644 index 0000000..cb0fbd0 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/struct.2bk @@ -0,0 +1,2 @@ +tst/struct.c:49: warning: missing return value +tst/struct.c:68: warning: missing return value diff --git a/code/tools/lcc/x86/linux/tst/struct.sbk b/code/tools/lcc/x86/linux/tst/struct.sbk new file mode 100644 index 0000000..d9a11d2 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/struct.sbk @@ -0,0 +1,477 @@ +.globl addpoint +.text +.align 16 +.type addpoint,@function +addpoint: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl 32(%ebp),%edi +addl %edi,24(%ebp) +movl 36(%ebp),%edi +addl %edi,28(%ebp) +movl 20(%ebp),%edi +leal 24(%ebp),%esi +movl $8,%ecx +rep +movsb +.LC1: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf5: +.size addpoint,.Lf5-addpoint +.globl canonrect +.align 16 +.type canonrect,@function +canonrect: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $32,%esp +movl 32(%ebp),%edi +cmpl %edi,24(%ebp) +jge .LC11 +movl 24(%ebp),%edi +movl %edi,-20(%ebp) +jmp .LC12 +.LC11: +movl 32(%ebp),%edi +movl %edi,-20(%ebp) +.LC12: +movl -20(%ebp),%edi +movl %edi,-16(%ebp) +movl 36(%ebp),%edi +cmpl %edi,28(%ebp) +jge .LC21 +movl 28(%ebp),%edi +movl %edi,-24(%ebp) +jmp .LC22 +.LC21: +movl 36(%ebp),%edi +movl %edi,-24(%ebp) +.LC22: +movl -24(%ebp),%edi +movl %edi,-12(%ebp) +movl 32(%ebp),%edi +cmpl %edi,24(%ebp) +jle .LC27 +movl 24(%ebp),%edi +movl %edi,-28(%ebp) +jmp .LC28 +.LC27: +movl 32(%ebp),%edi +movl %edi,-28(%ebp) +.LC28: +movl -28(%ebp),%edi +movl %edi,-8(%ebp) +movl 36(%ebp),%edi +cmpl %edi,28(%ebp) +jle .LC38 +movl 28(%ebp),%edi +movl %edi,-32(%ebp) +jmp .LC39 +.LC38: +movl 36(%ebp),%edi +movl %edi,-32(%ebp) +.LC39: +movl -32(%ebp),%edi +movl %edi,-4(%ebp) +movl 20(%ebp),%edi +leal -16(%ebp),%esi +movl $16,%ecx +rep +movsb +.LC6: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf40: +.size canonrect,.Lf40-canonrect +.globl makepoint +.align 16 +.type makepoint,@function +makepoint: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $8,%esp +movl 24(%ebp),%edi +movl %edi,-8(%ebp) +movl 28(%ebp),%edi +movl %edi,-4(%ebp) +movl 20(%ebp),%edi +leal -8(%ebp),%esi +movl $8,%ecx +rep +movsb +.LC41: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf44: +.size makepoint,.Lf44-makepoint +.globl makerect +.align 16 +.type makerect,@function +makerect: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $16,%esp +leal -16(%ebp),%edi +leal 24(%ebp),%esi +movl $8,%ecx +rep +movsb +leal -8(%ebp),%edi +leal 32(%ebp),%esi +movl $8,%ecx +rep +movsb +leal -16(%ebp),%esi +subl $16,%esp +movl %esp,%edi +movl $16,%ecx +rep +movsb +pushl 20(%ebp) +call canonrect +addl $20,%esp +.LC45: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf48: +.size makerect,.Lf48-makerect +.globl ptinrect +.align 16 +.type ptinrect,@function +ptinrect: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $4,%esp +movl 20(%ebp),%edi +cmpl 28(%ebp),%edi +jl .LC57 +cmpl 36(%ebp),%edi +jge .LC57 +movl 32(%ebp),%edi +cmpl %edi,24(%ebp) +jl .LC57 +movl 40(%ebp),%edi +cmpl %edi,24(%ebp) +jge .LC57 +movl $1,-4(%ebp) +jmp .LC58 +.LC57: +movl $0,-4(%ebp) +.LC58: +movl -4(%ebp),%eax +.LC49: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf59: +.size ptinrect,.Lf59-ptinrect +.data +.globl y +.align 4 +.type y,@object +.size y,4 +y: +.byte 97 +.byte 98 +.byte 0 +.space 1 +.globl odd +.text +.align 16 +.type odd,@function +odd: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $4,%esp +leal -4(%ebp),%edi +leal 20(%ebp),%esi +movl $4,%ecx +rep +movsb +leal -4(%ebp),%edi +pushl %edi +pushl $.LC61 +call printf +addl $8,%esp +movl $0,%eax +.LC60: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf62: +.size odd,.Lf62-odd +.data +.align 4 +.LC64: +.long 0 +.long 0 +.align 4 +.LC65: +.long 320 +.long 320 +.align 4 +.LC66: +.long -1 +.long -1 +.long 1 +.long 1 +.long 20 +.long 300 +.long 500 +.long 400 +.globl main +.text +.align 16 +.type main,@function +main: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $108,%esp +leal -68(%ebp),%edi +leal .LC64,%esi +movl $8,%ecx +rep +movsb +leal -76(%ebp),%edi +leal .LC65,%esi +movl $8,%ecx +rep +movsb +leal -36(%ebp),%edi +leal .LC66,%esi +movl $32,%ecx +rep +movsb +pushl $-10 +pushl $-10 +leal -84(%ebp),%edi +pushl %edi +call makepoint +addl $12,%esp +leal -84(%ebp),%esi +subl $8,%esp +movl %esp,%edi +movl $8,%ecx +rep +movsb +leal -76(%ebp),%esi +subl $8,%esp +movl %esp,%edi +movl $8,%ecx +rep +movsb +leal -92(%ebp),%edi +pushl %edi +call addpoint +addl $20,%esp +pushl $10 +pushl $10 +leal -100(%ebp),%edi +pushl %edi +call makepoint +addl $12,%esp +leal -100(%ebp),%esi +subl $8,%esp +movl %esp,%edi +movl $8,%ecx +rep +movsb +leal -68(%ebp),%esi +subl $8,%esp +movl %esp,%edi +movl $8,%ecx +rep +movsb +leal -108(%ebp),%edi +pushl %edi +call addpoint +addl $20,%esp +leal -108(%ebp),%esi +subl $8,%esp +movl %esp,%edi +movl $8,%ecx +rep +movsb +leal -92(%ebp),%esi +subl $8,%esp +movl %esp,%edi +movl $8,%ecx +rep +movsb +leal -52(%ebp),%edi +pushl %edi +call makerect +addl $20,%esp +movl $0,-4(%ebp) +jmp .LC70 +.LC67: +movl -4(%ebp),%edi +leal (,%edi,8),%edi +leal -32(%ebp),%esi +pushl (%esi,%edi) +leal -36(%ebp),%esi +pushl (%esi,%edi) +leal -60(%ebp),%edi +pushl %edi +call makepoint +addl $12,%esp +pushl -56(%ebp) +movl -4(%ebp),%edi +leal -36(%ebp),%esi +pushl (%esi,%edi,8) +pushl $.LC71 +call printf +addl $12,%esp +leal -52(%ebp),%esi +subl $16,%esp +movl %esp,%edi +movl $16,%ecx +rep +movsb +leal -60(%ebp),%esi +subl $8,%esp +movl %esp,%edi +movl $8,%ecx +rep +movsb +call ptinrect +addl $24,%esp +cmpl $0,%eax +jne .LC74 +pushl $.LC76 +call printf +addl $4,%esp +.LC74: +pushl -40(%ebp) +pushl -44(%ebp) +pushl -48(%ebp) +pushl -52(%ebp) +pushl $.LC77 +call printf +addl $20,%esp +.LC68: +incl -4(%ebp) +.LC70: +movl -4(%ebp),%edi +cmpl $4,%edi +jb .LC67 +leal y,%esi +subl $4,%esp +movl %esp,%edi +movl $4,%ecx +rep +movsb +call odd +addl $4,%esp +pushl $0 +call exit +addl $4,%esp +movl $0,%eax +.LC63: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf82: +.size main,.Lf82-main +.data +.align 1 +.LC77: +.byte 119 +.byte 105 +.byte 116 +.byte 104 +.byte 105 +.byte 110 +.byte 32 +.byte 91 +.byte 37 +.byte 100 +.byte 44 +.byte 37 +.byte 100 +.byte 59 +.byte 32 +.byte 37 +.byte 100 +.byte 44 +.byte 37 +.byte 100 +.byte 93 +.byte 10 +.byte 0 +.align 1 +.LC76: +.byte 110 +.byte 111 +.byte 116 +.byte 32 +.byte 0 +.align 1 +.LC71: +.byte 40 +.byte 37 +.byte 100 +.byte 44 +.byte 37 +.byte 100 +.byte 41 +.byte 32 +.byte 105 +.byte 115 +.byte 32 +.byte 0 +.align 1 +.LC61: +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.text +.ident "LCC: 4.1" diff --git a/code/tools/lcc/x86/linux/tst/switch.1bk b/code/tools/lcc/x86/linux/tst/switch.1bk new file mode 100644 index 0000000..de46a73 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/switch.1bk @@ -0,0 +1,76 @@ +b = 0x8 +f = 0xc +n = 0xa +r = 0xd +t = 0x9 +v = 0xb +x = 0x78 +f: +x = 0 +x = 1 +x = 2 +x = 2 +x = 2 +x = 2 +x = 2 +x = 7 +x = 8 +x = 9 +x = 9 +x = 9 +x = 9 +x = 9 +x = 9 +x = 9 +x = 16 +x = 17 +x = 18 +x = 19 +x = 20 +g: +1 1 +1 2 +2 3 +2 4 +2 5 +3 6 +d 6 +3 7 +d 7 +3 8 +d 8 +d 9 +d 10 +h: +i = 8 +i = 16 +i = 120 +i = 128 +i = 248 +i = 264 +i = 272 +i = 280 +i = 288 +i = 296 +i = 304 +i = 312 +488 defaults +x = 0x1000000 +x = 0x2000000 +x = 0x3000000 +x = 0x4000000 +x = 0x5000000 +x = 0x6000000 (default) +x = 0x7000000 (default) +0 +1 +2 +3 +4 +5 +0 +1 +2 +3 +4 +5 diff --git a/code/tools/lcc/x86/linux/tst/switch.2bk b/code/tools/lcc/x86/linux/tst/switch.2bk new file mode 100644 index 0000000..709b419 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/switch.2bk @@ -0,0 +1,5 @@ +tst/switch.c:55: warning: missing return value +tst/switch.c:73: warning: missing return value +tst/switch.c:97: warning: missing return value +tst/switch.c:112: warning: missing return value +tst/switch.c:137: warning: missing return value diff --git a/code/tools/lcc/x86/linux/tst/switch.sbk b/code/tools/lcc/x86/linux/tst/switch.sbk new file mode 100644 index 0000000..2825130 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/switch.sbk @@ -0,0 +1,899 @@ +.globl main +.text +.align 16 +.type main,@function +main: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $8,%esp +leal .LC6,%edi +movl %edi,-4(%ebp) +jmp .LC5 +.LC2: +movl -4(%ebp),%edi +movsbl (,%edi),%edi +pushl %edi +call backslash +addl $4,%esp +pushl %eax +movl -4(%ebp),%edi +movsbl (,%edi),%edi +pushl %edi +pushl $.LC7 +call printf +addl $12,%esp +.LC3: +incl -4(%ebp) +.LC5: +movl -4(%ebp),%edi +movsbl (,%edi),%edi +cmpl $0,%edi +jne .LC2 +call f +call g +call h +movl $16777216,-8(%ebp) +jmp .LC11 +.LC8: +pushl -8(%ebp) +call big +addl $4,%esp +.LC9: +addl $16777216,-8(%ebp) +.LC11: +movl -8(%ebp),%edi +andl $117440512,%edi +cmpl $0,%edi +jne .LC8 +call limit +movl $0,%eax +.LC1: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf12: +.size main,.Lf12-main +.globl backslash +.align 16 +.type backslash,@function +backslash: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl 20(%ebp),%edi +cmpl $102,%edi +je .LC17 +cmpl $102,%edi +jg .LC23 +.LC22: +cmpl $98,20(%ebp) +je .LC16 +jmp .LC14 +.LC23: +movl 20(%ebp),%edi +cmpl $110,%edi +je .LC18 +cmpl $110,%edi +jl .LC14 +.LC24: +movl 20(%ebp),%edi +cmpl $114,%edi +je .LC19 +cmpl $116,%edi +je .LC20 +cmpl $118,%edi +je .LC21 +jmp .LC14 +.LC16: +movl $8,%eax +jmp .LC13 +.LC17: +movl $12,%eax +jmp .LC13 +.LC18: +movl $10,%eax +jmp .LC13 +.LC19: +movl $13,%eax +jmp .LC13 +.LC20: +movl $9,%eax +jmp .LC13 +.LC21: +movl $11,%eax +jmp .LC13 +.LC14: +movl 20(%ebp),%eax +.LC13: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf25: +.size backslash,.Lf25-backslash +.globl f +.align 16 +.type f,@function +f: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $12,%esp +movl $0,-8(%ebp) +pushl $.LC27 +call printf +addl $4,%esp +movl $0,-4(%ebp) +.LC28: +movl -4(%ebp),%edi +movl %edi,-12(%ebp) +movl -4(%ebp),%edi +cmpl $1,%edi +jl .LC32 +cmpl $20,%edi +jg .LC32 +jmp *.LC44-4(,%edi,4) +.data +.align 4 +.LC44: +.long .LC34 +.long .LC35 +.long .LC32 +.long .LC32 +.long .LC32 +.long .LC32 +.long .LC36 +.long .LC37 +.long .LC38 +.long .LC32 +.long .LC32 +.long .LC32 +.long .LC32 +.long .LC32 +.long .LC32 +.long .LC39 +.long .LC40 +.long .LC41 +.long .LC42 +.long .LC43 +.text +.LC34: +movl -4(%ebp),%edi +movl %edi,-8(%ebp) +jmp .LC33 +.LC35: +movl -4(%ebp),%edi +movl %edi,-8(%ebp) +jmp .LC33 +.LC36: +movl -4(%ebp),%edi +movl %edi,-8(%ebp) +jmp .LC33 +.LC37: +movl -4(%ebp),%edi +movl %edi,-8(%ebp) +jmp .LC33 +.LC38: +movl -4(%ebp),%edi +movl %edi,-8(%ebp) +jmp .LC33 +.LC39: +movl -4(%ebp),%edi +movl %edi,-8(%ebp) +jmp .LC33 +.LC40: +movl -4(%ebp),%edi +movl %edi,-8(%ebp) +jmp .LC33 +.LC41: +movl -4(%ebp),%edi +movl %edi,-8(%ebp) +jmp .LC33 +.LC42: +movl -4(%ebp),%edi +movl %edi,-8(%ebp) +jmp .LC33 +.LC43: +movl -4(%ebp),%edi +movl %edi,-8(%ebp) +.LC32: +.LC33: +pushl -8(%ebp) +pushl $.LC46 +call printf +addl $8,%esp +.LC29: +incl -4(%ebp) +cmpl $20,-4(%ebp) +jle .LC28 +movl $0,%eax +.LC26: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf47: +.size f,.Lf47-f +.globl g +.align 16 +.type g,@function +g: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $4,%esp +pushl $.LC49 +call printf +addl $4,%esp +movl $1,-4(%ebp) +.LC50: +movl -4(%ebp),%edi +cmpl $1001,%edi +jl .LC67 +cmpl $1004,%edi +jg .LC68 +jmp *.LC69-4004(,%edi,4) +.data +.align 4 +.LC69: +.long .LC63 +.long .LC63 +.long .LC63 +.long .LC63 +.text +.LC67: +movl -4(%ebp),%edi +cmpl $1,%edi +jl .LC54 +cmpl $8,%edi +jg .LC54 +jmp *.LC71-4(,%edi,4) +.data +.align 4 +.LC71: +.long .LC56 +.long .LC56 +.long .LC58 +.long .LC58 +.long .LC58 +.long .LC60 +.long .LC60 +.long .LC60 +.text +.LC68: +movl -4(%ebp),%edi +cmpl $3001,%edi +jl .LC54 +cmpl $3004,%edi +jg .LC54 +jmp *.LC73-12004(,%edi,4) +.data +.align 4 +.LC73: +.long .LC65 +.long .LC65 +.long .LC65 +.long .LC65 +.text +.LC56: +pushl -4(%ebp) +pushl $.LC57 +call printf +addl $8,%esp +jmp .LC55 +.LC58: +pushl -4(%ebp) +pushl $.LC59 +call printf +addl $8,%esp +jmp .LC55 +.LC60: +pushl -4(%ebp) +pushl $.LC61 +call printf +addl $8,%esp +.LC54: +pushl -4(%ebp) +pushl $.LC62 +call printf +addl $8,%esp +jmp .LC55 +.LC63: +pushl -4(%ebp) +pushl $.LC64 +call printf +addl $8,%esp +jmp .LC55 +.LC65: +pushl -4(%ebp) +pushl $.LC66 +call printf +addl $8,%esp +.LC55: +.LC51: +incl -4(%ebp) +cmpl $10,-4(%ebp) +jle .LC50 +movl $0,%eax +.LC48: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf75: +.size g,.Lf75-g +.globl h +.align 16 +.type h,@function +h: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $8,%esp +movl $0,-8(%ebp) +pushl $.LC77 +call printf +addl $4,%esp +movl $1,-4(%ebp) +.LC78: +movl -4(%ebp),%edi +cmpl $264,%edi +je .LC90 +cmpl $264,%edi +jg .LC98 +.LC97: +movl -4(%ebp),%edi +cmpl $120,%edi +je .LC88 +cmpl $120,%edi +jg .LC100 +.LC99: +movl -4(%ebp),%edi +cmpl $8,%edi +je .LC87 +cmpl $8,%edi +jl .LC82 +.LC101: +cmpl $16,-4(%ebp) +je .LC86 +jmp .LC82 +.LC100: +movl -4(%ebp),%edi +cmpl $128,%edi +je .LC84 +cmpl $128,%edi +jl .LC82 +.LC102: +cmpl $248,-4(%ebp) +je .LC91 +jmp .LC82 +.LC98: +movl -4(%ebp),%edi +cmpl $288,%edi +je .LC95 +cmpl $288,%edi +jg .LC104 +.LC103: +movl -4(%ebp),%edi +cmpl $272,%edi +je .LC92 +cmpl $272,%edi +jl .LC82 +.LC105: +cmpl $280,-4(%ebp) +je .LC89 +jmp .LC82 +.LC104: +movl -4(%ebp),%edi +cmpl $304,%edi +je .LC93 +cmpl $304,%edi +jg .LC107 +.LC106: +cmpl $296,-4(%ebp) +je .LC94 +jmp .LC82 +.LC107: +cmpl $312,-4(%ebp) +je .LC96 +jmp .LC82 +.LC82: +incl -8(%ebp) +jmp .LC79 +.LC84: +pushl -4(%ebp) +pushl $.LC85 +call printf +addl $8,%esp +jmp .LC83 +.LC86: +pushl -4(%ebp) +pushl $.LC85 +call printf +addl $8,%esp +jmp .LC83 +.LC87: +pushl -4(%ebp) +pushl $.LC85 +call printf +addl $8,%esp +jmp .LC83 +.LC88: +pushl -4(%ebp) +pushl $.LC85 +call printf +addl $8,%esp +jmp .LC83 +.LC89: +pushl -4(%ebp) +pushl $.LC85 +call printf +addl $8,%esp +jmp .LC83 +.LC90: +pushl -4(%ebp) +pushl $.LC85 +call printf +addl $8,%esp +jmp .LC83 +.LC91: +pushl -4(%ebp) +pushl $.LC85 +call printf +addl $8,%esp +jmp .LC83 +.LC92: +pushl -4(%ebp) +pushl $.LC85 +call printf +addl $8,%esp +jmp .LC83 +.LC93: +pushl -4(%ebp) +pushl $.LC85 +call printf +addl $8,%esp +jmp .LC83 +.LC94: +pushl -4(%ebp) +pushl $.LC85 +call printf +addl $8,%esp +jmp .LC83 +.LC95: +pushl -4(%ebp) +pushl $.LC85 +call printf +addl $8,%esp +jmp .LC83 +.LC96: +pushl -4(%ebp) +pushl $.LC85 +call printf +addl $8,%esp +.LC83: +.LC79: +incl -4(%ebp) +cmpl $500,-4(%ebp) +jle .LC78 +pushl -8(%ebp) +pushl $.LC108 +call printf +addl $8,%esp +movl $0,%eax +.LC76: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf109: +.size h,.Lf109-h +.globl big +.align 16 +.type big,@function +big: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $4,%esp +movl 20(%ebp),%edi +andl $0x6000000,%edi +movl %edi,-4(%ebp) +movl -4(%ebp),%edi +cmpl $33554432,%edi +je .LC116 +cmpl $33554432,%edi +jg .LC120 +.LC119: +movl -4(%ebp),%edi +cmpl $-2,%edi +je .LC114 +cmpl $-1,%edi +je .LC114 +cmpl $0,%edi +je .LC114 +jmp .LC111 +.LC120: +movl -4(%ebp),%edi +cmpl $67108864,%edi +je .LC117 +jmp .LC111 +.LC114: +pushl 20(%ebp) +pushl $.LC115 +call printf +addl $8,%esp +jmp .LC112 +.LC116: +pushl 20(%ebp) +pushl $.LC115 +call printf +addl $8,%esp +jmp .LC112 +.LC117: +pushl 20(%ebp) +pushl $.LC115 +call printf +addl $8,%esp +jmp .LC112 +.LC111: +pushl 20(%ebp) +pushl $.LC118 +call printf +addl $8,%esp +.LC112: +movl $0,%eax +.LC110: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf121: +.size big,.Lf121-big +.globl limit +.align 16 +.type limit,@function +limit: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $4,%esp +movl $-2147483648,-4(%ebp) +.LC123: +movl -4(%ebp),%edi +movl $-2147483648,%esi +cmpl $-2147483648,%edi +jl .LC127 +cmpl $-2147483644,%edi +jg .LC127 +leal (,%edi,4),%edi +leal (,%esi,4),%esi +subl %esi,%edi +jmp *.LC140(%edi) +.data +.align 4 +.LC140: +.long .LC129 +.long .LC131 +.long .LC133 +.long .LC135 +.long .LC137 +.text +.LC129: +pushl $.LC130 +call printf +addl $4,%esp +jmp .LC128 +.LC131: +pushl $.LC132 +call printf +addl $4,%esp +jmp .LC128 +.LC133: +pushl $.LC134 +call printf +addl $4,%esp +jmp .LC128 +.LC135: +pushl $.LC136 +call printf +addl $4,%esp +jmp .LC128 +.LC137: +pushl $.LC138 +call printf +addl $4,%esp +jmp .LC128 +.LC127: +pushl $.LC139 +call printf +addl $4,%esp +.LC128: +.LC124: +incl -4(%ebp) +cmpl $-2147483643,-4(%ebp) +jle .LC123 +movl $2147483647,-4(%ebp) +.LC141: +movl -4(%ebp),%edi +movl $2147483643,%esi +cmpl $2147483643,%edi +jl .LC145 +cmpl $2147483647,%edi +jg .LC145 +leal (,%edi,4),%edi +leal (,%esi,4),%esi +subl %esi,%edi +jmp *.LC152(%edi) +.data +.align 4 +.LC152: +.long .LC151 +.long .LC150 +.long .LC149 +.long .LC148 +.long .LC147 +.text +.LC147: +pushl $.LC130 +call printf +addl $4,%esp +jmp .LC146 +.LC148: +pushl $.LC132 +call printf +addl $4,%esp +jmp .LC146 +.LC149: +pushl $.LC134 +call printf +addl $4,%esp +jmp .LC146 +.LC150: +pushl $.LC136 +call printf +addl $4,%esp +jmp .LC146 +.LC151: +pushl $.LC138 +call printf +addl $4,%esp +jmp .LC146 +.LC145: +pushl $.LC139 +call printf +addl $4,%esp +.LC146: +.LC142: +decl -4(%ebp) +cmpl $2147483642,-4(%ebp) +jge .LC141 +movl $0,%eax +.LC122: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf153: +.size limit,.Lf153-limit +.data +.align 1 +.LC139: +.byte 53 +.byte 10 +.byte 0 +.align 1 +.LC138: +.byte 52 +.byte 10 +.byte 0 +.align 1 +.LC136: +.byte 51 +.byte 10 +.byte 0 +.align 1 +.LC134: +.byte 50 +.byte 10 +.byte 0 +.align 1 +.LC132: +.byte 49 +.byte 10 +.byte 0 +.align 1 +.LC130: +.byte 48 +.byte 10 +.byte 0 +.align 1 +.LC118: +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 48 +.byte 120 +.byte 37 +.byte 120 +.byte 32 +.byte 40 +.byte 100 +.byte 101 +.byte 102 +.byte 97 +.byte 117 +.byte 108 +.byte 116 +.byte 41 +.byte 10 +.byte 0 +.align 1 +.LC115: +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 48 +.byte 120 +.byte 37 +.byte 120 +.byte 10 +.byte 0 +.align 1 +.LC108: +.byte 37 +.byte 100 +.byte 32 +.byte 100 +.byte 101 +.byte 102 +.byte 97 +.byte 117 +.byte 108 +.byte 116 +.byte 115 +.byte 10 +.byte 0 +.align 1 +.LC85: +.byte 105 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.LC77: +.byte 104 +.byte 58 +.byte 10 +.byte 0 +.align 1 +.LC66: +.byte 54 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.LC64: +.byte 53 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.LC62: +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.LC61: +.byte 51 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.LC59: +.byte 50 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.LC57: +.byte 49 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.LC49: +.byte 103 +.byte 58 +.byte 10 +.byte 0 +.align 1 +.LC46: +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.LC27: +.byte 102 +.byte 58 +.byte 10 +.byte 0 +.align 1 +.LC7: +.byte 37 +.byte 99 +.byte 32 +.byte 61 +.byte 32 +.byte 48 +.byte 120 +.byte 37 +.byte 120 +.byte 10 +.byte 0 +.align 1 +.LC6: +.byte 98 +.byte 102 +.byte 110 +.byte 114 +.byte 116 +.byte 118 +.byte 120 +.byte 0 +.text +.ident "LCC: 4.1" diff --git a/code/tools/lcc/x86/linux/tst/wf1.1bk b/code/tools/lcc/x86/linux/tst/wf1.1bk new file mode 100644 index 0000000..a846267 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/wf1.1bk @@ -0,0 +1,74 @@ +5 a +2 and +5 buf +16 c +8 char +1 compare +4 cond +5 count +1 d +1 die +3 else +1 entry +1 eof +4 err +1 error +1 exit +1 folded +1 for +1 free +1 frequencies +1 frequency +1 get +2 getchar +3 getword +14 if +2 in +1 index +1 input +1 install +8 int +1 into +1 is +4 isletter +1 it +1 itself +5 left +1 letter +7 lookup +1 main +2 malloc +1 message +2 n +1 necessary +12 next +9 node +4 of +1 on +1 or +1 otherwise +2 out +8 p +3 print +2 printf +16 return +5 right +4 root +25 s +2 storage +3 strcmp +1 strcpy +1 strlen +8 struct +1 structures +2 subtree +1 t +5 tprint +9 tree +1 uses +1 version +1 wf +3 while +21 word +9 words +2 z diff --git a/code/tools/lcc/x86/linux/tst/wf1.2bk b/code/tools/lcc/x86/linux/tst/wf1.2bk new file mode 100644 index 0000000..190e4a1 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/wf1.2bk @@ -0,0 +1,2 @@ +tst/wf1.c:29: warning: missing return value +tst/wf1.c:87: warning: missing return value diff --git a/code/tools/lcc/x86/linux/tst/wf1.sbk b/code/tools/lcc/x86/linux/tst/wf1.sbk new file mode 100644 index 0000000..1c3ff04 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/wf1.sbk @@ -0,0 +1,437 @@ +.globl main +.text +.align 16 +.type main,@function +main: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $24,%esp +movl $0,-24(%ebp) +movl $0,next +jmp .LC3 +.LC2: +leal -24(%ebp),%edi +pushl %edi +leal -20(%ebp),%edi +pushl %edi +call lookup +addl $8,%esp +incl (,%eax) +.LC3: +leal -20(%ebp),%edi +pushl %edi +call getword +addl $4,%esp +cmpl $0,%eax +jne .LC2 +pushl -24(%ebp) +call tprint +addl $4,%esp +movl $0,%eax +.LC1: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf5: +.size main,.Lf5-main +.globl err +.align 16 +.type err,@function +err: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +pushl 20(%ebp) +pushl $.LC7 +call printf +addl $8,%esp +pushl $1 +call exit +addl $4,%esp +movl $0,%eax +.LC6: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf8: +.size err,.Lf8-err +.globl getword +.align 16 +.type getword,@function +getword: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $8,%esp +.LC10: +.LC11: +call getchar +movl %eax,%edi +movl %edi,-4(%ebp) +cmpl $-1,%edi +je .LC13 +pushl -4(%ebp) +call isletter +addl $4,%esp +cmpl $0,%eax +je .LC10 +.LC13: +movl 20(%ebp),%edi +movl %edi,-8(%ebp) +jmp .LC17 +.LC14: +movl -8(%ebp),%edi +leal 1(%edi),%esi +movl %esi,-8(%ebp) +movl -4(%ebp),%esi +movl %esi,%ebx +movb %bl,(,%edi) +.LC15: +call getchar +movl %eax,-4(%ebp) +.LC17: +pushl -4(%ebp) +call isletter +addl $4,%esp +movl %eax,-4(%ebp) +cmpl $0,%eax +jne .LC14 +movl -8(%ebp),%edi +movb $0,(,%edi) +movl -8(%ebp),%edi +movl 20(%ebp),%esi +cmpl %esi,%edi +jbe .LC18 +movl $1,%eax +jmp .LC9 +.LC18: +movl $0,%eax +.LC9: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf20: +.size getword,.Lf20-getword +.globl isletter +.align 16 +.type isletter,@function +isletter: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl 20(%ebp),%edi +cmpl $65,%edi +jl .LC22 +cmpl $90,%edi +jg .LC22 +addl $32,20(%ebp) +.LC22: +movl 20(%ebp),%edi +cmpl $97,%edi +jl .LC24 +cmpl $122,%edi +jg .LC24 +movl 20(%ebp),%eax +jmp .LC21 +.LC24: +movl $0,%eax +.LC21: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf26: +.size isletter,.Lf26-isletter +.globl lookup +.align 16 +.type lookup,@function +lookup: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $4,%esp +movl 24(%ebp),%edi +movl (,%edi),%edi +cmpl $0,%edi +je .LC28 +movl 24(%ebp),%edi +movl (,%edi),%edi +pushl 12(%edi) +pushl 20(%ebp) +call strcmp +addl $8,%esp +movl %eax,-4(%ebp) +cmpl $0,-4(%ebp) +jge .LC30 +movl 24(%ebp),%edi +movl (,%edi),%edi +leal 4(%edi),%edi +pushl %edi +pushl 20(%ebp) +call lookup +addl $8,%esp +movl %eax,%edi +jmp .LC27 +.LC30: +cmpl $0,-4(%ebp) +jle .LC32 +movl 24(%ebp),%edi +movl (,%edi),%edi +leal 8(%edi),%edi +pushl %edi +pushl 20(%ebp) +call lookup +addl $8,%esp +movl %eax,%edi +jmp .LC27 +.LC32: +movl 24(%ebp),%edi +movl (,%edi),%eax +jmp .LC27 +.LC28: +cmpl $2000,next +jl .LC34 +pushl $.LC36 +call err +addl $4,%esp +.LC34: +movl next,%edi +sall $4,%edi +movl $0,words(%edi) +movl next,%edi +sall $4,%edi +movl $0,words+8(%edi) +movl $0,words+4(%edi) +pushl 20(%ebp) +call strlen +addl $4,%esp +leal 1(%eax),%edi +pushl %edi +call malloc +addl $4,%esp +movl next,%esi +sall $4,%esi +movl %eax,words+12(%esi) +movl next,%edi +sall $4,%edi +movl words+12(%edi),%edi +cmpl $0,%edi +jne .LC40 +pushl $.LC43 +call err +addl $4,%esp +.LC40: +pushl 20(%ebp) +movl next,%edi +sall $4,%edi +pushl words+12(%edi) +call strcpy +addl $8,%esp +movl next,%edi +leal 1(%edi),%esi +movl %esi,next +sall $4,%edi +leal words(%edi),%edi +movl 24(%ebp),%esi +movl %edi,(,%esi) +movl %edi,%eax +.LC27: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf45: +.size lookup,.Lf45-lookup +.globl tprint +.align 16 +.type tprint,@function +tprint: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl 20(%ebp),%edi +cmpl $0,%edi +je .LC47 +movl 20(%ebp),%edi +pushl 4(%edi) +call tprint +addl $4,%esp +movl 20(%ebp),%edi +pushl 12(%edi) +pushl (,%edi) +pushl $.LC49 +call printf +addl $12,%esp +movl 20(%ebp),%edi +pushl 8(%edi) +call tprint +addl $4,%esp +.LC47: +movl $0,%eax +.LC46: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf50: +.size tprint,.Lf50-tprint +.globl strcmp +.align 16 +.type strcmp,@function +strcmp: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +jmp .LC53 +.LC52: +movl 20(%ebp),%edi +leal 1(%edi),%esi +movl %esi,20(%ebp) +movsbl (,%edi),%edi +cmpl $0,%edi +jne .LC55 +movl $0,%eax +jmp .LC51 +.LC55: +incl 24(%ebp) +.LC53: +movl 20(%ebp),%edi +movsbl (,%edi),%edi +movl 24(%ebp),%esi +movsbl (,%esi),%esi +cmpl %esi,%edi +je .LC52 +movl 20(%ebp),%edi +movsbl (,%edi),%edi +cmpl $0,%edi +jne .LC57 +movl $-1,%eax +jmp .LC51 +.LC57: +movl 24(%ebp),%edi +movsbl (,%edi),%edi +cmpl $0,%edi +jne .LC59 +movl $1,%eax +jmp .LC51 +.LC59: +movl 20(%ebp),%edi +movsbl (,%edi),%edi +movl 24(%ebp),%esi +movsbl (,%esi),%esi +movl %edi,%eax +subl %esi,%eax +.LC51: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf61: +.size strcmp,.Lf61-strcmp +.bss +.globl next +.align 4 +.type next,@object +.size next,4 +.comm next,4 +.globl words +.align 4 +.type words,@object +.size words,32000 +.comm words,32000 +.data +.align 1 +.LC49: +.byte 37 +.byte 100 +.byte 9 +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 1 +.LC43: +.byte 111 +.byte 117 +.byte 116 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 119 +.byte 111 +.byte 114 +.byte 100 +.byte 32 +.byte 115 +.byte 116 +.byte 111 +.byte 114 +.byte 97 +.byte 103 +.byte 101 +.byte 0 +.align 1 +.LC36: +.byte 111 +.byte 117 +.byte 116 +.byte 32 +.byte 111 +.byte 102 +.byte 32 +.byte 110 +.byte 111 +.byte 100 +.byte 101 +.byte 32 +.byte 115 +.byte 116 +.byte 111 +.byte 114 +.byte 97 +.byte 103 +.byte 101 +.byte 0 +.align 1 +.LC7: +.byte 63 +.byte 32 +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.text +.ident "LCC: 4.1" diff --git a/code/tools/lcc/x86/linux/tst/yacc.1bk b/code/tools/lcc/x86/linux/tst/yacc.1bk new file mode 100644 index 0000000..60de9b5 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/yacc.1bk @@ -0,0 +1,10 @@ +a +b +load +negate +push 5 +c +load +multiply +add +store diff --git a/code/tools/lcc/x86/linux/tst/yacc.2bk b/code/tools/lcc/x86/linux/tst/yacc.2bk new file mode 100644 index 0000000..9a4fd61 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/yacc.2bk @@ -0,0 +1,3 @@ +tst/yacc.c:345: warning: missing return value +tst/yacc.c:349: warning: missing return value +tst/yacc.c:359: warning: missing return value diff --git a/code/tools/lcc/x86/linux/tst/yacc.sbk b/code/tools/lcc/x86/linux/tst/yacc.sbk new file mode 100644 index 0000000..ca588d3 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/yacc.sbk @@ -0,0 +1,2526 @@ +.data +.globl yyin +.align 4 +.type yyin,@object +.size yyin,4 +yyin: +.long _IO_stdin_ +.globl yyout +.align 4 +.type yyout,@object +.size yyout,4 +yyout: +.long _IO_stdout_ +.globl yylex +.text +.align 16 +.type yylex,@function +yylex: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $4,%esp +jmp .LC3 +.LC2: +.LC5: +movl -4(%ebp),%edi +cmpl $-1,%edi +jl .LC6 +cmpl $4,%edi +jg .LC6 +jmp *.LC17+4(,%edi,4) +.data +.align 4 +.LC17: +.long .LC7 +.long .LC8 +.long .LC11 +.long .LC12 +.long .LC7 +.long .LC14 +.text +.LC8: +call yywrap +cmpl $0,%eax +je .LC7 +movl $0,%eax +jmp .LC1 +.LC11: +movl $257,%eax +jmp .LC1 +.LC12: +movl $258,%eax +jmp .LC1 +.LC14: +movsbl yytext,%eax +jmp .LC1 +.LC6: +pushl -4(%ebp) +pushl $.LC16 +pushl yyout +call fprintf +addl $12,%esp +.LC7: +.LC3: +call yylook +movl %eax,-4(%ebp) +cmpl $0,%eax +jge .LC2 +movl $0,%eax +.LC1: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf19: +.size yylex,.Lf19-yylex +.data +.globl yyvstop +.align 4 +.type yyvstop,@object +yyvstop: +.long 0 +.long 4 +.long 0 +.long 3 +.long 4 +.long 0 +.long 2 +.long 4 +.long 0 +.long 1 +.long 4 +.long 0 +.long 2 +.long 0 +.long 1 +.long 0 +.long 0 +.size yyvstop,68 +.globl yycrank +.align 4 +.type yycrank,@object +yycrank: +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 1 +.byte 3 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 1 +.byte 4 +.space 2 +.byte 1 +.byte 3 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 1 +.byte 5 +.space 2 +.byte 5 +.byte 7 +.space 2 +.byte 5 +.byte 7 +.space 2 +.byte 5 +.byte 7 +.space 2 +.byte 5 +.byte 7 +.space 2 +.byte 5 +.byte 7 +.space 2 +.byte 5 +.byte 7 +.space 2 +.byte 5 +.byte 7 +.space 2 +.byte 5 +.byte 7 +.space 2 +.byte 5 +.byte 7 +.space 2 +.byte 5 +.byte 7 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 1 +.byte 6 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 6 +.byte 8 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.byte 0 +.byte 0 +.space 2 +.size yycrank,580 +.globl yysvec +.align 4 +.type yysvec,@object +yysvec: +.long 0 +.long 0 +.long 0 +.long yycrank-4 +.long 0 +.long 0 +.long yycrank +.long yysvec+12 +.long 0 +.long yycrank +.long 0 +.long yyvstop+4 +.long yycrank +.long 0 +.long yyvstop+12 +.long yycrank+8 +.long 0 +.long yyvstop+24 +.long yycrank+76 +.long 0 +.long yyvstop+36 +.long yycrank +.long yysvec+60 +.long yyvstop+48 +.long yycrank +.long yysvec+72 +.long yyvstop+56 +.long 0 +.long 0 +.long 0 +.size yysvec,120 +.globl yytop +.align 4 +.type yytop,@object +.size yytop,4 +yytop: +.long yycrank+564 +.globl yybgin +.align 4 +.type yybgin,@object +.size yybgin,4 +yybgin: +.long yysvec+12 +.globl yymatch +.align 1 +.type yymatch,@object +yymatch: +.byte 0 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 9 +.byte 10 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 9 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 48 +.byte 48 +.byte 48 +.byte 48 +.byte 48 +.byte 48 +.byte 48 +.byte 48 +.byte 48 +.byte 48 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 65 +.byte 1 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 65 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 1 +.byte 0 +.size yymatch,129 +.globl yyextra +.align 1 +.type yyextra,@object +yyextra: +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.byte 0 +.size yyextra,9 +.globl yylineno +.align 4 +.type yylineno,@object +.size yylineno,4 +yylineno: +.long 1 +.globl yysptr +.align 4 +.type yysptr,@object +.size yysptr,4 +yysptr: +.long yysbuf +.globl yyprevious +.align 4 +.type yyprevious,@object +.size yyprevious,4 +yyprevious: +.long 10 +.globl yylook +.text +.align 16 +.type yylook,@function +yylook: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $44,%esp +cmpl $0,yymorfg +jne .LC35 +leal yytext,%edi +movl %edi,-16(%ebp) +jmp .LC36 +.LC35: +movl $0,yymorfg +movl yyleng,%edi +leal yytext(%edi),%edi +movl %edi,-16(%ebp) +.LC36: +.LC37: +leal yylstate,%edi +movl %edi,-8(%ebp) +movl yybgin,%edi +movl %edi,-4(%ebp) +movl %edi,yyestate +cmpl $10,yyprevious +jne .LC41 +movl -4(%ebp),%edi +leal 12(%edi),%edi +movl %edi,-4(%ebp) +.LC41: +.LC43: +movl -4(%ebp),%edi +movl (,%edi),%edi +movl %edi,-12(%ebp) +movl -12(%ebp),%edi +leal yycrank,%esi +cmpl %esi,%edi +jne .LC47 +movl -4(%ebp),%edi +movl 4(%edi),%edi +movl %edi,-28(%ebp) +movl -28(%ebp),%edi +cmpl $0,%edi +jne .LC49 +jmp .LC94 +.LC49: +movl -28(%ebp),%edi +movl (,%edi),%edi +leal yycrank,%esi +cmpl %esi,%edi +jne .LC51 +jmp .LC94 +.LC51: +.LC47: +movl -16(%ebp),%edi +leal 1(%edi),%esi +movl %esi,-16(%ebp) +movl yysptr,%esi +leal yysbuf,%ebx +cmpl %ebx,%esi +jbe .LC61 +movl yysptr,%esi +leal -1(%esi),%esi +movl %esi,yysptr +movsbl (,%esi),%esi +movl %esi,-40(%ebp) +jmp .LC62 +.LC61: +movl yyin,%esi +movl 4(%esi),%ebx +movl 8(%esi),%esi +cmpl %esi,%ebx +jb .LC63 +pushl yyin +call __uflow +addl $4,%esp +movl %eax,%esi +movl %esi,-44(%ebp) +jmp .LC64 +.LC63: +movl yyin,%esi +leal 4(%esi),%esi +movl (,%esi),%ebx +leal 1(%ebx),%edx +movl %edx,(,%esi) +movb (,%ebx),%bl +movzbl %bl,%esi +movl %esi,-44(%ebp) +.LC64: +movl -44(%ebp),%esi +movl %esi,-40(%ebp) +.LC62: +movl -40(%ebp),%esi +movl %esi,yytchar +cmpl $10,%esi +jne .LC59 +incl yylineno +movl yytchar,%esi +movl %esi,-36(%ebp) +jmp .LC60 +.LC59: +movl yytchar,%esi +movl %esi,-36(%ebp) +.LC60: +cmpl $-1,-36(%ebp) +jne .LC57 +movl $0,-32(%ebp) +jmp .LC58 +.LC57: +movl yytchar,%esi +movl %esi,-32(%ebp) +.LC58: +movl -32(%ebp),%esi +movl %esi,-20(%ebp) +movl %esi,%ebx +movb %bl,(,%edi) +.LC65: +movl -12(%ebp),%edi +movl %edi,-24(%ebp) +leal yycrank,%esi +cmpl %esi,%edi +jbe .LC66 +movl -20(%ebp),%edi +movl -24(%ebp),%esi +leal (%esi,%edi,4),%edi +movl %edi,-12(%ebp) +movl -12(%ebp),%edi +movl %edi,%esi +movl yytop,%ebx +cmpl %ebx,%esi +ja .LC67 +movsbl (,%edi),%edi +imul $12,%edi,%edi +leal yysvec(%edi),%edi +movl -4(%ebp),%esi +cmpl %esi,%edi +jne .LC67 +leal yysvec,%edi +movl -12(%ebp),%esi +movsbl 1(%esi),%esi +imul $12,%esi,%esi +leal yysvec(%esi),%esi +cmpl %edi,%esi +jne .LC70 +movl -16(%ebp),%edi +leal -1(%edi),%edi +movl %edi,-16(%ebp) +movsbl (,%edi),%edi +movl %edi,yytchar +cmpl $10,yytchar +jne .LC72 +decl yylineno +.LC72: +movl yysptr,%edi +leal 1(%edi),%esi +movl %esi,yysptr +movl yytchar,%esi +movl %esi,%ebx +movb %bl,(,%edi) +jmp .LC94 +.LC70: +movl -8(%ebp),%edi +leal 4(%edi),%esi +movl %esi,-8(%ebp) +movl -12(%ebp),%esi +movsbl 1(%esi),%esi +imul $12,%esi,%esi +leal yysvec(%esi),%esi +movl %esi,-4(%ebp) +movl %esi,(,%edi) +jmp .LC43 +.LC66: +movl -12(%ebp),%edi +leal yycrank,%esi +cmpl %esi,%edi +jae .LC75 +leal yycrank,%edi +movl -12(%ebp),%esi +subl %esi,%edi +movl %edi,%eax +movl $4,%ecx +cdq +idivl %ecx +leal yycrank(,%eax,4),%edi +movl %edi,-24(%ebp) +movl %edi,-12(%ebp) +movl -20(%ebp),%edi +movl -12(%ebp),%esi +leal (%esi,%edi,4),%edi +movl %edi,-12(%ebp) +movl -12(%ebp),%edi +movl %edi,%esi +movl yytop,%ebx +cmpl %ebx,%esi +ja .LC77 +movsbl (,%edi),%edi +imul $12,%edi,%edi +leal yysvec(%edi),%edi +movl -4(%ebp),%esi +cmpl %esi,%edi +jne .LC77 +leal yysvec,%edi +movl -12(%ebp),%esi +movsbl 1(%esi),%esi +imul $12,%esi,%esi +leal yysvec(%esi),%esi +cmpl %edi,%esi +jne .LC79 +movl -16(%ebp),%edi +leal -1(%edi),%edi +movl %edi,-16(%ebp) +movsbl (,%edi),%edi +movl %edi,yytchar +cmpl $10,yytchar +jne .LC81 +decl yylineno +.LC81: +movl yysptr,%edi +leal 1(%edi),%esi +movl %esi,yysptr +movl yytchar,%esi +movl %esi,%ebx +movb %bl,(,%edi) +jmp .LC94 +.LC79: +movl -8(%ebp),%edi +leal 4(%edi),%esi +movl %esi,-8(%ebp) +movl -12(%ebp),%esi +movsbl 1(%esi),%esi +imul $12,%esi,%esi +leal yysvec(%esi),%esi +movl %esi,-4(%ebp) +movl %esi,(,%edi) +jmp .LC43 +.LC77: +movl -20(%ebp),%edi +movsbl yymatch(%edi),%edi +movl -24(%ebp),%esi +leal (%esi,%edi,4),%edi +movl %edi,-12(%ebp) +movl -12(%ebp),%edi +movl %edi,%esi +movl yytop,%ebx +cmpl %ebx,%esi +ja .LC83 +movsbl (,%edi),%edi +imul $12,%edi,%edi +leal yysvec(%edi),%edi +movl -4(%ebp),%esi +cmpl %esi,%edi +jne .LC83 +leal yysvec,%edi +movl -12(%ebp),%esi +movsbl 1(%esi),%esi +imul $12,%esi,%esi +leal yysvec(%esi),%esi +cmpl %edi,%esi +jne .LC85 +movl -16(%ebp),%edi +leal -1(%edi),%edi +movl %edi,-16(%ebp) +movsbl (,%edi),%edi +movl %edi,yytchar +cmpl $10,yytchar +jne .LC87 +decl yylineno +.LC87: +movl yysptr,%edi +leal 1(%edi),%esi +movl %esi,yysptr +movl yytchar,%esi +movl %esi,%ebx +movb %bl,(,%edi) +jmp .LC94 +.LC85: +movl -8(%ebp),%edi +leal 4(%edi),%esi +movl %esi,-8(%ebp) +movl -12(%ebp),%esi +movsbl 1(%esi),%esi +imul $12,%esi,%esi +leal yysvec(%esi),%esi +movl %esi,-4(%ebp) +movl %esi,(,%edi) +jmp .LC43 +.LC83: +.LC75: +.LC67: +movl -4(%ebp),%edi +movl 4(%edi),%edi +movl %edi,-4(%ebp) +cmpl $0,%edi +je .LC89 +movl -4(%ebp),%edi +movl (,%edi),%edi +movl %edi,-12(%ebp) +leal yycrank,%esi +cmpl %esi,%edi +je .LC89 +jmp .LC65 +.LC89: +movl -16(%ebp),%edi +leal -1(%edi),%edi +movl %edi,-16(%ebp) +movsbl (,%edi),%edi +movl %edi,yytchar +cmpl $10,yytchar +jne .LC91 +decl yylineno +.LC91: +movl yysptr,%edi +leal 1(%edi),%esi +movl %esi,yysptr +movl yytchar,%esi +movl %esi,%ebx +movb %bl,(,%edi) +jmp .LC94 +.LC93: +movl -16(%ebp),%edi +leal -1(%edi),%esi +movl %esi,-16(%ebp) +movb $0,(,%edi) +movl -8(%ebp),%edi +movl (,%edi),%edi +movl %edi,%esi +cmpl $0,%esi +je .LC96 +movl 8(%edi),%edi +movl %edi,yyfnd +cmpl $0,%edi +je .LC96 +movl yyfnd,%edi +cmpl $0,(,%edi) +jle .LC96 +movl -8(%ebp),%edi +movl %edi,yyolsp +movl yyfnd,%edi +movl (,%edi),%edi +movsbl yyextra(%edi),%edi +cmpl $0,%edi +je .LC98 +jmp .LC101 +.LC100: +movl -8(%ebp),%edi +leal -4(%edi),%edi +movl %edi,-8(%ebp) +movl -16(%ebp),%edi +leal -1(%edi),%esi +movl %esi,-16(%ebp) +movsbl (,%edi),%edi +movl %edi,yytchar +cmpl $10,yytchar +jne .LC103 +decl yylineno +.LC103: +movl yysptr,%edi +leal 1(%edi),%esi +movl %esi,yysptr +movl yytchar,%esi +movl %esi,%ebx +movb %bl,(,%edi) +.LC101: +movl yyfnd,%edi +movl (,%edi),%edi +negl %edi +pushl %edi +movl -8(%ebp),%edi +movl (,%edi),%edi +pushl 8(%edi) +call yyback +addl $8,%esp +cmpl $1,%eax +je .LC105 +movl -8(%ebp),%edi +leal yylstate,%esi +cmpl %esi,%edi +ja .LC100 +.LC105: +.LC98: +movl -16(%ebp),%edi +movsbl (,%edi),%esi +movl %esi,yyprevious +movl -8(%ebp),%esi +movl %esi,yylsp +leal yytext,%esi +subl %esi,%edi +leal 1(%edi),%edi +movl %edi,yyleng +movl yyleng,%edi +movb $0,yytext(%edi) +movl yyfnd,%edi +leal 4(%edi),%esi +movl %esi,yyfnd +movl (,%edi),%eax +jmp .LC34 +.LC96: +movl -16(%ebp),%edi +movsbl (,%edi),%edi +movl %edi,yytchar +cmpl $10,yytchar +jne .LC106 +decl yylineno +.LC106: +movl yysptr,%edi +leal 1(%edi),%esi +movl %esi,yysptr +movl yytchar,%esi +movl %esi,%ebx +movb %bl,(,%edi) +.LC94: +movl -8(%ebp),%edi +leal -4(%edi),%esi +movl %esi,-8(%ebp) +leal yylstate,%esi +cmpl %esi,%edi +ja .LC93 +movsbl yytext,%edi +cmpl $0,%edi +jne .LC108 +leal yysbuf,%edi +movl %edi,yysptr +movl $0,%eax +jmp .LC34 +.LC108: +movl yysptr,%edi +leal yysbuf,%esi +cmpl %esi,%edi +jbe .LC118 +movl yysptr,%edi +leal -1(%edi),%edi +movl %edi,yysptr +movsbl (,%edi),%edi +movl %edi,-40(%ebp) +jmp .LC119 +.LC118: +movl yyin,%edi +movl 4(%edi),%esi +movl 8(%edi),%edi +cmpl %edi,%esi +jb .LC120 +pushl yyin +call __uflow +addl $4,%esp +movl %eax,%edi +movl %edi,-44(%ebp) +jmp .LC121 +.LC120: +movl yyin,%edi +leal 4(%edi),%edi +movl (,%edi),%esi +leal 1(%esi),%ebx +movl %ebx,(,%edi) +movb (,%esi),%bl +movzbl %bl,%edi +movl %edi,-44(%ebp) +.LC121: +movl -44(%ebp),%edi +movl %edi,-40(%ebp) +.LC119: +movl -40(%ebp),%edi +movl %edi,yytchar +cmpl $10,%edi +jne .LC116 +incl yylineno +movl yytchar,%edi +movl %edi,-36(%ebp) +jmp .LC117 +.LC116: +movl yytchar,%edi +movl %edi,-36(%ebp) +.LC117: +cmpl $-1,-36(%ebp) +jne .LC114 +movl $0,-32(%ebp) +jmp .LC115 +.LC114: +movl yytchar,%edi +movl %edi,-32(%ebp) +.LC115: +movl -32(%ebp),%edi +movl %edi,%ebx +movb %bl,yytext +movsbl %bl,%edi +movl %edi,yyprevious +cmpl $0,yyprevious +jle .LC122 +movl yyout,%edi +movl 20(%edi),%esi +movl 24(%edi),%edi +cmpl %edi,%esi +jb .LC125 +movl yyprevious,%edi +movl %edi,%ebx +movzbl %bl,%edi +pushl %edi +pushl yyout +call __overflow +addl $8,%esp +jmp .LC126 +.LC125: +movl yyout,%edi +leal 20(%edi),%edi +movl (,%edi),%esi +leal 1(%esi),%ebx +movl %ebx,(,%edi) +movl yyprevious,%edi +movl %edi,%ebx +movb %bl,(,%esi) +.LC126: +.LC122: +leal yytext,%edi +movl %edi,-16(%ebp) +jmp .LC37 +.LC34: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf127: +.size yylook,.Lf127-yylook +.globl yyback +.align 16 +.type yyback,@function +yyback: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl 20(%ebp),%edi +cmpl $0,%edi +jne .LC132 +movl $0,%eax +jmp .LC128 +.LC131: +movl 20(%ebp),%edi +leal 4(%edi),%esi +movl %esi,20(%ebp) +movl 24(%ebp),%esi +cmpl %esi,(,%edi) +jne .LC134 +movl $1,%eax +jmp .LC128 +.LC134: +.LC132: +movl 20(%ebp),%edi +cmpl $0,(,%edi) +jne .LC131 +movl $0,%eax +.LC128: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf136: +.size yyback,.Lf136-yyback +.globl yyinput +.align 16 +.type yyinput,@function +yyinput: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $16,%esp +movl yysptr,%edi +leal yysbuf,%esi +cmpl %esi,%edi +jbe .LC146 +movl yysptr,%edi +leal -1(%edi),%edi +movl %edi,yysptr +movsbl (,%edi),%edi +movl %edi,-12(%ebp) +jmp .LC147 +.LC146: +movl yyin,%edi +movl 4(%edi),%esi +movl 8(%edi),%edi +cmpl %edi,%esi +jb .LC148 +pushl yyin +call __uflow +addl $4,%esp +movl %eax,%edi +movl %edi,-16(%ebp) +jmp .LC149 +.LC148: +movl yyin,%edi +leal 4(%edi),%edi +movl (,%edi),%esi +leal 1(%esi),%ebx +movl %ebx,(,%edi) +movb (,%esi),%bl +movzbl %bl,%edi +movl %edi,-16(%ebp) +.LC149: +movl -16(%ebp),%edi +movl %edi,-12(%ebp) +.LC147: +movl -12(%ebp),%edi +movl %edi,yytchar +cmpl $10,%edi +jne .LC144 +incl yylineno +movl yytchar,%edi +movl %edi,-8(%ebp) +jmp .LC145 +.LC144: +movl yytchar,%edi +movl %edi,-8(%ebp) +.LC145: +cmpl $-1,-8(%ebp) +jne .LC142 +movl $0,-4(%ebp) +jmp .LC143 +.LC142: +movl yytchar,%edi +movl %edi,-4(%ebp) +.LC143: +movl -4(%ebp),%eax +.LC137: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf150: +.size yyinput,.Lf150-yyinput +.globl yyoutput +.align 16 +.type yyoutput,@function +yyoutput: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl yyout,%edi +movl 20(%edi),%esi +movl 24(%edi),%edi +cmpl %edi,%esi +jb .LC153 +movl 20(%ebp),%edi +movl %edi,%ebx +movzbl %bl,%edi +pushl %edi +pushl yyout +call __overflow +addl $8,%esp +jmp .LC154 +.LC153: +movl yyout,%edi +leal 20(%edi),%edi +movl (,%edi),%esi +leal 1(%esi),%ebx +movl %ebx,(,%edi) +movl 20(%ebp),%edi +movl %edi,%ebx +movb %bl,(,%esi) +.LC154: +movl $0,%eax +.LC151: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf155: +.size yyoutput,.Lf155-yyoutput +.globl yyunput +.align 16 +.type yyunput,@function +yyunput: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl 20(%ebp),%edi +movl %edi,yytchar +cmpl $10,yytchar +jne .LC157 +decl yylineno +.LC157: +movl yysptr,%edi +leal 1(%edi),%esi +movl %esi,yysptr +movl yytchar,%esi +movl %esi,%ebx +movb %bl,(,%edi) +movl $0,%eax +.LC156: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf159: +.size yyunput,.Lf159-yyunput +.globl main +.align 16 +.type main,@function +main: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +call yyparse +movl $0,%eax +.LC160: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf161: +.size main,.Lf161-main +.globl yyerror +.align 16 +.type yyerror,@function +yyerror: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +pushl 20(%ebp) +pushl $.LC163 +call printf +addl $8,%esp +movl $0,%eax +.LC162: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf164: +.size yyerror,.Lf164-yyerror +.data +.globl yyexca +.align 2 +.type yyexca,@object +yyexca: +.word -1 +.word 1 +.word 0 +.word -1 +.word -2 +.word 0 +.size yyexca,12 +.globl yyact +.align 2 +.type yyact,@object +yyact: +.word 12 +.word 2 +.word 9 +.word 8 +.word 17 +.word 11 +.word 25 +.word 17 +.word 15 +.word 18 +.word 16 +.word 10 +.word 18 +.word 17 +.word 15 +.word 7 +.word 16 +.word 13 +.word 18 +.word 5 +.word 3 +.word 1 +.word 0 +.word 19 +.word 20 +.word 0 +.word 0 +.word 21 +.word 22 +.word 23 +.word 24 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 6 +.word 14 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 0 +.word 4 +.word 6 +.size yyact,498 +.globl yypact +.align 2 +.type yypact,@object +yypact: +.word -1000 +.word -9 +.word -1000 +.word 5 +.word -7 +.word -59 +.word -1000 +.word -1000 +.word -1000 +.word -40 +.word -29 +.word -40 +.word -40 +.word -1000 +.word -1000 +.word -40 +.word -40 +.word -40 +.word -40 +.word -38 +.word -35 +.word -38 +.word -38 +.word -1000 +.word -1000 +.word -1000 +.size yypact,52 +.globl yypgo +.align 2 +.type yypgo,@object +yypgo: +.word 0 +.word 21 +.word 20 +.word 17 +.word 11 +.size yypgo,10 +.globl yyr1 +.align 2 +.type yyr1,@object +yyr1: +.word 0 +.word 1 +.word 1 +.word 1 +.word 1 +.word 2 +.word 4 +.word 4 +.word 4 +.word 4 +.word 4 +.word 4 +.word 4 +.word 4 +.word 3 +.size yyr1,30 +.globl yyr2 +.align 2 +.type yyr2,@object +yyr2: +.word 0 +.word 0 +.word 2 +.word 3 +.word 3 +.word 3 +.word 3 +.word 3 +.word 3 +.word 3 +.word 2 +.word 3 +.word 1 +.word 1 +.word 1 +.size yyr2,30 +.globl yychk +.align 2 +.type yychk,@object +yychk: +.word -1000 +.word -1 +.word 10 +.word -2 +.word 256 +.word -3 +.word 257 +.word 10 +.word 10 +.word 61 +.word -4 +.word 45 +.word 40 +.word -3 +.word 258 +.word 43 +.word 45 +.word 42 +.word 47 +.word -4 +.word -4 +.word -4 +.word -4 +.word -4 +.word -4 +.word 41 +.size yychk,52 +.globl yydef +.align 2 +.type yydef,@object +yydef: +.word 1 +.word -2 +.word 2 +.word 0 +.word 0 +.word 0 +.word 14 +.word 3 +.word 4 +.word 0 +.word 5 +.word 0 +.word 0 +.word 12 +.word 13 +.word 0 +.word 0 +.word 0 +.word 0 +.word 10 +.word 0 +.word 6 +.word 7 +.word 8 +.word 9 +.word 11 +.size yydef,52 +.globl yychar +.align 4 +.type yychar,@object +.size yychar,4 +yychar: +.long -1 +.globl yynerrs +.align 4 +.type yynerrs,@object +.size yynerrs,4 +yynerrs: +.long 0 +.globl yyerrflag +.align 2 +.type yyerrflag,@object +.size yyerrflag,2 +yyerrflag: +.word 0 +.globl yyparse +.text +.align 16 +.type yyparse,@function +yyparse: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $332,%esp +movw $0,-6(%ebp) +movl $-1,yychar +movl $0,yynerrs +movw $0,yyerrflag +leal -328(%ebp),%edi +movl %edi,-12(%ebp) +leal yyv-4,%edi +movl %edi,-20(%ebp) +.LC168: +movl -12(%ebp),%edi +leal 2(%edi),%edi +movl %edi,-12(%ebp) +leal -26(%ebp),%esi +cmpl %esi,%edi +jbe .LC169 +pushl $.LC172 +call yyerror +addl $4,%esp +movl $1,%eax +jmp .LC165 +.LC169: +movl -12(%ebp),%edi +movw -6(%ebp),%si +movw %si,(,%edi) +movl -20(%ebp),%edi +leal 4(%edi),%edi +movl %edi,-20(%ebp) +movl -20(%ebp),%edi +movl yyval,%esi +movl %esi,(,%edi) +.LC173: +movswl -6(%ebp),%edi +movw yypact(,%edi,2),%di +movw %di,-14(%ebp) +movswl -14(%ebp),%edi +cmpl $-1000,%edi +jg .LC174 +jmp .LC176 +.LC174: +cmpl $0,yychar +jge .LC177 +call yylex +movl %eax,yychar +cmpl $0,%eax +jge .LC179 +movl $0,yychar +.LC179: +.LC177: +movswl -14(%ebp),%edi +movl yychar,%esi +leal (%esi,%edi),%edi +movw %di,-14(%ebp) +movswl %di,%edi +cmpl $0,%edi +jl .LC183 +movswl -14(%ebp),%edi +cmpl $249,%edi +jl .LC181 +.LC183: +jmp .LC176 +.LC181: +movswl -14(%ebp),%edi +movw yyact(,%edi,2),%di +movw %di,-14(%ebp) +movswl %di,%edi +movswl yychk(,%edi,2),%edi +cmpl yychar,%edi +jne .LC184 +movl $-1,yychar +movl yylval,%edi +movl %edi,yyval +movw -14(%ebp),%di +movw %di,-6(%ebp) +movswl yyerrflag,%edi +cmpl $0,%edi +jle .LC168 +movswl yyerrflag,%edi +subl $1,%edi +movw %di,yyerrflag +jmp .LC168 +.LC184: +.LC176: +movswl -6(%ebp),%edi +movw yydef(,%edi,2),%di +movw %di,-14(%ebp) +movswl %di,%edi +cmpl $-2,%edi +jne .LC188 +cmpl $0,yychar +jge .LC190 +call yylex +movl %eax,yychar +cmpl $0,%eax +jge .LC192 +movl $0,yychar +.LC192: +.LC190: +leal yyexca,%edi +movl %edi,-24(%ebp) +jmp .LC197 +.LC194: +.LC195: +movl -24(%ebp),%edi +leal 4(%edi),%edi +movl %edi,-24(%ebp) +.LC197: +movl -24(%ebp),%edi +movswl (,%edi),%esi +cmpl $-1,%esi +jne .LC194 +movswl 2(%edi),%edi +movswl -6(%ebp),%esi +cmpl %esi,%edi +jne .LC194 +jmp .LC199 +.LC198: +movl -24(%ebp),%edi +movswl (,%edi),%edi +cmpl yychar,%edi +jne .LC201 +jmp .LC200 +.LC201: +.LC199: +movl -24(%ebp),%edi +leal 4(%edi),%edi +movl %edi,-24(%ebp) +movswl (,%edi),%edi +cmpl $0,%edi +jge .LC198 +.LC200: +movl -24(%ebp),%edi +movw 2(%edi),%di +movw %di,-14(%ebp) +movswl %di,%edi +cmpl $0,%edi +jge .LC203 +movl $0,%eax +jmp .LC165 +.LC203: +.LC188: +movswl -14(%ebp),%edi +cmpl $0,%edi +jne .LC205 +movswl yyerrflag,%edi +movl %edi,-332(%ebp) +movl -332(%ebp),%edi +cmpl $0,%edi +jl .LC207 +cmpl $3,%edi +jg .LC207 +jmp *.LC223(,%edi,4) +.data +.align 4 +.LC223: +.long .LC210 +.long .LC213 +.long .LC213 +.long .LC220 +.text +.LC210: +pushl $.LC211 +call yyerror +addl $4,%esp +.LC212: +incl yynerrs +.LC213: +movw $3,yyerrflag +jmp .LC215 +.LC214: +movl -12(%ebp),%edi +movswl (,%edi),%edi +movswl yypact(,%edi,2),%edi +leal 256(%edi),%edi +movw %di,-14(%ebp) +movswl -14(%ebp),%edi +cmpl $0,%edi +jl .LC217 +cmpl $249,%edi +jge .LC217 +movswl yyact(,%edi,2),%edi +movswl yychk(,%edi,2),%edi +cmpl $256,%edi +jne .LC217 +movswl -14(%ebp),%edi +movw yyact(,%edi,2),%di +movw %di,-6(%ebp) +jmp .LC168 +.LC217: +movl -12(%ebp),%edi +movswl (,%edi),%esi +movw yypact(,%esi,2),%si +movw %si,-14(%ebp) +leal -2(%edi),%edi +movl %edi,-12(%ebp) +movl -20(%ebp),%edi +leal -4(%edi),%edi +movl %edi,-20(%ebp) +.LC215: +movl -12(%ebp),%edi +leal -326(%ebp),%esi +cmpl %esi,%edi +jae .LC214 +.LC219: +movl $1,%eax +jmp .LC165 +.LC220: +cmpl $0,yychar +jne .LC221 +jmp .LC219 +.LC221: +movl $-1,yychar +jmp .LC173 +.LC207: +.LC205: +movw -14(%ebp),%di +movswl %di,%esi +leal (,%esi,2),%esi +leal yyr2(%esi),%ebx +movl -12(%ebp),%edx +movswl (,%ebx),%ecx +leal (,%ecx,2),%ecx +subl %ecx,%edx +movl %edx,-12(%ebp) +movl -20(%ebp),%edx +movl %edx,-4(%ebp) +movswl (,%ebx),%ebx +leal (,%ebx,4),%ebx +subl %ebx,%edx +movl %edx,-20(%ebp) +movl -20(%ebp),%ebx +movl 4(%ebx),%ebx +movl %ebx,yyval +movw %di,-328(%ebp) +movw yyr1(%esi),%di +movw %di,-14(%ebp) +movswl -14(%ebp),%edi +movswl yypgo(,%edi,2),%edi +movl -12(%ebp),%esi +movswl (,%esi),%esi +leal (%esi,%edi),%edi +leal 1(%edi),%edi +movw %di,-26(%ebp) +movswl -26(%ebp),%edi +cmpl $249,%edi +jge .LC226 +movw yyact(,%edi,2),%di +movw %di,-6(%ebp) +movswl %di,%edi +movswl yychk(,%edi,2),%edi +movswl -14(%ebp),%esi +negl %esi +cmpl %esi,%edi +je .LC224 +.LC226: +movswl -14(%ebp),%edi +movswl yypgo(,%edi,2),%edi +movw yyact(,%edi,2),%di +movw %di,-6(%ebp) +.LC224: +movswl -328(%ebp),%edi +movl %edi,-332(%ebp) +movl -332(%ebp),%edi +cmpl $4,%edi +jl .LC168 +cmpl $14,%edi +jg .LC168 +jmp *.LC248-16(,%edi,4) +.data +.align 4 +.LC248: +.long .LC230 +.long .LC231 +.long .LC233 +.long .LC235 +.long .LC237 +.long .LC239 +.long .LC241 +.long .LC168 +.long .LC243 +.long .LC245 +.long .LC247 +.text +.LC230: +movw $0,yyerrflag +jmp .LC168 +.LC231: +pushl $.LC232 +call printf +addl $4,%esp +jmp .LC168 +.LC233: +pushl $.LC234 +call printf +addl $4,%esp +jmp .LC168 +.LC235: +pushl $.LC236 +call printf +addl $4,%esp +jmp .LC168 +.LC237: +pushl $.LC238 +call printf +addl $4,%esp +jmp .LC168 +.LC239: +pushl $.LC240 +call printf +addl $4,%esp +jmp .LC168 +.LC241: +pushl $.LC242 +call printf +addl $4,%esp +jmp .LC168 +.LC243: +pushl $.LC244 +call printf +addl $4,%esp +jmp .LC168 +.LC245: +pushl $yytext +pushl $.LC246 +call printf +addl $8,%esp +jmp .LC168 +.LC247: +pushl $yytext +pushl $.LC163 +call printf +addl $8,%esp +jmp .LC168 +.LC165: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf250: +.size yyparse,.Lf250-yyparse +.globl yywrap +.align 16 +.type yywrap,@function +yywrap: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl $1,%eax +.LC251: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf252: +.size yywrap,.Lf252-yywrap +.bss +.globl yyv +.align 4 +.type yyv,@object +.size yyv,600 +.comm yyv,600 +.globl yyfnd +.align 4 +.type yyfnd,@object +.size yyfnd,4 +.comm yyfnd,4 +.globl yyolsp +.align 4 +.type yyolsp,@object +.size yyolsp,4 +.comm yyolsp,4 +.globl yylsp +.align 4 +.type yylsp,@object +.size yylsp,4 +.comm yylsp,4 +.globl yylstate +.align 4 +.type yylstate,@object +.size yylstate,800 +.comm yylstate,800 +.globl yyestate +.align 4 +.type yyestate,@object +.size yyestate,4 +.comm yyestate,4 +.globl yytchar +.align 4 +.type yytchar,@object +.size yytchar,4 +.comm yytchar,4 +.globl yysbuf +.align 1 +.type yysbuf,@object +.size yysbuf,200 +.comm yysbuf,200 +.globl yymorfg +.align 4 +.type yymorfg,@object +.size yymorfg,4 +.comm yymorfg,4 +.globl yytext +.align 1 +.type yytext,@object +.size yytext,200 +.comm yytext,200 +.globl yyleng +.align 4 +.type yyleng,@object +.size yyleng,4 +.comm yyleng,4 +.globl yyval +.align 4 +.type yyval,@object +.size yyval,4 +.comm yyval,4 +.globl yylval +.align 4 +.type yylval,@object +.size yylval,4 +.comm yylval,4 +.data +.align 1 +.LC246: +.byte 112 +.byte 117 +.byte 115 +.byte 104 +.byte 32 +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 1 +.LC244: +.byte 108 +.byte 111 +.byte 97 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.LC242: +.byte 110 +.byte 101 +.byte 103 +.byte 97 +.byte 116 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.LC240: +.byte 100 +.byte 105 +.byte 118 +.byte 105 +.byte 100 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.LC238: +.byte 109 +.byte 117 +.byte 108 +.byte 116 +.byte 105 +.byte 112 +.byte 108 +.byte 121 +.byte 10 +.byte 0 +.align 1 +.LC236: +.byte 110 +.byte 101 +.byte 103 +.byte 97 +.byte 116 +.byte 101 +.byte 10 +.byte 97 +.byte 100 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.LC234: +.byte 97 +.byte 100 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.LC232: +.byte 115 +.byte 116 +.byte 111 +.byte 114 +.byte 101 +.byte 10 +.byte 0 +.align 1 +.LC211: +.byte 115 +.byte 121 +.byte 110 +.byte 116 +.byte 97 +.byte 120 +.byte 32 +.byte 101 +.byte 114 +.byte 114 +.byte 111 +.byte 114 +.byte 0 +.align 1 +.LC172: +.byte 121 +.byte 97 +.byte 99 +.byte 99 +.byte 32 +.byte 115 +.byte 116 +.byte 97 +.byte 99 +.byte 107 +.byte 32 +.byte 111 +.byte 118 +.byte 101 +.byte 114 +.byte 102 +.byte 108 +.byte 111 +.byte 119 +.byte 0 +.align 1 +.LC163: +.byte 37 +.byte 115 +.byte 10 +.byte 0 +.align 1 +.LC16: +.byte 98 +.byte 97 +.byte 100 +.byte 32 +.byte 115 +.byte 119 +.byte 105 +.byte 116 +.byte 99 +.byte 104 +.byte 32 +.byte 121 +.byte 121 +.byte 108 +.byte 111 +.byte 111 +.byte 107 +.byte 32 +.byte 37 +.byte 100 +.byte 0 +.text +.ident "LCC: 4.1" diff --git a/code/tools/lcc/x86/win32/tst/8q.1bk b/code/tools/lcc/x86/win32/tst/8q.1bk new file mode 100644 index 0000000..7ed6437 --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/8q.1bk @@ -0,0 +1,92 @@ +1 5 8 6 3 7 2 4 +1 6 8 3 7 4 2 5 +1 7 4 6 8 2 5 3 +1 7 5 8 2 4 6 3 +2 4 6 8 3 1 7 5 +2 5 7 1 3 8 6 4 +2 5 7 4 1 8 6 3 +2 6 1 7 4 8 3 5 +2 6 8 3 1 4 7 5 +2 7 3 6 8 5 1 4 +2 7 5 8 1 4 6 3 +2 8 6 1 3 5 7 4 +3 1 7 5 8 2 4 6 +3 5 2 8 1 7 4 6 +3 5 2 8 6 4 7 1 +3 5 7 1 4 2 8 6 +3 5 8 4 1 7 2 6 +3 6 2 5 8 1 7 4 +3 6 2 7 1 4 8 5 +3 6 2 7 5 1 8 4 +3 6 4 1 8 5 7 2 +3 6 4 2 8 5 7 1 +3 6 8 1 4 7 5 2 +3 6 8 1 5 7 2 4 +3 6 8 2 4 1 7 5 +3 7 2 8 5 1 4 6 +3 7 2 8 6 4 1 5 +3 8 4 7 1 6 2 5 +4 1 5 8 2 7 3 6 +4 1 5 8 6 3 7 2 +4 2 5 8 6 1 3 7 +4 2 7 3 6 8 1 5 +4 2 7 3 6 8 5 1 +4 2 7 5 1 8 6 3 +4 2 8 5 7 1 3 6 +4 2 8 6 1 3 5 7 +4 6 1 5 2 8 3 7 +4 6 8 2 7 1 3 5 +4 6 8 3 1 7 5 2 +4 7 1 8 5 2 6 3 +4 7 3 8 2 5 1 6 +4 7 5 2 6 1 3 8 +4 7 5 3 1 6 8 2 +4 8 1 3 6 2 7 5 +4 8 1 5 7 2 6 3 +4 8 5 3 1 7 2 6 +5 1 4 6 8 2 7 3 +5 1 8 4 2 7 3 6 +5 1 8 6 3 7 2 4 +5 2 4 6 8 3 1 7 +5 2 4 7 3 8 6 1 +5 2 6 1 7 4 8 3 +5 2 8 1 4 7 3 6 +5 3 1 6 8 2 4 7 +5 3 1 7 2 8 6 4 +5 3 8 4 7 1 6 2 +5 7 1 3 8 6 4 2 +5 7 1 4 2 8 6 3 +5 7 2 4 8 1 3 6 +5 7 2 6 3 1 4 8 +5 7 2 6 3 1 8 4 +5 7 4 1 3 8 6 2 +5 8 4 1 3 6 2 7 +5 8 4 1 7 2 6 3 +6 1 5 2 8 3 7 4 +6 2 7 1 3 5 8 4 +6 2 7 1 4 8 5 3 +6 3 1 7 5 8 2 4 +6 3 1 8 4 2 7 5 +6 3 1 8 5 2 4 7 +6 3 5 7 1 4 2 8 +6 3 5 8 1 4 2 7 +6 3 7 2 4 8 1 5 +6 3 7 2 8 5 1 4 +6 3 7 4 1 8 2 5 +6 4 1 5 8 2 7 3 +6 4 2 8 5 7 1 3 +6 4 7 1 3 5 2 8 +6 4 7 1 8 2 5 3 +6 8 2 4 1 7 5 3 +7 1 3 8 6 4 2 5 +7 2 4 1 8 5 3 6 +7 2 6 3 1 4 8 5 +7 3 1 6 8 5 2 4 +7 3 8 2 5 1 6 4 +7 4 2 5 8 1 3 6 +7 4 2 8 6 1 3 5 +7 5 3 1 6 8 2 4 +8 2 4 1 7 5 3 6 +8 2 5 3 1 7 4 6 +8 3 1 6 2 5 7 4 +8 4 1 3 6 2 7 5 diff --git a/code/tools/lcc/x86/win32/tst/8q.2bk b/code/tools/lcc/x86/win32/tst/8q.2bk new file mode 100644 index 0000000..d4dc0ed --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/8q.2bk @@ -0,0 +1,2 @@ +tst/8q.c:30: warning: missing return value +tst/8q.c:39: warning: missing return value diff --git a/code/tools/lcc/x86/win32/tst/8q.sbk b/code/tools/lcc/x86/win32/tst/8q.sbk new file mode 100644 index 0000000..2ffd76c --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/8q.sbk @@ -0,0 +1,176 @@ +.486 +.model flat +extrn __fltused:near +extrn __ftol:near +public _main +_TEXT segment +_main: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,4 +mov dword ptr (-4)[ebp],0 +L2: +mov edi,dword ptr (-4)[ebp] +lea edi,[edi*4] +mov dword ptr (_down)[edi],1 +mov dword ptr (_up)[edi],1 +L3: +inc dword ptr (-4)[ebp] +cmp dword ptr (-4)[ebp],15 +jl L2 +mov dword ptr (-4)[ebp],0 +L6: +mov edi,dword ptr (-4)[ebp] +mov dword ptr (_rows)[edi*4],1 +L7: +inc dword ptr (-4)[ebp] +cmp dword ptr (-4)[ebp],8 +jl L6 +push 0 +call _queens +add esp,4 +mov eax,0 +L1: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _queens +_queens: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,4 +mov dword ptr (-4)[ebp],0 +L11: +mov edi,dword ptr (-4)[ebp] +cmp dword ptr (_rows)[edi*4],0 +je L15 +mov esi,dword ptr (20)[ebp] +mov ebx,edi +sub ebx,esi +cmp dword ptr (_up+28)[ebx*4],0 +je L15 +lea edi,[esi][edi] +cmp dword ptr (_down)[edi*4],0 +je L15 +mov edi,dword ptr (-4)[ebp] +mov esi,dword ptr (20)[ebp] +lea ebx,[esi][edi] +mov dword ptr (_down)[ebx*4],0 +mov ebx,edi +sub ebx,esi +mov dword ptr (_up+28)[ebx*4],0 +mov dword ptr (_rows)[edi*4],0 +mov edi,dword ptr (20)[ebp] +mov esi,dword ptr (-4)[ebp] +mov dword ptr (_x)[edi*4],esi +cmp dword ptr (20)[ebp],7 +jne L19 +call _print +add esp,0 +jmp L20 +L19: +mov edi,dword ptr (20)[ebp] +lea edi,(1)[edi] +push edi +call _queens +add esp,4 +L20: +mov edi,dword ptr (-4)[ebp] +mov esi,dword ptr (20)[ebp] +lea ebx,[esi][edi] +mov dword ptr (_down)[ebx*4],1 +mov ebx,edi +sub ebx,esi +mov dword ptr (_up+28)[ebx*4],1 +mov dword ptr (_rows)[edi*4],1 +L15: +L12: +inc dword ptr (-4)[ebp] +cmp dword ptr (-4)[ebp],8 +jl L11 +mov eax,0 +L10: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _print +_print: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,4 +mov dword ptr (-4)[ebp],0 +L23: +mov edi,dword ptr (-4)[ebp] +mov edi,dword ptr (_x)[edi*4] +lea edi,(49)[edi] +push edi +lea edi,(L27) +push edi +call _printf +add esp,8 +L24: +inc dword ptr (-4)[ebp] +cmp dword ptr (-4)[ebp],8 +jl L23 +lea edi,(L28) +push edi +call _printf +add esp,4 +mov eax,0 +L22: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +extrn _printf:near +_TEXT segment +_TEXT ends +_DATA segment +public _x +align 4 +_x label byte +db 32 dup (0) +public _rows +align 4 +_rows label byte +db 32 dup (0) +public _down +align 4 +_down label byte +db 60 dup (0) +public _up +align 4 +_up label byte +db 60 dup (0) +_DATA ends +_TEXT segment +align 1 +L28 label byte +db 10 +db 0 +align 1 +L27 label byte +db 37 +db 99 +db 32 +db 0 +_TEXT ends +end diff --git a/code/tools/lcc/x86/win32/tst/array.1bk b/code/tools/lcc/x86/win32/tst/array.1bk new file mode 100644 index 0000000..4d3817c --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/array.1bk @@ -0,0 +1,4 @@ + 0 1 2 3 1000 1001 1002 1003 2000 2001 2002 2003 + 0 1 2 3 1000 1001 1002 1003 2000 2001 2002 2003 + 0 1 2 3 1000 1001 1002 1003 2000 2001 2002 2003 + 0 1 2 3 1000 1001 1002 1003 2000 2001 2002 2003 diff --git a/code/tools/lcc/x86/win32/tst/array.2bk b/code/tools/lcc/x86/win32/tst/array.2bk new file mode 100644 index 0000000..c8cf31e --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/array.2bk @@ -0,0 +1,2 @@ +tst/array.c:33: warning: missing return value +tst/array.c:48: warning: missing return value diff --git a/code/tools/lcc/x86/win32/tst/array.sbk b/code/tools/lcc/x86/win32/tst/array.sbk new file mode 100644 index 0000000..d3f9f8f --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/array.sbk @@ -0,0 +1,240 @@ +.486 +.model flat +extrn __fltused:near +extrn __ftol:near +public _main +_TEXT segment +_main: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,60 +mov dword ptr (-8)[ebp],0 +L2: +mov dword ptr (-4)[ebp],0 +L6: +mov edi,dword ptr (-4)[ebp] +mov esi,dword ptr (-8)[ebp] +mov ebx,esi +sal ebx,4 +imul esi,esi,1000 +lea esi,[edi][esi] +mov dword ptr (_x)[ebx][edi*4],esi +L7: +inc dword ptr (-4)[ebp] +cmp dword ptr (-4)[ebp],4 +jl L6 +mov edi,dword ptr (-8)[ebp] +mov esi,edi +sal esi,4 +lea esi,(_x)[esi] +mov dword ptr (_y)[edi*4],esi +L3: +inc dword ptr (-8)[ebp] +cmp dword ptr (-8)[ebp],3 +jl L2 +call _f +add esp,0 +mov dword ptr (-8)[ebp],0 +L10: +mov edi,dword ptr (-8)[ebp] +mov esi,edi +sal esi,4 +lea esi,(-60)[ebp][esi] +mov dword ptr (-12)[ebp],esi +mov dword ptr (_y)[edi*4],esi +mov dword ptr (-4)[ebp],0 +L14: +mov edi,dword ptr (-4)[ebp] +lea edi,[edi*4] +mov esi,dword ptr (-12)[ebp] +mov ebx,dword ptr (-8)[ebp] +sal ebx,4 +mov ebx,dword ptr (_x)[ebx][edi] +mov dword ptr [esi][edi],ebx +L15: +inc dword ptr (-4)[ebp] +cmp dword ptr (-4)[ebp],4 +jl L14 +L11: +inc dword ptr (-8)[ebp] +cmp dword ptr (-8)[ebp],3 +jl L10 +lea edi,(_y) +push edi +lea edi,(-60)[ebp] +push edi +call _g +add esp,8 +mov eax,0 +L1: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _f +_f: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,8 +mov dword ptr (-8)[ebp],0 +L19: +mov dword ptr (-4)[ebp],0 +L23: +mov edi,dword ptr (-4)[ebp] +mov esi,dword ptr (-8)[ebp] +sal esi,4 +mov edi,dword ptr (_x)[esi][edi*4] +push edi +lea edi,(L27) +push edi +call _printf +add esp,8 +L24: +inc dword ptr (-4)[ebp] +cmp dword ptr (-4)[ebp],4 +jl L23 +L20: +inc dword ptr (-8)[ebp] +cmp dword ptr (-8)[ebp],3 +jl L19 +lea edi,(L28) +push edi +call _printf +add esp,4 +mov dword ptr (-8)[ebp],0 +L29: +mov dword ptr (-4)[ebp],0 +L33: +mov edi,dword ptr (-4)[ebp] +mov esi,dword ptr (-8)[ebp] +mov esi,dword ptr (_y)[esi*4] +mov edi,dword ptr [esi][edi*4] +push edi +lea edi,(L27) +push edi +call _printf +add esp,8 +L34: +inc dword ptr (-4)[ebp] +cmp dword ptr (-4)[ebp],4 +jl L33 +L30: +inc dword ptr (-8)[ebp] +cmp dword ptr (-8)[ebp],3 +jl L29 +lea edi,(L28) +push edi +call _printf +add esp,4 +mov eax,0 +L18: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _g +_g: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,8 +mov dword ptr (-8)[ebp],0 +L38: +mov dword ptr (-4)[ebp],0 +L42: +mov edi,dword ptr (-4)[ebp] +mov esi,dword ptr (-8)[ebp] +sal esi,4 +mov ebx,dword ptr (20)[ebp] +lea esi,[ebx][esi] +mov edi,dword ptr [esi][edi*4] +push edi +lea edi,(L27) +push edi +call _printf +add esp,8 +L43: +inc dword ptr (-4)[ebp] +cmp dword ptr (-4)[ebp],4 +jl L42 +L39: +inc dword ptr (-8)[ebp] +cmp dword ptr (-8)[ebp],3 +jl L38 +lea edi,(L28) +push edi +call _printf +add esp,4 +mov dword ptr (-8)[ebp],0 +L46: +mov dword ptr (-4)[ebp],0 +L50: +mov edi,dword ptr (-4)[ebp] +mov esi,dword ptr (-8)[ebp] +mov ebx,dword ptr (24)[ebp] +mov esi,dword ptr [ebx][esi*4] +mov edi,dword ptr [esi][edi*4] +push edi +lea edi,(L27) +push edi +call _printf +add esp,8 +L51: +inc dword ptr (-4)[ebp] +cmp dword ptr (-4)[ebp],4 +jl L50 +L47: +inc dword ptr (-8)[ebp] +cmp dword ptr (-8)[ebp],3 +jl L46 +lea edi,(L28) +push edi +call _printf +add esp,4 +mov eax,0 +L37: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +extrn _printf:near +_TEXT segment +_TEXT ends +_DATA segment +public _y +align 4 +_y label byte +db 12 dup (0) +public _x +align 4 +_x label byte +db 48 dup (0) +_DATA ends +_TEXT segment +align 1 +L28 label byte +db 10 +db 0 +align 1 +L27 label byte +db 32 +db 37 +db 100 +db 0 +_TEXT ends +end diff --git a/code/tools/lcc/x86/win32/tst/cf.1bk b/code/tools/lcc/x86/win32/tst/cf.1bk new file mode 100644 index 0000000..9e331c5 --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/cf.1bk @@ -0,0 +1,51 @@ +char freq +011 8.1 +012 6.1 +040 11.9 +! 0.2 +" 1.5 +% 0.6 +& 0.4 +' 0.4 +( 2.9 +) 2.9 +* 0.8 ++ 1.3 +, 1.3 +- 0.4 +. 0.6 +/ 1.0 +0 2.5 +1 1.9 +2 0.6 +3 0.2 +7 0.4 +8 0.2 +; 3.8 +< 0.8 += 2.7 +> 0.2 +[ 1.5 +\ 0.8 +] 1.5 +a 3.1 +c 4.4 +e 2.3 +f 6.0 +g 1.3 +h 1.0 +i 5.0 +l 1.0 +m 0.2 +n 3.3 +o 2.1 +p 1.0 +q 0.4 +r 4.2 +s 0.6 +t 3.8 +u 1.2 +v 0.6 +w 0.2 +{ 0.6 +} 0.6 diff --git a/code/tools/lcc/x86/win32/tst/cf.2bk b/code/tools/lcc/x86/win32/tst/cf.2bk new file mode 100644 index 0000000..e69de29 diff --git a/code/tools/lcc/x86/win32/tst/cf.sbk b/code/tools/lcc/x86/win32/tst/cf.sbk new file mode 100644 index 0000000..9ab4cfc --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/cf.sbk @@ -0,0 +1,185 @@ +.486 +.model flat +extrn __fltused:near +extrn __ftol:near +public _main +_TEXT segment +_main: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,24 +cmp dword ptr (20)[ebp],1 +jg L2 +fld dword ptr (L4) +fstp dword ptr (-16)[ebp] +jmp L3 +L2: +mov edi,dword ptr (24)[ebp] +mov edi,dword ptr (4)[edi] +push edi +call _atof +add esp,4 +fstp dword ptr (-20)[ebp] +fld dword ptr (-20)[ebp] +fdiv dword ptr (L5) +fstp dword ptr (-16)[ebp] +L3: +mov dword ptr (-4)[ebp],0 +L6: +mov edi,dword ptr (-4)[ebp] +lea esi,(1)[edi] +mov dword ptr (-4)[ebp],esi +fld dword ptr (L4) +fstp dword ptr (_f)[edi*4] +L7: +cmp dword ptr (-4)[ebp],127 +jle L6 +mov dword ptr (-8)[ebp],0 +jmp L11 +L10: +mov edi,dword ptr (-12)[ebp] +lea edi,(_f)[edi*4] +fld dword ptr [edi] +fadd dword ptr (L13) +fstp dword ptr [edi] +inc dword ptr (-8)[ebp] +L11: +call _getchar +add esp,0 +mov dword ptr (-12)[ebp],eax +cmp eax,-1 +jne L10 +lea edi,(L14) +push edi +call _printf +add esp,4 +mov dword ptr (-4)[ebp],0 +L15: +mov edi,dword ptr (-4)[ebp] +fld dword ptr (_f)[edi*4] +fstp dword ptr (-24)[ebp] +fld dword ptr (L4) +fcomp dword ptr (-24)[ebp] +fstsw ax +sahf +je L19 +fld dword ptr (-24)[ebp] +mov edi,dword ptr (-8)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fdivp st(1),st +fld dword ptr (-16)[ebp] +fcompp +fstsw ax +sahf +ja L19 +cmp dword ptr (-4)[ebp],32 +jg L21 +mov edi,dword ptr (-4)[ebp] +push edi +lea edi,(L23) +push edi +call _printf +add esp,8 +jmp L22 +L21: +mov edi,dword ptr (-4)[ebp] +push edi +lea edi,(L24) +push edi +call _printf +add esp,8 +L22: +fld dword ptr (L5) +mov edi,dword ptr (-4)[ebp] +fmul dword ptr (_f)[edi*4] +mov edi,dword ptr (-8)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fdivp st(1),st +sub esp,8 +fstp qword ptr [esp] +lea edi,(L25) +push edi +call _printf +add esp,12 +L19: +L16: +inc dword ptr (-4)[ebp] +cmp dword ptr (-4)[ebp],127 +jle L15 +mov eax,0 +L1: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +extrn _printf:near +_TEXT segment +_TEXT ends +extrn _getchar:near +_TEXT segment +_TEXT ends +extrn _atof:near +_TEXT segment +_TEXT ends +_DATA segment +public _f +align 4 +_f label byte +db 512 dup (0) +_DATA ends +_TEXT segment +align 1 +L25 label byte +db 9 +db 37 +db 46 +db 49 +db 102 +db 10 +db 0 +align 1 +L24 label byte +db 37 +db 99 +db 0 +align 1 +L23 label byte +db 37 +db 48 +db 51 +db 111 +db 0 +align 1 +L14 label byte +db 99 +db 104 +db 97 +db 114 +db 9 +db 102 +db 114 +db 101 +db 113 +db 10 +db 0 +align 4 +L13 label byte +dd 03f800000H +align 4 +L5 label byte +dd 042c80000H +align 4 +L4 label byte +dd 00H +_TEXT ends +end diff --git a/code/tools/lcc/x86/win32/tst/cq.1bk b/code/tools/lcc/x86/win32/tst/cq.1bk new file mode 100644 index 0000000..3a86d23 --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/cq.1bk @@ -0,0 +1,48 @@ +Section s22 returned 0. +Decimal and octal/hex constants sometimes give + different results when assigned to longs. +Decimal and octal/hex constants sometimes give + different results when assigned to longs. +Section s241 returned 0. +Section s243 returned 0. +Section s244 returned 0. +Section s25 returned 0. + 8 bits in chars. + 32 bits in ints. + 16 bits in shorts. + 32 bits in longs. + 32 bits in unsigneds. + 32 bits in floats. + 64 bits in doubles. +1.192093e-007 is the least number that can be added to 1. (float). +2.220446e-016 is the least number that can be added to 1. (double). +Section s26 returned 0. +Section s4 returned 0. +Section s61 returned 0. +Section s626 returned 0. +Section s71 returned 0. +Section s72 returned 0. +Section s757 returned 0. +Section s7813 returned 0. +Section s714 returned 0. +Section s715 returned 0. +Register count for char is unreliable. +Register count for pointer is unreliable. +Register count for int is unreliable. +Section s81 returned 0. +Section s84 returned 0. +char alignment: 1 +short alignment: 2 +int alignment: 4 +long alignment: 4 +unsigned alignment: 4 +float alignment: 4 +double alignment: 4 +Sign extension in fields +Be especially careful with 1-bit fields! +Section s85 returned 0. +Section s86 returned 0. +Section s88 returned 0. +Section s9 returned 0. + +No errors detected. diff --git a/code/tools/lcc/x86/win32/tst/cq.2bk b/code/tools/lcc/x86/win32/tst/cq.2bk new file mode 100644 index 0000000..7c6ba5e --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/cq.2bk @@ -0,0 +1,25 @@ +tst/cq.c:394: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:394: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:394: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:395: warning: overflow in constant `4294967296' +tst/cq.c:395: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:395: warning: overflow in constant `040000000000' +tst/cq.c:395: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:395: warning: overflow in constant `0x100000000' +tst/cq.c:395: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:396: warning: overflow in constant `68719476735' +tst/cq.c:396: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:396: warning: overflow in constant `0777777777777' +tst/cq.c:396: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:396: warning: overflow in constant `0xfffffffff' +tst/cq.c:396: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:397: warning: overflow in constant `68719476736' +tst/cq.c:397: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:397: warning: overflow in constant `01000000000000' +tst/cq.c:397: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:397: warning: overflow in constant `0x1000000000' +tst/cq.c:397: warning: overflow in converting constant expression from `unsigned long' to `long int' +tst/cq.c:533: warning: missing return value +tst/cq.c:1169: warning: missing return value +tst/cq.c:5294: warning: unreachable code +tst/cq.c:5303: warning: missing return value diff --git a/code/tools/lcc/x86/win32/tst/cq.sbk b/code/tools/lcc/x86/win32/tst/cq.sbk new file mode 100644 index 0000000..affe8e3 --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/cq.sbk @@ -0,0 +1,16642 @@ +.486 +.model flat +extrn __fltused:near +extrn __ftol:near +_DATA segment +align 4 +L2 label byte +dd _s22 +dd _s241 +dd _s243 +dd _s244 +dd _s25 +dd _s26 +dd _s4 +dd _s61 +dd _s626 +dd _s71 +dd _s72 +dd _s757 +dd _s7813 +dd _s714 +dd _s715 +dd _s81 +dd _s84 +dd _s85 +dd _s86 +dd _s88 +dd _s9 +_DATA ends +_DATA segment +align 4 +L3 label byte +db 68 dup (0) +align 4 +L4 label byte +db 4 dup (0) +public _main +_DATA ends +_TEXT segment +_main: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,4 +mov dword ptr (L3+36),1 +mov dword ptr (L3+40),1 +mov dword ptr (L3+44),1 +mov dword ptr (L3+48),1 +lea edi,(L3) +mov dword ptr (L4),edi +mov dword ptr (-4)[ebp],0 +jmp L12 +L9: +mov edi,dword ptr (L4) +push edi +mov edi,dword ptr (-4)[ebp] +call dword ptr (L2)[edi*4] +add esp,4 +mov dword ptr (L3+52),eax +mov edi,dword ptr (L3+56) +mov esi,dword ptr (L3+52) +lea edi,[esi][edi] +mov dword ptr (L3+56),edi +cmp dword ptr (L3+36),0 +je L17 +mov edi,dword ptr (L3+52) +push edi +lea edi,(L3+60) +push edi +lea edi,(L20) +push edi +call _printf +add esp,12 +L17: +L10: +inc dword ptr (-4)[ebp] +L12: +mov edi,dword ptr (-4)[ebp] +cmp edi,21 +jb L9 +cmp dword ptr (L3+56),0 +jne L23 +lea edi,(L26) +push edi +call _printf +add esp,4 +jmp L24 +L23: +lea edi,(L27) +push edi +call _printf +add esp,4 +L24: +mov eax,0 +L1: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +align 1 +L29 label byte +db 115 +db 50 +db 50 +db 44 +db 101 +db 114 +db 37 +db 100 +db 10 +db 0 +align 1 +L30 label byte +db 115 +db 50 +db 50 +db 32 +db 32 +db 32 +db 32 +db 0 +public _s22 +_DATA ends +_TEXT segment +_s22: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,32 +mov dword ptr (-12)[ebp],0 +lea edi,(L30) +mov dword ptr (-4)[ebp],edi +mov edi,dword ptr (20)[ebp] +lea edi,(60)[edi] +mov dword ptr (-8)[ebp],edi +L31: +L32: +mov edi,dword ptr (-8)[ebp] +lea esi,(1)[edi] +mov dword ptr (-8)[ebp],esi +mov esi,dword ptr (-4)[ebp] +lea ebx,(1)[esi] +mov dword ptr (-4)[ebp],ebx +mov bl,byte ptr [esi] +mov byte ptr [edi],bl +movsx edi,bl +cmp edi,0 +jne L31 +mov dword ptr (-16)[ebp],1 +mov dword ptr (-24)[ebp],2 +mov dword ptr (-28)[ebp],3 +mov dword ptr (-20)[ebp],4 +mov edi,dword ptr (-16)[ebp] +mov esi,dword ptr (-24)[ebp] +lea edi,[esi][edi] +mov esi,dword ptr (-28)[ebp] +lea edi,[esi][edi] +mov esi,dword ptr (-20)[ebp] +lea edi,[esi][edi] +cmp edi,10 +je L34 +inc dword ptr (-12)[ebp] +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L36 +push 1 +lea edi,(L29) +push edi +call _printf +add esp,8 +L36: +L34: +mov dword ptr (-32)[ebp],2 +mov edi,dword ptr (-16)[ebp] +cmp dword ptr (-32)[ebp],edi +jne L38 +add dword ptr (-12)[ebp],4 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L40 +push 4 +lea edi,(L29) +push edi +call _printf +add esp,8 +L40: +L38: +mov eax,dword ptr (-12)[ebp] +L28: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +align 1 +L43 label byte +db 115 +db 50 +db 52 +db 49 +db 44 +db 101 +db 114 +db 37 +db 100 +db 10 +db 0 +align 1 +L44 label byte +db 115 +db 50 +db 52 +db 49 +db 32 +db 32 +db 32 +db 0 +align 4 +L45 label byte +dd 0 +dd 0 +dd 0 +dd 0 +dd 0 +dd 0 +dd 0 +dd 0 +dd 0 +dd 0 +dd 0 +dd 0 +dd 0 +dd 0 +dd 0 +dd 0 +dd 0 +dd 0 +dd 6 +dd 0 +dd 8 +dd 0 +dd 12 +dd 0 +dd 16 +dd 0 +dd 18 +dd 0 +dd 20 +dd 0 +dd 24 +dd 0 +dd 28 +dd 0 +dd 30 +dd 0 +dd 32 +dd 0 +dd 36 +public _s241 +_DATA ends +_TEXT segment +_s241: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,488 +mov dword ptr (-484)[ebp],0 +mov dword ptr (-488)[ebp],0 +lea edi,(L44) +mov dword ptr (-476)[ebp],edi +mov edi,dword ptr (20)[ebp] +lea edi,(60)[edi] +mov dword ptr (-480)[ebp],edi +L46: +L47: +mov edi,dword ptr (-480)[ebp] +lea esi,(1)[edi] +mov dword ptr (-480)[ebp],esi +mov esi,dword ptr (-476)[ebp] +lea ebx,(1)[esi] +mov dword ptr (-476)[ebp],ebx +mov bl,byte ptr [esi] +mov byte ptr [edi],bl +movsx edi,bl +cmp edi,0 +jne L46 +jmp L49 +inc dword ptr (-484)[ebp] +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L51 +push 1 +lea edi,(L43) +push edi +call _printf +add esp,8 +L51: +L49: +jmp L53 +add dword ptr (-484)[ebp],2 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L55 +push 2 +lea edi,(L43) +push edi +call _printf +add esp,8 +L55: +L53: +jmp L57 +add dword ptr (-484)[ebp],4 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L59 +push 4 +lea edi,(L43) +push edi +call _printf +add esp,8 +L59: +L57: +jmp L61 +add dword ptr (-484)[ebp],8 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L63 +push 8 +lea edi,(L43) +push edi +call _printf +add esp,8 +L63: +L61: +mov dword ptr (-4)[ebp],0 +L65: +mov edi,dword ptr (-4)[ebp] +mov dword ptr (L45)[edi*4],edi +L66: +inc dword ptr (-4)[ebp] +cmp dword ptr (-4)[ebp],17 +jl L65 +mov dword ptr (-4)[ebp],18 +L69: +mov edi,dword ptr (-4)[ebp] +lea edi,(L45)[edi*4] +mov esi,dword ptr [edi] +push esi +call _pow2 +add esp,4 +mov dword ptr [edi],eax +mov edi,dword ptr (-4)[ebp] +lea edi,[edi*4] +mov esi,dword ptr (L45)[edi] +sub esi,1 +mov dword ptr (L45-4)[edi],esi +add dword ptr (-4)[ebp],2 +L70: +cmp dword ptr (-4)[ebp],39 +jl L69 +mov dword ptr (-160)[ebp],0 +mov dword ptr (-316)[ebp],0 +mov dword ptr (-472)[ebp],0 +mov dword ptr (-156)[ebp],1 +mov dword ptr (-312)[ebp],1 +mov dword ptr (-468)[ebp],1 +mov dword ptr (-152)[ebp],2 +mov dword ptr (-308)[ebp],2 +mov dword ptr (-464)[ebp],2 +mov dword ptr (-148)[ebp],3 +mov dword ptr (-304)[ebp],3 +mov dword ptr (-460)[ebp],3 +mov dword ptr (-144)[ebp],4 +mov dword ptr (-300)[ebp],4 +mov dword ptr (-456)[ebp],4 +mov dword ptr (-140)[ebp],5 +mov dword ptr (-296)[ebp],5 +mov dword ptr (-452)[ebp],5 +mov dword ptr (-136)[ebp],6 +mov dword ptr (-292)[ebp],6 +mov dword ptr (-448)[ebp],6 +mov dword ptr (-132)[ebp],7 +mov dword ptr (-288)[ebp],7 +mov dword ptr (-444)[ebp],7 +mov dword ptr (-128)[ebp],8 +mov dword ptr (-284)[ebp],8 +mov dword ptr (-440)[ebp],8 +mov dword ptr (-124)[ebp],9 +mov dword ptr (-280)[ebp],9 +mov dword ptr (-436)[ebp],9 +mov dword ptr (-120)[ebp],10 +mov dword ptr (-276)[ebp],10 +mov dword ptr (-432)[ebp],10 +mov dword ptr (-116)[ebp],11 +mov dword ptr (-272)[ebp],11 +mov dword ptr (-428)[ebp],11 +mov dword ptr (-112)[ebp],12 +mov dword ptr (-268)[ebp],12 +mov dword ptr (-424)[ebp],12 +mov dword ptr (-108)[ebp],13 +mov dword ptr (-264)[ebp],13 +mov dword ptr (-420)[ebp],13 +mov dword ptr (-104)[ebp],14 +mov dword ptr (-260)[ebp],14 +mov dword ptr (-416)[ebp],14 +mov dword ptr (-100)[ebp],15 +mov dword ptr (-256)[ebp],15 +mov dword ptr (-412)[ebp],15 +mov dword ptr (-96)[ebp],16 +mov dword ptr (-252)[ebp],16 +mov dword ptr (-408)[ebp],16 +mov dword ptr (-92)[ebp],63 +mov dword ptr (-248)[ebp],63 +mov dword ptr (-404)[ebp],63 +mov dword ptr (-88)[ebp],64 +mov dword ptr (-244)[ebp],64 +mov dword ptr (-400)[ebp],64 +mov dword ptr (-84)[ebp],255 +mov dword ptr (-240)[ebp],255 +mov dword ptr (-396)[ebp],255 +mov dword ptr (-80)[ebp],256 +mov dword ptr (-236)[ebp],256 +mov dword ptr (-392)[ebp],256 +mov dword ptr (-76)[ebp],4095 +mov dword ptr (-232)[ebp],4095 +mov dword ptr (-388)[ebp],4095 +mov dword ptr (-72)[ebp],4096 +mov dword ptr (-228)[ebp],4096 +mov dword ptr (-384)[ebp],4096 +mov dword ptr (-68)[ebp],65535 +mov dword ptr (-224)[ebp],65535 +mov dword ptr (-380)[ebp],65535 +mov dword ptr (-64)[ebp],65536 +mov dword ptr (-220)[ebp],65536 +mov dword ptr (-376)[ebp],65536 +mov dword ptr (-60)[ebp],262143 +mov dword ptr (-216)[ebp],262143 +mov dword ptr (-372)[ebp],262143 +mov dword ptr (-56)[ebp],262144 +mov dword ptr (-212)[ebp],262144 +mov dword ptr (-368)[ebp],262144 +mov dword ptr (-52)[ebp],1048575 +mov dword ptr (-208)[ebp],1048575 +mov dword ptr (-364)[ebp],1048575 +mov dword ptr (-48)[ebp],1048576 +mov dword ptr (-204)[ebp],1048576 +mov dword ptr (-360)[ebp],1048576 +mov dword ptr (-44)[ebp],16777215 +mov dword ptr (-200)[ebp],16777215 +mov dword ptr (-356)[ebp],16777215 +mov dword ptr (-40)[ebp],16777216 +mov dword ptr (-196)[ebp],16777216 +mov dword ptr (-352)[ebp],16777216 +mov dword ptr (-36)[ebp],268435455 +mov dword ptr (-192)[ebp],268435455 +mov dword ptr (-348)[ebp],268435455 +mov dword ptr (-32)[ebp],268435456 +mov dword ptr (-188)[ebp],268435456 +mov dword ptr (-344)[ebp],268435456 +mov dword ptr (-28)[ebp],1073741823 +mov dword ptr (-184)[ebp],1073741823 +mov dword ptr (-340)[ebp],1073741823 +mov dword ptr (-24)[ebp],1073741824 +mov dword ptr (-180)[ebp],1073741824 +mov dword ptr (-336)[ebp],1073741824 +mov edi,0ffffffffH +mov dword ptr (-20)[ebp],edi +mov edi,0ffffffffH +mov dword ptr (-176)[ebp],edi +mov edi,0ffffffffH +mov dword ptr (-332)[ebp],edi +mov edi,0ffffffffH +mov dword ptr (-16)[ebp],edi +mov edi,0ffffffffH +mov dword ptr (-172)[ebp],edi +mov edi,0ffffffffH +mov dword ptr (-328)[ebp],edi +mov edi,0ffffffffH +mov dword ptr (-12)[ebp],edi +mov edi,0ffffffffH +mov dword ptr (-168)[ebp],edi +mov edi,0ffffffffH +mov dword ptr (-324)[ebp],edi +mov edi,0ffffffffH +mov dword ptr (-8)[ebp],edi +mov edi,0ffffffffH +mov dword ptr (-164)[ebp],edi +mov edi,0ffffffffH +mov dword ptr (-320)[ebp],edi +mov dword ptr (-4)[ebp],0 +L188: +mov edi,dword ptr (-4)[ebp] +lea edi,[edi*4] +mov esi,dword ptr (-160)[ebp][edi] +cmp dword ptr (L45)[edi],esi +jne L195 +mov ebx,dword ptr (-316)[ebp][edi] +cmp esi,ebx +jne L195 +cmp ebx,dword ptr (-472)[ebp][edi] +je L192 +L195: +mov edi,dword ptr (20)[ebp] +cmp dword ptr (40)[edi],0 +je L196 +lea edi,(L198) +push edi +call _printf +add esp,4 +lea edi,(L199) +push edi +call _printf +add esp,4 +L196: +L192: +L189: +inc dword ptr (-4)[ebp] +cmp dword ptr (-4)[ebp],39 +jl L188 +cmp dword ptr (-488)[ebp],0 +je L200 +mov dword ptr (-484)[ebp],16 +L200: +mov eax,dword ptr (-484)[ebp] +L42: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _pow2 +_pow2: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,4 +mov dword ptr (-4)[ebp],1 +jmp L204 +L203: +sal dword ptr (-4)[ebp],1 +L204: +mov edi,dword ptr (20)[ebp] +mov esi,edi +sub esi,1 +mov dword ptr (20)[ebp],esi +cmp edi,0 +jne L203 +mov eax,dword ptr (-4)[ebp] +L202: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +align 1 +L207 label byte +db 115 +db 50 +db 52 +db 51 +db 44 +db 101 +db 114 +db 37 +db 100 +db 10 +db 0 +align 1 +L208 label byte +db 115 +db 50 +db 52 +db 51 +db 32 +db 32 +db 32 +db 0 +public _s243 +_DATA ends +_TEXT segment +_s243: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,268 +mov dword ptr (-268)[ebp],0 +lea edi,(L208) +mov dword ptr (-260)[ebp],edi +mov edi,dword ptr (20)[ebp] +lea edi,(60)[edi] +mov dword ptr (-264)[ebp],edi +L209: +L210: +mov edi,dword ptr (-264)[ebp] +lea esi,(1)[edi] +mov dword ptr (-264)[ebp],esi +mov esi,dword ptr (-260)[ebp] +lea ebx,(1)[esi] +mov dword ptr (-260)[ebp],ebx +mov bl,byte ptr [esi] +mov byte ptr [edi],bl +movsx edi,bl +cmp edi,0 +jne L209 +lea edi,(-256)[ebp] +push edi +call _zerofill +add esp,4 +mov byte ptr (-159)[ebp],1 +mov byte ptr (-191)[ebp],1 +mov byte ptr (-130)[ebp],1 +mov byte ptr (-208)[ebp],1 +mov byte ptr (-158)[ebp],1 +mov byte ptr (-190)[ebp],1 +mov byte ptr (-223)[ebp],1 +mov byte ptr (-207)[ebp],1 +mov byte ptr (-157)[ebp],1 +mov byte ptr (-189)[ebp],1 +mov byte ptr (-222)[ebp],1 +mov byte ptr (-206)[ebp],1 +mov byte ptr (-156)[ebp],1 +mov byte ptr (-188)[ebp],1 +mov byte ptr (-221)[ebp],1 +mov byte ptr (-205)[ebp],1 +mov byte ptr (-155)[ebp],1 +mov byte ptr (-187)[ebp],1 +mov byte ptr (-219)[ebp],1 +mov byte ptr (-204)[ebp],1 +mov byte ptr (-154)[ebp],1 +mov byte ptr (-186)[ebp],1 +mov byte ptr (-218)[ebp],1 +mov byte ptr (-203)[ebp],1 +mov byte ptr (-153)[ebp],1 +mov byte ptr (-185)[ebp],1 +mov byte ptr (-216)[ebp],1 +mov byte ptr (-202)[ebp],1 +mov byte ptr (-152)[ebp],1 +mov byte ptr (-184)[ebp],1 +mov byte ptr (-215)[ebp],1 +mov byte ptr (-201)[ebp],1 +mov byte ptr (-151)[ebp],1 +mov byte ptr (-183)[ebp],1 +mov byte ptr (-161)[ebp],1 +mov byte ptr (-200)[ebp],1 +mov byte ptr (-150)[ebp],1 +mov byte ptr (-182)[ebp],1 +mov byte ptr (-195)[ebp],1 +mov byte ptr (-199)[ebp],1 +mov byte ptr (-149)[ebp],1 +mov byte ptr (-181)[ebp],1 +mov byte ptr (-211)[ebp],1 +mov byte ptr (-148)[ebp],1 +mov byte ptr (-180)[ebp],1 +mov byte ptr (-162)[ebp],1 +mov byte ptr (-147)[ebp],1 +mov byte ptr (-179)[ebp],1 +mov byte ptr (-132)[ebp],1 +mov byte ptr (-246)[ebp],1 +mov byte ptr (-146)[ebp],1 +mov byte ptr (-178)[ebp],1 +mov byte ptr (-247)[ebp],1 +mov byte ptr (-145)[ebp],1 +mov byte ptr (-177)[ebp],1 +mov byte ptr (-133)[ebp],1 +mov byte ptr (-248)[ebp],1 +mov byte ptr (-144)[ebp],1 +mov byte ptr (-176)[ebp],1 +mov byte ptr (-131)[ebp],1 +mov byte ptr (-243)[ebp],1 +mov byte ptr (-143)[ebp],1 +mov byte ptr (-175)[ebp],1 +mov byte ptr (-165)[ebp],1 +mov byte ptr (-244)[ebp],1 +mov byte ptr (-142)[ebp],1 +mov byte ptr (-174)[ebp],1 +mov byte ptr (-163)[ebp],1 +mov byte ptr (-141)[ebp],1 +mov byte ptr (-173)[ebp],1 +mov byte ptr (-213)[ebp],1 +mov byte ptr (-164)[ebp],1 +mov byte ptr (-140)[ebp],1 +mov byte ptr (-172)[ebp],1 +mov byte ptr (-197)[ebp],1 +mov byte ptr (-217)[ebp],1 +mov byte ptr (-139)[ebp],1 +mov byte ptr (-171)[ebp],1 +mov byte ptr (-214)[ebp],1 +mov byte ptr (-138)[ebp],1 +mov byte ptr (-170)[ebp],1 +mov byte ptr (-198)[ebp],1 +mov byte ptr (-256)[ebp],1 +mov byte ptr (-137)[ebp],1 +mov byte ptr (-169)[ebp],1 +mov byte ptr (-196)[ebp],1 +mov byte ptr (-224)[ebp],1 +mov byte ptr (-136)[ebp],1 +mov byte ptr (-168)[ebp],1 +mov byte ptr (-194)[ebp],1 +mov byte ptr (-135)[ebp],1 +mov byte ptr (-167)[ebp],1 +mov byte ptr (-212)[ebp],1 +mov byte ptr (-134)[ebp],1 +mov byte ptr (-166)[ebp],1 +mov byte ptr (-210)[ebp],1 +mov byte ptr (-193)[ebp],1 +mov byte ptr (-209)[ebp],1 +lea edi,(-256)[ebp] +push edi +call _sumof +add esp,4 +cmp eax,98 +je L309 +inc dword ptr (-268)[ebp] +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L311 +push 1 +lea edi,(L207) +push edi +call _printf +add esp,8 +L311: +L309: +jmp L313 +add dword ptr (-268)[ebp],8 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L315 +push 8 +lea edi,(L207) +push edi +call _printf +add esp,8 +L315: +L313: +mov eax,dword ptr (-268)[ebp] +L206: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _zerofill +_zerofill: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,4 +mov dword ptr (-4)[ebp],0 +L318: +mov edi,dword ptr (20)[ebp] +lea esi,(1)[edi] +mov dword ptr (20)[ebp],esi +mov byte ptr [edi],0 +L319: +inc dword ptr (-4)[ebp] +cmp dword ptr (-4)[ebp],256 +jl L318 +mov eax,0 +L317: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _sumof +_sumof: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,12 +mov edi,dword ptr (20)[ebp] +mov dword ptr (-12)[ebp],edi +mov dword ptr (-4)[ebp],0 +mov dword ptr (-8)[ebp],0 +L323: +mov edi,dword ptr (-12)[ebp] +lea esi,(1)[edi] +mov dword ptr (-12)[ebp],esi +movsx edi,byte ptr [edi] +add dword ptr (-4)[ebp],edi +L324: +inc dword ptr (-8)[ebp] +cmp dword ptr (-8)[ebp],256 +jl L323 +mov eax,dword ptr (-4)[ebp] +L322: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +align 1 +L328 label byte +db 115 +db 50 +db 52 +db 52 +db 44 +db 101 +db 114 +db 37 +db 100 +db 10 +db 0 +align 1 +L329 label byte +db 115 +db 50 +db 52 +db 52 +db 32 +db 32 +db 32 +db 0 +public _s244 +_DATA ends +_TEXT segment +_s244: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,92 +lea edi,(L329) +mov dword ptr (-72)[ebp],edi +mov edi,dword ptr (20)[ebp] +lea edi,(60)[edi] +mov dword ptr (-76)[ebp],edi +L330: +L331: +mov edi,dword ptr (-76)[ebp] +lea esi,(1)[edi] +mov dword ptr (-76)[ebp],esi +mov esi,dword ptr (-72)[ebp] +lea ebx,(1)[esi] +mov dword ptr (-72)[ebp],ebx +mov bl,byte ptr [esi] +mov byte ptr [edi],bl +movsx edi,bl +cmp edi,0 +jne L330 +mov dword ptr (-84)[ebp],0 +mov dword ptr (-80)[ebp],0 +fld qword ptr (L333) +fstp qword ptr (-68)[ebp] +fld qword ptr (L333) +fstp qword ptr (-60)[ebp] +fld qword ptr (L333) +fstp qword ptr (-52)[ebp] +fld qword ptr (L333) +fstp qword ptr (-44)[ebp] +fld qword ptr (L333) +fstp qword ptr (-36)[ebp] +fld qword ptr (L333) +fstp qword ptr (-28)[ebp] +fld qword ptr (L333) +fstp qword ptr (-20)[ebp] +fld qword ptr (L333) +fstp qword ptr (-12)[ebp] +mov dword ptr (-80)[ebp],0 +mov dword ptr (-4)[ebp],0 +L341: +mov edi,dword ptr (-4)[ebp] +lea edi,[edi*8] +fld qword ptr (-60)[ebp][edi] +fcomp qword ptr (-68)[ebp][edi] +fstsw ax +sahf +je L345 +mov dword ptr (-80)[ebp],1 +L345: +L342: +inc dword ptr (-4)[ebp] +cmp dword ptr (-4)[ebp],7 +jl L341 +cmp dword ptr (-80)[ebp],0 +je L348 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L350 +push 1 +lea edi,(L328) +push edi +call _printf +add esp,8 +L350: +inc dword ptr (-84)[ebp] +L348: +jmp L352 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L354 +push 2 +lea edi,(L328) +push edi +call _printf +add esp,8 +L354: +add dword ptr (-84)[ebp],2 +L352: +mov eax,dword ptr (-84)[ebp] +L327: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +align 1 +L357 label byte +db 115 +db 50 +db 53 +db 44 +db 101 +db 114 +db 37 +db 100 +db 10 +db 0 +align 1 +L358 label byte +db 115 +db 50 +db 53 +db 32 +db 32 +db 32 +db 32 +db 0 +public _s25 +_DATA ends +_TEXT segment +_s25: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,28 +lea edi,(L358) +mov dword ptr (-16)[ebp],edi +mov edi,dword ptr (20)[ebp] +lea edi,(60)[edi] +mov dword ptr (-20)[ebp],edi +L359: +L360: +mov edi,dword ptr (-20)[ebp] +lea esi,(1)[edi] +mov dword ptr (-20)[ebp],esi +mov esi,dword ptr (-16)[ebp] +lea ebx,(1)[esi] +mov dword ptr (-16)[ebp],ebx +mov bl,byte ptr [esi] +mov byte ptr [edi],bl +movsx edi,bl +cmp edi,0 +jne L359 +mov dword ptr (-24)[ebp],0 +lea edi,(L362) +mov dword ptr (-8)[ebp],edi +mov edi,dword ptr (-8)[ebp] +movsx esi,byte ptr (1)[edi] +movsx ebx,byte ptr [edi] +cmp ebx,esi +jne L366 +movsx edi,byte ptr (2)[edi] +cmp esi,edi +jne L366 +cmp edi,46 +je L363 +L366: +inc dword ptr (-24)[ebp] +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L367 +push 1 +lea edi,(L357) +push edi +call _printf +add esp,8 +L367: +L363: +mov edi,dword ptr (-8)[ebp] +movsx edi,byte ptr (3)[edi] +cmp edi,0 +je L369 +add dword ptr (-24)[ebp],4 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L371 +push 4 +lea edi,(L357) +push edi +call _printf +add esp,8 +L371: +L369: +movsx edi,byte ptr (L375+1) +cmp edi,34 +je L373 +add dword ptr (-24)[ebp],8 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L377 +push 8 +lea edi,(L357) +push edi +call _printf +add esp,8 +L377: +L373: +lea edi,(L379) +mov dword ptr (-8)[ebp],edi +mov edi,dword ptr (-8)[ebp] +movsx esi,byte ptr [edi] +cmp esi,10 +jne L387 +movsx esi,byte ptr (1)[edi] +cmp esi,9 +jne L387 +movsx esi,byte ptr (2)[edi] +cmp esi,8 +jne L387 +movsx esi,byte ptr (3)[edi] +cmp esi,13 +jne L387 +movsx esi,byte ptr (4)[edi] +cmp esi,12 +jne L387 +movsx esi,byte ptr (5)[edi] +cmp esi,92 +jne L387 +movsx edi,byte ptr (6)[edi] +cmp edi,39 +je L380 +L387: +add dword ptr (-24)[ebp],16 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L388 +push 16 +lea edi,(L357) +push edi +call _printf +add esp,8 +L388: +L380: +lea edi,(L390) +mov dword ptr (-12)[ebp],edi +mov dword ptr (-8)[ebp],edi +mov dword ptr (-28)[ebp],0 +mov dword ptr (-4)[ebp],0 +jmp L394 +L391: +mov edi,dword ptr (-4)[ebp] +mov esi,dword ptr (-8)[ebp] +movsx esi,byte ptr [esi][edi] +mov ebx,dword ptr (-12)[ebp] +movsx edi,byte ptr [ebx][edi] +cmp esi,edi +je L395 +mov dword ptr (-28)[ebp],1 +L395: +L392: +inc dword ptr (-4)[ebp] +L394: +mov edi,dword ptr (-4)[ebp] +cmp edi,7 +jb L391 +cmp dword ptr (-28)[ebp],0 +je L397 +add dword ptr (-24)[ebp],32 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L399 +push 32 +lea edi,(L357) +push edi +call _printf +add esp,8 +L399: +L397: +mov eax,dword ptr (-24)[ebp] +L356: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +align 1 +L402 label byte +db 115 +db 50 +db 54 +db 32 +db 32 +db 32 +db 32 +db 0 +align 1 +L403 label byte +db 37 +db 51 +db 100 +db 32 +db 98 +db 105 +db 116 +db 115 +db 32 +db 105 +db 110 +db 32 +db 37 +db 115 +db 115 +db 46 +db 10 +db 0 +align 1 +L404 label byte +db 37 +db 101 +db 32 +db 105 +db 115 +db 32 +db 116 +db 104 +db 101 +db 32 +db 108 +db 101 +db 97 +db 115 +db 116 +db 32 +db 110 +db 117 +db 109 +db 98 +db 101 +db 114 +db 32 +db 116 +db 104 +db 97 +db 116 +db 32 +db 99 +db 97 +db 110 +db 32 +db 98 +db 101 +db 32 +db 97 +db 100 +db 100 +db 101 +db 100 +db 32 +db 116 +db 111 +db 32 +db 49 +db 46 +db 32 +db 40 +db 37 +db 115 +db 41 +db 46 +db 10 +db 0 +public _s26 +_DATA ends +_TEXT segment +_s26: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,56 +lea edi,(L402) +mov dword ptr (-36)[ebp],edi +mov edi,dword ptr (20)[ebp] +lea edi,(60)[edi] +mov dword ptr (-40)[ebp],edi +L405: +L406: +mov edi,dword ptr (-40)[ebp] +lea esi,(1)[edi] +mov dword ptr (-40)[ebp],esi +mov esi,dword ptr (-36)[ebp] +lea ebx,(1)[esi] +mov dword ptr (-36)[ebp],ebx +mov bl,byte ptr [esi] +mov byte ptr [edi],bl +movsx edi,bl +cmp edi,0 +jne L405 +mov edi,dword ptr (20)[ebp] +mov dword ptr [edi],0 +mov byte ptr (-41)[ebp],0 +mov byte ptr (-5)[ebp],1 +jmp L409 +L408: +movsx edi,byte ptr (-5)[ebp] +lea edi,[edi*2] +mov ebx,edi +mov byte ptr (-5)[ebp],bl +mov edi,dword ptr (20)[ebp] +inc dword ptr [edi] +L409: +movsx edi,byte ptr (-41)[ebp] +movsx esi,byte ptr (-5)[ebp] +cmp edi,esi +jne L408 +mov edi,dword ptr (20)[ebp] +mov esi,dword ptr [edi] +lea esi,[esi*4] +mov dword ptr (4)[edi],esi +mov edi,dword ptr (20)[ebp] +mov esi,dword ptr [edi] +lea esi,[esi*2] +mov dword ptr (8)[edi],esi +mov edi,dword ptr (20)[ebp] +mov esi,dword ptr [edi] +lea esi,[esi*4] +mov dword ptr (12)[edi],esi +mov edi,dword ptr (20)[ebp] +mov esi,dword ptr [edi] +lea esi,[esi*4] +mov dword ptr (16)[edi],esi +mov edi,dword ptr (20)[ebp] +mov esi,dword ptr [edi] +lea esi,[esi*4] +mov dword ptr (20)[edi],esi +mov edi,dword ptr (20)[ebp] +mov esi,dword ptr [edi] +lea esi,[esi*8] +mov dword ptr (24)[edi],esi +fld dword ptr (L411) +fstp dword ptr (-16)[ebp] +fld dword ptr (L411) +fstp dword ptr (-4)[ebp] +fld dword ptr (L412) +fstp dword ptr (-12)[ebp] +jmp L414 +L413: +fld dword ptr (-16)[ebp] +fadd dword ptr (-4)[ebp] +fstp dword ptr (-12)[ebp] +fld dword ptr (-4)[ebp] +fdiv qword ptr (L416) +fstp dword ptr (-4)[ebp] +L414: +fld dword ptr (-16)[ebp] +fcomp dword ptr (-12)[ebp] +fstsw ax +sahf +jne L413 +mov edi,dword ptr (20)[ebp] +fld qword ptr (L417) +fmul dword ptr (-4)[ebp] +fstp dword ptr (28)[edi] +fld qword ptr (L418) +fstp qword ptr (-32)[ebp] +fld dword ptr (L411) +fstp dword ptr (-4)[ebp] +fld qword ptr (L419) +fstp qword ptr (-24)[ebp] +jmp L421 +L420: +fld dword ptr (-4)[ebp] +fstp qword ptr (-56)[ebp] +fld qword ptr (-32)[ebp] +fadd qword ptr (-56)[ebp] +fstp qword ptr (-24)[ebp] +fld qword ptr (-56)[ebp] +fdiv qword ptr (L416) +fstp dword ptr (-4)[ebp] +L421: +fld qword ptr (-32)[ebp] +fcomp qword ptr (-24)[ebp] +fstsw ax +sahf +jne L420 +mov edi,dword ptr (20)[ebp] +fld qword ptr (L417) +fmul dword ptr (-4)[ebp] +fstp dword ptr (32)[edi] +mov edi,dword ptr (20)[ebp] +cmp dword ptr (40)[edi],0 +je L423 +lea edi,(L425) +push edi +mov edi,dword ptr (20)[ebp] +mov edi,dword ptr [edi] +push edi +lea edi,(L403) +push edi +call _printf +add esp,12 +lea edi,(L426) +push edi +mov edi,dword ptr (20)[ebp] +mov edi,dword ptr (4)[edi] +push edi +lea edi,(L403) +push edi +call _printf +add esp,12 +lea edi,(L427) +push edi +mov edi,dword ptr (20)[ebp] +mov edi,dword ptr (8)[edi] +push edi +lea edi,(L403) +push edi +call _printf +add esp,12 +lea edi,(L428) +push edi +mov edi,dword ptr (20)[ebp] +mov edi,dword ptr (12)[edi] +push edi +lea edi,(L403) +push edi +call _printf +add esp,12 +lea edi,(L429) +push edi +mov edi,dword ptr (20)[ebp] +mov edi,dword ptr (16)[edi] +push edi +lea edi,(L403) +push edi +call _printf +add esp,12 +lea edi,(L430) +push edi +mov edi,dword ptr (20)[ebp] +mov edi,dword ptr (20)[edi] +push edi +lea edi,(L403) +push edi +call _printf +add esp,12 +lea edi,(L431) +push edi +mov edi,dword ptr (20)[ebp] +mov edi,dword ptr (24)[edi] +push edi +lea edi,(L403) +push edi +call _printf +add esp,12 +lea edi,(L430) +push edi +mov edi,dword ptr (20)[ebp] +fld dword ptr (28)[edi] +sub esp,8 +fstp qword ptr [esp] +lea edi,(L404) +push edi +call _printf +add esp,16 +lea edi,(L431) +push edi +mov edi,dword ptr (20)[ebp] +fld dword ptr (32)[edi] +sub esp,8 +fstp qword ptr [esp] +lea edi,(L404) +push edi +call _printf +add esp,16 +L423: +mov eax,0 +L401: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +align 1 +L433 label byte +db 115 +db 52 +db 44 +db 101 +db 114 +db 37 +db 100 +db 10 +db 0 +align 1 +L434 label byte +db 115 +db 52 +db 32 +db 32 +db 32 +db 32 +db 32 +db 0 +public _s4 +_DATA ends +_TEXT segment +_s4: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,36 +mov dword ptr (-24)[ebp],0 +lea edi,(L434) +mov dword ptr (-16)[ebp],edi +mov edi,dword ptr (20)[ebp] +lea edi,(60)[edi] +mov dword ptr (-20)[ebp],edi +L435: +L436: +mov edi,dword ptr (-20)[ebp] +lea esi,(1)[edi] +mov dword ptr (-20)[ebp],esi +mov esi,dword ptr (-16)[ebp] +lea ebx,(1)[esi] +mov dword ptr (-16)[ebp],ebx +mov bl,byte ptr [esi] +mov byte ptr [edi],bl +movsx edi,bl +cmp edi,0 +jne L435 +mov dword ptr (-4)[ebp],0 +L438: +mov edi,dword ptr (-4)[ebp] +push edi +call _svtest +add esp,4 +mov edi,eax +call _zero +add esp,0 +cmp edi,eax +je L442 +mov dword ptr (-24)[ebp],1 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L444 +push 1 +lea edi,(L433) +push edi +call _printf +add esp,8 +L444: +L442: +L439: +inc dword ptr (-4)[ebp] +cmp dword ptr (-4)[ebp],3 +jl L438 +call _setev +add esp,0 +call _testev +add esp,0 +cmp eax,0 +je L446 +add dword ptr (-24)[ebp],2 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L448 +push 2 +lea edi,(L433) +push edi +call _printf +add esp,8 +L448: +L446: +jmp L450 +add dword ptr (-24)[ebp],4 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L452 +push 4 +lea edi,(L433) +push edi +call _printf +add esp,8 +L452: +L450: +mov dword ptr (-8)[ebp],0ffffffffH +mov dword ptr (-12)[ebp],1 +mov dword ptr (-4)[ebp],0 +jmp L457 +L454: +mov edi,dword ptr (-8)[ebp] +and dword ptr (-12)[ebp],edi +shr edi,1 +mov dword ptr (-8)[ebp],edi +L455: +inc dword ptr (-4)[ebp] +L457: +mov edi,dword ptr (-4)[ebp] +mov esi,dword ptr (20)[ebp] +mov esi,dword ptr [esi] +lea esi,[esi*4] +cmp edi,esi +jb L454 +mov edi,dword ptr (-12)[ebp] +cmp edi,1 +jne L460 +mov edi,dword ptr (-8)[ebp] +cmp edi,0 +je L458 +L460: +add dword ptr (-24)[ebp],8 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L461 +push 8 +lea edi,(L433) +push edi +call _printf +add esp,8 +L461: +L458: +mov eax,dword ptr (-24)[ebp] +L432: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +align 4 +L464 label byte +db 4 dup (0) +public _svtest +_DATA ends +_TEXT segment +_svtest: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,4 +mov edi,dword ptr (20)[ebp] +cmp edi,0 +je L467 +cmp edi,1 +je L468 +cmp edi,2 +je L471 +jmp L465 +L467: +mov dword ptr (L464),1978 +mov dword ptr (-4)[ebp],0 +jmp L466 +L468: +cmp dword ptr (L464),1978 +je L469 +mov dword ptr (-4)[ebp],1 +jmp L466 +L469: +mov dword ptr (L464),1929 +mov dword ptr (-4)[ebp],0 +jmp L466 +L471: +cmp dword ptr (L464),1929 +je L472 +mov dword ptr (-4)[ebp],1 +jmp L466 +L472: +mov dword ptr (-4)[ebp],0 +L465: +L466: +mov eax,dword ptr (-4)[ebp] +L463: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +align 4 +L475 label byte +db 4 dup (0) +public _zero +_DATA ends +_TEXT segment +_zero: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,4 +mov dword ptr (L475),2 +mov dword ptr (-4)[ebp],0 +mov eax,dword ptr (-4)[ebp] +L474: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _testev +_testev: +push ebx +push esi +push edi +push ebp +mov ebp,esp +cmp dword ptr (_extvar),1066 +je L477 +mov eax,1 +jmp L476 +L477: +mov eax,0 +L476: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +align 1 +L480 label byte +db 115 +db 54 +db 49 +db 44 +db 101 +db 114 +db 37 +db 100 +db 10 +db 0 +align 1 +L481 label byte +db 115 +db 54 +db 49 +db 32 +db 32 +db 32 +db 32 +db 0 +align 1 +L482 label byte +db 65 +db 66 +db 67 +db 68 +db 69 +db 70 +db 71 +db 72 +db 73 +db 74 +db 75 +db 76 +db 77 +db 78 +db 79 +db 80 +db 81 +db 82 +db 83 +db 84 +db 85 +db 86 +db 87 +db 88 +db 89 +db 90 +db 0 +align 1 +L483 label byte +db 97 +db 98 +db 99 +db 100 +db 101 +db 102 +db 103 +db 104 +db 105 +db 106 +db 107 +db 108 +db 109 +db 110 +db 111 +db 112 +db 113 +db 114 +db 115 +db 116 +db 117 +db 118 +db 119 +db 120 +db 121 +db 122 +db 0 +align 1 +L484 label byte +db 48 +db 49 +db 50 +db 51 +db 52 +db 53 +db 54 +db 55 +db 56 +db 57 +db 0 +align 1 +L485 label byte +db 126 +db 33 +db 34 +db 35 +db 37 +db 38 +db 40 +db 41 +db 95 +db 61 +db 45 +db 94 +db 124 +db 123 +db 125 +db 91 +db 93 +db 43 +db 59 +db 42 +db 58 +db 60 +db 62 +db 44 +db 46 +db 63 +db 47 +db 0 +align 1 +L486 label byte +db 10 +db 9 +db 8 +db 13 +db 12 +db 92 +db 39 +db 0 +align 1 +L487 label byte +db 32 +db 0 +db 0 +public _s61 +_DATA ends +_TEXT segment +_s61: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,60 +lea edi,(L481) +mov dword ptr (-36)[ebp],edi +mov edi,dword ptr (20)[ebp] +lea edi,(60)[edi] +mov dword ptr (-40)[ebp],edi +mov dword ptr (-48)[ebp],0 +L488: +L489: +mov edi,dword ptr (-40)[ebp] +lea esi,(1)[edi] +mov dword ptr (-40)[ebp],esi +mov esi,dword ptr (-36)[ebp] +lea ebx,(1)[esi] +mov dword ptr (-36)[ebp],ebx +mov bl,byte ptr [esi] +mov byte ptr [edi],bl +movsx edi,bl +cmp edi,0 +jne L488 +mov word ptr (-54)[ebp],-19 +movsx edi,word ptr (-54)[ebp] +mov dword ptr (-60)[ebp],edi +cmp dword ptr (-60)[ebp],-19 +je L491 +inc dword ptr (-48)[ebp] +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L493 +push 1 +lea edi,(L480) +push edi +call _printf +add esp,8 +L493: +L491: +lea edi,(L482) +mov dword ptr (-28)[ebp],edi +lea edi,(L483) +mov dword ptr (-24)[ebp],edi +lea edi,(L484) +mov dword ptr (-20)[ebp],edi +lea edi,(L485) +mov dword ptr (-16)[ebp],edi +lea edi,(L486) +mov dword ptr (-12)[ebp],edi +lea edi,(L487) +mov dword ptr (-8)[ebp],edi +mov dword ptr (-32)[ebp],0 +mov dword ptr (-4)[ebp],0 +jmp L505 +L504: +mov edi,dword ptr (-4)[ebp] +lea edi,(-28)[ebp][edi*4] +mov esi,dword ptr [edi] +lea ebx,(1)[esi] +mov dword ptr [edi],ebx +movsx edi,byte ptr [esi] +cmp edi,0 +jge L507 +mov dword ptr (-32)[ebp],1 +L507: +L505: +mov edi,dword ptr (-4)[ebp] +mov edi,dword ptr (-28)[ebp][edi*4] +movsx edi,byte ptr [edi] +cmp edi,0 +jne L504 +L501: +inc dword ptr (-4)[ebp] +cmp dword ptr (-4)[ebp],6 +jl L505 +cmp dword ptr (-32)[ebp],0 +je L509 +add dword ptr (-48)[ebp],2 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L511 +push 2 +lea edi,(L480) +push edi +call _printf +add esp,8 +L511: +L509: +mov dword ptr (-44)[ebp],1048579 +mov edi,dword ptr (-44)[ebp] +mov esi,edi +mov word ptr (-50)[ebp],si +mov ebx,edi +mov byte ptr (-51)[ebp],bl +movsx edi,word ptr (-50)[ebp] +cmp edi,dword ptr (-44)[ebp] +je L516 +cmp edi,3 +jne L515 +L516: +movsx edi,byte ptr (-51)[ebp] +cmp edi,dword ptr (-44)[ebp] +je L513 +cmp edi,3 +je L513 +L515: +add dword ptr (-48)[ebp],8 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L517 +push 8 +lea edi,(L480) +push edi +call _printf +add esp,8 +L517: +L513: +mov eax,dword ptr (-48)[ebp] +L479: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +align 1 +L520 label byte +db 115 +db 54 +db 50 +db 54 +db 44 +db 101 +db 114 +db 37 +db 100 +db 10 +db 0 +align 1 +L521 label byte +db 115 +db 54 +db 50 +db 54 +db 32 +db 32 +db 32 +db 0 +public _s626 +_DATA ends +_TEXT segment +_s626: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,128 +lea edi,(L521) +mov dword ptr (-56)[ebp],edi +mov edi,dword ptr (20)[ebp] +lea edi,(60)[edi] +mov dword ptr (-60)[ebp],edi +mov dword ptr (-104)[ebp],0 +L522: +L523: +mov edi,dword ptr (-60)[ebp] +lea esi,(1)[edi] +mov dword ptr (-60)[ebp],esi +mov esi,dword ptr (-56)[ebp] +lea ebx,(1)[esi] +mov dword ptr (-56)[ebp],ebx +mov bl,byte ptr [esi] +mov byte ptr [edi],bl +movsx edi,bl +cmp edi,0 +jne L522 +fld dword ptr (L411) +fstp dword ptr (-36)[ebp] +mov dword ptr (-64)[ebp],1 +mov dword ptr (-40)[ebp],1 +mov dword ptr (-4)[ebp],0 +jmp L528 +L525: +fld dword ptr (L529) +fmul dword ptr (-36)[ebp] +fstp dword ptr (-36)[ebp] +mov edi,dword ptr (-40)[ebp] +lea edi,[edi*2] +or edi,dword ptr (-64)[ebp] +mov dword ptr (-40)[ebp],edi +L526: +inc dword ptr (-4)[ebp] +L528: +mov edi,dword ptr (20)[ebp] +mov edi,dword ptr (12)[edi] +sub edi,2 +cmp dword ptr (-4)[ebp],edi +jl L525 +mov edi,dword ptr (-40)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fstp dword ptr (-112)[ebp] +fld dword ptr (-36)[ebp] +fsub dword ptr (-112)[ebp] +fdiv dword ptr (-36)[ebp] +fstp dword ptr (-36)[ebp] +fld qword ptr (L416) +mov edi,dword ptr (20)[ebp] +fmul dword ptr (28)[edi] +fcomp dword ptr (-36)[ebp] +fstsw ax +sahf +jae L530 +add dword ptr (-104)[ebp],2 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L532 +push 2 +lea edi,(L520) +push edi +call _printf +add esp,8 +L532: +L530: +mov byte ptr (-73)[ebp],125 +mov word ptr (-76)[ebp],125 +mov dword ptr (-80)[ebp],125 +mov dword ptr (-96)[ebp],15625 +mov dword ptr (-84)[ebp],125 +mov dword ptr (-100)[ebp],15625 +mov dword ptr (-68)[ebp],125 +mov dword ptr (-108)[ebp],15625 +fld dword ptr (L534) +fstp dword ptr (-72)[ebp] +fld qword ptr (L535) +fstp qword ptr (-92)[ebp] +fld qword ptr (L536) +fstp qword ptr (-52)[ebp] +mov dword ptr (-4)[ebp],0 +L537: +mov edi,dword ptr (-4)[ebp] +mov byte ptr (-32)[ebp][edi],0 +L538: +inc dword ptr (-4)[ebp] +cmp dword ptr (-4)[ebp],28 +jl L537 +movsx edi,byte ptr (-73)[ebp] +mov esi,edi +imul esi,edi +cmp esi,dword ptr (-96)[ebp] +je L541 +mov byte ptr (-32)[ebp],1 +L541: +movsx edi,word ptr (-76)[ebp] +movsx esi,byte ptr (-73)[ebp] +imul edi,esi +cmp edi,dword ptr (-96)[ebp] +je L543 +mov byte ptr (-31)[ebp],1 +L543: +movsx edi,word ptr (-76)[ebp] +mov esi,edi +imul esi,edi +cmp esi,dword ptr (-96)[ebp] +je L546 +mov byte ptr (-30)[ebp],1 +L546: +mov edi,dword ptr (-80)[ebp] +movsx esi,byte ptr (-73)[ebp] +imul edi,esi +cmp edi,dword ptr (-96)[ebp] +je L549 +mov byte ptr (-29)[ebp],1 +L549: +mov edi,dword ptr (-80)[ebp] +movsx esi,word ptr (-76)[ebp] +imul edi,esi +cmp edi,dword ptr (-96)[ebp] +je L552 +mov byte ptr (-28)[ebp],1 +L552: +mov edi,dword ptr (-80)[ebp] +mov esi,edi +imul esi,edi +cmp esi,dword ptr (-96)[ebp] +je L555 +mov byte ptr (-27)[ebp],1 +L555: +mov eax,dword ptr (-84)[ebp] +movsx edi,byte ptr (-73)[ebp] +mul edi +cmp eax,dword ptr (-100)[ebp] +je L558 +mov byte ptr (-26)[ebp],1 +L558: +mov eax,dword ptr (-84)[ebp] +movsx edi,word ptr (-76)[ebp] +mul edi +cmp eax,dword ptr (-100)[ebp] +je L561 +mov byte ptr (-25)[ebp],1 +L561: +mov eax,dword ptr (-84)[ebp] +mov edi,dword ptr (-80)[ebp] +mul edi +cmp eax,dword ptr (-100)[ebp] +je L564 +mov byte ptr (-24)[ebp],1 +L564: +mov edi,dword ptr (-84)[ebp] +mov eax,edi +mul edi +cmp eax,dword ptr (-100)[ebp] +je L567 +mov byte ptr (-23)[ebp],1 +L567: +mov edi,dword ptr (-68)[ebp] +movsx esi,byte ptr (-73)[ebp] +imul edi,esi +cmp edi,dword ptr (-108)[ebp] +je L570 +mov byte ptr (-22)[ebp],1 +L570: +mov edi,dword ptr (-68)[ebp] +movsx esi,word ptr (-76)[ebp] +imul edi,esi +cmp edi,dword ptr (-108)[ebp] +je L573 +mov byte ptr (-21)[ebp],1 +L573: +mov edi,dword ptr (-68)[ebp] +mov esi,dword ptr (-80)[ebp] +imul edi,esi +cmp edi,dword ptr (-108)[ebp] +je L576 +mov byte ptr (-20)[ebp],1 +L576: +mov edi,dword ptr (-68)[ebp] +mov eax,edi +mul dword ptr (-84)[ebp] +cmp eax,dword ptr (-100)[ebp] +je L579 +mov byte ptr (-19)[ebp],1 +L579: +mov edi,dword ptr (-68)[ebp] +mov esi,edi +imul esi,edi +cmp esi,dword ptr (-108)[ebp] +je L582 +mov byte ptr (-18)[ebp],1 +L582: +fld dword ptr (-72)[ebp] +movsx edi,byte ptr (-73)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +fld qword ptr (-52)[ebp] +fcompp +fstsw ax +sahf +je L585 +mov byte ptr (-17)[ebp],1 +L585: +fld dword ptr (-72)[ebp] +movsx edi,word ptr (-76)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +fld qword ptr (-52)[ebp] +fcompp +fstsw ax +sahf +je L588 +mov byte ptr (-16)[ebp],1 +L588: +fld dword ptr (-72)[ebp] +mov edi,dword ptr (-80)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +fld qword ptr (-52)[ebp] +fcompp +fstsw ax +sahf +je L591 +mov byte ptr (-15)[ebp],1 +L591: +mov edi,dword ptr (-84)[ebp] +fld dword ptr (-72)[ebp] +fld qword ptr (L596) +mov esi,edi +shr esi,1 +push esi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +and edi,1 +push edi +fild dword ptr 0[esp] +add esp,4 +faddp st(1),st +sub esp,4 +fstp dword ptr 0[esp] +fld dword ptr 0[esp] +add esp,4 +fmulp st(1),st +fld qword ptr (-52)[ebp] +fcompp +fstsw ax +sahf +je L594 +mov byte ptr (-14)[ebp],1 +L594: +fld dword ptr (-72)[ebp] +mov edi,dword ptr (-68)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +fld qword ptr (-52)[ebp] +fcompp +fstsw ax +sahf +je L598 +mov byte ptr (-13)[ebp],1 +L598: +fld dword ptr (-72)[ebp] +fmul dword ptr (-72)[ebp] +fld qword ptr (-52)[ebp] +fcompp +fstsw ax +sahf +je L601 +mov byte ptr (-12)[ebp],1 +L601: +fld qword ptr (-92)[ebp] +movsx edi,byte ptr (-73)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +fld qword ptr (-52)[ebp] +fcompp +fstsw ax +sahf +je L604 +mov byte ptr (-11)[ebp],1 +L604: +fld qword ptr (-92)[ebp] +movsx edi,word ptr (-76)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +fld qword ptr (-52)[ebp] +fcompp +fstsw ax +sahf +je L607 +mov byte ptr (-10)[ebp],1 +L607: +fld qword ptr (-92)[ebp] +fild dword ptr (-80)[ebp] +fmulp st(1),st +fld qword ptr (-52)[ebp] +fcompp +fstsw ax +sahf +je L610 +mov byte ptr (-9)[ebp],1 +L610: +mov edi,dword ptr (-84)[ebp] +fld qword ptr (-92)[ebp] +fld qword ptr (L596) +mov esi,edi +shr esi,1 +push esi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +and edi,1 +push edi +fild dword ptr 0[esp] +add esp,4 +faddp st(1),st +fmulp st(1),st +fld qword ptr (-52)[ebp] +fcompp +fstsw ax +sahf +je L613 +mov byte ptr (-8)[ebp],1 +L613: +fld qword ptr (-92)[ebp] +fild dword ptr (-68)[ebp] +fmulp st(1),st +fld qword ptr (-52)[ebp] +fcompp +fstsw ax +sahf +je L616 +mov byte ptr (-7)[ebp],1 +L616: +fld qword ptr (-92)[ebp] +fmul dword ptr (-72)[ebp] +fld qword ptr (-52)[ebp] +fcompp +fstsw ax +sahf +je L619 +mov byte ptr (-6)[ebp],1 +L619: +fld qword ptr (-92)[ebp] +fmul qword ptr (-92)[ebp] +fld qword ptr (-52)[ebp] +fcompp +fstsw ax +sahf +je L622 +mov byte ptr (-5)[ebp],1 +L622: +mov byte ptr (-41)[ebp],0 +mov dword ptr (-4)[ebp],0 +L625: +movsx edi,byte ptr (-41)[ebp] +mov esi,dword ptr (-4)[ebp] +movsx esi,byte ptr (-32)[ebp][esi] +lea edi,[esi][edi] +mov ebx,edi +mov byte ptr (-41)[ebp],bl +L626: +inc dword ptr (-4)[ebp] +cmp dword ptr (-4)[ebp],28 +jl L625 +movsx edi,byte ptr (-41)[ebp] +cmp edi,0 +je L629 +add dword ptr (-104)[ebp],4 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L631 +push 4 +lea edi,(L520) +push edi +call _printf +add esp,8 +lea edi,(L633) +push edi +call _printf +add esp,4 +mov dword ptr (-4)[ebp],0 +L634: +mov edi,dword ptr (-4)[ebp] +movsx edi,byte ptr (-32)[ebp][edi] +push edi +lea edi,(L638) +push edi +call _printf +add esp,8 +L635: +inc dword ptr (-4)[ebp] +cmp dword ptr (-4)[ebp],28 +jl L634 +lea edi,(L639) +push edi +call _printf +add esp,4 +L631: +L629: +mov dword ptr (-68)[ebp],32768 +mov edi,dword ptr (-68)[ebp] +cmp edi,08000H +jbe L640 +add dword ptr (-104)[ebp],8 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L642 +push 8 +lea edi,(L520) +push edi +call _printf +add esp,8 +L642: +L640: +mov eax,dword ptr (-104)[ebp] +L519: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +align 1 +L645 label byte +db 115 +db 55 +db 49 +db 44 +db 101 +db 114 +db 37 +db 100 +db 10 +db 0 +align 1 +L646 label byte +db 115 +db 55 +db 49 +db 32 +db 32 +db 32 +db 32 +db 0 +align 1 +L647 label byte +db 113 +public _s71 +_DATA ends +_TEXT segment +_s71: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,68 +lea edi,(L646) +mov dword ptr (-4)[ebp],edi +mov edi,dword ptr (20)[ebp] +lea edi,(60)[edi] +mov dword ptr (-8)[ebp],edi +mov dword ptr (-12)[ebp],0 +L648: +L649: +mov edi,dword ptr (-8)[ebp] +lea esi,(1)[edi] +mov dword ptr (-8)[ebp],esi +mov esi,dword ptr (-4)[ebp] +lea ebx,(1)[esi] +mov dword ptr (-4)[ebp],ebx +mov bl,byte ptr [esi] +mov byte ptr [edi],bl +movsx edi,bl +cmp edi,0 +jne L648 +movsx edi,byte ptr (L653) +movsx esi,byte ptr (L647) +cmp edi,esi +je L651 +inc dword ptr (-12)[ebp] +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L654 +push 1 +lea edi,(L645) +push edi +call _printf +add esp,8 +L654: +L651: +jmp L656 +add dword ptr (-12)[ebp],2 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L658 +push 2 +lea edi,(L645) +push edi +call _printf +add esp,8 +L658: +L656: +mov dword ptr (-32)[ebp],1942 +cmp dword ptr (-32)[ebp],1942 +jne L666 +mov edi,dword ptr (-32)[ebp] +cmp dword ptr (-32)[ebp],edi +je L661 +L666: +add dword ptr (-12)[ebp],4 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L667 +push 4 +lea edi,(L645) +push edi +call _printf +add esp,8 +L667: +L661: +push -5 +call _McCarthy +add esp,4 +cmp eax,91 +je L669 +add dword ptr (-12)[ebp],8 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L671 +push 8 +lea edi,(L645) +push edi +call _printf +add esp,8 +L671: +L669: +mov dword ptr (-56)[ebp],2 +mov dword ptr (-60)[ebp],3 +lea edi,(-60)[ebp] +mov dword ptr (-64)[ebp],edi +mov edi,dword ptr (-64)[ebp] +push edi +mov edi,dword ptr (-56)[ebp] +push edi +call _clobber +add esp,8 +cmp dword ptr (-56)[ebp],2 +jne L675 +cmp dword ptr (-60)[ebp],2 +je L673 +L675: +add dword ptr (-12)[ebp],16 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L676 +push 16 +lea edi,(L645) +push edi +call _printf +add esp,8 +L676: +L673: +mov edi,dword ptr (20)[ebp] +fld dword ptr (32)[edi] +fstp dword ptr (-68)[ebp] +fld dword ptr (-68)[ebp] +fcomp dword ptr (-68)[ebp] +fstsw ax +sahf +je L678 +add dword ptr (-12)[ebp],32 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L680 +push 32 +lea edi,(L645) +push edi +call _printf +add esp,8 +L680: +L678: +mov eax,dword ptr (-12)[ebp] +L644: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _McCarthy +_McCarthy: +push ebx +push esi +push edi +push ebp +mov ebp,esp +cmp dword ptr (20)[ebp],100 +jle L683 +mov edi,dword ptr (20)[ebp] +mov eax,edi +sub eax,10 +jmp L682 +L683: +mov edi,dword ptr (20)[ebp] +lea edi,(11)[edi] +push edi +call _McCarthy +add esp,4 +mov edi,eax +push edi +call _McCarthy +add esp,4 +mov edi,eax +L682: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _clobber +_clobber: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov dword ptr (20)[ebp],3 +mov edi,dword ptr (24)[ebp] +mov dword ptr [edi],2 +mov eax,0 +L685: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +align 1 +L687 label byte +db 76 +db 111 +db 99 +db 97 +db 108 +db 32 +db 101 +db 114 +db 114 +db 111 +db 114 +db 32 +db 37 +db 100 +db 46 +db 10 +db 0 +align 1 +L688 label byte +db 115 +db 55 +db 49 +db 52 +db 44 +db 101 +db 114 +db 37 +db 100 +db 10 +db 0 +align 1 +L689 label byte +db 115 +db 55 +db 49 +db 52 +db 32 +db 32 +db 32 +db 0 +public _s714 +_DATA ends +_TEXT segment +_s714: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,248 +lea edi,(L689) +mov dword ptr (-68)[ebp],edi +mov edi,dword ptr (20)[ebp] +lea esi,(60)[edi] +mov dword ptr (-72)[ebp],esi +mov dword ptr (-76)[ebp],0 +mov dword ptr (-8)[ebp],0 +mov edi,dword ptr (48)[edi] +mov dword ptr (-4)[ebp],edi +L690: +L691: +mov edi,dword ptr (-72)[ebp] +lea esi,(1)[edi] +mov dword ptr (-72)[ebp],esi +mov esi,dword ptr (-68)[ebp] +lea ebx,(1)[esi] +mov dword ptr (-68)[ebp],ebx +mov bl,byte ptr [esi] +mov byte ptr [edi],bl +movsx edi,bl +cmp edi,0 +jne L690 +mov byte ptr (-9)[ebp],5 +mov byte ptr (-25)[ebp],2 +mov bl,byte ptr (-25)[ebp] +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,2 +je L693 +mov dword ptr (-8)[ebp],1 +cmp dword ptr (-4)[ebp],0 +je L695 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L695: +L693: +mov byte ptr (-9)[ebp],5 +mov word ptr (-28)[ebp],2 +movsx edi,word ptr (-28)[ebp] +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,2 +je L697 +mov dword ptr (-8)[ebp],2 +cmp dword ptr (-4)[ebp],0 +je L699 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L699: +L697: +mov byte ptr (-9)[ebp],5 +mov dword ptr (-32)[ebp],2 +mov edi,dword ptr (-32)[ebp] +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,2 +je L701 +mov dword ptr (-8)[ebp],3 +cmp dword ptr (-4)[ebp],0 +je L703 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L703: +L701: +mov byte ptr (-9)[ebp],5 +mov dword ptr (-36)[ebp],2 +mov edi,dword ptr (-36)[ebp] +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,2 +je L705 +mov dword ptr (-8)[ebp],4 +cmp dword ptr (-4)[ebp],0 +je L707 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L707: +L705: +mov byte ptr (-9)[ebp],5 +mov dword ptr (-40)[ebp],2 +mov edi,dword ptr (-40)[ebp] +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,2 +je L709 +mov dword ptr (-8)[ebp],5 +cmp dword ptr (-4)[ebp],0 +je L711 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L711: +L709: +mov byte ptr (-9)[ebp],5 +fld dword ptr (L529) +fstp dword ptr (-56)[ebp] +fld dword ptr (-56)[ebp] +call __ftol +mov ebx,eax +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,2 +je L713 +mov dword ptr (-8)[ebp],6 +cmp dword ptr (-4)[ebp],0 +je L715 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L715: +L713: +mov byte ptr (-9)[ebp],5 +fld qword ptr (L416) +fstp qword ptr (-64)[ebp] +fld qword ptr (-64)[ebp] +call __ftol +mov ebx,eax +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,2 +je L717 +mov dword ptr (-8)[ebp],7 +cmp dword ptr (-4)[ebp],0 +je L719 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L719: +L717: +mov word ptr (-12)[ebp],5 +mov byte ptr (-25)[ebp],2 +movsx edi,byte ptr (-25)[ebp] +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,2 +je L721 +mov dword ptr (-8)[ebp],8 +cmp dword ptr (-4)[ebp],0 +je L723 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L723: +L721: +mov word ptr (-12)[ebp],5 +mov word ptr (-28)[ebp],2 +mov di,word ptr (-28)[ebp] +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,2 +je L725 +mov dword ptr (-8)[ebp],9 +cmp dword ptr (-4)[ebp],0 +je L727 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L727: +L725: +mov word ptr (-12)[ebp],5 +mov dword ptr (-32)[ebp],2 +mov edi,dword ptr (-32)[ebp] +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,2 +je L729 +mov dword ptr (-8)[ebp],10 +cmp dword ptr (-4)[ebp],0 +je L731 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L731: +L729: +mov word ptr (-12)[ebp],5 +mov dword ptr (-36)[ebp],2 +mov edi,dword ptr (-36)[ebp] +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,2 +je L733 +mov dword ptr (-8)[ebp],11 +cmp dword ptr (-4)[ebp],0 +je L735 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L735: +L733: +mov word ptr (-12)[ebp],5 +mov dword ptr (-40)[ebp],2 +mov edi,dword ptr (-40)[ebp] +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,2 +je L737 +mov dword ptr (-8)[ebp],12 +cmp dword ptr (-4)[ebp],0 +je L739 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L739: +L737: +mov word ptr (-12)[ebp],5 +fld dword ptr (L529) +fstp dword ptr (-56)[ebp] +fld dword ptr (-56)[ebp] +call __ftol +mov edi,eax +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,2 +je L741 +mov dword ptr (-8)[ebp],13 +cmp dword ptr (-4)[ebp],0 +je L743 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L743: +L741: +mov word ptr (-12)[ebp],5 +fld qword ptr (L416) +fstp qword ptr (-64)[ebp] +fld qword ptr (-64)[ebp] +call __ftol +mov edi,eax +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,2 +je L745 +mov dword ptr (-8)[ebp],14 +cmp dword ptr (-4)[ebp],0 +je L747 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L747: +L745: +mov dword ptr (-16)[ebp],5 +mov byte ptr (-25)[ebp],2 +movsx edi,byte ptr (-25)[ebp] +mov dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],2 +je L749 +mov dword ptr (-8)[ebp],15 +cmp dword ptr (-4)[ebp],0 +je L751 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L751: +L749: +mov dword ptr (-16)[ebp],5 +mov word ptr (-28)[ebp],2 +movsx edi,word ptr (-28)[ebp] +mov dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],2 +je L753 +mov dword ptr (-8)[ebp],16 +cmp dword ptr (-4)[ebp],0 +je L755 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L755: +L753: +mov dword ptr (-16)[ebp],5 +mov dword ptr (-32)[ebp],2 +mov edi,dword ptr (-32)[ebp] +mov dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],2 +je L757 +mov dword ptr (-8)[ebp],17 +cmp dword ptr (-4)[ebp],0 +je L759 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L759: +L757: +mov dword ptr (-16)[ebp],5 +mov dword ptr (-36)[ebp],2 +mov edi,dword ptr (-36)[ebp] +mov dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],2 +je L761 +mov dword ptr (-8)[ebp],18 +cmp dword ptr (-4)[ebp],0 +je L763 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L763: +L761: +mov dword ptr (-16)[ebp],5 +mov dword ptr (-40)[ebp],2 +mov edi,dword ptr (-40)[ebp] +mov dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],2 +je L765 +mov dword ptr (-8)[ebp],19 +cmp dword ptr (-4)[ebp],0 +je L767 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L767: +L765: +mov dword ptr (-16)[ebp],5 +fld dword ptr (L529) +fstp dword ptr (-56)[ebp] +fld dword ptr (-56)[ebp] +call __ftol +mov dword ptr (-16)[ebp],eax +cmp dword ptr (-16)[ebp],2 +je L769 +mov dword ptr (-8)[ebp],20 +cmp dword ptr (-4)[ebp],0 +je L771 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L771: +L769: +mov dword ptr (-16)[ebp],5 +fld qword ptr (L416) +fstp qword ptr (-64)[ebp] +fld qword ptr (-64)[ebp] +call __ftol +mov dword ptr (-16)[ebp],eax +cmp dword ptr (-16)[ebp],2 +je L773 +mov dword ptr (-8)[ebp],21 +cmp dword ptr (-4)[ebp],0 +je L775 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L775: +L773: +mov dword ptr (-20)[ebp],5 +mov byte ptr (-25)[ebp],2 +movsx edi,byte ptr (-25)[ebp] +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],2 +je L777 +mov dword ptr (-8)[ebp],22 +cmp dword ptr (-4)[ebp],0 +je L779 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L779: +L777: +mov dword ptr (-20)[ebp],5 +mov word ptr (-28)[ebp],2 +movsx edi,word ptr (-28)[ebp] +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],2 +je L781 +mov dword ptr (-8)[ebp],23 +cmp dword ptr (-4)[ebp],0 +je L783 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L783: +L781: +mov dword ptr (-20)[ebp],5 +mov dword ptr (-32)[ebp],2 +mov edi,dword ptr (-32)[ebp] +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],2 +je L785 +mov dword ptr (-8)[ebp],24 +cmp dword ptr (-4)[ebp],0 +je L787 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L787: +L785: +mov dword ptr (-20)[ebp],5 +mov dword ptr (-36)[ebp],2 +mov edi,dword ptr (-36)[ebp] +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],2 +je L789 +mov dword ptr (-8)[ebp],25 +cmp dword ptr (-4)[ebp],0 +je L791 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L791: +L789: +mov dword ptr (-20)[ebp],5 +mov dword ptr (-40)[ebp],2 +mov edi,dword ptr (-40)[ebp] +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],2 +je L793 +mov dword ptr (-8)[ebp],26 +cmp dword ptr (-4)[ebp],0 +je L795 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L795: +L793: +mov dword ptr (-20)[ebp],5 +fld dword ptr (L529) +fstp dword ptr (-56)[ebp] +fld dword ptr (-56)[ebp] +call __ftol +mov dword ptr (-20)[ebp],eax +cmp dword ptr (-20)[ebp],2 +je L797 +mov dword ptr (-8)[ebp],27 +cmp dword ptr (-4)[ebp],0 +je L799 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L799: +L797: +mov dword ptr (-20)[ebp],5 +fld qword ptr (L416) +fstp qword ptr (-64)[ebp] +fld qword ptr (-64)[ebp] +call __ftol +mov dword ptr (-20)[ebp],eax +cmp dword ptr (-20)[ebp],2 +je L801 +mov dword ptr (-8)[ebp],28 +cmp dword ptr (-4)[ebp],0 +je L803 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L803: +L801: +mov dword ptr (-24)[ebp],5 +mov byte ptr (-25)[ebp],2 +movsx edi,byte ptr (-25)[ebp] +mov dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,2 +je L805 +mov dword ptr (-8)[ebp],29 +cmp dword ptr (-4)[ebp],0 +je L807 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L807: +L805: +mov dword ptr (-24)[ebp],5 +mov word ptr (-28)[ebp],2 +movsx edi,word ptr (-28)[ebp] +mov dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,2 +je L809 +mov dword ptr (-8)[ebp],30 +cmp dword ptr (-4)[ebp],0 +je L811 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L811: +L809: +mov dword ptr (-24)[ebp],5 +mov dword ptr (-32)[ebp],2 +mov edi,dword ptr (-32)[ebp] +mov dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,2 +je L813 +mov dword ptr (-8)[ebp],31 +cmp dword ptr (-4)[ebp],0 +je L815 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L815: +L813: +mov dword ptr (-24)[ebp],5 +mov dword ptr (-36)[ebp],2 +mov edi,dword ptr (-36)[ebp] +mov dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,2 +je L817 +mov dword ptr (-8)[ebp],32 +cmp dword ptr (-4)[ebp],0 +je L819 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L819: +L817: +mov dword ptr (-24)[ebp],5 +mov dword ptr (-40)[ebp],2 +mov edi,dword ptr (-40)[ebp] +mov dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,2 +je L821 +mov dword ptr (-8)[ebp],33 +cmp dword ptr (-4)[ebp],0 +je L823 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L823: +L821: +mov dword ptr (-24)[ebp],5 +fld dword ptr (L529) +fstp dword ptr (-56)[ebp] +fld dword ptr (L828) +fcomp dword ptr (-56)[ebp] +fstsw ax +sahf +ja L826 +fld dword ptr (-56)[ebp] +fsub dword ptr (L828) +call __ftol +mov edi,eax +lea edi,(080000000H)[edi] +mov dword ptr (-80)[ebp],edi +jmp L827 +L826: +fld dword ptr (-56)[ebp] +call __ftol +mov edi,eax +mov dword ptr (-80)[ebp],edi +L827: +mov edi,dword ptr (-80)[ebp] +mov dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,2 +je L829 +mov dword ptr (-8)[ebp],34 +cmp dword ptr (-4)[ebp],0 +je L831 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L831: +L829: +mov dword ptr (-24)[ebp],5 +fld qword ptr (L416) +fstp qword ptr (-64)[ebp] +fld qword ptr (L836) +fcomp qword ptr (-64)[ebp] +fstsw ax +sahf +ja L834 +fld qword ptr (-64)[ebp] +fsub qword ptr (L836) +call __ftol +mov edi,eax +lea edi,(080000000H)[edi] +mov dword ptr (-92)[ebp],edi +jmp L835 +L834: +fld qword ptr (-64)[ebp] +call __ftol +mov edi,eax +mov dword ptr (-92)[ebp],edi +L835: +mov edi,dword ptr (-92)[ebp] +mov dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,2 +je L837 +mov dword ptr (-8)[ebp],35 +cmp dword ptr (-4)[ebp],0 +je L839 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L839: +L837: +fld dword ptr (L841) +fstp dword ptr (-44)[ebp] +mov byte ptr (-25)[ebp],2 +movsx edi,byte ptr (-25)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fstp dword ptr (-44)[ebp] +fld dword ptr (L529) +fcomp dword ptr (-44)[ebp] +fstsw ax +sahf +je L842 +mov dword ptr (-8)[ebp],36 +cmp dword ptr (-4)[ebp],0 +je L844 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L844: +L842: +fld dword ptr (L841) +fstp dword ptr (-44)[ebp] +mov word ptr (-28)[ebp],2 +movsx edi,word ptr (-28)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fstp dword ptr (-44)[ebp] +fld dword ptr (L529) +fcomp dword ptr (-44)[ebp] +fstsw ax +sahf +je L846 +mov dword ptr (-8)[ebp],37 +cmp dword ptr (-4)[ebp],0 +je L848 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L848: +L846: +fld dword ptr (L841) +fstp dword ptr (-44)[ebp] +mov dword ptr (-32)[ebp],2 +mov edi,dword ptr (-32)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fstp dword ptr (-44)[ebp] +fld dword ptr (L529) +fcomp dword ptr (-44)[ebp] +fstsw ax +sahf +je L850 +mov dword ptr (-8)[ebp],38 +cmp dword ptr (-4)[ebp],0 +je L852 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L852: +L850: +fld dword ptr (L841) +fstp dword ptr (-44)[ebp] +mov dword ptr (-36)[ebp],2 +mov edi,dword ptr (-36)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fstp dword ptr (-44)[ebp] +fld dword ptr (L529) +fcomp dword ptr (-44)[ebp] +fstsw ax +sahf +je L854 +mov dword ptr (-8)[ebp],39 +cmp dword ptr (-4)[ebp],0 +je L856 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L856: +L854: +fld dword ptr (L841) +fstp dword ptr (-44)[ebp] +mov dword ptr (-40)[ebp],2 +mov edi,dword ptr (-40)[ebp] +fld qword ptr (L596) +mov esi,edi +shr esi,1 +push esi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +and edi,1 +push edi +fild dword ptr 0[esp] +add esp,4 +faddp st(1),st +fstp dword ptr (-44)[ebp] +fld dword ptr (L529) +fcomp dword ptr (-44)[ebp] +fstsw ax +sahf +je L858 +mov dword ptr (-8)[ebp],40 +cmp dword ptr (-4)[ebp],0 +je L860 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L860: +L858: +fld dword ptr (L841) +fstp dword ptr (-44)[ebp] +fld dword ptr (L529) +fstp dword ptr (-56)[ebp] +fld dword ptr (-56)[ebp] +fstp dword ptr (-44)[ebp] +fld dword ptr (L529) +fcomp dword ptr (-44)[ebp] +fstsw ax +sahf +je L862 +mov dword ptr (-8)[ebp],41 +cmp dword ptr (-4)[ebp],0 +je L864 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L864: +L862: +fld dword ptr (L841) +fstp dword ptr (-44)[ebp] +fld qword ptr (L416) +fstp qword ptr (-64)[ebp] +fld qword ptr (-64)[ebp] +fstp dword ptr (-44)[ebp] +fld dword ptr (L529) +fcomp dword ptr (-44)[ebp] +fstsw ax +sahf +je L866 +mov dword ptr (-8)[ebp],42 +cmp dword ptr (-4)[ebp],0 +je L868 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L868: +L866: +fld qword ptr (L870) +fstp qword ptr (-52)[ebp] +mov byte ptr (-25)[ebp],2 +movsx edi,byte ptr (-25)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fstp qword ptr (-52)[ebp] +fld qword ptr (L416) +fcomp qword ptr (-52)[ebp] +fstsw ax +sahf +je L871 +mov dword ptr (-8)[ebp],43 +cmp dword ptr (-4)[ebp],0 +je L873 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L873: +L871: +fld qword ptr (L870) +fstp qword ptr (-52)[ebp] +mov word ptr (-28)[ebp],2 +movsx edi,word ptr (-28)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fstp qword ptr (-52)[ebp] +fld qword ptr (L416) +fcomp qword ptr (-52)[ebp] +fstsw ax +sahf +je L875 +mov dword ptr (-8)[ebp],44 +cmp dword ptr (-4)[ebp],0 +je L877 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L877: +L875: +fld qword ptr (L870) +fstp qword ptr (-52)[ebp] +mov dword ptr (-32)[ebp],2 +fild dword ptr (-32)[ebp] +fstp qword ptr (-52)[ebp] +fld qword ptr (L416) +fcomp qword ptr (-52)[ebp] +fstsw ax +sahf +je L879 +mov dword ptr (-8)[ebp],45 +cmp dword ptr (-4)[ebp],0 +je L881 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L881: +L879: +fld qword ptr (L870) +fstp qword ptr (-52)[ebp] +mov dword ptr (-36)[ebp],2 +fild dword ptr (-36)[ebp] +fstp qword ptr (-52)[ebp] +fld qword ptr (L416) +fcomp qword ptr (-52)[ebp] +fstsw ax +sahf +je L883 +mov dword ptr (-8)[ebp],46 +cmp dword ptr (-4)[ebp],0 +je L885 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L885: +L883: +fld qword ptr (L870) +fstp qword ptr (-52)[ebp] +mov dword ptr (-40)[ebp],2 +mov edi,dword ptr (-40)[ebp] +fld qword ptr (L596) +mov esi,edi +shr esi,1 +push esi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +and edi,1 +push edi +fild dword ptr 0[esp] +add esp,4 +faddp st(1),st +fstp qword ptr (-52)[ebp] +fld qword ptr (L416) +fcomp qword ptr (-52)[ebp] +fstsw ax +sahf +je L887 +mov dword ptr (-8)[ebp],47 +cmp dword ptr (-4)[ebp],0 +je L889 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L889: +L887: +fld qword ptr (L870) +fstp qword ptr (-52)[ebp] +fld dword ptr (L529) +fstp dword ptr (-56)[ebp] +fld dword ptr (-56)[ebp] +fstp qword ptr (-52)[ebp] +fld qword ptr (L416) +fcomp qword ptr (-52)[ebp] +fstsw ax +sahf +je L891 +mov dword ptr (-8)[ebp],48 +cmp dword ptr (-4)[ebp],0 +je L893 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L893: +L891: +fld qword ptr (L870) +fstp qword ptr (-52)[ebp] +fld qword ptr (L416) +fstp qword ptr (-64)[ebp] +fld qword ptr (-64)[ebp] +fstp qword ptr (-52)[ebp] +fld qword ptr (L416) +fcomp qword ptr (-52)[ebp] +fstsw ax +sahf +je L895 +mov dword ptr (-8)[ebp],49 +cmp dword ptr (-4)[ebp],0 +je L897 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L897: +L895: +mov byte ptr (-9)[ebp],5 +mov byte ptr (-25)[ebp],2 +movsx edi,byte ptr (-9)[ebp] +movsx esi,byte ptr (-25)[ebp] +lea edi,[esi][edi] +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,7 +je L899 +mov dword ptr (-8)[ebp],50 +cmp dword ptr (-4)[ebp],0 +je L901 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L901: +L899: +mov byte ptr (-9)[ebp],5 +mov word ptr (-28)[ebp],2 +movsx edi,byte ptr (-9)[ebp] +movsx esi,word ptr (-28)[ebp] +lea edi,[esi][edi] +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,7 +je L903 +mov dword ptr (-8)[ebp],51 +cmp dword ptr (-4)[ebp],0 +je L905 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L905: +L903: +mov byte ptr (-9)[ebp],5 +mov dword ptr (-32)[ebp],2 +movsx edi,byte ptr (-9)[ebp] +mov esi,dword ptr (-32)[ebp] +lea edi,[esi][edi] +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,7 +je L907 +mov dword ptr (-8)[ebp],52 +cmp dword ptr (-4)[ebp],0 +je L909 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L909: +L907: +mov byte ptr (-9)[ebp],5 +mov dword ptr (-36)[ebp],2 +movsx edi,byte ptr (-9)[ebp] +mov esi,dword ptr (-36)[ebp] +lea edi,[esi][edi] +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,7 +je L911 +mov dword ptr (-8)[ebp],53 +cmp dword ptr (-4)[ebp],0 +je L913 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L913: +L911: +mov byte ptr (-9)[ebp],5 +mov dword ptr (-40)[ebp],2 +movsx edi,byte ptr (-9)[ebp] +mov esi,dword ptr (-40)[ebp] +lea edi,[esi][edi] +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,7 +je L915 +mov dword ptr (-8)[ebp],54 +cmp dword ptr (-4)[ebp],0 +je L917 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L917: +L915: +mov byte ptr (-9)[ebp],5 +fld dword ptr (L529) +fstp dword ptr (-56)[ebp] +movsx edi,byte ptr (-9)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fadd dword ptr (-56)[ebp] +call __ftol +mov ebx,eax +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,7 +je L919 +mov dword ptr (-8)[ebp],55 +cmp dword ptr (-4)[ebp],0 +je L921 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L921: +L919: +mov byte ptr (-9)[ebp],5 +fld qword ptr (L416) +fstp qword ptr (-64)[ebp] +movsx edi,byte ptr (-9)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fadd qword ptr (-64)[ebp] +call __ftol +mov ebx,eax +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,7 +je L923 +mov dword ptr (-8)[ebp],56 +cmp dword ptr (-4)[ebp],0 +je L925 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L925: +L923: +mov word ptr (-12)[ebp],5 +mov byte ptr (-25)[ebp],2 +movsx edi,word ptr (-12)[ebp] +movsx esi,byte ptr (-25)[ebp] +lea edi,[esi][edi] +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,7 +je L927 +mov dword ptr (-8)[ebp],57 +cmp dword ptr (-4)[ebp],0 +je L929 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L929: +L927: +mov word ptr (-12)[ebp],5 +mov word ptr (-28)[ebp],2 +movsx edi,word ptr (-12)[ebp] +movsx esi,word ptr (-28)[ebp] +lea edi,[esi][edi] +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,7 +je L931 +mov dword ptr (-8)[ebp],58 +cmp dword ptr (-4)[ebp],0 +je L933 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L933: +L931: +mov word ptr (-12)[ebp],5 +mov dword ptr (-32)[ebp],2 +movsx edi,word ptr (-12)[ebp] +mov esi,dword ptr (-32)[ebp] +lea edi,[esi][edi] +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,7 +je L935 +mov dword ptr (-8)[ebp],59 +cmp dword ptr (-4)[ebp],0 +je L937 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L937: +L935: +mov word ptr (-12)[ebp],5 +mov dword ptr (-36)[ebp],2 +movsx edi,word ptr (-12)[ebp] +mov esi,dword ptr (-36)[ebp] +lea edi,[esi][edi] +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,7 +je L939 +mov dword ptr (-8)[ebp],60 +cmp dword ptr (-4)[ebp],0 +je L941 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L941: +L939: +mov word ptr (-12)[ebp],5 +mov dword ptr (-40)[ebp],2 +movsx edi,word ptr (-12)[ebp] +mov esi,dword ptr (-40)[ebp] +lea edi,[esi][edi] +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,7 +je L943 +mov dword ptr (-8)[ebp],61 +cmp dword ptr (-4)[ebp],0 +je L945 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L945: +L943: +mov word ptr (-12)[ebp],5 +fld dword ptr (L529) +fstp dword ptr (-56)[ebp] +movsx edi,word ptr (-12)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fadd dword ptr (-56)[ebp] +call __ftol +mov edi,eax +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,7 +je L947 +mov dword ptr (-8)[ebp],62 +cmp dword ptr (-4)[ebp],0 +je L949 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L949: +L947: +mov word ptr (-12)[ebp],5 +fld qword ptr (L416) +fstp qword ptr (-64)[ebp] +movsx edi,word ptr (-12)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fadd qword ptr (-64)[ebp] +call __ftol +mov edi,eax +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,7 +je L951 +mov dword ptr (-8)[ebp],63 +cmp dword ptr (-4)[ebp],0 +je L953 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L953: +L951: +mov dword ptr (-16)[ebp],5 +mov byte ptr (-25)[ebp],2 +movsx edi,byte ptr (-25)[ebp] +add dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],7 +je L955 +mov dword ptr (-8)[ebp],64 +cmp dword ptr (-4)[ebp],0 +je L957 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L957: +L955: +mov dword ptr (-16)[ebp],5 +mov word ptr (-28)[ebp],2 +movsx edi,word ptr (-28)[ebp] +add dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],7 +je L959 +mov dword ptr (-8)[ebp],65 +cmp dword ptr (-4)[ebp],0 +je L961 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L961: +L959: +mov dword ptr (-16)[ebp],5 +mov dword ptr (-32)[ebp],2 +mov edi,dword ptr (-32)[ebp] +add dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],7 +je L963 +mov dword ptr (-8)[ebp],66 +cmp dword ptr (-4)[ebp],0 +je L965 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L965: +L963: +mov dword ptr (-16)[ebp],5 +mov dword ptr (-36)[ebp],2 +mov edi,dword ptr (-36)[ebp] +add dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],7 +je L967 +mov dword ptr (-8)[ebp],67 +cmp dword ptr (-4)[ebp],0 +je L969 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L969: +L967: +mov dword ptr (-16)[ebp],5 +mov dword ptr (-40)[ebp],2 +mov edi,dword ptr (-16)[ebp] +mov esi,dword ptr (-40)[ebp] +lea edi,[esi][edi] +mov dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],7 +je L971 +mov dword ptr (-8)[ebp],68 +cmp dword ptr (-4)[ebp],0 +je L973 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L973: +L971: +mov dword ptr (-16)[ebp],5 +fld dword ptr (L529) +fstp dword ptr (-56)[ebp] +mov edi,dword ptr (-16)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fadd dword ptr (-56)[ebp] +call __ftol +mov dword ptr (-16)[ebp],eax +cmp dword ptr (-16)[ebp],7 +je L975 +mov dword ptr (-8)[ebp],69 +cmp dword ptr (-4)[ebp],0 +je L977 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L977: +L975: +mov dword ptr (-16)[ebp],5 +fld qword ptr (L416) +fstp qword ptr (-64)[ebp] +fild dword ptr (-16)[ebp] +fadd qword ptr (-64)[ebp] +call __ftol +mov dword ptr (-16)[ebp],eax +cmp dword ptr (-16)[ebp],7 +je L979 +mov dword ptr (-8)[ebp],70 +cmp dword ptr (-4)[ebp],0 +je L981 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L981: +L979: +mov dword ptr (-20)[ebp],5 +mov byte ptr (-25)[ebp],2 +movsx edi,byte ptr (-25)[ebp] +add dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],7 +je L983 +mov dword ptr (-8)[ebp],71 +cmp dword ptr (-4)[ebp],0 +je L985 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L985: +L983: +mov dword ptr (-20)[ebp],5 +mov word ptr (-28)[ebp],2 +movsx edi,word ptr (-28)[ebp] +add dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],7 +je L987 +mov dword ptr (-8)[ebp],72 +cmp dword ptr (-4)[ebp],0 +je L989 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L989: +L987: +mov dword ptr (-20)[ebp],5 +mov dword ptr (-32)[ebp],2 +mov edi,dword ptr (-32)[ebp] +add dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],7 +je L991 +mov dword ptr (-8)[ebp],73 +cmp dword ptr (-4)[ebp],0 +je L993 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L993: +L991: +mov dword ptr (-20)[ebp],5 +mov dword ptr (-36)[ebp],2 +mov edi,dword ptr (-36)[ebp] +add dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],7 +je L995 +mov dword ptr (-8)[ebp],74 +cmp dword ptr (-4)[ebp],0 +je L997 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L997: +L995: +mov dword ptr (-20)[ebp],5 +mov dword ptr (-40)[ebp],2 +mov edi,dword ptr (-20)[ebp] +mov esi,dword ptr (-40)[ebp] +lea edi,[esi][edi] +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],7 +je L999 +mov dword ptr (-8)[ebp],75 +cmp dword ptr (-4)[ebp],0 +je L1001 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1001: +L999: +mov dword ptr (-20)[ebp],5 +fld dword ptr (L529) +fstp dword ptr (-56)[ebp] +mov edi,dword ptr (-20)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fadd dword ptr (-56)[ebp] +call __ftol +mov dword ptr (-20)[ebp],eax +cmp dword ptr (-20)[ebp],7 +je L1003 +mov dword ptr (-8)[ebp],76 +cmp dword ptr (-4)[ebp],0 +je L1005 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1005: +L1003: +mov dword ptr (-20)[ebp],5 +fld qword ptr (L416) +fstp qword ptr (-64)[ebp] +fild dword ptr (-20)[ebp] +fadd qword ptr (-64)[ebp] +call __ftol +mov dword ptr (-20)[ebp],eax +cmp dword ptr (-20)[ebp],7 +je L1007 +mov dword ptr (-8)[ebp],77 +cmp dword ptr (-4)[ebp],0 +je L1009 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1009: +L1007: +mov dword ptr (-24)[ebp],5 +mov byte ptr (-25)[ebp],2 +movsx edi,byte ptr (-25)[ebp] +add dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,7 +je L1011 +mov dword ptr (-8)[ebp],78 +cmp dword ptr (-4)[ebp],0 +je L1013 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1013: +L1011: +mov dword ptr (-24)[ebp],5 +mov word ptr (-28)[ebp],2 +movsx edi,word ptr (-28)[ebp] +add dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,7 +je L1015 +mov dword ptr (-8)[ebp],79 +cmp dword ptr (-4)[ebp],0 +je L1017 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1017: +L1015: +mov dword ptr (-24)[ebp],5 +mov dword ptr (-32)[ebp],2 +mov edi,dword ptr (-32)[ebp] +add dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,7 +je L1019 +mov dword ptr (-8)[ebp],80 +cmp dword ptr (-4)[ebp],0 +je L1021 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1021: +L1019: +mov dword ptr (-24)[ebp],5 +mov dword ptr (-36)[ebp],2 +mov edi,dword ptr (-36)[ebp] +add dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,7 +je L1023 +mov dword ptr (-8)[ebp],81 +cmp dword ptr (-4)[ebp],0 +je L1025 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1025: +L1023: +mov dword ptr (-24)[ebp],5 +mov dword ptr (-40)[ebp],2 +mov edi,dword ptr (-40)[ebp] +add dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,7 +je L1027 +mov dword ptr (-8)[ebp],82 +cmp dword ptr (-4)[ebp],0 +je L1029 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1029: +L1027: +mov dword ptr (-24)[ebp],5 +fld dword ptr (L529) +fstp dword ptr (-56)[ebp] +mov edi,dword ptr (-24)[ebp] +fld qword ptr (L596) +mov esi,edi +shr esi,1 +push esi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +and edi,1 +push edi +fild dword ptr 0[esp] +add esp,4 +faddp st(1),st +sub esp,4 +fstp dword ptr 0[esp] +fld dword ptr 0[esp] +add esp,4 +fadd dword ptr (-56)[ebp] +fstp dword ptr (-128)[ebp] +fld dword ptr (L828) +fcomp dword ptr (-128)[ebp] +fstsw ax +sahf +ja L1032 +fld dword ptr (-128)[ebp] +fsub dword ptr (L828) +call __ftol +mov edi,eax +lea edi,(080000000H)[edi] +mov dword ptr (-124)[ebp],edi +jmp L1033 +L1032: +fld dword ptr (-128)[ebp] +call __ftol +mov edi,eax +mov dword ptr (-124)[ebp],edi +L1033: +mov edi,dword ptr (-124)[ebp] +mov dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,7 +je L1034 +mov dword ptr (-8)[ebp],83 +cmp dword ptr (-4)[ebp],0 +je L1036 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1036: +L1034: +mov dword ptr (-24)[ebp],5 +fld qword ptr (L416) +fstp qword ptr (-64)[ebp] +mov edi,dword ptr (-24)[ebp] +fld qword ptr (L596) +mov esi,edi +shr esi,1 +push esi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +and edi,1 +push edi +fild dword ptr 0[esp] +add esp,4 +faddp st(1),st +fadd qword ptr (-64)[ebp] +fstp qword ptr (-144)[ebp] +fld qword ptr (L836) +fcomp qword ptr (-144)[ebp] +fstsw ax +sahf +ja L1039 +fld qword ptr (-144)[ebp] +fsub qword ptr (L836) +call __ftol +mov edi,eax +lea edi,(080000000H)[edi] +mov dword ptr (-136)[ebp],edi +jmp L1040 +L1039: +fld qword ptr (-144)[ebp] +call __ftol +mov edi,eax +mov dword ptr (-136)[ebp],edi +L1040: +mov edi,dword ptr (-136)[ebp] +mov dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,7 +je L1041 +mov dword ptr (-8)[ebp],84 +cmp dword ptr (-4)[ebp],0 +je L1043 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1043: +L1041: +fld dword ptr (L841) +fstp dword ptr (-44)[ebp] +mov byte ptr (-25)[ebp],2 +fld dword ptr (-44)[ebp] +movsx edi,byte ptr (-25)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +faddp st(1),st +fstp dword ptr (-44)[ebp] +fld dword ptr (L1047) +fcomp dword ptr (-44)[ebp] +fstsw ax +sahf +je L1045 +mov dword ptr (-8)[ebp],85 +cmp dword ptr (-4)[ebp],0 +je L1048 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1048: +L1045: +fld dword ptr (L841) +fstp dword ptr (-44)[ebp] +mov word ptr (-28)[ebp],2 +fld dword ptr (-44)[ebp] +movsx edi,word ptr (-28)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +faddp st(1),st +fstp dword ptr (-44)[ebp] +fld dword ptr (L1047) +fcomp dword ptr (-44)[ebp] +fstsw ax +sahf +je L1050 +mov dword ptr (-8)[ebp],86 +cmp dword ptr (-4)[ebp],0 +je L1052 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1052: +L1050: +fld dword ptr (L841) +fstp dword ptr (-44)[ebp] +mov dword ptr (-32)[ebp],2 +fld dword ptr (-44)[ebp] +mov edi,dword ptr (-32)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +faddp st(1),st +fstp dword ptr (-44)[ebp] +fld dword ptr (L1047) +fcomp dword ptr (-44)[ebp] +fstsw ax +sahf +je L1054 +mov dword ptr (-8)[ebp],87 +cmp dword ptr (-4)[ebp],0 +je L1056 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1056: +L1054: +fld dword ptr (L841) +fstp dword ptr (-44)[ebp] +mov dword ptr (-36)[ebp],2 +fld dword ptr (-44)[ebp] +mov edi,dword ptr (-36)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +faddp st(1),st +fstp dword ptr (-44)[ebp] +fld dword ptr (L1047) +fcomp dword ptr (-44)[ebp] +fstsw ax +sahf +je L1058 +mov dword ptr (-8)[ebp],88 +cmp dword ptr (-4)[ebp],0 +je L1060 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1060: +L1058: +fld dword ptr (L841) +fstp dword ptr (-44)[ebp] +mov dword ptr (-40)[ebp],2 +mov edi,dword ptr (-40)[ebp] +fld dword ptr (-44)[ebp] +fld qword ptr (L596) +mov esi,edi +shr esi,1 +push esi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +and edi,1 +push edi +fild dword ptr 0[esp] +add esp,4 +faddp st(1),st +sub esp,4 +fstp dword ptr 0[esp] +fld dword ptr 0[esp] +add esp,4 +faddp st(1),st +fstp dword ptr (-44)[ebp] +fld dword ptr (L1047) +fcomp dword ptr (-44)[ebp] +fstsw ax +sahf +je L1062 +mov dword ptr (-8)[ebp],89 +cmp dword ptr (-4)[ebp],0 +je L1064 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1064: +L1062: +fld dword ptr (L841) +fstp dword ptr (-44)[ebp] +fld dword ptr (L529) +fstp dword ptr (-56)[ebp] +fld dword ptr (-44)[ebp] +fadd dword ptr (-56)[ebp] +fstp dword ptr (-44)[ebp] +fld dword ptr (L1047) +fcomp dword ptr (-44)[ebp] +fstsw ax +sahf +je L1066 +mov dword ptr (-8)[ebp],90 +cmp dword ptr (-4)[ebp],0 +je L1068 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1068: +L1066: +fld dword ptr (L841) +fstp dword ptr (-44)[ebp] +fld qword ptr (L416) +fstp qword ptr (-64)[ebp] +fld dword ptr (-44)[ebp] +fadd qword ptr (-64)[ebp] +fstp dword ptr (-44)[ebp] +fld dword ptr (L1047) +fcomp dword ptr (-44)[ebp] +fstsw ax +sahf +je L1070 +mov dword ptr (-8)[ebp],91 +cmp dword ptr (-4)[ebp],0 +je L1072 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1072: +L1070: +fld qword ptr (L870) +fstp qword ptr (-52)[ebp] +mov byte ptr (-25)[ebp],2 +fld qword ptr (-52)[ebp] +movsx edi,byte ptr (-25)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +faddp st(1),st +fstp qword ptr (-52)[ebp] +fld qword ptr (L1076) +fcomp qword ptr (-52)[ebp] +fstsw ax +sahf +je L1074 +mov dword ptr (-8)[ebp],92 +cmp dword ptr (-4)[ebp],0 +je L1077 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1077: +L1074: +fld qword ptr (L870) +fstp qword ptr (-52)[ebp] +mov word ptr (-28)[ebp],2 +fld qword ptr (-52)[ebp] +movsx edi,word ptr (-28)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +faddp st(1),st +fstp qword ptr (-52)[ebp] +fld qword ptr (L1076) +fcomp qword ptr (-52)[ebp] +fstsw ax +sahf +je L1079 +mov dword ptr (-8)[ebp],93 +cmp dword ptr (-4)[ebp],0 +je L1081 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1081: +L1079: +fld qword ptr (L870) +fstp qword ptr (-52)[ebp] +mov dword ptr (-32)[ebp],2 +fld qword ptr (-52)[ebp] +fild dword ptr (-32)[ebp] +faddp st(1),st +fstp qword ptr (-52)[ebp] +fld qword ptr (L1076) +fcomp qword ptr (-52)[ebp] +fstsw ax +sahf +je L1083 +mov dword ptr (-8)[ebp],94 +cmp dword ptr (-4)[ebp],0 +je L1085 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1085: +L1083: +fld qword ptr (L870) +fstp qword ptr (-52)[ebp] +mov dword ptr (-36)[ebp],2 +fld qword ptr (-52)[ebp] +fild dword ptr (-36)[ebp] +faddp st(1),st +fstp qword ptr (-52)[ebp] +fld qword ptr (L1076) +fcomp qword ptr (-52)[ebp] +fstsw ax +sahf +je L1087 +mov dword ptr (-8)[ebp],95 +cmp dword ptr (-4)[ebp],0 +je L1089 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1089: +L1087: +fld qword ptr (L870) +fstp qword ptr (-52)[ebp] +mov dword ptr (-40)[ebp],2 +mov edi,dword ptr (-40)[ebp] +fld qword ptr (-52)[ebp] +fld qword ptr (L596) +mov esi,edi +shr esi,1 +push esi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +and edi,1 +push edi +fild dword ptr 0[esp] +add esp,4 +faddp st(1),st +faddp st(1),st +fstp qword ptr (-52)[ebp] +fld qword ptr (L1076) +fcomp qword ptr (-52)[ebp] +fstsw ax +sahf +je L1091 +mov dword ptr (-8)[ebp],96 +cmp dword ptr (-4)[ebp],0 +je L1093 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1093: +L1091: +fld qword ptr (L870) +fstp qword ptr (-52)[ebp] +fld dword ptr (L529) +fstp dword ptr (-56)[ebp] +fld qword ptr (-52)[ebp] +fadd dword ptr (-56)[ebp] +fstp qword ptr (-52)[ebp] +fld qword ptr (L1076) +fcomp qword ptr (-52)[ebp] +fstsw ax +sahf +je L1095 +mov dword ptr (-8)[ebp],97 +cmp dword ptr (-4)[ebp],0 +je L1097 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1097: +L1095: +fld qword ptr (L870) +fstp qword ptr (-52)[ebp] +fld qword ptr (L416) +fstp qword ptr (-64)[ebp] +fld qword ptr (-52)[ebp] +fadd qword ptr (-64)[ebp] +fstp qword ptr (-52)[ebp] +fld qword ptr (L1076) +fcomp qword ptr (-52)[ebp] +fstsw ax +sahf +je L1099 +mov dword ptr (-8)[ebp],98 +cmp dword ptr (-4)[ebp],0 +je L1101 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1101: +L1099: +mov byte ptr (-9)[ebp],5 +mov byte ptr (-25)[ebp],2 +movsx edi,byte ptr (-9)[ebp] +movsx esi,byte ptr (-25)[ebp] +sub edi,esi +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,3 +je L1103 +mov dword ptr (-8)[ebp],99 +cmp dword ptr (-4)[ebp],0 +je L1105 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1105: +L1103: +mov byte ptr (-9)[ebp],5 +mov word ptr (-28)[ebp],2 +movsx edi,byte ptr (-9)[ebp] +movsx esi,word ptr (-28)[ebp] +sub edi,esi +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,3 +je L1107 +mov dword ptr (-8)[ebp],100 +cmp dword ptr (-4)[ebp],0 +je L1109 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1109: +L1107: +mov byte ptr (-9)[ebp],5 +mov dword ptr (-32)[ebp],2 +movsx edi,byte ptr (-9)[ebp] +sub edi,dword ptr (-32)[ebp] +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,3 +je L1111 +mov dword ptr (-8)[ebp],101 +cmp dword ptr (-4)[ebp],0 +je L1113 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1113: +L1111: +mov byte ptr (-9)[ebp],5 +mov dword ptr (-36)[ebp],2 +movsx edi,byte ptr (-9)[ebp] +sub edi,dword ptr (-36)[ebp] +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,3 +je L1115 +mov dword ptr (-8)[ebp],102 +cmp dword ptr (-4)[ebp],0 +je L1117 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1117: +L1115: +mov byte ptr (-9)[ebp],5 +mov dword ptr (-40)[ebp],2 +movsx edi,byte ptr (-9)[ebp] +sub edi,dword ptr (-40)[ebp] +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,3 +je L1119 +mov dword ptr (-8)[ebp],103 +cmp dword ptr (-4)[ebp],0 +je L1121 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1121: +L1119: +mov byte ptr (-9)[ebp],5 +fld dword ptr (L529) +fstp dword ptr (-56)[ebp] +movsx edi,byte ptr (-9)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fsub dword ptr (-56)[ebp] +call __ftol +mov ebx,eax +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,3 +je L1123 +mov dword ptr (-8)[ebp],104 +cmp dword ptr (-4)[ebp],0 +je L1125 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1125: +L1123: +mov byte ptr (-9)[ebp],5 +fld qword ptr (L416) +fstp qword ptr (-64)[ebp] +movsx edi,byte ptr (-9)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fsub qword ptr (-64)[ebp] +call __ftol +mov ebx,eax +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,3 +je L1127 +mov dword ptr (-8)[ebp],105 +cmp dword ptr (-4)[ebp],0 +je L1129 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1129: +L1127: +mov word ptr (-12)[ebp],5 +mov byte ptr (-25)[ebp],2 +movsx edi,word ptr (-12)[ebp] +movsx esi,byte ptr (-25)[ebp] +sub edi,esi +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,3 +je L1131 +mov dword ptr (-8)[ebp],106 +cmp dword ptr (-4)[ebp],0 +je L1133 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1133: +L1131: +mov word ptr (-12)[ebp],5 +mov word ptr (-28)[ebp],2 +movsx edi,word ptr (-12)[ebp] +movsx esi,word ptr (-28)[ebp] +sub edi,esi +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,3 +je L1135 +mov dword ptr (-8)[ebp],107 +cmp dword ptr (-4)[ebp],0 +je L1137 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1137: +L1135: +mov word ptr (-12)[ebp],5 +mov dword ptr (-32)[ebp],2 +movsx edi,word ptr (-12)[ebp] +sub edi,dword ptr (-32)[ebp] +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,3 +je L1139 +mov dword ptr (-8)[ebp],108 +cmp dword ptr (-4)[ebp],0 +je L1141 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1141: +L1139: +mov word ptr (-12)[ebp],5 +mov dword ptr (-36)[ebp],2 +movsx edi,word ptr (-12)[ebp] +sub edi,dword ptr (-36)[ebp] +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,3 +je L1143 +mov dword ptr (-8)[ebp],109 +cmp dword ptr (-4)[ebp],0 +je L1145 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1145: +L1143: +mov word ptr (-12)[ebp],5 +mov dword ptr (-40)[ebp],2 +movsx edi,word ptr (-12)[ebp] +sub edi,dword ptr (-40)[ebp] +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,3 +je L1147 +mov dword ptr (-8)[ebp],110 +cmp dword ptr (-4)[ebp],0 +je L1149 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1149: +L1147: +mov word ptr (-12)[ebp],5 +fld dword ptr (L529) +fstp dword ptr (-56)[ebp] +movsx edi,word ptr (-12)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fsub dword ptr (-56)[ebp] +call __ftol +mov edi,eax +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,3 +je L1151 +mov dword ptr (-8)[ebp],111 +cmp dword ptr (-4)[ebp],0 +je L1153 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1153: +L1151: +mov word ptr (-12)[ebp],5 +fld qword ptr (L416) +fstp qword ptr (-64)[ebp] +movsx edi,word ptr (-12)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fsub qword ptr (-64)[ebp] +call __ftol +mov edi,eax +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,3 +je L1155 +mov dword ptr (-8)[ebp],112 +cmp dword ptr (-4)[ebp],0 +je L1157 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1157: +L1155: +mov dword ptr (-16)[ebp],5 +mov byte ptr (-25)[ebp],2 +movsx edi,byte ptr (-25)[ebp] +sub dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],3 +je L1159 +mov dword ptr (-8)[ebp],113 +cmp dword ptr (-4)[ebp],0 +je L1161 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1161: +L1159: +mov dword ptr (-16)[ebp],5 +mov word ptr (-28)[ebp],2 +movsx edi,word ptr (-28)[ebp] +sub dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],3 +je L1163 +mov dword ptr (-8)[ebp],114 +cmp dword ptr (-4)[ebp],0 +je L1165 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1165: +L1163: +mov dword ptr (-16)[ebp],5 +mov dword ptr (-32)[ebp],2 +mov edi,dword ptr (-32)[ebp] +sub dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],3 +je L1167 +mov dword ptr (-8)[ebp],115 +cmp dword ptr (-4)[ebp],0 +je L1169 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1169: +L1167: +mov dword ptr (-16)[ebp],5 +mov dword ptr (-36)[ebp],2 +mov edi,dword ptr (-36)[ebp] +sub dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],3 +je L1171 +mov dword ptr (-8)[ebp],116 +cmp dword ptr (-4)[ebp],0 +je L1173 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1173: +L1171: +mov dword ptr (-16)[ebp],5 +mov dword ptr (-40)[ebp],2 +mov edi,dword ptr (-16)[ebp] +sub edi,dword ptr (-40)[ebp] +mov dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],3 +je L1175 +mov dword ptr (-8)[ebp],117 +cmp dword ptr (-4)[ebp],0 +je L1177 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1177: +L1175: +mov dword ptr (-16)[ebp],5 +fld dword ptr (L529) +fstp dword ptr (-56)[ebp] +mov edi,dword ptr (-16)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fsub dword ptr (-56)[ebp] +call __ftol +mov dword ptr (-16)[ebp],eax +cmp dword ptr (-16)[ebp],3 +je L1179 +mov dword ptr (-8)[ebp],118 +cmp dword ptr (-4)[ebp],0 +je L1181 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1181: +L1179: +mov dword ptr (-16)[ebp],5 +fld qword ptr (L416) +fstp qword ptr (-64)[ebp] +fild dword ptr (-16)[ebp] +fsub qword ptr (-64)[ebp] +call __ftol +mov dword ptr (-16)[ebp],eax +cmp dword ptr (-16)[ebp],3 +je L1183 +mov dword ptr (-8)[ebp],119 +cmp dword ptr (-4)[ebp],0 +je L1185 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1185: +L1183: +mov dword ptr (-20)[ebp],5 +mov byte ptr (-25)[ebp],2 +movsx edi,byte ptr (-25)[ebp] +sub dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],3 +je L1187 +mov dword ptr (-8)[ebp],120 +cmp dword ptr (-4)[ebp],0 +je L1189 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1189: +L1187: +mov dword ptr (-20)[ebp],5 +mov word ptr (-28)[ebp],2 +movsx edi,word ptr (-28)[ebp] +sub dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],3 +je L1191 +mov dword ptr (-8)[ebp],121 +cmp dword ptr (-4)[ebp],0 +je L1193 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1193: +L1191: +mov dword ptr (-20)[ebp],5 +mov dword ptr (-32)[ebp],2 +mov edi,dword ptr (-32)[ebp] +sub dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],3 +je L1195 +mov dword ptr (-8)[ebp],122 +cmp dword ptr (-4)[ebp],0 +je L1197 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1197: +L1195: +mov dword ptr (-20)[ebp],5 +mov dword ptr (-36)[ebp],2 +mov edi,dword ptr (-36)[ebp] +sub dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],3 +je L1199 +mov dword ptr (-8)[ebp],123 +cmp dword ptr (-4)[ebp],0 +je L1201 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1201: +L1199: +mov dword ptr (-20)[ebp],5 +mov dword ptr (-40)[ebp],2 +mov edi,dword ptr (-20)[ebp] +sub edi,dword ptr (-40)[ebp] +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],3 +je L1203 +mov dword ptr (-8)[ebp],124 +cmp dword ptr (-4)[ebp],0 +je L1205 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1205: +L1203: +mov dword ptr (-20)[ebp],5 +fld dword ptr (L529) +fstp dword ptr (-56)[ebp] +mov edi,dword ptr (-20)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fsub dword ptr (-56)[ebp] +call __ftol +mov dword ptr (-20)[ebp],eax +cmp dword ptr (-20)[ebp],3 +je L1207 +mov dword ptr (-8)[ebp],125 +cmp dword ptr (-4)[ebp],0 +je L1209 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1209: +L1207: +mov dword ptr (-20)[ebp],5 +fld qword ptr (L416) +fstp qword ptr (-64)[ebp] +fild dword ptr (-20)[ebp] +fsub qword ptr (-64)[ebp] +call __ftol +mov dword ptr (-20)[ebp],eax +cmp dword ptr (-20)[ebp],3 +je L1211 +mov dword ptr (-8)[ebp],126 +cmp dword ptr (-4)[ebp],0 +je L1213 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1213: +L1211: +mov dword ptr (-24)[ebp],5 +mov byte ptr (-25)[ebp],2 +movsx edi,byte ptr (-25)[ebp] +sub dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,3 +je L1215 +mov dword ptr (-8)[ebp],127 +cmp dword ptr (-4)[ebp],0 +je L1217 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1217: +L1215: +mov dword ptr (-24)[ebp],5 +mov word ptr (-28)[ebp],2 +movsx edi,word ptr (-28)[ebp] +sub dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,3 +je L1219 +mov dword ptr (-8)[ebp],128 +cmp dword ptr (-4)[ebp],0 +je L1221 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1221: +L1219: +mov dword ptr (-24)[ebp],5 +mov dword ptr (-32)[ebp],2 +mov edi,dword ptr (-32)[ebp] +sub dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,3 +je L1223 +mov dword ptr (-8)[ebp],129 +cmp dword ptr (-4)[ebp],0 +je L1225 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1225: +L1223: +mov dword ptr (-24)[ebp],5 +mov dword ptr (-36)[ebp],2 +mov edi,dword ptr (-36)[ebp] +sub dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,3 +je L1227 +mov dword ptr (-8)[ebp],130 +cmp dword ptr (-4)[ebp],0 +je L1229 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1229: +L1227: +mov dword ptr (-24)[ebp],5 +mov dword ptr (-40)[ebp],2 +mov edi,dword ptr (-40)[ebp] +sub dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,3 +je L1231 +mov dword ptr (-8)[ebp],131 +cmp dword ptr (-4)[ebp],0 +je L1233 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1233: +L1231: +mov dword ptr (-24)[ebp],5 +fld dword ptr (L529) +fstp dword ptr (-56)[ebp] +mov edi,dword ptr (-24)[ebp] +fld qword ptr (L596) +mov esi,edi +shr esi,1 +push esi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +and edi,1 +push edi +fild dword ptr 0[esp] +add esp,4 +faddp st(1),st +sub esp,4 +fstp dword ptr 0[esp] +fld dword ptr 0[esp] +add esp,4 +fsub dword ptr (-56)[ebp] +fstp dword ptr (-160)[ebp] +fld dword ptr (L828) +fcomp dword ptr (-160)[ebp] +fstsw ax +sahf +ja L1236 +fld dword ptr (-160)[ebp] +fsub dword ptr (L828) +call __ftol +mov edi,eax +lea edi,(080000000H)[edi] +mov dword ptr (-156)[ebp],edi +jmp L1237 +L1236: +fld dword ptr (-160)[ebp] +call __ftol +mov edi,eax +mov dword ptr (-156)[ebp],edi +L1237: +mov edi,dword ptr (-156)[ebp] +mov dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,3 +je L1238 +mov dword ptr (-8)[ebp],132 +cmp dword ptr (-4)[ebp],0 +je L1240 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1240: +L1238: +mov dword ptr (-24)[ebp],5 +fld qword ptr (L416) +fstp qword ptr (-64)[ebp] +mov edi,dword ptr (-24)[ebp] +fld qword ptr (L596) +mov esi,edi +shr esi,1 +push esi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +and edi,1 +push edi +fild dword ptr 0[esp] +add esp,4 +faddp st(1),st +fsub qword ptr (-64)[ebp] +fstp qword ptr (-176)[ebp] +fld qword ptr (L836) +fcomp qword ptr (-176)[ebp] +fstsw ax +sahf +ja L1243 +fld qword ptr (-176)[ebp] +fsub qword ptr (L836) +call __ftol +mov edi,eax +lea edi,(080000000H)[edi] +mov dword ptr (-168)[ebp],edi +jmp L1244 +L1243: +fld qword ptr (-176)[ebp] +call __ftol +mov edi,eax +mov dword ptr (-168)[ebp],edi +L1244: +mov edi,dword ptr (-168)[ebp] +mov dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,3 +je L1245 +mov dword ptr (-8)[ebp],133 +cmp dword ptr (-4)[ebp],0 +je L1247 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1247: +L1245: +fld dword ptr (L841) +fstp dword ptr (-44)[ebp] +mov byte ptr (-25)[ebp],2 +fld dword ptr (-44)[ebp] +movsx edi,byte ptr (-25)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fsubp st(1),st +fstp dword ptr (-44)[ebp] +fld dword ptr (L1251) +fcomp dword ptr (-44)[ebp] +fstsw ax +sahf +je L1249 +mov dword ptr (-8)[ebp],134 +cmp dword ptr (-4)[ebp],0 +je L1252 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1252: +L1249: +fld dword ptr (L841) +fstp dword ptr (-44)[ebp] +mov word ptr (-28)[ebp],2 +fld dword ptr (-44)[ebp] +movsx edi,word ptr (-28)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fsubp st(1),st +fstp dword ptr (-44)[ebp] +fld dword ptr (L1251) +fcomp dword ptr (-44)[ebp] +fstsw ax +sahf +je L1254 +mov dword ptr (-8)[ebp],135 +cmp dword ptr (-4)[ebp],0 +je L1256 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1256: +L1254: +fld dword ptr (L841) +fstp dword ptr (-44)[ebp] +mov dword ptr (-32)[ebp],2 +fld dword ptr (-44)[ebp] +mov edi,dword ptr (-32)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fsubp st(1),st +fstp dword ptr (-44)[ebp] +fld dword ptr (L1251) +fcomp dword ptr (-44)[ebp] +fstsw ax +sahf +je L1258 +mov dword ptr (-8)[ebp],136 +cmp dword ptr (-4)[ebp],0 +je L1260 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1260: +L1258: +fld dword ptr (L841) +fstp dword ptr (-44)[ebp] +mov dword ptr (-36)[ebp],2 +fld dword ptr (-44)[ebp] +mov edi,dword ptr (-36)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fsubp st(1),st +fstp dword ptr (-44)[ebp] +fld dword ptr (L1251) +fcomp dword ptr (-44)[ebp] +fstsw ax +sahf +je L1262 +mov dword ptr (-8)[ebp],137 +cmp dword ptr (-4)[ebp],0 +je L1264 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1264: +L1262: +fld dword ptr (L841) +fstp dword ptr (-44)[ebp] +mov dword ptr (-40)[ebp],2 +mov edi,dword ptr (-40)[ebp] +fld dword ptr (-44)[ebp] +fld qword ptr (L596) +mov esi,edi +shr esi,1 +push esi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +and edi,1 +push edi +fild dword ptr 0[esp] +add esp,4 +faddp st(1),st +sub esp,4 +fstp dword ptr 0[esp] +fld dword ptr 0[esp] +add esp,4 +fsubp st(1),st +fstp dword ptr (-44)[ebp] +fld dword ptr (L1251) +fcomp dword ptr (-44)[ebp] +fstsw ax +sahf +je L1266 +mov dword ptr (-8)[ebp],138 +cmp dword ptr (-4)[ebp],0 +je L1268 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1268: +L1266: +fld dword ptr (L841) +fstp dword ptr (-44)[ebp] +fld dword ptr (L529) +fstp dword ptr (-56)[ebp] +fld dword ptr (-44)[ebp] +fsub dword ptr (-56)[ebp] +fstp dword ptr (-44)[ebp] +fld dword ptr (L1251) +fcomp dword ptr (-44)[ebp] +fstsw ax +sahf +je L1270 +mov dword ptr (-8)[ebp],139 +cmp dword ptr (-4)[ebp],0 +je L1272 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1272: +L1270: +fld dword ptr (L841) +fstp dword ptr (-44)[ebp] +fld qword ptr (L416) +fstp qword ptr (-64)[ebp] +fld dword ptr (-44)[ebp] +fsub qword ptr (-64)[ebp] +fstp dword ptr (-44)[ebp] +fld dword ptr (L1251) +fcomp dword ptr (-44)[ebp] +fstsw ax +sahf +je L1274 +mov dword ptr (-8)[ebp],140 +cmp dword ptr (-4)[ebp],0 +je L1276 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1276: +L1274: +fld qword ptr (L870) +fstp qword ptr (-52)[ebp] +mov byte ptr (-25)[ebp],2 +fld qword ptr (-52)[ebp] +movsx edi,byte ptr (-25)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fsubp st(1),st +fstp qword ptr (-52)[ebp] +fld qword ptr (L1280) +fcomp qword ptr (-52)[ebp] +fstsw ax +sahf +je L1278 +mov dword ptr (-8)[ebp],141 +cmp dword ptr (-4)[ebp],0 +je L1281 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1281: +L1278: +fld qword ptr (L870) +fstp qword ptr (-52)[ebp] +mov word ptr (-28)[ebp],2 +fld qword ptr (-52)[ebp] +movsx edi,word ptr (-28)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fsubp st(1),st +fstp qword ptr (-52)[ebp] +fld qword ptr (L1280) +fcomp qword ptr (-52)[ebp] +fstsw ax +sahf +je L1283 +mov dword ptr (-8)[ebp],142 +cmp dword ptr (-4)[ebp],0 +je L1285 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1285: +L1283: +fld qword ptr (L870) +fstp qword ptr (-52)[ebp] +mov dword ptr (-32)[ebp],2 +fld qword ptr (-52)[ebp] +fild dword ptr (-32)[ebp] +fsubp st(1),st +fstp qword ptr (-52)[ebp] +fld qword ptr (L1280) +fcomp qword ptr (-52)[ebp] +fstsw ax +sahf +je L1287 +mov dword ptr (-8)[ebp],143 +cmp dword ptr (-4)[ebp],0 +je L1289 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1289: +L1287: +fld qword ptr (L870) +fstp qword ptr (-52)[ebp] +mov dword ptr (-36)[ebp],2 +fld qword ptr (-52)[ebp] +fild dword ptr (-36)[ebp] +fsubp st(1),st +fstp qword ptr (-52)[ebp] +fld qword ptr (L1280) +fcomp qword ptr (-52)[ebp] +fstsw ax +sahf +je L1291 +mov dword ptr (-8)[ebp],144 +cmp dword ptr (-4)[ebp],0 +je L1293 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1293: +L1291: +fld qword ptr (L870) +fstp qword ptr (-52)[ebp] +mov dword ptr (-40)[ebp],2 +mov edi,dword ptr (-40)[ebp] +fld qword ptr (-52)[ebp] +fld qword ptr (L596) +mov esi,edi +shr esi,1 +push esi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +and edi,1 +push edi +fild dword ptr 0[esp] +add esp,4 +faddp st(1),st +fsubp st(1),st +fstp qword ptr (-52)[ebp] +fld qword ptr (L1280) +fcomp qword ptr (-52)[ebp] +fstsw ax +sahf +je L1295 +mov dword ptr (-8)[ebp],145 +cmp dword ptr (-4)[ebp],0 +je L1297 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1297: +L1295: +fld qword ptr (L870) +fstp qword ptr (-52)[ebp] +fld dword ptr (L529) +fstp dword ptr (-56)[ebp] +fld qword ptr (-52)[ebp] +fsub dword ptr (-56)[ebp] +fstp qword ptr (-52)[ebp] +fld qword ptr (L1280) +fcomp qword ptr (-52)[ebp] +fstsw ax +sahf +je L1299 +mov dword ptr (-8)[ebp],146 +cmp dword ptr (-4)[ebp],0 +je L1301 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1301: +L1299: +fld qword ptr (L870) +fstp qword ptr (-52)[ebp] +fld qword ptr (L416) +fstp qword ptr (-64)[ebp] +fld qword ptr (-52)[ebp] +fsub qword ptr (-64)[ebp] +fstp qword ptr (-52)[ebp] +fld qword ptr (L1280) +fcomp qword ptr (-52)[ebp] +fstsw ax +sahf +je L1303 +mov dword ptr (-8)[ebp],147 +cmp dword ptr (-4)[ebp],0 +je L1305 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1305: +L1303: +mov byte ptr (-9)[ebp],5 +mov byte ptr (-25)[ebp],2 +movsx edi,byte ptr (-9)[ebp] +movsx esi,byte ptr (-25)[ebp] +imul edi,esi +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,10 +je L1307 +mov dword ptr (-8)[ebp],148 +cmp dword ptr (-4)[ebp],0 +je L1309 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1309: +L1307: +mov byte ptr (-9)[ebp],5 +mov word ptr (-28)[ebp],2 +movsx edi,byte ptr (-9)[ebp] +movsx esi,word ptr (-28)[ebp] +imul edi,esi +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,10 +je L1311 +mov dword ptr (-8)[ebp],149 +cmp dword ptr (-4)[ebp],0 +je L1313 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1313: +L1311: +mov byte ptr (-9)[ebp],5 +mov dword ptr (-32)[ebp],2 +movsx edi,byte ptr (-9)[ebp] +mov esi,dword ptr (-32)[ebp] +imul edi,esi +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,10 +je L1315 +mov dword ptr (-8)[ebp],150 +cmp dword ptr (-4)[ebp],0 +je L1317 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1317: +L1315: +mov byte ptr (-9)[ebp],5 +mov dword ptr (-36)[ebp],2 +movsx edi,byte ptr (-9)[ebp] +mov esi,dword ptr (-36)[ebp] +imul edi,esi +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,10 +je L1319 +mov dword ptr (-8)[ebp],151 +cmp dword ptr (-4)[ebp],0 +je L1321 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1321: +L1319: +mov byte ptr (-9)[ebp],5 +mov dword ptr (-40)[ebp],2 +movsx edi,byte ptr (-9)[ebp] +mov eax,edi +mul dword ptr (-40)[ebp] +mov edi,eax +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,10 +je L1323 +mov dword ptr (-8)[ebp],152 +cmp dword ptr (-4)[ebp],0 +je L1325 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1325: +L1323: +mov byte ptr (-9)[ebp],5 +fld dword ptr (L529) +fstp dword ptr (-56)[ebp] +movsx edi,byte ptr (-9)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fmul dword ptr (-56)[ebp] +call __ftol +mov ebx,eax +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,10 +je L1327 +mov dword ptr (-8)[ebp],153 +cmp dword ptr (-4)[ebp],0 +je L1329 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1329: +L1327: +mov byte ptr (-9)[ebp],5 +fld qword ptr (L416) +fstp qword ptr (-64)[ebp] +movsx edi,byte ptr (-9)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fmul qword ptr (-64)[ebp] +call __ftol +mov ebx,eax +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,10 +je L1331 +mov dword ptr (-8)[ebp],154 +cmp dword ptr (-4)[ebp],0 +je L1333 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1333: +L1331: +mov word ptr (-12)[ebp],5 +mov byte ptr (-25)[ebp],2 +movsx edi,word ptr (-12)[ebp] +movsx esi,byte ptr (-25)[ebp] +imul edi,esi +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,10 +je L1335 +mov dword ptr (-8)[ebp],155 +cmp dword ptr (-4)[ebp],0 +je L1337 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1337: +L1335: +mov word ptr (-12)[ebp],5 +mov word ptr (-28)[ebp],2 +movsx edi,word ptr (-12)[ebp] +movsx esi,word ptr (-28)[ebp] +imul edi,esi +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,10 +je L1339 +mov dword ptr (-8)[ebp],156 +cmp dword ptr (-4)[ebp],0 +je L1341 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1341: +L1339: +mov word ptr (-12)[ebp],5 +mov dword ptr (-32)[ebp],2 +movsx edi,word ptr (-12)[ebp] +mov esi,dword ptr (-32)[ebp] +imul edi,esi +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,10 +je L1343 +mov dword ptr (-8)[ebp],157 +cmp dword ptr (-4)[ebp],0 +je L1345 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1345: +L1343: +mov word ptr (-12)[ebp],5 +mov dword ptr (-36)[ebp],2 +movsx edi,word ptr (-12)[ebp] +mov esi,dword ptr (-36)[ebp] +imul edi,esi +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,10 +je L1347 +mov dword ptr (-8)[ebp],158 +cmp dword ptr (-4)[ebp],0 +je L1349 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1349: +L1347: +mov word ptr (-12)[ebp],5 +mov dword ptr (-40)[ebp],2 +movsx edi,word ptr (-12)[ebp] +mov eax,edi +mul dword ptr (-40)[ebp] +mov edi,eax +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,10 +je L1351 +mov dword ptr (-8)[ebp],159 +cmp dword ptr (-4)[ebp],0 +je L1353 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1353: +L1351: +mov word ptr (-12)[ebp],5 +fld dword ptr (L529) +fstp dword ptr (-56)[ebp] +movsx edi,word ptr (-12)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fmul dword ptr (-56)[ebp] +call __ftol +mov edi,eax +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,10 +je L1355 +mov dword ptr (-8)[ebp],160 +cmp dword ptr (-4)[ebp],0 +je L1357 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1357: +L1355: +mov word ptr (-12)[ebp],5 +fld qword ptr (L416) +fstp qword ptr (-64)[ebp] +movsx edi,word ptr (-12)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fmul qword ptr (-64)[ebp] +call __ftol +mov edi,eax +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,10 +je L1359 +mov dword ptr (-8)[ebp],161 +cmp dword ptr (-4)[ebp],0 +je L1361 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1361: +L1359: +mov dword ptr (-16)[ebp],5 +mov byte ptr (-25)[ebp],2 +mov edi,dword ptr (-16)[ebp] +movsx esi,byte ptr (-25)[ebp] +imul edi,esi +mov dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],10 +je L1363 +mov dword ptr (-8)[ebp],162 +cmp dword ptr (-4)[ebp],0 +je L1365 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1365: +L1363: +mov dword ptr (-16)[ebp],5 +mov word ptr (-28)[ebp],2 +mov edi,dword ptr (-16)[ebp] +movsx esi,word ptr (-28)[ebp] +imul edi,esi +mov dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],10 +je L1367 +mov dword ptr (-8)[ebp],163 +cmp dword ptr (-4)[ebp],0 +je L1369 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1369: +L1367: +mov dword ptr (-16)[ebp],5 +mov dword ptr (-32)[ebp],2 +mov edi,dword ptr (-16)[ebp] +mov esi,dword ptr (-32)[ebp] +imul edi,esi +mov dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],10 +je L1371 +mov dword ptr (-8)[ebp],164 +cmp dword ptr (-4)[ebp],0 +je L1373 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1373: +L1371: +mov dword ptr (-16)[ebp],5 +mov dword ptr (-36)[ebp],2 +mov edi,dword ptr (-16)[ebp] +mov esi,dword ptr (-36)[ebp] +imul edi,esi +mov dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],10 +je L1375 +mov dword ptr (-8)[ebp],165 +cmp dword ptr (-4)[ebp],0 +je L1377 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1377: +L1375: +mov dword ptr (-16)[ebp],5 +mov dword ptr (-40)[ebp],2 +mov edi,dword ptr (-16)[ebp] +mov eax,edi +mul dword ptr (-40)[ebp] +mov edi,eax +mov dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],10 +je L1379 +mov dword ptr (-8)[ebp],166 +cmp dword ptr (-4)[ebp],0 +je L1381 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1381: +L1379: +mov dword ptr (-16)[ebp],5 +fld dword ptr (L529) +fstp dword ptr (-56)[ebp] +mov edi,dword ptr (-16)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fmul dword ptr (-56)[ebp] +call __ftol +mov dword ptr (-16)[ebp],eax +cmp dword ptr (-16)[ebp],10 +je L1383 +mov dword ptr (-8)[ebp],167 +cmp dword ptr (-4)[ebp],0 +je L1385 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1385: +L1383: +mov dword ptr (-16)[ebp],5 +fld qword ptr (L416) +fstp qword ptr (-64)[ebp] +fild dword ptr (-16)[ebp] +fmul qword ptr (-64)[ebp] +call __ftol +mov dword ptr (-16)[ebp],eax +cmp dword ptr (-16)[ebp],10 +je L1387 +mov dword ptr (-8)[ebp],168 +cmp dword ptr (-4)[ebp],0 +je L1389 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1389: +L1387: +mov dword ptr (-20)[ebp],5 +mov byte ptr (-25)[ebp],2 +mov edi,dword ptr (-20)[ebp] +movsx esi,byte ptr (-25)[ebp] +imul edi,esi +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],10 +je L1391 +mov dword ptr (-8)[ebp],169 +cmp dword ptr (-4)[ebp],0 +je L1393 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1393: +L1391: +mov dword ptr (-20)[ebp],5 +mov word ptr (-28)[ebp],2 +mov edi,dword ptr (-20)[ebp] +movsx esi,word ptr (-28)[ebp] +imul edi,esi +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],10 +je L1395 +mov dword ptr (-8)[ebp],170 +cmp dword ptr (-4)[ebp],0 +je L1397 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1397: +L1395: +mov dword ptr (-20)[ebp],5 +mov dword ptr (-32)[ebp],2 +mov edi,dword ptr (-20)[ebp] +mov esi,dword ptr (-32)[ebp] +imul edi,esi +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],10 +je L1399 +mov dword ptr (-8)[ebp],171 +cmp dword ptr (-4)[ebp],0 +je L1401 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1401: +L1399: +mov dword ptr (-20)[ebp],5 +mov dword ptr (-36)[ebp],2 +mov edi,dword ptr (-20)[ebp] +mov esi,dword ptr (-36)[ebp] +imul edi,esi +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],10 +je L1403 +mov dword ptr (-8)[ebp],172 +cmp dword ptr (-4)[ebp],0 +je L1405 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1405: +L1403: +mov dword ptr (-20)[ebp],5 +mov dword ptr (-40)[ebp],2 +mov edi,dword ptr (-20)[ebp] +mov eax,edi +mul dword ptr (-40)[ebp] +mov edi,eax +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],10 +je L1407 +mov dword ptr (-8)[ebp],173 +cmp dword ptr (-4)[ebp],0 +je L1409 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1409: +L1407: +mov dword ptr (-20)[ebp],5 +fld dword ptr (L529) +fstp dword ptr (-56)[ebp] +mov edi,dword ptr (-20)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fmul dword ptr (-56)[ebp] +call __ftol +mov dword ptr (-20)[ebp],eax +cmp dword ptr (-20)[ebp],10 +je L1411 +mov dword ptr (-8)[ebp],174 +cmp dword ptr (-4)[ebp],0 +je L1413 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1413: +L1411: +mov dword ptr (-20)[ebp],5 +fld qword ptr (L416) +fstp qword ptr (-64)[ebp] +fild dword ptr (-20)[ebp] +fmul qword ptr (-64)[ebp] +call __ftol +mov dword ptr (-20)[ebp],eax +cmp dword ptr (-20)[ebp],10 +je L1415 +mov dword ptr (-8)[ebp],175 +cmp dword ptr (-4)[ebp],0 +je L1417 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1417: +L1415: +mov dword ptr (-24)[ebp],5 +mov byte ptr (-25)[ebp],2 +mov eax,dword ptr (-24)[ebp] +movsx edi,byte ptr (-25)[ebp] +mul edi +mov dword ptr (-24)[ebp],eax +mov edi,dword ptr (-24)[ebp] +cmp edi,10 +je L1419 +mov dword ptr (-8)[ebp],176 +cmp dword ptr (-4)[ebp],0 +je L1421 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1421: +L1419: +mov dword ptr (-24)[ebp],5 +mov word ptr (-28)[ebp],2 +mov eax,dword ptr (-24)[ebp] +movsx edi,word ptr (-28)[ebp] +mul edi +mov dword ptr (-24)[ebp],eax +mov edi,dword ptr (-24)[ebp] +cmp edi,10 +je L1423 +mov dword ptr (-8)[ebp],177 +cmp dword ptr (-4)[ebp],0 +je L1425 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1425: +L1423: +mov dword ptr (-24)[ebp],5 +mov dword ptr (-32)[ebp],2 +mov eax,dword ptr (-24)[ebp] +mov edi,dword ptr (-32)[ebp] +mul edi +mov dword ptr (-24)[ebp],eax +mov edi,dword ptr (-24)[ebp] +cmp edi,10 +je L1427 +mov dword ptr (-8)[ebp],178 +cmp dword ptr (-4)[ebp],0 +je L1429 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1429: +L1427: +mov dword ptr (-24)[ebp],5 +mov dword ptr (-36)[ebp],2 +mov eax,dword ptr (-24)[ebp] +mov edi,dword ptr (-36)[ebp] +mul edi +mov dword ptr (-24)[ebp],eax +mov edi,dword ptr (-24)[ebp] +cmp edi,10 +je L1431 +mov dword ptr (-8)[ebp],179 +cmp dword ptr (-4)[ebp],0 +je L1433 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1433: +L1431: +mov dword ptr (-24)[ebp],5 +mov dword ptr (-40)[ebp],2 +mov eax,dword ptr (-24)[ebp] +mul dword ptr (-40)[ebp] +mov dword ptr (-24)[ebp],eax +mov edi,dword ptr (-24)[ebp] +cmp edi,10 +je L1435 +mov dword ptr (-8)[ebp],180 +cmp dword ptr (-4)[ebp],0 +je L1437 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1437: +L1435: +mov dword ptr (-24)[ebp],5 +fld dword ptr (L529) +fstp dword ptr (-56)[ebp] +mov edi,dword ptr (-24)[ebp] +fld qword ptr (L596) +mov esi,edi +shr esi,1 +push esi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +and edi,1 +push edi +fild dword ptr 0[esp] +add esp,4 +faddp st(1),st +sub esp,4 +fstp dword ptr 0[esp] +fld dword ptr 0[esp] +add esp,4 +fmul dword ptr (-56)[ebp] +fstp dword ptr (-192)[ebp] +fld dword ptr (L828) +fcomp dword ptr (-192)[ebp] +fstsw ax +sahf +ja L1440 +fld dword ptr (-192)[ebp] +fsub dword ptr (L828) +call __ftol +mov edi,eax +lea edi,(080000000H)[edi] +mov dword ptr (-188)[ebp],edi +jmp L1441 +L1440: +fld dword ptr (-192)[ebp] +call __ftol +mov edi,eax +mov dword ptr (-188)[ebp],edi +L1441: +mov edi,dword ptr (-188)[ebp] +mov dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,10 +je L1442 +mov dword ptr (-8)[ebp],181 +cmp dword ptr (-4)[ebp],0 +je L1444 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1444: +L1442: +mov dword ptr (-24)[ebp],5 +fld qword ptr (L416) +fstp qword ptr (-64)[ebp] +mov edi,dword ptr (-24)[ebp] +fld qword ptr (L596) +mov esi,edi +shr esi,1 +push esi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +and edi,1 +push edi +fild dword ptr 0[esp] +add esp,4 +faddp st(1),st +fmul qword ptr (-64)[ebp] +fstp qword ptr (-208)[ebp] +fld qword ptr (L836) +fcomp qword ptr (-208)[ebp] +fstsw ax +sahf +ja L1447 +fld qword ptr (-208)[ebp] +fsub qword ptr (L836) +call __ftol +mov edi,eax +lea edi,(080000000H)[edi] +mov dword ptr (-200)[ebp],edi +jmp L1448 +L1447: +fld qword ptr (-208)[ebp] +call __ftol +mov edi,eax +mov dword ptr (-200)[ebp],edi +L1448: +mov edi,dword ptr (-200)[ebp] +mov dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,10 +je L1449 +mov dword ptr (-8)[ebp],182 +cmp dword ptr (-4)[ebp],0 +je L1451 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1451: +L1449: +fld dword ptr (L841) +fstp dword ptr (-44)[ebp] +mov byte ptr (-25)[ebp],2 +fld dword ptr (-44)[ebp] +movsx edi,byte ptr (-25)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +fstp dword ptr (-44)[ebp] +fld dword ptr (L1455) +fcomp dword ptr (-44)[ebp] +fstsw ax +sahf +je L1453 +mov dword ptr (-8)[ebp],183 +cmp dword ptr (-4)[ebp],0 +je L1456 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1456: +L1453: +fld dword ptr (L841) +fstp dword ptr (-44)[ebp] +mov word ptr (-28)[ebp],2 +fld dword ptr (-44)[ebp] +movsx edi,word ptr (-28)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +fstp dword ptr (-44)[ebp] +fld dword ptr (L1455) +fcomp dword ptr (-44)[ebp] +fstsw ax +sahf +je L1458 +mov dword ptr (-8)[ebp],184 +cmp dword ptr (-4)[ebp],0 +je L1460 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1460: +L1458: +fld dword ptr (L841) +fstp dword ptr (-44)[ebp] +mov dword ptr (-32)[ebp],2 +fld dword ptr (-44)[ebp] +mov edi,dword ptr (-32)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +fstp dword ptr (-44)[ebp] +fld dword ptr (L1455) +fcomp dword ptr (-44)[ebp] +fstsw ax +sahf +je L1462 +mov dword ptr (-8)[ebp],185 +cmp dword ptr (-4)[ebp],0 +je L1464 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1464: +L1462: +fld dword ptr (L841) +fstp dword ptr (-44)[ebp] +mov dword ptr (-36)[ebp],2 +fld dword ptr (-44)[ebp] +mov edi,dword ptr (-36)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +fstp dword ptr (-44)[ebp] +fld dword ptr (L1455) +fcomp dword ptr (-44)[ebp] +fstsw ax +sahf +je L1466 +mov dword ptr (-8)[ebp],186 +cmp dword ptr (-4)[ebp],0 +je L1468 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1468: +L1466: +fld dword ptr (L841) +fstp dword ptr (-44)[ebp] +mov dword ptr (-40)[ebp],2 +mov edi,dword ptr (-40)[ebp] +fld dword ptr (-44)[ebp] +fld qword ptr (L596) +mov esi,edi +shr esi,1 +push esi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +and edi,1 +push edi +fild dword ptr 0[esp] +add esp,4 +faddp st(1),st +sub esp,4 +fstp dword ptr 0[esp] +fld dword ptr 0[esp] +add esp,4 +fmulp st(1),st +fstp dword ptr (-44)[ebp] +fld dword ptr (L1455) +fcomp dword ptr (-44)[ebp] +fstsw ax +sahf +je L1470 +mov dword ptr (-8)[ebp],187 +cmp dword ptr (-4)[ebp],0 +je L1472 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1472: +L1470: +fld dword ptr (L841) +fstp dword ptr (-44)[ebp] +fld dword ptr (L529) +fstp dword ptr (-56)[ebp] +fld dword ptr (-44)[ebp] +fmul dword ptr (-56)[ebp] +fstp dword ptr (-44)[ebp] +fld dword ptr (L1455) +fcomp dword ptr (-44)[ebp] +fstsw ax +sahf +je L1474 +mov dword ptr (-8)[ebp],188 +cmp dword ptr (-4)[ebp],0 +je L1476 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1476: +L1474: +fld dword ptr (L841) +fstp dword ptr (-44)[ebp] +fld qword ptr (L416) +fstp qword ptr (-64)[ebp] +fld dword ptr (-44)[ebp] +fmul qword ptr (-64)[ebp] +fstp dword ptr (-44)[ebp] +fld dword ptr (L1455) +fcomp dword ptr (-44)[ebp] +fstsw ax +sahf +je L1478 +mov dword ptr (-8)[ebp],189 +cmp dword ptr (-4)[ebp],0 +je L1480 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1480: +L1478: +fld qword ptr (L870) +fstp qword ptr (-52)[ebp] +mov byte ptr (-25)[ebp],2 +fld qword ptr (-52)[ebp] +movsx edi,byte ptr (-25)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +fstp qword ptr (-52)[ebp] +fld qword ptr (L1484) +fcomp qword ptr (-52)[ebp] +fstsw ax +sahf +je L1482 +mov dword ptr (-8)[ebp],190 +cmp dword ptr (-4)[ebp],0 +je L1485 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1485: +L1482: +fld qword ptr (L870) +fstp qword ptr (-52)[ebp] +mov word ptr (-28)[ebp],2 +fld qword ptr (-52)[ebp] +movsx edi,word ptr (-28)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +fstp qword ptr (-52)[ebp] +fld qword ptr (L1484) +fcomp qword ptr (-52)[ebp] +fstsw ax +sahf +je L1487 +mov dword ptr (-8)[ebp],191 +cmp dword ptr (-4)[ebp],0 +je L1489 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1489: +L1487: +fld qword ptr (L870) +fstp qword ptr (-52)[ebp] +mov dword ptr (-32)[ebp],2 +fld qword ptr (-52)[ebp] +fild dword ptr (-32)[ebp] +fmulp st(1),st +fstp qword ptr (-52)[ebp] +fld qword ptr (L1484) +fcomp qword ptr (-52)[ebp] +fstsw ax +sahf +je L1491 +mov dword ptr (-8)[ebp],192 +cmp dword ptr (-4)[ebp],0 +je L1493 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1493: +L1491: +fld qword ptr (L870) +fstp qword ptr (-52)[ebp] +mov dword ptr (-36)[ebp],2 +fld qword ptr (-52)[ebp] +fild dword ptr (-36)[ebp] +fmulp st(1),st +fstp qword ptr (-52)[ebp] +fld qword ptr (L1484) +fcomp qword ptr (-52)[ebp] +fstsw ax +sahf +je L1495 +mov dword ptr (-8)[ebp],193 +cmp dword ptr (-4)[ebp],0 +je L1497 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1497: +L1495: +fld qword ptr (L870) +fstp qword ptr (-52)[ebp] +mov dword ptr (-40)[ebp],2 +mov edi,dword ptr (-40)[ebp] +fld qword ptr (-52)[ebp] +fld qword ptr (L596) +mov esi,edi +shr esi,1 +push esi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +and edi,1 +push edi +fild dword ptr 0[esp] +add esp,4 +faddp st(1),st +fmulp st(1),st +fstp qword ptr (-52)[ebp] +fld qword ptr (L1484) +fcomp qword ptr (-52)[ebp] +fstsw ax +sahf +je L1499 +mov dword ptr (-8)[ebp],194 +cmp dword ptr (-4)[ebp],0 +je L1501 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1501: +L1499: +fld qword ptr (L870) +fstp qword ptr (-52)[ebp] +fld dword ptr (L529) +fstp dword ptr (-56)[ebp] +fld qword ptr (-52)[ebp] +fmul dword ptr (-56)[ebp] +fstp qword ptr (-52)[ebp] +fld qword ptr (L1484) +fcomp qword ptr (-52)[ebp] +fstsw ax +sahf +je L1503 +mov dword ptr (-8)[ebp],195 +cmp dword ptr (-4)[ebp],0 +je L1505 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1505: +L1503: +fld qword ptr (L870) +fstp qword ptr (-52)[ebp] +fld qword ptr (L416) +fstp qword ptr (-64)[ebp] +fld qword ptr (-52)[ebp] +fmul qword ptr (-64)[ebp] +fstp qword ptr (-52)[ebp] +fld qword ptr (L1484) +fcomp qword ptr (-52)[ebp] +fstsw ax +sahf +je L1507 +mov dword ptr (-8)[ebp],196 +cmp dword ptr (-4)[ebp],0 +je L1509 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1509: +L1507: +mov byte ptr (-9)[ebp],5 +mov byte ptr (-25)[ebp],2 +movsx eax,byte ptr (-9)[ebp] +movsx edi,byte ptr (-25)[ebp] +cdq +idiv edi +mov ebx,eax +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,2 +je L1511 +mov dword ptr (-8)[ebp],197 +cmp dword ptr (-4)[ebp],0 +je L1513 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1513: +L1511: +mov byte ptr (-9)[ebp],5 +mov word ptr (-28)[ebp],2 +movsx eax,byte ptr (-9)[ebp] +movsx edi,word ptr (-28)[ebp] +cdq +idiv edi +mov ebx,eax +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,2 +je L1515 +mov dword ptr (-8)[ebp],198 +cmp dword ptr (-4)[ebp],0 +je L1517 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1517: +L1515: +mov byte ptr (-9)[ebp],5 +mov dword ptr (-32)[ebp],2 +movsx eax,byte ptr (-9)[ebp] +mov edi,dword ptr (-32)[ebp] +cdq +idiv edi +mov ebx,eax +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,2 +je L1519 +mov dword ptr (-8)[ebp],199 +cmp dword ptr (-4)[ebp],0 +je L1521 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1521: +L1519: +mov byte ptr (-9)[ebp],5 +mov dword ptr (-36)[ebp],2 +movsx eax,byte ptr (-9)[ebp] +mov edi,dword ptr (-36)[ebp] +cdq +idiv edi +mov ebx,eax +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,2 +je L1523 +mov dword ptr (-8)[ebp],200 +cmp dword ptr (-4)[ebp],0 +je L1525 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1525: +L1523: +mov byte ptr (-9)[ebp],5 +mov dword ptr (-40)[ebp],2 +movsx edi,byte ptr (-9)[ebp] +mov eax,edi +mov edi,dword ptr (-40)[ebp] +xor edx,edx +div edi +mov edi,eax +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,2 +je L1527 +mov dword ptr (-8)[ebp],201 +cmp dword ptr (-4)[ebp],0 +je L1529 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1529: +L1527: +mov byte ptr (-9)[ebp],5 +fld dword ptr (L529) +fstp dword ptr (-56)[ebp] +movsx edi,byte ptr (-9)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fdiv dword ptr (-56)[ebp] +call __ftol +mov ebx,eax +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,2 +je L1531 +mov dword ptr (-8)[ebp],202 +cmp dword ptr (-4)[ebp],0 +je L1533 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1533: +L1531: +mov byte ptr (-9)[ebp],5 +fld qword ptr (L416) +fstp qword ptr (-64)[ebp] +movsx edi,byte ptr (-9)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fdiv qword ptr (-64)[ebp] +call __ftol +mov ebx,eax +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,2 +je L1535 +mov dword ptr (-8)[ebp],203 +cmp dword ptr (-4)[ebp],0 +je L1537 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1537: +L1535: +mov word ptr (-12)[ebp],5 +mov byte ptr (-25)[ebp],2 +movsx eax,word ptr (-12)[ebp] +movsx edi,byte ptr (-25)[ebp] +cdq +idiv edi +mov edi,eax +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,2 +je L1539 +mov dword ptr (-8)[ebp],204 +cmp dword ptr (-4)[ebp],0 +je L1541 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1541: +L1539: +mov word ptr (-12)[ebp],5 +mov word ptr (-28)[ebp],2 +movsx eax,word ptr (-12)[ebp] +movsx edi,word ptr (-28)[ebp] +cdq +idiv edi +mov edi,eax +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,2 +je L1543 +mov dword ptr (-8)[ebp],205 +cmp dword ptr (-4)[ebp],0 +je L1545 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1545: +L1543: +mov word ptr (-12)[ebp],5 +mov dword ptr (-32)[ebp],2 +movsx eax,word ptr (-12)[ebp] +mov edi,dword ptr (-32)[ebp] +cdq +idiv edi +mov edi,eax +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,2 +je L1547 +mov dword ptr (-8)[ebp],206 +cmp dword ptr (-4)[ebp],0 +je L1549 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1549: +L1547: +mov word ptr (-12)[ebp],5 +mov dword ptr (-36)[ebp],2 +movsx eax,word ptr (-12)[ebp] +mov edi,dword ptr (-36)[ebp] +cdq +idiv edi +mov edi,eax +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,2 +je L1551 +mov dword ptr (-8)[ebp],207 +cmp dword ptr (-4)[ebp],0 +je L1553 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1553: +L1551: +mov word ptr (-12)[ebp],5 +mov dword ptr (-40)[ebp],2 +movsx edi,word ptr (-12)[ebp] +mov eax,edi +mov edi,dword ptr (-40)[ebp] +xor edx,edx +div edi +mov edi,eax +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,2 +je L1555 +mov dword ptr (-8)[ebp],208 +cmp dword ptr (-4)[ebp],0 +je L1557 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1557: +L1555: +mov word ptr (-12)[ebp],5 +fld dword ptr (L529) +fstp dword ptr (-56)[ebp] +movsx edi,word ptr (-12)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fdiv dword ptr (-56)[ebp] +call __ftol +mov edi,eax +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,2 +je L1559 +mov dword ptr (-8)[ebp],209 +cmp dword ptr (-4)[ebp],0 +je L1561 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1561: +L1559: +mov word ptr (-12)[ebp],5 +fld qword ptr (L416) +fstp qword ptr (-64)[ebp] +movsx edi,word ptr (-12)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fdiv qword ptr (-64)[ebp] +call __ftol +mov edi,eax +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,2 +je L1563 +mov dword ptr (-8)[ebp],210 +cmp dword ptr (-4)[ebp],0 +je L1565 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1565: +L1563: +mov dword ptr (-16)[ebp],5 +mov byte ptr (-25)[ebp],2 +mov eax,dword ptr (-16)[ebp] +movsx edi,byte ptr (-25)[ebp] +cdq +idiv edi +mov dword ptr (-16)[ebp],eax +cmp dword ptr (-16)[ebp],2 +je L1567 +mov dword ptr (-8)[ebp],211 +cmp dword ptr (-4)[ebp],0 +je L1569 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1569: +L1567: +mov dword ptr (-16)[ebp],5 +mov word ptr (-28)[ebp],2 +mov eax,dword ptr (-16)[ebp] +movsx edi,word ptr (-28)[ebp] +cdq +idiv edi +mov dword ptr (-16)[ebp],eax +cmp dword ptr (-16)[ebp],2 +je L1571 +mov dword ptr (-8)[ebp],212 +cmp dword ptr (-4)[ebp],0 +je L1573 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1573: +L1571: +mov dword ptr (-16)[ebp],5 +mov dword ptr (-32)[ebp],2 +mov eax,dword ptr (-16)[ebp] +mov edi,dword ptr (-32)[ebp] +cdq +idiv edi +mov dword ptr (-16)[ebp],eax +cmp dword ptr (-16)[ebp],2 +je L1575 +mov dword ptr (-8)[ebp],213 +cmp dword ptr (-4)[ebp],0 +je L1577 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1577: +L1575: +mov dword ptr (-16)[ebp],5 +mov dword ptr (-36)[ebp],2 +mov eax,dword ptr (-16)[ebp] +mov edi,dword ptr (-36)[ebp] +cdq +idiv edi +mov dword ptr (-16)[ebp],eax +cmp dword ptr (-16)[ebp],2 +je L1579 +mov dword ptr (-8)[ebp],214 +cmp dword ptr (-4)[ebp],0 +je L1581 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1581: +L1579: +mov dword ptr (-16)[ebp],5 +mov dword ptr (-40)[ebp],2 +mov edi,dword ptr (-16)[ebp] +mov eax,edi +mov edi,dword ptr (-40)[ebp] +xor edx,edx +div edi +mov edi,eax +mov dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],2 +je L1583 +mov dword ptr (-8)[ebp],215 +cmp dword ptr (-4)[ebp],0 +je L1585 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1585: +L1583: +mov dword ptr (-16)[ebp],5 +fld dword ptr (L529) +fstp dword ptr (-56)[ebp] +mov edi,dword ptr (-16)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fdiv dword ptr (-56)[ebp] +call __ftol +mov dword ptr (-16)[ebp],eax +cmp dword ptr (-16)[ebp],2 +je L1587 +mov dword ptr (-8)[ebp],216 +cmp dword ptr (-4)[ebp],0 +je L1589 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1589: +L1587: +mov dword ptr (-16)[ebp],5 +fld qword ptr (L416) +fstp qword ptr (-64)[ebp] +fild dword ptr (-16)[ebp] +fdiv qword ptr (-64)[ebp] +call __ftol +mov dword ptr (-16)[ebp],eax +cmp dword ptr (-16)[ebp],2 +je L1591 +mov dword ptr (-8)[ebp],217 +cmp dword ptr (-4)[ebp],0 +je L1593 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1593: +L1591: +mov dword ptr (-20)[ebp],5 +mov byte ptr (-25)[ebp],2 +mov eax,dword ptr (-20)[ebp] +movsx edi,byte ptr (-25)[ebp] +cdq +idiv edi +mov dword ptr (-20)[ebp],eax +cmp dword ptr (-20)[ebp],2 +je L1595 +mov dword ptr (-8)[ebp],218 +cmp dword ptr (-4)[ebp],0 +je L1597 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1597: +L1595: +mov dword ptr (-20)[ebp],5 +mov word ptr (-28)[ebp],2 +mov eax,dword ptr (-20)[ebp] +movsx edi,word ptr (-28)[ebp] +cdq +idiv edi +mov dword ptr (-20)[ebp],eax +cmp dword ptr (-20)[ebp],2 +je L1599 +mov dword ptr (-8)[ebp],219 +cmp dword ptr (-4)[ebp],0 +je L1601 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1601: +L1599: +mov dword ptr (-20)[ebp],5 +mov dword ptr (-32)[ebp],2 +mov eax,dword ptr (-20)[ebp] +mov edi,dword ptr (-32)[ebp] +cdq +idiv edi +mov dword ptr (-20)[ebp],eax +cmp dword ptr (-20)[ebp],2 +je L1603 +mov dword ptr (-8)[ebp],220 +cmp dword ptr (-4)[ebp],0 +je L1605 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1605: +L1603: +mov dword ptr (-20)[ebp],5 +mov dword ptr (-36)[ebp],2 +mov eax,dword ptr (-20)[ebp] +mov edi,dword ptr (-36)[ebp] +cdq +idiv edi +mov dword ptr (-20)[ebp],eax +cmp dword ptr (-20)[ebp],2 +je L1607 +mov dword ptr (-8)[ebp],221 +cmp dword ptr (-4)[ebp],0 +je L1609 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1609: +L1607: +mov dword ptr (-20)[ebp],5 +mov dword ptr (-40)[ebp],2 +mov edi,dword ptr (-20)[ebp] +mov eax,edi +mov edi,dword ptr (-40)[ebp] +xor edx,edx +div edi +mov edi,eax +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],2 +je L1611 +mov dword ptr (-8)[ebp],222 +cmp dword ptr (-4)[ebp],0 +je L1613 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1613: +L1611: +mov dword ptr (-20)[ebp],5 +fld dword ptr (L529) +fstp dword ptr (-56)[ebp] +mov edi,dword ptr (-20)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fdiv dword ptr (-56)[ebp] +call __ftol +mov dword ptr (-20)[ebp],eax +cmp dword ptr (-20)[ebp],2 +je L1615 +mov dword ptr (-8)[ebp],223 +cmp dword ptr (-4)[ebp],0 +je L1617 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1617: +L1615: +mov dword ptr (-20)[ebp],5 +fld qword ptr (L416) +fstp qword ptr (-64)[ebp] +fild dword ptr (-20)[ebp] +fdiv qword ptr (-64)[ebp] +call __ftol +mov dword ptr (-20)[ebp],eax +cmp dword ptr (-20)[ebp],2 +je L1619 +mov dword ptr (-8)[ebp],224 +cmp dword ptr (-4)[ebp],0 +je L1621 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1621: +L1619: +mov dword ptr (-24)[ebp],5 +mov byte ptr (-25)[ebp],2 +mov eax,dword ptr (-24)[ebp] +movsx edi,byte ptr (-25)[ebp] +xor edx,edx +div edi +mov dword ptr (-24)[ebp],eax +mov edi,dword ptr (-24)[ebp] +cmp edi,2 +je L1623 +mov dword ptr (-8)[ebp],225 +cmp dword ptr (-4)[ebp],0 +je L1625 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1625: +L1623: +mov dword ptr (-24)[ebp],5 +mov word ptr (-28)[ebp],2 +mov eax,dword ptr (-24)[ebp] +movsx edi,word ptr (-28)[ebp] +xor edx,edx +div edi +mov dword ptr (-24)[ebp],eax +mov edi,dword ptr (-24)[ebp] +cmp edi,2 +je L1627 +mov dword ptr (-8)[ebp],226 +cmp dword ptr (-4)[ebp],0 +je L1629 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1629: +L1627: +mov dword ptr (-24)[ebp],5 +mov dword ptr (-32)[ebp],2 +mov eax,dword ptr (-24)[ebp] +mov edi,dword ptr (-32)[ebp] +xor edx,edx +div edi +mov dword ptr (-24)[ebp],eax +mov edi,dword ptr (-24)[ebp] +cmp edi,2 +je L1631 +mov dword ptr (-8)[ebp],227 +cmp dword ptr (-4)[ebp],0 +je L1633 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1633: +L1631: +mov dword ptr (-24)[ebp],5 +mov dword ptr (-36)[ebp],2 +mov eax,dword ptr (-24)[ebp] +mov edi,dword ptr (-36)[ebp] +xor edx,edx +div edi +mov dword ptr (-24)[ebp],eax +mov edi,dword ptr (-24)[ebp] +cmp edi,2 +je L1635 +mov dword ptr (-8)[ebp],228 +cmp dword ptr (-4)[ebp],0 +je L1637 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1637: +L1635: +mov dword ptr (-24)[ebp],5 +mov dword ptr (-40)[ebp],2 +mov eax,dword ptr (-24)[ebp] +mov edi,dword ptr (-40)[ebp] +xor edx,edx +div edi +mov dword ptr (-24)[ebp],eax +mov edi,dword ptr (-24)[ebp] +cmp edi,2 +je L1639 +mov dword ptr (-8)[ebp],229 +cmp dword ptr (-4)[ebp],0 +je L1641 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1641: +L1639: +mov dword ptr (-24)[ebp],5 +fld dword ptr (L529) +fstp dword ptr (-56)[ebp] +mov edi,dword ptr (-24)[ebp] +fld qword ptr (L596) +mov esi,edi +shr esi,1 +push esi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +and edi,1 +push edi +fild dword ptr 0[esp] +add esp,4 +faddp st(1),st +sub esp,4 +fstp dword ptr 0[esp] +fld dword ptr 0[esp] +add esp,4 +fdiv dword ptr (-56)[ebp] +fstp dword ptr (-224)[ebp] +fld dword ptr (L828) +fcomp dword ptr (-224)[ebp] +fstsw ax +sahf +ja L1644 +fld dword ptr (-224)[ebp] +fsub dword ptr (L828) +call __ftol +mov edi,eax +lea edi,(080000000H)[edi] +mov dword ptr (-220)[ebp],edi +jmp L1645 +L1644: +fld dword ptr (-224)[ebp] +call __ftol +mov edi,eax +mov dword ptr (-220)[ebp],edi +L1645: +mov edi,dword ptr (-220)[ebp] +mov dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,2 +je L1646 +mov dword ptr (-8)[ebp],230 +cmp dword ptr (-4)[ebp],0 +je L1648 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1648: +L1646: +mov dword ptr (-24)[ebp],5 +fld qword ptr (L416) +fstp qword ptr (-64)[ebp] +mov edi,dword ptr (-24)[ebp] +fld qword ptr (L596) +mov esi,edi +shr esi,1 +push esi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +and edi,1 +push edi +fild dword ptr 0[esp] +add esp,4 +faddp st(1),st +fdiv qword ptr (-64)[ebp] +fstp qword ptr (-240)[ebp] +fld qword ptr (L836) +fcomp qword ptr (-240)[ebp] +fstsw ax +sahf +ja L1651 +fld qword ptr (-240)[ebp] +fsub qword ptr (L836) +call __ftol +mov edi,eax +lea edi,(080000000H)[edi] +mov dword ptr (-232)[ebp],edi +jmp L1652 +L1651: +fld qword ptr (-240)[ebp] +call __ftol +mov edi,eax +mov dword ptr (-232)[ebp],edi +L1652: +mov edi,dword ptr (-232)[ebp] +mov dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,2 +je L1653 +mov dword ptr (-8)[ebp],231 +cmp dword ptr (-4)[ebp],0 +je L1655 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1655: +L1653: +fld dword ptr (L841) +fstp dword ptr (-44)[ebp] +mov byte ptr (-25)[ebp],2 +fld dword ptr (-44)[ebp] +movsx edi,byte ptr (-25)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fdivp st(1),st +fstp dword ptr (-44)[ebp] +fld qword ptr (L1659) +fcomp dword ptr (-44)[ebp] +fstsw ax +sahf +je L1657 +mov dword ptr (-8)[ebp],232 +cmp dword ptr (-4)[ebp],0 +je L1660 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1660: +L1657: +fld dword ptr (L841) +fstp dword ptr (-44)[ebp] +mov word ptr (-28)[ebp],2 +fld dword ptr (-44)[ebp] +movsx edi,word ptr (-28)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fdivp st(1),st +fstp dword ptr (-44)[ebp] +fld qword ptr (L1659) +fcomp dword ptr (-44)[ebp] +fstsw ax +sahf +je L1662 +mov dword ptr (-8)[ebp],233 +cmp dword ptr (-4)[ebp],0 +je L1664 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1664: +L1662: +fld dword ptr (L841) +fstp dword ptr (-44)[ebp] +mov dword ptr (-32)[ebp],2 +fld dword ptr (-44)[ebp] +mov edi,dword ptr (-32)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fdivp st(1),st +fstp dword ptr (-44)[ebp] +fld qword ptr (L1659) +fcomp dword ptr (-44)[ebp] +fstsw ax +sahf +je L1666 +mov dword ptr (-8)[ebp],234 +cmp dword ptr (-4)[ebp],0 +je L1668 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1668: +L1666: +fld dword ptr (L841) +fstp dword ptr (-44)[ebp] +mov dword ptr (-36)[ebp],2 +fld dword ptr (-44)[ebp] +mov edi,dword ptr (-36)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fdivp st(1),st +fstp dword ptr (-44)[ebp] +fld qword ptr (L1659) +fcomp dword ptr (-44)[ebp] +fstsw ax +sahf +je L1670 +mov dword ptr (-8)[ebp],235 +cmp dword ptr (-4)[ebp],0 +je L1672 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1672: +L1670: +fld dword ptr (L841) +fstp dword ptr (-44)[ebp] +mov dword ptr (-40)[ebp],2 +mov edi,dword ptr (-40)[ebp] +fld dword ptr (-44)[ebp] +fld qword ptr (L596) +mov esi,edi +shr esi,1 +push esi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +and edi,1 +push edi +fild dword ptr 0[esp] +add esp,4 +faddp st(1),st +sub esp,4 +fstp dword ptr 0[esp] +fld dword ptr 0[esp] +add esp,4 +fdivp st(1),st +fstp dword ptr (-44)[ebp] +fld qword ptr (L1659) +fcomp dword ptr (-44)[ebp] +fstsw ax +sahf +je L1674 +mov dword ptr (-8)[ebp],236 +cmp dword ptr (-4)[ebp],0 +je L1676 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1676: +L1674: +fld dword ptr (L841) +fstp dword ptr (-44)[ebp] +fld dword ptr (L529) +fstp dword ptr (-56)[ebp] +fld dword ptr (-44)[ebp] +fdiv dword ptr (-56)[ebp] +fstp dword ptr (-44)[ebp] +fld qword ptr (L1659) +fcomp dword ptr (-44)[ebp] +fstsw ax +sahf +je L1678 +mov dword ptr (-8)[ebp],237 +cmp dword ptr (-4)[ebp],0 +je L1680 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1680: +L1678: +fld dword ptr (L841) +fstp dword ptr (-44)[ebp] +fld qword ptr (L416) +fstp qword ptr (-64)[ebp] +fld dword ptr (-44)[ebp] +fdiv qword ptr (-64)[ebp] +fstp dword ptr (-44)[ebp] +fld qword ptr (L1659) +fcomp dword ptr (-44)[ebp] +fstsw ax +sahf +je L1682 +mov dword ptr (-8)[ebp],238 +cmp dword ptr (-4)[ebp],0 +je L1684 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1684: +L1682: +fld qword ptr (L870) +fstp qword ptr (-52)[ebp] +mov byte ptr (-25)[ebp],2 +fld qword ptr (-52)[ebp] +movsx edi,byte ptr (-25)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fdivp st(1),st +fstp qword ptr (-52)[ebp] +fld qword ptr (L1659) +fcomp qword ptr (-52)[ebp] +fstsw ax +sahf +je L1686 +mov dword ptr (-8)[ebp],239 +cmp dword ptr (-4)[ebp],0 +je L1688 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1688: +L1686: +fld qword ptr (L870) +fstp qword ptr (-52)[ebp] +mov word ptr (-28)[ebp],2 +fld qword ptr (-52)[ebp] +movsx edi,word ptr (-28)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fdivp st(1),st +fstp qword ptr (-52)[ebp] +fld qword ptr (L1659) +fcomp qword ptr (-52)[ebp] +fstsw ax +sahf +je L1690 +mov dword ptr (-8)[ebp],240 +cmp dword ptr (-4)[ebp],0 +je L1692 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1692: +L1690: +fld qword ptr (L870) +fstp qword ptr (-52)[ebp] +mov dword ptr (-32)[ebp],2 +fld qword ptr (-52)[ebp] +fild dword ptr (-32)[ebp] +fdivp st(1),st +fstp qword ptr (-52)[ebp] +fld qword ptr (L1659) +fcomp qword ptr (-52)[ebp] +fstsw ax +sahf +je L1694 +mov dword ptr (-8)[ebp],241 +cmp dword ptr (-4)[ebp],0 +je L1696 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1696: +L1694: +fld qword ptr (L870) +fstp qword ptr (-52)[ebp] +mov dword ptr (-36)[ebp],2 +fld qword ptr (-52)[ebp] +fild dword ptr (-36)[ebp] +fdivp st(1),st +fstp qword ptr (-52)[ebp] +fld qword ptr (L1659) +fcomp qword ptr (-52)[ebp] +fstsw ax +sahf +je L1698 +mov dword ptr (-8)[ebp],242 +cmp dword ptr (-4)[ebp],0 +je L1700 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1700: +L1698: +fld qword ptr (L870) +fstp qword ptr (-52)[ebp] +mov dword ptr (-40)[ebp],2 +mov edi,dword ptr (-40)[ebp] +fld qword ptr (-52)[ebp] +fld qword ptr (L596) +mov esi,edi +shr esi,1 +push esi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +and edi,1 +push edi +fild dword ptr 0[esp] +add esp,4 +faddp st(1),st +fdivp st(1),st +fstp qword ptr (-52)[ebp] +fld qword ptr (L1659) +fcomp qword ptr (-52)[ebp] +fstsw ax +sahf +je L1702 +mov dword ptr (-8)[ebp],243 +cmp dword ptr (-4)[ebp],0 +je L1704 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1704: +L1702: +fld qword ptr (L870) +fstp qword ptr (-52)[ebp] +fld dword ptr (L529) +fstp dword ptr (-56)[ebp] +fld qword ptr (-52)[ebp] +fdiv dword ptr (-56)[ebp] +fstp qword ptr (-52)[ebp] +fld qword ptr (L1659) +fcomp qword ptr (-52)[ebp] +fstsw ax +sahf +je L1706 +mov dword ptr (-8)[ebp],244 +cmp dword ptr (-4)[ebp],0 +je L1708 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1708: +L1706: +fld qword ptr (L870) +fstp qword ptr (-52)[ebp] +fld qword ptr (L416) +fstp qword ptr (-64)[ebp] +fld qword ptr (-52)[ebp] +fdiv qword ptr (-64)[ebp] +fstp qword ptr (-52)[ebp] +fld qword ptr (L1659) +fcomp qword ptr (-52)[ebp] +fstsw ax +sahf +je L1710 +mov dword ptr (-8)[ebp],245 +cmp dword ptr (-4)[ebp],0 +je L1712 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1712: +L1710: +mov byte ptr (-9)[ebp],5 +mov byte ptr (-25)[ebp],2 +movsx eax,byte ptr (-9)[ebp] +movsx edi,byte ptr (-25)[ebp] +cdq +idiv edi +mov ebx,edx +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,1 +je L1714 +mov dword ptr (-8)[ebp],246 +cmp dword ptr (-4)[ebp],0 +je L1716 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1716: +L1714: +mov byte ptr (-9)[ebp],5 +mov word ptr (-28)[ebp],2 +movsx eax,byte ptr (-9)[ebp] +movsx edi,word ptr (-28)[ebp] +cdq +idiv edi +mov ebx,edx +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,1 +je L1718 +mov dword ptr (-8)[ebp],247 +cmp dword ptr (-4)[ebp],0 +je L1720 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1720: +L1718: +mov byte ptr (-9)[ebp],5 +mov dword ptr (-32)[ebp],2 +movsx eax,byte ptr (-9)[ebp] +mov edi,dword ptr (-32)[ebp] +cdq +idiv edi +mov ebx,edx +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,1 +je L1722 +mov dword ptr (-8)[ebp],248 +cmp dword ptr (-4)[ebp],0 +je L1724 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1724: +L1722: +mov byte ptr (-9)[ebp],5 +mov dword ptr (-36)[ebp],2 +movsx eax,byte ptr (-9)[ebp] +mov edi,dword ptr (-36)[ebp] +cdq +idiv edi +mov ebx,edx +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,1 +je L1726 +mov dword ptr (-8)[ebp],249 +cmp dword ptr (-4)[ebp],0 +je L1728 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1728: +L1726: +mov byte ptr (-9)[ebp],5 +mov dword ptr (-40)[ebp],2 +movsx edi,byte ptr (-9)[ebp] +mov eax,edi +mov edi,dword ptr (-40)[ebp] +xor edx,edx +div edi +mov edi,edx +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,1 +je L1730 +mov dword ptr (-8)[ebp],250 +cmp dword ptr (-4)[ebp],0 +je L1732 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1732: +L1730: +mov word ptr (-12)[ebp],5 +mov byte ptr (-25)[ebp],2 +movsx eax,word ptr (-12)[ebp] +movsx edi,byte ptr (-25)[ebp] +cdq +idiv edi +mov edi,edx +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,1 +je L1734 +mov dword ptr (-8)[ebp],251 +cmp dword ptr (-4)[ebp],0 +je L1736 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1736: +L1734: +mov word ptr (-12)[ebp],5 +mov word ptr (-28)[ebp],2 +movsx eax,word ptr (-12)[ebp] +movsx edi,word ptr (-28)[ebp] +cdq +idiv edi +mov edi,edx +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,1 +je L1738 +mov dword ptr (-8)[ebp],252 +cmp dword ptr (-4)[ebp],0 +je L1740 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1740: +L1738: +mov word ptr (-12)[ebp],5 +mov dword ptr (-32)[ebp],2 +movsx eax,word ptr (-12)[ebp] +mov edi,dword ptr (-32)[ebp] +cdq +idiv edi +mov edi,edx +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,1 +je L1742 +mov dword ptr (-8)[ebp],253 +cmp dword ptr (-4)[ebp],0 +je L1744 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1744: +L1742: +mov word ptr (-12)[ebp],5 +mov dword ptr (-36)[ebp],2 +movsx eax,word ptr (-12)[ebp] +mov edi,dword ptr (-36)[ebp] +cdq +idiv edi +mov edi,edx +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,1 +je L1746 +mov dword ptr (-8)[ebp],254 +cmp dword ptr (-4)[ebp],0 +je L1748 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1748: +L1746: +mov word ptr (-12)[ebp],5 +mov dword ptr (-40)[ebp],2 +movsx edi,word ptr (-12)[ebp] +mov eax,edi +mov edi,dword ptr (-40)[ebp] +xor edx,edx +div edi +mov edi,edx +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,1 +je L1750 +mov dword ptr (-8)[ebp],255 +cmp dword ptr (-4)[ebp],0 +je L1752 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1752: +L1750: +mov dword ptr (-16)[ebp],5 +mov byte ptr (-25)[ebp],2 +mov eax,dword ptr (-16)[ebp] +movsx edi,byte ptr (-25)[ebp] +cdq +idiv edi +mov dword ptr (-16)[ebp],edx +cmp dword ptr (-16)[ebp],1 +je L1754 +mov dword ptr (-8)[ebp],256 +cmp dword ptr (-4)[ebp],0 +je L1756 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1756: +L1754: +mov dword ptr (-16)[ebp],5 +mov word ptr (-28)[ebp],2 +mov eax,dword ptr (-16)[ebp] +movsx edi,word ptr (-28)[ebp] +cdq +idiv edi +mov dword ptr (-16)[ebp],edx +cmp dword ptr (-16)[ebp],1 +je L1758 +mov dword ptr (-8)[ebp],257 +cmp dword ptr (-4)[ebp],0 +je L1760 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1760: +L1758: +mov dword ptr (-16)[ebp],5 +mov dword ptr (-32)[ebp],2 +mov eax,dword ptr (-16)[ebp] +mov edi,dword ptr (-32)[ebp] +cdq +idiv edi +mov dword ptr (-16)[ebp],edx +cmp dword ptr (-16)[ebp],1 +je L1762 +mov dword ptr (-8)[ebp],258 +cmp dword ptr (-4)[ebp],0 +je L1764 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1764: +L1762: +mov dword ptr (-16)[ebp],5 +mov dword ptr (-36)[ebp],2 +mov eax,dword ptr (-16)[ebp] +mov edi,dword ptr (-36)[ebp] +cdq +idiv edi +mov dword ptr (-16)[ebp],edx +cmp dword ptr (-16)[ebp],1 +je L1766 +mov dword ptr (-8)[ebp],259 +cmp dword ptr (-4)[ebp],0 +je L1768 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1768: +L1766: +mov dword ptr (-16)[ebp],5 +mov dword ptr (-40)[ebp],2 +mov edi,dword ptr (-16)[ebp] +mov eax,edi +mov edi,dword ptr (-40)[ebp] +xor edx,edx +div edi +mov edi,edx +mov dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],1 +je L1770 +mov dword ptr (-8)[ebp],260 +cmp dword ptr (-4)[ebp],0 +je L1772 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1772: +L1770: +mov dword ptr (-20)[ebp],5 +mov byte ptr (-25)[ebp],2 +mov eax,dword ptr (-20)[ebp] +movsx edi,byte ptr (-25)[ebp] +cdq +idiv edi +mov dword ptr (-20)[ebp],edx +cmp dword ptr (-20)[ebp],1 +je L1774 +mov dword ptr (-8)[ebp],261 +cmp dword ptr (-4)[ebp],0 +je L1776 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1776: +L1774: +mov dword ptr (-20)[ebp],5 +mov word ptr (-28)[ebp],2 +mov eax,dword ptr (-20)[ebp] +movsx edi,word ptr (-28)[ebp] +cdq +idiv edi +mov dword ptr (-20)[ebp],edx +cmp dword ptr (-20)[ebp],1 +je L1778 +mov dword ptr (-8)[ebp],262 +cmp dword ptr (-4)[ebp],0 +je L1780 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1780: +L1778: +mov dword ptr (-20)[ebp],5 +mov dword ptr (-32)[ebp],2 +mov eax,dword ptr (-20)[ebp] +mov edi,dword ptr (-32)[ebp] +cdq +idiv edi +mov dword ptr (-20)[ebp],edx +cmp dword ptr (-20)[ebp],1 +je L1782 +mov dword ptr (-8)[ebp],263 +cmp dword ptr (-4)[ebp],0 +je L1784 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1784: +L1782: +mov dword ptr (-20)[ebp],5 +mov dword ptr (-36)[ebp],2 +mov eax,dword ptr (-20)[ebp] +mov edi,dword ptr (-36)[ebp] +cdq +idiv edi +mov dword ptr (-20)[ebp],edx +cmp dword ptr (-20)[ebp],1 +je L1786 +mov dword ptr (-8)[ebp],264 +cmp dword ptr (-4)[ebp],0 +je L1788 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1788: +L1786: +mov dword ptr (-20)[ebp],5 +mov dword ptr (-40)[ebp],2 +mov edi,dword ptr (-20)[ebp] +mov eax,edi +mov edi,dword ptr (-40)[ebp] +xor edx,edx +div edi +mov edi,edx +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],1 +je L1790 +mov dword ptr (-8)[ebp],265 +cmp dword ptr (-4)[ebp],0 +je L1792 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1792: +L1790: +mov dword ptr (-24)[ebp],5 +mov byte ptr (-25)[ebp],2 +mov eax,dword ptr (-24)[ebp] +movsx edi,byte ptr (-25)[ebp] +xor edx,edx +div edi +mov dword ptr (-24)[ebp],edx +mov edi,dword ptr (-24)[ebp] +cmp edi,1 +je L1794 +mov dword ptr (-8)[ebp],266 +cmp dword ptr (-4)[ebp],0 +je L1796 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1796: +L1794: +mov dword ptr (-24)[ebp],5 +mov word ptr (-28)[ebp],2 +mov eax,dword ptr (-24)[ebp] +movsx edi,word ptr (-28)[ebp] +xor edx,edx +div edi +mov dword ptr (-24)[ebp],edx +mov edi,dword ptr (-24)[ebp] +cmp edi,1 +je L1798 +mov dword ptr (-8)[ebp],267 +cmp dword ptr (-4)[ebp],0 +je L1800 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1800: +L1798: +mov dword ptr (-24)[ebp],5 +mov dword ptr (-32)[ebp],2 +mov eax,dword ptr (-24)[ebp] +mov edi,dword ptr (-32)[ebp] +xor edx,edx +div edi +mov dword ptr (-24)[ebp],edx +mov edi,dword ptr (-24)[ebp] +cmp edi,1 +je L1802 +mov dword ptr (-8)[ebp],268 +cmp dword ptr (-4)[ebp],0 +je L1804 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1804: +L1802: +mov dword ptr (-24)[ebp],5 +mov dword ptr (-36)[ebp],2 +mov eax,dword ptr (-24)[ebp] +mov edi,dword ptr (-36)[ebp] +xor edx,edx +div edi +mov dword ptr (-24)[ebp],edx +mov edi,dword ptr (-24)[ebp] +cmp edi,1 +je L1806 +mov dword ptr (-8)[ebp],269 +cmp dword ptr (-4)[ebp],0 +je L1808 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1808: +L1806: +mov dword ptr (-24)[ebp],5 +mov dword ptr (-40)[ebp],2 +mov eax,dword ptr (-24)[ebp] +mov edi,dword ptr (-40)[ebp] +xor edx,edx +div edi +mov dword ptr (-24)[ebp],edx +mov edi,dword ptr (-24)[ebp] +cmp edi,1 +je L1810 +mov dword ptr (-8)[ebp],270 +cmp dword ptr (-4)[ebp],0 +je L1812 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1812: +L1810: +mov byte ptr (-9)[ebp],5 +mov byte ptr (-25)[ebp],2 +movsx edi,byte ptr (-9)[ebp] +movsx esi,byte ptr (-25)[ebp] +mov ecx,esi +sar edi,cl +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,1 +je L1814 +mov dword ptr (-8)[ebp],271 +cmp dword ptr (-4)[ebp],0 +je L1816 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1816: +L1814: +mov byte ptr (-9)[ebp],5 +mov word ptr (-28)[ebp],2 +movsx edi,byte ptr (-9)[ebp] +movsx esi,word ptr (-28)[ebp] +mov ecx,esi +sar edi,cl +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,1 +je L1818 +mov dword ptr (-8)[ebp],272 +cmp dword ptr (-4)[ebp],0 +je L1820 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1820: +L1818: +mov byte ptr (-9)[ebp],5 +mov dword ptr (-32)[ebp],2 +movsx edi,byte ptr (-9)[ebp] +mov esi,dword ptr (-32)[ebp] +mov ecx,esi +sar edi,cl +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,1 +je L1822 +mov dword ptr (-8)[ebp],273 +cmp dword ptr (-4)[ebp],0 +je L1824 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1824: +L1822: +mov byte ptr (-9)[ebp],5 +mov dword ptr (-36)[ebp],2 +movsx edi,byte ptr (-9)[ebp] +mov esi,dword ptr (-36)[ebp] +mov ecx,esi +sar edi,cl +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,1 +je L1826 +mov dword ptr (-8)[ebp],274 +cmp dword ptr (-4)[ebp],0 +je L1828 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1828: +L1826: +mov byte ptr (-9)[ebp],5 +mov dword ptr (-40)[ebp],2 +movsx edi,byte ptr (-9)[ebp] +mov esi,dword ptr (-40)[ebp] +mov ecx,esi +sar edi,cl +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,1 +je L1830 +mov dword ptr (-8)[ebp],275 +cmp dword ptr (-4)[ebp],0 +je L1832 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1832: +L1830: +mov word ptr (-12)[ebp],5 +mov byte ptr (-25)[ebp],2 +movsx edi,word ptr (-12)[ebp] +movsx esi,byte ptr (-25)[ebp] +mov ecx,esi +sar edi,cl +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,1 +je L1834 +mov dword ptr (-8)[ebp],276 +cmp dword ptr (-4)[ebp],0 +je L1836 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1836: +L1834: +mov word ptr (-12)[ebp],5 +mov word ptr (-28)[ebp],2 +movsx edi,word ptr (-12)[ebp] +movsx esi,word ptr (-28)[ebp] +mov ecx,esi +sar edi,cl +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,1 +je L1838 +mov dword ptr (-8)[ebp],277 +cmp dword ptr (-4)[ebp],0 +je L1840 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1840: +L1838: +mov word ptr (-12)[ebp],5 +mov dword ptr (-32)[ebp],2 +movsx edi,word ptr (-12)[ebp] +mov esi,dword ptr (-32)[ebp] +mov ecx,esi +sar edi,cl +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,1 +je L1842 +mov dword ptr (-8)[ebp],278 +cmp dword ptr (-4)[ebp],0 +je L1844 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1844: +L1842: +mov word ptr (-12)[ebp],5 +mov dword ptr (-36)[ebp],2 +movsx edi,word ptr (-12)[ebp] +mov esi,dword ptr (-36)[ebp] +mov ecx,esi +sar edi,cl +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,1 +je L1846 +mov dword ptr (-8)[ebp],279 +cmp dword ptr (-4)[ebp],0 +je L1848 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1848: +L1846: +mov word ptr (-12)[ebp],5 +mov dword ptr (-40)[ebp],2 +movsx edi,word ptr (-12)[ebp] +mov esi,dword ptr (-40)[ebp] +mov ecx,esi +sar edi,cl +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,1 +je L1850 +mov dword ptr (-8)[ebp],280 +cmp dword ptr (-4)[ebp],0 +je L1852 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1852: +L1850: +mov dword ptr (-16)[ebp],5 +mov byte ptr (-25)[ebp],2 +mov edi,dword ptr (-16)[ebp] +movsx esi,byte ptr (-25)[ebp] +mov ecx,esi +sar edi,cl +mov dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],1 +je L1854 +mov dword ptr (-8)[ebp],281 +cmp dword ptr (-4)[ebp],0 +je L1856 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1856: +L1854: +mov dword ptr (-16)[ebp],5 +mov word ptr (-28)[ebp],2 +mov edi,dword ptr (-16)[ebp] +movsx esi,word ptr (-28)[ebp] +mov ecx,esi +sar edi,cl +mov dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],1 +je L1858 +mov dword ptr (-8)[ebp],282 +cmp dword ptr (-4)[ebp],0 +je L1860 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1860: +L1858: +mov dword ptr (-16)[ebp],5 +mov dword ptr (-32)[ebp],2 +mov edi,dword ptr (-16)[ebp] +mov esi,dword ptr (-32)[ebp] +mov ecx,esi +sar edi,cl +mov dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],1 +je L1862 +mov dword ptr (-8)[ebp],283 +cmp dword ptr (-4)[ebp],0 +je L1864 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1864: +L1862: +mov dword ptr (-16)[ebp],5 +mov dword ptr (-36)[ebp],2 +mov edi,dword ptr (-16)[ebp] +mov esi,dword ptr (-36)[ebp] +mov ecx,esi +sar edi,cl +mov dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],1 +je L1866 +mov dword ptr (-8)[ebp],284 +cmp dword ptr (-4)[ebp],0 +je L1868 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1868: +L1866: +mov dword ptr (-16)[ebp],5 +mov dword ptr (-40)[ebp],2 +mov edi,dword ptr (-16)[ebp] +mov esi,dword ptr (-40)[ebp] +mov ecx,esi +sar edi,cl +mov dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],1 +je L1870 +mov dword ptr (-8)[ebp],285 +cmp dword ptr (-4)[ebp],0 +je L1872 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1872: +L1870: +mov dword ptr (-20)[ebp],5 +mov byte ptr (-25)[ebp],2 +mov edi,dword ptr (-20)[ebp] +movsx esi,byte ptr (-25)[ebp] +mov ecx,esi +sar edi,cl +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],1 +je L1874 +mov dword ptr (-8)[ebp],286 +cmp dword ptr (-4)[ebp],0 +je L1876 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1876: +L1874: +mov dword ptr (-20)[ebp],5 +mov word ptr (-28)[ebp],2 +mov edi,dword ptr (-20)[ebp] +movsx esi,word ptr (-28)[ebp] +mov ecx,esi +sar edi,cl +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],1 +je L1878 +mov dword ptr (-8)[ebp],287 +cmp dword ptr (-4)[ebp],0 +je L1880 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1880: +L1878: +mov dword ptr (-20)[ebp],5 +mov dword ptr (-32)[ebp],2 +mov edi,dword ptr (-20)[ebp] +mov esi,dword ptr (-32)[ebp] +mov ecx,esi +sar edi,cl +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],1 +je L1882 +mov dword ptr (-8)[ebp],288 +cmp dword ptr (-4)[ebp],0 +je L1884 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1884: +L1882: +mov dword ptr (-20)[ebp],5 +mov dword ptr (-36)[ebp],2 +mov edi,dword ptr (-20)[ebp] +mov esi,dword ptr (-36)[ebp] +mov ecx,esi +sar edi,cl +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],1 +je L1886 +mov dword ptr (-8)[ebp],289 +cmp dword ptr (-4)[ebp],0 +je L1888 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1888: +L1886: +mov dword ptr (-20)[ebp],5 +mov dword ptr (-40)[ebp],2 +mov edi,dword ptr (-20)[ebp] +mov esi,dword ptr (-40)[ebp] +mov ecx,esi +sar edi,cl +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],1 +je L1890 +mov dword ptr (-8)[ebp],290 +cmp dword ptr (-4)[ebp],0 +je L1892 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1892: +L1890: +mov dword ptr (-24)[ebp],5 +mov byte ptr (-25)[ebp],2 +mov edi,dword ptr (-24)[ebp] +movsx esi,byte ptr (-25)[ebp] +mov ecx,esi +shr edi,cl +mov dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,1 +je L1894 +mov dword ptr (-8)[ebp],291 +cmp dword ptr (-4)[ebp],0 +je L1896 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1896: +L1894: +mov dword ptr (-24)[ebp],5 +mov word ptr (-28)[ebp],2 +mov edi,dword ptr (-24)[ebp] +movsx esi,word ptr (-28)[ebp] +mov ecx,esi +shr edi,cl +mov dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,1 +je L1898 +mov dword ptr (-8)[ebp],292 +cmp dword ptr (-4)[ebp],0 +je L1900 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1900: +L1898: +mov dword ptr (-24)[ebp],5 +mov dword ptr (-32)[ebp],2 +mov edi,dword ptr (-24)[ebp] +mov esi,dword ptr (-32)[ebp] +mov ecx,esi +shr edi,cl +mov dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,1 +je L1902 +mov dword ptr (-8)[ebp],293 +cmp dword ptr (-4)[ebp],0 +je L1904 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1904: +L1902: +mov dword ptr (-24)[ebp],5 +mov dword ptr (-36)[ebp],2 +mov edi,dword ptr (-24)[ebp] +mov esi,dword ptr (-36)[ebp] +mov ecx,esi +shr edi,cl +mov dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,1 +je L1906 +mov dword ptr (-8)[ebp],294 +cmp dword ptr (-4)[ebp],0 +je L1908 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1908: +L1906: +mov dword ptr (-24)[ebp],5 +mov dword ptr (-40)[ebp],2 +mov edi,dword ptr (-24)[ebp] +mov esi,dword ptr (-40)[ebp] +mov ecx,esi +shr edi,cl +mov dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,1 +je L1910 +mov dword ptr (-8)[ebp],295 +cmp dword ptr (-4)[ebp],0 +je L1912 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1912: +L1910: +mov byte ptr (-9)[ebp],5 +mov byte ptr (-25)[ebp],2 +movsx edi,byte ptr (-9)[ebp] +movsx esi,byte ptr (-25)[ebp] +mov ecx,esi +sal edi,cl +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,20 +je L1914 +mov dword ptr (-8)[ebp],296 +cmp dword ptr (-4)[ebp],0 +je L1916 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1916: +L1914: +mov byte ptr (-9)[ebp],5 +mov word ptr (-28)[ebp],2 +movsx edi,byte ptr (-9)[ebp] +movsx esi,word ptr (-28)[ebp] +mov ecx,esi +sal edi,cl +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,20 +je L1918 +mov dword ptr (-8)[ebp],297 +cmp dword ptr (-4)[ebp],0 +je L1920 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1920: +L1918: +mov byte ptr (-9)[ebp],5 +mov dword ptr (-32)[ebp],2 +movsx edi,byte ptr (-9)[ebp] +mov esi,dword ptr (-32)[ebp] +mov ecx,esi +sal edi,cl +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,20 +je L1922 +mov dword ptr (-8)[ebp],298 +cmp dword ptr (-4)[ebp],0 +je L1924 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1924: +L1922: +mov byte ptr (-9)[ebp],5 +mov dword ptr (-36)[ebp],2 +movsx edi,byte ptr (-9)[ebp] +mov esi,dword ptr (-36)[ebp] +mov ecx,esi +sal edi,cl +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,20 +je L1926 +mov dword ptr (-8)[ebp],299 +cmp dword ptr (-4)[ebp],0 +je L1928 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1928: +L1926: +mov byte ptr (-9)[ebp],5 +mov dword ptr (-40)[ebp],2 +movsx edi,byte ptr (-9)[ebp] +mov esi,dword ptr (-40)[ebp] +mov ecx,esi +sal edi,cl +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,20 +je L1930 +mov dword ptr (-8)[ebp],300 +cmp dword ptr (-4)[ebp],0 +je L1932 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1932: +L1930: +mov word ptr (-12)[ebp],5 +mov byte ptr (-25)[ebp],2 +movsx edi,word ptr (-12)[ebp] +movsx esi,byte ptr (-25)[ebp] +mov ecx,esi +sal edi,cl +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,20 +je L1934 +mov dword ptr (-8)[ebp],301 +cmp dword ptr (-4)[ebp],0 +je L1936 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1936: +L1934: +mov word ptr (-12)[ebp],5 +mov word ptr (-28)[ebp],2 +movsx edi,word ptr (-12)[ebp] +movsx esi,word ptr (-28)[ebp] +mov ecx,esi +sal edi,cl +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,20 +je L1938 +mov dword ptr (-8)[ebp],302 +cmp dword ptr (-4)[ebp],0 +je L1940 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1940: +L1938: +mov word ptr (-12)[ebp],5 +mov dword ptr (-32)[ebp],2 +movsx edi,word ptr (-12)[ebp] +mov esi,dword ptr (-32)[ebp] +mov ecx,esi +sal edi,cl +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,20 +je L1942 +mov dword ptr (-8)[ebp],303 +cmp dword ptr (-4)[ebp],0 +je L1944 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1944: +L1942: +mov word ptr (-12)[ebp],5 +mov dword ptr (-36)[ebp],2 +movsx edi,word ptr (-12)[ebp] +mov esi,dword ptr (-36)[ebp] +mov ecx,esi +sal edi,cl +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,20 +je L1946 +mov dword ptr (-8)[ebp],304 +cmp dword ptr (-4)[ebp],0 +je L1948 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1948: +L1946: +mov word ptr (-12)[ebp],5 +mov dword ptr (-40)[ebp],2 +movsx edi,word ptr (-12)[ebp] +mov esi,dword ptr (-40)[ebp] +mov ecx,esi +sal edi,cl +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,20 +je L1950 +mov dword ptr (-8)[ebp],305 +cmp dword ptr (-4)[ebp],0 +je L1952 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1952: +L1950: +mov dword ptr (-16)[ebp],5 +mov byte ptr (-25)[ebp],2 +mov edi,dword ptr (-16)[ebp] +movsx esi,byte ptr (-25)[ebp] +mov ecx,esi +sal edi,cl +mov dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],20 +je L1954 +mov dword ptr (-8)[ebp],306 +cmp dword ptr (-4)[ebp],0 +je L1956 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1956: +L1954: +mov dword ptr (-16)[ebp],5 +mov word ptr (-28)[ebp],2 +mov edi,dword ptr (-16)[ebp] +movsx esi,word ptr (-28)[ebp] +mov ecx,esi +sal edi,cl +mov dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],20 +je L1958 +mov dword ptr (-8)[ebp],307 +cmp dword ptr (-4)[ebp],0 +je L1960 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1960: +L1958: +mov dword ptr (-16)[ebp],5 +mov dword ptr (-32)[ebp],2 +mov edi,dword ptr (-16)[ebp] +mov esi,dword ptr (-32)[ebp] +mov ecx,esi +sal edi,cl +mov dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],20 +je L1962 +mov dword ptr (-8)[ebp],308 +cmp dword ptr (-4)[ebp],0 +je L1964 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1964: +L1962: +mov dword ptr (-16)[ebp],5 +mov dword ptr (-36)[ebp],2 +mov edi,dword ptr (-16)[ebp] +mov esi,dword ptr (-36)[ebp] +mov ecx,esi +sal edi,cl +mov dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],20 +je L1966 +mov dword ptr (-8)[ebp],309 +cmp dword ptr (-4)[ebp],0 +je L1968 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1968: +L1966: +mov dword ptr (-16)[ebp],5 +mov dword ptr (-40)[ebp],2 +mov edi,dword ptr (-16)[ebp] +mov esi,dword ptr (-40)[ebp] +mov ecx,esi +sal edi,cl +mov dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],20 +je L1970 +mov dword ptr (-8)[ebp],310 +cmp dword ptr (-4)[ebp],0 +je L1972 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1972: +L1970: +mov dword ptr (-20)[ebp],5 +mov byte ptr (-25)[ebp],2 +mov edi,dword ptr (-20)[ebp] +movsx esi,byte ptr (-25)[ebp] +mov ecx,esi +sal edi,cl +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],20 +je L1974 +mov dword ptr (-8)[ebp],311 +cmp dword ptr (-4)[ebp],0 +je L1976 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1976: +L1974: +mov dword ptr (-20)[ebp],5 +mov word ptr (-28)[ebp],2 +mov edi,dword ptr (-20)[ebp] +movsx esi,word ptr (-28)[ebp] +mov ecx,esi +sal edi,cl +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],20 +je L1978 +mov dword ptr (-8)[ebp],312 +cmp dword ptr (-4)[ebp],0 +je L1980 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1980: +L1978: +mov dword ptr (-20)[ebp],5 +mov dword ptr (-32)[ebp],2 +mov edi,dword ptr (-20)[ebp] +mov esi,dword ptr (-32)[ebp] +mov ecx,esi +sal edi,cl +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],20 +je L1982 +mov dword ptr (-8)[ebp],313 +cmp dword ptr (-4)[ebp],0 +je L1984 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1984: +L1982: +mov dword ptr (-20)[ebp],5 +mov dword ptr (-36)[ebp],2 +mov edi,dword ptr (-20)[ebp] +mov esi,dword ptr (-36)[ebp] +mov ecx,esi +sal edi,cl +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],20 +je L1986 +mov dword ptr (-8)[ebp],314 +cmp dword ptr (-4)[ebp],0 +je L1988 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1988: +L1986: +mov dword ptr (-20)[ebp],5 +mov dword ptr (-40)[ebp],2 +mov edi,dword ptr (-20)[ebp] +mov esi,dword ptr (-40)[ebp] +mov ecx,esi +sal edi,cl +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],20 +je L1990 +mov dword ptr (-8)[ebp],315 +cmp dword ptr (-4)[ebp],0 +je L1992 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1992: +L1990: +mov dword ptr (-24)[ebp],5 +mov byte ptr (-25)[ebp],2 +mov edi,dword ptr (-24)[ebp] +movsx esi,byte ptr (-25)[ebp] +mov ecx,esi +shl edi,cl +mov dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,20 +je L1994 +mov dword ptr (-8)[ebp],316 +cmp dword ptr (-4)[ebp],0 +je L1996 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L1996: +L1994: +mov dword ptr (-24)[ebp],5 +mov word ptr (-28)[ebp],2 +mov edi,dword ptr (-24)[ebp] +movsx esi,word ptr (-28)[ebp] +mov ecx,esi +shl edi,cl +mov dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,20 +je L1998 +mov dword ptr (-8)[ebp],317 +cmp dword ptr (-4)[ebp],0 +je L2000 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2000: +L1998: +mov dword ptr (-24)[ebp],5 +mov dword ptr (-32)[ebp],2 +mov edi,dword ptr (-24)[ebp] +mov esi,dword ptr (-32)[ebp] +mov ecx,esi +shl edi,cl +mov dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,20 +je L2002 +mov dword ptr (-8)[ebp],318 +cmp dword ptr (-4)[ebp],0 +je L2004 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2004: +L2002: +mov dword ptr (-24)[ebp],5 +mov dword ptr (-36)[ebp],2 +mov edi,dword ptr (-24)[ebp] +mov esi,dword ptr (-36)[ebp] +mov ecx,esi +shl edi,cl +mov dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,20 +je L2006 +mov dword ptr (-8)[ebp],319 +cmp dword ptr (-4)[ebp],0 +je L2008 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2008: +L2006: +mov dword ptr (-24)[ebp],5 +mov dword ptr (-40)[ebp],2 +mov edi,dword ptr (-24)[ebp] +mov esi,dword ptr (-40)[ebp] +mov ecx,esi +shl edi,cl +mov dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,20 +je L2010 +mov dword ptr (-8)[ebp],320 +cmp dword ptr (-4)[ebp],0 +je L2012 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2012: +L2010: +mov byte ptr (-9)[ebp],12 +mov byte ptr (-25)[ebp],10 +movsx edi,byte ptr (-9)[ebp] +movsx esi,byte ptr (-25)[ebp] +and edi,esi +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,8 +je L2014 +mov dword ptr (-8)[ebp],321 +cmp dword ptr (-4)[ebp],0 +je L2016 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2016: +L2014: +mov byte ptr (-9)[ebp],12 +mov word ptr (-28)[ebp],10 +movsx edi,byte ptr (-9)[ebp] +movsx esi,word ptr (-28)[ebp] +and edi,esi +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,8 +je L2018 +mov dword ptr (-8)[ebp],322 +cmp dword ptr (-4)[ebp],0 +je L2020 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2020: +L2018: +mov byte ptr (-9)[ebp],12 +mov dword ptr (-32)[ebp],10 +movsx edi,byte ptr (-9)[ebp] +and edi,dword ptr (-32)[ebp] +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,8 +je L2022 +mov dword ptr (-8)[ebp],323 +cmp dword ptr (-4)[ebp],0 +je L2024 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2024: +L2022: +mov byte ptr (-9)[ebp],12 +mov dword ptr (-36)[ebp],10 +movsx edi,byte ptr (-9)[ebp] +and edi,dword ptr (-36)[ebp] +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,8 +je L2026 +mov dword ptr (-8)[ebp],324 +cmp dword ptr (-4)[ebp],0 +je L2028 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2028: +L2026: +mov byte ptr (-9)[ebp],12 +mov dword ptr (-40)[ebp],10 +movsx edi,byte ptr (-9)[ebp] +and edi,dword ptr (-40)[ebp] +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,8 +je L2030 +mov dword ptr (-8)[ebp],325 +cmp dword ptr (-4)[ebp],0 +je L2032 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2032: +L2030: +mov word ptr (-12)[ebp],12 +mov byte ptr (-25)[ebp],10 +movsx edi,word ptr (-12)[ebp] +movsx esi,byte ptr (-25)[ebp] +and edi,esi +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,8 +je L2034 +mov dword ptr (-8)[ebp],326 +cmp dword ptr (-4)[ebp],0 +je L2036 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2036: +L2034: +mov word ptr (-12)[ebp],12 +mov word ptr (-28)[ebp],10 +movsx edi,word ptr (-12)[ebp] +movsx esi,word ptr (-28)[ebp] +and edi,esi +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,8 +je L2038 +mov dword ptr (-8)[ebp],327 +cmp dword ptr (-4)[ebp],0 +je L2040 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2040: +L2038: +mov word ptr (-12)[ebp],12 +mov dword ptr (-32)[ebp],10 +movsx edi,word ptr (-12)[ebp] +and edi,dword ptr (-32)[ebp] +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,8 +je L2042 +mov dword ptr (-8)[ebp],328 +cmp dword ptr (-4)[ebp],0 +je L2044 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2044: +L2042: +mov word ptr (-12)[ebp],12 +mov dword ptr (-36)[ebp],10 +movsx edi,word ptr (-12)[ebp] +and edi,dword ptr (-36)[ebp] +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,8 +je L2046 +mov dword ptr (-8)[ebp],329 +cmp dword ptr (-4)[ebp],0 +je L2048 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2048: +L2046: +mov word ptr (-12)[ebp],12 +mov dword ptr (-40)[ebp],10 +movsx edi,word ptr (-12)[ebp] +and edi,dword ptr (-40)[ebp] +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,8 +je L2050 +mov dword ptr (-8)[ebp],330 +cmp dword ptr (-4)[ebp],0 +je L2052 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2052: +L2050: +mov dword ptr (-16)[ebp],12 +mov byte ptr (-25)[ebp],10 +movsx edi,byte ptr (-25)[ebp] +and dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],8 +je L2054 +mov dword ptr (-8)[ebp],331 +cmp dword ptr (-4)[ebp],0 +je L2056 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2056: +L2054: +mov dword ptr (-16)[ebp],12 +mov word ptr (-28)[ebp],10 +movsx edi,word ptr (-28)[ebp] +and dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],8 +je L2058 +mov dword ptr (-8)[ebp],332 +cmp dword ptr (-4)[ebp],0 +je L2060 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2060: +L2058: +mov dword ptr (-16)[ebp],12 +mov dword ptr (-32)[ebp],10 +mov edi,dword ptr (-32)[ebp] +and dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],8 +je L2062 +mov dword ptr (-8)[ebp],333 +cmp dword ptr (-4)[ebp],0 +je L2064 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2064: +L2062: +mov dword ptr (-16)[ebp],12 +mov dword ptr (-36)[ebp],10 +mov edi,dword ptr (-36)[ebp] +and dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],8 +je L2066 +mov dword ptr (-8)[ebp],334 +cmp dword ptr (-4)[ebp],0 +je L2068 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2068: +L2066: +mov dword ptr (-16)[ebp],12 +mov dword ptr (-40)[ebp],10 +mov edi,dword ptr (-16)[ebp] +and edi,dword ptr (-40)[ebp] +mov dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],8 +je L2070 +mov dword ptr (-8)[ebp],335 +cmp dword ptr (-4)[ebp],0 +je L2072 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2072: +L2070: +mov dword ptr (-20)[ebp],12 +mov byte ptr (-25)[ebp],10 +movsx edi,byte ptr (-25)[ebp] +and dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],8 +je L2074 +mov dword ptr (-8)[ebp],336 +cmp dword ptr (-4)[ebp],0 +je L2076 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2076: +L2074: +mov dword ptr (-20)[ebp],12 +mov word ptr (-28)[ebp],10 +movsx edi,word ptr (-28)[ebp] +and dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],8 +je L2078 +mov dword ptr (-8)[ebp],337 +cmp dword ptr (-4)[ebp],0 +je L2080 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2080: +L2078: +mov dword ptr (-20)[ebp],12 +mov dword ptr (-32)[ebp],10 +mov edi,dword ptr (-32)[ebp] +and dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],8 +je L2082 +mov dword ptr (-8)[ebp],338 +cmp dword ptr (-4)[ebp],0 +je L2084 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2084: +L2082: +mov dword ptr (-20)[ebp],12 +mov dword ptr (-36)[ebp],10 +mov edi,dword ptr (-36)[ebp] +and dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],8 +je L2086 +mov dword ptr (-8)[ebp],339 +cmp dword ptr (-4)[ebp],0 +je L2088 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2088: +L2086: +mov dword ptr (-20)[ebp],12 +mov dword ptr (-40)[ebp],10 +mov edi,dword ptr (-20)[ebp] +and edi,dword ptr (-40)[ebp] +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],8 +je L2090 +mov dword ptr (-8)[ebp],340 +cmp dword ptr (-4)[ebp],0 +je L2092 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2092: +L2090: +mov dword ptr (-24)[ebp],12 +mov byte ptr (-25)[ebp],10 +movsx edi,byte ptr (-25)[ebp] +and dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,8 +je L2094 +mov dword ptr (-8)[ebp],341 +cmp dword ptr (-4)[ebp],0 +je L2096 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2096: +L2094: +mov dword ptr (-24)[ebp],12 +mov word ptr (-28)[ebp],10 +movsx edi,word ptr (-28)[ebp] +and dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,8 +je L2098 +mov dword ptr (-8)[ebp],342 +cmp dword ptr (-4)[ebp],0 +je L2100 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2100: +L2098: +mov dword ptr (-24)[ebp],12 +mov dword ptr (-32)[ebp],10 +mov edi,dword ptr (-32)[ebp] +and dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,8 +je L2102 +mov dword ptr (-8)[ebp],343 +cmp dword ptr (-4)[ebp],0 +je L2104 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2104: +L2102: +mov dword ptr (-24)[ebp],12 +mov dword ptr (-36)[ebp],10 +mov edi,dword ptr (-36)[ebp] +and dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,8 +je L2106 +mov dword ptr (-8)[ebp],344 +cmp dword ptr (-4)[ebp],0 +je L2108 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2108: +L2106: +mov dword ptr (-24)[ebp],12 +mov dword ptr (-40)[ebp],10 +mov edi,dword ptr (-40)[ebp] +and dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,8 +je L2110 +mov dword ptr (-8)[ebp],345 +cmp dword ptr (-4)[ebp],0 +je L2112 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2112: +L2110: +mov byte ptr (-9)[ebp],12 +mov byte ptr (-25)[ebp],10 +movsx edi,byte ptr (-9)[ebp] +movsx esi,byte ptr (-25)[ebp] +xor edi,esi +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,6 +je L2114 +mov dword ptr (-8)[ebp],346 +cmp dword ptr (-4)[ebp],0 +je L2116 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2116: +L2114: +mov byte ptr (-9)[ebp],12 +mov word ptr (-28)[ebp],10 +movsx edi,byte ptr (-9)[ebp] +movsx esi,word ptr (-28)[ebp] +xor edi,esi +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,6 +je L2118 +mov dword ptr (-8)[ebp],347 +cmp dword ptr (-4)[ebp],0 +je L2120 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2120: +L2118: +mov byte ptr (-9)[ebp],12 +mov dword ptr (-32)[ebp],10 +movsx edi,byte ptr (-9)[ebp] +xor edi,dword ptr (-32)[ebp] +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,6 +je L2122 +mov dword ptr (-8)[ebp],348 +cmp dword ptr (-4)[ebp],0 +je L2124 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2124: +L2122: +mov byte ptr (-9)[ebp],12 +mov dword ptr (-36)[ebp],10 +movsx edi,byte ptr (-9)[ebp] +xor edi,dword ptr (-36)[ebp] +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,6 +je L2126 +mov dword ptr (-8)[ebp],349 +cmp dword ptr (-4)[ebp],0 +je L2128 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2128: +L2126: +mov byte ptr (-9)[ebp],12 +mov dword ptr (-40)[ebp],10 +movsx edi,byte ptr (-9)[ebp] +xor edi,dword ptr (-40)[ebp] +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,6 +je L2130 +mov dword ptr (-8)[ebp],350 +cmp dword ptr (-4)[ebp],0 +je L2132 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2132: +L2130: +mov word ptr (-12)[ebp],12 +mov byte ptr (-25)[ebp],10 +movsx edi,word ptr (-12)[ebp] +movsx esi,byte ptr (-25)[ebp] +xor edi,esi +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,6 +je L2134 +mov dword ptr (-8)[ebp],351 +cmp dword ptr (-4)[ebp],0 +je L2136 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2136: +L2134: +mov word ptr (-12)[ebp],12 +mov word ptr (-28)[ebp],10 +movsx edi,word ptr (-12)[ebp] +movsx esi,word ptr (-28)[ebp] +xor edi,esi +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,6 +je L2138 +mov dword ptr (-8)[ebp],352 +cmp dword ptr (-4)[ebp],0 +je L2140 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2140: +L2138: +mov word ptr (-12)[ebp],12 +mov dword ptr (-32)[ebp],10 +movsx edi,word ptr (-12)[ebp] +xor edi,dword ptr (-32)[ebp] +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,6 +je L2142 +mov dword ptr (-8)[ebp],353 +cmp dword ptr (-4)[ebp],0 +je L2144 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2144: +L2142: +mov word ptr (-12)[ebp],12 +mov dword ptr (-36)[ebp],10 +movsx edi,word ptr (-12)[ebp] +xor edi,dword ptr (-36)[ebp] +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,6 +je L2146 +mov dword ptr (-8)[ebp],354 +cmp dword ptr (-4)[ebp],0 +je L2148 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2148: +L2146: +mov word ptr (-12)[ebp],12 +mov dword ptr (-40)[ebp],10 +movsx edi,word ptr (-12)[ebp] +xor edi,dword ptr (-40)[ebp] +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,6 +je L2150 +mov dword ptr (-8)[ebp],355 +cmp dword ptr (-4)[ebp],0 +je L2152 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2152: +L2150: +mov dword ptr (-16)[ebp],12 +mov byte ptr (-25)[ebp],10 +movsx edi,byte ptr (-25)[ebp] +xor dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],6 +je L2154 +mov dword ptr (-8)[ebp],356 +cmp dword ptr (-4)[ebp],0 +je L2156 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2156: +L2154: +mov dword ptr (-16)[ebp],12 +mov word ptr (-28)[ebp],10 +movsx edi,word ptr (-28)[ebp] +xor dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],6 +je L2158 +mov dword ptr (-8)[ebp],357 +cmp dword ptr (-4)[ebp],0 +je L2160 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2160: +L2158: +mov dword ptr (-16)[ebp],12 +mov dword ptr (-32)[ebp],10 +mov edi,dword ptr (-32)[ebp] +xor dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],6 +je L2162 +mov dword ptr (-8)[ebp],358 +cmp dword ptr (-4)[ebp],0 +je L2164 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2164: +L2162: +mov dword ptr (-16)[ebp],12 +mov dword ptr (-36)[ebp],10 +mov edi,dword ptr (-36)[ebp] +xor dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],6 +je L2166 +mov dword ptr (-8)[ebp],359 +cmp dword ptr (-4)[ebp],0 +je L2168 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2168: +L2166: +mov dword ptr (-16)[ebp],12 +mov dword ptr (-40)[ebp],10 +mov edi,dword ptr (-16)[ebp] +xor edi,dword ptr (-40)[ebp] +mov dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],6 +je L2170 +mov dword ptr (-8)[ebp],360 +cmp dword ptr (-4)[ebp],0 +je L2172 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2172: +L2170: +mov dword ptr (-20)[ebp],12 +mov byte ptr (-25)[ebp],10 +movsx edi,byte ptr (-25)[ebp] +xor dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],6 +je L2174 +mov dword ptr (-8)[ebp],361 +cmp dword ptr (-4)[ebp],0 +je L2176 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2176: +L2174: +mov dword ptr (-20)[ebp],12 +mov word ptr (-28)[ebp],10 +movsx edi,word ptr (-28)[ebp] +xor dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],6 +je L2178 +mov dword ptr (-8)[ebp],362 +cmp dword ptr (-4)[ebp],0 +je L2180 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2180: +L2178: +mov dword ptr (-20)[ebp],12 +mov dword ptr (-32)[ebp],10 +mov edi,dword ptr (-32)[ebp] +xor dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],6 +je L2182 +mov dword ptr (-8)[ebp],363 +cmp dword ptr (-4)[ebp],0 +je L2184 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2184: +L2182: +mov dword ptr (-20)[ebp],12 +mov dword ptr (-36)[ebp],10 +mov edi,dword ptr (-36)[ebp] +xor dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],6 +je L2186 +mov dword ptr (-8)[ebp],364 +cmp dword ptr (-4)[ebp],0 +je L2188 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2188: +L2186: +mov dword ptr (-20)[ebp],12 +mov dword ptr (-40)[ebp],10 +mov edi,dword ptr (-20)[ebp] +xor edi,dword ptr (-40)[ebp] +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],6 +je L2190 +mov dword ptr (-8)[ebp],365 +cmp dword ptr (-4)[ebp],0 +je L2192 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2192: +L2190: +mov dword ptr (-24)[ebp],12 +mov byte ptr (-25)[ebp],10 +movsx edi,byte ptr (-25)[ebp] +xor dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,6 +je L2194 +mov dword ptr (-8)[ebp],366 +cmp dword ptr (-4)[ebp],0 +je L2196 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2196: +L2194: +mov dword ptr (-24)[ebp],12 +mov word ptr (-28)[ebp],10 +movsx edi,word ptr (-28)[ebp] +xor dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,6 +je L2198 +mov dword ptr (-8)[ebp],367 +cmp dword ptr (-4)[ebp],0 +je L2200 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2200: +L2198: +mov dword ptr (-24)[ebp],12 +mov dword ptr (-32)[ebp],10 +mov edi,dword ptr (-32)[ebp] +xor dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,6 +je L2202 +mov dword ptr (-8)[ebp],368 +cmp dword ptr (-4)[ebp],0 +je L2204 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2204: +L2202: +mov dword ptr (-24)[ebp],12 +mov dword ptr (-36)[ebp],10 +mov edi,dword ptr (-36)[ebp] +xor dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,6 +je L2206 +mov dword ptr (-8)[ebp],369 +cmp dword ptr (-4)[ebp],0 +je L2208 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2208: +L2206: +mov dword ptr (-24)[ebp],12 +mov dword ptr (-40)[ebp],10 +mov edi,dword ptr (-40)[ebp] +xor dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,6 +je L2210 +mov dword ptr (-8)[ebp],370 +cmp dword ptr (-4)[ebp],0 +je L2212 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2212: +L2210: +mov byte ptr (-9)[ebp],12 +mov byte ptr (-25)[ebp],10 +movsx edi,byte ptr (-9)[ebp] +movsx esi,byte ptr (-25)[ebp] +or edi,esi +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,14 +je L2214 +mov dword ptr (-8)[ebp],371 +cmp dword ptr (-4)[ebp],0 +je L2216 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2216: +L2214: +mov byte ptr (-9)[ebp],12 +mov word ptr (-28)[ebp],10 +movsx edi,byte ptr (-9)[ebp] +movsx esi,word ptr (-28)[ebp] +or edi,esi +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,14 +je L2218 +mov dword ptr (-8)[ebp],372 +cmp dword ptr (-4)[ebp],0 +je L2220 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2220: +L2218: +mov byte ptr (-9)[ebp],12 +mov dword ptr (-32)[ebp],10 +movsx edi,byte ptr (-9)[ebp] +or edi,dword ptr (-32)[ebp] +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,14 +je L2222 +mov dword ptr (-8)[ebp],373 +cmp dword ptr (-4)[ebp],0 +je L2224 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2224: +L2222: +mov byte ptr (-9)[ebp],12 +mov dword ptr (-36)[ebp],10 +movsx edi,byte ptr (-9)[ebp] +or edi,dword ptr (-36)[ebp] +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,14 +je L2226 +mov dword ptr (-8)[ebp],374 +cmp dword ptr (-4)[ebp],0 +je L2228 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2228: +L2226: +mov byte ptr (-9)[ebp],12 +mov dword ptr (-40)[ebp],10 +movsx edi,byte ptr (-9)[ebp] +or edi,dword ptr (-40)[ebp] +mov ebx,edi +mov byte ptr (-9)[ebp],bl +movsx edi,byte ptr (-9)[ebp] +cmp edi,14 +je L2230 +mov dword ptr (-8)[ebp],375 +cmp dword ptr (-4)[ebp],0 +je L2232 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2232: +L2230: +mov word ptr (-12)[ebp],12 +mov byte ptr (-25)[ebp],10 +movsx edi,word ptr (-12)[ebp] +movsx esi,byte ptr (-25)[ebp] +or edi,esi +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,14 +je L2234 +mov dword ptr (-8)[ebp],376 +cmp dword ptr (-4)[ebp],0 +je L2236 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2236: +L2234: +mov word ptr (-12)[ebp],12 +mov word ptr (-28)[ebp],10 +movsx edi,word ptr (-12)[ebp] +movsx esi,word ptr (-28)[ebp] +or edi,esi +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,14 +je L2238 +mov dword ptr (-8)[ebp],377 +cmp dword ptr (-4)[ebp],0 +je L2240 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2240: +L2238: +mov word ptr (-12)[ebp],12 +mov dword ptr (-32)[ebp],10 +movsx edi,word ptr (-12)[ebp] +or edi,dword ptr (-32)[ebp] +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,14 +je L2242 +mov dword ptr (-8)[ebp],378 +cmp dword ptr (-4)[ebp],0 +je L2244 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2244: +L2242: +mov word ptr (-12)[ebp],12 +mov dword ptr (-36)[ebp],10 +movsx edi,word ptr (-12)[ebp] +or edi,dword ptr (-36)[ebp] +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,14 +je L2246 +mov dword ptr (-8)[ebp],379 +cmp dword ptr (-4)[ebp],0 +je L2248 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2248: +L2246: +mov word ptr (-12)[ebp],12 +mov dword ptr (-40)[ebp],10 +movsx edi,word ptr (-12)[ebp] +or edi,dword ptr (-40)[ebp] +mov word ptr (-12)[ebp],di +movsx edi,word ptr (-12)[ebp] +cmp edi,14 +je L2250 +mov dword ptr (-8)[ebp],380 +cmp dword ptr (-4)[ebp],0 +je L2252 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2252: +L2250: +mov dword ptr (-16)[ebp],12 +mov byte ptr (-25)[ebp],10 +movsx edi,byte ptr (-25)[ebp] +or dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],14 +je L2254 +mov dword ptr (-8)[ebp],381 +cmp dword ptr (-4)[ebp],0 +je L2256 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2256: +L2254: +mov dword ptr (-16)[ebp],12 +mov word ptr (-28)[ebp],10 +movsx edi,word ptr (-28)[ebp] +or dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],14 +je L2258 +mov dword ptr (-8)[ebp],382 +cmp dword ptr (-4)[ebp],0 +je L2260 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2260: +L2258: +mov dword ptr (-16)[ebp],12 +mov dword ptr (-32)[ebp],10 +mov edi,dword ptr (-32)[ebp] +or dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],14 +je L2262 +mov dword ptr (-8)[ebp],383 +cmp dword ptr (-4)[ebp],0 +je L2264 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2264: +L2262: +mov dword ptr (-16)[ebp],12 +mov dword ptr (-36)[ebp],10 +mov edi,dword ptr (-36)[ebp] +or dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],14 +je L2266 +mov dword ptr (-8)[ebp],384 +cmp dword ptr (-4)[ebp],0 +je L2268 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2268: +L2266: +mov dword ptr (-16)[ebp],12 +mov dword ptr (-40)[ebp],10 +mov edi,dword ptr (-16)[ebp] +or edi,dword ptr (-40)[ebp] +mov dword ptr (-16)[ebp],edi +cmp dword ptr (-16)[ebp],14 +je L2270 +mov dword ptr (-8)[ebp],385 +cmp dword ptr (-4)[ebp],0 +je L2272 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2272: +L2270: +mov dword ptr (-20)[ebp],12 +mov byte ptr (-25)[ebp],10 +movsx edi,byte ptr (-25)[ebp] +or dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],14 +je L2274 +mov dword ptr (-8)[ebp],386 +cmp dword ptr (-4)[ebp],0 +je L2276 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2276: +L2274: +mov dword ptr (-20)[ebp],12 +mov word ptr (-28)[ebp],10 +movsx edi,word ptr (-28)[ebp] +or dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],14 +je L2278 +mov dword ptr (-8)[ebp],387 +cmp dword ptr (-4)[ebp],0 +je L2280 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2280: +L2278: +mov dword ptr (-20)[ebp],12 +mov dword ptr (-32)[ebp],10 +mov edi,dword ptr (-32)[ebp] +or dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],14 +je L2282 +mov dword ptr (-8)[ebp],388 +cmp dword ptr (-4)[ebp],0 +je L2284 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2284: +L2282: +mov dword ptr (-20)[ebp],12 +mov dword ptr (-36)[ebp],10 +mov edi,dword ptr (-36)[ebp] +or dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],14 +je L2286 +mov dword ptr (-8)[ebp],389 +cmp dword ptr (-4)[ebp],0 +je L2288 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2288: +L2286: +mov dword ptr (-20)[ebp],12 +mov dword ptr (-40)[ebp],10 +mov edi,dword ptr (-20)[ebp] +or edi,dword ptr (-40)[ebp] +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],14 +je L2290 +mov dword ptr (-8)[ebp],390 +cmp dword ptr (-4)[ebp],0 +je L2292 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2292: +L2290: +mov dword ptr (-24)[ebp],12 +mov byte ptr (-25)[ebp],10 +movsx edi,byte ptr (-25)[ebp] +or dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,14 +je L2294 +mov dword ptr (-8)[ebp],391 +cmp dword ptr (-4)[ebp],0 +je L2296 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2296: +L2294: +mov dword ptr (-24)[ebp],12 +mov word ptr (-28)[ebp],10 +movsx edi,word ptr (-28)[ebp] +or dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,14 +je L2298 +mov dword ptr (-8)[ebp],392 +cmp dword ptr (-4)[ebp],0 +je L2300 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2300: +L2298: +mov dword ptr (-24)[ebp],12 +mov dword ptr (-32)[ebp],10 +mov edi,dword ptr (-32)[ebp] +or dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,14 +je L2302 +mov dword ptr (-8)[ebp],393 +cmp dword ptr (-4)[ebp],0 +je L2304 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2304: +L2302: +mov dword ptr (-24)[ebp],12 +mov dword ptr (-36)[ebp],10 +mov edi,dword ptr (-36)[ebp] +or dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,14 +je L2306 +mov dword ptr (-8)[ebp],394 +cmp dword ptr (-4)[ebp],0 +je L2308 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2308: +L2306: +mov dword ptr (-24)[ebp],12 +mov dword ptr (-40)[ebp],10 +mov edi,dword ptr (-40)[ebp] +or dword ptr (-24)[ebp],edi +mov edi,dword ptr (-24)[ebp] +cmp edi,14 +je L2310 +mov dword ptr (-8)[ebp],395 +cmp dword ptr (-4)[ebp],0 +je L2312 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L687) +push edi +call _printf +add esp,8 +L2312: +L2310: +cmp dword ptr (-8)[ebp],0 +je L2314 +mov dword ptr (-76)[ebp],1 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L2316 +push 1 +lea edi,(L688) +push edi +call _printf +add esp,8 +L2316: +L2314: +mov eax,dword ptr (-76)[ebp] +L686: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +align 1 +L2319 label byte +db 115 +db 55 +db 49 +db 53 +db 44 +db 101 +db 114 +db 37 +db 100 +db 10 +db 0 +align 1 +L2320 label byte +db 115 +db 55 +db 49 +db 53 +db 32 +db 32 +db 32 +db 0 +public _s715 +_DATA ends +_TEXT segment +_s715: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,28 +mov dword ptr (-28)[ebp],0 +mov dword ptr (-20)[ebp],0 +lea edi,(L2320) +mov dword ptr (-4)[ebp],edi +mov edi,dword ptr (20)[ebp] +lea edi,(60)[edi] +mov dword ptr (-8)[ebp],edi +mov dword ptr (-16)[ebp],0 +L2321: +L2322: +mov edi,dword ptr (-8)[ebp] +lea esi,(1)[edi] +mov dword ptr (-8)[ebp],esi +mov esi,dword ptr (-4)[ebp] +lea ebx,(1)[esi] +mov dword ptr (-4)[ebp],ebx +mov bl,byte ptr [esi] +mov byte ptr [edi],bl +movsx edi,bl +cmp edi,0 +jne L2321 +mov dword ptr (-12)[ebp],1 +inc dword ptr (-12)[ebp] +inc dword ptr (-12)[ebp] +inc dword ptr (-12)[ebp] +inc dword ptr (-12)[ebp] +mov edi,dword ptr (-12)[ebp] +lea edi,(1)[edi] +mov dword ptr (-12)[ebp],edi +cmp edi,6 +je L2324 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L2326 +push 1 +lea edi,(L2319) +push edi +call _printf +add esp,8 +L2326: +inc dword ptr (-16)[ebp] +L2324: +mov edi,dword ptr (-28)[ebp] +push edi +mov dword ptr (-24)[ebp],3 +mov edi,dword ptr (-24)[ebp] +lea edi,(2)[edi] +push edi +mov edi,dword ptr (-20)[ebp] +push edi +call _s715f +add esp,12 +cmp eax,5 +je L2328 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L2330 +push 2 +lea edi,(L2319) +push edi +call _printf +add esp,8 +L2330: +add dword ptr (-16)[ebp],2 +L2328: +mov eax,dword ptr (-16)[ebp] +L2318: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _s715f +_s715f: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov eax,dword ptr (24)[ebp] +L2332: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +align 1 +L2334 label byte +db 115 +db 55 +db 50 +db 44 +db 101 +db 114 +db 37 +db 100 +db 10 +db 0 +align 1 +L2335 label byte +db 115 +db 55 +db 50 +db 32 +db 32 +db 32 +db 32 +db 0 +public _s72 +_DATA ends +_TEXT segment +_s72: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,100 +lea edi,(L2335) +mov dword ptr (-12)[ebp],edi +mov edi,dword ptr (20)[ebp] +lea edi,(60)[edi] +mov dword ptr (-16)[ebp],edi +mov dword ptr (-24)[ebp],0 +L2336: +L2337: +mov edi,dword ptr (-16)[ebp] +lea esi,(1)[edi] +mov dword ptr (-16)[ebp],esi +mov esi,dword ptr (-12)[ebp] +lea ebx,(1)[esi] +mov dword ptr (-12)[ebp],ebx +mov bl,byte ptr [esi] +mov byte ptr [edi],bl +movsx edi,bl +cmp edi,0 +jne L2336 +mov dword ptr (-4)[ebp],2 +cmp dword ptr (-4)[ebp],2 +je L2339 +inc dword ptr (-24)[ebp] +push 1 +lea edi,(L2334) +push edi +call _printf +add esp,8 +L2339: +mov edi,dword ptr (-4)[ebp] +mov esi,edi +neg esi +lea edi,[esi][edi] +cmp edi,0 +je L2341 +add dword ptr (-24)[ebp],2 +push 2 +lea edi,(L2334) +push edi +call _printf +add esp,8 +L2341: +mov dword ptr (-4)[ebp],0 +mov dword ptr (-8)[ebp],0 +jmp L2346 +L2343: +mov edi,dword ptr (-4)[ebp] +lea edi,[edi*2] +or edi,1 +mov dword ptr (-4)[ebp],edi +L2344: +inc dword ptr (-8)[ebp] +L2346: +mov edi,dword ptr (20)[ebp] +mov edi,dword ptr (4)[edi] +cmp dword ptr (-8)[ebp],edi +jl L2343 +mov edi,dword ptr (-4)[ebp] +not edi +cmp edi,0 +je L2347 +add dword ptr (-24)[ebp],4 +push 4 +lea edi,(L2334) +push edi +call _printf +add esp,8 +L2347: +mov dword ptr (-4)[ebp],5 +mov edi,dword ptr (-4)[ebp] +lea edi,(1)[edi] +mov dword ptr (-4)[ebp],edi +cmp edi,6 +jne L2354 +mov edi,dword ptr (-4)[ebp] +sub edi,1 +mov dword ptr (-4)[ebp],edi +cmp edi,5 +jne L2354 +mov edi,dword ptr (-4)[ebp] +lea esi,(1)[edi] +mov dword ptr (-4)[ebp],esi +cmp edi,5 +jne L2354 +mov edi,dword ptr (-4)[ebp] +mov esi,edi +sub esi,1 +mov dword ptr (-4)[ebp],esi +cmp edi,6 +jne L2354 +cmp dword ptr (-4)[ebp],5 +je L2349 +L2354: +add dword ptr (-24)[ebp],8 +push 8 +lea edi,(L2334) +push edi +call _printf +add esp,8 +L2349: +mov byte ptr (-29)[ebp],26 +mov dword ptr (-36)[ebp],26 +fld qword ptr (L2355) +fstp qword ptr (-48)[ebp] +mov word ptr (-32)[ebp],26 +mov dword ptr (-40)[ebp],26 +mov dword ptr (-28)[ebp],26 +fld dword ptr (L2356) +fstp dword ptr (-52)[ebp] +mov dword ptr (-20)[ebp],0 +movsx edi,word ptr (-32)[ebp] +mov ebx,edi +movsx edi,bl +cmp edi,26 +jne L2363 +mov edi,dword ptr (-28)[ebp] +mov ebx,edi +movsx edi,bl +cmp edi,26 +jne L2363 +mov edi,dword ptr (-36)[ebp] +mov ebx,edi +movsx edi,bl +cmp edi,26 +jne L2363 +mov edi,dword ptr (-40)[ebp] +mov ebx,edi +movsx edi,bl +cmp edi,26 +jne L2363 +fld dword ptr (-52)[ebp] +call __ftol +mov ebx,eax +movsx edi,bl +cmp edi,26 +jne L2363 +fld qword ptr (-48)[ebp] +call __ftol +mov ebx,eax +movsx edi,bl +cmp edi,26 +je L2357 +L2363: +inc dword ptr (-20)[ebp] +L2357: +movsx edi,byte ptr (-29)[ebp] +movsx edi,di +cmp edi,26 +jne L2370 +mov edi,dword ptr (-28)[ebp] +movsx edi,di +cmp edi,26 +jne L2370 +mov edi,dword ptr (-36)[ebp] +movsx edi,di +cmp edi,26 +jne L2370 +mov edi,dword ptr (-40)[ebp] +movsx edi,di +cmp edi,26 +jne L2370 +fld dword ptr (-52)[ebp] +call __ftol +mov edi,eax +movsx edi,di +cmp edi,26 +jne L2370 +fld qword ptr (-48)[ebp] +call __ftol +mov edi,eax +movsx edi,di +cmp edi,26 +je L2364 +L2370: +add dword ptr (-20)[ebp],2 +L2364: +movsx edi,byte ptr (-29)[ebp] +cmp edi,26 +jne L2377 +movsx edi,word ptr (-32)[ebp] +cmp edi,26 +jne L2377 +cmp dword ptr (-36)[ebp],26 +jne L2377 +mov edi,dword ptr (-40)[ebp] +cmp edi,26 +jne L2377 +fld dword ptr (-52)[ebp] +call __ftol +cmp eax,26 +jne L2377 +fld qword ptr (-48)[ebp] +call __ftol +cmp eax,26 +je L2371 +L2377: +add dword ptr (-20)[ebp],4 +L2371: +movsx edi,byte ptr (-29)[ebp] +cmp edi,26 +jne L2384 +movsx edi,word ptr (-32)[ebp] +cmp edi,26 +jne L2384 +cmp dword ptr (-28)[ebp],26 +jne L2384 +mov edi,dword ptr (-40)[ebp] +cmp edi,26 +jne L2384 +fld dword ptr (-52)[ebp] +call __ftol +cmp eax,26 +jne L2384 +fld qword ptr (-48)[ebp] +call __ftol +cmp eax,26 +je L2378 +L2384: +add dword ptr (-20)[ebp],8 +L2378: +movsx edi,byte ptr (-29)[ebp] +cmp edi,26 +jne L2393 +movsx edi,word ptr (-32)[ebp] +cmp edi,26 +jne L2393 +mov edi,dword ptr (-28)[ebp] +cmp edi,26 +jne L2393 +mov edi,dword ptr (-36)[ebp] +cmp edi,26 +jne L2393 +fld dword ptr (L828) +fcomp dword ptr (-52)[ebp] +fstsw ax +sahf +ja L2394 +fld dword ptr (-52)[ebp] +fsub dword ptr (L828) +call __ftol +mov edi,eax +lea edi,(080000000H)[edi] +mov dword ptr (-56)[ebp],edi +jmp L2395 +L2394: +fld dword ptr (-52)[ebp] +call __ftol +mov edi,eax +mov dword ptr (-56)[ebp],edi +L2395: +mov edi,dword ptr (-56)[ebp] +cmp edi,26 +jne L2393 +fld qword ptr (L836) +fcomp qword ptr (-48)[ebp] +fstsw ax +sahf +ja L2396 +fld qword ptr (-48)[ebp] +fsub qword ptr (L836) +call __ftol +mov edi,eax +lea edi,(080000000H)[edi] +mov dword ptr (-60)[ebp],edi +jmp L2397 +L2396: +fld qword ptr (-48)[ebp] +call __ftol +mov edi,eax +mov dword ptr (-60)[ebp],edi +L2397: +mov edi,dword ptr (-60)[ebp] +cmp edi,26 +je L2385 +L2393: +add dword ptr (-20)[ebp],16 +L2385: +movsx edi,byte ptr (-29)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fld qword ptr (L2355) +fcompp +fstsw ax +sahf +jne L2404 +movsx edi,word ptr (-32)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fld qword ptr (L2355) +fcompp +fstsw ax +sahf +jne L2404 +mov edi,dword ptr (-28)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fld qword ptr (L2355) +fcompp +fstsw ax +sahf +jne L2404 +mov edi,dword ptr (-36)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fld qword ptr (L2355) +fcompp +fstsw ax +sahf +jne L2404 +mov edi,dword ptr (-40)[ebp] +fld qword ptr (L596) +mov esi,edi +shr esi,1 +push esi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +and edi,1 +push edi +fild dword ptr 0[esp] +add esp,4 +faddp st(1),st +sub esp,4 +fstp dword ptr 0[esp] +fld dword ptr 0[esp] +add esp,4 +fld qword ptr (L2355) +fcompp +fstsw ax +sahf +jne L2404 +fld qword ptr (-48)[ebp] +sub esp,4 +fstp dword ptr 0[esp] +fld dword ptr 0[esp] +add esp,4 +fld qword ptr (L2355) +fcompp +fstsw ax +sahf +je L2398 +L2404: +add dword ptr (-20)[ebp],32 +L2398: +movsx edi,byte ptr (-29)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fld qword ptr (L2355) +fcompp +fstsw ax +sahf +jne L2411 +movsx edi,word ptr (-32)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fld qword ptr (L2355) +fcompp +fstsw ax +sahf +jne L2411 +fild dword ptr (-28)[ebp] +fld qword ptr (L2355) +fcompp +fstsw ax +sahf +jne L2411 +fild dword ptr (-36)[ebp] +fld qword ptr (L2355) +fcompp +fstsw ax +sahf +jne L2411 +mov edi,dword ptr (-40)[ebp] +fld qword ptr (L596) +mov esi,edi +shr esi,1 +push esi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +and edi,1 +push edi +fild dword ptr 0[esp] +add esp,4 +faddp st(1),st +fld qword ptr (L2355) +fcompp +fstsw ax +sahf +jne L2411 +fld qword ptr (L2355) +fcomp dword ptr (-52)[ebp] +fstsw ax +sahf +je L2405 +L2411: +add dword ptr (-20)[ebp],64 +L2405: +cmp dword ptr (-20)[ebp],0 +je L2412 +add dword ptr (-24)[ebp],16 +push 16 +lea edi,(L2334) +push edi +call _printf +add esp,8 +L2412: +mov eax,dword ptr (-24)[ebp] +L2333: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +align 1 +L2415 label byte +db 115 +db 55 +db 53 +db 55 +db 44 +db 101 +db 114 +db 37 +db 100 +db 10 +db 0 +align 1 +L2416 label byte +db 115 +db 55 +db 53 +db 55 +db 32 +db 32 +db 32 +db 0 +public _s757 +_DATA ends +_TEXT segment +_s757: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,148 +lea edi,(L2416) +mov dword ptr (-112)[ebp],edi +mov edi,dword ptr (20)[ebp] +lea edi,(60)[edi] +mov dword ptr (-116)[ebp],edi +mov dword ptr (-120)[ebp],0 +L2417: +L2418: +mov edi,dword ptr (-116)[ebp] +lea esi,(1)[edi] +mov dword ptr (-116)[ebp],esi +mov esi,dword ptr (-112)[ebp] +lea ebx,(1)[esi] +mov dword ptr (-112)[ebp],ebx +mov bl,byte ptr [esi] +mov byte ptr [edi],bl +movsx edi,bl +cmp edi,0 +jne L2417 +mov dword ptr (-124)[ebp],40 +mov edi,dword ptr (-124)[ebp] +lea esi,[edi*8] +lea esi,[esi*4] +cmp esi,1280 +jne L2422 +sar edi,3 +sar edi,2 +cmp edi,1 +je L2420 +L2422: +inc dword ptr (-120)[ebp] +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L2423 +push 1 +lea edi,(L2415) +push edi +call _printf +add esp,8 +L2423: +L2420: +mov dword ptr (-84)[ebp],0 +mov dword ptr (-100)[ebp],0 +jmp L2428 +L2425: +mov dword ptr (-92)[ebp],1 +mov edi,dword ptr (-92)[ebp] +mov esi,dword ptr (20)[ebp] +mov esi,dword ptr (16)[esi] +sub esi,1 +mov ecx,esi +shl edi,cl +mov dword ptr (-96)[ebp],edi +mov dword ptr (-104)[ebp],0 +mov edi,dword ptr (-104)[ebp] +not edi +mov esi,dword ptr (-100)[ebp] +mov ebx,edi +mov ecx,esi +shr ebx,cl +mov dword ptr (-108)[ebp],ebx +mov ecx,esi +shl edi,cl +mov dword ptr (-104)[ebp],edi +mov dword ptr (-88)[ebp],0 +jmp L2432 +L2429: +mov edi,dword ptr (-100)[ebp] +cmp dword ptr (-88)[ebp],edi +jge L2440 +mov dword ptr (-132)[ebp],1 +jmp L2441 +L2440: +mov dword ptr (-132)[ebp],0 +L2441: +mov edi,dword ptr (-92)[ebp] +and edi,dword ptr (-104)[ebp] +cmp edi,0 +jne L2442 +mov dword ptr (-136)[ebp],1 +jmp L2443 +L2442: +mov dword ptr (-136)[ebp],0 +L2443: +mov edi,dword ptr (-136)[ebp] +cmp dword ptr (-132)[ebp],edi +jne L2439 +mov edi,dword ptr (-100)[ebp] +cmp dword ptr (-88)[ebp],edi +jge L2444 +mov dword ptr (-140)[ebp],1 +jmp L2445 +L2444: +mov dword ptr (-140)[ebp],0 +L2445: +mov edi,dword ptr (-96)[ebp] +and edi,dword ptr (-108)[ebp] +cmp edi,0 +jne L2446 +mov dword ptr (-144)[ebp],1 +jmp L2447 +L2446: +mov dword ptr (-144)[ebp],0 +L2447: +mov edi,dword ptr (-144)[ebp] +cmp dword ptr (-140)[ebp],edi +je L2433 +L2439: +mov dword ptr (-84)[ebp],1 +L2433: +mov edi,dword ptr (-92)[ebp] +lea edi,[edi*2] +mov dword ptr (-92)[ebp],edi +mov edi,dword ptr (-96)[ebp] +shr edi,1 +mov dword ptr (-96)[ebp],edi +L2430: +inc dword ptr (-88)[ebp] +L2432: +mov edi,dword ptr (20)[ebp] +mov edi,dword ptr (16)[edi] +cmp dword ptr (-88)[ebp],edi +jl L2429 +L2426: +inc dword ptr (-100)[ebp] +L2428: +mov edi,dword ptr (20)[ebp] +mov edi,dword ptr (16)[edi] +cmp dword ptr (-100)[ebp],edi +jl L2425 +cmp dword ptr (-84)[ebp],0 +je L2448 +add dword ptr (-120)[ebp],2 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L2450 +push 2 +lea edi,(L2415) +push edi +call _printf +add esp,8 +L2450: +L2448: +mov dword ptr (-16)[ebp],3 +mov dword ptr (-12)[ebp],2 +mov dword ptr (-8)[ebp],1 +mov edi,dword ptr (-12)[ebp] +cmp dword ptr (-16)[ebp],edi +jge L2458 +mov dword ptr (-136)[ebp],1 +jmp L2459 +L2458: +mov dword ptr (-136)[ebp],0 +L2459: +mov edi,dword ptr (-8)[ebp] +cmp dword ptr (-136)[ebp],edi +jge L2456 +mov dword ptr (-132)[ebp],1 +jmp L2457 +L2456: +mov dword ptr (-132)[ebp],0 +L2457: +cmp dword ptr (-132)[ebp],1 +je L2452 +add dword ptr (-120)[ebp],4 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L2460 +push 4 +lea edi,(L2415) +push edi +call _printf +add esp,8 +L2460: +L2452: +lea edi,(-76)[ebp] +lea esi,(-80)[ebp] +cmp edi,esi +jne L2462 +add dword ptr (-120)[ebp],8 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L2465 +push 8 +lea edi,(L2415) +push edi +call _printf +add esp,8 +L2465: +L2462: +lea edi,(-76)[ebp] +lea esi,(-80)[ebp] +cmp edi,esi +jae L2467 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (40)[edi],0 +je L2470 +lea edi,(L2472) +push edi +call _printf +add esp,4 +L2470: +L2467: +mov dword ptr (-84)[ebp],0 +mov dword ptr (-88)[ebp],0 +L2473: +mov edi,dword ptr (-88)[ebp] +mov dword ptr (-80)[ebp][edi*4],1 +L2474: +inc dword ptr (-88)[ebp] +cmp dword ptr (-88)[ebp],16 +jl L2473 +mov dword ptr (-76)[ebp],0 +mov dword ptr (-64)[ebp],0 +mov dword ptr (-56)[ebp],0 +mov dword ptr (-52)[ebp],0 +mov dword ptr (-44)[ebp],0 +mov dword ptr (-28)[ebp],0 +mov dword ptr (-16)[ebp],0 +L2483: +mov dword ptr (-12)[ebp],0 +L2487: +mov dword ptr (-8)[ebp],0 +L2491: +mov dword ptr (-4)[ebp],0 +L2495: +mov edi,dword ptr (-12)[ebp] +cmp dword ptr (-16)[ebp],edi +jge L2506 +mov dword ptr (-144)[ebp],1 +jmp L2507 +L2506: +mov dword ptr (-144)[ebp],0 +L2507: +mov edi,dword ptr (-4)[ebp] +cmp dword ptr (-8)[ebp],edi +jge L2508 +mov dword ptr (-148)[ebp],1 +jmp L2509 +L2508: +mov dword ptr (-148)[ebp],0 +L2509: +mov edi,dword ptr (-148)[ebp] +cmp dword ptr (-144)[ebp],edi +jne L2504 +mov dword ptr (-140)[ebp],1 +jmp L2505 +L2504: +mov dword ptr (-140)[ebp],0 +L2505: +mov edi,dword ptr (-16)[ebp] +mov esi,dword ptr (-12)[ebp] +lea esi,[esi*4] +lea edi,[esi][edi*8] +mov esi,dword ptr (-8)[ebp] +lea esi,[esi*2] +lea edi,[esi][edi] +mov esi,dword ptr (-4)[ebp] +lea edi,[esi][edi] +mov edi,dword ptr (-80)[ebp][edi*4] +cmp dword ptr (-140)[ebp],edi +je L2499 +mov dword ptr (-84)[ebp],1 +L2499: +L2496: +inc dword ptr (-4)[ebp] +cmp dword ptr (-4)[ebp],2 +jl L2495 +L2492: +inc dword ptr (-8)[ebp] +cmp dword ptr (-8)[ebp],2 +jl L2491 +L2488: +inc dword ptr (-12)[ebp] +cmp dword ptr (-12)[ebp],2 +jl L2487 +L2484: +inc dword ptr (-16)[ebp] +cmp dword ptr (-16)[ebp],2 +jl L2483 +cmp dword ptr (-84)[ebp],0 +je L2510 +add dword ptr (-120)[ebp],16 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L2512 +push 16 +lea edi,(L2415) +push edi +call _printf +add esp,8 +L2512: +L2510: +mov dword ptr (-128)[ebp],0 +mov edi,dword ptr (-128)[ebp] +cmp edi,0 +je L2514 +add dword ptr (-120)[ebp],32 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L2516 +push 32 +lea edi,(L2415) +push edi +call _printf +add esp,8 +L2516: +L2514: +mov eax,dword ptr (-120)[ebp] +L2414: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +align 1 +L2519 label byte +db 76 +db 111 +db 99 +db 97 +db 108 +db 32 +db 101 +db 114 +db 114 +db 111 +db 114 +db 32 +db 37 +db 100 +db 46 +db 10 +db 0 +align 1 +L2520 label byte +db 115 +db 55 +db 56 +db 49 +db 51 +db 44 +db 101 +db 114 +db 37 +db 100 +db 10 +db 0 +align 1 +L2521 label byte +db 115 +db 55 +db 56 +db 49 +db 51 +db 32 +db 32 +db 0 +public _s7813 +_DATA ends +_TEXT segment +_s7813: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,88 +lea edi,(L2521) +mov dword ptr (-24)[ebp],edi +mov edi,dword ptr (20)[ebp] +lea esi,(60)[edi] +mov dword ptr (-28)[ebp],esi +mov dword ptr (-8)[ebp],0 +mov dword ptr (-32)[ebp],0 +mov edi,dword ptr (48)[edi] +mov dword ptr (-4)[ebp],edi +L2522: +L2523: +mov edi,dword ptr (-28)[ebp] +lea esi,(1)[edi] +mov dword ptr (-28)[ebp],esi +mov esi,dword ptr (-24)[ebp] +lea ebx,(1)[esi] +mov dword ptr (-24)[ebp],ebx +mov bl,byte ptr [esi] +mov byte ptr [edi],bl +movsx edi,bl +cmp edi,0 +jne L2522 +jmp L2525 +mov dword ptr (-8)[ebp],1 +cmp dword ptr (-4)[ebp],0 +je L2527 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2527: +L2525: +jmp L2529 +mov dword ptr (-8)[ebp],2 +cmp dword ptr (-4)[ebp],0 +je L2531 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2531: +L2529: +jmp L2533 +mov dword ptr (-8)[ebp],3 +cmp dword ptr (-4)[ebp],0 +je L2535 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2535: +L2533: +jmp L2537 +mov dword ptr (-8)[ebp],4 +cmp dword ptr (-4)[ebp],0 +je L2539 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2539: +L2537: +jmp L2541 +mov dword ptr (-8)[ebp],5 +cmp dword ptr (-4)[ebp],0 +je L2543 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2543: +L2541: +jmp L2545 +mov dword ptr (-8)[ebp],6 +cmp dword ptr (-4)[ebp],0 +je L2547 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2547: +L2545: +jmp L2549 +mov dword ptr (-8)[ebp],7 +cmp dword ptr (-4)[ebp],0 +je L2551 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2551: +L2549: +jmp L2553 +mov dword ptr (-8)[ebp],8 +cmp dword ptr (-4)[ebp],0 +je L2555 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2555: +L2553: +jmp L2557 +mov dword ptr (-8)[ebp],9 +cmp dword ptr (-4)[ebp],0 +je L2559 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2559: +L2557: +jmp L2561 +mov dword ptr (-8)[ebp],10 +cmp dword ptr (-4)[ebp],0 +je L2563 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2563: +L2561: +jmp L2565 +mov dword ptr (-8)[ebp],11 +cmp dword ptr (-4)[ebp],0 +je L2567 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2567: +L2565: +jmp L2569 +mov dword ptr (-8)[ebp],12 +cmp dword ptr (-4)[ebp],0 +je L2571 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2571: +L2569: +jmp L2573 +mov dword ptr (-8)[ebp],13 +cmp dword ptr (-4)[ebp],0 +je L2575 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2575: +L2573: +jmp L2577 +mov dword ptr (-8)[ebp],14 +cmp dword ptr (-4)[ebp],0 +je L2579 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2579: +L2577: +jmp L2581 +mov dword ptr (-8)[ebp],15 +cmp dword ptr (-4)[ebp],0 +je L2583 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2583: +L2581: +jmp L2585 +mov dword ptr (-8)[ebp],16 +cmp dword ptr (-4)[ebp],0 +je L2587 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2587: +L2585: +jmp L2589 +mov dword ptr (-8)[ebp],17 +cmp dword ptr (-4)[ebp],0 +je L2591 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2591: +L2589: +jmp L2593 +mov dword ptr (-8)[ebp],18 +cmp dword ptr (-4)[ebp],0 +je L2595 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2595: +L2593: +jmp L2597 +mov dword ptr (-8)[ebp],16 +cmp dword ptr (-4)[ebp],0 +je L2599 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2599: +L2597: +jmp L2601 +mov dword ptr (-8)[ebp],20 +cmp dword ptr (-4)[ebp],0 +je L2603 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2603: +L2601: +jmp L2605 +mov dword ptr (-8)[ebp],21 +cmp dword ptr (-4)[ebp],0 +je L2607 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2607: +L2605: +jmp L2609 +mov dword ptr (-8)[ebp],22 +cmp dword ptr (-4)[ebp],0 +je L2611 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2611: +L2609: +jmp L2613 +mov dword ptr (-8)[ebp],23 +cmp dword ptr (-4)[ebp],0 +je L2615 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2615: +L2613: +jmp L2617 +mov dword ptr (-8)[ebp],24 +cmp dword ptr (-4)[ebp],0 +je L2619 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2619: +L2617: +jmp L2621 +mov dword ptr (-8)[ebp],25 +cmp dword ptr (-4)[ebp],0 +je L2623 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2623: +L2621: +jmp L2625 +mov dword ptr (-8)[ebp],26 +cmp dword ptr (-4)[ebp],0 +je L2627 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2627: +L2625: +jmp L2629 +mov dword ptr (-8)[ebp],27 +cmp dword ptr (-4)[ebp],0 +je L2631 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2631: +L2629: +jmp L2633 +mov dword ptr (-8)[ebp],28 +cmp dword ptr (-4)[ebp],0 +je L2635 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2635: +L2633: +jmp L2637 +mov dword ptr (-8)[ebp],26 +cmp dword ptr (-4)[ebp],0 +je L2639 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2639: +L2637: +jmp L2641 +mov dword ptr (-8)[ebp],30 +cmp dword ptr (-4)[ebp],0 +je L2643 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2643: +L2641: +jmp L2645 +mov dword ptr (-8)[ebp],31 +cmp dword ptr (-4)[ebp],0 +je L2647 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2647: +L2645: +jmp L2649 +mov dword ptr (-8)[ebp],32 +cmp dword ptr (-4)[ebp],0 +je L2651 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2651: +L2649: +jmp L2653 +mov dword ptr (-8)[ebp],33 +cmp dword ptr (-4)[ebp],0 +je L2655 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2655: +L2653: +jmp L2657 +mov dword ptr (-8)[ebp],34 +cmp dword ptr (-4)[ebp],0 +je L2659 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2659: +L2657: +jmp L2661 +mov dword ptr (-8)[ebp],35 +cmp dword ptr (-4)[ebp],0 +je L2663 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2663: +L2661: +jmp L2665 +mov dword ptr (-8)[ebp],36 +cmp dword ptr (-4)[ebp],0 +je L2667 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2667: +L2665: +jmp L2669 +mov dword ptr (-8)[ebp],37 +cmp dword ptr (-4)[ebp],0 +je L2671 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2671: +L2669: +jmp L2673 +mov dword ptr (-8)[ebp],38 +cmp dword ptr (-4)[ebp],0 +je L2675 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2675: +L2673: +jmp L2677 +mov dword ptr (-8)[ebp],39 +cmp dword ptr (-4)[ebp],0 +je L2679 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2679: +L2677: +jmp L2681 +mov dword ptr (-8)[ebp],40 +cmp dword ptr (-4)[ebp],0 +je L2683 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2683: +L2681: +jmp L2685 +mov dword ptr (-8)[ebp],41 +cmp dword ptr (-4)[ebp],0 +je L2687 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2687: +L2685: +jmp L2689 +mov dword ptr (-8)[ebp],42 +cmp dword ptr (-4)[ebp],0 +je L2691 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2691: +L2689: +jmp L2693 +mov dword ptr (-8)[ebp],43 +cmp dword ptr (-4)[ebp],0 +je L2695 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2695: +L2693: +jmp L2697 +mov dword ptr (-8)[ebp],44 +cmp dword ptr (-4)[ebp],0 +je L2699 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2699: +L2697: +jmp L2701 +mov dword ptr (-8)[ebp],45 +cmp dword ptr (-4)[ebp],0 +je L2703 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2703: +L2701: +jmp L2705 +mov dword ptr (-8)[ebp],46 +cmp dword ptr (-4)[ebp],0 +je L2707 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2707: +L2705: +jmp L2709 +mov dword ptr (-8)[ebp],47 +cmp dword ptr (-4)[ebp],0 +je L2711 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2711: +L2709: +jmp L2713 +mov dword ptr (-8)[ebp],48 +cmp dword ptr (-4)[ebp],0 +je L2715 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2715: +L2713: +jmp L2717 +mov dword ptr (-8)[ebp],49 +cmp dword ptr (-4)[ebp],0 +je L2719 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2719: +L2717: +jmp L2721 +mov dword ptr (-8)[ebp],50 +cmp dword ptr (-4)[ebp],0 +je L2723 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2723: +L2721: +jmp L2725 +mov dword ptr (-8)[ebp],51 +cmp dword ptr (-4)[ebp],0 +je L2727 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2727: +L2725: +jmp L2729 +mov dword ptr (-8)[ebp],52 +cmp dword ptr (-4)[ebp],0 +je L2731 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2731: +L2729: +jmp L2733 +mov dword ptr (-8)[ebp],53 +cmp dword ptr (-4)[ebp],0 +je L2735 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2735: +L2733: +jmp L2737 +mov dword ptr (-8)[ebp],54 +cmp dword ptr (-4)[ebp],0 +je L2739 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2739: +L2737: +jmp L2741 +mov dword ptr (-8)[ebp],55 +cmp dword ptr (-4)[ebp],0 +je L2743 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2743: +L2741: +jmp L2745 +mov dword ptr (-8)[ebp],56 +cmp dword ptr (-4)[ebp],0 +je L2747 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2747: +L2745: +jmp L2749 +mov dword ptr (-8)[ebp],57 +cmp dword ptr (-4)[ebp],0 +je L2751 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2751: +L2749: +jmp L2753 +mov dword ptr (-8)[ebp],58 +cmp dword ptr (-4)[ebp],0 +je L2755 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2755: +L2753: +jmp L2757 +mov dword ptr (-8)[ebp],56 +cmp dword ptr (-4)[ebp],0 +je L2759 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2759: +L2757: +jmp L2761 +mov dword ptr (-8)[ebp],60 +cmp dword ptr (-4)[ebp],0 +je L2763 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2763: +L2761: +jmp L2765 +mov dword ptr (-8)[ebp],61 +cmp dword ptr (-4)[ebp],0 +je L2767 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2767: +L2765: +jmp L2769 +mov dword ptr (-8)[ebp],62 +cmp dword ptr (-4)[ebp],0 +je L2771 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2771: +L2769: +jmp L2773 +mov dword ptr (-8)[ebp],63 +cmp dword ptr (-4)[ebp],0 +je L2775 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2775: +L2773: +jmp L2777 +mov dword ptr (-8)[ebp],64 +cmp dword ptr (-4)[ebp],0 +je L2779 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2779: +L2777: +jmp L2781 +mov dword ptr (-8)[ebp],65 +cmp dword ptr (-4)[ebp],0 +je L2783 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2783: +L2781: +jmp L2785 +mov dword ptr (-8)[ebp],66 +cmp dword ptr (-4)[ebp],0 +je L2787 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2787: +L2785: +jmp L2789 +mov dword ptr (-8)[ebp],67 +cmp dword ptr (-4)[ebp],0 +je L2791 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2791: +L2789: +jmp L2793 +mov dword ptr (-8)[ebp],68 +cmp dword ptr (-4)[ebp],0 +je L2795 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2795: +L2793: +jmp L2797 +mov dword ptr (-8)[ebp],69 +cmp dword ptr (-4)[ebp],0 +je L2799 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2799: +L2797: +jmp L2801 +mov dword ptr (-8)[ebp],70 +cmp dword ptr (-4)[ebp],0 +je L2803 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2803: +L2801: +jmp L2805 +mov dword ptr (-8)[ebp],71 +cmp dword ptr (-4)[ebp],0 +je L2807 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2807: +L2805: +jmp L2809 +mov dword ptr (-8)[ebp],72 +cmp dword ptr (-4)[ebp],0 +je L2811 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2811: +L2809: +jmp L2813 +mov dword ptr (-8)[ebp],73 +cmp dword ptr (-4)[ebp],0 +je L2815 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2815: +L2813: +jmp L2817 +mov dword ptr (-8)[ebp],74 +cmp dword ptr (-4)[ebp],0 +je L2819 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2819: +L2817: +jmp L2821 +mov dword ptr (-8)[ebp],75 +cmp dword ptr (-4)[ebp],0 +je L2823 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2823: +L2821: +cmp dword ptr (-8)[ebp],0 +je L2825 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L2827 +push 1 +lea edi,(L2520) +push edi +call _printf +add esp,8 +L2827: +inc dword ptr (-32)[ebp] +L2825: +mov dword ptr (-8)[ebp],0 +mov dword ptr (-16)[ebp],0 +mov dword ptr (-12)[ebp],0 +mov edi,dword ptr (-12)[ebp] +lea esi,(1)[edi] +mov dword ptr (-12)[ebp],esi +cmp edi,0 +je L2830 +mov edi,dword ptr (-16)[ebp] +lea esi,(1)[edi] +mov dword ptr (-16)[ebp],esi +cmp edi,0 +je L2830 +mov dword ptr (-44)[ebp],1 +jmp L2831 +L2830: +mov dword ptr (-44)[ebp],0 +L2831: +mov edi,dword ptr (-44)[ebp] +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-12)[ebp],1 +je L2832 +mov dword ptr (-8)[ebp],1 +cmp dword ptr (-4)[ebp],0 +je L2834 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2834: +L2832: +cmp dword ptr (-16)[ebp],0 +je L2836 +mov dword ptr (-8)[ebp],2 +cmp dword ptr (-4)[ebp],0 +je L2838 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2838: +L2836: +cmp dword ptr (-20)[ebp],0 +je L2840 +mov dword ptr (-8)[ebp],3 +cmp dword ptr (-4)[ebp],0 +je L2842 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2842: +L2840: +cmp dword ptr (-12)[ebp],0 +je L2845 +mov edi,dword ptr (-16)[ebp] +lea esi,(1)[edi] +mov dword ptr (-16)[ebp],esi +cmp edi,0 +je L2845 +mov dword ptr (-48)[ebp],1 +jmp L2846 +L2845: +mov dword ptr (-48)[ebp],0 +L2846: +mov edi,dword ptr (-48)[ebp] +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-12)[ebp],1 +je L2847 +mov dword ptr (-8)[ebp],4 +cmp dword ptr (-4)[ebp],0 +je L2849 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2849: +L2847: +cmp dword ptr (-16)[ebp],1 +je L2851 +mov dword ptr (-8)[ebp],5 +cmp dword ptr (-4)[ebp],0 +je L2853 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2853: +L2851: +cmp dword ptr (-20)[ebp],0 +je L2855 +mov dword ptr (-8)[ebp],6 +cmp dword ptr (-4)[ebp],0 +je L2857 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2857: +L2855: +mov edi,dword ptr (-12)[ebp] +mov esi,edi +sub esi,1 +mov dword ptr (-12)[ebp],esi +cmp edi,0 +je L2860 +cmp dword ptr (-16)[ebp],0 +je L2860 +mov dword ptr (-52)[ebp],1 +jmp L2861 +L2860: +mov dword ptr (-52)[ebp],0 +L2861: +mov edi,dword ptr (-52)[ebp] +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-12)[ebp],0 +je L2862 +mov dword ptr (-8)[ebp],7 +cmp dword ptr (-4)[ebp],0 +je L2864 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2864: +L2862: +cmp dword ptr (-16)[ebp],1 +je L2866 +mov dword ptr (-8)[ebp],8 +cmp dword ptr (-4)[ebp],0 +je L2868 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2868: +L2866: +cmp dword ptr (-20)[ebp],1 +je L2870 +mov dword ptr (-8)[ebp],9 +cmp dword ptr (-4)[ebp],0 +je L2872 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2872: +L2870: +cmp dword ptr (-12)[ebp],0 +je L2875 +mov edi,dword ptr (-16)[ebp] +mov esi,edi +sub esi,1 +mov dword ptr (-16)[ebp],esi +cmp edi,0 +je L2875 +mov dword ptr (-56)[ebp],1 +jmp L2876 +L2875: +mov dword ptr (-56)[ebp],0 +L2876: +mov edi,dword ptr (-56)[ebp] +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-12)[ebp],0 +je L2877 +mov dword ptr (-8)[ebp],10 +cmp dword ptr (-4)[ebp],0 +je L2879 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2879: +L2877: +cmp dword ptr (-16)[ebp],1 +je L2881 +mov dword ptr (-8)[ebp],11 +cmp dword ptr (-4)[ebp],0 +je L2883 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2883: +L2881: +cmp dword ptr (-20)[ebp],0 +je L2885 +mov dword ptr (-8)[ebp],12 +cmp dword ptr (-4)[ebp],0 +je L2887 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2887: +L2885: +cmp dword ptr (-8)[ebp],0 +je L2889 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L2891 +push 2 +lea edi,(L2520) +push edi +call _printf +add esp,8 +L2891: +add dword ptr (-32)[ebp],2 +L2889: +mov dword ptr (-8)[ebp],0 +mov dword ptr (-16)[ebp],0 +mov dword ptr (-12)[ebp],0 +mov edi,dword ptr (-12)[ebp] +lea esi,(1)[edi] +mov dword ptr (-12)[ebp],esi +cmp edi,0 +jne L2896 +cmp dword ptr (-16)[ebp],0 +je L2894 +L2896: +mov dword ptr (-60)[ebp],1 +jmp L2895 +L2894: +mov dword ptr (-60)[ebp],0 +L2895: +mov edi,dword ptr (-60)[ebp] +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-12)[ebp],1 +je L2897 +mov dword ptr (-8)[ebp],1 +cmp dword ptr (-4)[ebp],0 +je L2899 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2899: +L2897: +cmp dword ptr (-16)[ebp],0 +je L2901 +mov dword ptr (-8)[ebp],2 +cmp dword ptr (-4)[ebp],0 +je L2903 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2903: +L2901: +cmp dword ptr (-20)[ebp],0 +je L2905 +mov dword ptr (-8)[ebp],3 +cmp dword ptr (-4)[ebp],0 +je L2907 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2907: +L2905: +mov edi,dword ptr (-16)[ebp] +lea esi,(1)[edi] +mov dword ptr (-16)[ebp],esi +cmp edi,0 +jne L2912 +cmp dword ptr (-12)[ebp],0 +je L2910 +L2912: +mov dword ptr (-64)[ebp],1 +jmp L2911 +L2910: +mov dword ptr (-64)[ebp],0 +L2911: +mov edi,dword ptr (-64)[ebp] +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-12)[ebp],1 +je L2913 +mov dword ptr (-8)[ebp],4 +cmp dword ptr (-4)[ebp],0 +je L2915 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2915: +L2913: +cmp dword ptr (-16)[ebp],1 +je L2917 +mov dword ptr (-8)[ebp],5 +cmp dword ptr (-4)[ebp],0 +je L2919 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2919: +L2917: +cmp dword ptr (-20)[ebp],1 +je L2921 +mov dword ptr (-8)[ebp],6 +cmp dword ptr (-4)[ebp],0 +je L2923 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2923: +L2921: +mov edi,dword ptr (-12)[ebp] +mov esi,edi +sub esi,1 +mov dword ptr (-12)[ebp],esi +cmp edi,0 +jne L2928 +mov edi,dword ptr (-16)[ebp] +mov esi,edi +sub esi,1 +mov dword ptr (-16)[ebp],esi +cmp edi,0 +je L2926 +L2928: +mov dword ptr (-68)[ebp],1 +jmp L2927 +L2926: +mov dword ptr (-68)[ebp],0 +L2927: +mov edi,dword ptr (-68)[ebp] +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-12)[ebp],0 +je L2929 +mov dword ptr (-8)[ebp],7 +cmp dword ptr (-4)[ebp],0 +je L2931 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2931: +L2929: +cmp dword ptr (-16)[ebp],1 +je L2933 +mov dword ptr (-8)[ebp],8 +cmp dword ptr (-4)[ebp],0 +je L2935 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2935: +L2933: +cmp dword ptr (-20)[ebp],1 +je L2937 +mov dword ptr (-8)[ebp],9 +cmp dword ptr (-4)[ebp],0 +je L2939 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2939: +L2937: +cmp dword ptr (-12)[ebp],0 +jne L2944 +mov edi,dword ptr (-16)[ebp] +mov esi,edi +sub esi,1 +mov dword ptr (-16)[ebp],esi +cmp edi,0 +je L2942 +L2944: +mov dword ptr (-72)[ebp],1 +jmp L2943 +L2942: +mov dword ptr (-72)[ebp],0 +L2943: +mov edi,dword ptr (-72)[ebp] +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-12)[ebp],0 +je L2945 +mov dword ptr (-8)[ebp],10 +cmp dword ptr (-4)[ebp],0 +je L2947 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2947: +L2945: +cmp dword ptr (-16)[ebp],0 +je L2949 +mov dword ptr (-8)[ebp],11 +cmp dword ptr (-4)[ebp],0 +je L2951 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2951: +L2949: +cmp dword ptr (-20)[ebp],1 +je L2953 +mov dword ptr (-8)[ebp],12 +cmp dword ptr (-4)[ebp],0 +je L2955 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L2519) +push edi +call _printf +add esp,8 +L2955: +L2953: +cmp dword ptr (-8)[ebp],0 +je L2957 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L2959 +push 4 +lea edi,(L2520) +push edi +call _printf +add esp,8 +L2959: +add dword ptr (-32)[ebp],4 +L2957: +mov dword ptr (-16)[ebp],0 +mov dword ptr (-12)[ebp],0 +mov dword ptr (-36)[ebp],0 +mov dword ptr (-40)[ebp],1 +cmp dword ptr (-40)[ebp],0 +je L2963 +mov edi,dword ptr (-36)[ebp] +mov dword ptr (-76)[ebp],edi +jmp L2964 +L2963: +cmp dword ptr (-40)[ebp],0 +je L2965 +mov edi,dword ptr (-12)[ebp] +lea esi,(1)[edi] +mov dword ptr (-12)[ebp],esi +mov dword ptr (-80)[ebp],edi +jmp L2966 +L2965: +mov edi,dword ptr (-16)[ebp] +lea esi,(1)[edi] +mov dword ptr (-16)[ebp],esi +mov dword ptr (-80)[ebp],edi +L2966: +mov edi,dword ptr (-80)[ebp] +mov dword ptr (-76)[ebp],edi +L2964: +mov edi,dword ptr (-76)[ebp] +mov dword ptr (-20)[ebp],edi +cmp dword ptr (-20)[ebp],0 +jne L2970 +cmp dword ptr (-12)[ebp],0 +jne L2970 +cmp dword ptr (-16)[ebp],0 +je L2967 +L2970: +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L2971 +push 8 +lea edi,(L2520) +push edi +call _printf +add esp,8 +L2971: +add dword ptr (-32)[ebp],8 +L2967: +cmp dword ptr (-40)[ebp],0 +je L2978 +mov edi,dword ptr (-36)[ebp] +mov dword ptr (-84)[ebp],edi +jmp L2979 +L2978: +mov dword ptr (-84)[ebp],1 +L2979: +cmp dword ptr (-84)[ebp],0 +jne L2977 +cmp dword ptr (-36)[ebp],0 +je L2980 +mov dword ptr (-88)[ebp],1 +jmp L2981 +L2980: +mov edi,dword ptr (-36)[ebp] +mov dword ptr (-88)[ebp],edi +L2981: +cmp dword ptr (-88)[ebp],0 +je L2973 +L2977: +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L2982 +push 16 +lea edi,(L2520) +push edi +call _printf +add esp,8 +L2982: +add dword ptr (-32)[ebp],16 +L2973: +mov eax,dword ptr (-32)[ebp] +L2518: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +align 1 +L2985 label byte +db 115 +db 56 +db 49 +db 44 +db 101 +db 114 +db 37 +db 100 +db 10 +db 0 +align 1 +L2986 label byte +db 115 +db 56 +db 49 +db 32 +db 32 +db 32 +db 32 +db 0 +align 1 +L2987 label byte +db 82 +db 101 +db 103 +db 105 +db 115 +db 116 +db 101 +db 114 +db 32 +db 99 +db 111 +db 117 +db 110 +db 116 +db 32 +db 102 +db 111 +db 114 +db 32 +db 37 +db 115 +db 32 +db 105 +db 115 +db 32 +db 117 +db 110 +db 114 +db 101 +db 108 +db 105 +db 97 +db 98 +db 108 +db 101 +db 46 +db 10 +db 0 +align 1 +L2988 label byte +db 37 +db 100 +db 32 +db 114 +db 101 +db 103 +db 105 +db 115 +db 116 +db 101 +db 114 +db 115 +db 32 +db 97 +db 115 +db 115 +db 105 +db 103 +db 110 +db 101 +db 100 +db 32 +db 116 +db 111 +db 32 +db 37 +db 115 +db 32 +db 118 +db 97 +db 114 +db 105 +db 97 +db 98 +db 108 +db 101 +db 115 +db 46 +db 10 +db 0 +public _s81 +_DATA ends +_TEXT segment +_s81: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,56 +mov dword ptr (-56)[ebp],0 +mov dword ptr (-44)[ebp],0 +mov dword ptr (-48)[ebp],0 +mov dword ptr (-52)[ebp],0 +lea edi,(L2986) +mov dword ptr (-36)[ebp],edi +mov edi,dword ptr (20)[ebp] +lea edi,(60)[edi] +mov dword ptr (-40)[ebp],edi +L2989: +L2990: +mov edi,dword ptr (-40)[ebp] +lea esi,(1)[edi] +mov dword ptr (-40)[ebp],esi +mov esi,dword ptr (-36)[ebp] +lea ebx,(1)[esi] +mov dword ptr (-36)[ebp],ebx +mov bl,byte ptr [esi] +mov byte ptr [edi],bl +movsx edi,bl +cmp edi,0 +jne L2989 +mov dword ptr (-16)[ebp],1 +mov dword ptr (-20)[ebp],0 +L2992: +mov edi,dword ptr (-16)[ebp] +mov ebx,edi +mov byte ptr (-1)[ebp],bl +mov byte ptr (-21)[ebp],bl +lea esi,(-16)[ebp] +mov dword ptr (-8)[ebp],esi +lea esi,(-16)[ebp] +mov dword ptr (-28)[ebp],esi +mov dword ptr (-12)[ebp],edi +mov dword ptr (-32)[ebp],edi +movsx edi,byte ptr (-1)[ebp] +movsx esi,byte ptr (-21)[ebp] +cmp edi,esi +je L2996 +mov dword ptr (-44)[ebp],1 +L2996: +mov edi,dword ptr (-8)[ebp] +mov esi,dword ptr (-28)[ebp] +cmp edi,esi +je L2998 +mov dword ptr (-48)[ebp],1 +L2998: +mov edi,dword ptr (-32)[ebp] +cmp dword ptr (-12)[ebp],edi +je L3000 +mov dword ptr (-52)[ebp],1 +L3000: +sal dword ptr (-16)[ebp],1 +L2993: +inc dword ptr (-20)[ebp] +cmp dword ptr (-20)[ebp],50 +jl L2992 +cmp dword ptr (-44)[ebp],0 +je L3002 +inc dword ptr (-56)[ebp] +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L3004 +push 1 +lea edi,(L2985) +push edi +call _printf +add esp,8 +L3004: +L3002: +cmp dword ptr (-48)[ebp],0 +je L3006 +add dword ptr (-56)[ebp],2 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L3008 +push 2 +lea edi,(L2985) +push edi +call _printf +add esp,8 +L3008: +L3006: +cmp dword ptr (-52)[ebp],0 +je L3010 +add dword ptr (-56)[ebp],4 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L3012 +push 4 +lea edi,(L2985) +push edi +call _printf +add esp,8 +L3012: +L3010: +call _regc +add esp,0 +mov dword ptr (-16)[ebp],eax +mov edi,dword ptr (20)[ebp] +cmp dword ptr (40)[edi],0 +je L3014 +cmp dword ptr (-16)[ebp],0 +jge L3016 +lea edi,(L425) +push edi +lea edi,(L2987) +push edi +call _printf +add esp,8 +jmp L3017 +L3016: +lea edi,(L425) +push edi +mov edi,dword ptr (-16)[ebp] +push edi +lea edi,(L2988) +push edi +call _printf +add esp,12 +L3017: +L3014: +call _regp +add esp,0 +mov dword ptr (-16)[ebp],eax +mov edi,dword ptr (20)[ebp] +cmp dword ptr (40)[edi],0 +je L3018 +cmp dword ptr (-16)[ebp],0 +jge L3020 +lea edi,(L3022) +push edi +lea edi,(L2987) +push edi +call _printf +add esp,8 +jmp L3021 +L3020: +lea edi,(L3022) +push edi +mov edi,dword ptr (-16)[ebp] +push edi +lea edi,(L2988) +push edi +call _printf +add esp,12 +L3021: +L3018: +call _regi +add esp,0 +mov dword ptr (-16)[ebp],eax +mov edi,dword ptr (20)[ebp] +cmp dword ptr (40)[edi],0 +je L3023 +cmp dword ptr (-16)[ebp],0 +jge L3025 +lea edi,(L426) +push edi +lea edi,(L2987) +push edi +call _printf +add esp,8 +jmp L3026 +L3025: +lea edi,(L426) +push edi +mov edi,dword ptr (-16)[ebp] +push edi +lea edi,(L2988) +push edi +call _printf +add esp,12 +L3026: +L3023: +mov eax,dword ptr (-56)[ebp] +L2984: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _regc +_regc: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,148 +mov byte ptr (-138)[ebp],0 +mov byte ptr (-117)[ebp],1 +mov byte ptr (-118)[ebp],2 +mov byte ptr (-119)[ebp],3 +mov byte ptr (-1)[ebp],4 +mov byte ptr (-120)[ebp],5 +mov byte ptr (-2)[ebp],6 +mov byte ptr (-121)[ebp],7 +mov byte ptr (-3)[ebp],8 +mov byte ptr (-122)[ebp],9 +mov byte ptr (-4)[ebp],10 +mov byte ptr (-123)[ebp],11 +mov byte ptr (-5)[ebp],12 +mov byte ptr (-124)[ebp],13 +mov byte ptr (-6)[ebp],14 +mov byte ptr (-125)[ebp],15 +mov byte ptr (-7)[ebp],16 +mov byte ptr (-126)[ebp],17 +mov byte ptr (-8)[ebp],18 +mov byte ptr (-127)[ebp],19 +mov byte ptr (-9)[ebp],20 +mov byte ptr (-128)[ebp],21 +mov byte ptr (-10)[ebp],22 +mov byte ptr (-129)[ebp],23 +mov byte ptr (-11)[ebp],24 +mov byte ptr (-130)[ebp],25 +mov byte ptr (-12)[ebp],26 +mov byte ptr (-131)[ebp],27 +mov byte ptr (-13)[ebp],28 +mov byte ptr (-132)[ebp],29 +mov byte ptr (-14)[ebp],30 +mov byte ptr (-133)[ebp],31 +mov byte ptr (-15)[ebp],32 +mov byte ptr (-134)[ebp],33 +mov byte ptr (-16)[ebp],34 +mov byte ptr (-135)[ebp],35 +mov byte ptr (-136)[ebp],36 +mov byte ptr (-137)[ebp],37 +mov byte ptr (-139)[ebp],38 +lea edi,(-117)[ebp] +lea esi,(-138)[ebp] +mov ebx,edi +sub ebx,esi +mov esi,ebx +mov dword ptr (-104)[ebp],esi +lea esi,(-118)[ebp] +sub esi,edi +mov edi,esi +mov dword ptr (-100)[ebp],edi +lea edi,(-119)[ebp] +lea esi,(-118)[ebp] +sub edi,esi +mov dword ptr (-96)[ebp],edi +lea edi,(-120)[ebp] +lea esi,(-119)[ebp] +sub edi,esi +mov dword ptr (-92)[ebp],edi +lea edi,(-121)[ebp] +lea esi,(-120)[ebp] +sub edi,esi +mov dword ptr (-88)[ebp],edi +lea edi,(-122)[ebp] +lea esi,(-121)[ebp] +sub edi,esi +mov dword ptr (-84)[ebp],edi +lea edi,(-123)[ebp] +lea esi,(-122)[ebp] +sub edi,esi +mov dword ptr (-80)[ebp],edi +lea edi,(-124)[ebp] +lea esi,(-123)[ebp] +sub edi,esi +mov dword ptr (-76)[ebp],edi +lea edi,(-125)[ebp] +lea esi,(-124)[ebp] +sub edi,esi +mov dword ptr (-72)[ebp],edi +lea edi,(-126)[ebp] +lea esi,(-125)[ebp] +sub edi,esi +mov dword ptr (-68)[ebp],edi +lea edi,(-127)[ebp] +lea esi,(-126)[ebp] +sub edi,esi +mov dword ptr (-64)[ebp],edi +lea edi,(-128)[ebp] +lea esi,(-127)[ebp] +sub edi,esi +mov dword ptr (-60)[ebp],edi +lea edi,(-129)[ebp] +lea esi,(-128)[ebp] +sub edi,esi +mov dword ptr (-56)[ebp],edi +lea edi,(-130)[ebp] +lea esi,(-129)[ebp] +sub edi,esi +mov dword ptr (-52)[ebp],edi +lea edi,(-131)[ebp] +lea esi,(-130)[ebp] +sub edi,esi +mov dword ptr (-48)[ebp],edi +lea edi,(-132)[ebp] +lea esi,(-131)[ebp] +sub edi,esi +mov dword ptr (-44)[ebp],edi +lea edi,(-133)[ebp] +lea esi,(-132)[ebp] +sub edi,esi +mov dword ptr (-40)[ebp],edi +lea edi,(-134)[ebp] +lea esi,(-133)[ebp] +sub edi,esi +mov dword ptr (-36)[ebp],edi +lea edi,(-135)[ebp] +lea esi,(-134)[ebp] +sub edi,esi +mov dword ptr (-32)[ebp],edi +lea edi,(-136)[ebp] +lea esi,(-135)[ebp] +sub edi,esi +mov dword ptr (-28)[ebp],edi +lea edi,(-137)[ebp] +lea esi,(-136)[ebp] +sub edi,esi +mov dword ptr (-24)[ebp],edi +lea edi,(-139)[ebp] +lea esi,(-137)[ebp] +sub edi,esi +mov dword ptr (-20)[ebp],edi +mov edi,dword ptr (-104)[ebp] +mov dword ptr (-116)[ebp],edi +mov dword ptr (-112)[ebp],1 +mov dword ptr (-108)[ebp],0 +L3049: +mov edi,dword ptr (-112)[ebp] +cmp edi,1 +je L3055 +cmp edi,2 +je L3058 +cmp edi,3 +je L3063 +jmp L3053 +L3055: +mov edi,dword ptr (-108)[ebp] +mov esi,dword ptr (-116)[ebp] +cmp dword ptr (-104)[ebp][edi*4],esi +je L3054 +mov edi,dword ptr (-108)[ebp] +mov edi,dword ptr (-104)[ebp][edi*4] +mov dword ptr (-148)[ebp],edi +mov dword ptr (-112)[ebp],2 +mov dword ptr (-144)[ebp],1 +jmp L3054 +L3058: +mov edi,dword ptr (-108)[ebp] +mov esi,dword ptr (-116)[ebp] +cmp dword ptr (-104)[ebp][edi*4],esi +jne L3059 +mov dword ptr (-112)[ebp],3 +jmp L3054 +L3059: +mov edi,dword ptr (-108)[ebp] +mov esi,dword ptr (-148)[ebp] +cmp dword ptr (-104)[ebp][edi*4],esi +jne L3061 +inc dword ptr (-144)[ebp] +jmp L3054 +L3061: +mov dword ptr (-112)[ebp],4 +jmp L3054 +L3063: +mov edi,dword ptr (-108)[ebp] +mov esi,dword ptr (-116)[ebp] +cmp dword ptr (-104)[ebp][edi*4],esi +je L3054 +mov dword ptr (-112)[ebp],4 +L3053: +L3054: +L3050: +inc dword ptr (-108)[ebp] +cmp dword ptr (-108)[ebp],22 +jl L3049 +cmp dword ptr (-112)[ebp],3 +jne L3066 +mov edi,16 +mov eax,edi +sub eax,dword ptr (-144)[ebp] +jmp L3027 +L3066: +mov eax,-1 +L3027: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _regi +_regi: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,264 +mov dword ptr (-252)[ebp],0 +mov dword ptr (-168)[ebp],1 +mov dword ptr (-172)[ebp],2 +mov dword ptr (-176)[ebp],3 +mov dword ptr (-4)[ebp],4 +mov dword ptr (-180)[ebp],5 +mov dword ptr (-8)[ebp],6 +mov dword ptr (-184)[ebp],7 +mov dword ptr (-12)[ebp],8 +mov dword ptr (-188)[ebp],9 +mov dword ptr (-16)[ebp],10 +mov dword ptr (-192)[ebp],11 +mov dword ptr (-20)[ebp],12 +mov dword ptr (-196)[ebp],13 +mov dword ptr (-24)[ebp],14 +mov dword ptr (-200)[ebp],15 +mov dword ptr (-28)[ebp],16 +mov dword ptr (-204)[ebp],17 +mov dword ptr (-32)[ebp],18 +mov dword ptr (-208)[ebp],19 +mov dword ptr (-36)[ebp],20 +mov dword ptr (-212)[ebp],21 +mov dword ptr (-40)[ebp],22 +mov dword ptr (-216)[ebp],23 +mov dword ptr (-44)[ebp],24 +mov dword ptr (-220)[ebp],25 +mov dword ptr (-48)[ebp],26 +mov dword ptr (-224)[ebp],27 +mov dword ptr (-52)[ebp],28 +mov dword ptr (-228)[ebp],29 +mov dword ptr (-56)[ebp],30 +mov dword ptr (-232)[ebp],31 +mov dword ptr (-60)[ebp],32 +mov dword ptr (-236)[ebp],33 +mov dword ptr (-64)[ebp],34 +mov dword ptr (-240)[ebp],35 +mov dword ptr (-244)[ebp],36 +mov dword ptr (-248)[ebp],37 +mov dword ptr (-256)[ebp],38 +lea edi,(-168)[ebp] +mov esi,4 +lea ebx,(-252)[ebp] +mov edx,edi +sub edx,ebx +mov eax,edx +cdq +idiv esi +mov dword ptr (-152)[ebp],eax +lea ebx,(-172)[ebp] +sub ebx,edi +mov eax,ebx +cdq +idiv esi +mov dword ptr (-148)[ebp],eax +lea edi,(-176)[ebp] +lea esi,(-172)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-144)[ebp],eax +lea edi,(-180)[ebp] +lea esi,(-176)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-140)[ebp],eax +lea edi,(-184)[ebp] +lea esi,(-180)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-136)[ebp],eax +lea edi,(-188)[ebp] +lea esi,(-184)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-132)[ebp],eax +lea edi,(-192)[ebp] +lea esi,(-188)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-128)[ebp],eax +lea edi,(-196)[ebp] +lea esi,(-192)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-124)[ebp],eax +lea edi,(-200)[ebp] +lea esi,(-196)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-120)[ebp],eax +lea edi,(-204)[ebp] +lea esi,(-200)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-116)[ebp],eax +lea edi,(-208)[ebp] +lea esi,(-204)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-112)[ebp],eax +lea edi,(-212)[ebp] +lea esi,(-208)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-108)[ebp],eax +lea edi,(-216)[ebp] +lea esi,(-212)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-104)[ebp],eax +lea edi,(-220)[ebp] +lea esi,(-216)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-100)[ebp],eax +lea edi,(-224)[ebp] +lea esi,(-220)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-96)[ebp],eax +lea edi,(-228)[ebp] +lea esi,(-224)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-92)[ebp],eax +lea edi,(-232)[ebp] +lea esi,(-228)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-88)[ebp],eax +lea edi,(-236)[ebp] +lea esi,(-232)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-84)[ebp],eax +lea edi,(-240)[ebp] +lea esi,(-236)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-80)[ebp],eax +lea edi,(-244)[ebp] +lea esi,(-240)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-76)[ebp],eax +lea edi,(-248)[ebp] +lea esi,(-244)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-72)[ebp],eax +lea edi,(-256)[ebp] +lea esi,(-248)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-68)[ebp],eax +mov edi,dword ptr (-152)[ebp] +mov dword ptr (-164)[ebp],edi +mov dword ptr (-160)[ebp],1 +mov dword ptr (-156)[ebp],0 +L3090: +mov edi,dword ptr (-160)[ebp] +cmp edi,1 +je L3096 +cmp edi,2 +je L3099 +cmp edi,3 +je L3104 +jmp L3094 +L3096: +mov edi,dword ptr (-156)[ebp] +mov esi,dword ptr (-164)[ebp] +cmp dword ptr (-152)[ebp][edi*4],esi +je L3095 +mov edi,dword ptr (-156)[ebp] +mov edi,dword ptr (-152)[ebp][edi*4] +mov dword ptr (-264)[ebp],edi +mov dword ptr (-160)[ebp],2 +mov dword ptr (-260)[ebp],1 +jmp L3095 +L3099: +mov edi,dword ptr (-156)[ebp] +mov esi,dword ptr (-164)[ebp] +cmp dword ptr (-152)[ebp][edi*4],esi +jne L3100 +mov dword ptr (-160)[ebp],3 +jmp L3095 +L3100: +mov edi,dword ptr (-156)[ebp] +mov esi,dword ptr (-264)[ebp] +cmp dword ptr (-152)[ebp][edi*4],esi +jne L3102 +inc dword ptr (-260)[ebp] +jmp L3095 +L3102: +mov dword ptr (-160)[ebp],4 +jmp L3095 +L3104: +mov edi,dword ptr (-156)[ebp] +mov esi,dword ptr (-164)[ebp] +cmp dword ptr (-152)[ebp][edi*4],esi +je L3095 +mov dword ptr (-160)[ebp],4 +L3094: +L3095: +L3091: +inc dword ptr (-156)[ebp] +cmp dword ptr (-156)[ebp],22 +jl L3090 +cmp dword ptr (-160)[ebp],3 +jne L3107 +mov edi,16 +mov eax,edi +sub eax,dword ptr (-260)[ebp] +jmp L3068 +L3107: +mov eax,-1 +L3068: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _regp +_regp: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,264 +lea edi,(-252)[ebp] +mov dword ptr (-252)[ebp],edi +lea edi,(-228)[ebp] +mov dword ptr (-228)[ebp],edi +lea edi,(-232)[ebp] +mov dword ptr (-232)[ebp],edi +lea edi,(-236)[ebp] +mov dword ptr (-236)[ebp],edi +lea edi,(-164)[ebp] +mov dword ptr (-4)[ebp],edi +lea edi,(-164)[ebp] +mov dword ptr (-164)[ebp],edi +lea edi,(-168)[ebp] +mov dword ptr (-8)[ebp],edi +lea edi,(-168)[ebp] +mov dword ptr (-168)[ebp],edi +lea edi,(-172)[ebp] +mov dword ptr (-12)[ebp],edi +lea edi,(-172)[ebp] +mov dword ptr (-172)[ebp],edi +lea edi,(-176)[ebp] +mov dword ptr (-16)[ebp],edi +lea edi,(-176)[ebp] +mov dword ptr (-176)[ebp],edi +lea edi,(-180)[ebp] +mov dword ptr (-20)[ebp],edi +lea edi,(-180)[ebp] +mov dword ptr (-180)[ebp],edi +lea edi,(-184)[ebp] +mov dword ptr (-24)[ebp],edi +lea edi,(-184)[ebp] +mov dword ptr (-184)[ebp],edi +lea edi,(-188)[ebp] +mov dword ptr (-28)[ebp],edi +lea edi,(-188)[ebp] +mov dword ptr (-188)[ebp],edi +lea edi,(-192)[ebp] +mov dword ptr (-32)[ebp],edi +lea edi,(-192)[ebp] +mov dword ptr (-192)[ebp],edi +lea edi,(-196)[ebp] +mov dword ptr (-36)[ebp],edi +lea edi,(-196)[ebp] +mov dword ptr (-196)[ebp],edi +lea edi,(-200)[ebp] +mov dword ptr (-40)[ebp],edi +lea edi,(-200)[ebp] +mov dword ptr (-200)[ebp],edi +lea edi,(-204)[ebp] +mov dword ptr (-44)[ebp],edi +lea edi,(-204)[ebp] +mov dword ptr (-204)[ebp],edi +lea edi,(-208)[ebp] +mov dword ptr (-48)[ebp],edi +lea edi,(-208)[ebp] +mov dword ptr (-208)[ebp],edi +lea edi,(-212)[ebp] +mov dword ptr (-52)[ebp],edi +lea edi,(-212)[ebp] +mov dword ptr (-212)[ebp],edi +lea edi,(-216)[ebp] +mov dword ptr (-56)[ebp],edi +lea edi,(-216)[ebp] +mov dword ptr (-216)[ebp],edi +lea edi,(-220)[ebp] +mov dword ptr (-60)[ebp],edi +lea edi,(-220)[ebp] +mov dword ptr (-220)[ebp],edi +lea edi,(-224)[ebp] +mov dword ptr (-64)[ebp],edi +lea edi,(-224)[ebp] +mov dword ptr (-224)[ebp],edi +lea edi,(-240)[ebp] +mov dword ptr (-240)[ebp],edi +lea edi,(-244)[ebp] +mov dword ptr (-244)[ebp],edi +lea edi,(-256)[ebp] +mov dword ptr (-256)[ebp],edi +lea edi,(-228)[ebp] +mov esi,4 +lea ebx,(-252)[ebp] +mov edx,edi +sub edx,ebx +mov eax,edx +cdq +idiv esi +mov dword ptr (-152)[ebp],eax +lea ebx,(-232)[ebp] +sub ebx,edi +mov eax,ebx +cdq +idiv esi +mov dword ptr (-148)[ebp],eax +lea edi,(-236)[ebp] +lea esi,(-232)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-144)[ebp],eax +lea edi,(-164)[ebp] +lea esi,(-236)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-140)[ebp],eax +lea edi,(-168)[ebp] +lea esi,(-164)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-136)[ebp],eax +lea edi,(-172)[ebp] +lea esi,(-168)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-132)[ebp],eax +lea edi,(-176)[ebp] +lea esi,(-172)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-128)[ebp],eax +lea edi,(-180)[ebp] +lea esi,(-176)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-124)[ebp],eax +lea edi,(-184)[ebp] +lea esi,(-180)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-120)[ebp],eax +lea edi,(-188)[ebp] +lea esi,(-184)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-116)[ebp],eax +lea edi,(-192)[ebp] +lea esi,(-188)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-112)[ebp],eax +lea edi,(-196)[ebp] +lea esi,(-192)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-108)[ebp],eax +lea edi,(-200)[ebp] +lea esi,(-196)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-104)[ebp],eax +lea edi,(-204)[ebp] +lea esi,(-200)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-100)[ebp],eax +lea edi,(-208)[ebp] +lea esi,(-204)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-96)[ebp],eax +lea edi,(-212)[ebp] +lea esi,(-208)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-92)[ebp],eax +lea edi,(-216)[ebp] +lea esi,(-212)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-88)[ebp],eax +lea edi,(-220)[ebp] +lea esi,(-216)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-84)[ebp],eax +lea edi,(-224)[ebp] +lea esi,(-220)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-80)[ebp],eax +lea edi,(-240)[ebp] +lea esi,(-224)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-76)[ebp],eax +lea edi,(-244)[ebp] +lea esi,(-240)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-72)[ebp],eax +lea edi,(-256)[ebp] +lea esi,(-244)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +mov dword ptr (-68)[ebp],eax +mov edi,dword ptr (-152)[ebp] +mov dword ptr (-248)[ebp],edi +mov dword ptr (-160)[ebp],1 +mov dword ptr (-156)[ebp],0 +L3131: +mov edi,dword ptr (-160)[ebp] +cmp edi,1 +je L3137 +cmp edi,2 +je L3140 +cmp edi,3 +je L3145 +jmp L3135 +L3137: +mov edi,dword ptr (-156)[ebp] +mov esi,dword ptr (-248)[ebp] +cmp dword ptr (-152)[ebp][edi*4],esi +je L3136 +mov edi,dword ptr (-156)[ebp] +mov edi,dword ptr (-152)[ebp][edi*4] +mov dword ptr (-264)[ebp],edi +mov dword ptr (-160)[ebp],2 +mov dword ptr (-260)[ebp],1 +jmp L3136 +L3140: +mov edi,dword ptr (-156)[ebp] +mov esi,dword ptr (-248)[ebp] +cmp dword ptr (-152)[ebp][edi*4],esi +jne L3141 +mov dword ptr (-160)[ebp],3 +jmp L3136 +L3141: +mov edi,dword ptr (-156)[ebp] +mov esi,dword ptr (-264)[ebp] +cmp dword ptr (-152)[ebp][edi*4],esi +jne L3143 +inc dword ptr (-260)[ebp] +jmp L3136 +L3143: +mov dword ptr (-160)[ebp],4 +jmp L3136 +L3145: +mov edi,dword ptr (-156)[ebp] +mov esi,dword ptr (-248)[ebp] +cmp dword ptr (-152)[ebp][edi*4],esi +je L3136 +mov dword ptr (-160)[ebp],4 +L3135: +L3136: +L3132: +inc dword ptr (-156)[ebp] +cmp dword ptr (-156)[ebp],22 +jl L3131 +cmp dword ptr (-160)[ebp],3 +jne L3148 +mov edi,16 +mov eax,edi +sub eax,dword ptr (-260)[ebp] +jmp L3109 +L3148: +mov eax,-1 +L3109: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +align 4 +L3151 label byte +db 420 dup (0) +_DATA ends +_DATA segment +align 1 +L3152 label byte +db 115 +db 56 +db 52 +db 44 +db 101 +db 114 +db 37 +db 100 +db 10 +db 0 +align 1 +L3153 label byte +db 115 +db 56 +db 52 +db 32 +db 32 +db 32 +db 32 +db 0 +public _s84 +_DATA ends +_TEXT segment +_s84: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,172 +lea edi,(L3153) +mov dword ptr (-156)[ebp],edi +mov edi,dword ptr (20)[ebp] +lea edi,(60)[edi] +mov dword ptr (-160)[ebp],edi +mov dword ptr (-164)[ebp],0 +L3154: +L3155: +mov edi,dword ptr (-160)[ebp] +lea esi,(1)[edi] +mov dword ptr (-160)[ebp],esi +mov esi,dword ptr (-156)[ebp] +lea ebx,(1)[esi] +mov dword ptr (-156)[ebp],ebx +mov bl,byte ptr [esi] +mov byte ptr [edi],bl +movsx edi,bl +cmp edi,0 +jne L3154 +push 3 +call _fip +add esp,4 +mov dword ptr (-168)[ebp],eax +mov edi,dword ptr (-168)[ebp] +cmp dword ptr [edi],3 +je L3157 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L3159 +push 1 +lea edi,(L3152) +push edi +call _printf +add esp,8 +L3159: +inc dword ptr (-164)[ebp] +L3157: +lea edi,(_glork) +mov dword ptr (-172)[ebp],edi +push 4 +call dword ptr (-172)[ebp] +add esp,4 +cmp eax,4 +je L3161 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L3163 +push 2 +lea edi,(L3152) +push edi +call _printf +add esp,8 +L3163: +add dword ptr (-164)[ebp],2 +L3161: +mov dword ptr (-8)[ebp],0 +L3165: +mov edi,dword ptr (-8)[ebp] +push edi +fild dword ptr 0[esp] +add esp,4 +fstp dword ptr (-80)[ebp][edi*4] +mov edi,dword ptr (-8)[ebp] +lea edi,[edi*4] +lea esi,(-80)[ebp][edi] +mov dword ptr (-148)[ebp][edi],esi +L3166: +inc dword ptr (-8)[ebp] +cmp dword ptr (-8)[ebp],17 +jl L3165 +fld dword ptr (L412) +fstp dword ptr (-152)[ebp] +mov dword ptr (-8)[ebp],0 +L3169: +fld dword ptr (-152)[ebp] +mov edi,dword ptr (-8)[ebp] +mov edi,dword ptr (-148)[ebp][edi*4] +fadd dword ptr [edi] +fstp dword ptr (-152)[ebp] +L3170: +inc dword ptr (-8)[ebp] +cmp dword ptr (-8)[ebp],17 +jl L3169 +fld dword ptr (L3175) +fcomp dword ptr (-152)[ebp] +fstsw ax +sahf +je L3173 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L3176 +push 4 +lea edi,(L3152) +push edi +call _printf +add esp,8 +L3176: +add dword ptr (-164)[ebp],4 +L3173: +mov dword ptr (-12)[ebp],0 +L3178: +mov dword ptr (-8)[ebp],0 +L3182: +mov dword ptr (-4)[ebp],0 +L3186: +mov edi,dword ptr (-4)[ebp] +mov esi,dword ptr (-8)[ebp] +mov ebx,dword ptr (-12)[ebp] +imul edx,esi,28 +imul ecx,ebx,140 +lea edx,(L3151)[ecx][edx] +imul ebx,ebx,35 +imul esi,esi,7 +lea esi,[esi][ebx] +lea esi,[edi][esi] +mov dword ptr [edx][edi*4],esi +L3187: +inc dword ptr (-4)[ebp] +cmp dword ptr (-4)[ebp],7 +jl L3186 +L3183: +inc dword ptr (-8)[ebp] +cmp dword ptr (-8)[ebp],5 +jl L3182 +L3179: +inc dword ptr (-12)[ebp] +cmp dword ptr (-12)[ebp],3 +jl L3178 +mov dword ptr (-12)[ebp],1 +mov dword ptr (-8)[ebp],2 +mov dword ptr (-4)[ebp],3 +push 0 +push 105 +lea edi,(L3151) +push edi +call _array +add esp,12 +mov edi,eax +push 35 +push 35 +imul esi,dword ptr (-12)[ebp],140 +lea esi,(L3151)[esi] +push esi +call _array +add esp,12 +mov esi,eax +push 49 +push 7 +imul ebx,dword ptr (-8)[ebp],28 +imul edx,dword ptr (-12)[ebp],140 +lea ebx,(L3151)[edx][ebx] +push ebx +call _array +add esp,12 +lea edi,[esi][edi] +lea edi,[eax][edi] +mov esi,dword ptr (-4)[ebp] +imul ebx,dword ptr (-8)[ebp],28 +imul edx,dword ptr (-12)[ebp],140 +lea ebx,(L3151)[edx][ebx] +mov esi,dword ptr [ebx][esi*4] +lea edi,[esi][edi] +sub edi,52 +cmp edi,0 +je L3190 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L3192 +push 8 +lea edi,(L3152) +push edi +call _printf +add esp,8 +L3192: +add dword ptr (-164)[ebp],8 +L3190: +mov eax,dword ptr (-164)[ebp] +L3150: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _array +_array: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,4 +mov dword ptr (-4)[ebp],0 +jmp L3198 +L3195: +mov edi,dword ptr (-4)[ebp] +mov esi,dword ptr (20)[ebp] +mov ebx,dword ptr (28)[ebp] +lea ebx,[ebx][edi] +cmp dword ptr [esi][edi*4],ebx +je L3199 +mov eax,1 +jmp L3194 +L3199: +L3196: +inc dword ptr (-4)[ebp] +L3198: +mov edi,dword ptr (24)[ebp] +cmp dword ptr (-4)[ebp],edi +jl L3195 +mov eax,0 +L3194: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +align 4 +L3202 label byte +db 4 dup (0) +public _fip +_DATA ends +_TEXT segment +_fip: +push ebx +push esi +push edi +push ebp +mov ebp,esp +lea edi,(L3202) +mov esi,dword ptr (20)[ebp] +mov dword ptr (L3202),esi +mov eax,edi +L3201: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _glork +_glork: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov eax,dword ptr (20)[ebp] +L3203: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +align 1 +L3205 label byte +db 115 +db 56 +db 53 +db 44 +db 101 +db 114 +db 37 +db 100 +db 10 +db 0 +align 1 +L3206 label byte +db 115 +db 56 +db 53 +db 32 +db 32 +db 32 +db 32 +db 0 +align 4 +L3214 label byte +dd L425 +dd L427 +dd L426 +dd L428 +dd L429 +dd L430 +dd L431 +align 1 +L3215 label byte +db 32 +db 97 +db 108 +db 105 +db 103 +db 110 +db 109 +db 101 +db 110 +db 116 +db 58 +db 32 +db 0 +public _s85 +_DATA ends +_TEXT segment +_s85: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,404 +lea edi,(L3206) +mov dword ptr (-276)[ebp],edi +mov edi,dword ptr (20)[ebp] +lea edi,(60)[edi] +mov dword ptr (-280)[ebp],edi +mov dword ptr (-320)[ebp],0 +L3219: +L3220: +mov edi,dword ptr (-280)[ebp] +lea esi,(1)[edi] +mov dword ptr (-280)[ebp],esi +mov esi,dword ptr (-276)[ebp] +lea ebx,(1)[esi] +mov dword ptr (-276)[ebp],ebx +mov bl,byte ptr [esi] +mov byte ptr [edi],bl +movsx edi,bl +cmp edi,0 +jne L3219 +lea edi,(-296)[ebp] +lea esi,(-316)[ebp] +sub edi,esi +cmp edi,0 +jle L3230 +lea edi,(-292)[ebp] +lea esi,(-296)[ebp] +sub edi,esi +cmp edi,0 +jle L3230 +lea edi,(-288)[ebp] +lea esi,(-292)[ebp] +sub edi,esi +cmp edi,0 +jg L3222 +L3230: +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L3231 +push 1 +lea edi,(L3205) +push edi +call _printf +add esp,8 +L3231: +inc dword ptr (-320)[ebp] +L3222: +lea edi,(-355)[ebp] +lea esi,(-356)[ebp] +sub edi,esi +mov dword ptr (-272)[ebp],edi +lea edi,(-358)[ebp] +lea esi,(-360)[ebp] +sub edi,esi +mov dword ptr (-268)[ebp],edi +lea edi,(-364)[ebp] +lea esi,(-368)[ebp] +sub edi,esi +mov dword ptr (-264)[ebp],edi +lea edi,(-372)[ebp] +lea esi,(-376)[ebp] +sub edi,esi +mov dword ptr (-260)[ebp],edi +lea edi,(-380)[ebp] +lea esi,(-384)[ebp] +sub edi,esi +mov dword ptr (-256)[ebp],edi +lea edi,(-388)[ebp] +lea esi,(-392)[ebp] +sub edi,esi +mov dword ptr (-252)[ebp],edi +lea edi,(-400)[ebp] +lea esi,(-404)[ebp] +sub edi,esi +mov dword ptr (-248)[ebp],edi +mov edi,dword ptr (20)[ebp] +cmp dword ptr (40)[edi],0 +je L3246 +mov dword ptr (-244)[ebp],0 +L3248: +mov edi,dword ptr (-244)[ebp] +lea edi,[edi*4] +mov esi,dword ptr (-272)[ebp][edi] +push esi +lea esi,(L3215) +push esi +mov edi,dword ptr (L3214)[edi] +push edi +lea edi,(L3252) +push edi +call _printf +add esp,16 +L3249: +inc dword ptr (-244)[ebp] +cmp dword ptr (-244)[ebp],7 +jl L3248 +L3246: +mov edi,dword ptr (-284)[ebp] +or edi,56 +mov dword ptr (-284)[ebp],edi +mov edi,dword ptr (-284)[ebp] +mov esi,edi +and esi,0fffffffcH +sal edi,26 +sar edi,29 +sal edi,30 +sar edi,30 +and edi,3 +or esi,edi +mov dword ptr (-284)[ebp],esi +mov edi,dword ptr (-284)[ebp] +mov esi,edi +and esi,0ffffffc7H +sal edi,30 +sar edi,30 +sal edi,29 +sar edi,29 +lea edi,[edi*8] +and edi,56 +or esi,edi +mov dword ptr (-284)[ebp],esi +mov edi,dword ptr (-284)[ebp] +sal edi,26 +sar edi,29 +cmp edi,3 +je L3253 +mov edi,dword ptr (-284)[ebp] +sal edi,26 +sar edi,29 +cmp edi,-1 +jne L3255 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (40)[edi],0 +je L3256 +lea edi,(L3259) +push edi +call _printf +add esp,4 +jmp L3256 +L3255: +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L3260 +push 2 +lea edi,(L3205) +push edi +call _printf +add esp,8 +L3260: +add dword ptr (-320)[ebp],2 +L3256: +L3253: +mov edi,dword ptr (-284)[ebp] +or edi,64 +mov dword ptr (-284)[ebp],edi +mov edi,dword ptr (-284)[ebp] +sal edi,25 +sar edi,31 +cmp edi,1 +je L3262 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (40)[edi],0 +je L3264 +lea edi,(L3266) +push edi +call _printf +add esp,4 +L3264: +L3262: +lea edi,(-240)[ebp] +mov esi,edi +sub esi,edi +cmp esi,0 +jne L3274 +cmp esi,0 +jne L3274 +cmp esi,0 +jne L3274 +cmp esi,0 +jne L3274 +cmp esi,0 +jne L3274 +cmp esi,0 +jne L3274 +cmp esi,0 +je L3267 +L3274: +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L3275 +push 4 +lea edi,(L3205) +push edi +call _printf +add esp,8 +L3275: +add dword ptr (-320)[ebp],4 +L3267: +jmp L3277 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L3279 +push 8 +lea edi,(L3205) +push edi +call _printf +add esp,8 +L3279: +add dword ptr (-320)[ebp],8 +L3277: +lea edi,(-352)[ebp] +mov dword ptr (-288)[ebp],edi +mov byte ptr (-352)[ebp],2 +mov edi,dword ptr (-288)[ebp] +movsx esi,byte ptr [edi] +lea esi,(1)[esi] +mov ebx,esi +mov byte ptr [edi],bl +movsx edi,byte ptr (-352)[ebp] +cmp edi,3 +je L3283 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L3285 +push 16 +lea edi,(L3205) +push edi +call _printf +add esp,8 +L3285: +add dword ptr (-320)[ebp],16 +L3283: +mov eax,dword ptr (-320)[ebp] +L3204: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +align 1 +L3288 label byte +db 115 +db 56 +db 54 +db 44 +db 101 +db 114 +db 37 +db 100 +db 10 +db 0 +align 1 +L3289 label byte +db 115 +db 56 +db 54 +db 32 +db 32 +db 32 +db 32 +db 0 +align 4 +L3290 label byte +dd 1 +dd 3 +dd 5 +align 4 +L3291 label byte +dd L3290+8 +_DATA ends +_DATA segment +align 4 +L3293 label byte +db 40 dup (0) +_DATA ends +_DATA segment +align 4 +L3294 label byte +dd 03f800000H +dd 040400000H +dd 040a00000H +dd 040000000H +dd 040800000H +dd 040c00000H +dd 040400000H +dd 040a00000H +dd 040e00000H +dd 00H +dd 00H +dd 00H +align 4 +L3295 label byte +dd 03f800000H +dd 040400000H +dd 040a00000H +dd 040000000H +dd 040800000H +dd 040c00000H +dd 040400000H +dd 040a00000H +dd 040e00000H +db 12 dup (0) +align 4 +L3296 label byte +dd 03f800000H +dd 040400000H +dd 040a00000H +dd 040000000H +dd 040800000H +dd 040c00000H +dd 040400000H +dd 040a00000H +dd 040e00000H +db 12 dup (0) +align 4 +L3297 label byte +dd 03f800000H +db 8 dup (0) +dd 040000000H +db 8 dup (0) +dd 040400000H +db 8 dup (0) +dd 040800000H +db 8 dup (0) +public _s86 +_DATA ends +_TEXT segment +_s86: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,40 +mov edi,dword ptr (L3291) +lea edi,(-4)[edi] +mov dword ptr (-36)[ebp],edi +call _one +add esp,0 +mov esi,dword ptr (-36)[ebp] +lea edi,[esi][eax*4] +mov dword ptr (-4)[ebp],edi +lea edi,(L3289) +mov dword ptr (-24)[ebp],edi +mov edi,dword ptr (20)[ebp] +lea edi,(60)[edi] +mov dword ptr (-28)[ebp],edi +mov dword ptr (-32)[ebp],0 +L3298: +L3299: +mov edi,dword ptr (-28)[ebp] +lea esi,(1)[edi] +mov dword ptr (-28)[ebp],esi +mov esi,dword ptr (-24)[ebp] +lea ebx,(1)[esi] +mov dword ptr (-24)[ebp],ebx +mov bl,byte ptr [esi] +mov byte ptr [edi],bl +movsx edi,bl +cmp edi,0 +jne L3298 +mov edi,dword ptr (L3291) +cmp dword ptr [edi],5 +je L3301 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L3303 +push 1 +lea edi,(L3288) +push edi +call _printf +add esp,8 +L3303: +inc dword ptr (-32)[ebp] +L3301: +mov edi,dword ptr (-36)[ebp] +cmp dword ptr [edi],3 +je L3305 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L3307 +push 2 +lea edi,(L3288) +push edi +call _printf +add esp,8 +L3307: +add dword ptr (-32)[ebp],2 +L3305: +mov edi,dword ptr (-4)[ebp] +cmp dword ptr [edi],5 +je L3309 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L3311 +push 4 +lea edi,(L3288) +push edi +call _printf +add esp,8 +L3311: +add dword ptr (-32)[ebp],4 +L3309: +mov dword ptr (-20)[ebp],0 +mov dword ptr (-8)[ebp],0 +L3313: +mov edi,dword ptr (-8)[ebp] +cmp dword ptr (L3293)[edi*4],0 +je L3317 +mov dword ptr (-20)[ebp],1 +L3317: +L3314: +inc dword ptr (-8)[ebp] +cmp dword ptr (-8)[ebp],10 +jl L3313 +cmp dword ptr (-20)[ebp],0 +je L3319 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L3321 +push 8 +lea edi,(L3288) +push edi +call _printf +add esp,8 +L3321: +add dword ptr (-32)[ebp],8 +L3319: +mov dword ptr (-20)[ebp],0 +mov dword ptr (-12)[ebp],0 +L3323: +mov dword ptr (-8)[ebp],0 +L3327: +imul edi,dword ptr (-12)[ebp],3 +mov esi,dword ptr (-8)[ebp] +lea edi,[esi][edi] +mov dword ptr (-16)[ebp],edi +mov edi,dword ptr (-8)[ebp] +lea edi,[edi*4] +imul esi,dword ptr (-12)[ebp],12 +fld dword ptr (L3295)[esi][edi] +fstp dword ptr (-40)[ebp] +fld dword ptr (L3296)[esi][edi] +fcomp dword ptr (-40)[ebp] +fstsw ax +sahf +jne L3333 +mov edi,dword ptr (-16)[ebp] +fld dword ptr (L3294)[edi*4] +fcomp dword ptr (-40)[ebp] +fstsw ax +sahf +je L3331 +L3333: +mov dword ptr (-20)[ebp],1 +L3331: +L3328: +inc dword ptr (-8)[ebp] +cmp dword ptr (-8)[ebp],3 +jl L3327 +L3324: +inc dword ptr (-12)[ebp] +cmp dword ptr (-12)[ebp],4 +jl L3323 +cmp dword ptr (-20)[ebp],0 +je L3334 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L3336 +push 16 +lea edi,(L3288) +push edi +call _printf +add esp,8 +L3336: +add dword ptr (-32)[ebp],16 +L3334: +mov dword ptr (-20)[ebp],0 +mov dword ptr (-8)[ebp],0 +L3338: +mov edi,dword ptr (-8)[ebp] +imul esi,edi,12 +lea edi,(1)[edi] +push edi +fild dword ptr 0[esp] +add esp,4 +fcomp dword ptr (L3297)[esi] +fstsw ax +sahf +je L3342 +mov dword ptr (-20)[ebp],1 +L3342: +L3339: +inc dword ptr (-8)[ebp] +cmp dword ptr (-8)[ebp],4 +jl L3338 +cmp dword ptr (-20)[ebp],0 +je L3344 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L3346 +push 32 +lea edi,(L3288) +push edi +call _printf +add esp,8 +L3346: +add dword ptr (-32)[ebp],32 +L3344: +mov eax,dword ptr (-32)[ebp] +L3287: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _one +_one: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov eax,1 +L3348: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +align 1 +L3350 label byte +db 115 +db 56 +db 56 +db 44 +db 101 +db 114 +db 37 +db 100 +db 10 +db 0 +align 1 +L3351 label byte +db 115 +db 56 +db 56 +db 32 +db 32 +db 32 +db 32 +db 0 +public _s88 +_DATA ends +_TEXT segment +_s88: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,44 +lea edi,(L3351) +mov dword ptr (-4)[ebp],edi +mov edi,dword ptr (20)[ebp] +lea edi,(60)[edi] +mov dword ptr (-8)[ebp],edi +mov dword ptr (-12)[ebp],0 +L3353: +L3354: +mov edi,dword ptr (-8)[ebp] +lea esi,(1)[edi] +mov dword ptr (-8)[ebp],esi +mov esi,dword ptr (-4)[ebp] +lea ebx,(1)[esi] +mov dword ptr (-4)[ebp],ebx +mov bl,byte ptr [esi] +mov byte ptr [edi],bl +movsx edi,bl +cmp edi,0 +jne L3353 +jmp L3356 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L3358 +push 1 +lea edi,(L3350) +push edi +call _printf +add esp,8 +L3358: +inc dword ptr (-12)[ebp] +L3356: +lea edi,(-32)[ebp] +mov dword ptr (_metricp),edi +mov dword ptr (-32)[ebp],2 +mov edi,dword ptr (_metricp) +mov dword ptr [edi],3 +cmp dword ptr (-32)[ebp],3 +je L3360 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L3362 +push 2 +lea edi,(L3350) +push edi +call _printf +add esp,8 +L3362: +add dword ptr (-12)[ebp],2 +L3360: +fld qword ptr (L419) +fstp qword ptr (-28)[ebp] +fld qword ptr (L419) +fstp qword ptr (-20)[ebp] +lea edi,(-28)[ebp] +mov dword ptr (-36)[ebp],edi +mov edi,dword ptr (-36)[ebp] +fld qword ptr (L418) +fstp qword ptr [edi] +mov edi,dword ptr (-36)[ebp] +fld qword ptr (L418) +fstp qword ptr (8)[edi] +fld qword ptr (-28)[ebp] +fadd qword ptr (-20)[ebp] +fld qword ptr (L416) +fcompp +fstsw ax +sahf +je L3365 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L3368 +push 4 +lea edi,(L3350) +push edi +call _printf +add esp,8 +L3368: +add dword ptr (-12)[ebp],4 +L3365: +mov eax,dword ptr (-12)[ebp] +L3349: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +align 1 +L3371 label byte +db 115 +db 57 +db 44 +db 101 +db 114 +db 37 +db 100 +db 10 +db 0 +align 1 +L3372 label byte +db 115 +db 57 +db 32 +db 32 +db 32 +db 32 +db 32 +db 0 +public _s9 +_DATA ends +_TEXT segment +_s9: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,36 +lea edi,(L3372) +mov dword ptr (-12)[ebp],edi +mov edi,dword ptr (20)[ebp] +lea edi,(60)[edi] +mov dword ptr (-16)[ebp],edi +mov dword ptr (-20)[ebp],0 +L3373: +L3374: +mov edi,dword ptr (-16)[ebp] +lea esi,(1)[edi] +mov dword ptr (-16)[ebp],esi +mov esi,dword ptr (-12)[ebp] +lea ebx,(1)[esi] +mov dword ptr (-12)[ebp],ebx +mov bl,byte ptr [esi] +mov byte ptr [edi],bl +movsx edi,bl +cmp edi,0 +jne L3373 +mov dword ptr (-8)[ebp],0 +mov dword ptr (-4)[ebp],0 +L3376: +mov dword ptr (-24)[ebp],2 +mov dword ptr (-28)[ebp],2 +mov dword ptr (-32)[ebp],3 +mov dword ptr (-36)[ebp],3 +cmp dword ptr (-36)[ebp],3 +jne L3382 +cmp dword ptr (-32)[ebp],3 +je L3380 +L3382: +mov dword ptr (-8)[ebp],1 +L3380: +cmp dword ptr (-28)[ebp],2 +jne L3385 +cmp dword ptr (-24)[ebp],2 +je L3383 +L3385: +mov dword ptr (-8)[ebp],1 +L3383: +L3377: +inc dword ptr (-4)[ebp] +cmp dword ptr (-4)[ebp],2 +jl L3376 +cmp dword ptr (-8)[ebp],0 +je L3390 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L3388 +push 1 +lea edi,(L3371) +push edi +call _printf +add esp,8 +L3388: +inc dword ptr (-20)[ebp] +jmp L3390 +mov edi,dword ptr (20)[ebp] +cmp dword ptr (44)[edi],0 +je L3391 +push 2 +lea edi,(L3371) +push edi +call _printf +add esp,8 +L3391: +add dword ptr (-20)[ebp],2 +L3390: +mov eax,dword ptr (-20)[ebp] +L3370: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _setev +_setev: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov dword ptr (_extvar),1066 +mov eax,0 +L3393: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +extrn _printf:near +_TEXT segment +_TEXT ends +_DATA segment +public _rfs +align 1 +_rfs label byte +db 8 dup (0) +public _crc +align 4 +_crc label byte +db 4 dup (0) +public _rrc +align 4 +_rrc label byte +db 4 dup (0) +public _flgl +align 4 +_flgl label byte +db 4 dup (0) +public _flgd +align 4 +_flgd label byte +db 4 dup (0) +public _flgm +align 4 +_flgm label byte +db 4 dup (0) +public _flgs +align 4 +_flgs label byte +db 4 dup (0) +public _dprec +align 4 +_dprec label byte +db 4 dup (0) +public _fprec +align 4 +_fprec label byte +db 4 dup (0) +public _dbits +align 4 +_dbits label byte +db 4 dup (0) +public _fbits +align 4 +_fbits label byte +db 4 dup (0) +public _ubits +align 4 +_ubits label byte +db 4 dup (0) +public _lbits +align 4 +_lbits label byte +db 4 dup (0) +public _metricp +align 4 +_metricp label byte +db 4 dup (0) +public _extvar +align 4 +_extvar label byte +db 4 dup (0) +_DATA ends +_TEXT segment +align 1 +L3266 label byte +db 66 +db 101 +db 32 +db 101 +db 115 +db 112 +db 101 +db 99 +db 105 +db 97 +db 108 +db 108 +db 121 +db 32 +db 99 +db 97 +db 114 +db 101 +db 102 +db 117 +db 108 +db 32 +db 119 +db 105 +db 116 +db 104 +db 32 +db 49 +db 45 +db 98 +db 105 +db 116 +db 32 +db 102 +db 105 +db 101 +db 108 +db 100 +db 115 +db 33 +db 10 +db 0 +align 1 +L3259 label byte +db 83 +db 105 +db 103 +db 110 +db 32 +db 101 +db 120 +db 116 +db 101 +db 110 +db 115 +db 105 +db 111 +db 110 +db 32 +db 105 +db 110 +db 32 +db 102 +db 105 +db 101 +db 108 +db 100 +db 115 +db 10 +db 0 +align 1 +L3252 label byte +db 37 +db 115 +db 37 +db 115 +db 37 +db 100 +db 10 +db 0 +align 4 +L3175 label byte +dd 043080000H +align 1 +L3022 label byte +db 112 +db 111 +db 105 +db 110 +db 116 +db 101 +db 114 +db 0 +align 1 +L2472 label byte +db 73 +db 110 +db 99 +db 114 +db 101 +db 97 +db 115 +db 105 +db 110 +db 103 +db 32 +db 97 +db 114 +db 114 +db 97 +db 121 +db 32 +db 101 +db 108 +db 101 +db 109 +db 101 +db 110 +db 116 +db 115 +db 32 +db 97 +db 115 +db 115 +db 105 +db 103 +db 110 +db 101 +db 100 +db 32 +db 116 +db 111 +db 32 +db 100 +db 101 +db 99 +db 114 +db 101 +db 97 +db 115 +db 105 +db 110 +db 103 +db 32 +db 108 +db 111 +db 99 +db 97 +db 116 +db 105 +db 111 +db 110 +db 115 +db 10 +db 0 +align 4 +L2356 label byte +dd 041d00000H +align 4 +L2355 label byte +dd 00H +dd 0403a0000H +align 4 +L1659 label byte +dd 00H +dd 040040000H +align 4 +L1484 label byte +dd 00H +dd 040240000H +align 4 +L1455 label byte +dd 041200000H +align 4 +L1280 label byte +dd 00H +dd 040080000H +align 4 +L1251 label byte +dd 040400000H +align 4 +L1076 label byte +dd 00H +dd 0401c0000H +align 4 +L1047 label byte +dd 040e00000H +align 4 +L870 label byte +dd 00H +dd 040140000H +align 4 +L841 label byte +dd 040a00000H +align 4 +L836 label byte +dd 00H +dd 041e00000H +align 4 +L828 label byte +dd 04f000000H +align 1 +L653 label byte +db 113 +db 117 +db 101 +db 101 +db 112 +db 0 +align 1 +L639 label byte +db 10 +db 0 +align 1 +L638 label byte +db 37 +db 100 +db 0 +align 1 +L633 label byte +db 32 +db 32 +db 32 +db 107 +db 101 +db 121 +db 61 +db 0 +align 4 +L596 label byte +dd 00H +dd 040000000H +align 4 +L536 label byte +dd 00H +dd 040ce8480H +align 4 +L535 label byte +dd 00H +dd 0405f4000H +align 4 +L534 label byte +dd 042fa0000H +align 4 +L529 label byte +dd 040000000H +align 1 +L431 label byte +db 100 +db 111 +db 117 +db 98 +db 108 +db 101 +db 0 +align 1 +L430 label byte +db 102 +db 108 +db 111 +db 97 +db 116 +db 0 +align 1 +L429 label byte +db 117 +db 110 +db 115 +db 105 +db 103 +db 110 +db 101 +db 100 +db 0 +align 1 +L428 label byte +db 108 +db 111 +db 110 +db 103 +db 0 +align 1 +L427 label byte +db 115 +db 104 +db 111 +db 114 +db 116 +db 0 +align 1 +L426 label byte +db 105 +db 110 +db 116 +db 0 +align 1 +L425 label byte +db 99 +db 104 +db 97 +db 114 +db 0 +align 4 +L419 label byte +dd 00H +dd 00H +align 4 +L418 label byte +dd 00H +dd 03ff00000H +align 4 +L417 label byte +dd 00H +dd 040100000H +align 4 +L416 label byte +dd 00H +dd 040000000H +align 4 +L412 label byte +dd 00H +align 4 +L411 label byte +dd 03f800000H +align 1 +L390 label byte +db 113 +db 117 +db 101 +db 101 +db 112 +db 33 +db 0 +align 1 +L379 label byte +db 10 +db 9 +db 8 +db 13 +db 12 +db 92 +db 39 +db 0 +align 1 +L375 label byte +db 46 +db 34 +db 46 +db 0 +align 1 +L362 label byte +db 46 +db 46 +db 46 +db 0 +align 4 +L333 label byte +dd 00H +dd 040938800H +align 1 +L199 label byte +db 32 +db 32 +db 32 +db 100 +db 105 +db 102 +db 102 +db 101 +db 114 +db 101 +db 110 +db 116 +db 32 +db 114 +db 101 +db 115 +db 117 +db 108 +db 116 +db 115 +db 32 +db 119 +db 104 +db 101 +db 110 +db 32 +db 97 +db 115 +db 115 +db 105 +db 103 +db 110 +db 101 +db 100 +db 32 +db 116 +db 111 +db 32 +db 108 +db 111 +db 110 +db 103 +db 115 +db 46 +db 10 +db 0 +align 1 +L198 label byte +db 68 +db 101 +db 99 +db 105 +db 109 +db 97 +db 108 +db 32 +db 97 +db 110 +db 100 +db 32 +db 111 +db 99 +db 116 +db 97 +db 108 +db 47 +db 104 +db 101 +db 120 +db 32 +db 99 +db 111 +db 110 +db 115 +db 116 +db 97 +db 110 +db 116 +db 115 +db 32 +db 115 +db 111 +db 109 +db 101 +db 116 +db 105 +db 109 +db 101 +db 115 +db 32 +db 103 +db 105 +db 118 +db 101 +db 10 +db 0 +align 1 +L27 label byte +db 10 +db 70 +db 97 +db 105 +db 108 +db 101 +db 100 +db 46 +db 10 +db 0 +align 1 +L26 label byte +db 10 +db 78 +db 111 +db 32 +db 101 +db 114 +db 114 +db 111 +db 114 +db 115 +db 32 +db 100 +db 101 +db 116 +db 101 +db 99 +db 116 +db 101 +db 100 +db 46 +db 10 +db 0 +align 1 +L20 label byte +db 83 +db 101 +db 99 +db 116 +db 105 +db 111 +db 110 +db 32 +db 37 +db 115 +db 32 +db 114 +db 101 +db 116 +db 117 +db 114 +db 110 +db 101 +db 100 +db 32 +db 37 +db 100 +db 46 +db 10 +db 0 +_TEXT ends +end diff --git a/code/tools/lcc/x86/win32/tst/cvt.1bk b/code/tools/lcc/x86/win32/tst/cvt.1bk new file mode 100644 index 0000000..b28b302 --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/cvt.1bk @@ -0,0 +1,11 @@ +1 1 1 1 1 1 1 1 1.000000 1.000000 1.000000 +2 2 2 2 2 2 2 2 2.000000 2.000000 2.000000 +3 3 3 3 3 3 3 3 3.000000 3.000000 3.000000 +4 4 4 4 4 4 4 4 4.000000 4.000000 4.000000 +5 5 5 5 5 5 5 5 5.000000 5.000000 5.000000 +6 6 6 6 6 6 6 6 6.000000 6.000000 6.000000 +7 7 7 7 7 7 7 7 7.000000 7.000000 7.000000 +8 8 8 8 8 8 8 8 8.000000 8.000000 8.000000 +9 9 9 9 9 9 9 9 9.000000 9.000000 9.000000 +10 10 10 10 10 10 10 10 10.000000 10.000000 10.000000 +11 11 11 11 11 11 11 11 11.000000 11.000000 11.000000 diff --git a/code/tools/lcc/x86/win32/tst/cvt.2bk b/code/tools/lcc/x86/win32/tst/cvt.2bk new file mode 100644 index 0000000..241527d --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/cvt.2bk @@ -0,0 +1,2 @@ +tst/cvt.c:32: warning: conversion from `pointer to void function(void)' to `pointer to void' is compiler dependent +tst/cvt.c:33: warning: conversion from `pointer to void' to `pointer to void function(void)' is compiler dependent diff --git a/code/tools/lcc/x86/win32/tst/cvt.sbk b/code/tools/lcc/x86/win32/tst/cvt.sbk new file mode 100644 index 0000000..aea81dd --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/cvt.sbk @@ -0,0 +1,742 @@ +.486 +.model flat +extrn __fltused:near +extrn __ftol:near +public _print +_TEXT segment +_print: +push ebx +push esi +push edi +push ebp +mov ebp,esp +fld qword ptr (_D) +sub esp,8 +fstp qword ptr [esp] +fld qword ptr (_d) +sub esp,8 +fstp qword ptr [esp] +fld dword ptr (_f) +sub esp,8 +fstp qword ptr [esp] +mov edi,dword ptr (_L) +push edi +mov edi,dword ptr (_I) +push edi +mov di,word ptr (_S) +movzx edi,di +push edi +mov bl,byte ptr (_C) +movzx edi,bl +push edi +mov edi,dword ptr (_l) +push edi +mov edi,dword ptr (_i) +push edi +movsx edi,word ptr (_s) +push edi +movsx edi,byte ptr (_c) +push edi +lea edi,(L2) +push edi +call _printf +add esp,60 +L1: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _main +_main: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,296 +mov byte ptr (_c),1 +movsx edi,byte ptr (_c) +mov esi,edi +mov word ptr (_s),si +mov dword ptr (_i),edi +mov dword ptr (_l),edi +mov esi,edi +mov ebx,esi +mov byte ptr (_C),bl +mov ebx,esi +mov word ptr (_S),bx +mov dword ptr (_I),esi +mov dword ptr (_L),esi +push edi +fild dword ptr 0[esp] +add esp,4 +fstp dword ptr (_f) +push edi +fild dword ptr 0[esp] +add esp,4 +fstp qword ptr (-8)[ebp] +fld qword ptr (-8)[ebp] +fstp qword ptr (_d) +fld qword ptr (-8)[ebp] +fstp qword ptr (_D) +call _print +add esp,0 +mov word ptr (_s),2 +movsx edi,word ptr (_s) +mov ebx,edi +mov byte ptr (_c),bl +mov dword ptr (_i),edi +mov dword ptr (_l),edi +mov esi,edi +mov ebx,esi +mov byte ptr (_C),bl +mov ebx,esi +mov word ptr (_S),bx +mov dword ptr (_I),esi +mov dword ptr (_L),esi +push edi +fild dword ptr 0[esp] +add esp,4 +fstp dword ptr (_f) +push edi +fild dword ptr 0[esp] +add esp,4 +fstp qword ptr (-16)[ebp] +fld qword ptr (-16)[ebp] +fstp qword ptr (_d) +fld qword ptr (-16)[ebp] +fstp qword ptr (_D) +call _print +add esp,0 +mov dword ptr (_i),3 +mov edi,dword ptr (_i) +mov ebx,edi +mov byte ptr (_c),bl +mov esi,edi +mov word ptr (_s),si +mov dword ptr (_l),edi +mov esi,edi +mov ebx,esi +mov byte ptr (_C),bl +mov ebx,esi +mov word ptr (_S),bx +mov dword ptr (_I),esi +mov dword ptr (_L),esi +push edi +fild dword ptr 0[esp] +add esp,4 +fstp dword ptr (_f) +push edi +fild dword ptr 0[esp] +add esp,4 +fstp qword ptr (-24)[ebp] +fld qword ptr (-24)[ebp] +fstp qword ptr (_d) +fld qword ptr (-24)[ebp] +fstp qword ptr (_D) +call _print +add esp,0 +mov dword ptr (_l),4 +mov edi,dword ptr (_l) +mov ebx,edi +mov byte ptr (_c),bl +mov esi,edi +mov word ptr (_s),si +mov dword ptr (_i),edi +mov esi,edi +mov ebx,esi +mov byte ptr (_C),bl +mov ebx,esi +mov word ptr (_S),bx +mov dword ptr (_I),esi +mov dword ptr (_L),esi +push edi +fild dword ptr 0[esp] +add esp,4 +fstp dword ptr (_f) +push edi +fild dword ptr 0[esp] +add esp,4 +fstp qword ptr (-32)[ebp] +fld qword ptr (-32)[ebp] +fstp qword ptr (_d) +fld qword ptr (-32)[ebp] +fstp qword ptr (_D) +call _print +add esp,0 +mov byte ptr (_C),5 +mov bl,byte ptr (_C) +movzx edi,bl +mov ebx,edi +mov byte ptr (_c),bl +mov esi,edi +mov word ptr (_s),si +mov dword ptr (_i),edi +mov dword ptr (_l),edi +mov esi,edi +mov ebx,esi +mov word ptr (_S),bx +mov dword ptr (_I),esi +mov dword ptr (_L),esi +push edi +fild dword ptr 0[esp] +add esp,4 +fstp dword ptr (_f) +push edi +fild dword ptr 0[esp] +add esp,4 +fstp qword ptr (-40)[ebp] +fld qword ptr (-40)[ebp] +fstp qword ptr (_d) +fld qword ptr (-40)[ebp] +fstp qword ptr (_D) +call _print +add esp,0 +mov word ptr (_S),6 +mov di,word ptr (_S) +movzx edi,di +mov ebx,edi +mov byte ptr (_c),bl +mov esi,edi +mov word ptr (_s),si +mov dword ptr (_i),edi +mov dword ptr (_l),edi +mov esi,edi +mov ebx,esi +mov byte ptr (_C),bl +mov dword ptr (_I),esi +mov dword ptr (_L),esi +push edi +fild dword ptr 0[esp] +add esp,4 +fstp dword ptr (_f) +push edi +fild dword ptr 0[esp] +add esp,4 +fstp qword ptr (-48)[ebp] +fld qword ptr (-48)[ebp] +fstp qword ptr (_d) +fld qword ptr (-48)[ebp] +fstp qword ptr (_D) +call _print +add esp,0 +mov dword ptr (_I),7 +mov edi,dword ptr (_I) +mov ebx,edi +mov byte ptr (_c),bl +mov ebx,edi +mov word ptr (_s),bx +mov dword ptr (_i),edi +mov dword ptr (_l),edi +mov ebx,edi +mov byte ptr (_C),bl +mov esi,edi +mov word ptr (_S),si +mov dword ptr (_L),edi +fld qword ptr (L4) +mov esi,edi +shr esi,1 +push esi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +and edi,1 +push edi +fild dword ptr 0[esp] +add esp,4 +faddp st(1),st +fstp qword ptr (-56)[ebp] +fld qword ptr (-56)[ebp] +fstp dword ptr (_f) +fld qword ptr (-56)[ebp] +fstp qword ptr (_d) +fld qword ptr (-56)[ebp] +fstp qword ptr (_D) +call _print +add esp,0 +mov dword ptr (_L),8 +mov edi,dword ptr (_L) +mov ebx,edi +mov byte ptr (_c),bl +mov ebx,edi +mov word ptr (_s),bx +mov dword ptr (_i),edi +mov dword ptr (_l),edi +mov ebx,edi +mov byte ptr (_C),bl +mov esi,edi +mov word ptr (_S),si +mov si,word ptr (_S) +movzx esi,si +mov dword ptr (_I),esi +fld qword ptr (L4) +mov esi,edi +shr esi,1 +push esi +fild dword ptr 0[esp] +add esp,4 +fmulp st(1),st +and edi,1 +push edi +fild dword ptr 0[esp] +add esp,4 +faddp st(1),st +fstp qword ptr (-64)[ebp] +fld qword ptr (-64)[ebp] +fstp dword ptr (_f) +fld qword ptr (-64)[ebp] +fstp qword ptr (_d) +fld qword ptr (-64)[ebp] +fstp qword ptr (_D) +call _print +add esp,0 +fld dword ptr (L5) +fstp dword ptr (_f) +fld dword ptr (_f) +fstp dword ptr (-84)[ebp] +fld dword ptr (-84)[ebp] +call __ftol +mov edi,eax +mov ebx,edi +mov byte ptr (_c),bl +mov esi,edi +mov word ptr (_s),si +mov dword ptr (_i),edi +mov dword ptr (_l),edi +fld dword ptr (L9) +fcomp dword ptr (-84)[ebp] +fstsw ax +sahf +ja L7 +fld dword ptr (-84)[ebp] +fsub dword ptr (L9) +call __ftol +mov edi,eax +lea edi,(080000000H)[edi] +mov dword ptr (-68)[ebp],edi +jmp L8 +L7: +fld dword ptr (-84)[ebp] +call __ftol +mov edi,eax +mov dword ptr (-68)[ebp],edi +L8: +mov edi,dword ptr (-68)[ebp] +mov ebx,edi +mov byte ptr (_C),bl +fld dword ptr (L9) +fcomp dword ptr (_f) +fstsw ax +sahf +ja L11 +fld dword ptr (_f) +fsub dword ptr (L9) +call __ftol +mov edi,eax +lea edi,(080000000H)[edi] +mov dword ptr (-72)[ebp],edi +jmp L12 +L11: +fld dword ptr (_f) +call __ftol +mov edi,eax +mov dword ptr (-72)[ebp],edi +L12: +mov edi,dword ptr (-72)[ebp] +mov word ptr (_S),di +fld dword ptr (L9) +fcomp dword ptr (_f) +fstsw ax +sahf +ja L14 +fld dword ptr (_f) +fsub dword ptr (L9) +call __ftol +mov edi,eax +lea edi,(080000000H)[edi] +mov dword ptr (-76)[ebp],edi +jmp L15 +L14: +fld dword ptr (_f) +call __ftol +mov edi,eax +mov dword ptr (-76)[ebp],edi +L15: +mov edi,dword ptr (-76)[ebp] +mov dword ptr (_I),edi +fld dword ptr (L9) +fcomp dword ptr (_f) +fstsw ax +sahf +ja L17 +fld dword ptr (_f) +fsub dword ptr (L9) +call __ftol +mov edi,eax +lea edi,(080000000H)[edi] +mov dword ptr (-80)[ebp],edi +jmp L18 +L17: +fld dword ptr (_f) +call __ftol +mov edi,eax +mov dword ptr (-80)[ebp],edi +L18: +mov edi,dword ptr (-80)[ebp] +mov dword ptr (_L),edi +fld dword ptr (_f) +fstp qword ptr (-120)[ebp] +fld qword ptr (-120)[ebp] +fstp qword ptr (_d) +fld qword ptr (-120)[ebp] +fstp qword ptr (_D) +call _print +add esp,0 +fld qword ptr (L19) +fstp qword ptr (_d) +fld qword ptr (_d) +fstp qword ptr (-144)[ebp] +fld qword ptr (-144)[ebp] +call __ftol +mov edi,eax +mov ebx,edi +mov byte ptr (_c),bl +mov esi,edi +mov word ptr (_s),si +mov dword ptr (_i),edi +mov dword ptr (_l),edi +fld qword ptr (L23) +fcomp qword ptr (-144)[ebp] +fstsw ax +sahf +ja L21 +fld qword ptr (-144)[ebp] +fsub qword ptr (L23) +call __ftol +mov edi,eax +lea edi,(080000000H)[edi] +mov dword ptr (-124)[ebp],edi +jmp L22 +L21: +fld qword ptr (-144)[ebp] +call __ftol +mov edi,eax +mov dword ptr (-124)[ebp],edi +L22: +mov edi,dword ptr (-124)[ebp] +mov ebx,edi +mov byte ptr (_C),bl +fld qword ptr (L23) +fcomp qword ptr (_d) +fstsw ax +sahf +ja L25 +fld qword ptr (_d) +fsub qword ptr (L23) +call __ftol +mov edi,eax +lea edi,(080000000H)[edi] +mov dword ptr (-128)[ebp],edi +jmp L26 +L25: +fld qword ptr (_d) +call __ftol +mov edi,eax +mov dword ptr (-128)[ebp],edi +L26: +mov edi,dword ptr (-128)[ebp] +mov word ptr (_S),di +fld qword ptr (L23) +fcomp qword ptr (_d) +fstsw ax +sahf +ja L28 +fld qword ptr (_d) +fsub qword ptr (L23) +call __ftol +mov edi,eax +lea edi,(080000000H)[edi] +mov dword ptr (-132)[ebp],edi +jmp L29 +L28: +fld qword ptr (_d) +call __ftol +mov edi,eax +mov dword ptr (-132)[ebp],edi +L29: +mov edi,dword ptr (-132)[ebp] +mov dword ptr (_I),edi +fld qword ptr (L23) +fcomp qword ptr (_d) +fstsw ax +sahf +ja L31 +fld qword ptr (_d) +fsub qword ptr (L23) +call __ftol +mov edi,eax +lea edi,(080000000H)[edi] +mov dword ptr (-136)[ebp],edi +jmp L32 +L31: +fld qword ptr (_d) +call __ftol +mov edi,eax +mov dword ptr (-136)[ebp],edi +L32: +mov edi,dword ptr (-136)[ebp] +mov dword ptr (_L),edi +fld qword ptr (_d) +fstp dword ptr (_f) +fld qword ptr (_d) +fstp qword ptr (_D) +call _print +add esp,0 +fld qword ptr (L33) +fstp qword ptr (_D) +fld qword ptr (_D) +fstp qword ptr (-232)[ebp] +fld qword ptr (-232)[ebp] +call __ftol +mov edi,eax +mov ebx,edi +mov byte ptr (_c),bl +mov esi,edi +mov word ptr (_s),si +mov dword ptr (_i),edi +mov dword ptr (_l),edi +fld qword ptr (L37) +fcomp qword ptr (-232)[ebp] +fstsw ax +sahf +ja L35 +fld qword ptr (-232)[ebp] +fsub qword ptr (L37) +call __ftol +mov edi,eax +lea edi,(080000000H)[edi] +mov dword ptr (-212)[ebp],edi +jmp L36 +L35: +fld qword ptr (-232)[ebp] +call __ftol +mov edi,eax +mov dword ptr (-212)[ebp],edi +L36: +mov edi,dword ptr (-212)[ebp] +mov ebx,edi +mov byte ptr (_C),bl +fld qword ptr (L37) +fcomp qword ptr (_D) +fstsw ax +sahf +ja L39 +fld qword ptr (_D) +fsub qword ptr (L37) +call __ftol +mov edi,eax +lea edi,(080000000H)[edi] +mov dword ptr (-216)[ebp],edi +jmp L40 +L39: +fld qword ptr (_D) +call __ftol +mov edi,eax +mov dword ptr (-216)[ebp],edi +L40: +mov edi,dword ptr (-216)[ebp] +mov word ptr (_S),di +fld qword ptr (L37) +fcomp qword ptr (_D) +fstsw ax +sahf +ja L42 +fld qword ptr (_D) +fsub qword ptr (L37) +call __ftol +mov edi,eax +lea edi,(080000000H)[edi] +mov dword ptr (-220)[ebp],edi +jmp L43 +L42: +fld qword ptr (_D) +call __ftol +mov edi,eax +mov dword ptr (-220)[ebp],edi +L43: +mov edi,dword ptr (-220)[ebp] +mov dword ptr (_I),edi +fld qword ptr (L37) +fcomp qword ptr (_D) +fstsw ax +sahf +ja L45 +fld qword ptr (_D) +fsub qword ptr (L37) +call __ftol +mov edi,eax +lea edi,(080000000H)[edi] +mov dword ptr (-224)[ebp],edi +jmp L46 +L45: +fld qword ptr (_D) +call __ftol +mov edi,eax +mov dword ptr (-224)[ebp],edi +L46: +mov edi,dword ptr (-224)[ebp] +mov dword ptr (_L),edi +fld qword ptr (_D) +fstp dword ptr (_f) +fld qword ptr (_D) +fstp qword ptr (_d) +call _print +add esp,0 +mov dword ptr (_p),0 +mov dword ptr (_p),0 +mov dword ptr (_p),0 +mov dword ptr (_p),0 +mov edi,dword ptr (_P) +mov dword ptr (_p),edi +mov dword ptr (_P),0 +mov dword ptr (_P),0 +mov dword ptr (_P),0 +mov dword ptr (_P),0 +mov edi,dword ptr (_p) +mov dword ptr (_P),edi +mov eax,0 +L3: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +extrn _printf:near +_TEXT segment +_TEXT ends +_DATA segment +public _P +align 4 +_P label byte +db 4 dup (0) +public _p +align 4 +_p label byte +db 4 dup (0) +public _D +align 4 +_D label byte +db 8 dup (0) +public _d +align 4 +_d label byte +db 8 dup (0) +public _f +align 4 +_f label byte +db 4 dup (0) +public _L +align 4 +_L label byte +db 4 dup (0) +public _I +align 4 +_I label byte +db 4 dup (0) +public _S +align 2 +_S label byte +db 2 dup (0) +public _C +align 1 +_C label byte +db 1 dup (0) +public _l +align 4 +_l label byte +db 4 dup (0) +public _i +align 4 +_i label byte +db 4 dup (0) +public _s +align 2 +_s label byte +db 2 dup (0) +public _c +align 1 +_c label byte +db 1 dup (0) +_DATA ends +_TEXT segment +align 4 +L37 label byte +dd 00H +dd 041e00000H +align 4 +L33 label byte +dd 00H +dd 040260000H +align 4 +L23 label byte +dd 00H +dd 041e00000H +align 4 +L19 label byte +dd 00H +dd 040240000H +align 4 +L9 label byte +dd 04f000000H +align 4 +L5 label byte +dd 041100000H +align 4 +L4 label byte +dd 00H +dd 040000000H +align 1 +L2 label byte +db 37 +db 100 +db 32 +db 37 +db 100 +db 32 +db 37 +db 100 +db 32 +db 37 +db 108 +db 100 +db 32 +db 37 +db 117 +db 32 +db 37 +db 117 +db 32 +db 37 +db 117 +db 32 +db 37 +db 108 +db 117 +db 32 +db 37 +db 102 +db 32 +db 37 +db 102 +db 32 +db 37 +db 108 +db 102 +db 10 +db 0 +_TEXT ends +end diff --git a/code/tools/lcc/x86/win32/tst/fields.1bk b/code/tools/lcc/x86/win32/tst/fields.1bk new file mode 100644 index 0000000..56fdeb9 --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/fields.1bk @@ -0,0 +1,5 @@ +x = 1 2 3 4 -3 6 +y = 3 8 9 +x = 1 2 3 0 0 6 +y = 2 8 16 +p->a = 0x3, p->b = 0xf diff --git a/code/tools/lcc/x86/win32/tst/fields.2bk b/code/tools/lcc/x86/win32/tst/fields.2bk new file mode 100644 index 0000000..51e1736 --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/fields.2bk @@ -0,0 +1,4 @@ +tst/fields.c:6: warning: initializer exceeds bit-field width +tst/fields.c:8: warning: initializer exceeds bit-field width +tst/fields.c:30: warning: missing return value +tst/fields.c:34: warning: missing return value diff --git a/code/tools/lcc/x86/win32/tst/fields.sbk b/code/tools/lcc/x86/win32/tst/fields.sbk new file mode 100644 index 0000000..8cf7784 --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/fields.sbk @@ -0,0 +1,323 @@ +.486 +.model flat +extrn __fltused:near +extrn __ftol:near +_DATA segment +public _x +align 4 +_x label byte +dd 1 +db 2 +db 3 dup (0) +db 03H +db 040H +db 2 dup (0) +db 050H +db 6 +db 2 dup (0) +public _i +align 4 +_i label byte +dd 16 +public _y +align 4 +_y label byte +db 023H +db 3 dup (0) +db 09H +db 00H +db 00H +db 00H +public _main +_DATA ends +_TEXT segment +_main: +push ebx +push esi +push edi +push ebp +mov ebp,esp +movsx edi,byte ptr (_x+13) +push edi +mov edi,dword ptr (_x+12) +sal edi,25 +sar edi,29 +push edi +mov edi,dword ptr (_x+8) +sal edi,16 +sar edi,28 +push edi +mov edi,dword ptr (_x+8) +sal edi,20 +sar edi,20 +push edi +movsx edi,byte ptr (_x+4) +push edi +mov edi,dword ptr (_x) +push edi +lea edi,(L4) +push edi +call _printf +add esp,28 +mov edi,dword ptr (_y+4) +push edi +mov edi,dword ptr (_y) +mov esi,edi +shr esi,2 +and esi,15 +push esi +and edi,3 +push edi +lea edi,(L10) +push edi +call _printf +add esp,16 +mov edi,dword ptr (_x+8) +and edi,0ffff0fffH +mov esi,dword ptr (_i) +sal esi,28 +sar esi,28 +shl esi,12 +and esi,0f000H +or edi,esi +mov dword ptr (_x+8),edi +mov edi,dword ptr (_x+12) +and edi,0ffffff8fH +mov dword ptr (_x+12),edi +movsx edi,byte ptr (_x+13) +push edi +mov edi,dword ptr (_x+12) +sal edi,25 +sar edi,29 +push edi +mov edi,dword ptr (_x+8) +sal edi,16 +sar edi,28 +push edi +mov edi,dword ptr (_x+8) +sal edi,20 +sar edi,20 +push edi +movsx edi,byte ptr (_x+4) +push edi +mov edi,dword ptr (_x) +push edi +lea edi,(L4) +push edi +call _printf +add esp,28 +mov edi,dword ptr (_y) +and edi,0fffffffcH +or edi,2 +mov dword ptr (_y),edi +mov edi,dword ptr (_i) +mov dword ptr (_y+4),edi +mov edi,dword ptr (_y+4) +push edi +mov edi,dword ptr (_y) +mov esi,edi +shr esi,2 +and esi,15 +push esi +and edi,3 +push edi +lea edi,(L10) +push edi +call _printf +add esp,16 +lea edi,(_x) +push edi +call _f2 +add esp,4 +mov eax,0 +L3: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _f1 +_f1: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov edi,dword ptr (20)[ebp] +and dword ptr [edi],0ffffffc3H +mov edi,dword ptr (20)[ebp] +mov esi,dword ptr [edi] +and esi,0fffffffcH +mov ebx,0 +and ebx,3 +and ebx,3 +or esi,ebx +mov dword ptr [edi],esi +mov edi,dword ptr (20)[ebp] +mov edi,dword ptr [edi] +and edi,60 +cmp edi,0 +je L22 +lea edi,(L24) +push edi +call _printf +add esp,4 +L22: +mov edi,dword ptr (20)[ebp] +or dword ptr [edi],3 +mov edi,dword ptr (20)[ebp] +or dword ptr [edi],60 +mov edi,dword ptr (20)[ebp] +mov edi,dword ptr [edi] +mov esi,edi +shr esi,2 +and esi,15 +push esi +and edi,3 +push edi +lea edi,(L25) +push edi +call _printf +add esp,12 +mov eax,0 +L21: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _f2 +_f2: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,4 +cmp dword ptr (_i),0 +jne L28 +mov dword ptr (-4)[ebp],1 +jmp L29 +L28: +mov dword ptr (-4)[ebp],0 +L29: +mov edi,dword ptr (20)[ebp] +mov esi,dword ptr [edi] +and esi,0fffffffcH +mov ebx,dword ptr (-4)[ebp] +and ebx,3 +and ebx,3 +or esi,ebx +mov dword ptr [edi],esi +mov edi,dword ptr (20)[ebp] +push edi +call _f1 +add esp,4 +mov esi,dword ptr [edi] +and esi,0ffffffc3H +mov ebx,0 +and ebx,15 +lea ebx,[ebx*4] +and ebx,60 +or esi,ebx +mov dword ptr [edi],esi +mov eax,0 +L26: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +extrn _printf:near +_TEXT segment +_TEXT ends +_TEXT segment +align 1 +L25 label byte +db 112 +db 45 +db 62 +db 97 +db 32 +db 61 +db 32 +db 48 +db 120 +db 37 +db 120 +db 44 +db 32 +db 112 +db 45 +db 62 +db 98 +db 32 +db 61 +db 32 +db 48 +db 120 +db 37 +db 120 +db 10 +db 0 +align 1 +L24 label byte +db 112 +db 45 +db 62 +db 98 +db 32 +db 33 +db 61 +db 32 +db 48 +db 33 +db 10 +db 0 +align 1 +L10 label byte +db 121 +db 32 +db 61 +db 32 +db 37 +db 100 +db 32 +db 37 +db 100 +db 32 +db 37 +db 100 +db 10 +db 0 +align 1 +L4 label byte +db 120 +db 32 +db 61 +db 32 +db 37 +db 100 +db 32 +db 37 +db 100 +db 32 +db 37 +db 100 +db 32 +db 37 +db 100 +db 32 +db 37 +db 100 +db 32 +db 37 +db 100 +db 10 +db 0 +_TEXT ends +end diff --git a/code/tools/lcc/x86/win32/tst/front.2bk b/code/tools/lcc/x86/win32/tst/front.2bk new file mode 100644 index 0000000..bbd390a --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/front.2bk @@ -0,0 +1,29 @@ +tst/front.c:3: warning: missing return value +tst/front.c:10: warning: missing return value +tst/front.c:20: type error in argument 1 to `s'; found `pointer to struct D' expected `pointer to incomplete struct D defined at tst/front.c:14' +tst/front.c:21: warning: missing return value +tst/front.c:32: warning: missing return value +tst/front.c:36: operands of = have illegal types `pointer to int' and `pointer to const int' +tst/front.c:38: warning: missing return value +tst/front.c:62: operands of = have illegal types `pointer to char' and `pointer to const void' +tst/front.c:63: warning: missing return value +tst/front.c:68: warning: missing return value +tst/front.c:69: warning: inconsistent linkage for `yy' previously declared at tst/front.c:68 +tst/front.c:69: warning: missing return value +tst/front.c:71: invalid storage class `static' for `int function goo' +tst/front.c:71: warning: declaration of `goo' does not match previous declaration at tst/front.c:70 +tst/front.c:71: warning: missing return value +tst/front.c:74: warning: declaration of `xr' does not match previous declaration at tst/front.c:72 +tst/front.c:74: warning: missing return value +tst/front.c:81: warning: missing return value +tst/front.c:82: warning: declaration of `ss2' does not match previous declaration at tst/front.c:81 +tst/front.c:84: warning: inconsistent linkage for `ss5' previously declared at tst/front.c:80 +tst/front.c:92: type error in argument 1 to `gx1'; found `pointer to double' expected `double' +tst/front.c:92: warning: missing return value +tst/front.c:95: redeclaration of `hx1' previously declared at tst/front.c:94 +tst/front.c:98: warning: missing return value +tst/front.c:101: conflicting argument declarations for function `gg1' +tst/front.c:101: warning: missing return value +tst/front.c:112: type error in argument 4 to `qsort'; found `pointer to int function(pointer to pointer to char,pointer to pointer to char)' expected `pointer to int function(pointer to const void,pointer to const void)' +tst/front.c:113: warning: missing return value +tst/front.c:120: warning: missing return value diff --git a/code/tools/lcc/x86/win32/tst/front.sbk b/code/tools/lcc/x86/win32/tst/front.sbk new file mode 100644 index 0000000..cc91f3a --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/front.sbk @@ -0,0 +1,436 @@ +.486 +.model flat +extrn __fltused:near +extrn __ftol:near +public _main +_TEXT segment +_main: +push ebx +push esi +push edi +push ebp +mov ebp,esp +push 0 +call _exit +add esp,4 +mov eax,0 +L1: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _nested +_nested: +push ebx +push esi +push edi +push ebp +mov ebp,esp +cmp dword ptr (20)[ebp],4 +jge L6 +cmp dword ptr (24)[ebp],114 +je L9 +L6: +cmp dword ptr (20)[ebp],1 +jne L8 +mov edi,dword ptr (24)[ebp] +cmp edi,104 +je L9 +cmp edi,105 +je L9 +L8: +cmp dword ptr (20)[ebp],2 +jne L3 +mov edi,dword ptr (24)[ebp] +cmp edi,111 +je L9 +cmp edi,121 +jne L3 +L9: +mov edi,dword ptr (24)[ebp] +mov dword ptr (20)[ebp],edi +L3: +mov eax,0 +L2: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _s +_s: +push ebx +push esi +push edi +push ebp +mov ebp,esp +L10: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +public _Dy +align 4 +_Dy label byte +dd 0 +db 4 dup (0) +public _Dz +align 4 +_Dz label byte +dd 1 +db 4 dup (0) +public _Dfunc +_DATA ends +_TEXT segment +_Dfunc: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _f +_f: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _f1 +_f1: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _f2 +_f2: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _g +_g: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _h +_h: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _h1 +_h1: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _h2 +_h2: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +align 4 +L21 label byte +dd 1 +public _set1 +_DATA ends +_TEXT segment +_set1: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +align 4 +L23 label byte +dd 2 +public _set2 +_DATA ends +_TEXT segment +_set2: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_goo: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _sss +_sss: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +align 4 +L27 label byte +db 4 dup (0) +public _rrr +_DATA ends +_TEXT segment +_rrr: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _setstatic +_setstatic: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _gx1 +_gx1: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _ff1 +_ff1: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _gg1 +_gg1: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _hh1 +_hh1: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _cmp +_cmp: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _sort +_sort: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _onearg +_onearg: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +extrn _exit:near +_TEXT segment +_TEXT ends +extrn _qsort:near +_TEXT segment +_TEXT ends +extrn _strcmp:near +_TEXT segment +_TEXT ends +_DATA segment +public _ss4 +align 4 +_ss4 label byte +db 4 dup (0) +align 4 +_ss2 label byte +db 4 dup (0) +align 4 +_ss5 label byte +db 4 dup (0) +public _ss3 +align 4 +_ss3 label byte +db 4 dup (0) +align 4 +_ss1 label byte +db 4 dup (0) +align 4 +_yy label byte +db 4 dup (0) +public _z +align 4 +_z label byte +db 4 dup (0) +public _y +align 4 +_y label byte +db 4 dup (0) +public _x +align 4 +_x label byte +db 4 dup (0) +public _b +align 4 +_b label byte +db 4 dup (0) +public _a +align 4 +_a label byte +db 4 dup (0) +_DATA ends +end diff --git a/code/tools/lcc/x86/win32/tst/incr.1bk b/code/tools/lcc/x86/win32/tst/incr.1bk new file mode 100644 index 0000000..e69de29 diff --git a/code/tools/lcc/x86/win32/tst/incr.2bk b/code/tools/lcc/x86/win32/tst/incr.2bk new file mode 100644 index 0000000..d9ef13c --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/incr.2bk @@ -0,0 +1,9 @@ +tst/incr.c:1: warning: missing return value +tst/incr.c:6: warning: expression with no effect elided +tst/incr.c:6: warning: expression with no effect elided +tst/incr.c:11: warning: missing return value +tst/incr.c:16: warning: expression with no effect elided +tst/incr.c:16: warning: expression with no effect elided +tst/incr.c:21: warning: missing return value +tst/incr.c:30: warning: missing return value +tst/incr.c:39: warning: missing return value diff --git a/code/tools/lcc/x86/win32/tst/incr.sbk b/code/tools/lcc/x86/win32/tst/incr.sbk new file mode 100644 index 0000000..96a39e0 --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/incr.sbk @@ -0,0 +1,166 @@ +.486 +.model flat +extrn __fltused:near +extrn __ftol:near +public _main +_TEXT segment +_main: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov eax,0 +L1: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _memchar +_memchar: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,8 +mov edi,dword ptr (-8)[ebp] +lea esi,(1)[edi] +mov dword ptr (-8)[ebp],esi +mov bl,byte ptr [edi] +mov byte ptr (-1)[ebp],bl +mov edi,dword ptr (-8)[ebp] +lea edi,(1)[edi] +mov dword ptr (-8)[ebp],edi +mov bl,byte ptr [edi] +mov byte ptr (-1)[ebp],bl +mov edi,dword ptr (-8)[ebp] +lea esi,(-1)[edi] +mov dword ptr (-8)[ebp],esi +mov bl,byte ptr [edi] +mov byte ptr (-1)[ebp],bl +mov edi,dword ptr (-8)[ebp] +lea edi,(-1)[edi] +mov dword ptr (-8)[ebp],edi +mov bl,byte ptr [edi] +mov byte ptr (-1)[ebp],bl +mov eax,0 +L2: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _memint +_memint: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,8 +mov edi,dword ptr (-8)[ebp] +lea esi,(4)[edi] +mov dword ptr (-8)[ebp],esi +mov edi,dword ptr [edi] +mov dword ptr (-4)[ebp],edi +mov edi,dword ptr (-8)[ebp] +lea edi,(4)[edi] +mov dword ptr (-8)[ebp],edi +mov edi,dword ptr [edi] +mov dword ptr (-4)[ebp],edi +mov edi,dword ptr (-8)[ebp] +lea esi,(-4)[edi] +mov dword ptr (-8)[ebp],esi +mov edi,dword ptr [edi] +mov dword ptr (-4)[ebp],edi +mov edi,dword ptr (-8)[ebp] +lea edi,(-4)[edi] +mov dword ptr (-8)[ebp],edi +mov edi,dword ptr [edi] +mov dword ptr (-4)[ebp],edi +mov eax,0 +L3: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _regchar +_regchar: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,8 +mov edi,dword ptr (-8)[ebp] +lea esi,(1)[edi] +mov dword ptr (-8)[ebp],esi +mov bl,byte ptr [edi] +mov byte ptr (-1)[ebp],bl +mov edi,dword ptr (-8)[ebp] +lea edi,(1)[edi] +mov dword ptr (-8)[ebp],edi +mov bl,byte ptr [edi] +mov byte ptr (-1)[ebp],bl +mov edi,dword ptr (-8)[ebp] +lea esi,(-1)[edi] +mov dword ptr (-8)[ebp],esi +mov bl,byte ptr [edi] +mov byte ptr (-1)[ebp],bl +mov edi,dword ptr (-8)[ebp] +lea edi,(-1)[edi] +mov dword ptr (-8)[ebp],edi +mov bl,byte ptr [edi] +mov byte ptr (-1)[ebp],bl +mov eax,0 +L4: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _regint +_regint: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,8 +mov edi,dword ptr (-8)[ebp] +lea esi,(4)[edi] +mov dword ptr (-8)[ebp],esi +mov edi,dword ptr [edi] +mov dword ptr (-4)[ebp],edi +mov edi,dword ptr (-8)[ebp] +lea edi,(4)[edi] +mov dword ptr (-8)[ebp],edi +mov edi,dword ptr [edi] +mov dword ptr (-4)[ebp],edi +mov edi,dword ptr (-8)[ebp] +lea esi,(-4)[edi] +mov dword ptr (-8)[ebp],esi +mov edi,dword ptr [edi] +mov dword ptr (-4)[ebp],edi +mov edi,dword ptr (-8)[ebp] +lea edi,(-4)[edi] +mov dword ptr (-8)[ebp],edi +mov edi,dword ptr [edi] +mov dword ptr (-4)[ebp],edi +mov eax,0 +L5: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +end diff --git a/code/tools/lcc/x86/win32/tst/init.1bk b/code/tools/lcc/x86/win32/tst/init.1bk new file mode 100644 index 0000000..77aff09 --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/init.1bk @@ -0,0 +1,16 @@ + 1 2 3 4 + 5 6 + 7 +if +for +else +while +1 2 3 if +4 5 0 for +6 7 8 else +9 10 11 while +1 2 3 if +4 5 0 for +6 7 8 else +9 10 11 while +0 0 0 diff --git a/code/tools/lcc/x86/win32/tst/init.2bk b/code/tools/lcc/x86/win32/tst/init.2bk new file mode 100644 index 0000000..aafe415 --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/init.2bk @@ -0,0 +1,3 @@ +tst/init.c:36: warning: missing return value +tst/init.c:49: warning: missing return value +tst/init.c:59: warning: missing return value diff --git a/code/tools/lcc/x86/win32/tst/init.sbk b/code/tools/lcc/x86/win32/tst/init.sbk new file mode 100644 index 0000000..2c1cc67 --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/init.sbk @@ -0,0 +1,336 @@ +.486 +.model flat +extrn __fltused:near +extrn __ftol:near +_DATA segment +public _words +align 4 +_words label byte +dd 1 +dd 2 +dd 3 +db 105 +db 102 +db 0 +db 3 dup (0) +db 2 dup (0) +dd 4 +dd 5 +db 4 dup (0) +db 102 +db 111 +db 114 +db 3 dup (0) +db 2 dup (0) +dd 6 +dd 7 +dd 8 +db 101 +db 108 +db 115 +db 101 +db 0 +db 1 dup (0) +db 2 dup (0) +dd 9 +dd 10 +dd 11 +db 119 +db 104 +db 105 +db 108 +db 101 +db 1 dup (0) +db 2 dup (0) +dd 0 +db 8 dup (0) +db 8 dup (0) +public _wordlist +align 4 +_wordlist label byte +dd _words +public _x +align 4 +_x label byte +dd 1 +dd 2 +dd 3 +dd 4 +dd 0 +dd 5 +dd 6 +db 12 dup (0) +dd 7 +db 16 dup (0) +public _y +align 4 +_y label byte +dd _x +dd _x+20 +dd _x+40 +dd 00H +public _main +_DATA ends +_TEXT segment +_main: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,8 +mov dword ptr (-8)[ebp],0 +jmp L8 +L5: +mov dword ptr (-4)[ebp],0 +jmp L12 +L9: +mov edi,dword ptr (-4)[ebp] +mov esi,dword ptr (-8)[ebp] +mov esi,dword ptr (_y)[esi*4] +mov edi,dword ptr [esi][edi*4] +push edi +lea edi,(L13) +push edi +call _printf +add esp,8 +L10: +inc dword ptr (-4)[ebp] +L12: +mov edi,dword ptr (-4)[ebp] +mov esi,dword ptr (-8)[ebp] +mov esi,dword ptr (_y)[esi*4] +cmp dword ptr [esi][edi*4],0 +jne L9 +lea edi,(L14) +push edi +call _printf +add esp,4 +L6: +inc dword ptr (-8)[ebp] +L8: +mov edi,dword ptr (-8)[ebp] +mov edi,dword ptr (_y)[edi*4] +cmp edi,0 +jne L5 +call _f +add esp,0 +mov edi,dword ptr (_wordlist) +push edi +call _g +add esp,4 +mov eax,0 +L4: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +align 4 +L16 label byte +dd L17 +dd L18 +dd L19 +dd L20 +dd 00H +public _f +_DATA ends +_TEXT segment +_f: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,4 +lea edi,(L16) +mov dword ptr (-4)[ebp],edi +jmp L24 +L21: +mov edi,dword ptr (-4)[ebp] +mov edi,dword ptr [edi] +push edi +lea edi,(L25) +push edi +call _printf +add esp,8 +L22: +mov edi,dword ptr (-4)[ebp] +lea edi,(4)[edi] +mov dword ptr (-4)[ebp],edi +L24: +mov edi,dword ptr (-4)[ebp] +mov edi,dword ptr [edi] +cmp edi,0 +jne L21 +mov eax,0 +L15: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _g +_g: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,4 +jmp L30 +L27: +mov dword ptr (-4)[ebp],0 +jmp L34 +L31: +mov edi,dword ptr (-4)[ebp] +mov esi,dword ptr (20)[ebp] +mov edi,dword ptr [esi][edi*4] +push edi +lea edi,(L35) +push edi +call _printf +add esp,8 +L32: +inc dword ptr (-4)[ebp] +L34: +mov edi,dword ptr (-4)[ebp] +cmp edi,3 +jb L31 +mov edi,dword ptr (20)[ebp] +lea edi,(12)[edi] +push edi +lea edi,(L25) +push edi +call _printf +add esp,8 +L28: +mov edi,dword ptr (20)[ebp] +lea edi,(20)[edi] +mov dword ptr (20)[ebp],edi +L30: +mov edi,dword ptr (20)[ebp] +cmp dword ptr [edi],0 +jne L27 +call _h +add esp,0 +mov eax,0 +L26: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _h +_h: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,4 +mov dword ptr (-4)[ebp],0 +jmp L40 +L37: +imul edi,dword ptr (-4)[ebp],20 +lea esi,(_words+12)[edi] +push esi +mov esi,dword ptr (_words+8)[edi] +push esi +mov esi,dword ptr (_words+4)[edi] +push esi +mov edi,dword ptr (_words)[edi] +push edi +lea edi,(L41) +push edi +call _printf +add esp,20 +L38: +inc dword ptr (-4)[ebp] +L40: +mov edi,dword ptr (-4)[ebp] +cmp edi,5 +jb L37 +mov eax,0 +L36: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +extrn _printf:near +_TEXT segment +_TEXT ends +_TEXT segment +align 1 +L41 label byte +db 37 +db 100 +db 32 +db 37 +db 100 +db 32 +db 37 +db 100 +db 32 +db 37 +db 115 +db 10 +db 0 +align 1 +L35 label byte +db 37 +db 100 +db 32 +db 0 +align 1 +L25 label byte +db 37 +db 115 +db 10 +db 0 +align 1 +L20 label byte +db 119 +db 104 +db 105 +db 108 +db 101 +db 0 +align 1 +L19 label byte +db 101 +db 108 +db 115 +db 101 +db 0 +align 1 +L18 label byte +db 102 +db 111 +db 114 +db 0 +align 1 +L17 label byte +db 105 +db 102 +db 0 +align 1 +L14 label byte +db 10 +db 0 +align 1 +L13 label byte +db 32 +db 37 +db 100 +db 0 +_TEXT ends +end diff --git a/code/tools/lcc/x86/win32/tst/limits.1bk b/code/tools/lcc/x86/win32/tst/limits.1bk new file mode 100644 index 0000000..9beee8c --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/limits.1bk @@ -0,0 +1,14 @@ +UCHAR_MAX: 000000ff=255 +USHRT_MAX: 0000ffff=65535 +UINT_MAX: ffffffff=-1 +ULONG_MAX: ffffffff=-1 +CHAR_MAX: 0000007f=127 +SCHAR_MAX: 0000007f=127 +SHRT_MAX: 00007fff=32767 +INT_MAX: 7fffffff=2147483647 +LONG_MAX: 7fffffff=2147483647 +CHAR_MIN: ffffff80=-128 +SCHAR_MIN: ffffff80=-128 +SHRT_MIN: ffff8000=-32768 +INT_MIN: 80000000=-2147483648 +LONG_MIN: 80000000=-2147483648 diff --git a/code/tools/lcc/x86/win32/tst/limits.2bk b/code/tools/lcc/x86/win32/tst/limits.2bk new file mode 100644 index 0000000..e69de29 diff --git a/code/tools/lcc/x86/win32/tst/limits.sbk b/code/tools/lcc/x86/win32/tst/limits.sbk new file mode 100644 index 0000000..5ed0147 --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/limits.sbk @@ -0,0 +1,414 @@ +.486 +.model flat +extrn __fltused:near +extrn __ftol:near +public _main +_TEXT segment +_main: +push ebx +push esi +push edi +push ebp +mov ebp,esp +push 255 +push 255 +lea edi,(L2) +push edi +call _printf +add esp,12 +push 65535 +push 65535 +lea edi,(L3) +push edi +call _printf +add esp,12 +push 0ffffffffH +push 0ffffffffH +lea edi,(L4) +push edi +call _printf +add esp,12 +push 0ffffffffH +push 0ffffffffH +lea edi,(L5) +push edi +call _printf +add esp,12 +push 127 +push 127 +lea edi,(L6) +push edi +call _printf +add esp,12 +push 127 +push 127 +lea edi,(L7) +push edi +call _printf +add esp,12 +push 32767 +push 32767 +lea edi,(L8) +push edi +call _printf +add esp,12 +push 2147483647 +push 2147483647 +lea edi,(L9) +push edi +call _printf +add esp,12 +push 2147483647 +push 2147483647 +lea edi,(L10) +push edi +call _printf +add esp,12 +push -128 +push -128 +lea edi,(L11) +push edi +call _printf +add esp,12 +push -128 +push -128 +lea edi,(L12) +push edi +call _printf +add esp,12 +push -32768 +push -32768 +lea edi,(L13) +push edi +call _printf +add esp,12 +push -2147483648 +push -2147483648 +lea edi,(L14) +push edi +call _printf +add esp,12 +push -2147483648 +push -2147483648 +lea edi,(L15) +push edi +call _printf +add esp,12 +mov eax,0 +L1: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +extrn _printf:near +_TEXT segment +_TEXT ends +_TEXT segment +align 1 +L15 label byte +db 76 +db 79 +db 78 +db 71 +db 95 +db 77 +db 73 +db 78 +db 58 +db 9 +db 37 +db 48 +db 56 +db 108 +db 120 +db 61 +db 37 +db 108 +db 100 +db 10 +db 0 +align 1 +L14 label byte +db 73 +db 78 +db 84 +db 95 +db 77 +db 73 +db 78 +db 58 +db 9 +db 37 +db 48 +db 56 +db 120 +db 61 +db 37 +db 100 +db 10 +db 0 +align 1 +L13 label byte +db 83 +db 72 +db 82 +db 84 +db 95 +db 77 +db 73 +db 78 +db 58 +db 9 +db 37 +db 48 +db 56 +db 120 +db 61 +db 37 +db 100 +db 10 +db 0 +align 1 +L12 label byte +db 83 +db 67 +db 72 +db 65 +db 82 +db 95 +db 77 +db 73 +db 78 +db 58 +db 9 +db 37 +db 48 +db 56 +db 120 +db 61 +db 37 +db 100 +db 10 +db 0 +align 1 +L11 label byte +db 67 +db 72 +db 65 +db 82 +db 95 +db 77 +db 73 +db 78 +db 58 +db 9 +db 37 +db 48 +db 56 +db 120 +db 61 +db 37 +db 100 +db 10 +db 0 +align 1 +L10 label byte +db 76 +db 79 +db 78 +db 71 +db 95 +db 77 +db 65 +db 88 +db 58 +db 9 +db 37 +db 48 +db 56 +db 108 +db 120 +db 61 +db 37 +db 108 +db 100 +db 10 +db 0 +align 1 +L9 label byte +db 73 +db 78 +db 84 +db 95 +db 77 +db 65 +db 88 +db 58 +db 9 +db 37 +db 48 +db 56 +db 120 +db 61 +db 37 +db 100 +db 10 +db 0 +align 1 +L8 label byte +db 83 +db 72 +db 82 +db 84 +db 95 +db 77 +db 65 +db 88 +db 58 +db 9 +db 37 +db 48 +db 56 +db 120 +db 61 +db 37 +db 100 +db 10 +db 0 +align 1 +L7 label byte +db 83 +db 67 +db 72 +db 65 +db 82 +db 95 +db 77 +db 65 +db 88 +db 58 +db 9 +db 37 +db 48 +db 56 +db 120 +db 61 +db 37 +db 100 +db 10 +db 0 +align 1 +L6 label byte +db 67 +db 72 +db 65 +db 82 +db 95 +db 77 +db 65 +db 88 +db 58 +db 9 +db 37 +db 48 +db 56 +db 120 +db 61 +db 37 +db 100 +db 10 +db 0 +align 1 +L5 label byte +db 85 +db 76 +db 79 +db 78 +db 71 +db 95 +db 77 +db 65 +db 88 +db 58 +db 9 +db 37 +db 48 +db 56 +db 108 +db 120 +db 61 +db 37 +db 108 +db 100 +db 10 +db 0 +align 1 +L4 label byte +db 85 +db 73 +db 78 +db 84 +db 95 +db 77 +db 65 +db 88 +db 58 +db 9 +db 37 +db 48 +db 56 +db 120 +db 61 +db 37 +db 100 +db 10 +db 0 +align 1 +L3 label byte +db 85 +db 83 +db 72 +db 82 +db 84 +db 95 +db 77 +db 65 +db 88 +db 58 +db 9 +db 37 +db 48 +db 56 +db 120 +db 61 +db 37 +db 100 +db 10 +db 0 +align 1 +L2 label byte +db 85 +db 67 +db 72 +db 65 +db 82 +db 95 +db 77 +db 65 +db 88 +db 58 +db 9 +db 37 +db 48 +db 56 +db 120 +db 61 +db 37 +db 100 +db 10 +db 0 +_TEXT ends +end diff --git a/code/tools/lcc/x86/win32/tst/paranoia.1bk b/code/tools/lcc/x86/win32/tst/paranoia.1bk new file mode 100644 index 0000000..5d8432b --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/paranoia.1bk @@ -0,0 +1,179 @@ +Lest this program stop prematurely, i.e. before displaying + + `END OF TEST', + +try to persuade the computer NOT to terminate execution when an +error like Over/Underflow or Division by Zero occurs, but rather +to persevere with a surrogate value after, perhaps, displaying some +warning. If persuasion avails naught, don't despair but run this +program anyway to see how many milestones it passes, and then +amend it to make further progress. + +Answer questions with Y, y, N or n (unless otherwise indicated). + + +Diagnosis resumes after milestone Number 0 Page: 1 + +Users are invited to help debug and augment this program so it will +cope with unanticipated and newly uncovered arithmetic pathologies. + +Please send suggestions and interesting results to + Richard Karpinski + Computer Center U-76 + University of California + San Francisco, CA 94143-0704, USA + +In doing so, please include the following information: + Precision: double; + Version: 10 February 1989; + Computer: + + Compiler: + + Optimization level: + + Other relevant compiler options: + +Diagnosis resumes after milestone Number 1 Page: 2 + +Running this program should reveal these characteristics: + Radix = 1, 2, 4, 8, 10, 16, 100, 256 ... + Precision = number of significant digits carried. + U2 = Radix/Radix^Precision = One Ulp + (OneUlpnit in the Last Place) of 1.000xxx . + U1 = 1/Radix^Precision = One Ulp of numbers a little less than 1.0 . + Adequacy of guard digits for Mult., Div. and Subt. + Whether arithmetic is chopped, correctly rounded, or something else + for Mult., Div., Add/Subt. and Sqrt. + Whether a Sticky Bit used correctly for rounding. + UnderflowThreshold = an underflow threshold. + E0 and PseudoZero tell whether underflow is abrupt, gradual, or fuzzy. + V = an overflow threshold, roughly. + V0 tells, roughly, whether Infinity is represented. + Comparisions are checked for consistency with subtraction + and for contamination with pseudo-zeros. + Sqrt is tested. Y^X is not tested. + Extra-precise subexpressions are revealed but NOT YET tested. + Decimal-Binary conversion is NOT YET tested for accuracy. + +Diagnosis resumes after milestone Number 2 Page: 3 + +The program attempts to discriminate among + FLAWs, like lack of a sticky bit, + Serious DEFECTs, like lack of a guard digit, and + FAILUREs, like 2+2 == 5 . +Failures may confound subsequent diagnoses. + +The diagnostic capabilities of this program go beyond an earlier +program called `MACHAR', which can be found at the end of the +book `Software Manual for the Elementary Functions' (1980) by +W. J. Cody and W. Waite. Although both programs try to discover +the Radix, Precision and range (over/underflow thresholds) +of the arithmetic, this program tries to cope with a wider variety +of pathologies, and to say how well the arithmetic is implemented. + +The program is based upon a conventional radix representation for +floating-point numbers, but also allows logarithmic encoding +as used by certain early WANG machines. + +BASIC version of this program (C) 1983 by Prof. W. M. Kahan; +see source comments for more history. + +Diagnosis resumes after milestone Number 3 Page: 4 + +Program is now RUNNING tests on small integers: +-1, 0, 1/2, 1, 2, 3, 4, 5, 9, 27, 32 & 240 are O.K. + +Searching for Radix and Precision. +Radix = 2.000000 . +Closest relative separation found is U1 = 1.1102230e-016 . + +Recalculating radix and precision + confirms closest relative separation U1 . +Radix confirmed. +The number of significant digits of the Radix is 53.000000 . + +Diagnosis resumes after milestone Number 30 Page: 5 + +Subtraction appears to be normalized, as it should be. +Checking for guard digit in *, /, and -. + *, /, and - appear to have guard digits, as they should. + +Diagnosis resumes after milestone Number 40 Page: 6 + +Checking rounding on multiply, divide and add/subtract. +Multiplication appears to round correctly. +Division appears to round correctly. +Addition/Subtraction appears to round correctly. +Checking for sticky bit. +Sticky bit apparently used correctly. + +Does Multiplication commute? Testing on 20 random pairs. + No failures found in 20 integer pairs. + +Running test of square root(x). +Testing if sqrt(X * X) == X for 20 Integers X. +Test for sqrt monotonicity. +sqrt has passed a test for Monotonicity. +Testing whether sqrt is rounded or chopped. +Square root appears to be correctly rounded. + +Diagnosis resumes after milestone Number 90 Page: 7 + +Testing powers Z^i for small Integers Z and i. +... no discrepancis found. + +Seeking Underflow thresholds UfThold and E0. +Smallest strictly positive number found is E0 = 4.94066e-324 . +Since comparison denies Z = 0, evaluating (Z + Z) / Z should be safe. +What the machine gets for (Z + Z) / Z is 2.00000000000000000e+000 . +This is O.K., provided Over/Underflow has NOT just been signaled. +Underflow is gradual; it incurs Absolute Error = +(roundoff in UfThold) < E0. +The Underflow threshold is 2.22507385850720190e-308, below which +calculation may suffer larger Relative error than merely roundoff. +Since underflow occurs below the threshold +UfThold = (2.00000000000000000e+000) ^ (-1.02200000000000000e+003) +only underflow should afflict the expression + (2.00000000000000000e+000) ^ (-1.02200000000000000e+003); +actually calculating yields: 0.00000000000000000e+000 . +This computed value is O.K. + +Testing X^((X + 1) / (X - 1)) vs. exp(2) = 7.38905609893065220e+000 as X -> 1. +Accuracy seems adequate. +Testing powers Z^Q at four nearly extreme values. + ... no discrepancies found. + + +Diagnosis resumes after milestone Number 160 Page: 8 + +Searching for Overflow threshold: +This may generate an error. +Can `Z = -Y' overflow? +Trying it on Y = -1.#INF0000000000000e+000 . +Seems O.K. +Overflow threshold is V = 1.79769313486231570e+308 . +Overflow saturates at V0 = 1.#INF0000000000000e+000 . +No Overflow should be signaled for V * 1 = 1.79769313486231570e+308 + nor for V / 1 = 1.79769313486231570e+308 . +Any overflow signal separating this * from the one +above is a DEFECT. + + +Diagnosis resumes after milestone Number 190 Page: 9 + + +What message and/or values does Division by Zero produce? + Trying to compute 1 / 0 produces ... 1.#INF000e+000 . + + Trying to compute 0 / 0 produces ... -1.#IND000e+000 . + +Diagnosis resumes after milestone Number 220 Page: 10 + + + +No failures, defects nor flaws have been discovered. +Rounding appears to conform to the proposed IEEE standard P754, +except for possibly Double Rounding during Gradual Underflow. +The arithmetic diagnosed appears to be Excellent! +END OF TEST. diff --git a/code/tools/lcc/x86/win32/tst/paranoia.2bk b/code/tools/lcc/x86/win32/tst/paranoia.2bk new file mode 100644 index 0000000..2718174 --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/paranoia.2bk @@ -0,0 +1,16 @@ +tst/paranoia.c:1867: warning: missing return value +tst/paranoia.c:1874: warning: missing return value +tst/paranoia.c:1884: warning: missing return value +tst/paranoia.c:1924: warning: missing return value +tst/paranoia.c:1939: warning: missing return value +tst/paranoia.c:1956: warning: missing return value +tst/paranoia.c:1975: warning: missing return value +tst/paranoia.c:1988: warning: missing return value +tst/paranoia.c:1995: warning: missing return value +tst/paranoia.c:2055: warning: missing return value +tst/paranoia.c:2062: warning: missing return value +tst/paranoia.c:2070: warning: missing return value +tst/paranoia.c:2087: warning: missing return value +tst/paranoia.c:2115: warning: missing return value +tst/paranoia.c:2144: warning: missing return value +tst/paranoia.c:2173: warning: missing return value diff --git a/code/tools/lcc/x86/win32/tst/paranoia.sbk b/code/tools/lcc/x86/win32/tst/paranoia.sbk new file mode 100644 index 0000000..96fbf11 --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/paranoia.sbk @@ -0,0 +1,20480 @@ +.486 +.model flat +extrn __fltused:near +extrn __ftol:near +_DATA segment +public _Zero +align 4 +_Zero label byte +dd 00H +dd 00H +public _Half +align 4 +_Half label byte +dd 00H +dd 03fe00000H +public _One +align 4 +_One label byte +dd 00H +dd 03ff00000H +public _Two +align 4 +_Two label byte +dd 00H +dd 040000000H +public _Three +align 4 +_Three label byte +dd 00H +dd 040080000H +public _Four +align 4 +_Four label byte +dd 00H +dd 040100000H +public _Five +align 4 +_Five label byte +dd 00H +dd 040140000H +public _Eight +align 4 +_Eight label byte +dd 00H +dd 040200000H +public _Nine +align 4 +_Nine label byte +dd 00H +dd 040220000H +public _TwentySeven +align 4 +_TwentySeven label byte +dd 00H +dd 0403b0000H +public _ThirtyTwo +align 4 +_ThirtyTwo label byte +dd 00H +dd 040400000H +public _TwoForty +align 4 +_TwoForty label byte +dd 00H +dd 0406e0000H +public _MinusOne +align 4 +_MinusOne label byte +dd 00H +dd 0bff00000H +public _OneAndHalf +align 4 +_OneAndHalf label byte +dd 00H +dd 03ff80000H +public _NoTrials +align 4 +_NoTrials label byte +dd 20 +public _sigfpe +_DATA ends +_TEXT segment +_sigfpe: +push ebx +push esi +push edi +push ebp +mov ebp,esp +inc dword ptr (_fpecount) +lea edi,(L2) +push edi +call _printf +add esp,4 +lea edi,(__iob+32) +push edi +call _fflush +add esp,4 +mov edi,dword ptr (_sigsave) +cmp edi,0 +je L4 +mov edi,dword ptr (_sigsave) +push edi +push 8 +call _signal +add esp,8 +mov dword ptr (_sigsave),0 +push 1 +lea edi,(_ovfl_buf) +push edi +call _longjmp +add esp,8 +L4: +call _abort +add esp,0 +L1: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +align 4 +L757 label byte +dd L758 +dd L759 +dd L760 +dd L761 +public _main +_DATA ends +_TEXT segment +_main: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,1684 +fld qword ptr (L7) +fstp qword ptr (_Zero) +fld qword ptr (L8) +fstp qword ptr (_One) +fld qword ptr (_One) +fstp qword ptr (-8)[ebp] +fld qword ptr (-8)[ebp] +fadd qword ptr (-8)[ebp] +fstp qword ptr (_Two) +fld qword ptr (_Two) +fstp qword ptr (-16)[ebp] +fld qword ptr (-16)[ebp] +fadd qword ptr (-8)[ebp] +fstp qword ptr (_Three) +fld qword ptr (_Three) +fstp qword ptr (-24)[ebp] +fld qword ptr (-24)[ebp] +fadd qword ptr (-8)[ebp] +fstp qword ptr (_Four) +fld qword ptr (_Four) +fstp qword ptr (-32)[ebp] +fld qword ptr (-32)[ebp] +fadd qword ptr (-8)[ebp] +fstp qword ptr (_Five) +fld qword ptr (-32)[ebp] +fadd qword ptr (-32)[ebp] +fstp qword ptr (_Eight) +fld qword ptr (-24)[ebp] +fmul qword ptr (-24)[ebp] +fstp qword ptr (_Nine) +fld qword ptr (_Nine) +fmul qword ptr (-24)[ebp] +fstp qword ptr (_TwentySeven) +fld qword ptr (-32)[ebp] +fmul qword ptr (_Eight) +fstp qword ptr (_ThirtyTwo) +fld qword ptr (-32)[ebp] +fmul qword ptr (_Five) +fmul qword ptr (-24)[ebp] +fmul qword ptr (-32)[ebp] +fstp qword ptr (_TwoForty) +fld qword ptr (-8)[ebp] +fchs +fstp qword ptr (_MinusOne) +fld qword ptr (-8)[ebp] +fdiv qword ptr (-16)[ebp] +fstp qword ptr (_Half) +fld qword ptr (-8)[ebp] +fadd qword ptr (_Half) +fstp qword ptr (_OneAndHalf) +mov dword ptr (_ErrCnt),0 +mov dword ptr (_ErrCnt+4),0 +mov dword ptr (_ErrCnt+8),0 +mov dword ptr (_ErrCnt+12),0 +mov dword ptr (_PageNo),1 +mov dword ptr (_Milestone),0 +lea edi,(_sigfpe) +push edi +push 8 +call _signal +add esp,8 +call _Instructions +add esp,0 +call _Pause +add esp,0 +call _Heading +add esp,0 +call _Pause +add esp,0 +call _Characteristics +add esp,0 +call _Pause +add esp,0 +call _History +add esp,0 +call _Pause +add esp,0 +mov dword ptr (_Milestone),7 +lea edi,(L12) +push edi +call _printf +add esp,4 +lea edi,(L14) +push edi +fld qword ptr (_Zero) +fadd qword ptr (_Zero) +fld qword ptr (_Zero) +fcompp +fstsw ax +sahf +jne L15 +fld qword ptr (_One) +fsub qword ptr (_One) +fld qword ptr (_Zero) +fcompp +fstsw ax +sahf +jne L15 +fld qword ptr (_Zero) +fcomp qword ptr (_One) +fstsw ax +sahf +jae L15 +fld qword ptr (_One) +fadd qword ptr (_One) +fld qword ptr (_Two) +fcompp +fstsw ax +sahf +jne L15 +mov dword ptr (-36)[ebp],1 +jmp L16 +L15: +mov dword ptr (-36)[ebp],0 +L16: +mov edi,dword ptr (-36)[ebp] +push edi +push 0 +call _TstCond +add esp,12 +fld qword ptr (_Zero) +fchs +fstp qword ptr (_Z) +fld qword ptr (L7) +fcomp qword ptr (_Z) +fstsw ax +sahf +je L17 +inc dword ptr (_ErrCnt) +lea edi,(L19) +push edi +call _printf +add esp,4 +fld qword ptr (L20) +fstp qword ptr (_U1) +fld qword ptr (L8) +fstp qword ptr (_Radix) +call _TstPtUf +add esp,0 +L17: +lea edi,(L22) +push edi +fld qword ptr (_Two) +fadd qword ptr (_One) +fcomp qword ptr (_Three) +fstsw ax +sahf +jne L23 +fld qword ptr (_Three) +fadd qword ptr (_One) +fcomp qword ptr (_Four) +fstsw ax +sahf +jne L23 +fld qword ptr (_Four) +fld qword ptr (_Two) +fld qword ptr (_Two) +fchs +fmulp st(1),st +faddp st(1),st +fld qword ptr (_Zero) +fcompp +fstsw ax +sahf +jne L23 +fld qword ptr (_Four) +fsub qword ptr (_Three) +fsub qword ptr (_One) +fld qword ptr (_Zero) +fcompp +fstsw ax +sahf +jne L23 +mov dword ptr (-56)[ebp],1 +jmp L24 +L23: +mov dword ptr (-56)[ebp],0 +L24: +mov edi,dword ptr (-56)[ebp] +push edi +push 0 +call _TstCond +add esp,12 +fld qword ptr (L7) +fsub qword ptr (_One) +fcomp qword ptr (_MinusOne) +fstsw ax +sahf +jne L27 +fld qword ptr (_MinusOne) +fadd qword ptr (_One) +fld qword ptr (_Zero) +fcompp +fstsw ax +sahf +jne L27 +fld qword ptr (_One) +fadd qword ptr (_MinusOne) +fld qword ptr (_Zero) +fcompp +fstsw ax +sahf +jne L27 +fld qword ptr (_One) +sub esp,8 +fstp qword ptr [esp] +call _fabs +add esp,8 +fstp qword ptr (-132)[ebp] +fld qword ptr (_MinusOne) +fadd qword ptr (-132)[ebp] +fld qword ptr (_Zero) +fcompp +fstsw ax +sahf +jne L27 +fld qword ptr (_MinusOne) +fld qword ptr (_MinusOne) +fmul qword ptr (_MinusOne) +faddp st(1),st +fld qword ptr (_Zero) +fcompp +fstsw ax +sahf +jne L27 +mov dword ptr (-100)[ebp],1 +jmp L28 +L27: +mov dword ptr (-100)[ebp],0 +L28: +lea edi,(L26) +push edi +mov edi,dword ptr (-100)[ebp] +push edi +push 0 +call _TstCond +add esp,12 +lea edi,(L30) +push edi +fld qword ptr (_Half) +fadd qword ptr (_MinusOne) +fadd qword ptr (_Half) +fld qword ptr (_Zero) +fcompp +fstsw ax +sahf +jne L31 +mov dword ptr (-152)[ebp],1 +jmp L32 +L31: +mov dword ptr (-152)[ebp],0 +L32: +mov edi,dword ptr (-152)[ebp] +push edi +push 0 +call _TstCond +add esp,12 +mov dword ptr (_Milestone),10 +lea edi,(L34) +push edi +fld qword ptr (_Three) +fmul qword ptr (_Three) +fcomp qword ptr (_Nine) +fstsw ax +sahf +jne L35 +fld qword ptr (_Nine) +fmul qword ptr (_Three) +fcomp qword ptr (_TwentySeven) +fstsw ax +sahf +jne L35 +fld qword ptr (_Four) +fadd qword ptr (_Four) +fcomp qword ptr (_Eight) +fstsw ax +sahf +jne L35 +fld qword ptr (_Eight) +fmul qword ptr (_Four) +fcomp qword ptr (_ThirtyTwo) +fstsw ax +sahf +jne L35 +fld qword ptr (_ThirtyTwo) +fsub qword ptr (_TwentySeven) +fsub qword ptr (_Four) +fsub qword ptr (_One) +fld qword ptr (_Zero) +fcompp +fstsw ax +sahf +jne L35 +mov dword ptr (-164)[ebp],1 +jmp L36 +L35: +mov dword ptr (-164)[ebp],0 +L36: +mov edi,dword ptr (-164)[ebp] +push edi +push 0 +call _TstCond +add esp,12 +lea edi,(L38) +push edi +fld qword ptr (_Four) +fadd qword ptr (_One) +fcomp qword ptr (_Five) +fstsw ax +sahf +jne L39 +fld qword ptr (_Four) +fmul qword ptr (_Five) +fmul qword ptr (_Three) +fmul qword ptr (_Four) +fcomp qword ptr (_TwoForty) +fstsw ax +sahf +jne L39 +fld qword ptr (_TwoForty) +fdiv qword ptr (_Three) +fld qword ptr (_Four) +fmul qword ptr (_Four) +fmul qword ptr (_Five) +fsubp st(1),st +fld qword ptr (_Zero) +fcompp +fstsw ax +sahf +jne L39 +fld qword ptr (_TwoForty) +fdiv qword ptr (_Four) +fld qword ptr (_Five) +fmul qword ptr (_Three) +fmul qword ptr (_Four) +fsubp st(1),st +fld qword ptr (_Zero) +fcompp +fstsw ax +sahf +jne L39 +fld qword ptr (_TwoForty) +fdiv qword ptr (_Five) +fld qword ptr (_Four) +fmul qword ptr (_Three) +fmul qword ptr (_Four) +fsubp st(1),st +fld qword ptr (_Zero) +fcompp +fstsw ax +sahf +jne L39 +mov dword ptr (-216)[ebp],1 +jmp L40 +L39: +mov dword ptr (-216)[ebp],0 +L40: +mov edi,dword ptr (-216)[ebp] +push edi +push 0 +call _TstCond +add esp,12 +cmp dword ptr (_ErrCnt),0 +jne L41 +lea edi,(L43) +push edi +call _printf +add esp,4 +lea edi,(L44) +push edi +call _printf +add esp,4 +L41: +lea edi,(L45) +push edi +call _printf +add esp,4 +fld qword ptr (_One) +fstp qword ptr (_W) +L46: +fld qword ptr (_W) +fstp qword ptr (-264)[ebp] +fld qword ptr (-264)[ebp] +fadd qword ptr (-264)[ebp] +fstp qword ptr (_W) +fld qword ptr (_W) +fstp qword ptr (-272)[ebp] +fld qword ptr (-272)[ebp] +fadd qword ptr (_One) +fstp qword ptr (_Y) +fld qword ptr (_Y) +fsub qword ptr (-272)[ebp] +fstp qword ptr (_Z) +fld qword ptr (_Z) +fsub qword ptr (_One) +fstp qword ptr (_Y) +L47: +fld qword ptr (_Y) +sub esp,8 +fstp qword ptr [esp] +call _fabs +add esp,8 +fstp qword ptr (-264)[ebp] +fld qword ptr (_MinusOne) +fadd qword ptr (-264)[ebp] +fld qword ptr (_Zero) +fcompp +fstsw ax +sahf +ja L46 +fld qword ptr (_Zero) +fstp qword ptr (_Precision) +fld qword ptr (_One) +fstp qword ptr (_Y) +L49: +fld qword ptr (_Y) +fstp qword ptr (-280)[ebp] +fld qword ptr (_W) +fadd qword ptr (-280)[ebp] +fstp qword ptr (_Radix) +fld qword ptr (-280)[ebp] +fadd qword ptr (-280)[ebp] +fstp qword ptr (_Y) +fld qword ptr (_Radix) +fsub qword ptr (_W) +fstp qword ptr (_Radix) +L50: +fld qword ptr (_Zero) +fcomp qword ptr (_Radix) +fstsw ax +sahf +je L49 +fld qword ptr (_Two) +fcomp qword ptr (_Radix) +fstsw ax +sahf +jbe L52 +fld qword ptr (_One) +fstp qword ptr (_Radix) +L52: +fld qword ptr (_Radix) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L54) +push edi +call _printf +add esp,12 +fld qword ptr (L8) +fcomp qword ptr (_Radix) +fstsw ax +sahf +je L55 +fld qword ptr (_One) +fstp qword ptr (_W) +L57: +fld qword ptr (_Precision) +fadd qword ptr (_One) +fstp qword ptr (_Precision) +fld qword ptr (_W) +fmul qword ptr (_Radix) +fstp qword ptr (_W) +fld qword ptr (_W) +fadd qword ptr (_One) +fstp qword ptr (_Y) +L58: +fld qword ptr (_Y) +fsub qword ptr (_W) +fld qword ptr (_One) +fcompp +fstsw ax +sahf +je L57 +L55: +fld qword ptr (_One) +fdiv qword ptr (_W) +fstp qword ptr (_U1) +fld qword ptr (_U1) +fstp qword ptr (-272)[ebp] +fld qword ptr (_Radix) +fmul qword ptr (-272)[ebp] +fstp qword ptr (_U2) +fld qword ptr (-272)[ebp] +sub esp,8 +fstp qword ptr [esp] +lea edi,(L60) +push edi +call _printf +add esp,12 +lea edi,(L61) +push edi +call _printf +add esp,4 +fld qword ptr (_Radix) +fstp qword ptr (_E0) +fld qword ptr (_U1) +fstp qword ptr (_E1) +fld qword ptr (_U2) +fstp qword ptr (_E9) +fld qword ptr (_Precision) +fstp qword ptr (_E3) +fld qword ptr (_Four) +fdiv qword ptr (_Three) +fstp qword ptr (_X) +fld qword ptr (_X) +fsub qword ptr (_One) +fstp qword ptr (_Third) +fld qword ptr (_Third) +fstp qword ptr (-280)[ebp] +fld qword ptr (_Half) +fsub qword ptr (-280)[ebp] +fstp qword ptr (_F6) +fld qword ptr (_F6) +fstp qword ptr (-288)[ebp] +fld qword ptr (-288)[ebp] +fadd qword ptr (-288)[ebp] +fstp qword ptr (_X) +fld qword ptr (_X) +fsub qword ptr (-280)[ebp] +sub esp,8 +fstp qword ptr [esp] +call _fabs +add esp,8 +fstp qword ptr (-296)[ebp] +fld qword ptr (-296)[ebp] +fstp qword ptr (_X) +fld qword ptr (_U2) +fcomp qword ptr (_X) +fstsw ax +sahf +jbe L62 +fld qword ptr (_U2) +fstp qword ptr (_X) +L62: +L64: +fld qword ptr (_X) +fstp qword ptr (_U2) +fld qword ptr (_U2) +fstp qword ptr (-304)[ebp] +fld qword ptr (_Half) +fmul qword ptr (-304)[ebp] +fld qword ptr (_ThirtyTwo) +fmul qword ptr (-304)[ebp] +fmul qword ptr (-304)[ebp] +faddp st(1),st +fstp qword ptr (_Y) +fld qword ptr (_One) +fadd qword ptr (_Y) +fstp qword ptr (_Y) +fld qword ptr (_Y) +fsub qword ptr (_One) +fstp qword ptr (_X) +L65: +fld qword ptr (_X) +fcomp qword ptr (_U2) +fstsw ax +sahf +jae L67 +fld qword ptr (_Zero) +fcomp qword ptr (_X) +fstsw ax +sahf +jb L64 +L67: +fld qword ptr (_Two) +fdiv qword ptr (_Three) +fstp qword ptr (_X) +fld qword ptr (_X) +fsub qword ptr (_Half) +fstp qword ptr (_F6) +fld qword ptr (_F6) +fstp qword ptr (-320)[ebp] +fld qword ptr (-320)[ebp] +fadd qword ptr (-320)[ebp] +fstp qword ptr (_Third) +fld qword ptr (_Third) +fsub qword ptr (_Half) +fstp qword ptr (_X) +fld qword ptr (_X) +fadd qword ptr (-320)[ebp] +sub esp,8 +fstp qword ptr [esp] +call _fabs +add esp,8 +fstp qword ptr (-328)[ebp] +fld qword ptr (-328)[ebp] +fstp qword ptr (_X) +fld qword ptr (_U1) +fcomp qword ptr (_X) +fstsw ax +sahf +jbe L68 +fld qword ptr (_U1) +fstp qword ptr (_X) +L68: +L70: +fld qword ptr (_X) +fstp qword ptr (_U1) +fld qword ptr (_U1) +fstp qword ptr (-344)[ebp] +fld qword ptr (_Half) +fmul qword ptr (-344)[ebp] +fld qword ptr (_ThirtyTwo) +fmul qword ptr (-344)[ebp] +fmul qword ptr (-344)[ebp] +faddp st(1),st +fstp qword ptr (_Y) +fld qword ptr (_Half) +fsub qword ptr (_Y) +fstp qword ptr (_Y) +fld qword ptr (_Half) +fadd qword ptr (_Y) +fstp qword ptr (_X) +fld qword ptr (_Half) +fsub qword ptr (_X) +fstp qword ptr (_Y) +fld qword ptr (_Half) +fadd qword ptr (_Y) +fstp qword ptr (_X) +L71: +fld qword ptr (_X) +fcomp qword ptr (_U1) +fstsw ax +sahf +jae L73 +fld qword ptr (_Zero) +fcomp qword ptr (_X) +fstsw ax +sahf +jb L70 +L73: +fld qword ptr (_E1) +fcomp qword ptr (_U1) +fstsw ax +sahf +jne L74 +lea edi,(L76) +push edi +call _printf +add esp,4 +jmp L75 +L74: +fld qword ptr (_U1) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L77) +push edi +call _printf +add esp,12 +L75: +fld qword ptr (_One) +fdiv qword ptr (_U1) +fstp qword ptr (_W) +fld qword ptr (_Half) +fsub qword ptr (_U1) +fadd qword ptr (_Half) +fstp qword ptr (_F9) +fld qword ptr (_U2) +fdiv qword ptr (_U1) +fadd qword ptr (L78) +sub esp,8 +fstp qword ptr [esp] +call _floor +add esp,8 +fstp qword ptr (-360)[ebp] +fld qword ptr (-360)[ebp] +fstp qword ptr (_Radix) +fld qword ptr (_E0) +fcomp qword ptr (_Radix) +fstsw ax +sahf +jne L79 +lea edi,(L81) +push edi +call _printf +add esp,4 +jmp L80 +L79: +fld qword ptr (_Radix) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L82) +push edi +call _printf +add esp,12 +L80: +lea edi,(L84) +push edi +fld qword ptr (_Eight) +fadd qword ptr (_Eight) +fcomp qword ptr (_Radix) +fstsw ax +sahf +jb L85 +mov dword ptr (-364)[ebp],1 +jmp L86 +L85: +mov dword ptr (-364)[ebp],0 +L86: +mov edi,dword ptr (-364)[ebp] +push edi +push 2 +call _TstCond +add esp,12 +lea edi,(L88) +push edi +fld qword ptr (_Two) +fcomp qword ptr (_Radix) +fstsw ax +sahf +je L92 +fld qword ptr (L93) +fcomp qword ptr (_Radix) +fstsw ax +sahf +je L92 +fld qword ptr (_One) +fcomp qword ptr (_Radix) +fstsw ax +sahf +jne L89 +L92: +mov dword ptr (-376)[ebp],1 +jmp L90 +L89: +mov dword ptr (-376)[ebp],0 +L90: +mov edi,dword ptr (-376)[ebp] +push edi +push 3 +call _TstCond +add esp,12 +mov dword ptr (_Milestone),20 +lea edi,(L95) +push edi +fld qword ptr (_F9) +fsub qword ptr (_Half) +fld qword ptr (_Half) +fcompp +fstsw ax +sahf +jbe L96 +mov dword ptr (-388)[ebp],1 +jmp L97 +L96: +mov dword ptr (-388)[ebp],0 +L97: +mov edi,dword ptr (-388)[ebp] +push edi +push 0 +call _TstCond +add esp,12 +fld qword ptr (_F9) +fstp qword ptr (_X) +mov dword ptr (_I),1 +fld qword ptr (_X) +fsub qword ptr (_Half) +fstp qword ptr (_Y) +fld qword ptr (_Y) +fsub qword ptr (_Half) +fstp qword ptr (_Z) +lea edi,(L99) +push edi +fld qword ptr (_One) +fcomp qword ptr (_X) +fstsw ax +sahf +jne L102 +fld qword ptr (_Zero) +fcomp qword ptr (_Z) +fstsw ax +sahf +jne L100 +L102: +mov dword ptr (-400)[ebp],1 +jmp L101 +L100: +mov dword ptr (-400)[ebp],0 +L101: +mov edi,dword ptr (-400)[ebp] +push edi +push 0 +call _TstCond +add esp,12 +fld qword ptr (_One) +fadd qword ptr (_U2) +fstp qword ptr (_X) +mov dword ptr (_I),0 +mov dword ptr (_Milestone),25 +fld qword ptr (_Radix) +fsub qword ptr (_One) +fstp qword ptr (_BMinusU2) +fld qword ptr (_BMinusU2) +fsub qword ptr (_U2) +fadd qword ptr (_One) +fstp qword ptr (_BMinusU2) +fld qword ptr (_One) +fcomp qword ptr (_Radix) +fstsw ax +sahf +je L103 +fld qword ptr (_U1) +sub esp,8 +fstp qword ptr [esp] +call _log +add esp,8 +fstp qword ptr (-440)[ebp] +fld qword ptr (_Radix) +sub esp,8 +fstp qword ptr [esp] +call _log +add esp,8 +fstp qword ptr (-448)[ebp] +fld qword ptr (_TwoForty) +fchs +fmul qword ptr (-440)[ebp] +fdiv qword ptr (-448)[ebp] +fstp qword ptr (_X) +fld qword ptr (_Half) +fadd qword ptr (_X) +sub esp,8 +fstp qword ptr [esp] +call _floor +add esp,8 +fstp qword ptr (-456)[ebp] +fld qword ptr (-456)[ebp] +fstp qword ptr (_Y) +fld qword ptr (_X) +fsub qword ptr (_Y) +sub esp,8 +fstp qword ptr [esp] +call _fabs +add esp,8 +fstp qword ptr (-464)[ebp] +fld qword ptr (-464)[ebp] +fmul qword ptr (_Four) +fld qword ptr (_One) +fcompp +fstsw ax +sahf +jbe L105 +fld qword ptr (_Y) +fstp qword ptr (_X) +L105: +fld qword ptr (_X) +fdiv qword ptr (_TwoForty) +fstp qword ptr (_Precision) +fld qword ptr (_Half) +fadd qword ptr (_Precision) +sub esp,8 +fstp qword ptr [esp] +call _floor +add esp,8 +fstp qword ptr (-472)[ebp] +fld qword ptr (-472)[ebp] +fstp qword ptr (_Y) +fld qword ptr (_Precision) +fsub qword ptr (_Y) +sub esp,8 +fstp qword ptr [esp] +call _fabs +add esp,8 +fstp qword ptr (-480)[ebp] +fld qword ptr (-480)[ebp] +fmul qword ptr (_TwoForty) +fld qword ptr (_Half) +fcompp +fstsw ax +sahf +jbe L107 +fld qword ptr (_Y) +fstp qword ptr (_Precision) +L107: +L103: +fld qword ptr (_Precision) +sub esp,8 +fstp qword ptr [esp] +call _floor +add esp,8 +fstp qword ptr (-448)[ebp] +fld qword ptr (-448)[ebp] +fcomp qword ptr (_Precision) +fstsw ax +sahf +jne L111 +fld qword ptr (_One) +fcomp qword ptr (_Radix) +fstsw ax +sahf +jne L109 +L111: +lea edi,(L112) +push edi +call _printf +add esp,4 +lea edi,(L113) +push edi +call _printf +add esp,4 +L109: +fld qword ptr (_One) +fcomp qword ptr (_Radix) +fstsw ax +sahf +jne L114 +lea edi,(L116) +push edi +call _printf +add esp,4 +jmp L115 +L114: +fld qword ptr (_Precision) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L117) +push edi +call _printf +add esp,12 +L115: +lea edi,(L119) +push edi +fld qword ptr (_U2) +fmul qword ptr (_Nine) +fmul qword ptr (_Nine) +fmul qword ptr (_TwoForty) +fld qword ptr (_One) +fcompp +fstsw ax +sahf +jbe L120 +mov dword ptr (-452)[ebp],1 +jmp L121 +L120: +mov dword ptr (-452)[ebp],0 +L121: +mov edi,dword ptr (-452)[ebp] +push edi +push 1 +call _TstCond +add esp,12 +mov dword ptr (_Milestone),30 +fld qword ptr (_One) +fdiv qword ptr (_Four) +fstp qword ptr (-492)[ebp] +fld qword ptr (_Four) +fdiv qword ptr (_Three) +fsub qword ptr (_One) +fsub qword ptr (-492)[ebp] +fmul qword ptr (_Three) +fsub qword ptr (-492)[ebp] +sub esp,8 +fstp qword ptr [esp] +call _fabs +add esp,8 +fstp qword ptr (-500)[ebp] +fld qword ptr (-500)[ebp] +fstp qword ptr (_X) +L122: +fld qword ptr (_X) +fstp qword ptr (_Z2) +fld qword ptr (_Z2) +fstp qword ptr (-516)[ebp] +fld qword ptr (_One) +fld qword ptr (_Half) +fmul qword ptr (-516)[ebp] +fld qword ptr (_ThirtyTwo) +fmul qword ptr (-516)[ebp] +fmul qword ptr (-516)[ebp] +faddp st(1),st +faddp st(1),st +fsub qword ptr (_One) +fstp qword ptr (_X) +L123: +fld qword ptr (_X) +fcomp qword ptr (_Z2) +fstsw ax +sahf +jae L125 +fld qword ptr (_Zero) +fcomp qword ptr (_X) +fstsw ax +sahf +jb L122 +L125: +fld qword ptr (_Three) +fdiv qword ptr (_Four) +fld qword ptr (_Two) +fdiv qword ptr (_Three) +fsubp st(1),st +fmul qword ptr (_Three) +fld qword ptr (_One) +fdiv qword ptr (_Four) +fsubp st(1),st +sub esp,8 +fstp qword ptr [esp] +call _fabs +add esp,8 +fstp qword ptr (-532)[ebp] +fld qword ptr (-532)[ebp] +fstp qword ptr (_Z) +fld qword ptr (-532)[ebp] +fstp qword ptr (_Y) +fld qword ptr (-532)[ebp] +fstp qword ptr (_X) +L126: +fld qword ptr (_Z) +fstp qword ptr (_Z1) +fld qword ptr (_One) +fdiv qword ptr (_Two) +fstp qword ptr (-540)[ebp] +fld qword ptr (_Z1) +fstp qword ptr (-548)[ebp] +fld qword ptr (-540)[ebp] +fld qword ptr (-540)[ebp] +fld qword ptr (_Half) +fmul qword ptr (-548)[ebp] +fld qword ptr (_ThirtyTwo) +fmul qword ptr (-548)[ebp] +fmul qword ptr (-548)[ebp] +faddp st(1),st +fsubp st(1),st +fadd qword ptr (-540)[ebp] +fsubp st(1),st +fadd qword ptr (-540)[ebp] +fstp qword ptr (_Z) +L127: +fld qword ptr (_Z) +fcomp qword ptr (_Z1) +fstsw ax +sahf +jae L129 +fld qword ptr (_Zero) +fcomp qword ptr (_Z) +fstsw ax +sahf +jb L126 +L129: +L130: +L133: +fld qword ptr (_Y) +fstp qword ptr (_Y1) +fld qword ptr (_Y1) +fstp qword ptr (-556)[ebp] +fld qword ptr (_Half) +fld qword ptr (_Half) +fld qword ptr (_Half) +fmul qword ptr (-556)[ebp] +fld qword ptr (_ThirtyTwo) +fmul qword ptr (-556)[ebp] +fmul qword ptr (-556)[ebp] +faddp st(1),st +fsubp st(1),st +fadd qword ptr (_Half) +fsubp st(1),st +fadd qword ptr (_Half) +fstp qword ptr (_Y) +L134: +fld qword ptr (_Y) +fcomp qword ptr (_Y1) +fstsw ax +sahf +jae L136 +fld qword ptr (_Zero) +fcomp qword ptr (_Y) +fstsw ax +sahf +jb L133 +L136: +fld qword ptr (_X) +fstp qword ptr (_X1) +fld qword ptr (_X1) +fstp qword ptr (-556)[ebp] +fld qword ptr (_Half) +fmul qword ptr (-556)[ebp] +fld qword ptr (_ThirtyTwo) +fmul qword ptr (-556)[ebp] +fmul qword ptr (-556)[ebp] +faddp st(1),st +fsub qword ptr (_F9) +fadd qword ptr (_F9) +fstp qword ptr (_X) +L131: +fld qword ptr (_X) +fcomp qword ptr (_X1) +fstsw ax +sahf +jae L137 +fld qword ptr (_Zero) +fcomp qword ptr (_X) +fstsw ax +sahf +jb L130 +L137: +fld qword ptr (_Y1) +fcomp qword ptr (_X1) +fstsw ax +sahf +jne L140 +fld qword ptr (_Z1) +fcomp qword ptr (_X1) +fstsw ax +sahf +je L138 +L140: +lea edi,(L141) +push edi +push 1 +call _BadCond +add esp,8 +fld qword ptr (_Z1) +sub esp,8 +fstp qword ptr [esp] +fld qword ptr (_Y1) +sub esp,8 +fstp qword ptr [esp] +fld qword ptr (_X1) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L142) +push edi +call _printf +add esp,28 +lea edi,(L143) +push edi +call _printf +add esp,4 +lea edi,(L144) +push edi +call _printf +add esp,4 +lea edi,(L145) +push edi +call _notify +add esp,4 +fld qword ptr (_U1) +fcomp qword ptr (_X1) +fstsw ax +sahf +je L149 +fld qword ptr (_U1) +fcomp qword ptr (_Y1) +fstsw ax +sahf +je L149 +fld qword ptr (_U1) +fcomp qword ptr (_Z1) +fstsw ax +sahf +jne L139 +L149: +lea edi,(L150) +push edi +call _printf +add esp,4 +jmp L139 +L138: +fld qword ptr (_U1) +fcomp qword ptr (_Z1) +fstsw ax +sahf +jne L153 +fld qword ptr (_U2) +fcomp qword ptr (_Z2) +fstsw ax +sahf +je L151 +L153: +fld qword ptr (_U1) +fcomp qword ptr (_Z1) +fstsw ax +sahf +jbe L156 +fld qword ptr (_U2) +fcomp qword ptr (_Z2) +fstsw ax +sahf +ja L154 +L156: +lea edi,(L157) +push edi +push 0 +call _BadCond +add esp,8 +lea edi,(L158) +push edi +call _notify +add esp,4 +fld qword ptr (_Z1) +fsub qword ptr (_U1) +sub esp,8 +fstp qword ptr [esp] +fld qword ptr (_U1) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L159) +push edi +call _printf +add esp,20 +fld qword ptr (_Z2) +fsub qword ptr (_U2) +sub esp,8 +fstp qword ptr [esp] +fld qword ptr (_U2) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L160) +push edi +call _printf +add esp,20 +jmp L155 +L154: +fld qword ptr (_Zero) +fcomp qword ptr (_Z1) +fstsw ax +sahf +jae L163 +fld qword ptr (_Zero) +fcomp qword ptr (_Z2) +fstsw ax +sahf +jb L161 +L163: +fld qword ptr (_Radix) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L164) +push edi +call _printf +add esp,12 +lea edi,(L165) +push edi +call _printf +add esp,4 +fld qword ptr (_Z2) +sub esp,8 +fstp qword ptr [esp] +fld qword ptr (_Z1) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L166) +push edi +call _printf +add esp,20 +lea edi,(L167) +push edi +call _notify +add esp,4 +L161: +fld qword ptr (_Z2) +fcomp qword ptr (_Z1) +fstsw ax +sahf +jne L170 +fld qword ptr (_Zero) +fcomp qword ptr (_Z1) +fstsw ax +sahf +jae L168 +L170: +fld qword ptr (_Z1) +fdiv qword ptr (_U1) +fstp qword ptr (_X) +fld qword ptr (_Z2) +fdiv qword ptr (_U2) +fstp qword ptr (_Y) +fld qword ptr (_X) +fcomp qword ptr (_Y) +fstsw ax +sahf +jae L171 +fld qword ptr (_Y) +fstp qword ptr (_X) +L171: +fld qword ptr (_X) +sub esp,8 +fstp qword ptr [esp] +call _log +add esp,8 +fstp qword ptr (-580)[ebp] +fld qword ptr (-580)[ebp] +fchs +fstp qword ptr (_Q) +lea edi,(L173) +push edi +call _printf +add esp,4 +fld qword ptr (_Radix) +sub esp,8 +fstp qword ptr [esp] +call _log +add esp,8 +fstp qword ptr (-588)[ebp] +fld qword ptr (_Q) +fdiv qword ptr (-588)[ebp] +sub esp,8 +fstp qword ptr [esp] +lea edi,(L174) +push edi +call _printf +add esp,12 +fld qword ptr (L93) +sub esp,8 +fstp qword ptr [esp] +call _log +add esp,8 +fstp qword ptr (-596)[ebp] +fld qword ptr (_Q) +fdiv qword ptr (-596)[ebp] +sub esp,8 +fstp qword ptr [esp] +lea edi,(L175) +push edi +call _printf +add esp,12 +L168: +lea edi,(L150) +push edi +call _printf +add esp,4 +L155: +L151: +L139: +call _Pause +add esp,0 +mov dword ptr (_Milestone),35 +fld qword ptr (_Two) +fcomp qword ptr (_Radix) +fstsw ax +sahf +ja L176 +fld qword ptr (_W) +fld qword ptr (_Radix) +fmul qword ptr (_Radix) +fdivp st(1),st +fstp qword ptr (_X) +fld qword ptr (_X) +fstp qword ptr (-576)[ebp] +fld qword ptr (-576)[ebp] +fadd qword ptr (_One) +fstp qword ptr (_Y) +fld qword ptr (_Y) +fsub qword ptr (-576)[ebp] +fstp qword ptr (_Z) +fld qword ptr (_Z) +fstp qword ptr (-584)[ebp] +fld qword ptr (-584)[ebp] +fadd qword ptr (_U2) +fstp qword ptr (_T) +fld qword ptr (_T) +fsub qword ptr (-584)[ebp] +fstp qword ptr (_X) +lea edi,(L179) +push edi +fld qword ptr (_U2) +fcomp qword ptr (_X) +fstsw ax +sahf +jne L180 +mov dword ptr (-560)[ebp],1 +jmp L181 +L180: +mov dword ptr (-560)[ebp],0 +L181: +mov edi,dword ptr (-560)[ebp] +push edi +push 0 +call _TstCond +add esp,12 +fld qword ptr (_U2) +fcomp qword ptr (_X) +fstsw ax +sahf +jne L182 +lea edi,(L184) +push edi +call _printf +add esp,4 +L182: +L176: +lea edi,(L185) +push edi +call _printf +add esp,4 +fld qword ptr (_F9) +fmul qword ptr (_One) +fstp qword ptr (_Y) +fld qword ptr (_One) +fmul qword ptr (_F9) +fstp qword ptr (_Z) +fld qword ptr (_F9) +fsub qword ptr (_Half) +fstp qword ptr (_X) +fld qword ptr (_X) +fstp qword ptr (-588)[ebp] +fld qword ptr (_Y) +fsub qword ptr (_Half) +fsub qword ptr (-588)[ebp] +fstp qword ptr (_Y) +fld qword ptr (_Z) +fsub qword ptr (_Half) +fsub qword ptr (-588)[ebp] +fstp qword ptr (_Z) +fld qword ptr (_One) +fadd qword ptr (_U2) +fstp qword ptr (_X) +fld qword ptr (_X) +fstp qword ptr (-604)[ebp] +fld qword ptr (-604)[ebp] +fmul qword ptr (_Radix) +fstp qword ptr (_T) +fld qword ptr (_Radix) +fmul qword ptr (-604)[ebp] +fstp qword ptr (_R) +fld qword ptr (_T) +fsub qword ptr (_Radix) +fstp qword ptr (_X) +fld qword ptr (_Radix) +fmul qword ptr (_U2) +fstp qword ptr (-620)[ebp] +fld qword ptr (_X) +fsub qword ptr (-620)[ebp] +fstp qword ptr (_X) +fld qword ptr (_R) +fsub qword ptr (_Radix) +fstp qword ptr (_T) +fld qword ptr (_T) +fsub qword ptr (-620)[ebp] +fstp qword ptr (_T) +fld qword ptr (_Radix) +fsub qword ptr (_One) +fstp qword ptr (-628)[ebp] +fld qword ptr (_X) +fmul qword ptr (-628)[ebp] +fstp qword ptr (_X) +fld qword ptr (_T) +fmul qword ptr (-628)[ebp] +fstp qword ptr (_T) +fld qword ptr (_Zero) +fcomp qword ptr (_X) +fstsw ax +sahf +jne L186 +fld qword ptr (_Zero) +fcomp qword ptr (_Y) +fstsw ax +sahf +jne L186 +fld qword ptr (_Zero) +fcomp qword ptr (_Z) +fstsw ax +sahf +jne L186 +fld qword ptr (_Zero) +fcomp qword ptr (_T) +fstsw ax +sahf +jne L186 +mov dword ptr (_GMult),1 +jmp L187 +L186: +mov dword ptr (_GMult),0 +lea edi,(L188) +push edi +push 0 +push 1 +call _TstCond +add esp,12 +L187: +fld qword ptr (_Radix) +fmul qword ptr (_U2) +fstp qword ptr (_Z) +fld qword ptr (_Z) +fstp qword ptr (-648)[ebp] +fld qword ptr (_One) +fadd qword ptr (-648)[ebp] +fstp qword ptr (_X) +fld qword ptr (_X) +fstp qword ptr (-656)[ebp] +fld qword ptr (-656)[ebp] +fadd qword ptr (-648)[ebp] +fld qword ptr (-656)[ebp] +fmul qword ptr (-656)[ebp] +fsubp st(1),st +sub esp,8 +fstp qword ptr [esp] +call _fabs +add esp,8 +fstp qword ptr (-664)[ebp] +fld qword ptr (-664)[ebp] +fsub qword ptr (_U2) +fstp qword ptr (_Y) +fld qword ptr (_One) +fsub qword ptr (_U2) +fstp qword ptr (_X) +fld qword ptr (_X) +fstp qword ptr (-680)[ebp] +fld qword ptr (-680)[ebp] +fsub qword ptr (_U2) +fld qword ptr (-680)[ebp] +fmul qword ptr (-680)[ebp] +fsubp st(1),st +sub esp,8 +fstp qword ptr [esp] +call _fabs +add esp,8 +fstp qword ptr (-688)[ebp] +fld qword ptr (-688)[ebp] +fsub qword ptr (_U1) +fstp qword ptr (_Z) +lea edi,(L190) +push edi +fld qword ptr (_Zero) +fcomp qword ptr (_Y) +fstsw ax +sahf +jb L191 +fld qword ptr (_Zero) +fcomp qword ptr (_Z) +fstsw ax +sahf +jb L191 +mov dword ptr (-640)[ebp],1 +jmp L192 +L191: +mov dword ptr (-640)[ebp],0 +L192: +mov edi,dword ptr (-640)[ebp] +push edi +push 0 +call _TstCond +add esp,12 +fld qword ptr (_One) +fsub qword ptr (_U2) +fstp qword ptr (_Y) +fld qword ptr (_One) +fadd qword ptr (_U2) +fstp qword ptr (_X) +fld qword ptr (_One) +fdiv qword ptr (_Y) +fstp qword ptr (_Z) +fld qword ptr (_Z) +fsub qword ptr (_X) +fstp qword ptr (_Y) +fld qword ptr (_One) +fdiv qword ptr (_Three) +fstp qword ptr (_X) +fld qword ptr (_Three) +fdiv qword ptr (_Nine) +fstp qword ptr (_Z) +fld qword ptr (_Z) +fstp qword ptr (-740)[ebp] +fld qword ptr (_X) +fsub qword ptr (-740)[ebp] +fstp qword ptr (_X) +fld qword ptr (_Nine) +fdiv qword ptr (_TwentySeven) +fstp qword ptr (_T) +fld qword ptr (-740)[ebp] +fsub qword ptr (_T) +fstp qword ptr (_Z) +lea edi,(L194) +push edi +fld qword ptr (_Zero) +fcomp qword ptr (_X) +fstsw ax +sahf +jne L195 +fld qword ptr (_Zero) +fcomp qword ptr (_Y) +fstsw ax +sahf +jne L195 +fld qword ptr (_Zero) +fcomp qword ptr (_Z) +fstsw ax +sahf +jne L195 +mov dword ptr (-700)[ebp],1 +jmp L196 +L195: +mov dword ptr (-700)[ebp],0 +L196: +mov edi,dword ptr (-700)[ebp] +push edi +push 2 +call _TstCond +add esp,12 +fld qword ptr (_F9) +fdiv qword ptr (_One) +fstp qword ptr (_Y) +fld qword ptr (_F9) +fsub qword ptr (_Half) +fstp qword ptr (_X) +fld qword ptr (_Y) +fsub qword ptr (_Half) +fsub qword ptr (_X) +fstp qword ptr (_Y) +fld qword ptr (_One) +fadd qword ptr (_U2) +fstp qword ptr (_X) +fld qword ptr (_X) +fstp qword ptr (-780)[ebp] +fld qword ptr (-780)[ebp] +fdiv qword ptr (_One) +fstp qword ptr (_T) +fld qword ptr (_T) +fsub qword ptr (-780)[ebp] +fstp qword ptr (_X) +fld qword ptr (_Zero) +fcomp qword ptr (_X) +fstsw ax +sahf +jne L197 +fld qword ptr (_Zero) +fcomp qword ptr (_Y) +fstsw ax +sahf +jne L197 +fld qword ptr (_Zero) +fcomp qword ptr (_Z) +fstsw ax +sahf +jne L197 +mov dword ptr (_GDiv),1 +jmp L198 +L197: +mov dword ptr (_GDiv),0 +lea edi,(L199) +push edi +push 0 +push 1 +call _TstCond +add esp,12 +L198: +fld qword ptr (_One) +fld qword ptr (_One) +fadd qword ptr (_U2) +fdivp st(1),st +fstp qword ptr (_X) +fld qword ptr (_X) +fsub qword ptr (_Half) +fsub qword ptr (_Half) +fstp qword ptr (_Y) +lea edi,(L201) +push edi +fld qword ptr (_Zero) +fcomp qword ptr (_Y) +fstsw ax +sahf +jbe L202 +mov dword ptr (-792)[ebp],1 +jmp L203 +L202: +mov dword ptr (-792)[ebp],0 +L203: +mov edi,dword ptr (-792)[ebp] +push edi +push 1 +call _TstCond +add esp,12 +fld qword ptr (_One) +fsub qword ptr (_U2) +fstp qword ptr (_X) +fld qword ptr (_One) +fld qword ptr (_Radix) +fmul qword ptr (_U2) +faddp st(1),st +fstp qword ptr (_Y) +fld qword ptr (_X) +fstp qword ptr (-844)[ebp] +fld qword ptr (-844)[ebp] +fmul qword ptr (_Radix) +fstp qword ptr (_Z) +fld qword ptr (_Y) +fstp qword ptr (-852)[ebp] +fld qword ptr (-852)[ebp] +fmul qword ptr (_Radix) +fstp qword ptr (_T) +fld qword ptr (_Z) +fdiv qword ptr (_Radix) +fstp qword ptr (_R) +fld qword ptr (_T) +fdiv qword ptr (_Radix) +fstp qword ptr (_StickyBit) +fld qword ptr (_R) +fsub qword ptr (-844)[ebp] +fstp qword ptr (_X) +fld qword ptr (_StickyBit) +fsub qword ptr (-852)[ebp] +fstp qword ptr (_Y) +lea edi,(L205) +push edi +fld qword ptr (_Zero) +fcomp qword ptr (_X) +fstsw ax +sahf +jne L206 +fld qword ptr (_Zero) +fcomp qword ptr (_Y) +fstsw ax +sahf +jne L206 +mov dword ptr (-812)[ebp],1 +jmp L207 +L206: +mov dword ptr (-812)[ebp],0 +L207: +mov edi,dword ptr (-812)[ebp] +push edi +push 0 +call _TstCond +add esp,12 +fld qword ptr (_One) +fsub qword ptr (_U1) +fstp qword ptr (_Y) +fld qword ptr (_One) +fsub qword ptr (_F9) +fstp qword ptr (_X) +fld qword ptr (_One) +fsub qword ptr (_Y) +fstp qword ptr (_Y) +fld qword ptr (_Radix) +fsub qword ptr (_U2) +fstp qword ptr (_T) +fld qword ptr (_Radix) +fsub qword ptr (_BMinusU2) +fstp qword ptr (_Z) +fld qword ptr (_Radix) +fsub qword ptr (_T) +fstp qword ptr (_T) +fld qword ptr (_U1) +fcomp qword ptr (_X) +fstsw ax +sahf +jne L208 +fld qword ptr (_U1) +fcomp qword ptr (_Y) +fstsw ax +sahf +jne L208 +fld qword ptr (_U2) +fcomp qword ptr (_Z) +fstsw ax +sahf +jne L208 +fld qword ptr (_U2) +fcomp qword ptr (_T) +fstsw ax +sahf +jne L208 +mov dword ptr (_GAddSub),1 +jmp L209 +L208: +mov dword ptr (_GAddSub),0 +lea edi,(L210) +push edi +push 0 +push 1 +call _TstCond +add esp,12 +L209: +fld qword ptr (_One) +fcomp qword ptr (_F9) +fstsw ax +sahf +je L211 +fld qword ptr (_F9) +fsub qword ptr (_One) +fld qword ptr (_Zero) +fcompp +fstsw ax +sahf +ja L211 +lea edi,(L213) +push edi +push 1 +call _BadCond +add esp,8 +lea edi,(L214) +push edi +call _printf +add esp,4 +lea edi,(L215) +push edi +call _printf +add esp,4 +lea edi,(L216) +push edi +call _printf +add esp,4 +L211: +cmp dword ptr (_GMult),1 +jne L217 +cmp dword ptr (_GDiv),1 +jne L217 +cmp dword ptr (_GAddSub),1 +jne L217 +lea edi,(L219) +push edi +call _printf +add esp,4 +L217: +mov dword ptr (_Milestone),40 +call _Pause +add esp,0 +lea edi,(L220) +push edi +call _printf +add esp,4 +mov dword ptr (_RMult),0 +mov dword ptr (_RDiv),0 +mov dword ptr (_RAddSub),0 +fld qword ptr (_Radix) +fdiv qword ptr (_Two) +fstp qword ptr (_RadixD2) +fld qword ptr (_Two) +fstp qword ptr (_A1) +mov dword ptr (_Done),0 +L221: +fld qword ptr (_Radix) +fstp qword ptr (_AInvrse) +L224: +fld qword ptr (_AInvrse) +fstp qword ptr (-924)[ebp] +fld qword ptr (-924)[ebp] +fstp qword ptr (_X) +fld qword ptr (-924)[ebp] +fdiv qword ptr (_A1) +fstp qword ptr (_AInvrse) +L225: +fld qword ptr (_AInvrse) +sub esp,8 +fstp qword ptr [esp] +call _floor +add esp,8 +fstp qword ptr (-924)[ebp] +fld qword ptr (_AInvrse) +fcomp qword ptr (-924)[ebp] +fstsw ax +sahf +je L224 +fld qword ptr (_One) +fcomp qword ptr (_X) +fstsw ax +sahf +je L230 +fld qword ptr (_Three) +fcomp qword ptr (_A1) +fstsw ax +sahf +jae L228 +L230: +mov dword ptr (-928)[ebp],1 +jmp L229 +L228: +mov dword ptr (-928)[ebp],0 +L229: +mov edi,dword ptr (-928)[ebp] +mov dword ptr (_Done),edi +cmp dword ptr (_Done),0 +jne L231 +fld qword ptr (_Nine) +fadd qword ptr (_One) +fstp qword ptr (_A1) +L231: +L222: +cmp dword ptr (_Done),0 +je L221 +fld qword ptr (_One) +fcomp qword ptr (_X) +fstsw ax +sahf +jne L233 +fld qword ptr (_Radix) +fstp qword ptr (_A1) +L233: +fld qword ptr (_One) +fdiv qword ptr (_A1) +fstp qword ptr (_AInvrse) +fld qword ptr (_A1) +fstp qword ptr (_X) +fld qword ptr (_AInvrse) +fstp qword ptr (_Y) +mov dword ptr (_Done),0 +L235: +fld qword ptr (_X) +fmul qword ptr (_Y) +fsub qword ptr (_Half) +fstp qword ptr (_Z) +lea edi,(L239) +push edi +fld qword ptr (_Half) +fcomp qword ptr (_Z) +fstsw ax +sahf +jne L240 +mov dword ptr (-928)[ebp],1 +jmp L241 +L240: +mov dword ptr (-928)[ebp],0 +L241: +mov edi,dword ptr (-928)[ebp] +push edi +push 0 +call _TstCond +add esp,12 +fld qword ptr (_Radix) +fcomp qword ptr (_X) +fstsw ax +sahf +jne L243 +mov dword ptr (-940)[ebp],1 +jmp L244 +L243: +mov dword ptr (-940)[ebp],0 +L244: +mov edi,dword ptr (-940)[ebp] +mov dword ptr (_Done),edi +fld qword ptr (_Radix) +fstp qword ptr (_X) +fld qword ptr (_One) +fdiv qword ptr (_X) +fstp qword ptr (_Y) +L236: +cmp dword ptr (_Done),0 +je L235 +fld qword ptr (_One) +fadd qword ptr (_U2) +fstp qword ptr (_Y2) +fld qword ptr (_One) +fsub qword ptr (_U2) +fstp qword ptr (_Y1) +fld qword ptr (_OneAndHalf) +fsub qword ptr (_U2) +fstp qword ptr (_X) +fld qword ptr (_OneAndHalf) +fadd qword ptr (_U2) +fstp qword ptr (_Y) +fld qword ptr (_X) +fstp qword ptr (-956)[ebp] +fld qword ptr (_Y2) +fstp qword ptr (-964)[ebp] +fld qword ptr (-956)[ebp] +fsub qword ptr (_U2) +fmul qword ptr (-964)[ebp] +fstp qword ptr (_Z) +fld qword ptr (_Y) +fstp qword ptr (-972)[ebp] +fld qword ptr (_Y1) +fstp qword ptr (-980)[ebp] +fld qword ptr (-972)[ebp] +fmul qword ptr (-980)[ebp] +fstp qword ptr (_T) +fld qword ptr (_Z) +fsub qword ptr (-956)[ebp] +fstp qword ptr (_Z) +fld qword ptr (_T) +fsub qword ptr (-956)[ebp] +fstp qword ptr (_T) +fld qword ptr (-956)[ebp] +fmul qword ptr (-964)[ebp] +fstp qword ptr (_X) +fld qword ptr (-972)[ebp] +fadd qword ptr (_U2) +fmul qword ptr (-980)[ebp] +fstp qword ptr (_Y) +fld qword ptr (_X) +fsub qword ptr (_OneAndHalf) +fstp qword ptr (_X) +fld qword ptr (_Y) +fsub qword ptr (_OneAndHalf) +fstp qword ptr (_Y) +fld qword ptr (_Zero) +fcomp qword ptr (_X) +fstsw ax +sahf +jne L245 +fld qword ptr (_Zero) +fcomp qword ptr (_Y) +fstsw ax +sahf +jne L245 +fld qword ptr (_Zero) +fcomp qword ptr (_Z) +fstsw ax +sahf +jne L245 +fld qword ptr (_Zero) +fcomp qword ptr (_T) +fstsw ax +sahf +jb L245 +fld qword ptr (_OneAndHalf) +fadd qword ptr (_U2) +fstp qword ptr (-1012)[ebp] +fld qword ptr (-1012)[ebp] +fmul qword ptr (_Y2) +fstp qword ptr (_X) +fld qword ptr (_OneAndHalf) +fsub qword ptr (_U2) +fstp qword ptr (-1028)[ebp] +fld qword ptr (-1028)[ebp] +fsub qword ptr (_U2) +fstp qword ptr (_Y) +fld qword ptr (-1012)[ebp] +fadd qword ptr (_U2) +fstp qword ptr (_Z) +fld qword ptr (_Y1) +fstp qword ptr (-1036)[ebp] +fld qword ptr (-1028)[ebp] +fmul qword ptr (-1036)[ebp] +fstp qword ptr (_T) +fld qword ptr (_Z) +fstp qword ptr (-1044)[ebp] +fld qword ptr (-1044)[ebp] +fadd qword ptr (_U2) +fstp qword ptr (-1052)[ebp] +fld qword ptr (_X) +fsub qword ptr (-1052)[ebp] +fstp qword ptr (_X) +fld qword ptr (_Y) +fstp qword ptr (-1060)[ebp] +fld qword ptr (-1060)[ebp] +fmul qword ptr (-1036)[ebp] +fstp qword ptr (_StickyBit) +fld qword ptr (-1044)[ebp] +fmul qword ptr (_Y2) +fstp qword ptr (_S) +fld qword ptr (_T) +fsub qword ptr (-1060)[ebp] +fstp qword ptr (_T) +fld qword ptr (_U2) +fsub qword ptr (-1060)[ebp] +fadd qword ptr (_StickyBit) +fstp qword ptr (_Y) +fld qword ptr (_S) +fld qword ptr (-1052)[ebp] +fadd qword ptr (_U2) +fsubp st(1),st +fstp qword ptr (_Z) +fld qword ptr (_Y2) +fadd qword ptr (_U2) +fmul qword ptr (-1036)[ebp] +fstp qword ptr (_StickyBit) +fld qword ptr (_Y2) +fmul qword ptr (-1036)[ebp] +fstp qword ptr (_Y1) +fld qword ptr (_StickyBit) +fsub qword ptr (_Y2) +fstp qword ptr (_StickyBit) +fld qword ptr (_Y1) +fsub qword ptr (_Half) +fstp qword ptr (_Y1) +fld qword ptr (_Zero) +fcomp qword ptr (_X) +fstsw ax +sahf +jne L247 +fld qword ptr (_Zero) +fcomp qword ptr (_Y) +fstsw ax +sahf +jne L247 +fld qword ptr (_Zero) +fcomp qword ptr (_Z) +fstsw ax +sahf +jne L247 +fld qword ptr (_Zero) +fcomp qword ptr (_T) +fstsw ax +sahf +jne L247 +fld qword ptr (_Zero) +fcomp qword ptr (_StickyBit) +fstsw ax +sahf +jne L247 +fld qword ptr (_Half) +fcomp qword ptr (_Y1) +fstsw ax +sahf +jne L247 +mov dword ptr (_RMult),1 +lea edi,(L249) +push edi +call _printf +add esp,4 +jmp L248 +L247: +fld qword ptr (_X) +fadd qword ptr (_U2) +fld qword ptr (_Zero) +fcompp +fstsw ax +sahf +jne L250 +fld qword ptr (_Zero) +fcomp qword ptr (_Y) +fstsw ax +sahf +jbe L250 +fld qword ptr (_Z) +fadd qword ptr (_U2) +fld qword ptr (_Zero) +fcompp +fstsw ax +sahf +jne L250 +fld qword ptr (_Zero) +fcomp qword ptr (_T) +fstsw ax +sahf +jbe L250 +fld qword ptr (_StickyBit) +fadd qword ptr (_U2) +fld qword ptr (_Zero) +fcompp +fstsw ax +sahf +jne L250 +fld qword ptr (_Half) +fcomp qword ptr (_Y1) +fstsw ax +sahf +jbe L250 +mov dword ptr (_RMult),2 +lea edi,(L252) +push edi +call _printf +add esp,4 +jmp L251 +L250: +lea edi,(L253) +push edi +call _printf +add esp,4 +L251: +L248: +cmp dword ptr (_RMult),1 +jne L246 +cmp dword ptr (_GMult),0 +jne L246 +lea edi,(L256) +push edi +call _notify +add esp,4 +jmp L246 +L245: +lea edi,(L253) +push edi +call _printf +add esp,4 +L246: +mov dword ptr (_Milestone),45 +fld qword ptr (_One) +fadd qword ptr (_U2) +fstp qword ptr (_Y2) +fld qword ptr (_One) +fsub qword ptr (_U2) +fstp qword ptr (_Y1) +fld qword ptr (_OneAndHalf) +fadd qword ptr (_U2) +fstp qword ptr (-1020)[ebp] +fld qword ptr (-1020)[ebp] +fadd qword ptr (_U2) +fstp qword ptr (_Z) +fld qword ptr (_Z) +fstp qword ptr (-1028)[ebp] +fld qword ptr (_Y2) +fstp qword ptr (-1036)[ebp] +fld qword ptr (-1028)[ebp] +fdiv qword ptr (-1036)[ebp] +fstp qword ptr (_X) +fld qword ptr (_OneAndHalf) +fsub qword ptr (_U2) +fsub qword ptr (_U2) +fstp qword ptr (_T) +fld qword ptr (_T) +fstp qword ptr (-1044)[ebp] +fld qword ptr (_Y1) +fstp qword ptr (-1052)[ebp] +fld qword ptr (-1044)[ebp] +fsub qword ptr (_U2) +fdiv qword ptr (-1052)[ebp] +fstp qword ptr (_Y) +fld qword ptr (-1028)[ebp] +fadd qword ptr (_U2) +fdiv qword ptr (-1036)[ebp] +fstp qword ptr (_Z) +fld qword ptr (_X) +fsub qword ptr (_OneAndHalf) +fstp qword ptr (_X) +fld qword ptr (_Y) +fsub qword ptr (-1044)[ebp] +fstp qword ptr (_Y) +fld qword ptr (-1044)[ebp] +fdiv qword ptr (-1052)[ebp] +fstp qword ptr (_T) +fld qword ptr (_Z) +fsub qword ptr (-1020)[ebp] +fstp qword ptr (_Z) +fld qword ptr (_U2) +fsub qword ptr (_OneAndHalf) +fadd qword ptr (_T) +fstp qword ptr (_T) +fld qword ptr (_Zero) +fcomp qword ptr (_X) +fstsw ax +sahf +jb L257 +fld qword ptr (_Zero) +fcomp qword ptr (_Y) +fstsw ax +sahf +jb L257 +fld qword ptr (_Zero) +fcomp qword ptr (_Z) +fstsw ax +sahf +jb L257 +fld qword ptr (_Zero) +fcomp qword ptr (_T) +fstsw ax +sahf +jb L257 +fld qword ptr (_Y2) +fstp qword ptr (-1076)[ebp] +fld qword ptr (_OneAndHalf) +fdiv qword ptr (-1076)[ebp] +fstp qword ptr (_X) +fld qword ptr (_OneAndHalf) +fsub qword ptr (_U2) +fstp qword ptr (_Y) +fld qword ptr (_OneAndHalf) +fadd qword ptr (_U2) +fstp qword ptr (_Z) +fld qword ptr (_Y) +fstp qword ptr (-1092)[ebp] +fld qword ptr (_X) +fsub qword ptr (-1092)[ebp] +fstp qword ptr (_X) +fld qword ptr (_Y1) +fstp qword ptr (-1100)[ebp] +fld qword ptr (_OneAndHalf) +fdiv qword ptr (-1100)[ebp] +fstp qword ptr (_T) +fld qword ptr (-1092)[ebp] +fdiv qword ptr (-1100)[ebp] +fstp qword ptr (_Y) +fld qword ptr (_Z) +fstp qword ptr (-1108)[ebp] +fld qword ptr (_T) +fld qword ptr (-1108)[ebp] +fadd qword ptr (_U2) +fsubp st(1),st +fstp qword ptr (_T) +fld qword ptr (_Y) +fsub qword ptr (-1108)[ebp] +fstp qword ptr (_Y) +fld qword ptr (-1108)[ebp] +fdiv qword ptr (-1076)[ebp] +fstp qword ptr (_Z) +fld qword ptr (-1076)[ebp] +fadd qword ptr (_U2) +fdiv qword ptr (-1076)[ebp] +fstp qword ptr (_Y1) +fld qword ptr (_Z) +fsub qword ptr (_OneAndHalf) +fstp qword ptr (_Z) +fld qword ptr (_Y1) +fsub qword ptr (-1076)[ebp] +fstp qword ptr (_Y2) +fld qword ptr (_F9) +fsub qword ptr (_U1) +fdiv qword ptr (_F9) +fstp qword ptr (_Y1) +fld qword ptr (_Zero) +fcomp qword ptr (_X) +fstsw ax +sahf +jne L259 +fld qword ptr (_Zero) +fcomp qword ptr (_Y) +fstsw ax +sahf +jne L259 +fld qword ptr (_Zero) +fcomp qword ptr (_Z) +fstsw ax +sahf +jne L259 +fld qword ptr (_Zero) +fcomp qword ptr (_T) +fstsw ax +sahf +jne L259 +fld qword ptr (_Zero) +fcomp qword ptr (_Y2) +fstsw ax +sahf +jne L259 +fld qword ptr (_Zero) +fcomp qword ptr (_Y2) +fstsw ax +sahf +jne L259 +fld qword ptr (_Y1) +fsub qword ptr (_Half) +fld qword ptr (_F9) +fsub qword ptr (_Half) +fcompp +fstsw ax +sahf +jne L259 +mov dword ptr (_RDiv),1 +lea edi,(L261) +push edi +call _printf +add esp,4 +cmp dword ptr (_GDiv),0 +jne L260 +lea edi,(L264) +push edi +call _notify +add esp,4 +jmp L260 +L259: +fld qword ptr (_Zero) +fcomp qword ptr (_X) +fstsw ax +sahf +jbe L265 +fld qword ptr (_Zero) +fcomp qword ptr (_Y) +fstsw ax +sahf +jbe L265 +fld qword ptr (_Zero) +fcomp qword ptr (_Z) +fstsw ax +sahf +jbe L265 +fld qword ptr (_Zero) +fcomp qword ptr (_T) +fstsw ax +sahf +jbe L265 +fld qword ptr (_Zero) +fcomp qword ptr (_Y2) +fstsw ax +sahf +jbe L265 +fld qword ptr (_Y1) +fsub qword ptr (_Half) +fld qword ptr (_F9) +fsub qword ptr (_Half) +fcompp +fstsw ax +sahf +jbe L265 +mov dword ptr (_RDiv),2 +lea edi,(L267) +push edi +call _printf +add esp,4 +L265: +L260: +L257: +cmp dword ptr (_RDiv),0 +jne L268 +lea edi,(L270) +push edi +call _printf +add esp,4 +L268: +fld qword ptr (_One) +fdiv qword ptr (_Radix) +fstp qword ptr (_BInvrse) +lea edi,(L272) +push edi +fld qword ptr (_BInvrse) +fmul qword ptr (_Radix) +fsub qword ptr (_Half) +fld qword ptr (_Half) +fcompp +fstsw ax +sahf +jne L273 +mov dword ptr (-1064)[ebp],1 +jmp L274 +L273: +mov dword ptr (-1064)[ebp],0 +L274: +mov edi,dword ptr (-1064)[ebp] +push edi +push 0 +call _TstCond +add esp,12 +mov dword ptr (_Milestone),50 +lea edi,(L276) +push edi +fld qword ptr (_F9) +fadd qword ptr (_U1) +fsub qword ptr (_Half) +fld qword ptr (_Half) +fcompp +fstsw ax +sahf +jne L277 +fld qword ptr (_BMinusU2) +fadd qword ptr (_U2) +fsub qword ptr (_One) +fld qword ptr (_Radix) +fsub qword ptr (_One) +fcompp +fstsw ax +sahf +jne L277 +mov dword ptr (-1084)[ebp],1 +jmp L278 +L277: +mov dword ptr (-1084)[ebp],0 +L278: +mov edi,dword ptr (-1084)[ebp] +push edi +push 0 +call _TstCond +add esp,12 +fld qword ptr (_One) +fld qword ptr (_U1) +fmul qword ptr (_U1) +fsubp st(1),st +fstp qword ptr (_X) +fld qword ptr (_One) +fld qword ptr (_U2) +fld qword ptr (_One) +fsub qword ptr (_U2) +fmulp st(1),st +faddp st(1),st +fstp qword ptr (_Y) +fld qword ptr (_F9) +fsub qword ptr (_Half) +fstp qword ptr (_Z) +fld qword ptr (_X) +fsub qword ptr (_Half) +fsub qword ptr (_Z) +fstp qword ptr (_X) +fld qword ptr (_Y) +fsub qword ptr (_One) +fstp qword ptr (_Y) +fld qword ptr (_Zero) +fcomp qword ptr (_X) +fstsw ax +sahf +jne L279 +fld qword ptr (_Zero) +fcomp qword ptr (_Y) +fstsw ax +sahf +jne L279 +mov dword ptr (_RAddSub),2 +lea edi,(L281) +push edi +call _printf +add esp,4 +L279: +cmp dword ptr (_GAddSub),1 +jne L282 +fld qword ptr (_Half) +fadd qword ptr (_U2) +fmul qword ptr (_U2) +fstp qword ptr (_X) +fld qword ptr (_Half) +fsub qword ptr (_U2) +fmul qword ptr (_U2) +fstp qword ptr (_Y) +fld qword ptr (_One) +fadd qword ptr (_X) +fstp qword ptr (_X) +fld qword ptr (_One) +fadd qword ptr (_Y) +fstp qword ptr (_Y) +fld qword ptr (_One) +fadd qword ptr (_U2) +fsub qword ptr (_X) +fstp qword ptr (_X) +fld qword ptr (_One) +fsub qword ptr (_Y) +fstp qword ptr (_Y) +fld qword ptr (_Zero) +fcomp qword ptr (_X) +fstsw ax +sahf +jne L284 +fld qword ptr (_Zero) +fcomp qword ptr (_Y) +fstsw ax +sahf +jne L284 +fld qword ptr (_Half) +fadd qword ptr (_U2) +fmul qword ptr (_U1) +fstp qword ptr (_X) +fld qword ptr (_Half) +fsub qword ptr (_U2) +fmul qword ptr (_U1) +fstp qword ptr (_Y) +fld qword ptr (_One) +fsub qword ptr (_X) +fstp qword ptr (_X) +fld qword ptr (_One) +fsub qword ptr (_Y) +fstp qword ptr (_Y) +fld qword ptr (_F9) +fsub qword ptr (_X) +fstp qword ptr (_X) +fld qword ptr (_One) +fsub qword ptr (_Y) +fstp qword ptr (_Y) +fld qword ptr (_Zero) +fcomp qword ptr (_X) +fstsw ax +sahf +jne L286 +fld qword ptr (_Zero) +fcomp qword ptr (_Y) +fstsw ax +sahf +jne L286 +mov dword ptr (_RAddSub),1 +lea edi,(L288) +push edi +call _printf +add esp,4 +cmp dword ptr (_GAddSub),0 +jne L283 +lea edi,(L291) +push edi +call _notify +add esp,4 +jmp L283 +L286: +lea edi,(L292) +push edi +call _printf +add esp,4 +jmp L283 +L284: +lea edi,(L292) +push edi +call _printf +add esp,4 +jmp L283 +L282: +lea edi,(L292) +push edi +call _printf +add esp,4 +L283: +fld qword ptr (_One) +fstp qword ptr (_S) +fld qword ptr (_One) +fld qword ptr (_Half) +fld qword ptr (_One) +fadd qword ptr (_Half) +fmulp st(1),st +faddp st(1),st +fstp qword ptr (_X) +fld qword ptr (_One) +fadd qword ptr (_U2) +fmul qword ptr (_Half) +fstp qword ptr (_Y) +fld qword ptr (_X) +fstp qword ptr (-1164)[ebp] +fld qword ptr (_Y) +fstp qword ptr (-1172)[ebp] +fld qword ptr (-1164)[ebp] +fsub qword ptr (-1172)[ebp] +fstp qword ptr (_Z) +fld qword ptr (-1172)[ebp] +fsub qword ptr (-1164)[ebp] +fstp qword ptr (_T) +fld qword ptr (_Z) +fadd qword ptr (_T) +fstp qword ptr (_StickyBit) +fld qword ptr (_Zero) +fcomp qword ptr (_StickyBit) +fstsw ax +sahf +je L293 +fld qword ptr (_Zero) +fstp qword ptr (_S) +lea edi,(L295) +push edi +push 3 +call _BadCond +add esp,8 +L293: +fld qword ptr (_Zero) +fstp qword ptr (_StickyBit) +cmp dword ptr (_GMult),1 +jne L296 +cmp dword ptr (_GDiv),1 +jne L296 +cmp dword ptr (_GAddSub),1 +jne L296 +cmp dword ptr (_RMult),1 +jne L296 +cmp dword ptr (_RDiv),1 +jne L296 +cmp dword ptr (_RAddSub),1 +jne L296 +fld qword ptr (_RadixD2) +sub esp,8 +fstp qword ptr [esp] +call _floor +add esp,8 +fstp qword ptr (-1180)[ebp] +fld qword ptr (_RadixD2) +fcomp qword ptr (-1180)[ebp] +fstsw ax +sahf +jne L296 +lea edi,(L298) +push edi +call _printf +add esp,4 +fld qword ptr (_Half) +fadd qword ptr (_U1) +fmul qword ptr (_U2) +fstp qword ptr (_X) +fld qword ptr (_Half) +fmul qword ptr (_U2) +fstp qword ptr (_Y) +fld qword ptr (_One) +fadd qword ptr (_Y) +fstp qword ptr (_Z) +fld qword ptr (_One) +fadd qword ptr (_X) +fstp qword ptr (_T) +fld qword ptr (_Z) +fsub qword ptr (_One) +fld qword ptr (_Zero) +fcompp +fstsw ax +sahf +jb L299 +fld qword ptr (_T) +fsub qword ptr (_One) +fld qword ptr (_U2) +fcompp +fstsw ax +sahf +ja L299 +fld qword ptr (_T) +fadd qword ptr (_Y) +fstp qword ptr (_Z) +fld qword ptr (_Z) +fsub qword ptr (_X) +fstp qword ptr (_Y) +fld qword ptr (_Z) +fsub qword ptr (_T) +fld qword ptr (_U2) +fcompp +fstsw ax +sahf +ja L301 +fld qword ptr (_Y) +fsub qword ptr (_T) +fld qword ptr (_Zero) +fcompp +fstsw ax +sahf +jne L301 +fld qword ptr (_Half) +fadd qword ptr (_U1) +fmul qword ptr (_U1) +fstp qword ptr (_X) +fld qword ptr (_Half) +fmul qword ptr (_U1) +fstp qword ptr (_Y) +fld qword ptr (_One) +fsub qword ptr (_Y) +fstp qword ptr (_Z) +fld qword ptr (_One) +fsub qword ptr (_X) +fstp qword ptr (_T) +fld qword ptr (_Z) +fsub qword ptr (_One) +fld qword ptr (_Zero) +fcompp +fstsw ax +sahf +jne L303 +fld qword ptr (_T) +fsub qword ptr (_F9) +fld qword ptr (_Zero) +fcompp +fstsw ax +sahf +jne L303 +fld qword ptr (_Half) +fsub qword ptr (_U1) +fmul qword ptr (_U1) +fstp qword ptr (_Z) +fld qword ptr (_F9) +fsub qword ptr (_Z) +fstp qword ptr (_T) +fld qword ptr (_F9) +fsub qword ptr (_Y) +fstp qword ptr (_Q) +fld qword ptr (_T) +fsub qword ptr (_F9) +fld qword ptr (_Zero) +fcompp +fstsw ax +sahf +jne L305 +fld qword ptr (_F9) +fsub qword ptr (_U1) +fsub qword ptr (_Q) +fld qword ptr (_Zero) +fcompp +fstsw ax +sahf +jne L305 +fld qword ptr (_One) +fadd qword ptr (_U2) +fmul qword ptr (_OneAndHalf) +fstp qword ptr (_Z) +fld qword ptr (_OneAndHalf) +fadd qword ptr (_U2) +fsub qword ptr (_Z) +fadd qword ptr (_U2) +fstp qword ptr (_T) +fld qword ptr (_One) +fld qword ptr (_Half) +fdiv qword ptr (_Radix) +faddp st(1),st +fstp qword ptr (_X) +fld qword ptr (_One) +fld qword ptr (_Radix) +fmul qword ptr (_U2) +faddp st(1),st +fstp qword ptr (_Y) +fld qword ptr (_X) +fmul qword ptr (_Y) +fstp qword ptr (_Z) +fld qword ptr (_Zero) +fcomp qword ptr (_T) +fstsw ax +sahf +jne L307 +fld qword ptr (_X) +fld qword ptr (_Radix) +fmul qword ptr (_U2) +faddp st(1),st +fsub qword ptr (_Z) +fld qword ptr (_Zero) +fcompp +fstsw ax +sahf +jne L307 +fld qword ptr (_Two) +fcomp qword ptr (_Radix) +fstsw ax +sahf +je L309 +fld qword ptr (_Two) +fadd qword ptr (_U2) +fstp qword ptr (_X) +fld qword ptr (_X) +fdiv qword ptr (_Two) +fstp qword ptr (_Y) +fld qword ptr (_Y) +fsub qword ptr (_One) +fld qword ptr (_Zero) +fcompp +fstsw ax +sahf +jne L310 +fld qword ptr (_S) +fstp qword ptr (_StickyBit) +jmp L310 +L309: +fld qword ptr (_S) +fstp qword ptr (_StickyBit) +L310: +L307: +L305: +L303: +L301: +L299: +L296: +fld qword ptr (_One) +fcomp qword ptr (_StickyBit) +fstsw ax +sahf +jne L313 +lea edi,(L315) +push edi +call _printf +add esp,4 +jmp L314 +L313: +lea edi,(L316) +push edi +call _printf +add esp,4 +L314: +lea edi,(L318) +push edi +cmp dword ptr (_GMult),0 +je L319 +cmp dword ptr (_GDiv),0 +je L319 +cmp dword ptr (_GAddSub),0 +je L319 +cmp dword ptr (_RMult),0 +je L319 +cmp dword ptr (_RDiv),0 +je L319 +cmp dword ptr (_RAddSub),0 +je L319 +mov dword ptr (-1184)[ebp],1 +jmp L320 +L319: +mov dword ptr (-1184)[ebp],0 +L320: +mov edi,dword ptr (-1184)[ebp] +push edi +push 3 +call _TstCond +add esp,12 +mov dword ptr (_Milestone),60 +lea edi,(L44) +push edi +call _printf +add esp,4 +lea edi,(L321) +push edi +call _printf +add esp,4 +mov edi,dword ptr (_NoTrials) +push edi +lea edi,(L322) +push edi +call _printf +add esp,8 +fld qword ptr (L323) +sub esp,8 +fstp qword ptr [esp] +call _sqrt +add esp,8 +fstp qword ptr (-1192)[ebp] +fld qword ptr (-1192)[ebp] +fstp qword ptr (_Random9) +fld qword ptr (_Third) +fstp qword ptr (_Random1) +mov dword ptr (_I),1 +L324: +call _Random +add esp,0 +fstp qword ptr (-1200)[ebp] +fld qword ptr (-1200)[ebp] +fstp qword ptr (_X) +call _Random +add esp,0 +fstp qword ptr (-1208)[ebp] +fld qword ptr (-1208)[ebp] +fstp qword ptr (_Y) +fld qword ptr (_Y) +fmul qword ptr (_X) +fstp qword ptr (_Z9) +fld qword ptr (_X) +fmul qword ptr (_Y) +fstp qword ptr (_Z) +fld qword ptr (_Z) +fsub qword ptr (_Z9) +fstp qword ptr (_Z9) +inc dword ptr (_I) +L325: +mov edi,dword ptr (_NoTrials) +cmp dword ptr (_I),edi +jg L327 +fld qword ptr (_Zero) +fcomp qword ptr (_Z9) +fstsw ax +sahf +je L324 +L327: +mov edi,dword ptr (_NoTrials) +cmp dword ptr (_I),edi +jne L328 +fld qword ptr (_One) +fld qword ptr (_Half) +fdiv qword ptr (_Three) +faddp st(1),st +fstp qword ptr (-1208)[ebp] +fld qword ptr (-1208)[ebp] +fstp qword ptr (_Random1) +fld qword ptr (_U2) +fadd qword ptr (_U1) +fadd qword ptr (_One) +fstp qword ptr (-1216)[ebp] +fld qword ptr (-1216)[ebp] +fstp qword ptr (_Random2) +fld qword ptr (_Random1) +fstp qword ptr (-1224)[ebp] +fld qword ptr (_Random2) +fstp qword ptr (-1232)[ebp] +fld qword ptr (-1224)[ebp] +fmul qword ptr (-1232)[ebp] +fstp qword ptr (_Z) +fld qword ptr (-1232)[ebp] +fmul qword ptr (-1224)[ebp] +fstp qword ptr (_Y) +fld qword ptr (-1208)[ebp] +fmul qword ptr (-1216)[ebp] +fstp qword ptr (-1240)[ebp] +fld qword ptr (-1240)[ebp] +fsub qword ptr (-1240)[ebp] +fstp qword ptr (_Z9) +L328: +mov edi,dword ptr (_NoTrials) +cmp dword ptr (_I),edi +je L330 +fld qword ptr (_Zero) +fcomp qword ptr (_Z9) +fstsw ax +sahf +je L330 +lea edi,(L332) +push edi +push 2 +call _BadCond +add esp,8 +jmp L331 +L330: +mov edi,dword ptr (_NoTrials) +push edi +lea edi,(L333) +push edi +call _printf +add esp,8 +L331: +mov dword ptr (_Milestone),70 +lea edi,(L334) +push edi +call _printf +add esp,4 +fld qword ptr (_Zero) +sub esp,8 +fstp qword ptr [esp] +call _sqrt +add esp,8 +fstp qword ptr (-1212)[ebp] +fld qword ptr (-1212)[ebp] +fcomp qword ptr (_Zero) +fstsw ax +sahf +jne L337 +fld qword ptr (_Zero) +fchs +fstp qword ptr (-1220)[ebp] +fld qword ptr (-1220)[ebp] +sub esp,8 +fstp qword ptr [esp] +call _sqrt +add esp,8 +fstp qword ptr (-1228)[ebp] +fld qword ptr (-1228)[ebp] +fcomp qword ptr (-1220)[ebp] +fstsw ax +sahf +jne L337 +fld qword ptr (_One) +sub esp,8 +fstp qword ptr [esp] +call _sqrt +add esp,8 +fstp qword ptr (-1244)[ebp] +fld qword ptr (-1244)[ebp] +fcomp qword ptr (_One) +fstsw ax +sahf +jne L337 +mov dword ptr (-1196)[ebp],1 +jmp L338 +L337: +mov dword ptr (-1196)[ebp],0 +L338: +lea edi,(L336) +push edi +mov edi,dword ptr (-1196)[ebp] +push edi +push 0 +call _TstCond +add esp,12 +fld qword ptr (_Zero) +fstp qword ptr (_MinSqEr) +fld qword ptr (_Zero) +fstp qword ptr (_MaxSqEr) +fld qword ptr (_Zero) +fstp qword ptr (_J) +fld qword ptr (_Radix) +fstp qword ptr (_X) +fld qword ptr (_U2) +fstp qword ptr (_OneUlp) +push 1 +call _SqXMinX +add esp,4 +fld qword ptr (_BInvrse) +fstp qword ptr (_X) +fld qword ptr (_BInvrse) +fmul qword ptr (_U1) +fstp qword ptr (_OneUlp) +push 1 +call _SqXMinX +add esp,4 +fld qword ptr (_U1) +fstp qword ptr (_X) +fld qword ptr (_U1) +fmul qword ptr (_U1) +fstp qword ptr (_OneUlp) +push 1 +call _SqXMinX +add esp,4 +fld qword ptr (_Zero) +fcomp qword ptr (_J) +fstsw ax +sahf +je L339 +call _Pause +add esp,0 +L339: +mov edi,dword ptr (_NoTrials) +push edi +lea edi,(L341) +push edi +call _printf +add esp,8 +fld qword ptr (_Zero) +fstp qword ptr (_J) +fld qword ptr (_Two) +fstp qword ptr (_X) +fld qword ptr (_Radix) +fstp qword ptr (_Y) +fld qword ptr (_One) +fcomp qword ptr (_Radix) +fstsw ax +sahf +je L342 +L344: +fld qword ptr (_Y) +fstp qword ptr (-1284)[ebp] +fld qword ptr (-1284)[ebp] +fstp qword ptr (_X) +fld qword ptr (_Radix) +fmul qword ptr (-1284)[ebp] +fstp qword ptr (_Y) +L345: +fld qword ptr (_Y) +fsub qword ptr (_X) +fild dword ptr (_NoTrials) +fcompp +fstsw ax +sahf +ja L344 +L342: +fld qword ptr (_X) +fmul qword ptr (_U2) +fstp qword ptr (_OneUlp) +mov dword ptr (_I),1 +jmp L348 +L347: +fld qword ptr (_X) +fadd qword ptr (_One) +fstp qword ptr (_X) +push 2 +call _SqXMinX +add esp,4 +fld qword ptr (_Zero) +fcomp qword ptr (_J) +fstsw ax +sahf +jae L350 +jmp L349 +L350: +inc dword ptr (_I) +L348: +mov edi,dword ptr (_NoTrials) +cmp dword ptr (_I),edi +jle L347 +L349: +lea edi,(L352) +push edi +call _printf +add esp,4 +mov dword ptr (_I),-1 +fld qword ptr (_BMinusU2) +fstp qword ptr (_X) +fld qword ptr (_Radix) +fstp qword ptr (_Y) +fld qword ptr (_Radix) +fld qword ptr (_Radix) +fmul qword ptr (_U2) +faddp st(1),st +fstp qword ptr (_Z) +mov dword ptr (_NotMonot),0 +mov dword ptr (_Monot),0 +jmp L354 +L353: +inc dword ptr (_I) +fld qword ptr (_X) +sub esp,8 +fstp qword ptr [esp] +call _sqrt +add esp,8 +fstp qword ptr (-1292)[ebp] +fld qword ptr (-1292)[ebp] +fstp qword ptr (_X) +fld qword ptr (_Y) +sub esp,8 +fstp qword ptr [esp] +call _sqrt +add esp,8 +fstp qword ptr (-1300)[ebp] +fld qword ptr (-1300)[ebp] +fstp qword ptr (_Q) +fld qword ptr (_Z) +sub esp,8 +fstp qword ptr [esp] +call _sqrt +add esp,8 +fstp qword ptr (-1308)[ebp] +fld qword ptr (-1308)[ebp] +fstp qword ptr (_Z) +fld qword ptr (_Q) +fcomp qword ptr (_X) +fstsw ax +sahf +jb L358 +fld qword ptr (_Z) +fcomp qword ptr (_Q) +fstsw ax +sahf +jae L356 +L358: +mov dword ptr (_NotMonot),1 +jmp L357 +L356: +fld qword ptr (_Q) +fadd qword ptr (_Half) +sub esp,8 +fstp qword ptr [esp] +call _floor +add esp,8 +fstp qword ptr (-1324)[ebp] +fld qword ptr (-1324)[ebp] +fstp qword ptr (_Q) +cmp dword ptr (_I),0 +jg L361 +fld qword ptr (_Q) +fmul qword ptr (_Q) +fcomp qword ptr (_Radix) +fstsw ax +sahf +jne L359 +L361: +mov dword ptr (_Monot),1 +jmp L360 +L359: +cmp dword ptr (_I),0 +jle L362 +cmp dword ptr (_I),1 +jle L364 +mov dword ptr (_Monot),1 +jmp L363 +L364: +fld qword ptr (_Y) +fmul qword ptr (_BInvrse) +fstp qword ptr (_Y) +fld qword ptr (_Y) +fstp qword ptr (-1340)[ebp] +fld qword ptr (-1340)[ebp] +fsub qword ptr (_U1) +fstp qword ptr (_X) +fld qword ptr (-1340)[ebp] +fadd qword ptr (_U1) +fstp qword ptr (_Z) +jmp L363 +L362: +fld qword ptr (_Q) +fstp qword ptr (_Y) +fld qword ptr (_Y) +fstp qword ptr (-1340)[ebp] +fld qword ptr (-1340)[ebp] +fsub qword ptr (_U2) +fstp qword ptr (_X) +fld qword ptr (-1340)[ebp] +fadd qword ptr (_U2) +fstp qword ptr (_Z) +L363: +L360: +L357: +L354: +cmp dword ptr (_NotMonot),0 +jne L366 +cmp dword ptr (_Monot),0 +je L353 +L366: +cmp dword ptr (_Monot),0 +je L367 +lea edi,(L369) +push edi +call _printf +add esp,4 +jmp L368 +L367: +lea edi,(L157) +push edi +push 2 +call _BadCond +add esp,8 +fld qword ptr (_Y) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L370) +push edi +call _printf +add esp,12 +L368: +mov dword ptr (_Milestone),80 +fld qword ptr (_MinSqEr) +fadd qword ptr (_Half) +fstp qword ptr (_MinSqEr) +fld qword ptr (_MaxSqEr) +fsub qword ptr (_Half) +fstp qword ptr (_MaxSqEr) +fld qword ptr (_One) +fadd qword ptr (_U2) +sub esp,8 +fstp qword ptr [esp] +call _sqrt +add esp,8 +fstp qword ptr (-1300)[ebp] +fld qword ptr (-1300)[ebp] +fsub qword ptr (_One) +fdiv qword ptr (_U2) +fstp qword ptr (_Y) +fld qword ptr (_Y) +fsub qword ptr (_One) +fld qword ptr (_U2) +fdiv qword ptr (_Eight) +faddp st(1),st +fstp qword ptr (_SqEr) +fld qword ptr (_MaxSqEr) +fcomp qword ptr (_SqEr) +fstsw ax +sahf +jae L371 +fld qword ptr (_SqEr) +fstp qword ptr (_MaxSqEr) +L371: +fld qword ptr (_Y) +fld qword ptr (_U2) +fdiv qword ptr (_Eight) +faddp st(1),st +fstp qword ptr (_SqEr) +fld qword ptr (_MinSqEr) +fcomp qword ptr (_SqEr) +fstsw ax +sahf +jbe L373 +fld qword ptr (_SqEr) +fstp qword ptr (_MinSqEr) +L373: +fld qword ptr (_F9) +sub esp,8 +fstp qword ptr [esp] +call _sqrt +add esp,8 +fstp qword ptr (-1324)[ebp] +fld qword ptr (-1324)[ebp] +fsub qword ptr (_U2) +fld qword ptr (_One) +fsub qword ptr (_U2) +fsubp st(1),st +fdiv qword ptr (_U1) +fstp qword ptr (_Y) +fld qword ptr (_Y) +fld qword ptr (_U1) +fdiv qword ptr (_Eight) +faddp st(1),st +fstp qword ptr (_SqEr) +fld qword ptr (_MaxSqEr) +fcomp qword ptr (_SqEr) +fstsw ax +sahf +jae L375 +fld qword ptr (_SqEr) +fstp qword ptr (_MaxSqEr) +L375: +fld qword ptr (_Y) +fadd qword ptr (_One) +fld qword ptr (_U1) +fdiv qword ptr (_Eight) +faddp st(1),st +fstp qword ptr (_SqEr) +fld qword ptr (_MinSqEr) +fcomp qword ptr (_SqEr) +fstsw ax +sahf +jbe L377 +fld qword ptr (_SqEr) +fstp qword ptr (_MinSqEr) +L377: +fld qword ptr (_U2) +fstp qword ptr (_OneUlp) +fld qword ptr (_OneUlp) +fstp qword ptr (_X) +mov dword ptr (_Indx),1 +L379: +fld qword ptr (_X) +fadd qword ptr (_U1) +fadd qword ptr (_X) +fadd qword ptr (_F9) +sub esp,8 +fstp qword ptr [esp] +call _sqrt +add esp,8 +fstp qword ptr (-1356)[ebp] +fld qword ptr (-1356)[ebp] +fstp qword ptr (_Y) +fld qword ptr (_Y) +fsub qword ptr (_U2) +fld qword ptr (_One) +fsub qword ptr (_U2) +fadd qword ptr (_X) +fsubp st(1),st +fdiv qword ptr (_OneUlp) +fstp qword ptr (_Y) +fld qword ptr (_U1) +fsub qword ptr (_X) +fadd qword ptr (_F9) +fmul qword ptr (_Half) +fmul qword ptr (_X) +fmul qword ptr (_X) +fdiv qword ptr (_OneUlp) +fstp qword ptr (_Z) +fld qword ptr (_Y) +fadd qword ptr (_Half) +fadd qword ptr (_Z) +fstp qword ptr (_SqEr) +fld qword ptr (_MinSqEr) +fcomp qword ptr (_SqEr) +fstsw ax +sahf +jbe L383 +fld qword ptr (_SqEr) +fstp qword ptr (_MinSqEr) +L383: +fld qword ptr (_Y) +fsub qword ptr (_Half) +fadd qword ptr (_Z) +fstp qword ptr (_SqEr) +fld qword ptr (_MaxSqEr) +fcomp qword ptr (_SqEr) +fstsw ax +sahf +jae L385 +fld qword ptr (_SqEr) +fstp qword ptr (_MaxSqEr) +L385: +mov edi,dword ptr (_Indx) +cmp edi,1 +je L389 +cmp edi,3 +jne L387 +L389: +fld qword ptr (_X) +sub esp,8 +fstp qword ptr [esp] +call _Sign +add esp,8 +fstp qword ptr (-1396)[ebp] +fld qword ptr (_OneUlp) +sub esp,8 +fstp qword ptr [esp] +call _sqrt +add esp,8 +fstp qword ptr (-1404)[ebp] +fld qword ptr (_Eight) +fld qword ptr (_Nine) +fmul qword ptr (-1404)[ebp] +fdivp st(1),st +sub esp,8 +fstp qword ptr [esp] +call _floor +add esp,8 +fstp qword ptr (-1412)[ebp] +fld qword ptr (_OneUlp) +fmul qword ptr (-1396)[ebp] +fmul qword ptr (-1412)[ebp] +fstp qword ptr (_X) +jmp L388 +L387: +fld qword ptr (_U1) +fstp qword ptr (_OneUlp) +fld qword ptr (_OneUlp) +fchs +fstp qword ptr (_X) +L388: +L380: +inc dword ptr (_Indx) +cmp dword ptr (_Indx),3 +jle L379 +mov dword ptr (_Milestone),85 +mov dword ptr (_SqRWrng),0 +mov dword ptr (_Anomaly),0 +mov dword ptr (_RSqrt),0 +fld qword ptr (_One) +fcomp qword ptr (_Radix) +fstsw ax +sahf +je L390 +lea edi,(L392) +push edi +call _printf +add esp,4 +fld qword ptr (_Precision) +sub esp,8 +fstp qword ptr [esp] +call _floor +add esp,8 +fstp qword ptr (-1356)[ebp] +fld qword ptr (_One) +fadd qword ptr (_Precision) +fsub qword ptr (-1356)[ebp] +sub esp,8 +fstp qword ptr [esp] +fld qword ptr (_Radix) +sub esp,8 +fstp qword ptr [esp] +call _pow +add esp,16 +fstp qword ptr (-1364)[ebp] +fld qword ptr (_Half) +fadd qword ptr (-1364)[ebp] +sub esp,8 +fstp qword ptr [esp] +call _floor +add esp,8 +fstp qword ptr (-1372)[ebp] +fld qword ptr (-1372)[ebp] +fstp qword ptr (_D) +fld qword ptr (_D) +fdiv qword ptr (_Radix) +fstp qword ptr (_X) +fld qword ptr (_D) +fdiv qword ptr (_A1) +fstp qword ptr (_Y) +fld qword ptr (_X) +sub esp,8 +fstp qword ptr [esp] +call _floor +add esp,8 +fstp qword ptr (-1396)[ebp] +fld qword ptr (-1396)[ebp] +fcomp qword ptr (_X) +fstsw ax +sahf +jne L395 +fld qword ptr (_Y) +sub esp,8 +fstp qword ptr [esp] +call _floor +add esp,8 +fstp qword ptr (-1412)[ebp] +fld qword ptr (-1412)[ebp] +fcomp qword ptr (_Y) +fstsw ax +sahf +je L393 +L395: +mov dword ptr (_Anomaly),1 +jmp L394 +L393: +fld qword ptr (_Zero) +fstp qword ptr (_X) +fld qword ptr (_X) +fstp qword ptr (_Z2) +fld qword ptr (_One) +fstp qword ptr (_Y) +fld qword ptr (_Y) +fstp qword ptr (_Y2) +fld qword ptr (_Radix) +fsub qword ptr (_One) +fstp qword ptr (_Z1) +fld qword ptr (_Four) +fmul qword ptr (_D) +fstp qword ptr (_FourD) +L396: +fld qword ptr (_Z2) +fcomp qword ptr (_Y2) +fstsw ax +sahf +jae L399 +fld qword ptr (_Radix) +fstp qword ptr (_Q) +fld qword ptr (_Y) +fstp qword ptr (_Y1) +L401: +fld qword ptr (_Half) +fld qword ptr (_Q) +fdiv qword ptr (_Y1) +fsubp st(1),st +sub esp,8 +fstp qword ptr [esp] +call _floor +add esp,8 +fstp qword ptr (-1436)[ebp] +fld qword ptr (_Q) +fld qword ptr (-1436)[ebp] +fmul qword ptr (_Y1) +faddp st(1),st +sub esp,8 +fstp qword ptr [esp] +call _fabs +add esp,8 +fstp qword ptr (-1444)[ebp] +fld qword ptr (-1444)[ebp] +fstp qword ptr (_X1) +fld qword ptr (_Y1) +fstp qword ptr (_Q) +fld qword ptr (_X1) +fstp qword ptr (_Y1) +L402: +fld qword ptr (_Zero) +fcomp qword ptr (_X1) +fstsw ax +sahf +jb L401 +fld qword ptr (_One) +fcomp qword ptr (_Q) +fstsw ax +sahf +jb L404 +fld qword ptr (_Y2) +fstp qword ptr (_Z2) +fld qword ptr (_Y) +fstp qword ptr (_Z) +L404: +L399: +fld qword ptr (_Y) +fadd qword ptr (_Two) +fstp qword ptr (_Y) +fld qword ptr (_X) +fadd qword ptr (_Eight) +fstp qword ptr (_X) +fld qword ptr (_Y2) +fadd qword ptr (_X) +fstp qword ptr (_Y2) +fld qword ptr (_FourD) +fcomp qword ptr (_Y2) +fstsw ax +sahf +ja L406 +fld qword ptr (_Y2) +fsub qword ptr (_FourD) +fstp qword ptr (_Y2) +L406: +L397: +fld qword ptr (_D) +fcomp qword ptr (_Y) +fstsw ax +sahf +ja L396 +fld qword ptr (_FourD) +fsub qword ptr (_Z2) +fstp qword ptr (_X8) +fld qword ptr (_X8) +fstp qword ptr (-1436)[ebp] +fld qword ptr (-1436)[ebp] +fld qword ptr (_Z) +fmul qword ptr (_Z) +faddp st(1),st +fdiv qword ptr (_FourD) +fstp qword ptr (_Q) +fld qword ptr (-1436)[ebp] +fdiv qword ptr (_Eight) +fstp qword ptr (_X8) +fld qword ptr (_Q) +fstp qword ptr (-1452)[ebp] +fld qword ptr (-1452)[ebp] +sub esp,8 +fstp qword ptr [esp] +call _floor +add esp,8 +fstp qword ptr (-1460)[ebp] +fld qword ptr (-1460)[ebp] +fcomp qword ptr (-1452)[ebp] +fstsw ax +sahf +je L408 +mov dword ptr (_Anomaly),1 +jmp L409 +L408: +mov dword ptr (_Break),0 +L410: +fld qword ptr (_Z1) +fmul qword ptr (_Z) +fstp qword ptr (_X) +fld qword ptr (_X) +fstp qword ptr (-1468)[ebp] +fld qword ptr (-1468)[ebp] +fdiv qword ptr (_Radix) +sub esp,8 +fstp qword ptr [esp] +call _floor +add esp,8 +fstp qword ptr (-1476)[ebp] +fld qword ptr (-1468)[ebp] +fld qword ptr (-1476)[ebp] +fmul qword ptr (_Radix) +fsubp st(1),st +fstp qword ptr (_X) +fld qword ptr (_One) +fcomp qword ptr (_X) +fstsw ax +sahf +jne L413 +mov dword ptr (_Break),1 +jmp L414 +L413: +fld qword ptr (_Z1) +fsub qword ptr (_One) +fstp qword ptr (_Z1) +L414: +L411: +cmp dword ptr (_Break),0 +jne L415 +fld qword ptr (_Zero) +fcomp qword ptr (_Z1) +fstsw ax +sahf +jb L410 +L415: +fld qword ptr (_Zero) +fcomp qword ptr (_Z1) +fstsw ax +sahf +jb L416 +cmp dword ptr (_Break),0 +jne L416 +mov dword ptr (_Anomaly),1 +jmp L417 +L416: +fld qword ptr (_RadixD2) +fcomp qword ptr (_Z1) +fstsw ax +sahf +jae L418 +fld qword ptr (_Z1) +fsub qword ptr (_Radix) +fstp qword ptr (_Z1) +L418: +L420: +call _NewD +add esp,0 +L421: +fld qword ptr (_U2) +fmul qword ptr (_D) +fld qword ptr (_F9) +fcompp +fstsw ax +sahf +ja L420 +fld qword ptr (_D) +fmul qword ptr (_Radix) +fsub qword ptr (_D) +fld qword ptr (_W) +fsub qword ptr (_D) +fcompp +fstsw ax +sahf +je L423 +mov dword ptr (_Anomaly),1 +jmp L424 +L423: +fld qword ptr (_D) +fstp qword ptr (_Z2) +mov dword ptr (_I),0 +fld qword ptr (_D) +fld qword ptr (_One) +fadd qword ptr (_Z) +fmul qword ptr (_Half) +faddp st(1),st +fstp qword ptr (_Y) +fld qword ptr (_D) +fadd qword ptr (_Z) +fadd qword ptr (_Q) +fstp qword ptr (_X) +call _SR3750 +add esp,0 +fld qword ptr (_D) +fld qword ptr (_One) +fsub qword ptr (_Z) +fmul qword ptr (_Half) +faddp st(1),st +fadd qword ptr (_D) +fstp qword ptr (_Y) +fld qword ptr (_D) +fsub qword ptr (_Z) +fadd qword ptr (_D) +fstp qword ptr (_X) +fld qword ptr (_X) +fstp qword ptr (-1508)[ebp] +fld qword ptr (-1508)[ebp] +fadd qword ptr (_Q) +fadd qword ptr (-1508)[ebp] +fstp qword ptr (_X) +call _SR3750 +add esp,0 +call _NewD +add esp,0 +fld qword ptr (_D) +fsub qword ptr (_Z2) +fld qword ptr (_W) +fsub qword ptr (_Z2) +fcompp +fstsw ax +sahf +je L425 +mov dword ptr (_Anomaly),1 +jmp L426 +L425: +fld qword ptr (_D) +fsub qword ptr (_Z2) +fstp qword ptr (-1532)[ebp] +fld qword ptr (-1532)[ebp] +fld qword ptr (_Z2) +fld qword ptr (_One) +fsub qword ptr (_Z) +fmul qword ptr (_Half) +faddp st(1),st +faddp st(1),st +fstp qword ptr (_Y) +fld qword ptr (-1532)[ebp] +fld qword ptr (_Z2) +fsub qword ptr (_Z) +fadd qword ptr (_Q) +faddp st(1),st +fstp qword ptr (_X) +call _SR3750 +add esp,0 +fld qword ptr (_One) +fadd qword ptr (_Z) +fmul qword ptr (_Half) +fstp qword ptr (_Y) +fld qword ptr (_Q) +fstp qword ptr (_X) +call _SR3750 +add esp,0 +cmp dword ptr (_I),0 +jne L427 +mov dword ptr (_Anomaly),1 +L427: +L426: +L424: +L417: +L409: +L394: +cmp dword ptr (_I),0 +je L431 +cmp dword ptr (_Anomaly),0 +je L429 +L431: +lea edi,(L432) +push edi +push 0 +call _BadCond +add esp,8 +fld qword ptr (_W) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L433) +push edi +call _printf +add esp,12 +lea edi,(L434) +push edi +call _printf +add esp,4 +mov dword ptr (_SqRWrng),1 +L429: +L390: +cmp dword ptr (_Anomaly),0 +jne L435 +fld qword ptr (_Zero) +fcomp qword ptr (_MinSqEr) +fstsw ax +sahf +ja L437 +fld qword ptr (_Zero) +fcomp qword ptr (_MaxSqEr) +fstsw ax +sahf +jb L437 +mov dword ptr (_RSqrt),1 +lea edi,(L439) +push edi +call _printf +add esp,4 +jmp L438 +L437: +fld qword ptr (_MaxSqEr) +fadd qword ptr (_U2) +fld qword ptr (_U2) +fsub qword ptr (_Half) +fcompp +fstsw ax +sahf +jb L443 +fld qword ptr (_Half) +fcomp qword ptr (_MinSqEr) +fstsw ax +sahf +jb L443 +fld qword ptr (_MinSqEr) +fadd qword ptr (_Radix) +fld qword ptr (_Half) +fcompp +fstsw ax +sahf +jbe L440 +L443: +mov dword ptr (_SqRWrng),1 +jmp L441 +L440: +mov dword ptr (_RSqrt),2 +lea edi,(L444) +push edi +call _printf +add esp,4 +L441: +L438: +L435: +cmp dword ptr (_SqRWrng),0 +je L445 +lea edi,(L447) +push edi +call _printf +add esp,4 +fld qword ptr (_MinSqEr) +fsub qword ptr (_Half) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L448) +push edi +call _printf +add esp,12 +fld qword ptr (_Half) +fadd qword ptr (_MaxSqEr) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L449) +push edi +call _printf +add esp,12 +lea edi,(L451) +push edi +fld qword ptr (_MaxSqEr) +fsub qword ptr (_MinSqEr) +fld qword ptr (_Radix) +fmul qword ptr (_Radix) +fcompp +fstsw ax +sahf +jbe L452 +mov dword ptr (-1344)[ebp],1 +jmp L453 +L452: +mov dword ptr (-1344)[ebp],0 +L453: +mov edi,dword ptr (-1344)[ebp] +push edi +push 1 +call _TstCond +add esp,12 +L445: +mov dword ptr (_Milestone),90 +call _Pause +add esp,0 +lea edi,(L454) +push edi +call _printf +add esp,4 +mov dword ptr (_N),0 +mov dword ptr (_I),0 +fld qword ptr (_Zero) +fchs +fstp qword ptr (_Z) +mov dword ptr (_M),3 +mov dword ptr (_Break),0 +L455: +fld qword ptr (_One) +fstp qword ptr (_X) +call _SR3980 +add esp,0 +cmp dword ptr (_I),10 +jg L458 +mov dword ptr (_I),1023 +call _SR3980 +add esp,0 +L458: +fld qword ptr (_MinusOne) +fcomp qword ptr (_Z) +fstsw ax +sahf +jne L460 +mov dword ptr (_Break),1 +jmp L461 +L460: +fld qword ptr (_MinusOne) +fstp qword ptr (_Z) +call _PrintIfNPositive +add esp,0 +mov dword ptr (_N),0 +mov dword ptr (_I),-4 +L461: +L456: +cmp dword ptr (_Break),0 +je L455 +call _PrintIfNPositive +add esp,0 +mov edi,dword ptr (_N) +mov dword ptr (_N1),edi +mov dword ptr (_N),0 +fld qword ptr (_A1) +fstp qword ptr (_Z) +fld qword ptr (_W) +sub esp,8 +fstp qword ptr [esp] +call _log +add esp,8 +fstp qword ptr (-1348)[ebp] +fld qword ptr (_A1) +sub esp,8 +fstp qword ptr [esp] +call _log +add esp,8 +fstp qword ptr (-1356)[ebp] +fld qword ptr (_Two) +fmul qword ptr (-1348)[ebp] +fdiv qword ptr (-1356)[ebp] +sub esp,8 +fstp qword ptr [esp] +call _floor +add esp,8 +fstp qword ptr (-1364)[ebp] +fld qword ptr (-1364)[ebp] +call __ftol +mov dword ptr (_M),eax +mov dword ptr (_Break),0 +L462: +fld qword ptr (_Z) +fstp qword ptr (_X) +mov dword ptr (_I),1 +call _SR3980 +add esp,0 +fld qword ptr (_AInvrse) +fcomp qword ptr (_Z) +fstsw ax +sahf +jne L465 +mov dword ptr (_Break),1 +jmp L466 +L465: +fld qword ptr (_AInvrse) +fstp qword ptr (_Z) +L466: +L463: +cmp dword ptr (_Break),0 +je L462 +mov dword ptr (_Milestone),100 +mov edi,dword ptr (_NoTrials) +mov dword ptr (_M),edi +fld qword ptr (_Three) +fstp qword ptr (_Z) +L467: +fld qword ptr (_Z) +fstp qword ptr (_X) +mov dword ptr (_I),1 +call _SR3980 +add esp,0 +L470: +fld qword ptr (_Z) +fadd qword ptr (_Two) +fstp qword ptr (_Z) +L471: +fld qword ptr (_Z) +fdiv qword ptr (_Three) +sub esp,8 +fstp qword ptr [esp] +call _floor +add esp,8 +fstp qword ptr (-1380)[ebp] +fld qword ptr (_Three) +fmul qword ptr (-1380)[ebp] +fld qword ptr (_Z) +fcompp +fstsw ax +sahf +je L470 +L468: +fld qword ptr (_Eight) +fmul qword ptr (_Three) +fcomp qword ptr (_Z) +fstsw ax +sahf +ja L467 +cmp dword ptr (_N),0 +jle L473 +lea edi,(L475) +push edi +call _printf +add esp,4 +lea edi,(L476) +push edi +call _printf +add esp,4 +L473: +call _PrintIfNPositive +add esp,0 +mov edi,dword ptr (_N1) +add dword ptr (_N),edi +cmp dword ptr (_N),0 +jne L477 +lea edi,(L479) +push edi +call _printf +add esp,4 +L477: +cmp dword ptr (_N),0 +jle L480 +call _Pause +add esp,0 +jmp L481 +L480: +lea edi,(L44) +push edi +call _printf +add esp,4 +L481: +mov dword ptr (_Milestone),110 +lea edi,(L482) +push edi +call _printf +add esp,4 +fld qword ptr (_U1) +fstp qword ptr (_D) +fld qword ptr (_Precision) +sub esp,8 +fstp qword ptr [esp] +call _floor +add esp,8 +fstp qword ptr (-1380)[ebp] +fld qword ptr (-1380)[ebp] +fcomp qword ptr (_Precision) +fstsw ax +sahf +je L483 +fld qword ptr (_BInvrse) +fstp qword ptr (_D) +fld qword ptr (_Precision) +fstp qword ptr (_X) +L485: +fld qword ptr (_D) +fmul qword ptr (_BInvrse) +fstp qword ptr (_D) +fld qword ptr (_X) +fsub qword ptr (_One) +fstp qword ptr (_X) +L486: +fld qword ptr (_Zero) +fcomp qword ptr (_X) +fstsw ax +sahf +jb L485 +L483: +fld qword ptr (_One) +fstp qword ptr (_Y) +fld qword ptr (_D) +fstp qword ptr (_Z) +L488: +fld qword ptr (_Y) +fstp qword ptr (_C) +fld qword ptr (_Z) +fstp qword ptr (_Y) +fld qword ptr (_Y) +fstp qword ptr (-1388)[ebp] +fld qword ptr (-1388)[ebp] +fmul qword ptr (-1388)[ebp] +fstp qword ptr (_Z) +L489: +fld qword ptr (_Z) +fcomp qword ptr (_Y) +fstsw ax +sahf +jae L491 +fld qword ptr (_Z) +fadd qword ptr (_Z) +fld qword ptr (_Z) +fcompp +fstsw ax +sahf +jb L488 +L491: +fld qword ptr (_C) +fstp qword ptr (_Y) +fld qword ptr (_Y) +fmul qword ptr (_D) +fstp qword ptr (_Z) +L492: +fld qword ptr (_Y) +fstp qword ptr (_C) +fld qword ptr (_Z) +fstp qword ptr (_Y) +fld qword ptr (_Y) +fmul qword ptr (_D) +fstp qword ptr (_Z) +L493: +fld qword ptr (_Z) +fcomp qword ptr (_Y) +fstsw ax +sahf +jae L495 +fld qword ptr (_Z) +fadd qword ptr (_Z) +fld qword ptr (_Z) +fcompp +fstsw ax +sahf +jb L492 +L495: +fld qword ptr (_Two) +fcomp qword ptr (_Radix) +fstsw ax +sahf +jbe L496 +fld qword ptr (_Two) +fstp qword ptr (_HInvrse) +jmp L497 +L496: +fld qword ptr (_Radix) +fstp qword ptr (_HInvrse) +L497: +fld qword ptr (_One) +fdiv qword ptr (_HInvrse) +fstp qword ptr (_H) +fld qword ptr (_One) +fdiv qword ptr (_C) +fstp qword ptr (_CInvrse) +fld qword ptr (_C) +fstp qword ptr (_E0) +fld qword ptr (_E0) +fmul qword ptr (_H) +fstp qword ptr (_Z) +L498: +fld qword ptr (_E0) +fstp qword ptr (_Y) +fld qword ptr (_Z) +fstp qword ptr (_E0) +fld qword ptr (_E0) +fmul qword ptr (_H) +fstp qword ptr (_Z) +L499: +fld qword ptr (_Z) +fcomp qword ptr (_E0) +fstsw ax +sahf +jae L501 +fld qword ptr (_Z) +fadd qword ptr (_Z) +fld qword ptr (_Z) +fcompp +fstsw ax +sahf +jb L498 +L501: +fld qword ptr (_E0) +fstp qword ptr (_UfThold) +fld qword ptr (_Zero) +fstp qword ptr (_E1) +fld qword ptr (_Zero) +fstp qword ptr (_Q) +fld qword ptr (_U2) +fstp qword ptr (_E9) +fld qword ptr (_One) +fadd qword ptr (_E9) +fstp qword ptr (_S) +fld qword ptr (_C) +fmul qword ptr (_S) +fstp qword ptr (_D) +fld qword ptr (_C) +fcomp qword ptr (_D) +fstsw ax +sahf +jb L502 +fld qword ptr (_Radix) +fmul qword ptr (_U2) +fstp qword ptr (_E9) +fld qword ptr (_One) +fadd qword ptr (_E9) +fstp qword ptr (_S) +fld qword ptr (_C) +fmul qword ptr (_S) +fstp qword ptr (_D) +fld qword ptr (_C) +fcomp qword ptr (_D) +fstsw ax +sahf +jb L503 +lea edi,(L506) +push edi +push 0 +call _BadCond +add esp,8 +fld qword ptr (_E0) +fstp qword ptr (_Underflow) +fld qword ptr (_Zero) +fstp qword ptr (_Y1) +fld qword ptr (_Z) +fstp qword ptr (_PseudoZero) +call _Pause +add esp,0 +jmp L503 +L502: +fld qword ptr (_D) +fstp qword ptr (_Underflow) +fld qword ptr (_Underflow) +fmul qword ptr (_H) +fstp qword ptr (_PseudoZero) +fld qword ptr (_Zero) +fstp qword ptr (_UfThold) +L507: +fld qword ptr (_Underflow) +fstp qword ptr (_Y1) +fld qword ptr (_PseudoZero) +fstp qword ptr (_Underflow) +fld qword ptr (_E1) +fadd qword ptr (_E1) +fld qword ptr (_E1) +fcompp +fstsw ax +sahf +jb L510 +fld qword ptr (_Underflow) +fmul qword ptr (_HInvrse) +fstp qword ptr (_Y2) +fld qword ptr (_Y1) +fsub qword ptr (_Y2) +sub esp,8 +fstp qword ptr [esp] +call _fabs +add esp,8 +fstp qword ptr (-1452)[ebp] +fld qword ptr (-1452)[ebp] +fstp qword ptr (_E1) +fld qword ptr (_Y1) +fstp qword ptr (_Q) +fld qword ptr (_Zero) +fcomp qword ptr (_UfThold) +fstsw ax +sahf +jne L512 +fld qword ptr (_Y2) +fcomp qword ptr (_Y1) +fstsw ax +sahf +je L512 +fld qword ptr (_Y1) +fstp qword ptr (_UfThold) +L512: +L510: +fld qword ptr (_PseudoZero) +fmul qword ptr (_H) +fstp qword ptr (_PseudoZero) +L508: +fld qword ptr (_PseudoZero) +fcomp qword ptr (_Underflow) +fstsw ax +sahf +jae L514 +fld qword ptr (_PseudoZero) +fadd qword ptr (_PseudoZero) +fld qword ptr (_PseudoZero) +fcompp +fstsw ax +sahf +jb L507 +L514: +L503: +fld qword ptr (_Zero) +fcomp qword ptr (_PseudoZero) +fstsw ax +sahf +je L515 +lea edi,(L44) +push edi +call _printf +add esp,4 +fld qword ptr (_PseudoZero) +fstp qword ptr (_Z) +fld qword ptr (_Zero) +fcomp qword ptr (_PseudoZero) +fstsw ax +sahf +jb L517 +lea edi,(L519) +push edi +push 0 +call _BadCond +add esp,8 +lea edi,(L520) +push edi +call _printf +add esp,4 +fld qword ptr (_PseudoZero) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L521) +push edi +call _printf +add esp,12 +fld qword ptr (_PseudoZero) +fchs +fstp qword ptr (_X) +fld qword ptr (_Zero) +fcomp qword ptr (_X) +fstsw ax +sahf +jb L518 +lea edi,(L524) +push edi +call _printf +add esp,4 +fld qword ptr (_X) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L525) +push edi +call _printf +add esp,12 +jmp L518 +L517: +lea edi,(L526) +push edi +push 3 +call _BadCond +add esp,8 +fld qword ptr (_PseudoZero) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L527) +push edi +call _printf +add esp,12 +L518: +call _TstPtUf +add esp,0 +L515: +mov dword ptr (_Milestone),120 +fld qword ptr (_CInvrse) +fmul qword ptr (_Y) +fld qword ptr (_CInvrse) +fmul qword ptr (_Y1) +fcompp +fstsw ax +sahf +jae L528 +fld qword ptr (_H) +fmul qword ptr (_S) +fstp qword ptr (_S) +fld qword ptr (_Underflow) +fstp qword ptr (_E0) +L528: +fld qword ptr (_Zero) +fcomp qword ptr (_E1) +fstsw ax +sahf +je L530 +fld qword ptr (_E0) +fcomp qword ptr (_E1) +fstsw ax +sahf +je L530 +lea edi,(L157) +push edi +push 2 +call _BadCond +add esp,8 +fld qword ptr (_E0) +fcomp qword ptr (_E1) +fstsw ax +sahf +jbe L532 +lea edi,(L534) +push edi +call _printf +add esp,4 +lea edi,(L535) +push edi +call _printf +add esp,4 +fld qword ptr (_Zero) +fcomp qword ptr (_PseudoZero) +fstsw ax +sahf +jne L533 +fld qword ptr (_E1) +fstp qword ptr (_E0) +jmp L533 +L532: +lea edi,(L538) +push edi +call _printf +add esp,4 +lea edi,(L539) +push edi +call _printf +add esp,4 +L533: +L530: +fld qword ptr (_E0) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L540) +push edi +call _printf +add esp,12 +fld qword ptr (_E0) +fstp qword ptr (_Z) +call _TstPtUf +add esp,0 +fld qword ptr (_E0) +fstp qword ptr (_Underflow) +cmp dword ptr (_N),1 +jne L541 +fld qword ptr (_Y) +fstp qword ptr (_Underflow) +L541: +mov dword ptr (_I),4 +fld qword ptr (_Zero) +fcomp qword ptr (_E1) +fstsw ax +sahf +jne L543 +mov dword ptr (_I),3 +L543: +fld qword ptr (_Zero) +fcomp qword ptr (_UfThold) +fstsw ax +sahf +jne L545 +sub dword ptr (_I),2 +L545: +mov dword ptr (_UfNGrad),1 +mov edi,dword ptr (_I) +cmp edi,1 +jl L547 +cmp edi,4 +jg L547 +jmp dword ptr (L570-4)[edi*4] +_TEXT ends +_TEXT segment +align 4 +L570 label byte +dd L549 +dd L556 +dd L561 +dd L562 +_TEXT ends +_TEXT segment +L549: +fld qword ptr (_Underflow) +fstp qword ptr (_UfThold) +fld qword ptr (_CInvrse) +fmul qword ptr (_Q) +fld qword ptr (_CInvrse) +fmul qword ptr (_Y) +fmul qword ptr (_S) +fcompp +fstsw ax +sahf +je L550 +fld qword ptr (_Y) +fstp qword ptr (_UfThold) +lea edi,(L552) +push edi +push 0 +call _BadCond +add esp,8 +fld qword ptr (_UfThold) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L553) +push edi +call _printf +add esp,12 +fld qword ptr (_C) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L554) +push edi +call _printf +add esp,12 +lea edi,(L555) +push edi +call _printf +add esp,4 +L550: +call _Pause +add esp,0 +jmp L548 +L556: +lea edi,(L557) +push edi +push 0 +call _BadCond +add esp,8 +lea edi,(L558) +push edi +call _printf +add esp,4 +fld qword ptr (_Y2) +sub esp,8 +fstp qword ptr [esp] +fld qword ptr (_Q) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L559) +push edi +call _printf +add esp,20 +fld qword ptr (_Q) +fsub qword ptr (_Y2) +sub esp,8 +fstp qword ptr [esp] +call _fabs +add esp,8 +fstp qword ptr (-1468)[ebp] +fld qword ptr (-1468)[ebp] +sub esp,8 +fstp qword ptr [esp] +lea edi,(L560) +push edi +call _printf +add esp,12 +fld qword ptr (_Q) +fstp qword ptr (_UfThold) +jmp L548 +L561: +fld qword ptr (_X) +fstp qword ptr (_X) +jmp L548 +L562: +fld qword ptr (_UfThold) +fcomp qword ptr (_Q) +fstsw ax +sahf +jne L563 +fld qword ptr (_E0) +fcomp qword ptr (_E1) +fstsw ax +sahf +jne L563 +fld qword ptr (_UfThold) +fld qword ptr (_E1) +fdiv qword ptr (_E9) +fsubp st(1),st +sub esp,8 +fstp qword ptr [esp] +call _fabs +add esp,8 +fstp qword ptr (-1492)[ebp] +fld qword ptr (_E1) +fcomp qword ptr (-1492)[ebp] +fstsw ax +sahf +jb L563 +mov dword ptr (_UfNGrad),0 +lea edi,(L565) +push edi +call _printf +add esp,4 +lea edi,(L566) +push edi +call _printf +add esp,4 +fld qword ptr (_E0) +fmul qword ptr (_CInvrse) +fstp qword ptr (_Y) +fld qword ptr (_Y) +fld qword ptr (_OneAndHalf) +fadd qword ptr (_U2) +fmulp st(1),st +fstp qword ptr (_Y) +fld qword ptr (_CInvrse) +fld qword ptr (_One) +fadd qword ptr (_U2) +fmulp st(1),st +fstp qword ptr (_X) +fld qword ptr (_Y) +fdiv qword ptr (_X) +fstp qword ptr (_Y) +fld qword ptr (_E0) +fcomp qword ptr (_Y) +fstsw ax +sahf +jne L568 +mov dword ptr (-1496)[ebp],1 +jmp L569 +L568: +mov dword ptr (-1496)[ebp],0 +L569: +mov edi,dword ptr (-1496)[ebp] +mov dword ptr (_IEEE),edi +L563: +L547: +L548: +cmp dword ptr (_UfNGrad),0 +je L572 +lea edi,(L44) +push edi +call _printf +add esp,4 +lea edi,(_sigfpe) +mov dword ptr (_sigsave),edi +lea edi,(_ovfl_buf) +push edi +call __setjmp +add esp,4 +cmp eax,0 +je L574 +lea edi,(L576) +push edi +call _printf +add esp,4 +fld qword ptr (_H) +fadd qword ptr (_H) +fstp qword ptr (_R) +jmp L575 +L574: +fld qword ptr (_Underflow) +fdiv qword ptr (_UfThold) +sub esp,8 +fstp qword ptr [esp] +call _sqrt +add esp,8 +fstp qword ptr (-1460)[ebp] +fld qword ptr (-1460)[ebp] +fstp qword ptr (_R) +L575: +mov dword ptr (_sigsave),0 +fld qword ptr (_H) +fcomp qword ptr (_R) +fstsw ax +sahf +jb L577 +fld qword ptr (_R) +fmul qword ptr (_UfThold) +fstp qword ptr (_Z) +fld qword ptr (_Z) +fld qword ptr (_One) +fld qword ptr (_R) +fmul qword ptr (_H) +fld qword ptr (_One) +fadd qword ptr (_H) +fmulp st(1),st +faddp st(1),st +fmulp st(1),st +fstp qword ptr (_X) +jmp L578 +L577: +fld qword ptr (_UfThold) +fstp qword ptr (_Z) +fld qword ptr (_Z) +fld qword ptr (_One) +fld qword ptr (_H) +fmul qword ptr (_H) +fld qword ptr (_One) +fadd qword ptr (_H) +fmulp st(1),st +faddp st(1),st +fmulp st(1),st +fstp qword ptr (_X) +L578: +fld qword ptr (_Z) +fcomp qword ptr (_X) +fstsw ax +sahf +je L579 +fld qword ptr (_X) +fsub qword ptr (_Z) +fld qword ptr (_Zero) +fcompp +fstsw ax +sahf +jne L579 +lea edi,(L157) +push edi +push 3 +call _BadCond +add esp,8 +fld qword ptr (_Z) +sub esp,8 +fstp qword ptr [esp] +fld qword ptr (_X) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L581) +push edi +call _printf +add esp,20 +fld qword ptr (_X) +fsub qword ptr (_Z) +fstp qword ptr (_Z9) +fld qword ptr (_Z9) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L582) +push edi +call _printf +add esp,12 +lea edi,(L583) +push edi +call _printf +add esp,4 +lea edi,(L584) +push edi +call _printf +add esp,4 +lea edi,(L585) +push edi +call _printf +add esp,4 +lea edi,(L586) +push edi +call _printf +add esp,4 +lea edi,(L587) +push edi +call _printf +add esp,4 +lea edi,(L588) +push edi +call _printf +add esp,4 +lea edi,(_sigfpe) +mov dword ptr (_sigsave),edi +lea edi,(_ovfl_buf) +push edi +call __setjmp +add esp,4 +cmp eax,0 +je L589 +lea edi,(L591) +push edi +call _printf +add esp,4 +jmp L590 +L589: +fld qword ptr (_X) +fdiv qword ptr (_Z) +fsub qword ptr (_Half) +fsub qword ptr (_Half) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L592) +push edi +call _printf +add esp,12 +L590: +mov dword ptr (_sigsave),0 +L579: +L572: +lea edi,(L594) +push edi +fld qword ptr (_UfThold) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L593) +push edi +call _printf +add esp,16 +lea edi,(L595) +push edi +call _printf +add esp,4 +lea edi,(L596) +push edi +call _printf +add esp,4 +fld qword ptr (_U1) +fmul qword ptr (_U1) +fstp qword ptr (_Y2) +fld qword ptr (_Y2) +fstp qword ptr (-1468)[ebp] +fld qword ptr (-1468)[ebp] +fmul qword ptr (-1468)[ebp] +fstp qword ptr (_Y) +fld qword ptr (_Y) +fmul qword ptr (_U1) +fstp qword ptr (_Y2) +fld qword ptr (_UfThold) +fcomp qword ptr (_Y2) +fstsw ax +sahf +jb L597 +fld qword ptr (_E0) +fcomp qword ptr (_Y) +fstsw ax +sahf +jae L599 +lea edi,(L157) +push edi +push 2 +call _BadCond +add esp,8 +mov dword ptr (_I),5 +jmp L600 +L599: +lea edi,(L157) +push edi +push 1 +call _BadCond +add esp,8 +mov dword ptr (_I),4 +L600: +mov edi,dword ptr (_I) +push edi +lea edi,(L601) +push edi +call _printf +add esp,8 +L597: +mov dword ptr (_Milestone),130 +fld qword ptr (_UfThold) +sub esp,8 +fstp qword ptr [esp] +call _log +add esp,8 +fstp qword ptr (-1476)[ebp] +fld qword ptr (_HInvrse) +sub esp,8 +fstp qword ptr [esp] +call _log +add esp,8 +fstp qword ptr (-1484)[ebp] +fld qword ptr (_Half) +fld qword ptr (_TwoForty) +fmul qword ptr (-1476)[ebp] +fdiv qword ptr (-1484)[ebp] +fsubp st(1),st +sub esp,8 +fstp qword ptr [esp] +call _floor +add esp,8 +fstp qword ptr (-1492)[ebp] +fld qword ptr (-1492)[ebp] +fchs +fdiv qword ptr (_TwoForty) +fstp qword ptr (_Y) +fld qword ptr (_Y) +fadd qword ptr (_Y) +fstp qword ptr (_Y2) +lea edi,(L602) +push edi +call _printf +add esp,4 +fld qword ptr (_Y) +sub esp,8 +fstp qword ptr [esp] +fld qword ptr (_HInvrse) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L603) +push edi +call _printf +add esp,20 +fld qword ptr (_Y) +sub esp,8 +fstp qword ptr [esp] +fld qword ptr (_HInvrse) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L604) +push edi +call _printf +add esp,20 +fld qword ptr (_Y2) +sub esp,8 +fstp qword ptr [esp] +fld qword ptr (_HInvrse) +sub esp,8 +fstp qword ptr [esp] +call _pow +add esp,16 +fstp qword ptr (-1508)[ebp] +fld qword ptr (-1508)[ebp] +fstp qword ptr (_V9) +fld qword ptr (_V9) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L605) +push edi +call _printf +add esp,12 +fld qword ptr (_Zero) +fcomp qword ptr (_V9) +fstsw ax +sahf +ja L608 +fld qword ptr (_Radix) +fadd qword ptr (_Radix) +fadd qword ptr (_E9) +fmul qword ptr (_UfThold) +fcomp qword ptr (_V9) +fstsw ax +sahf +jae L606 +L608: +lea edi,(L609) +push edi +push 1 +call _BadCond +add esp,8 +fld qword ptr (_UfThold) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L610) +push edi +call _printf +add esp,12 +jmp L607 +L606: +fld qword ptr (_UfThold) +fld qword ptr (_One) +fadd qword ptr (_E9) +fmulp st(1),st +fcomp qword ptr (_V9) +fstsw ax +sahf +jb L611 +lea edi,(L613) +push edi +call _printf +add esp,4 +jmp L612 +L611: +lea edi,(L609) +push edi +push 2 +call _BadCond +add esp,8 +fld qword ptr (_UfThold) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L610) +push edi +call _printf +add esp,12 +L612: +L607: +mov dword ptr (_Milestone),140 +lea edi,(L44) +push edi +call _printf +add esp,4 +fld qword ptr (_Zero) +fstp qword ptr (_X) +mov dword ptr (_I),2 +fld qword ptr (_Two) +fmul qword ptr (_Three) +fstp qword ptr (_Y) +fld qword ptr (_Zero) +fstp qword ptr (_Q) +mov dword ptr (_N),0 +L614: +fld qword ptr (_X) +fstp qword ptr (_Z) +inc dword ptr (_I) +mov edi,dword ptr (_I) +fld qword ptr (_Y) +lea edi,[edi][edi] +push edi +fild dword ptr 0[esp] +add esp,4 +fdivp st(1),st +fstp qword ptr (_Y) +fld qword ptr (_Y) +fadd qword ptr (_Q) +fstp qword ptr (_R) +fld qword ptr (_Z) +fstp qword ptr (-1540)[ebp] +fld qword ptr (_R) +fstp qword ptr (-1548)[ebp] +fld qword ptr (-1540)[ebp] +fadd qword ptr (-1548)[ebp] +fstp qword ptr (_X) +fld qword ptr (-1540)[ebp] +fsub qword ptr (_X) +fadd qword ptr (-1548)[ebp] +fstp qword ptr (_Q) +L615: +fld qword ptr (_Z) +fcomp qword ptr (_X) +fstsw ax +sahf +jb L614 +fld qword ptr (_OneAndHalf) +fld qword ptr (_One) +fdiv qword ptr (_Eight) +faddp st(1),st +fld qword ptr (_X) +fld qword ptr (_OneAndHalf) +fmul qword ptr (_ThirtyTwo) +fdivp st(1),st +faddp st(1),st +fstp qword ptr (_Z) +fld qword ptr (_Z) +fstp qword ptr (-1548)[ebp] +fld qword ptr (-1548)[ebp] +fmul qword ptr (-1548)[ebp] +fstp qword ptr (_X) +fld qword ptr (_X) +fstp qword ptr (-1556)[ebp] +fld qword ptr (-1556)[ebp] +fmul qword ptr (-1556)[ebp] +fstp qword ptr (_Exp2) +fld qword ptr (_F9) +fstp qword ptr (_X) +fld qword ptr (_X) +fsub qword ptr (_U1) +fstp qword ptr (_Y) +fld qword ptr (_Exp2) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L617) +push edi +call _printf +add esp,12 +mov dword ptr (_I),1 +L618: +fld qword ptr (_X) +fsub qword ptr (_BInvrse) +fstp qword ptr (_Z) +fld qword ptr (_X) +fadd qword ptr (_One) +fld qword ptr (_Z) +fld qword ptr (_One) +fsub qword ptr (_BInvrse) +fsubp st(1),st +fdivp st(1),st +fstp qword ptr (_Z) +fld qword ptr (_Z) +sub esp,8 +fstp qword ptr [esp] +fld qword ptr (_X) +sub esp,8 +fstp qword ptr [esp] +call _pow +add esp,16 +fstp qword ptr (-1588)[ebp] +fld qword ptr (-1588)[ebp] +fsub qword ptr (_Exp2) +fstp qword ptr (_Q) +fld qword ptr (_Q) +sub esp,8 +fstp qword ptr [esp] +call _fabs +add esp,8 +fstp qword ptr (-1596)[ebp] +fld qword ptr (_TwoForty) +fmul qword ptr (_U2) +fcomp qword ptr (-1596)[ebp] +fstsw ax +sahf +jae L622 +mov dword ptr (_N),1 +fld qword ptr (_X) +fsub qword ptr (_BInvrse) +fld qword ptr (_One) +fsub qword ptr (_BInvrse) +fsubp st(1),st +fstp qword ptr (_V9) +lea edi,(L624) +push edi +push 2 +call _BadCond +add esp,8 +fld qword ptr (_Z) +sub esp,8 +fstp qword ptr [esp] +fld qword ptr (_X) +sub esp,8 +fstp qword ptr [esp] +call _pow +add esp,16 +fstp qword ptr (-1612)[ebp] +fld qword ptr (-1612)[ebp] +sub esp,8 +fstp qword ptr [esp] +lea edi,(L625) +push edi +call _printf +add esp,12 +fld qword ptr (_Z) +sub esp,8 +fstp qword ptr [esp] +fld qword ptr (_V9) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L626) +push edi +call _printf +add esp,20 +fld qword ptr (_Q) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L627) +push edi +call _printf +add esp,12 +lea edi,(L628) +push edi +call _printf +add esp,4 +lea edi,(L629) +push edi +call _printf +add esp,4 +jmp L620 +L622: +fld qword ptr (_Y) +fstp qword ptr (-1604)[ebp] +fld qword ptr (-1604)[ebp] +fsub qword ptr (_X) +fmul qword ptr (_Two) +fadd qword ptr (-1604)[ebp] +fstp qword ptr (_Z) +fld qword ptr (-1604)[ebp] +fstp qword ptr (_X) +fld qword ptr (_Z) +fstp qword ptr (_Y) +fld qword ptr (_X) +fsub qword ptr (_F9) +fstp qword ptr (-1612)[ebp] +fld qword ptr (_One) +fld qword ptr (-1612)[ebp] +fmul qword ptr (-1612)[ebp] +faddp st(1),st +fstp qword ptr (_Z) +fld qword ptr (_One) +fcomp qword ptr (_Z) +fstsw ax +sahf +jae L630 +mov edi,dword ptr (_NoTrials) +cmp dword ptr (_I),edi +jge L630 +inc dword ptr (_I) +jmp L618 +L630: +fld qword ptr (_One) +fcomp qword ptr (_X) +fstsw ax +sahf +jae L632 +cmp dword ptr (_N),0 +jne L620 +lea edi,(L636) +push edi +call _printf +add esp,4 +jmp L620 +L632: +fld qword ptr (_One) +fadd qword ptr (_U2) +fstp qword ptr (_X) +fld qword ptr (_U2) +fadd qword ptr (_U2) +fstp qword ptr (_Y) +fld qword ptr (_Y) +fadd qword ptr (_X) +fstp qword ptr (_Y) +mov dword ptr (_I),1 +jmp L618 +L620: +mov dword ptr (_Milestone),150 +lea edi,(L637) +push edi +call _printf +add esp,4 +mov dword ptr (_N),0 +fld qword ptr (_A1) +fstp qword ptr (_Z) +fld qword ptr (_C) +sub esp,8 +fstp qword ptr [esp] +call _log +add esp,8 +fstp qword ptr (-1564)[ebp] +fld qword ptr (_A1) +sub esp,8 +fstp qword ptr [esp] +call _log +add esp,8 +fstp qword ptr (-1572)[ebp] +fld qword ptr (_Half) +fld qword ptr (-1564)[ebp] +fdiv qword ptr (-1572)[ebp] +fsubp st(1),st +sub esp,8 +fstp qword ptr [esp] +call _floor +add esp,8 +fstp qword ptr (-1580)[ebp] +fld qword ptr (-1580)[ebp] +fstp qword ptr (_Q) +mov dword ptr (_Break),0 +L638: +fld qword ptr (_CInvrse) +fstp qword ptr (_X) +fld qword ptr (_Q) +sub esp,8 +fstp qword ptr [esp] +fld qword ptr (_Z) +sub esp,8 +fstp qword ptr [esp] +call _pow +add esp,16 +fstp qword ptr (-1588)[ebp] +fld qword ptr (-1588)[ebp] +fstp qword ptr (_Y) +call _IsYeqX +add esp,0 +fld qword ptr (_Q) +fchs +fstp qword ptr (_Q) +fld qword ptr (_C) +fstp qword ptr (_X) +fld qword ptr (_Q) +sub esp,8 +fstp qword ptr [esp] +fld qword ptr (_Z) +sub esp,8 +fstp qword ptr [esp] +call _pow +add esp,16 +fstp qword ptr (-1596)[ebp] +fld qword ptr (-1596)[ebp] +fstp qword ptr (_Y) +call _IsYeqX +add esp,0 +fld qword ptr (_One) +fcomp qword ptr (_Z) +fstsw ax +sahf +jbe L641 +mov dword ptr (_Break),1 +jmp L642 +L641: +fld qword ptr (_AInvrse) +fstp qword ptr (_Z) +L642: +L639: +cmp dword ptr (_Break),0 +je L638 +call _PrintIfNPositive +add esp,0 +cmp dword ptr (_N),0 +jne L643 +lea edi,(L645) +push edi +call _printf +add esp,4 +L643: +lea edi,(L44) +push edi +call _printf +add esp,4 +mov dword ptr (_Milestone),160 +call _Pause +add esp,0 +lea edi,(L646) +push edi +call _printf +add esp,4 +lea edi,(L647) +push edi +call _printf +add esp,4 +fld qword ptr (_CInvrse) +fchs +fstp qword ptr (_Y) +fld qword ptr (_HInvrse) +fmul qword ptr (_Y) +fstp qword ptr (_V9) +lea edi,(_sigfpe) +mov dword ptr (_sigsave),edi +lea edi,(_ovfl_buf) +push edi +call __setjmp +add esp,4 +cmp eax,0 +je L648 +mov dword ptr (_I),0 +fld qword ptr (_Y) +fstp qword ptr (_V9) +jmp L650 +L648: +L651: +fld qword ptr (_Y) +fstp qword ptr (_V) +fld qword ptr (_V9) +fstp qword ptr (_Y) +fld qword ptr (_HInvrse) +fmul qword ptr (_Y) +fstp qword ptr (_V9) +L652: +fld qword ptr (_Y) +fcomp qword ptr (_V9) +fstsw ax +sahf +ja L651 +mov dword ptr (_I),1 +L650: +mov dword ptr (_sigsave),0 +fld qword ptr (_V9) +fstp qword ptr (_Z) +lea edi,(L654) +push edi +call _printf +add esp,4 +fld qword ptr (_Y) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L655) +push edi +call _printf +add esp,12 +fld qword ptr (_Y) +fchs +fstp qword ptr (_V9) +fld qword ptr (_V9) +fstp qword ptr (_V0) +fld qword ptr (_V) +fsub qword ptr (_Y) +fld qword ptr (_V) +fadd qword ptr (_V0) +fcompp +fstsw ax +sahf +jne L656 +lea edi,(L658) +push edi +call _printf +add esp,4 +jmp L657 +L656: +lea edi,(L659) +push edi +call _printf +add esp,4 +lea edi,(L660) +push edi +push 3 +call _BadCond +add esp,8 +L657: +fld qword ptr (_Y) +fcomp qword ptr (_Z) +fstsw ax +sahf +je L661 +lea edi,(L157) +push edi +push 1 +call _BadCond +add esp,8 +fld qword ptr (_Z) +sub esp,8 +fstp qword ptr [esp] +fld qword ptr (_Y) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L663) +push edi +call _printf +add esp,20 +L661: +cmp dword ptr (_I),0 +je L664 +fld qword ptr (_V) +fld qword ptr (_HInvrse) +fmul qword ptr (_U2) +fsub qword ptr (_HInvrse) +fmulp st(1),st +fstp qword ptr (_Y) +fld qword ptr (_Y) +fld qword ptr (_One) +fsub qword ptr (_HInvrse) +fmul qword ptr (_U2) +fmul qword ptr (_V) +faddp st(1),st +fstp qword ptr (_Z) +fld qword ptr (_V0) +fcomp qword ptr (_Z) +fstsw ax +sahf +jbe L666 +fld qword ptr (_Z) +fstp qword ptr (_Y) +L666: +fld qword ptr (_V0) +fcomp qword ptr (_Y) +fstsw ax +sahf +jbe L668 +fld qword ptr (_Y) +fstp qword ptr (_V) +L668: +fld qword ptr (_V0) +fsub qword ptr (_V) +fld qword ptr (_V0) +fcompp +fstsw ax +sahf +jbe L665 +fld qword ptr (_V0) +fstp qword ptr (_V) +jmp L665 +L664: +fld qword ptr (_Y) +fld qword ptr (_HInvrse) +fmul qword ptr (_U2) +fsub qword ptr (_HInvrse) +fmulp st(1),st +fstp qword ptr (_V) +fld qword ptr (_V) +fld qword ptr (_One) +fsub qword ptr (_HInvrse) +fmul qword ptr (_U2) +fmul qword ptr (_Y) +faddp st(1),st +fstp qword ptr (_V) +L665: +fld qword ptr (_V) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L672) +push edi +call _printf +add esp,12 +cmp dword ptr (_I),0 +je L673 +fld qword ptr (_V0) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L675) +push edi +call _printf +add esp,12 +jmp L674 +L673: +lea edi,(L676) +push edi +call _printf +add esp,4 +L674: +fld qword ptr (_V) +fmul qword ptr (_One) +fstp qword ptr (_V9) +fld qword ptr (_V9) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L677) +push edi +call _printf +add esp,12 +fld qword ptr (_V) +fdiv qword ptr (_One) +fstp qword ptr (_V9) +fld qword ptr (_V9) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L678) +push edi +call _printf +add esp,12 +lea edi,(L679) +push edi +call _printf +add esp,4 +lea edi,(L680) +push edi +call _printf +add esp,4 +mov dword ptr (_Milestone),170 +fld qword ptr (_V) +fchs +fld qword ptr (_V) +fcompp +fstsw ax +sahf +jbe L685 +fld qword ptr (_V0) +fchs +fld qword ptr (_V0) +fcompp +fstsw ax +sahf +jbe L685 +fld qword ptr (_UfThold) +fchs +fld qword ptr (_V) +fcompp +fstsw ax +sahf +jbe L685 +fld qword ptr (_V) +fcomp qword ptr (_UfThold) +fstsw ax +sahf +ja L681 +L685: +lea edi,(L686) +push edi +push 0 +call _BadCond +add esp,8 +fld qword ptr (_UfThold) +sub esp,8 +fstp qword ptr [esp] +fld qword ptr (_V0) +sub esp,8 +fstp qword ptr [esp] +fld qword ptr (_V) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L687) +push edi +call _printf +add esp,28 +L681: +mov dword ptr (_Milestone),175 +lea edi,(L44) +push edi +call _printf +add esp,4 +mov dword ptr (_Indx),1 +L688: +mov edi,dword ptr (_Indx) +cmp edi,1 +je L694 +cmp edi,2 +je L695 +cmp edi,3 +je L696 +jmp L692 +L694: +fld qword ptr (_UfThold) +fstp qword ptr (_Z) +jmp L693 +L695: +fld qword ptr (_E0) +fstp qword ptr (_Z) +jmp L693 +L696: +fld qword ptr (_PseudoZero) +fstp qword ptr (_Z) +L692: +L693: +fld qword ptr (_Zero) +fcomp qword ptr (_Z) +fstsw ax +sahf +je L697 +fld qword ptr (_Z) +sub esp,8 +fstp qword ptr [esp] +call _sqrt +add esp,8 +fstp qword ptr (-1628)[ebp] +fld qword ptr (-1628)[ebp] +fstp qword ptr (_V9) +fld qword ptr (_V9) +fmul qword ptr (_V9) +fstp qword ptr (_Y) +fld qword ptr (_Radix) +fmul qword ptr (_E9) +fstp qword ptr (-1660)[ebp] +fld qword ptr (_Y) +fld qword ptr (_One) +fsub qword ptr (-1660)[ebp] +fdivp st(1),st +fld qword ptr (_Z) +fcompp +fstsw ax +sahf +ja L701 +fld qword ptr (_One) +fadd qword ptr (-1660)[ebp] +fmul qword ptr (_Z) +fcomp qword ptr (_Y) +fstsw ax +sahf +jae L699 +L701: +fld qword ptr (_U1) +fcomp qword ptr (_V9) +fstsw ax +sahf +jae L702 +lea edi,(L157) +push edi +push 1 +call _BadCond +add esp,8 +jmp L703 +L702: +lea edi,(L157) +push edi +push 2 +call _BadCond +add esp,8 +L703: +fld qword ptr (_Z) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L704) +push edi +call _printf +add esp,12 +fld qword ptr (_Y) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L705) +push edi +call _printf +add esp,12 +L699: +L697: +L689: +inc dword ptr (_Indx) +cmp dword ptr (_Indx),3 +jle L688 +mov dword ptr (_Milestone),180 +mov dword ptr (_Indx),1 +L706: +cmp dword ptr (_Indx),1 +jne L710 +fld qword ptr (_V) +fstp qword ptr (_Z) +jmp L711 +L710: +fld qword ptr (_V0) +fstp qword ptr (_Z) +L711: +fld qword ptr (_Z) +sub esp,8 +fstp qword ptr [esp] +call _sqrt +add esp,8 +fstp qword ptr (-1628)[ebp] +fld qword ptr (-1628)[ebp] +fstp qword ptr (_V9) +fld qword ptr (_V9) +fstp qword ptr (-1636)[ebp] +fld qword ptr (_One) +fld qword ptr (_Radix) +fmul qword ptr (_E9) +fsubp st(1),st +fmul qword ptr (-1636)[ebp] +fstp qword ptr (_X) +fld qword ptr (-1636)[ebp] +fmul qword ptr (_X) +fstp qword ptr (_V9) +fld qword ptr (_One) +fld qword ptr (_Two) +fmul qword ptr (_Radix) +fmul qword ptr (_E9) +fsubp st(1),st +fmul qword ptr (_Z) +fcomp qword ptr (_V9) +fstsw ax +sahf +ja L714 +fld qword ptr (_Z) +fcomp qword ptr (_V9) +fstsw ax +sahf +jae L712 +L714: +fld qword ptr (_V9) +fstp qword ptr (_Y) +fld qword ptr (_W) +fcomp qword ptr (_X) +fstsw ax +sahf +jbe L715 +lea edi,(L157) +push edi +push 1 +call _BadCond +add esp,8 +jmp L716 +L715: +lea edi,(L157) +push edi +push 2 +call _BadCond +add esp,8 +L716: +fld qword ptr (_Z) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L717) +push edi +call _printf +add esp,12 +fld qword ptr (_Y) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L718) +push edi +call _printf +add esp,12 +L712: +L707: +inc dword ptr (_Indx) +cmp dword ptr (_Indx),2 +jle L706 +mov dword ptr (_Milestone),190 +call _Pause +add esp,0 +fld qword ptr (_UfThold) +fmul qword ptr (_V) +fstp qword ptr (_X) +fld qword ptr (_Radix) +fmul qword ptr (_Radix) +fstp qword ptr (_Y) +fld qword ptr (_X) +fmul qword ptr (_Y) +fld qword ptr (_One) +fcompp +fstsw ax +sahf +ja L721 +fld qword ptr (_Y) +fcomp qword ptr (_X) +fstsw ax +sahf +jae L719 +L721: +fld qword ptr (_X) +fmul qword ptr (_Y) +fld qword ptr (_U1) +fcompp +fstsw ax +sahf +ja L724 +fld qword ptr (_Y) +fdiv qword ptr (_U1) +fcomp qword ptr (_X) +fstsw ax +sahf +jae L722 +L724: +lea edi,(L725) +push edi +push 2 +call _BadCond +add esp,8 +jmp L723 +L722: +lea edi,(L157) +push edi +push 3 +call _BadCond +add esp,8 +L723: +lea edi,(L727) +push edi +fld qword ptr (_X) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L726) +push edi +call _printf +add esp,16 +L719: +mov dword ptr (_Milestone),200 +mov dword ptr (_Indx),1 +L728: +fld qword ptr (_F9) +fstp qword ptr (_X) +mov edi,dword ptr (_Indx) +cmp edi,2 +jl L732 +cmp edi,5 +jg L732 +jmp dword ptr (L738-8)[edi*4] +_TEXT ends +_TEXT segment +align 4 +L738 label byte +dd L734 +dd L735 +dd L736 +dd L737 +_TEXT ends +_TEXT segment +L734: +fld qword ptr (_One) +fadd qword ptr (_U2) +fstp qword ptr (_X) +jmp L733 +L735: +fld qword ptr (_V) +fstp qword ptr (_X) +jmp L733 +L736: +fld qword ptr (_UfThold) +fstp qword ptr (_X) +jmp L733 +L737: +fld qword ptr (_Radix) +fstp qword ptr (_X) +L732: +L733: +fld qword ptr (_X) +fstp qword ptr (_Y) +lea edi,(_sigfpe) +mov dword ptr (_sigsave),edi +lea edi,(_ovfl_buf) +push edi +call __setjmp +add esp,4 +cmp eax,0 +je L740 +fld qword ptr (_X) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L742) +push edi +call _printf +add esp,12 +jmp L741 +L740: +fld qword ptr (_Y) +fdiv qword ptr (_X) +fsub qword ptr (_Half) +fsub qword ptr (_Half) +fstp qword ptr (_V9) +fld qword ptr (_Zero) +fcomp qword ptr (_V9) +fstsw ax +sahf +jne L743 +jmp L729 +L743: +fld qword ptr (_U1) +fchs +fcomp qword ptr (_V9) +fstsw ax +sahf +jne L745 +cmp dword ptr (_Indx),5 +jge L745 +lea edi,(L157) +push edi +push 3 +call _BadCond +add esp,8 +jmp L746 +L745: +lea edi,(L157) +push edi +push 1 +call _BadCond +add esp,8 +L746: +fld qword ptr (_X) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L747) +push edi +call _printf +add esp,12 +fld qword ptr (_V9) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L748) +push edi +call _printf +add esp,12 +L741: +mov dword ptr (_sigsave),0 +L729: +inc dword ptr (_Indx) +cmp dword ptr (_Indx),5 +jle L728 +mov dword ptr (_Milestone),210 +fld qword ptr (_Zero) +fstp qword ptr (_MyZero) +lea edi,(L44) +push edi +call _printf +add esp,4 +lea edi,(L749) +push edi +call _printf +add esp,4 +lea edi,(_sigfpe) +mov dword ptr (_sigsave),edi +lea edi,(L750) +push edi +call _printf +add esp,4 +lea edi,(_ovfl_buf) +push edi +call __setjmp +add esp,4 +cmp eax,0 +jne L751 +fld qword ptr (_One) +fdiv qword ptr (_MyZero) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L753) +push edi +call _printf +add esp,12 +L751: +mov dword ptr (_sigsave),0 +lea edi,(_sigfpe) +mov dword ptr (_sigsave),edi +lea edi,(L754) +push edi +call _printf +add esp,4 +lea edi,(_ovfl_buf) +push edi +call __setjmp +add esp,4 +cmp eax,0 +jne L755 +fld qword ptr (_Zero) +fdiv qword ptr (_MyZero) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L753) +push edi +call _printf +add esp,12 +L755: +mov dword ptr (_sigsave),0 +mov dword ptr (_Milestone),220 +call _Pause +add esp,0 +lea edi,(L44) +push edi +call _printf +add esp,4 +mov dword ptr (-1648)[ebp],0 +L762: +mov edi,dword ptr (-1648)[ebp] +cmp dword ptr (_ErrCnt)[edi*4],0 +je L766 +mov edi,dword ptr (-1648)[ebp] +lea edi,[edi*4] +mov esi,dword ptr (_ErrCnt)[edi] +push esi +mov edi,dword ptr (L757)[edi] +push edi +lea edi,(L768) +push edi +call _printf +add esp,12 +L766: +L763: +inc dword ptr (-1648)[ebp] +cmp dword ptr (-1648)[ebp],4 +jl L762 +lea edi,(L44) +push edi +call _printf +add esp,4 +mov edi,dword ptr (_ErrCnt) +mov esi,dword ptr (_ErrCnt+4) +lea edi,[esi][edi] +mov esi,dword ptr (_ErrCnt+8) +lea edi,[esi][edi] +mov esi,dword ptr (_ErrCnt+12) +lea edi,[esi][edi] +cmp edi,0 +jle L769 +mov edi,dword ptr (_ErrCnt) +mov esi,dword ptr (_ErrCnt+4) +lea edi,[esi][edi] +mov esi,dword ptr (_ErrCnt+8) +lea edi,[esi][edi] +cmp edi,0 +jne L774 +cmp dword ptr (_ErrCnt+12),0 +jle L774 +lea edi,(L779) +push edi +call _printf +add esp,4 +lea edi,(L780) +push edi +call _printf +add esp,4 +L774: +mov edi,dword ptr (_ErrCnt) +mov esi,dword ptr (_ErrCnt+4) +lea edi,[esi][edi] +cmp edi,0 +jne L781 +cmp dword ptr (_ErrCnt+8),0 +jle L781 +lea edi,(L785) +push edi +call _printf +add esp,4 +lea edi,(L786) +push edi +call _printf +add esp,4 +L781: +mov edi,dword ptr (_ErrCnt) +mov esi,dword ptr (_ErrCnt+4) +lea edi,[esi][edi] +cmp edi,0 +jle L787 +lea edi,(L790) +push edi +call _printf +add esp,4 +lea edi,(L791) +push edi +call _printf +add esp,4 +L787: +cmp dword ptr (_ErrCnt),0 +jle L770 +lea edi,(L794) +push edi +call _printf +add esp,4 +lea edi,(L795) +push edi +call _printf +add esp,4 +jmp L770 +L769: +lea edi,(L796) +push edi +call _printf +add esp,4 +cmp dword ptr (_RMult),1 +jne L801 +cmp dword ptr (_RDiv),1 +jne L801 +cmp dword ptr (_RAddSub),1 +jne L801 +cmp dword ptr (_RSqrt),1 +je L797 +L801: +lea edi,(L802) +push edi +call _printf +add esp,4 +jmp L798 +L797: +fld qword ptr (_One) +fcomp qword ptr (_StickyBit) +fstsw ax +sahf +ja L803 +fld qword ptr (_Radix) +fsub qword ptr (_Two) +fld qword ptr (_Radix) +fsub qword ptr (_Nine) +fsub qword ptr (_One) +fmulp st(1),st +fld qword ptr (_Zero) +fcompp +fstsw ax +sahf +jne L803 +lea edi,(L805) +push edi +call _printf +add esp,4 +lea edi,(L806) +push edi +call _printf +add esp,4 +fld qword ptr (_Two) +fcomp qword ptr (_Radix) +fstsw ax +sahf +jne L807 +fld qword ptr (_Precision) +fld qword ptr (_Four) +fmul qword ptr (_Three) +fmul qword ptr (_Two) +fsubp st(1),st +fld qword ptr (_Precision) +fsub qword ptr (_TwentySeven) +fsub qword ptr (_TwentySeven) +fadd qword ptr (_One) +fmulp st(1),st +fld qword ptr (_Zero) +fcompp +fstsw ax +sahf +jne L807 +lea edi,(L809) +push edi +call _printf +add esp,4 +jmp L808 +L807: +lea edi,(L810) +push edi +call _printf +add esp,4 +L808: +cmp dword ptr (_IEEE),0 +je L811 +lea edi,(L813) +push edi +call _printf +add esp,4 +jmp L812 +L811: +lea edi,(L814) +push edi +call _printf +add esp,4 +lea edi,(L815) +push edi +call _printf +add esp,4 +L812: +L803: +lea edi,(L816) +push edi +call _printf +add esp,4 +L798: +L770: +cmp dword ptr (_fpecount),0 +je L817 +mov edi,dword ptr (_fpecount) +push edi +lea edi,(L819) +push edi +call _printf +add esp,8 +L817: +lea edi,(L820) +push edi +call _printf +add esp,4 +mov eax,0 +L6: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _Sign +_Sign: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,8 +fld qword ptr (L7) +fcomp qword ptr (20)[ebp] +fstsw ax +sahf +ja L823 +fld qword ptr (L8) +fstp qword ptr (-8)[ebp] +jmp L824 +L823: +fld qword ptr (L825) +fstp qword ptr (-8)[ebp] +L824: +fld qword ptr (-8)[ebp] +L821: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _Pause +_Pause: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov edi,dword ptr (_Milestone) +push edi +lea edi,(L827) +push edi +call _printf +add esp,8 +mov edi,dword ptr (_PageNo) +push edi +lea edi,(L828) +push edi +call _printf +add esp,8 +inc dword ptr (_Milestone) +inc dword ptr (_PageNo) +mov eax,0 +L826: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _TstCond +_TstCond: +push ebx +push esi +push edi +push ebp +mov ebp,esp +cmp dword ptr (24)[ebp],0 +jne L830 +mov edi,dword ptr (28)[ebp] +push edi +mov edi,dword ptr (20)[ebp] +push edi +call _BadCond +add esp,8 +lea edi,(L813) +push edi +call _printf +add esp,4 +L830: +mov eax,0 +L829: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +align 4 +L833 label byte +dd L834 +dd L835 +dd L836 +dd L837 +public _BadCond +_DATA ends +_TEXT segment +_BadCond: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov edi,dword ptr (20)[ebp] +lea edi,(_ErrCnt)[edi*4] +inc dword ptr [edi] +mov edi,dword ptr (24)[ebp] +push edi +mov edi,dword ptr (20)[ebp] +mov edi,dword ptr (L833)[edi*4] +push edi +lea edi,(L838) +push edi +call _printf +add esp,12 +mov eax,0 +L832: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _Random +_Random: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,48 +fld qword ptr (_Random1) +fadd qword ptr (_Random9) +fstp qword ptr (-8)[ebp] +fld qword ptr (-8)[ebp] +fmul qword ptr (-8)[ebp] +fstp qword ptr (-16)[ebp] +fld qword ptr (-16)[ebp] +fmul qword ptr (-16)[ebp] +fstp qword ptr (-16)[ebp] +fld qword ptr (-8)[ebp] +fmul qword ptr (-16)[ebp] +fstp qword ptr (-8)[ebp] +fld qword ptr (-8)[ebp] +sub esp,8 +fstp qword ptr [esp] +call _floor +add esp,8 +fstp qword ptr (-48)[ebp] +fld qword ptr (-8)[ebp] +fsub qword ptr (-48)[ebp] +fstp qword ptr (-16)[ebp] +fld qword ptr (-16)[ebp] +fld qword ptr (L840) +fmul qword ptr (-8)[ebp] +faddp st(1),st +fstp qword ptr (_Random1) +fld qword ptr (_Random1) +L839: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _SqXMinX +_SqXMinX: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,40 +fld qword ptr (_X) +fmul qword ptr (_BInvrse) +fstp qword ptr (-8)[ebp] +fld qword ptr (_X) +fsub qword ptr (-8)[ebp] +fstp qword ptr (-16)[ebp] +fld qword ptr (_X) +fmul qword ptr (_X) +sub esp,8 +fstp qword ptr [esp] +call _sqrt +add esp,8 +fstp qword ptr (-32)[ebp] +fld qword ptr (-32)[ebp] +fsub qword ptr (-8)[ebp] +fsub qword ptr (-16)[ebp] +fdiv qword ptr (_OneUlp) +fstp qword ptr (_SqEr) +fld qword ptr (_Zero) +fcomp qword ptr (_SqEr) +fstsw ax +sahf +je L842 +fld qword ptr (_MinSqEr) +fcomp qword ptr (_SqEr) +fstsw ax +sahf +jbe L844 +fld qword ptr (_SqEr) +fstp qword ptr (_MinSqEr) +L844: +fld qword ptr (_MaxSqEr) +fcomp qword ptr (_SqEr) +fstsw ax +sahf +jae L846 +fld qword ptr (_SqEr) +fstp qword ptr (_MaxSqEr) +L846: +fld qword ptr (_J) +fadd qword ptr (L8) +fstp qword ptr (_J) +lea edi,(L44) +push edi +mov edi,dword ptr (20)[ebp] +push edi +call _BadCond +add esp,8 +fld qword ptr (_OneUlp) +fmul qword ptr (_SqEr) +sub esp,8 +fstp qword ptr [esp] +fld qword ptr (_X) +sub esp,8 +fstp qword ptr [esp] +fld qword ptr (_X) +fmul qword ptr (_X) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L848) +push edi +call _printf +add esp,28 +lea edi,(L849) +push edi +call _printf +add esp,4 +L842: +mov eax,0 +L841: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _NewD +_NewD: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,40 +fld qword ptr (_Z1) +fmul qword ptr (_Q) +fstp qword ptr (_X) +fld qword ptr (_Half) +fld qword ptr (_X) +fdiv qword ptr (_Radix) +fsubp st(1),st +sub esp,8 +fstp qword ptr [esp] +call _floor +add esp,8 +fstp qword ptr (-8)[ebp] +fld qword ptr (-8)[ebp] +fmul qword ptr (_Radix) +fadd qword ptr (_X) +fstp qword ptr (_X) +fld qword ptr (_X) +fstp qword ptr (-24)[ebp] +fld qword ptr (_Z) +fstp qword ptr (-32)[ebp] +fld qword ptr (_Q) +fld qword ptr (-24)[ebp] +fmul qword ptr (-32)[ebp] +fsubp st(1),st +fdiv qword ptr (_Radix) +fld qword ptr (-24)[ebp] +fmul qword ptr (-24)[ebp] +fld qword ptr (_D) +fdiv qword ptr (_Radix) +fmulp st(1),st +faddp st(1),st +fstp qword ptr (_Q) +fld qword ptr (-32)[ebp] +fld qword ptr (_Two) +fmul qword ptr (-24)[ebp] +fmul qword ptr (_D) +fsubp st(1),st +fstp qword ptr (_Z) +fld qword ptr (_Zero) +fcomp qword ptr (_Z) +fstsw ax +sahf +jb L851 +fld qword ptr (_Z) +fchs +fstp qword ptr (_Z) +fld qword ptr (_Z1) +fchs +fstp qword ptr (_Z1) +L851: +fld qword ptr (_Radix) +fmul qword ptr (_D) +fstp qword ptr (_D) +mov eax,0 +L850: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _SR3750 +_SR3750: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,64 +fld qword ptr (_X) +fsub qword ptr (_Radix) +fld qword ptr (_Z2) +fsub qword ptr (_Radix) +fcompp +fstsw ax +sahf +ja L854 +fld qword ptr (_X) +fsub qword ptr (_Z2) +fld qword ptr (_W) +fsub qword ptr (_Z2) +fcompp +fstsw ax +sahf +jb L854 +inc dword ptr (_I) +fld qword ptr (_X) +fmul qword ptr (_D) +sub esp,8 +fstp qword ptr [esp] +call _sqrt +add esp,8 +fstp qword ptr (-32)[ebp] +fld qword ptr (-32)[ebp] +fstp qword ptr (_X2) +fld qword ptr (_X2) +fsub qword ptr (_Z2) +fld qword ptr (_Y) +fsub qword ptr (_Z2) +fsubp st(1),st +fstp qword ptr (_Y2) +fld qword ptr (_X8) +fld qword ptr (_Y) +fsub qword ptr (_Half) +fdivp st(1),st +fstp qword ptr (_X2) +fld qword ptr (_X2) +fstp qword ptr (-64)[ebp] +fld qword ptr (-64)[ebp] +fld qword ptr (_Half) +fmul qword ptr (-64)[ebp] +fmul qword ptr (-64)[ebp] +fsubp st(1),st +fstp qword ptr (_X2) +fld qword ptr (_Y2) +fadd qword ptr (_Half) +fld qword ptr (_Half) +fsub qword ptr (_X2) +faddp st(1),st +fstp qword ptr (_SqEr) +fld qword ptr (_MinSqEr) +fcomp qword ptr (_SqEr) +fstsw ax +sahf +jbe L856 +fld qword ptr (_SqEr) +fstp qword ptr (_MinSqEr) +L856: +fld qword ptr (_Y2) +fsub qword ptr (_X2) +fstp qword ptr (_SqEr) +fld qword ptr (_MaxSqEr) +fcomp qword ptr (_SqEr) +fstsw ax +sahf +jae L858 +fld qword ptr (_SqEr) +fstp qword ptr (_MaxSqEr) +L858: +L854: +mov eax,0 +L853: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _IsYeqX +_IsYeqX: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,8 +fld qword ptr (_X) +fcomp qword ptr (_Y) +fstsw ax +sahf +je L861 +cmp dword ptr (_N),0 +jg L863 +fld qword ptr (_Zero) +fcomp qword ptr (_Z) +fstsw ax +sahf +jne L865 +fld qword ptr (_Zero) +fcomp qword ptr (_Q) +fstsw ax +sahf +jb L865 +lea edi,(L867) +push edi +call _printf +add esp,4 +jmp L866 +L865: +lea edi,(L868) +push edi +push 2 +call _BadCond +add esp,8 +L866: +fld qword ptr (_Q) +sub esp,8 +fstp qword ptr [esp] +fld qword ptr (_Z) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L869) +push edi +call _printf +add esp,20 +fld qword ptr (_Y) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L870) +push edi +call _printf +add esp,12 +fld qword ptr (_X) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L871) +push edi +call _printf +add esp,12 +fld qword ptr (_Y) +fsub qword ptr (_X) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L872) +push edi +call _printf +add esp,12 +L863: +inc dword ptr (_N) +L861: +mov eax,0 +L860: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _SR3980 +_SR3980: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,8 +L874: +fild dword ptr (_I) +fstp qword ptr (_Q) +fld qword ptr (_Q) +sub esp,8 +fstp qword ptr [esp] +fld qword ptr (_Z) +sub esp,8 +fstp qword ptr [esp] +call _pow +add esp,16 +fstp qword ptr (-8)[ebp] +fld qword ptr (-8)[ebp] +fstp qword ptr (_Y) +call _IsYeqX +add esp,0 +mov edi,dword ptr (_I) +lea edi,(1)[edi] +mov dword ptr (_I),edi +cmp edi,dword ptr (_M) +jle L877 +jmp L876 +L877: +fld qword ptr (_Z) +fmul qword ptr (_X) +fstp qword ptr (_X) +L875: +fld qword ptr (_W) +fcomp qword ptr (_X) +fstsw ax +sahf +ja L874 +L876: +mov eax,0 +L873: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _PrintIfNPositive +_PrintIfNPositive: +push ebx +push esi +push edi +push ebp +mov ebp,esp +cmp dword ptr (_N),0 +jle L880 +mov edi,dword ptr (_N) +push edi +lea edi,(L882) +push edi +call _printf +add esp,8 +L880: +mov eax,0 +L879: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _TstPtUf +_TstPtUf: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,48 +mov dword ptr (_N),0 +fld qword ptr (_Zero) +fcomp qword ptr (_Z) +fstsw ax +sahf +je L884 +lea edi,(L886) +push edi +call _printf +add esp,4 +lea edi,(L887) +push edi +call _printf +add esp,4 +lea edi,(_sigfpe) +mov dword ptr (_sigsave),edi +lea edi,(_ovfl_buf) +push edi +call __setjmp +add esp,4 +cmp eax,0 +je L888 +jmp L890 +L888: +fld qword ptr (_Z) +fadd qword ptr (_Z) +fdiv qword ptr (_Z) +fstp qword ptr (_Q9) +fld qword ptr (_Q9) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L891) +push edi +call _printf +add esp,12 +fld qword ptr (_Q9) +fsub qword ptr (_Two) +sub esp,8 +fstp qword ptr [esp] +call _fabs +add esp,8 +fstp qword ptr (-16)[ebp] +fld qword ptr (_Radix) +fmul qword ptr (_U2) +fcomp qword ptr (-16)[ebp] +fstsw ax +sahf +jbe L892 +lea edi,(L894) +push edi +call _printf +add esp,4 +lea edi,(L895) +push edi +call _printf +add esp,4 +jmp L893 +L892: +fld qword ptr (_One) +fcomp qword ptr (_Q9) +fstsw ax +sahf +ja L898 +fld qword ptr (_Two) +fcomp qword ptr (_Q9) +fstsw ax +sahf +jae L896 +L898: +L890: +mov dword ptr (_N),1 +mov edi,dword ptr (_ErrCnt+4) +lea edi,(1)[edi] +mov dword ptr (_ErrCnt+4),edi +lea edi,(L901) +push edi +call _printf +add esp,4 +jmp L897 +L896: +mov dword ptr (_N),1 +mov edi,dword ptr (_ErrCnt+8) +lea edi,(1)[edi] +mov dword ptr (_ErrCnt+8),edi +lea edi,(L904) +push edi +call _printf +add esp,4 +L897: +L893: +mov dword ptr (_sigsave),0 +fld qword ptr (_Z) +fmul qword ptr (_One) +fstp qword ptr (_V9) +fld qword ptr (_V9) +fstp qword ptr (_Random1) +fld qword ptr (_One) +fmul qword ptr (_Z) +fstp qword ptr (_V9) +fld qword ptr (_V9) +fstp qword ptr (_Random2) +fld qword ptr (_Z) +fdiv qword ptr (_One) +fstp qword ptr (_V9) +fld qword ptr (_Random1) +fcomp qword ptr (_Z) +fstsw ax +sahf +jne L905 +fld qword ptr (_Random2) +fcomp qword ptr (_Z) +fstsw ax +sahf +jne L905 +fld qword ptr (_V9) +fcomp qword ptr (_Z) +fstsw ax +sahf +jne L905 +cmp dword ptr (_N),0 +jle L906 +call _Pause +add esp,0 +jmp L906 +L905: +mov dword ptr (_N),1 +lea edi,(L909) +push edi +push 2 +call _BadCond +add esp,8 +fld qword ptr (_Z) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L910) +push edi +call _printf +add esp,12 +fld qword ptr (_Random1) +fcomp qword ptr (_Z) +fstsw ax +sahf +je L911 +fld qword ptr (_Random1) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L913) +push edi +call _printf +add esp,12 +L911: +fld qword ptr (_Random2) +fcomp qword ptr (_Z) +fstsw ax +sahf +je L914 +fld qword ptr (_Random1) +fcomp qword ptr (_Random2) +fstsw ax +sahf +je L914 +fld qword ptr (_Random2) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L916) +push edi +call _printf +add esp,12 +L914: +fld qword ptr (_V9) +fcomp qword ptr (_Z) +fstsw ax +sahf +je L917 +fld qword ptr (_V9) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L919) +push edi +call _printf +add esp,12 +L917: +fld qword ptr (_Random1) +fcomp qword ptr (_Random2) +fstsw ax +sahf +je L920 +mov edi,dword ptr (_ErrCnt+8) +lea edi,(1)[edi] +mov dword ptr (_ErrCnt+8),edi +lea edi,(L924) +push edi +push 2 +call _BadCond +add esp,8 +fld qword ptr (_Random2) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L925) +push edi +call _printf +add esp,12 +fld qword ptr (_Random1) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L926) +push edi +call _printf +add esp,12 +L920: +call _Pause +add esp,0 +L906: +L884: +mov eax,0 +L883: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _notify +_notify: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov edi,dword ptr (20)[ebp] +push edi +lea edi,(L928) +push edi +call _printf +add esp,8 +lea edi,(L929) +push edi +call _printf +add esp,4 +mov eax,0 +L927: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _msglist +_msglist: +push ebx +push esi +push edi +push ebp +mov ebp,esp +jmp L932 +L931: +mov edi,dword ptr (20)[ebp] +lea esi,(4)[edi] +mov dword ptr (20)[ebp],esi +mov edi,dword ptr [edi] +push edi +lea edi,(L934) +push edi +call _printf +add esp,8 +L932: +mov edi,dword ptr (20)[ebp] +mov edi,dword ptr [edi] +cmp edi,0 +jne L931 +mov eax,0 +L930: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +align 4 +L936 label byte +dd L937 +dd L938 +dd L939 +dd L940 +dd L941 +dd L942 +dd L943 +dd L944 +dd L945 +dd 00H +public _Instructions +_DATA ends +_TEXT segment +_Instructions: +push ebx +push esi +push edi +push ebp +mov ebp,esp +lea edi,(L936) +push edi +call _msglist +add esp,4 +mov eax,0 +L935: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +align 4 +L947 label byte +dd L948 +dd L949 +dd L950 +dd L951 +dd L952 +dd L953 +dd L954 +dd L955 +dd L956 +dd L957 +dd L958 +dd L959 +dd L960 +dd L961 +dd 00H +public _Heading +_DATA ends +_TEXT segment +_Heading: +push ebx +push esi +push edi +push ebp +mov ebp,esp +lea edi,(L947) +push edi +call _msglist +add esp,4 +mov eax,0 +L946: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +align 4 +L963 label byte +dd L964 +dd L965 +dd L966 +dd L967 +dd L968 +dd L969 +dd L970 +dd L971 +dd L972 +dd L973 +dd L974 +dd L975 +dd L976 +dd L977 +dd L978 +dd L979 +dd L980 +dd L981 +dd L982 +dd 00H +public _Characteristics +_DATA ends +_TEXT segment +_Characteristics: +push ebx +push esi +push edi +push ebp +mov ebp,esp +lea edi,(L963) +push edi +call _msglist +add esp,4 +mov eax,0 +L962: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +align 4 +L984 label byte +dd L985 +dd L986 +dd L987 +dd L988 +dd L989 +dd L990 +dd L991 +dd L992 +dd L993 +dd L994 +dd L995 +dd L996 +dd L997 +dd L998 +dd L999 +dd L1000 +dd L1001 +dd 00H +public _History +_DATA ends +_TEXT segment +_History: +push ebx +push esi +push edi +push ebp +mov ebp,esp +lea edi,(L984) +push edi +call _msglist +add esp,4 +mov eax,0 +L983: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _pow +_pow: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,96 +mov dword ptr (-20)[ebp],0 +mov dword ptr (-24)[ebp],0 +fld qword ptr (L7) +fcomp qword ptr (28)[ebp] +fstsw ax +sahf +jne L1003 +fld qword ptr (L8) +jmp L1002 +L1003: +fld qword ptr (L1008) +fcomp qword ptr (28)[ebp] +fstsw ax +sahf +ja L1007 +fld qword ptr (L1009) +fcomp qword ptr (28)[ebp] +fstsw ax +sahf +jae L1005 +L1007: +fld qword ptr (L825) +fcomp qword ptr (20)[ebp] +fstsw ax +sahf +je L1005 +fld qword ptr (20)[ebp] +sub esp,8 +fstp qword ptr [esp] +call _log +add esp,8 +fstp qword ptr (-48)[ebp] +fld qword ptr (28)[ebp] +fmul qword ptr (-48)[ebp] +sub esp,8 +fstp qword ptr [esp] +call _exp +add esp,8 +fstp qword ptr (-56)[ebp] +fld qword ptr (-56)[ebp] +jmp L1002 +L1005: +fld qword ptr (L7) +fcomp qword ptr (28)[ebp] +fstsw ax +sahf +jbe L1010 +fld qword ptr (28)[ebp] +fchs +fstp qword ptr (28)[ebp] +mov dword ptr (-24)[ebp],1 +L1010: +lea edi,(-32)[ebp] +push edi +fld qword ptr (28)[ebp] +sub esp,8 +fstp qword ptr [esp] +call _modf +add esp,12 +fstp qword ptr (-64)[ebp] +fld qword ptr (-64)[ebp] +fstp qword ptr (28)[ebp] +fld qword ptr (L7) +fcomp qword ptr (28)[ebp] +fstsw ax +sahf +je L1012 +fld qword ptr (20)[ebp] +sub esp,8 +fstp qword ptr [esp] +call _log +add esp,8 +fstp qword ptr (-72)[ebp] +fld qword ptr (28)[ebp] +fmul qword ptr (-72)[ebp] +sub esp,8 +fstp qword ptr [esp] +call _exp +add esp,8 +fstp qword ptr (-80)[ebp] +fld qword ptr (-80)[ebp] +fstp qword ptr (-16)[ebp] +jmp L1013 +L1012: +fld qword ptr (L8) +fstp qword ptr (-16)[ebp] +L1013: +lea edi,(-8)[ebp] +push edi +fld qword ptr (20)[ebp] +sub esp,8 +fstp qword ptr [esp] +call _frexp +add esp,12 +fstp qword ptr (-88)[ebp] +fld qword ptr (-88)[ebp] +fstp qword ptr (20)[ebp] +fld qword ptr (-32)[ebp] +call __ftol +mov dword ptr (-4)[ebp],eax +cmp eax,0 +je L1014 +L1016: +mov edi,dword ptr (-4)[ebp] +and edi,1 +cmp edi,0 +je L1020 +fld qword ptr (-16)[ebp] +fmul qword ptr (20)[ebp] +fstp qword ptr (-16)[ebp] +mov edi,dword ptr (-8)[ebp] +add dword ptr (-20)[ebp],edi +L1020: +mov edi,dword ptr (-4)[ebp] +sar edi,1 +mov dword ptr (-4)[ebp],edi +cmp edi,0 +jne L1022 +jmp L1018 +L1022: +fld qword ptr (20)[ebp] +fmul qword ptr (20)[ebp] +fstp qword ptr (20)[ebp] +sal dword ptr (-8)[ebp],1 +fld qword ptr (L1026) +fcomp qword ptr (20)[ebp] +fstsw ax +sahf +jbe L1016 +fld qword ptr (L1027) +fmul qword ptr (20)[ebp] +fstp qword ptr (20)[ebp] +dec dword ptr (-8)[ebp] +jmp L1016 +L1018: +L1014: +cmp dword ptr (-24)[ebp],0 +je L1028 +fld qword ptr (L8) +fdiv qword ptr (-16)[ebp] +fstp qword ptr (-16)[ebp] +neg dword ptr (-20)[ebp] +L1028: +mov edi,dword ptr (-20)[ebp] +push edi +fld qword ptr (-16)[ebp] +sub esp,8 +fstp qword ptr [esp] +call _ldexp +add esp,12 +fstp qword ptr (-96)[ebp] +fld qword ptr (-96)[ebp] +L1002: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +extrn _modf:near +_TEXT segment +_TEXT ends +extrn _ldexp:near +_TEXT segment +_TEXT ends +extrn _frexp:near +_TEXT segment +_TEXT ends +extrn _exp:near +_TEXT segment +_TEXT ends +extrn _abort:near +_TEXT segment +_TEXT ends +_DATA segment +public _UfNGrad +align 4 +_UfNGrad label byte +db 4 dup (0) +public _SqRWrng +align 4 +_SqRWrng label byte +db 4 dup (0) +public _IEEE +align 4 +_IEEE label byte +db 4 dup (0) +public _Anomaly +align 4 +_Anomaly label byte +db 4 dup (0) +public _Monot +align 4 +_Monot label byte +db 4 dup (0) +public _NotMonot +align 4 +_NotMonot label byte +db 4 dup (0) +public _Done +align 4 +_Done label byte +db 4 dup (0) +public _Break +align 4 +_Break label byte +db 4 dup (0) +public _RSqrt +align 4 +_RSqrt label byte +db 4 dup (0) +public _RAddSub +align 4 +_RAddSub label byte +db 4 dup (0) +public _RDiv +align 4 +_RDiv label byte +db 4 dup (0) +public _RMult +align 4 +_RMult label byte +db 4 dup (0) +public _GAddSub +align 4 +_GAddSub label byte +db 4 dup (0) +public _GDiv +align 4 +_GDiv label byte +db 4 dup (0) +public _GMult +align 4 +_GMult label byte +db 4 dup (0) +public _N1 +align 4 +_N1 label byte +db 4 dup (0) +public _N +align 4 +_N label byte +db 4 dup (0) +public _M +align 4 +_M label byte +db 4 dup (0) +public _PageNo +align 4 +_PageNo label byte +db 4 dup (0) +public _Milestone +align 4 +_Milestone label byte +db 4 dup (0) +public _fpecount +align 4 +_fpecount label byte +db 4 dup (0) +public _ErrCnt +align 4 +_ErrCnt label byte +db 16 dup (0) +public _Z9 +align 4 +_Z9 label byte +db 8 dup (0) +public _Z2 +align 4 +_Z2 label byte +db 8 dup (0) +public _Z1 +align 4 +_Z1 label byte +db 8 dup (0) +public _PseudoZero +align 4 +_PseudoZero label byte +db 8 dup (0) +public _Z +align 4 +_Z label byte +db 8 dup (0) +public _Random2 +align 4 +_Random2 label byte +db 8 dup (0) +public _Y2 +align 4 +_Y2 label byte +db 8 dup (0) +public _Y1 +align 4 +_Y1 label byte +db 8 dup (0) +public _Y +align 4 +_Y label byte +db 8 dup (0) +public _Random1 +align 4 +_Random1 label byte +db 8 dup (0) +public _X8 +align 4 +_X8 label byte +db 8 dup (0) +public _X2 +align 4 +_X2 label byte +db 8 dup (0) +public _X1 +align 4 +_X1 label byte +db 8 dup (0) +public _X +align 4 +_X label byte +db 8 dup (0) +public _W +align 4 +_W label byte +db 8 dup (0) +public _V9 +align 4 +_V9 label byte +db 8 dup (0) +public _V0 +align 4 +_V0 label byte +db 8 dup (0) +public _V +align 4 +_V label byte +db 8 dup (0) +public _U2 +align 4 +_U2 label byte +db 8 dup (0) +public _U1 +align 4 +_U1 label byte +db 8 dup (0) +public _UfThold +align 4 +_UfThold label byte +db 8 dup (0) +public _OneUlp +align 4 +_OneUlp label byte +db 8 dup (0) +public _S +align 4 +_S label byte +db 8 dup (0) +public _Underflow +align 4 +_Underflow label byte +db 8 dup (0) +public _T +align 4 +_T label byte +db 8 dup (0) +public _Random9 +align 4 +_Random9 label byte +db 8 dup (0) +public _R +align 4 +_R label byte +db 8 dup (0) +public _Q9 +align 4 +_Q9 label byte +db 8 dup (0) +public _Q +align 4 +_Q label byte +db 8 dup (0) +public _Precision +align 4 +_Precision label byte +db 8 dup (0) +public _MyZero +align 4 +_MyZero label byte +db 8 dup (0) +public _J +align 4 +_J label byte +db 8 dup (0) +public _StickyBit +align 4 +_StickyBit label byte +db 8 dup (0) +public _I +align 4 +_I label byte +db 4 dup (0) +public _HInvrse +align 4 +_HInvrse label byte +db 8 dup (0) +public _H +align 4 +_H label byte +db 8 dup (0) +public _F9 +align 4 +_F9 label byte +db 8 dup (0) +public _F6 +align 4 +_F6 label byte +db 8 dup (0) +public _Third +align 4 +_Third label byte +db 8 dup (0) +public _E9 +align 4 +_E9 label byte +db 8 dup (0) +public _MaxSqEr +align 4 +_MaxSqEr label byte +db 8 dup (0) +public _SqEr +align 4 +_SqEr label byte +db 8 dup (0) +public _MinSqEr +align 4 +_MinSqEr label byte +db 8 dup (0) +public _E3 +align 4 +_E3 label byte +db 8 dup (0) +public _Exp2 +align 4 +_Exp2 label byte +db 8 dup (0) +public _E1 +align 4 +_E1 label byte +db 8 dup (0) +public _E0 +align 4 +_E0 label byte +db 8 dup (0) +public _FourD +align 4 +_FourD label byte +db 8 dup (0) +public _D +align 4 +_D label byte +db 8 dup (0) +public _CInvrse +align 4 +_CInvrse label byte +db 8 dup (0) +public _C +align 4 +_C label byte +db 8 dup (0) +public _A1 +align 4 +_A1 label byte +db 8 dup (0) +public _AInvrse +align 4 +_AInvrse label byte +db 8 dup (0) +public _ch +align 1 +_ch label byte +db 8 dup (0) +public _Indx +align 4 +_Indx label byte +db 4 dup (0) +public _BMinusU2 +align 4 +_BMinusU2 label byte +db 8 dup (0) +public _RadixD2 +align 4 +_RadixD2 label byte +db 8 dup (0) +public _BInvrse +align 4 +_BInvrse label byte +db 8 dup (0) +public _Radix +align 4 +_Radix label byte +db 8 dup (0) +public _sigsave +align 4 +_sigsave label byte +db 4 dup (0) +public _ovfl_buf +align 4 +_ovfl_buf label byte +db 64 dup (0) +_DATA ends +extrn _sqrt:near +_DATA segment +_DATA ends +extrn _log:near +_DATA segment +_DATA ends +extrn _floor:near +_DATA segment +_DATA ends +extrn _fabs:near +_DATA segment +_DATA ends +extrn _longjmp:near +_DATA segment +_DATA ends +extrn __setjmp:near +_DATA segment +_DATA ends +extrn _signal:near +_DATA segment +_DATA ends +extrn _printf:near +_DATA segment +_DATA ends +extrn _fflush:near +_DATA segment +_DATA ends +extrn __iob:near +_DATA segment +_DATA ends +_TEXT segment +align 4 +L1027 label byte +dd 00H +dd 040000000H +align 4 +L1026 label byte +dd 00H +dd 03fe00000H +align 4 +L1009 label byte +dd 00H +dd 040913000H +align 4 +L1008 label byte +dd 00H +dd 0c0913000H +align 1 +L1001 label byte +db 115 +db 101 +db 101 +db 32 +db 115 +db 111 +db 117 +db 114 +db 99 +db 101 +db 32 +db 99 +db 111 +db 109 +db 109 +db 101 +db 110 +db 116 +db 115 +db 32 +db 102 +db 111 +db 114 +db 32 +db 109 +db 111 +db 114 +db 101 +db 32 +db 104 +db 105 +db 115 +db 116 +db 111 +db 114 +db 121 +db 46 +db 0 +align 1 +L1000 label byte +db 66 +db 65 +db 83 +db 73 +db 67 +db 32 +db 118 +db 101 +db 114 +db 115 +db 105 +db 111 +db 110 +db 32 +db 111 +db 102 +db 32 +db 116 +db 104 +db 105 +db 115 +db 32 +db 112 +db 114 +db 111 +db 103 +db 114 +db 97 +db 109 +db 32 +db 40 +db 67 +db 41 +db 32 +db 49 +db 57 +db 56 +db 51 +db 32 +db 98 +db 121 +db 32 +db 80 +db 114 +db 111 +db 102 +db 46 +db 32 +db 87 +db 46 +db 32 +db 77 +db 46 +db 32 +db 75 +db 97 +db 104 +db 97 +db 110 +db 59 +db 0 +align 1 +L999 label byte +db 97 +db 115 +db 32 +db 117 +db 115 +db 101 +db 100 +db 32 +db 98 +db 121 +db 32 +db 99 +db 101 +db 114 +db 116 +db 97 +db 105 +db 110 +db 32 +db 101 +db 97 +db 114 +db 108 +db 121 +db 32 +db 87 +db 65 +db 78 +db 71 +db 32 +db 109 +db 97 +db 99 +db 104 +db 105 +db 110 +db 101 +db 115 +db 46 +db 10 +db 0 +align 1 +L998 label byte +db 102 +db 108 +db 111 +db 97 +db 116 +db 105 +db 110 +db 103 +db 45 +db 112 +db 111 +db 105 +db 110 +db 116 +db 32 +db 110 +db 117 +db 109 +db 98 +db 101 +db 114 +db 115 +db 44 +db 32 +db 98 +db 117 +db 116 +db 32 +db 97 +db 108 +db 115 +db 111 +db 32 +db 97 +db 108 +db 108 +db 111 +db 119 +db 115 +db 32 +db 108 +db 111 +db 103 +db 97 +db 114 +db 105 +db 116 +db 104 +db 109 +db 105 +db 99 +db 32 +db 101 +db 110 +db 99 +db 111 +db 100 +db 105 +db 110 +db 103 +db 0 +align 1 +L997 label byte +db 10 +db 84 +db 104 +db 101 +db 32 +db 112 +db 114 +db 111 +db 103 +db 114 +db 97 +db 109 +db 32 +db 105 +db 115 +db 32 +db 98 +db 97 +db 115 +db 101 +db 100 +db 32 +db 117 +db 112 +db 111 +db 110 +db 32 +db 97 +db 32 +db 99 +db 111 +db 110 +db 118 +db 101 +db 110 +db 116 +db 105 +db 111 +db 110 +db 97 +db 108 +db 32 +db 114 +db 97 +db 100 +db 105 +db 120 +db 32 +db 114 +db 101 +db 112 +db 114 +db 101 +db 115 +db 101 +db 110 +db 116 +db 97 +db 116 +db 105 +db 111 +db 110 +db 32 +db 102 +db 111 +db 114 +db 0 +align 1 +L996 label byte +db 111 +db 102 +db 32 +db 112 +db 97 +db 116 +db 104 +db 111 +db 108 +db 111 +db 103 +db 105 +db 101 +db 115 +db 44 +db 32 +db 97 +db 110 +db 100 +db 32 +db 116 +db 111 +db 32 +db 115 +db 97 +db 121 +db 32 +db 104 +db 111 +db 119 +db 32 +db 119 +db 101 +db 108 +db 108 +db 32 +db 116 +db 104 +db 101 +db 32 +db 97 +db 114 +db 105 +db 116 +db 104 +db 109 +db 101 +db 116 +db 105 +db 99 +db 32 +db 105 +db 115 +db 32 +db 105 +db 109 +db 112 +db 108 +db 101 +db 109 +db 101 +db 110 +db 116 +db 101 +db 100 +db 46 +db 0 +align 1 +L995 label byte +db 111 +db 102 +db 32 +db 116 +db 104 +db 101 +db 32 +db 97 +db 114 +db 105 +db 116 +db 104 +db 109 +db 101 +db 116 +db 105 +db 99 +db 44 +db 32 +db 116 +db 104 +db 105 +db 115 +db 32 +db 112 +db 114 +db 111 +db 103 +db 114 +db 97 +db 109 +db 32 +db 116 +db 114 +db 105 +db 101 +db 115 +db 32 +db 116 +db 111 +db 32 +db 99 +db 111 +db 112 +db 101 +db 32 +db 119 +db 105 +db 116 +db 104 +db 32 +db 97 +db 32 +db 119 +db 105 +db 100 +db 101 +db 114 +db 32 +db 118 +db 97 +db 114 +db 105 +db 101 +db 116 +db 121 +db 0 +align 1 +L994 label byte +db 116 +db 104 +db 101 +db 32 +db 82 +db 97 +db 100 +db 105 +db 120 +db 44 +db 32 +db 80 +db 114 +db 101 +db 99 +db 105 +db 115 +db 105 +db 111 +db 110 +db 32 +db 97 +db 110 +db 100 +db 32 +db 114 +db 97 +db 110 +db 103 +db 101 +db 32 +db 40 +db 111 +db 118 +db 101 +db 114 +db 47 +db 117 +db 110 +db 100 +db 101 +db 114 +db 102 +db 108 +db 111 +db 119 +db 32 +db 116 +db 104 +db 114 +db 101 +db 115 +db 104 +db 111 +db 108 +db 100 +db 115 +db 41 +db 0 +align 1 +L993 label byte +db 87 +db 46 +db 32 +db 74 +db 46 +db 32 +db 67 +db 111 +db 100 +db 121 +db 32 +db 97 +db 110 +db 100 +db 32 +db 87 +db 46 +db 32 +db 87 +db 97 +db 105 +db 116 +db 101 +db 46 +db 32 +db 65 +db 108 +db 116 +db 104 +db 111 +db 117 +db 103 +db 104 +db 32 +db 98 +db 111 +db 116 +db 104 +db 32 +db 112 +db 114 +db 111 +db 103 +db 114 +db 97 +db 109 +db 115 +db 32 +db 116 +db 114 +db 121 +db 32 +db 116 +db 111 +db 32 +db 100 +db 105 +db 115 +db 99 +db 111 +db 118 +db 101 +db 114 +db 0 +align 1 +L992 label byte +db 98 +db 111 +db 111 +db 107 +db 32 +db 32 +db 96 +db 83 +db 111 +db 102 +db 116 +db 119 +db 97 +db 114 +db 101 +db 32 +db 77 +db 97 +db 110 +db 117 +db 97 +db 108 +db 32 +db 102 +db 111 +db 114 +db 32 +db 116 +db 104 +db 101 +db 32 +db 69 +db 108 +db 101 +db 109 +db 101 +db 110 +db 116 +db 97 +db 114 +db 121 +db 32 +db 70 +db 117 +db 110 +db 99 +db 116 +db 105 +db 111 +db 110 +db 115 +db 39 +db 32 +db 40 +db 49 +db 57 +db 56 +db 48 +db 41 +db 32 +db 98 +db 121 +db 0 +align 1 +L991 label byte +db 112 +db 114 +db 111 +db 103 +db 114 +db 97 +db 109 +db 32 +db 99 +db 97 +db 108 +db 108 +db 101 +db 100 +db 32 +db 96 +db 77 +db 65 +db 67 +db 72 +db 65 +db 82 +db 39 +db 44 +db 32 +db 119 +db 104 +db 105 +db 99 +db 104 +db 32 +db 99 +db 97 +db 110 +db 32 +db 98 +db 101 +db 32 +db 102 +db 111 +db 117 +db 110 +db 100 +db 32 +db 97 +db 116 +db 32 +db 116 +db 104 +db 101 +db 32 +db 101 +db 110 +db 100 +db 32 +db 111 +db 102 +db 32 +db 116 +db 104 +db 101 +db 0 +align 1 +L990 label byte +db 84 +db 104 +db 101 +db 32 +db 100 +db 105 +db 97 +db 103 +db 110 +db 111 +db 115 +db 116 +db 105 +db 99 +db 32 +db 99 +db 97 +db 112 +db 97 +db 98 +db 105 +db 108 +db 105 +db 116 +db 105 +db 101 +db 115 +db 32 +db 111 +db 102 +db 32 +db 116 +db 104 +db 105 +db 115 +db 32 +db 112 +db 114 +db 111 +db 103 +db 114 +db 97 +db 109 +db 32 +db 103 +db 111 +db 32 +db 98 +db 101 +db 121 +db 111 +db 110 +db 100 +db 32 +db 97 +db 110 +db 32 +db 101 +db 97 +db 114 +db 108 +db 105 +db 101 +db 114 +db 0 +align 1 +L989 label byte +db 70 +db 97 +db 105 +db 108 +db 117 +db 114 +db 101 +db 115 +db 32 +db 109 +db 97 +db 121 +db 32 +db 99 +db 111 +db 110 +db 102 +db 111 +db 117 +db 110 +db 100 +db 32 +db 115 +db 117 +db 98 +db 115 +db 101 +db 113 +db 117 +db 101 +db 110 +db 116 +db 32 +db 100 +db 105 +db 97 +db 103 +db 110 +db 111 +db 115 +db 101 +db 115 +db 46 +db 10 +db 0 +align 1 +L988 label byte +db 32 +db 32 +db 32 +db 70 +db 65 +db 73 +db 76 +db 85 +db 82 +db 69 +db 115 +db 44 +db 32 +db 108 +db 105 +db 107 +db 101 +db 32 +db 50 +db 43 +db 50 +db 32 +db 61 +db 61 +db 32 +db 53 +db 32 +db 46 +db 0 +align 1 +L987 label byte +db 32 +db 32 +db 32 +db 83 +db 101 +db 114 +db 105 +db 111 +db 117 +db 115 +db 32 +db 68 +db 69 +db 70 +db 69 +db 67 +db 84 +db 115 +db 44 +db 32 +db 108 +db 105 +db 107 +db 101 +db 32 +db 108 +db 97 +db 99 +db 107 +db 32 +db 111 +db 102 +db 32 +db 97 +db 32 +db 103 +db 117 +db 97 +db 114 +db 100 +db 32 +db 100 +db 105 +db 103 +db 105 +db 116 +db 44 +db 32 +db 97 +db 110 +db 100 +db 0 +align 1 +L986 label byte +db 32 +db 32 +db 32 +db 70 +db 76 +db 65 +db 87 +db 115 +db 44 +db 32 +db 108 +db 105 +db 107 +db 101 +db 32 +db 108 +db 97 +db 99 +db 107 +db 32 +db 111 +db 102 +db 32 +db 97 +db 32 +db 115 +db 116 +db 105 +db 99 +db 107 +db 121 +db 32 +db 98 +db 105 +db 116 +db 44 +db 0 +align 1 +L985 label byte +db 84 +db 104 +db 101 +db 32 +db 112 +db 114 +db 111 +db 103 +db 114 +db 97 +db 109 +db 32 +db 97 +db 116 +db 116 +db 101 +db 109 +db 112 +db 116 +db 115 +db 32 +db 116 +db 111 +db 32 +db 100 +db 105 +db 115 +db 99 +db 114 +db 105 +db 109 +db 105 +db 110 +db 97 +db 116 +db 101 +db 32 +db 97 +db 109 +db 111 +db 110 +db 103 +db 0 +align 1 +L982 label byte +db 32 +db 32 +db 32 +db 32 +db 32 +db 68 +db 101 +db 99 +db 105 +db 109 +db 97 +db 108 +db 45 +db 66 +db 105 +db 110 +db 97 +db 114 +db 121 +db 32 +db 99 +db 111 +db 110 +db 118 +db 101 +db 114 +db 115 +db 105 +db 111 +db 110 +db 32 +db 105 +db 115 +db 32 +db 78 +db 79 +db 84 +db 32 +db 89 +db 69 +db 84 +db 32 +db 116 +db 101 +db 115 +db 116 +db 101 +db 100 +db 32 +db 102 +db 111 +db 114 +db 32 +db 97 +db 99 +db 99 +db 117 +db 114 +db 97 +db 99 +db 121 +db 46 +db 0 +align 1 +L981 label byte +db 32 +db 32 +db 32 +db 32 +db 32 +db 69 +db 120 +db 116 +db 114 +db 97 +db 45 +db 112 +db 114 +db 101 +db 99 +db 105 +db 115 +db 101 +db 32 +db 115 +db 117 +db 98 +db 101 +db 120 +db 112 +db 114 +db 101 +db 115 +db 115 +db 105 +db 111 +db 110 +db 115 +db 32 +db 97 +db 114 +db 101 +db 32 +db 114 +db 101 +db 118 +db 101 +db 97 +db 108 +db 101 +db 100 +db 32 +db 98 +db 117 +db 116 +db 32 +db 78 +db 79 +db 84 +db 32 +db 89 +db 69 +db 84 +db 32 +db 116 +db 101 +db 115 +db 116 +db 101 +db 100 +db 46 +db 0 +align 1 +L980 label byte +db 32 +db 32 +db 32 +db 32 +db 32 +db 83 +db 113 +db 114 +db 116 +db 32 +db 105 +db 115 +db 32 +db 116 +db 101 +db 115 +db 116 +db 101 +db 100 +db 46 +db 32 +db 32 +db 89 +db 94 +db 88 +db 32 +db 105 +db 115 +db 32 +db 110 +db 111 +db 116 +db 32 +db 116 +db 101 +db 115 +db 116 +db 101 +db 100 +db 46 +db 0 +align 1 +L979 label byte +db 9 +db 97 +db 110 +db 100 +db 32 +db 102 +db 111 +db 114 +db 32 +db 99 +db 111 +db 110 +db 116 +db 97 +db 109 +db 105 +db 110 +db 97 +db 116 +db 105 +db 111 +db 110 +db 32 +db 119 +db 105 +db 116 +db 104 +db 32 +db 112 +db 115 +db 101 +db 117 +db 100 +db 111 +db 45 +db 122 +db 101 +db 114 +db 111 +db 115 +db 46 +db 0 +align 1 +L978 label byte +db 32 +db 32 +db 32 +db 32 +db 32 +db 67 +db 111 +db 109 +db 112 +db 97 +db 114 +db 105 +db 115 +db 105 +db 111 +db 110 +db 115 +db 32 +db 97 +db 114 +db 101 +db 32 +db 99 +db 104 +db 101 +db 99 +db 107 +db 101 +db 100 +db 32 +db 102 +db 111 +db 114 +db 32 +db 99 +db 111 +db 110 +db 115 +db 105 +db 115 +db 116 +db 101 +db 110 +db 99 +db 121 +db 32 +db 119 +db 105 +db 116 +db 104 +db 32 +db 115 +db 117 +db 98 +db 116 +db 114 +db 97 +db 99 +db 116 +db 105 +db 111 +db 110 +db 0 +align 1 +L977 label byte +db 32 +db 32 +db 32 +db 32 +db 32 +db 86 +db 48 +db 32 +db 32 +db 116 +db 101 +db 108 +db 108 +db 115 +db 44 +db 32 +db 114 +db 111 +db 117 +db 103 +db 104 +db 108 +db 121 +db 44 +db 32 +db 119 +db 104 +db 101 +db 116 +db 104 +db 101 +db 114 +db 32 +db 32 +db 73 +db 110 +db 102 +db 105 +db 110 +db 105 +db 116 +db 121 +db 32 +db 32 +db 105 +db 115 +db 32 +db 114 +db 101 +db 112 +db 114 +db 101 +db 115 +db 101 +db 110 +db 116 +db 101 +db 100 +db 46 +db 0 +align 1 +L976 label byte +db 32 +db 32 +db 32 +db 32 +db 32 +db 86 +db 32 +db 61 +db 32 +db 97 +db 110 +db 32 +db 111 +db 118 +db 101 +db 114 +db 102 +db 108 +db 111 +db 119 +db 32 +db 116 +db 104 +db 114 +db 101 +db 115 +db 104 +db 111 +db 108 +db 100 +db 44 +db 32 +db 114 +db 111 +db 117 +db 103 +db 104 +db 108 +db 121 +db 46 +db 0 +align 1 +L975 label byte +db 32 +db 32 +db 32 +db 32 +db 32 +db 69 +db 48 +db 32 +db 97 +db 110 +db 100 +db 32 +db 80 +db 115 +db 101 +db 117 +db 100 +db 111 +db 90 +db 101 +db 114 +db 111 +db 32 +db 116 +db 101 +db 108 +db 108 +db 32 +db 119 +db 104 +db 101 +db 116 +db 104 +db 101 +db 114 +db 32 +db 117 +db 110 +db 100 +db 101 +db 114 +db 102 +db 108 +db 111 +db 119 +db 32 +db 105 +db 115 +db 32 +db 97 +db 98 +db 114 +db 117 +db 112 +db 116 +db 44 +db 32 +db 103 +db 114 +db 97 +db 100 +db 117 +db 97 +db 108 +db 44 +db 32 +db 111 +db 114 +db 32 +db 102 +db 117 +db 122 +db 122 +db 121 +db 46 +db 0 +align 1 +L974 label byte +db 32 +db 32 +db 32 +db 32 +db 32 +db 85 +db 110 +db 100 +db 101 +db 114 +db 102 +db 108 +db 111 +db 119 +db 84 +db 104 +db 114 +db 101 +db 115 +db 104 +db 111 +db 108 +db 100 +db 32 +db 61 +db 32 +db 97 +db 110 +db 32 +db 117 +db 110 +db 100 +db 101 +db 114 +db 102 +db 108 +db 111 +db 119 +db 32 +db 116 +db 104 +db 114 +db 101 +db 115 +db 104 +db 111 +db 108 +db 100 +db 46 +db 0 +align 1 +L973 label byte +db 32 +db 32 +db 32 +db 32 +db 32 +db 87 +db 104 +db 101 +db 116 +db 104 +db 101 +db 114 +db 32 +db 97 +db 32 +db 83 +db 116 +db 105 +db 99 +db 107 +db 121 +db 32 +db 66 +db 105 +db 116 +db 32 +db 117 +db 115 +db 101 +db 100 +db 32 +db 99 +db 111 +db 114 +db 114 +db 101 +db 99 +db 116 +db 108 +db 121 +db 32 +db 102 +db 111 +db 114 +db 32 +db 114 +db 111 +db 117 +db 110 +db 100 +db 105 +db 110 +db 103 +db 46 +db 0 +align 1 +L972 label byte +db 9 +db 102 +db 111 +db 114 +db 32 +db 77 +db 117 +db 108 +db 116 +db 46 +db 44 +db 32 +db 68 +db 105 +db 118 +db 46 +db 44 +db 32 +db 65 +db 100 +db 100 +db 47 +db 83 +db 117 +db 98 +db 116 +db 46 +db 32 +db 97 +db 110 +db 100 +db 32 +db 83 +db 113 +db 114 +db 116 +db 46 +db 0 +align 1 +L971 label byte +db 32 +db 32 +db 32 +db 32 +db 32 +db 87 +db 104 +db 101 +db 116 +db 104 +db 101 +db 114 +db 32 +db 97 +db 114 +db 105 +db 116 +db 104 +db 109 +db 101 +db 116 +db 105 +db 99 +db 32 +db 105 +db 115 +db 32 +db 99 +db 104 +db 111 +db 112 +db 112 +db 101 +db 100 +db 44 +db 32 +db 99 +db 111 +db 114 +db 114 +db 101 +db 99 +db 116 +db 108 +db 121 +db 32 +db 114 +db 111 +db 117 +db 110 +db 100 +db 101 +db 100 +db 44 +db 32 +db 111 +db 114 +db 32 +db 115 +db 111 +db 109 +db 101 +db 116 +db 104 +db 105 +db 110 +db 103 +db 32 +db 101 +db 108 +db 115 +db 101 +db 0 +align 1 +L970 label byte +db 32 +db 32 +db 32 +db 32 +db 32 +db 65 +db 100 +db 101 +db 113 +db 117 +db 97 +db 99 +db 121 +db 32 +db 111 +db 102 +db 32 +db 103 +db 117 +db 97 +db 114 +db 100 +db 32 +db 100 +db 105 +db 103 +db 105 +db 116 +db 115 +db 32 +db 102 +db 111 +db 114 +db 32 +db 77 +db 117 +db 108 +db 116 +db 46 +db 44 +db 32 +db 68 +db 105 +db 118 +db 46 +db 32 +db 97 +db 110 +db 100 +db 32 +db 83 +db 117 +db 98 +db 116 +db 46 +db 0 +align 1 +L969 label byte +db 32 +db 32 +db 32 +db 32 +db 32 +db 85 +db 49 +db 32 +db 61 +db 32 +db 49 +db 47 +db 82 +db 97 +db 100 +db 105 +db 120 +db 94 +db 80 +db 114 +db 101 +db 99 +db 105 +db 115 +db 105 +db 111 +db 110 +db 32 +db 61 +db 32 +db 79 +db 110 +db 101 +db 32 +db 85 +db 108 +db 112 +db 32 +db 111 +db 102 +db 32 +db 110 +db 117 +db 109 +db 98 +db 101 +db 114 +db 115 +db 32 +db 97 +db 32 +db 108 +db 105 +db 116 +db 116 +db 108 +db 101 +db 32 +db 108 +db 101 +db 115 +db 115 +db 32 +db 116 +db 104 +db 97 +db 110 +db 32 +db 49 +db 46 +db 48 +db 32 +db 46 +db 0 +align 1 +L968 label byte +db 9 +db 40 +db 79 +db 110 +db 101 +db 85 +db 108 +db 112 +db 110 +db 105 +db 116 +db 32 +db 105 +db 110 +db 32 +db 116 +db 104 +db 101 +db 32 +db 76 +db 97 +db 115 +db 116 +db 32 +db 80 +db 108 +db 97 +db 99 +db 101 +db 41 +db 32 +db 111 +db 102 +db 32 +db 49 +db 46 +db 48 +db 48 +db 48 +db 120 +db 120 +db 120 +db 32 +db 46 +db 0 +align 1 +L967 label byte +db 32 +db 32 +db 32 +db 32 +db 32 +db 85 +db 50 +db 32 +db 61 +db 32 +db 82 +db 97 +db 100 +db 105 +db 120 +db 47 +db 82 +db 97 +db 100 +db 105 +db 120 +db 94 +db 80 +db 114 +db 101 +db 99 +db 105 +db 115 +db 105 +db 111 +db 110 +db 32 +db 61 +db 32 +db 79 +db 110 +db 101 +db 32 +db 85 +db 108 +db 112 +db 0 +align 1 +L966 label byte +db 32 +db 32 +db 32 +db 32 +db 32 +db 80 +db 114 +db 101 +db 99 +db 105 +db 115 +db 105 +db 111 +db 110 +db 32 +db 61 +db 32 +db 110 +db 117 +db 109 +db 98 +db 101 +db 114 +db 32 +db 111 +db 102 +db 32 +db 115 +db 105 +db 103 +db 110 +db 105 +db 102 +db 105 +db 99 +db 97 +db 110 +db 116 +db 32 +db 100 +db 105 +db 103 +db 105 +db 116 +db 115 +db 32 +db 99 +db 97 +db 114 +db 114 +db 105 +db 101 +db 100 +db 46 +db 0 +align 1 +L965 label byte +db 32 +db 32 +db 32 +db 32 +db 32 +db 82 +db 97 +db 100 +db 105 +db 120 +db 32 +db 61 +db 32 +db 49 +db 44 +db 32 +db 50 +db 44 +db 32 +db 52 +db 44 +db 32 +db 56 +db 44 +db 32 +db 49 +db 48 +db 44 +db 32 +db 49 +db 54 +db 44 +db 32 +db 49 +db 48 +db 48 +db 44 +db 32 +db 50 +db 53 +db 54 +db 32 +db 46 +db 46 +db 46 +db 0 +align 1 +L964 label byte +db 82 +db 117 +db 110 +db 110 +db 105 +db 110 +db 103 +db 32 +db 116 +db 104 +db 105 +db 115 +db 32 +db 112 +db 114 +db 111 +db 103 +db 114 +db 97 +db 109 +db 32 +db 115 +db 104 +db 111 +db 117 +db 108 +db 100 +db 32 +db 114 +db 101 +db 118 +db 101 +db 97 +db 108 +db 32 +db 116 +db 104 +db 101 +db 115 +db 101 +db 32 +db 99 +db 104 +db 97 +db 114 +db 97 +db 99 +db 116 +db 101 +db 114 +db 105 +db 115 +db 116 +db 105 +db 99 +db 115 +db 58 +db 0 +align 1 +L961 label byte +db 9 +db 79 +db 116 +db 104 +db 101 +db 114 +db 32 +db 114 +db 101 +db 108 +db 101 +db 118 +db 97 +db 110 +db 116 +db 32 +db 99 +db 111 +db 109 +db 112 +db 105 +db 108 +db 101 +db 114 +db 32 +db 111 +db 112 +db 116 +db 105 +db 111 +db 110 +db 115 +db 58 +db 0 +align 1 +L960 label byte +db 9 +db 79 +db 112 +db 116 +db 105 +db 109 +db 105 +db 122 +db 97 +db 116 +db 105 +db 111 +db 110 +db 32 +db 108 +db 101 +db 118 +db 101 +db 108 +db 58 +db 10 +db 0 +align 1 +L959 label byte +db 9 +db 67 +db 111 +db 109 +db 112 +db 105 +db 108 +db 101 +db 114 +db 58 +db 10 +db 0 +align 1 +L958 label byte +db 9 +db 67 +db 111 +db 109 +db 112 +db 117 +db 116 +db 101 +db 114 +db 58 +db 10 +db 0 +align 1 +L957 label byte +db 9 +db 86 +db 101 +db 114 +db 115 +db 105 +db 111 +db 110 +db 58 +db 9 +db 49 +db 48 +db 32 +db 70 +db 101 +db 98 +db 114 +db 117 +db 97 +db 114 +db 121 +db 32 +db 49 +db 57 +db 56 +db 57 +db 59 +db 0 +align 1 +L956 label byte +db 9 +db 80 +db 114 +db 101 +db 99 +db 105 +db 115 +db 105 +db 111 +db 110 +db 58 +db 9 +db 100 +db 111 +db 117 +db 98 +db 108 +db 101 +db 59 +db 0 +align 1 +L955 label byte +db 73 +db 110 +db 32 +db 100 +db 111 +db 105 +db 110 +db 103 +db 32 +db 115 +db 111 +db 44 +db 32 +db 112 +db 108 +db 101 +db 97 +db 115 +db 101 +db 32 +db 105 +db 110 +db 99 +db 108 +db 117 +db 100 +db 101 +db 32 +db 116 +db 104 +db 101 +db 32 +db 102 +db 111 +db 108 +db 108 +db 111 +db 119 +db 105 +db 110 +db 103 +db 32 +db 105 +db 110 +db 102 +db 111 +db 114 +db 109 +db 97 +db 116 +db 105 +db 111 +db 110 +db 58 +db 0 +align 1 +L954 label byte +db 9 +db 83 +db 97 +db 110 +db 32 +db 70 +db 114 +db 97 +db 110 +db 99 +db 105 +db 115 +db 99 +db 111 +db 44 +db 32 +db 67 +db 65 +db 32 +db 57 +db 52 +db 49 +db 52 +db 51 +db 45 +db 48 +db 55 +db 48 +db 52 +db 44 +db 32 +db 85 +db 83 +db 65 +db 10 +db 0 +align 1 +L953 label byte +db 9 +db 85 +db 110 +db 105 +db 118 +db 101 +db 114 +db 115 +db 105 +db 116 +db 121 +db 32 +db 111 +db 102 +db 32 +db 67 +db 97 +db 108 +db 105 +db 102 +db 111 +db 114 +db 110 +db 105 +db 97 +db 0 +align 1 +L952 label byte +db 9 +db 67 +db 111 +db 109 +db 112 +db 117 +db 116 +db 101 +db 114 +db 32 +db 67 +db 101 +db 110 +db 116 +db 101 +db 114 +db 32 +db 85 +db 45 +db 55 +db 54 +db 0 +align 1 +L951 label byte +db 9 +db 82 +db 105 +db 99 +db 104 +db 97 +db 114 +db 100 +db 32 +db 75 +db 97 +db 114 +db 112 +db 105 +db 110 +db 115 +db 107 +db 105 +db 0 +align 1 +L950 label byte +db 80 +db 108 +db 101 +db 97 +db 115 +db 101 +db 32 +db 115 +db 101 +db 110 +db 100 +db 32 +db 115 +db 117 +db 103 +db 103 +db 101 +db 115 +db 116 +db 105 +db 111 +db 110 +db 115 +db 32 +db 97 +db 110 +db 100 +db 32 +db 105 +db 110 +db 116 +db 101 +db 114 +db 101 +db 115 +db 116 +db 105 +db 110 +db 103 +db 32 +db 114 +db 101 +db 115 +db 117 +db 108 +db 116 +db 115 +db 32 +db 116 +db 111 +db 0 +align 1 +L949 label byte +db 99 +db 111 +db 112 +db 101 +db 32 +db 119 +db 105 +db 116 +db 104 +db 32 +db 117 +db 110 +db 97 +db 110 +db 116 +db 105 +db 99 +db 105 +db 112 +db 97 +db 116 +db 101 +db 100 +db 32 +db 97 +db 110 +db 100 +db 32 +db 110 +db 101 +db 119 +db 108 +db 121 +db 32 +db 117 +db 110 +db 99 +db 111 +db 118 +db 101 +db 114 +db 101 +db 100 +db 32 +db 97 +db 114 +db 105 +db 116 +db 104 +db 109 +db 101 +db 116 +db 105 +db 99 +db 32 +db 112 +db 97 +db 116 +db 104 +db 111 +db 108 +db 111 +db 103 +db 105 +db 101 +db 115 +db 46 +db 10 +db 0 +align 1 +L948 label byte +db 85 +db 115 +db 101 +db 114 +db 115 +db 32 +db 97 +db 114 +db 101 +db 32 +db 105 +db 110 +db 118 +db 105 +db 116 +db 101 +db 100 +db 32 +db 116 +db 111 +db 32 +db 104 +db 101 +db 108 +db 112 +db 32 +db 100 +db 101 +db 98 +db 117 +db 103 +db 32 +db 97 +db 110 +db 100 +db 32 +db 97 +db 117 +db 103 +db 109 +db 101 +db 110 +db 116 +db 32 +db 116 +db 104 +db 105 +db 115 +db 32 +db 112 +db 114 +db 111 +db 103 +db 114 +db 97 +db 109 +db 32 +db 115 +db 111 +db 32 +db 105 +db 116 +db 32 +db 119 +db 105 +db 108 +db 108 +db 0 +align 1 +L945 label byte +db 65 +db 110 +db 115 +db 119 +db 101 +db 114 +db 32 +db 113 +db 117 +db 101 +db 115 +db 116 +db 105 +db 111 +db 110 +db 115 +db 32 +db 119 +db 105 +db 116 +db 104 +db 32 +db 89 +db 44 +db 32 +db 121 +db 44 +db 32 +db 78 +db 32 +db 111 +db 114 +db 32 +db 110 +db 32 +db 40 +db 117 +db 110 +db 108 +db 101 +db 115 +db 115 +db 32 +db 111 +db 116 +db 104 +db 101 +db 114 +db 119 +db 105 +db 115 +db 101 +db 32 +db 105 +db 110 +db 100 +db 105 +db 99 +db 97 +db 116 +db 101 +db 100 +db 41 +db 46 +db 10 +db 0 +align 1 +L944 label byte +db 97 +db 109 +db 101 +db 110 +db 100 +db 32 +db 105 +db 116 +db 32 +db 116 +db 111 +db 32 +db 109 +db 97 +db 107 +db 101 +db 32 +db 102 +db 117 +db 114 +db 116 +db 104 +db 101 +db 114 +db 32 +db 112 +db 114 +db 111 +db 103 +db 114 +db 101 +db 115 +db 115 +db 46 +db 10 +db 0 +align 1 +L943 label byte +db 112 +db 114 +db 111 +db 103 +db 114 +db 97 +db 109 +db 32 +db 97 +db 110 +db 121 +db 119 +db 97 +db 121 +db 32 +db 116 +db 111 +db 32 +db 115 +db 101 +db 101 +db 32 +db 104 +db 111 +db 119 +db 32 +db 109 +db 97 +db 110 +db 121 +db 32 +db 109 +db 105 +db 108 +db 101 +db 115 +db 116 +db 111 +db 110 +db 101 +db 115 +db 32 +db 105 +db 116 +db 32 +db 112 +db 97 +db 115 +db 115 +db 101 +db 115 +db 44 +db 32 +db 97 +db 110 +db 100 +db 32 +db 116 +db 104 +db 101 +db 110 +db 0 +align 1 +L942 label byte +db 119 +db 97 +db 114 +db 110 +db 105 +db 110 +db 103 +db 46 +db 32 +db 32 +db 73 +db 102 +db 32 +db 112 +db 101 +db 114 +db 115 +db 117 +db 97 +db 115 +db 105 +db 111 +db 110 +db 32 +db 97 +db 118 +db 97 +db 105 +db 108 +db 115 +db 32 +db 110 +db 97 +db 117 +db 103 +db 104 +db 116 +db 44 +db 32 +db 100 +db 111 +db 110 +db 39 +db 116 +db 32 +db 100 +db 101 +db 115 +db 112 +db 97 +db 105 +db 114 +db 32 +db 98 +db 117 +db 116 +db 32 +db 114 +db 117 +db 110 +db 32 +db 116 +db 104 +db 105 +db 115 +db 0 +align 1 +L941 label byte +db 116 +db 111 +db 32 +db 112 +db 101 +db 114 +db 115 +db 101 +db 118 +db 101 +db 114 +db 101 +db 32 +db 119 +db 105 +db 116 +db 104 +db 32 +db 97 +db 32 +db 115 +db 117 +db 114 +db 114 +db 111 +db 103 +db 97 +db 116 +db 101 +db 32 +db 118 +db 97 +db 108 +db 117 +db 101 +db 32 +db 97 +db 102 +db 116 +db 101 +db 114 +db 44 +db 32 +db 112 +db 101 +db 114 +db 104 +db 97 +db 112 +db 115 +db 44 +db 32 +db 100 +db 105 +db 115 +db 112 +db 108 +db 97 +db 121 +db 105 +db 110 +db 103 +db 32 +db 115 +db 111 +db 109 +db 101 +db 0 +align 1 +L940 label byte +db 101 +db 114 +db 114 +db 111 +db 114 +db 32 +db 108 +db 105 +db 107 +db 101 +db 32 +db 79 +db 118 +db 101 +db 114 +db 47 +db 85 +db 110 +db 100 +db 101 +db 114 +db 102 +db 108 +db 111 +db 119 +db 32 +db 111 +db 114 +db 32 +db 68 +db 105 +db 118 +db 105 +db 115 +db 105 +db 111 +db 110 +db 32 +db 98 +db 121 +db 32 +db 90 +db 101 +db 114 +db 111 +db 32 +db 111 +db 99 +db 99 +db 117 +db 114 +db 115 +db 44 +db 32 +db 98 +db 117 +db 116 +db 32 +db 114 +db 97 +db 116 +db 104 +db 101 +db 114 +db 0 +align 1 +L939 label byte +db 116 +db 114 +db 121 +db 32 +db 116 +db 111 +db 32 +db 112 +db 101 +db 114 +db 115 +db 117 +db 97 +db 100 +db 101 +db 32 +db 116 +db 104 +db 101 +db 32 +db 99 +db 111 +db 109 +db 112 +db 117 +db 116 +db 101 +db 114 +db 32 +db 78 +db 79 +db 84 +db 32 +db 116 +db 111 +db 32 +db 116 +db 101 +db 114 +db 109 +db 105 +db 110 +db 97 +db 116 +db 101 +db 32 +db 101 +db 120 +db 101 +db 99 +db 117 +db 116 +db 105 +db 111 +db 110 +db 32 +db 119 +db 104 +db 101 +db 110 +db 32 +db 97 +db 110 +db 0 +align 1 +L938 label byte +db 32 +db 32 +db 32 +db 32 +db 96 +db 69 +db 78 +db 68 +db 32 +db 79 +db 70 +db 32 +db 84 +db 69 +db 83 +db 84 +db 39 +db 44 +db 10 +db 0 +align 1 +L937 label byte +db 76 +db 101 +db 115 +db 116 +db 32 +db 116 +db 104 +db 105 +db 115 +db 32 +db 112 +db 114 +db 111 +db 103 +db 114 +db 97 +db 109 +db 32 +db 115 +db 116 +db 111 +db 112 +db 32 +db 112 +db 114 +db 101 +db 109 +db 97 +db 116 +db 117 +db 114 +db 101 +db 108 +db 121 +db 44 +db 32 +db 105 +db 46 +db 101 +db 46 +db 32 +db 98 +db 101 +db 102 +db 111 +db 114 +db 101 +db 32 +db 100 +db 105 +db 115 +db 112 +db 108 +db 97 +db 121 +db 105 +db 110 +db 103 +db 10 +db 0 +align 1 +L934 label byte +db 37 +db 115 +db 10 +db 0 +align 1 +L929 label byte +db 32 +db 32 +db 32 +db 80 +db 76 +db 69 +db 65 +db 83 +db 69 +db 32 +db 78 +db 79 +db 84 +db 73 +db 70 +db 89 +db 32 +db 75 +db 65 +db 82 +db 80 +db 73 +db 78 +db 75 +db 83 +db 73 +db 33 +db 10 +db 0 +align 1 +L928 label byte +db 37 +db 115 +db 32 +db 116 +db 101 +db 115 +db 116 +db 32 +db 97 +db 112 +db 112 +db 101 +db 97 +db 114 +db 115 +db 32 +db 116 +db 111 +db 32 +db 98 +db 101 +db 32 +db 105 +db 110 +db 99 +db 111 +db 110 +db 115 +db 105 +db 115 +db 116 +db 101 +db 110 +db 116 +db 46 +db 46 +db 46 +db 10 +db 0 +align 1 +L926 label byte +db 9 +db 100 +db 105 +db 102 +db 102 +db 101 +db 114 +db 115 +db 32 +db 102 +db 114 +db 111 +db 109 +db 32 +db 90 +db 32 +db 42 +db 32 +db 49 +db 32 +db 61 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 10 +db 0 +align 1 +L925 label byte +db 9 +db 67 +db 111 +db 109 +db 112 +db 97 +db 114 +db 105 +db 115 +db 111 +db 110 +db 32 +db 97 +db 108 +db 108 +db 101 +db 103 +db 101 +db 115 +db 32 +db 116 +db 104 +db 97 +db 116 +db 32 +db 49 +db 32 +db 42 +db 32 +db 90 +db 32 +db 61 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 10 +db 0 +align 1 +L924 label byte +db 77 +db 117 +db 108 +db 116 +db 105 +db 112 +db 108 +db 105 +db 99 +db 97 +db 116 +db 105 +db 111 +db 110 +db 32 +db 100 +db 111 +db 101 +db 115 +db 32 +db 110 +db 111 +db 116 +db 32 +db 99 +db 111 +db 109 +db 109 +db 117 +db 116 +db 101 +db 33 +db 10 +db 0 +align 1 +L919 label byte +db 90 +db 32 +db 47 +db 32 +db 49 +db 32 +db 61 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 10 +db 0 +align 1 +L916 label byte +db 49 +db 32 +db 42 +db 32 +db 90 +db 32 +db 61 +db 61 +db 32 +db 37 +db 103 +db 10 +db 0 +align 1 +L913 label byte +db 90 +db 32 +db 42 +db 32 +db 49 +db 32 +db 61 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 32 +db 0 +align 1 +L910 label byte +db 37 +db 46 +db 49 +db 55 +db 101 +db 10 +db 9 +db 99 +db 111 +db 109 +db 112 +db 97 +db 114 +db 101 +db 115 +db 32 +db 100 +db 105 +db 102 +db 102 +db 101 +db 114 +db 101 +db 110 +db 116 +db 32 +db 102 +db 114 +db 111 +db 109 +db 32 +db 32 +db 0 +align 1 +L909 label byte +db 87 +db 104 +db 97 +db 116 +db 32 +db 112 +db 114 +db 105 +db 110 +db 116 +db 115 +db 32 +db 97 +db 115 +db 32 +db 90 +db 32 +db 61 +db 32 +db 0 +align 1 +L904 label byte +db 84 +db 104 +db 105 +db 115 +db 32 +db 105 +db 115 +db 32 +db 97 +db 32 +db 68 +db 69 +db 70 +db 69 +db 67 +db 84 +db 33 +db 10 +db 0 +align 1 +L901 label byte +db 84 +db 104 +db 105 +db 115 +db 32 +db 105 +db 115 +db 32 +db 97 +db 32 +db 86 +db 69 +db 82 +db 89 +db 32 +db 83 +db 69 +db 82 +db 73 +db 79 +db 85 +db 83 +db 32 +db 68 +db 69 +db 70 +db 69 +db 67 +db 84 +db 33 +db 10 +db 0 +align 1 +L895 label byte +db 32 +db 104 +db 97 +db 115 +db 32 +db 78 +db 79 +db 84 +db 32 +db 106 +db 117 +db 115 +db 116 +db 32 +db 98 +db 101 +db 101 +db 110 +db 32 +db 115 +db 105 +db 103 +db 110 +db 97 +db 108 +db 101 +db 100 +db 46 +db 10 +db 0 +align 1 +L894 label byte +db 84 +db 104 +db 105 +db 115 +db 32 +db 105 +db 115 +db 32 +db 79 +db 46 +db 75 +db 46 +db 44 +db 32 +db 112 +db 114 +db 111 +db 118 +db 105 +db 100 +db 101 +db 100 +db 32 +db 79 +db 118 +db 101 +db 114 +db 47 +db 85 +db 110 +db 100 +db 101 +db 114 +db 102 +db 108 +db 111 +db 119 +db 0 +align 1 +L891 label byte +db 87 +db 104 +db 97 +db 116 +db 32 +db 116 +db 104 +db 101 +db 32 +db 109 +db 97 +db 99 +db 104 +db 105 +db 110 +db 101 +db 32 +db 103 +db 101 +db 116 +db 115 +db 32 +db 102 +db 111 +db 114 +db 32 +db 40 +db 90 +db 32 +db 43 +db 32 +db 90 +db 41 +db 32 +db 47 +db 32 +db 90 +db 32 +db 105 +db 115 +db 32 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 32 +db 46 +db 10 +db 0 +align 1 +L887 label byte +db 40 +db 90 +db 32 +db 43 +db 32 +db 90 +db 41 +db 32 +db 47 +db 32 +db 90 +db 32 +db 115 +db 104 +db 111 +db 117 +db 108 +db 100 +db 32 +db 98 +db 101 +db 32 +db 115 +db 97 +db 102 +db 101 +db 46 +db 10 +db 0 +align 1 +L886 label byte +db 83 +db 105 +db 110 +db 99 +db 101 +db 32 +db 99 +db 111 +db 109 +db 112 +db 97 +db 114 +db 105 +db 115 +db 111 +db 110 +db 32 +db 100 +db 101 +db 110 +db 105 +db 101 +db 115 +db 32 +db 90 +db 32 +db 61 +db 32 +db 48 +db 44 +db 32 +db 101 +db 118 +db 97 +db 108 +db 117 +db 97 +db 116 +db 105 +db 110 +db 103 +db 32 +db 0 +align 1 +L882 label byte +db 83 +db 105 +db 109 +db 105 +db 108 +db 97 +db 114 +db 32 +db 100 +db 105 +db 115 +db 99 +db 114 +db 101 +db 112 +db 97 +db 110 +db 99 +db 105 +db 101 +db 115 +db 32 +db 104 +db 97 +db 118 +db 101 +db 32 +db 111 +db 99 +db 99 +db 117 +db 114 +db 114 +db 101 +db 100 +db 32 +db 37 +db 100 +db 32 +db 116 +db 105 +db 109 +db 101 +db 115 +db 46 +db 10 +db 0 +align 1 +L872 label byte +db 9 +db 9 +db 116 +db 104 +db 101 +db 121 +db 32 +db 100 +db 105 +db 102 +db 102 +db 101 +db 114 +db 32 +db 98 +db 121 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 32 +db 46 +db 10 +db 0 +align 1 +L871 label byte +db 9 +db 119 +db 104 +db 105 +db 99 +db 104 +db 32 +db 99 +db 111 +db 109 +db 112 +db 97 +db 114 +db 101 +db 100 +db 32 +db 117 +db 110 +db 101 +db 113 +db 117 +db 97 +db 108 +db 32 +db 116 +db 111 +db 32 +db 99 +db 111 +db 114 +db 114 +db 101 +db 99 +db 116 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 32 +db 59 +db 10 +db 0 +align 1 +L870 label byte +db 9 +db 121 +db 105 +db 101 +db 108 +db 100 +db 101 +db 100 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 59 +db 10 +db 0 +align 1 +L869 label byte +db 9 +db 40 +db 37 +db 46 +db 49 +db 55 +db 101 +db 41 +db 32 +db 94 +db 32 +db 40 +db 37 +db 46 +db 49 +db 55 +db 101 +db 41 +db 10 +db 0 +align 1 +L868 label byte +db 99 +db 111 +db 109 +db 112 +db 117 +db 116 +db 105 +db 110 +db 103 +db 10 +db 0 +align 1 +L867 label byte +db 87 +db 65 +db 82 +db 78 +db 73 +db 78 +db 71 +db 58 +db 32 +db 32 +db 99 +db 111 +db 109 +db 112 +db 117 +db 116 +db 105 +db 110 +db 103 +db 10 +db 0 +align 1 +L849 label byte +db 9 +db 105 +db 110 +db 115 +db 116 +db 101 +db 97 +db 100 +db 32 +db 111 +db 102 +db 32 +db 99 +db 111 +db 114 +db 114 +db 101 +db 99 +db 116 +db 32 +db 118 +db 97 +db 108 +db 117 +db 101 +db 32 +db 48 +db 32 +db 46 +db 10 +db 0 +align 1 +L848 label byte +db 115 +db 113 +db 114 +db 116 +db 40 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 41 +db 32 +db 45 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 32 +db 32 +db 61 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 10 +db 0 +align 4 +L840 label byte +dd 088e368f1H +dd 03ed4f8b5H +align 1 +L838 label byte +db 37 +db 115 +db 58 +db 32 +db 32 +db 37 +db 115 +db 0 +align 1 +L837 label byte +db 70 +db 76 +db 65 +db 87 +db 0 +align 1 +L836 label byte +db 68 +db 69 +db 70 +db 69 +db 67 +db 84 +db 0 +align 1 +L835 label byte +db 83 +db 69 +db 82 +db 73 +db 79 +db 85 +db 83 +db 32 +db 68 +db 69 +db 70 +db 69 +db 67 +db 84 +db 0 +align 1 +L834 label byte +db 70 +db 65 +db 73 +db 76 +db 85 +db 82 +db 69 +db 0 +align 1 +L828 label byte +db 32 +db 32 +db 32 +db 32 +db 32 +db 32 +db 32 +db 32 +db 32 +db 32 +db 80 +db 97 +db 103 +db 101 +db 58 +db 32 +db 37 +db 100 +db 10 +db 10 +db 0 +align 1 +L827 label byte +db 10 +db 68 +db 105 +db 97 +db 103 +db 110 +db 111 +db 115 +db 105 +db 115 +db 32 +db 114 +db 101 +db 115 +db 117 +db 109 +db 101 +db 115 +db 32 +db 97 +db 102 +db 116 +db 101 +db 114 +db 32 +db 109 +db 105 +db 108 +db 101 +db 115 +db 116 +db 111 +db 110 +db 101 +db 32 +db 78 +db 117 +db 109 +db 98 +db 101 +db 114 +db 32 +db 37 +db 100 +db 0 +align 4 +L825 label byte +dd 00H +dd 0bff00000H +align 1 +L820 label byte +db 69 +db 78 +db 68 +db 32 +db 79 +db 70 +db 32 +db 84 +db 69 +db 83 +db 84 +db 46 +db 10 +db 0 +align 1 +L819 label byte +db 10 +db 65 +db 32 +db 116 +db 111 +db 116 +db 97 +db 108 +db 32 +db 111 +db 102 +db 32 +db 37 +db 100 +db 32 +db 102 +db 108 +db 111 +db 97 +db 116 +db 105 +db 110 +db 103 +db 32 +db 112 +db 111 +db 105 +db 110 +db 116 +db 32 +db 101 +db 120 +db 99 +db 101 +db 112 +db 116 +db 105 +db 111 +db 110 +db 115 +db 32 +db 119 +db 101 +db 114 +db 101 +db 32 +db 114 +db 101 +db 103 +db 105 +db 115 +db 116 +db 101 +db 114 +db 101 +db 100 +db 46 +db 10 +db 0 +align 1 +L816 label byte +db 84 +db 104 +db 101 +db 32 +db 97 +db 114 +db 105 +db 116 +db 104 +db 109 +db 101 +db 116 +db 105 +db 99 +db 32 +db 100 +db 105 +db 97 +db 103 +db 110 +db 111 +db 115 +db 101 +db 100 +db 32 +db 97 +db 112 +db 112 +db 101 +db 97 +db 114 +db 115 +db 32 +db 116 +db 111 +db 32 +db 98 +db 101 +db 32 +db 69 +db 120 +db 99 +db 101 +db 108 +db 108 +db 101 +db 110 +db 116 +db 33 +db 10 +db 0 +align 1 +L815 label byte +db 32 +db 100 +db 117 +db 114 +db 105 +db 110 +db 103 +db 32 +db 71 +db 114 +db 97 +db 100 +db 117 +db 97 +db 108 +db 32 +db 85 +db 110 +db 100 +db 101 +db 114 +db 102 +db 108 +db 111 +db 119 +db 46 +db 10 +db 0 +align 1 +L814 label byte +db 44 +db 10 +db 101 +db 120 +db 99 +db 101 +db 112 +db 116 +db 32 +db 102 +db 111 +db 114 +db 32 +db 112 +db 111 +db 115 +db 115 +db 105 +db 98 +db 108 +db 121 +db 32 +db 68 +db 111 +db 117 +db 98 +db 108 +db 101 +db 32 +db 82 +db 111 +db 117 +db 110 +db 100 +db 105 +db 110 +db 103 +db 0 +align 1 +L813 label byte +db 46 +db 10 +db 0 +align 1 +L810 label byte +db 56 +db 53 +db 52 +db 0 +align 1 +L809 label byte +db 55 +db 53 +db 52 +db 0 +align 1 +L806 label byte +db 116 +db 104 +db 101 +db 32 +db 112 +db 114 +db 111 +db 112 +db 111 +db 115 +db 101 +db 100 +db 32 +db 73 +db 69 +db 69 +db 69 +db 32 +db 115 +db 116 +db 97 +db 110 +db 100 +db 97 +db 114 +db 100 +db 32 +db 80 +db 0 +align 1 +L805 label byte +db 82 +db 111 +db 117 +db 110 +db 100 +db 105 +db 110 +db 103 +db 32 +db 97 +db 112 +db 112 +db 101 +db 97 +db 114 +db 115 +db 32 +db 116 +db 111 +db 32 +db 99 +db 111 +db 110 +db 102 +db 111 +db 114 +db 109 +db 32 +db 116 +db 111 +db 32 +db 0 +align 1 +L802 label byte +db 84 +db 104 +db 101 +db 32 +db 97 +db 114 +db 105 +db 116 +db 104 +db 109 +db 101 +db 116 +db 105 +db 99 +db 32 +db 100 +db 105 +db 97 +db 103 +db 110 +db 111 +db 115 +db 101 +db 100 +db 32 +db 115 +db 101 +db 101 +db 109 +db 115 +db 32 +db 83 +db 97 +db 116 +db 105 +db 115 +db 102 +db 97 +db 99 +db 116 +db 111 +db 114 +db 121 +db 46 +db 10 +db 0 +align 1 +L796 label byte +db 78 +db 111 +db 32 +db 102 +db 97 +db 105 +db 108 +db 117 +db 114 +db 101 +db 115 +db 44 +db 32 +db 100 +db 101 +db 102 +db 101 +db 99 +db 116 +db 115 +db 32 +db 110 +db 111 +db 114 +db 32 +db 102 +db 108 +db 97 +db 119 +db 115 +db 32 +db 104 +db 97 +db 118 +db 101 +db 32 +db 98 +db 101 +db 101 +db 110 +db 32 +db 100 +db 105 +db 115 +db 99 +db 111 +db 118 +db 101 +db 114 +db 101 +db 100 +db 46 +db 10 +db 0 +align 1 +L795 label byte +db 32 +db 112 +db 114 +db 111 +db 103 +db 114 +db 97 +db 109 +db 39 +db 115 +db 32 +db 115 +db 117 +db 98 +db 115 +db 101 +db 113 +db 117 +db 101 +db 110 +db 116 +db 32 +db 100 +db 105 +db 97 +db 103 +db 110 +db 111 +db 115 +db 101 +db 115 +db 46 +db 10 +db 0 +align 1 +L794 label byte +db 80 +db 111 +db 116 +db 101 +db 110 +db 116 +db 105 +db 97 +db 108 +db 108 +db 121 +db 32 +db 102 +db 97 +db 116 +db 97 +db 108 +db 32 +db 70 +db 65 +db 73 +db 76 +db 85 +db 82 +db 69 +db 32 +db 109 +db 97 +db 121 +db 32 +db 104 +db 97 +db 118 +db 101 +db 32 +db 115 +db 112 +db 111 +db 105 +db 108 +db 101 +db 100 +db 32 +db 116 +db 104 +db 105 +db 115 +db 0 +align 1 +L791 label byte +db 117 +db 110 +db 97 +db 99 +db 99 +db 101 +db 112 +db 116 +db 97 +db 98 +db 108 +db 101 +db 32 +db 83 +db 101 +db 114 +db 105 +db 111 +db 117 +db 115 +db 32 +db 68 +db 101 +db 102 +db 101 +db 99 +db 116 +db 115 +db 46 +db 10 +db 0 +align 1 +L790 label byte +db 84 +db 104 +db 101 +db 32 +db 97 +db 114 +db 105 +db 116 +db 104 +db 109 +db 101 +db 116 +db 105 +db 99 +db 32 +db 100 +db 105 +db 97 +db 103 +db 110 +db 111 +db 115 +db 101 +db 100 +db 32 +db 104 +db 97 +db 115 +db 32 +db 0 +align 1 +L786 label byte +db 100 +db 101 +db 115 +db 112 +db 105 +db 116 +db 101 +db 32 +db 105 +db 110 +db 99 +db 111 +db 110 +db 118 +db 101 +db 110 +db 105 +db 101 +db 110 +db 116 +db 32 +db 68 +db 101 +db 102 +db 101 +db 99 +db 116 +db 115 +db 46 +db 10 +db 0 +align 1 +L785 label byte +db 84 +db 104 +db 101 +db 32 +db 97 +db 114 +db 105 +db 116 +db 104 +db 109 +db 101 +db 116 +db 105 +db 99 +db 32 +db 100 +db 105 +db 97 +db 103 +db 110 +db 111 +db 115 +db 101 +db 100 +db 32 +db 109 +db 97 +db 121 +db 32 +db 98 +db 101 +db 32 +db 65 +db 99 +db 99 +db 101 +db 112 +db 116 +db 97 +db 98 +db 108 +db 101 +db 10 +db 0 +align 1 +L780 label byte +db 83 +db 97 +db 116 +db 105 +db 115 +db 102 +db 97 +db 99 +db 116 +db 111 +db 114 +db 121 +db 32 +db 116 +db 104 +db 111 +db 117 +db 103 +db 104 +db 32 +db 102 +db 108 +db 97 +db 119 +db 101 +db 100 +db 46 +db 10 +db 0 +align 1 +L779 label byte +db 84 +db 104 +db 101 +db 32 +db 97 +db 114 +db 105 +db 116 +db 104 +db 109 +db 101 +db 116 +db 105 +db 99 +db 32 +db 100 +db 105 +db 97 +db 103 +db 110 +db 111 +db 115 +db 101 +db 100 +db 32 +db 115 +db 101 +db 101 +db 109 +db 115 +db 32 +db 0 +align 1 +L768 label byte +db 84 +db 104 +db 101 +db 32 +db 110 +db 117 +db 109 +db 98 +db 101 +db 114 +db 32 +db 111 +db 102 +db 32 +db 32 +db 37 +db 45 +db 50 +db 57 +db 115 +db 32 +db 37 +db 100 +db 46 +db 10 +db 0 +align 1 +L761 label byte +db 70 +db 76 +db 65 +db 87 +db 115 +db 32 +db 32 +db 100 +db 105 +db 115 +db 99 +db 111 +db 118 +db 101 +db 114 +db 101 +db 100 +db 32 +db 61 +db 0 +align 1 +L760 label byte +db 68 +db 69 +db 70 +db 69 +db 67 +db 84 +db 115 +db 32 +db 32 +db 100 +db 105 +db 115 +db 99 +db 111 +db 118 +db 101 +db 114 +db 101 +db 100 +db 32 +db 61 +db 0 +align 1 +L759 label byte +db 83 +db 69 +db 82 +db 73 +db 79 +db 85 +db 83 +db 32 +db 68 +db 69 +db 70 +db 69 +db 67 +db 84 +db 115 +db 32 +db 32 +db 100 +db 105 +db 115 +db 99 +db 111 +db 118 +db 101 +db 114 +db 101 +db 100 +db 32 +db 61 +db 0 +align 1 +L758 label byte +db 70 +db 65 +db 73 +db 76 +db 85 +db 82 +db 69 +db 115 +db 32 +db 32 +db 101 +db 110 +db 99 +db 111 +db 117 +db 110 +db 116 +db 101 +db 114 +db 101 +db 100 +db 32 +db 61 +db 0 +align 1 +L754 label byte +db 10 +db 32 +db 32 +db 32 +db 32 +db 84 +db 114 +db 121 +db 105 +db 110 +db 103 +db 32 +db 116 +db 111 +db 32 +db 99 +db 111 +db 109 +db 112 +db 117 +db 116 +db 101 +db 32 +db 48 +db 32 +db 47 +db 32 +db 48 +db 32 +db 112 +db 114 +db 111 +db 100 +db 117 +db 99 +db 101 +db 115 +db 32 +db 46 +db 46 +db 46 +db 0 +align 1 +L753 label byte +db 32 +db 32 +db 37 +db 46 +db 55 +db 101 +db 32 +db 46 +db 10 +db 0 +align 1 +L750 label byte +db 32 +db 32 +db 32 +db 32 +db 84 +db 114 +db 121 +db 105 +db 110 +db 103 +db 32 +db 116 +db 111 +db 32 +db 99 +db 111 +db 109 +db 112 +db 117 +db 116 +db 101 +db 32 +db 49 +db 32 +db 47 +db 32 +db 48 +db 32 +db 112 +db 114 +db 111 +db 100 +db 117 +db 99 +db 101 +db 115 +db 32 +db 46 +db 46 +db 46 +db 0 +align 1 +L749 label byte +db 87 +db 104 +db 97 +db 116 +db 32 +db 109 +db 101 +db 115 +db 115 +db 97 +db 103 +db 101 +db 32 +db 97 +db 110 +db 100 +db 47 +db 111 +db 114 +db 32 +db 118 +db 97 +db 108 +db 117 +db 101 +db 115 +db 32 +db 100 +db 111 +db 101 +db 115 +db 32 +db 68 +db 105 +db 118 +db 105 +db 115 +db 105 +db 111 +db 110 +db 32 +db 98 +db 121 +db 32 +db 90 +db 101 +db 114 +db 111 +db 32 +db 112 +db 114 +db 111 +db 100 +db 117 +db 99 +db 101 +db 63 +db 10 +db 0 +align 1 +L748 label byte +db 32 +db 32 +db 105 +db 110 +db 115 +db 116 +db 101 +db 97 +db 100 +db 44 +db 32 +db 88 +db 32 +db 47 +db 32 +db 88 +db 32 +db 45 +db 32 +db 49 +db 47 +db 50 +db 32 +db 45 +db 32 +db 49 +db 47 +db 50 +db 32 +db 61 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 32 +db 46 +db 10 +db 0 +align 1 +L747 label byte +db 32 +db 32 +db 88 +db 32 +db 47 +db 32 +db 88 +db 32 +db 100 +db 105 +db 102 +db 102 +db 101 +db 114 +db 115 +db 32 +db 102 +db 114 +db 111 +db 109 +db 32 +db 49 +db 32 +db 119 +db 104 +db 101 +db 110 +db 32 +db 88 +db 32 +db 61 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 10 +db 0 +align 1 +L742 label byte +db 32 +db 32 +db 88 +db 32 +db 47 +db 32 +db 88 +db 32 +db 32 +db 116 +db 114 +db 97 +db 112 +db 115 +db 32 +db 119 +db 104 +db 101 +db 110 +db 32 +db 88 +db 32 +db 61 +db 32 +db 37 +db 103 +db 10 +db 0 +align 1 +L727 label byte +db 105 +db 115 +db 32 +db 116 +db 111 +db 111 +db 32 +db 102 +db 97 +db 114 +db 32 +db 102 +db 114 +db 111 +db 109 +db 32 +db 49 +db 46 +db 10 +db 0 +align 1 +L726 label byte +db 32 +db 117 +db 110 +db 98 +db 97 +db 108 +db 97 +db 110 +db 99 +db 101 +db 100 +db 32 +db 114 +db 97 +db 110 +db 103 +db 101 +db 59 +db 32 +db 85 +db 102 +db 84 +db 104 +db 111 +db 108 +db 100 +db 32 +db 42 +db 32 +db 86 +db 32 +db 61 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 10 +db 9 +db 37 +db 115 +db 10 +db 0 +align 1 +L725 label byte +db 66 +db 97 +db 100 +db 108 +db 121 +db 0 +align 1 +L718 label byte +db 32 +db 105 +db 115 +db 32 +db 116 +db 111 +db 111 +db 32 +db 102 +db 97 +db 114 +db 32 +db 102 +db 114 +db 111 +db 109 +db 32 +db 115 +db 113 +db 114 +db 116 +db 40 +db 90 +db 41 +db 32 +db 94 +db 32 +db 50 +db 32 +db 40 +db 37 +db 46 +db 49 +db 55 +db 101 +db 41 +db 32 +db 46 +db 10 +db 0 +align 1 +L717 label byte +db 67 +db 111 +db 109 +db 112 +db 97 +db 114 +db 105 +db 115 +db 111 +db 110 +db 32 +db 97 +db 108 +db 108 +db 101 +db 103 +db 101 +db 115 +db 32 +db 116 +db 104 +db 97 +db 116 +db 32 +db 90 +db 32 +db 61 +db 32 +db 37 +db 49 +db 55 +db 101 +db 10 +db 0 +align 1 +L705 label byte +db 32 +db 105 +db 115 +db 32 +db 116 +db 111 +db 111 +db 32 +db 102 +db 97 +db 114 +db 32 +db 102 +db 114 +db 111 +db 109 +db 32 +db 115 +db 113 +db 114 +db 116 +db 40 +db 90 +db 41 +db 32 +db 94 +db 32 +db 50 +db 32 +db 61 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 32 +db 46 +db 10 +db 0 +align 1 +L704 label byte +db 67 +db 111 +db 109 +db 112 +db 97 +db 114 +db 105 +db 115 +db 111 +db 110 +db 32 +db 97 +db 108 +db 108 +db 101 +db 103 +db 101 +db 115 +db 32 +db 116 +db 104 +db 97 +db 116 +db 32 +db 119 +db 104 +db 97 +db 116 +db 32 +db 112 +db 114 +db 105 +db 110 +db 116 +db 115 +db 32 +db 97 +db 115 +db 32 +db 90 +db 32 +db 61 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 10 +db 0 +align 1 +L687 label byte +db 43 +db 45 +db 37 +db 103 +db 44 +db 32 +db 43 +db 45 +db 37 +db 103 +db 10 +db 97 +db 110 +db 100 +db 32 +db 43 +db 45 +db 37 +db 103 +db 32 +db 97 +db 114 +db 101 +db 32 +db 99 +db 111 +db 110 +db 102 +db 117 +db 115 +db 101 +db 100 +db 32 +db 98 +db 121 +db 32 +db 79 +db 118 +db 101 +db 114 +db 102 +db 108 +db 111 +db 119 +db 46 +db 0 +align 1 +L686 label byte +db 67 +db 111 +db 109 +db 112 +db 97 +db 114 +db 105 +db 115 +db 111 +db 110 +db 115 +db 32 +db 105 +db 110 +db 118 +db 111 +db 108 +db 118 +db 105 +db 110 +db 103 +db 32 +db 0 +align 1 +L680 label byte +db 97 +db 98 +db 111 +db 118 +db 101 +db 32 +db 105 +db 115 +db 32 +db 97 +db 32 +db 68 +db 69 +db 70 +db 69 +db 67 +db 84 +db 46 +db 10 +db 0 +align 1 +L679 label byte +db 65 +db 110 +db 121 +db 32 +db 111 +db 118 +db 101 +db 114 +db 102 +db 108 +db 111 +db 119 +db 32 +db 115 +db 105 +db 103 +db 110 +db 97 +db 108 +db 32 +db 115 +db 101 +db 112 +db 97 +db 114 +db 97 +db 116 +db 105 +db 110 +db 103 +db 32 +db 116 +db 104 +db 105 +db 115 +db 32 +db 42 +db 32 +db 102 +db 114 +db 111 +db 109 +db 32 +db 116 +db 104 +db 101 +db 32 +db 111 +db 110 +db 101 +db 10 +db 0 +align 1 +L678 label byte +db 32 +db 32 +db 32 +db 32 +db 32 +db 32 +db 32 +db 32 +db 32 +db 32 +db 32 +db 32 +db 32 +db 32 +db 32 +db 32 +db 32 +db 32 +db 32 +db 32 +db 32 +db 32 +db 32 +db 32 +db 32 +db 32 +db 32 +db 110 +db 111 +db 114 +db 32 +db 102 +db 111 +db 114 +db 32 +db 86 +db 32 +db 47 +db 32 +db 49 +db 32 +db 61 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 32 +db 46 +db 10 +db 0 +align 1 +L677 label byte +db 78 +db 111 +db 32 +db 79 +db 118 +db 101 +db 114 +db 102 +db 108 +db 111 +db 119 +db 32 +db 115 +db 104 +db 111 +db 117 +db 108 +db 100 +db 32 +db 98 +db 101 +db 32 +db 115 +db 105 +db 103 +db 110 +db 97 +db 108 +db 101 +db 100 +db 32 +db 102 +db 111 +db 114 +db 32 +db 86 +db 32 +db 42 +db 32 +db 49 +db 32 +db 61 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 10 +db 0 +align 1 +L676 label byte +db 84 +db 104 +db 101 +db 114 +db 101 +db 32 +db 105 +db 115 +db 32 +db 110 +db 111 +db 32 +db 115 +db 97 +db 116 +db 117 +db 114 +db 97 +db 116 +db 105 +db 111 +db 110 +db 32 +db 118 +db 97 +db 108 +db 117 +db 101 +db 32 +db 98 +db 101 +db 99 +db 97 +db 117 +db 115 +db 101 +db 32 +db 116 +db 104 +db 101 +db 32 +db 115 +db 121 +db 115 +db 116 +db 101 +db 109 +db 32 +db 116 +db 114 +db 97 +db 112 +db 115 +db 32 +db 111 +db 110 +db 32 +db 111 +db 118 +db 101 +db 114 +db 102 +db 108 +db 111 +db 119 +db 46 +db 10 +db 0 +align 1 +L675 label byte +db 79 +db 118 +db 101 +db 114 +db 102 +db 108 +db 111 +db 119 +db 32 +db 115 +db 97 +db 116 +db 117 +db 114 +db 97 +db 116 +db 101 +db 115 +db 32 +db 97 +db 116 +db 32 +db 86 +db 48 +db 32 +db 61 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 32 +db 46 +db 10 +db 0 +align 1 +L672 label byte +db 79 +db 118 +db 101 +db 114 +db 102 +db 108 +db 111 +db 119 +db 32 +db 116 +db 104 +db 114 +db 101 +db 115 +db 104 +db 111 +db 108 +db 100 +db 32 +db 105 +db 115 +db 32 +db 86 +db 32 +db 32 +db 61 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 32 +db 46 +db 10 +db 0 +align 1 +L663 label byte +db 111 +db 118 +db 101 +db 114 +db 102 +db 108 +db 111 +db 119 +db 32 +db 112 +db 97 +db 115 +db 116 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 10 +db 9 +db 115 +db 104 +db 114 +db 105 +db 110 +db 107 +db 115 +db 32 +db 116 +db 111 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 32 +db 46 +db 10 +db 0 +align 1 +L660 label byte +db 45 +db 40 +db 45 +db 89 +db 41 +db 32 +db 100 +db 105 +db 102 +db 102 +db 101 +db 114 +db 115 +db 32 +db 102 +db 114 +db 111 +db 109 +db 32 +db 89 +db 46 +db 10 +db 0 +align 1 +L659 label byte +db 102 +db 105 +db 110 +db 100 +db 115 +db 32 +db 97 +db 32 +db 0 +align 1 +L658 label byte +db 83 +db 101 +db 101 +db 109 +db 115 +db 32 +db 79 +db 46 +db 75 +db 46 +db 10 +db 0 +align 1 +L655 label byte +db 84 +db 114 +db 121 +db 105 +db 110 +db 103 +db 32 +db 105 +db 116 +db 32 +db 111 +db 110 +db 32 +db 89 +db 32 +db 61 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 32 +db 46 +db 10 +db 0 +align 1 +L654 label byte +db 67 +db 97 +db 110 +db 32 +db 96 +db 90 +db 32 +db 61 +db 32 +db 45 +db 89 +db 39 +db 32 +db 111 +db 118 +db 101 +db 114 +db 102 +db 108 +db 111 +db 119 +db 63 +db 10 +db 0 +align 1 +L647 label byte +db 84 +db 104 +db 105 +db 115 +db 32 +db 109 +db 97 +db 121 +db 32 +db 103 +db 101 +db 110 +db 101 +db 114 +db 97 +db 116 +db 101 +db 32 +db 97 +db 110 +db 32 +db 101 +db 114 +db 114 +db 111 +db 114 +db 46 +db 10 +db 0 +align 1 +L646 label byte +db 83 +db 101 +db 97 +db 114 +db 99 +db 104 +db 105 +db 110 +db 103 +db 32 +db 102 +db 111 +db 114 +db 32 +db 79 +db 118 +db 101 +db 114 +db 102 +db 108 +db 111 +db 119 +db 32 +db 116 +db 104 +db 114 +db 101 +db 115 +db 104 +db 111 +db 108 +db 100 +db 58 +db 10 +db 0 +align 1 +L645 label byte +db 32 +db 46 +db 46 +db 46 +db 32 +db 110 +db 111 +db 32 +db 100 +db 105 +db 115 +db 99 +db 114 +db 101 +db 112 +db 97 +db 110 +db 99 +db 105 +db 101 +db 115 +db 32 +db 102 +db 111 +db 117 +db 110 +db 100 +db 46 +db 10 +db 0 +align 1 +L637 label byte +db 84 +db 101 +db 115 +db 116 +db 105 +db 110 +db 103 +db 32 +db 112 +db 111 +db 119 +db 101 +db 114 +db 115 +db 32 +db 90 +db 94 +db 81 +db 32 +db 97 +db 116 +db 32 +db 102 +db 111 +db 117 +db 114 +db 32 +db 110 +db 101 +db 97 +db 114 +db 108 +db 121 +db 32 +db 101 +db 120 +db 116 +db 114 +db 101 +db 109 +db 101 +db 32 +db 118 +db 97 +db 108 +db 117 +db 101 +db 115 +db 46 +db 10 +db 0 +align 1 +L636 label byte +db 65 +db 99 +db 99 +db 117 +db 114 +db 97 +db 99 +db 121 +db 32 +db 115 +db 101 +db 101 +db 109 +db 115 +db 32 +db 97 +db 100 +db 101 +db 113 +db 117 +db 97 +db 116 +db 101 +db 46 +db 10 +db 0 +align 1 +L629 label byte +db 9 +db 99 +db 97 +db 108 +db 99 +db 117 +db 108 +db 97 +db 116 +db 105 +db 111 +db 110 +db 115 +db 32 +db 105 +db 110 +db 118 +db 111 +db 108 +db 118 +db 105 +db 110 +db 103 +db 32 +db 116 +db 105 +db 110 +db 121 +db 32 +db 105 +db 110 +db 116 +db 101 +db 114 +db 101 +db 115 +db 116 +db 32 +db 114 +db 97 +db 116 +db 101 +db 115 +db 46 +db 10 +db 0 +align 1 +L628 label byte +db 9 +db 84 +db 104 +db 105 +db 115 +db 32 +db 109 +db 117 +db 99 +db 104 +db 32 +db 101 +db 114 +db 114 +db 111 +db 114 +db 32 +db 109 +db 97 +db 121 +db 32 +db 115 +db 112 +db 111 +db 105 +db 108 +db 32 +db 102 +db 105 +db 110 +db 97 +db 110 +db 99 +db 105 +db 97 +db 108 +db 10 +db 0 +align 1 +L627 label byte +db 9 +db 100 +db 105 +db 102 +db 102 +db 101 +db 114 +db 115 +db 32 +db 102 +db 114 +db 111 +db 109 +db 32 +db 99 +db 111 +db 114 +db 114 +db 101 +db 99 +db 116 +db 32 +db 118 +db 97 +db 108 +db 117 +db 101 +db 32 +db 98 +db 121 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 32 +db 46 +db 10 +db 0 +align 1 +L626 label byte +db 9 +db 40 +db 49 +db 32 +db 43 +db 32 +db 40 +db 37 +db 46 +db 49 +db 55 +db 101 +db 41 +db 32 +db 94 +db 32 +db 40 +db 37 +db 46 +db 49 +db 55 +db 101 +db 41 +db 59 +db 10 +db 0 +align 1 +L625 label byte +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 32 +db 102 +db 111 +db 114 +db 10 +db 0 +align 1 +L624 label byte +db 67 +db 97 +db 108 +db 99 +db 117 +db 108 +db 97 +db 116 +db 101 +db 100 +db 0 +align 1 +L617 label byte +db 84 +db 101 +db 115 +db 116 +db 105 +db 110 +db 103 +db 32 +db 88 +db 94 +db 40 +db 40 +db 88 +db 32 +db 43 +db 32 +db 49 +db 41 +db 32 +db 47 +db 32 +db 40 +db 88 +db 32 +db 45 +db 32 +db 49 +db 41 +db 41 +db 32 +db 118 +db 115 +db 46 +db 32 +db 101 +db 120 +db 112 +db 40 +db 50 +db 41 +db 32 +db 61 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 32 +db 97 +db 115 +db 32 +db 88 +db 32 +db 45 +db 62 +db 32 +db 49 +db 46 +db 10 +db 0 +align 1 +L613 label byte +db 84 +db 104 +db 105 +db 115 +db 32 +db 99 +db 111 +db 109 +db 112 +db 117 +db 116 +db 101 +db 100 +db 32 +db 118 +db 97 +db 108 +db 117 +db 101 +db 32 +db 105 +db 115 +db 32 +db 79 +db 46 +db 75 +db 46 +db 10 +db 0 +align 1 +L610 label byte +db 32 +db 32 +db 32 +db 116 +db 104 +db 114 +db 101 +db 115 +db 104 +db 111 +db 108 +db 100 +db 32 +db 61 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 32 +db 46 +db 10 +db 0 +align 1 +L609 label byte +db 116 +db 104 +db 105 +db 115 +db 32 +db 105 +db 115 +db 32 +db 110 +db 111 +db 116 +db 32 +db 98 +db 101 +db 116 +db 119 +db 101 +db 101 +db 110 +db 32 +db 48 +db 32 +db 97 +db 110 +db 100 +db 32 +db 117 +db 110 +db 100 +db 101 +db 114 +db 102 +db 108 +db 111 +db 119 +db 10 +db 0 +align 1 +L605 label byte +db 97 +db 99 +db 116 +db 117 +db 97 +db 108 +db 108 +db 121 +db 32 +db 99 +db 97 +db 108 +db 99 +db 117 +db 108 +db 97 +db 116 +db 105 +db 110 +db 103 +db 32 +db 121 +db 105 +db 101 +db 108 +db 100 +db 115 +db 58 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 32 +db 46 +db 10 +db 0 +align 1 +L604 label byte +db 115 +db 104 +db 111 +db 117 +db 108 +db 100 +db 32 +db 97 +db 102 +db 102 +db 108 +db 105 +db 99 +db 116 +db 32 +db 116 +db 104 +db 101 +db 32 +db 101 +db 120 +db 112 +db 114 +db 101 +db 115 +db 115 +db 105 +db 111 +db 110 +db 10 +db 9 +db 40 +db 37 +db 46 +db 49 +db 55 +db 101 +db 41 +db 32 +db 94 +db 32 +db 40 +db 37 +db 46 +db 49 +db 55 +db 101 +db 41 +db 59 +db 10 +db 0 +align 1 +L603 label byte +db 85 +db 102 +db 84 +db 104 +db 111 +db 108 +db 100 +db 32 +db 61 +db 32 +db 40 +db 37 +db 46 +db 49 +db 55 +db 101 +db 41 +db 32 +db 94 +db 32 +db 40 +db 37 +db 46 +db 49 +db 55 +db 101 +db 41 +db 10 +db 111 +db 110 +db 108 +db 121 +db 32 +db 117 +db 110 +db 100 +db 101 +db 114 +db 102 +db 108 +db 111 +db 119 +db 32 +db 0 +align 1 +L602 label byte +db 83 +db 105 +db 110 +db 99 +db 101 +db 32 +db 117 +db 110 +db 100 +db 101 +db 114 +db 102 +db 108 +db 111 +db 119 +db 32 +db 111 +db 99 +db 99 +db 117 +db 114 +db 115 +db 32 +db 98 +db 101 +db 108 +db 111 +db 119 +db 32 +db 116 +db 104 +db 101 +db 32 +db 116 +db 104 +db 114 +db 101 +db 115 +db 104 +db 111 +db 108 +db 100 +db 10 +db 0 +align 1 +L601 label byte +db 82 +db 97 +db 110 +db 103 +db 101 +db 32 +db 105 +db 115 +db 32 +db 116 +db 111 +db 111 +db 32 +db 110 +db 97 +db 114 +db 114 +db 111 +db 119 +db 59 +db 32 +db 85 +db 49 +db 94 +db 37 +db 100 +db 32 +db 85 +db 110 +db 100 +db 101 +db 114 +db 102 +db 108 +db 111 +db 119 +db 115 +db 46 +db 10 +db 0 +align 1 +L596 label byte +db 109 +db 101 +db 114 +db 101 +db 108 +db 121 +db 32 +db 114 +db 111 +db 117 +db 110 +db 100 +db 111 +db 102 +db 102 +db 46 +db 10 +db 0 +align 1 +L595 label byte +db 99 +db 97 +db 108 +db 99 +db 117 +db 108 +db 97 +db 116 +db 105 +db 111 +db 110 +db 32 +db 109 +db 97 +db 121 +db 32 +db 115 +db 117 +db 102 +db 102 +db 101 +db 114 +db 32 +db 108 +db 97 +db 114 +db 103 +db 101 +db 114 +db 32 +db 82 +db 101 +db 108 +db 97 +db 116 +db 105 +db 118 +db 101 +db 32 +db 101 +db 114 +db 114 +db 111 +db 114 +db 32 +db 116 +db 104 +db 97 +db 110 +db 32 +db 0 +align 1 +L594 label byte +db 32 +db 98 +db 101 +db 108 +db 111 +db 119 +db 32 +db 119 +db 104 +db 105 +db 99 +db 104 +db 0 +align 1 +L593 label byte +db 84 +db 104 +db 101 +db 32 +db 85 +db 110 +db 100 +db 101 +db 114 +db 102 +db 108 +db 111 +db 119 +db 32 +db 116 +db 104 +db 114 +db 101 +db 115 +db 104 +db 111 +db 108 +db 100 +db 32 +db 105 +db 115 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 44 +db 32 +db 37 +db 115 +db 10 +db 0 +align 1 +L592 label byte +db 88 +db 32 +db 47 +db 32 +db 90 +db 32 +db 61 +db 32 +db 49 +db 32 +db 43 +db 32 +db 37 +db 103 +db 32 +db 46 +db 10 +db 0 +align 1 +L591 label byte +db 88 +db 32 +db 47 +db 32 +db 90 +db 32 +db 102 +db 97 +db 105 +db 108 +db 115 +db 33 +db 10 +db 0 +align 1 +L588 label byte +db 101 +db 110 +db 99 +db 111 +db 117 +db 110 +db 116 +db 101 +db 114 +db 32 +db 68 +db 105 +db 118 +db 105 +db 115 +db 105 +db 111 +db 110 +db 32 +db 98 +db 121 +db 32 +db 90 +db 101 +db 114 +db 111 +db 32 +db 97 +db 108 +db 116 +db 104 +db 111 +db 117 +db 103 +db 104 +db 32 +db 97 +db 99 +db 116 +db 117 +db 97 +db 108 +db 108 +db 121 +db 10 +db 0 +align 1 +L587 label byte +db 32 +db 32 +db 46 +db 46 +db 46 +db 32 +db 40 +db 102 +db 40 +db 88 +db 41 +db 32 +db 45 +db 32 +db 102 +db 40 +db 90 +db 41 +db 41 +db 32 +db 47 +db 32 +db 40 +db 88 +db 32 +db 45 +db 32 +db 90 +db 41 +db 32 +db 46 +db 46 +db 46 +db 10 +db 0 +align 1 +L586 label byte +db 32 +db 32 +db 32 +db 32 +db 105 +db 102 +db 32 +db 40 +db 88 +db 32 +db 61 +db 61 +db 32 +db 90 +db 41 +db 32 +db 32 +db 46 +db 46 +db 46 +db 32 +db 32 +db 101 +db 108 +db 115 +db 101 +db 0 +align 1 +L585 label byte +db 99 +db 111 +db 110 +db 102 +db 117 +db 115 +db 105 +db 111 +db 110 +db 32 +db 119 +db 104 +db 101 +db 110 +db 32 +db 105 +db 110 +db 110 +db 111 +db 99 +db 101 +db 110 +db 116 +db 32 +db 115 +db 116 +db 97 +db 116 +db 101 +db 109 +db 101 +db 110 +db 116 +db 115 +db 32 +db 108 +db 105 +db 107 +db 101 +db 10 +db 0 +align 1 +L584 label byte +db 116 +db 104 +db 105 +db 115 +db 32 +db 105 +db 115 +db 32 +db 97 +db 32 +db 83 +db 69 +db 82 +db 73 +db 79 +db 85 +db 83 +db 32 +db 68 +db 69 +db 70 +db 69 +db 67 +db 84 +db 10 +db 116 +db 104 +db 97 +db 116 +db 32 +db 99 +db 97 +db 117 +db 115 +db 101 +db 115 +db 32 +db 0 +align 1 +L583 label byte +db 32 +db 32 +db 32 +db 32 +db 83 +db 104 +db 111 +db 117 +db 108 +db 100 +db 32 +db 116 +db 104 +db 105 +db 115 +db 32 +db 78 +db 79 +db 84 +db 32 +db 115 +db 105 +db 103 +db 110 +db 97 +db 108 +db 32 +db 85 +db 110 +db 100 +db 101 +db 114 +db 102 +db 108 +db 111 +db 119 +db 44 +db 32 +db 0 +align 1 +L582 label byte +db 121 +db 101 +db 116 +db 32 +db 88 +db 32 +db 45 +db 32 +db 90 +db 32 +db 121 +db 105 +db 101 +db 108 +db 100 +db 115 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 32 +db 46 +db 10 +db 0 +align 1 +L581 label byte +db 88 +db 32 +db 61 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 10 +db 9 +db 105 +db 115 +db 32 +db 110 +db 111 +db 116 +db 32 +db 101 +db 113 +db 117 +db 97 +db 108 +db 32 +db 116 +db 111 +db 32 +db 90 +db 32 +db 61 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 32 +db 46 +db 10 +db 0 +align 1 +L576 label byte +db 85 +db 110 +db 100 +db 101 +db 114 +db 102 +db 108 +db 111 +db 119 +db 32 +db 47 +db 32 +db 85 +db 102 +db 84 +db 104 +db 111 +db 108 +db 100 +db 32 +db 102 +db 97 +db 105 +db 108 +db 101 +db 100 +db 33 +db 10 +db 0 +align 1 +L566 label byte +db 40 +db 114 +db 111 +db 117 +db 110 +db 100 +db 111 +db 102 +db 102 +db 32 +db 105 +db 110 +db 32 +db 85 +db 102 +db 84 +db 104 +db 111 +db 108 +db 100 +db 41 +db 32 +db 60 +db 32 +db 69 +db 48 +db 46 +db 10 +db 0 +align 1 +L565 label byte +db 85 +db 110 +db 100 +db 101 +db 114 +db 102 +db 108 +db 111 +db 119 +db 32 +db 105 +db 115 +db 32 +db 103 +db 114 +db 97 +db 100 +db 117 +db 97 +db 108 +db 59 +db 32 +db 105 +db 116 +db 32 +db 105 +db 110 +db 99 +db 117 +db 114 +db 115 +db 32 +db 65 +db 98 +db 115 +db 111 +db 108 +db 117 +db 116 +db 101 +db 32 +db 69 +db 114 +db 114 +db 111 +db 114 +db 32 +db 61 +db 10 +db 0 +align 1 +L560 label byte +db 124 +db 81 +db 32 +db 45 +db 32 +db 89 +db 124 +db 32 +db 61 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 32 +db 46 +db 10 +db 0 +align 1 +L559 label byte +db 112 +db 114 +db 105 +db 110 +db 116 +db 32 +db 111 +db 117 +db 116 +db 32 +db 97 +db 115 +db 32 +db 81 +db 32 +db 61 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 44 +db 32 +db 89 +db 32 +db 61 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 32 +db 46 +db 10 +db 0 +align 1 +L558 label byte +db 81 +db 32 +db 61 +db 61 +db 32 +db 89 +db 32 +db 119 +db 104 +db 105 +db 108 +db 101 +db 32 +db 100 +db 101 +db 110 +db 121 +db 105 +db 110 +db 103 +db 32 +db 116 +db 104 +db 97 +db 116 +db 32 +db 124 +db 81 +db 32 +db 45 +db 32 +db 89 +db 124 +db 32 +db 61 +db 61 +db 32 +db 48 +db 59 +db 32 +db 116 +db 104 +db 101 +db 115 +db 101 +db 32 +db 118 +db 97 +db 108 +db 117 +db 101 +db 115 +db 10 +db 0 +align 1 +L557 label byte +db 85 +db 110 +db 100 +db 101 +db 114 +db 102 +db 108 +db 111 +db 119 +db 32 +db 99 +db 111 +db 110 +db 102 +db 117 +db 115 +db 101 +db 115 +db 32 +db 67 +db 111 +db 109 +db 112 +db 97 +db 114 +db 105 +db 115 +db 111 +db 110 +db 44 +db 32 +db 119 +db 104 +db 105 +db 99 +db 104 +db 32 +db 97 +db 108 +db 108 +db 101 +db 103 +db 101 +db 115 +db 32 +db 116 +db 104 +db 97 +db 116 +db 10 +db 0 +align 1 +L555 label byte +db 32 +db 111 +db 114 +db 32 +db 101 +db 108 +db 115 +db 101 +db 32 +db 109 +db 117 +db 108 +db 116 +db 105 +db 112 +db 108 +db 105 +db 99 +db 97 +db 116 +db 105 +db 111 +db 110 +db 32 +db 103 +db 101 +db 116 +db 115 +db 32 +db 116 +db 111 +db 111 +db 32 +db 109 +db 97 +db 110 +db 121 +db 32 +db 108 +db 97 +db 115 +db 116 +db 32 +db 100 +db 105 +db 103 +db 105 +db 116 +db 115 +db 32 +db 119 +db 114 +db 111 +db 110 +db 103 +db 46 +db 10 +db 0 +align 1 +L554 label byte +db 32 +db 99 +db 111 +db 109 +db 105 +db 110 +db 103 +db 32 +db 100 +db 111 +db 119 +db 110 +db 32 +db 102 +db 114 +db 111 +db 109 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 10 +db 0 +align 1 +L553 label byte +db 97 +db 112 +db 112 +db 114 +db 111 +db 97 +db 99 +db 104 +db 32 +db 97 +db 32 +db 116 +db 104 +db 114 +db 101 +db 115 +db 104 +db 111 +db 108 +db 100 +db 32 +db 61 +db 32 +db 37 +db 46 +db 49 +db 55 +db 101 +db 10 +db 0 +align 1 +L552 label byte +db 69 +db 105 +db 116 +db 104 +db 101 +db 114 +db 32 +db 97 +db 99 +db 99 +db 117 +db 114 +db 97 +db 99 +db 121 +db 32 +db 100 +db 101 +db 116 +db 101 +db 114 +db 105 +db 111 +db 114 +db 97 +db 116 +db 101 +db 115 +db 32 +db 97 +db 115 +db 32 +db 110 +db 117 +db 109 +db 98 +db 101 +db 114 +db 115 +db 10 +db 0 +align 1 +L540 label byte +db 83 +db 109 +db 97 +db 108 +db 108 +db 101 +db 115 +db 116 +db 32 +db 115 +db 116 +db 114 +db 105 +db 99 +db 116 +db 108 +db 121 +db 32 +db 112 +db 111 +db 115 +db 105 +db 116 +db 105 +db 118 +db 101 +db 32 +db 110 +db 117 +db 109 +db 98 +db 101 +db 114 +db 32 +db 102 +db 111 +db 117 +db 110 +db 100 +db 32 +db 105 +db 115 +db 32 +db 69 +db 48 +db 32 +db 61 +db 32 +db 37 +db 103 +db 32 +db 46 +db 10 +db 0 +align 1 +L539 label byte +db 32 +db 116 +db 104 +db 114 +db 101 +db 115 +db 104 +db 111 +db 108 +db 100 +db 32 +db 116 +db 104 +db 97 +db 110 +db 32 +db 112 +db 114 +db 111 +db 100 +db 117 +db 99 +db 116 +db 115 +db 46 +db 10 +db 0 +align 1 +L538 label byte +db 68 +db 105 +db 102 +db 102 +db 101 +db 114 +db 101 +db 110 +db 99 +db 101 +db 32 +db 117 +db 110 +db 100 +db 101 +db 114 +db 102 +db 108 +db 111 +db 119 +db 115 +db 32 +db 97 +db 116 +db 32 +db 97 +db 32 +db 104 +db 105 +db 103 +db 104 +db 101 +db 114 +db 0 +align 1 +L535 label byte +db 32 +db 116 +db 104 +db 114 +db 101 +db 115 +db 104 +db 111 +db 108 +db 100 +db 32 +db 116 +db 104 +db 97 +db 110 +db 32 +db 100 +db 105 +db 102 +db 102 +db 101 +db 114 +db 101 +db 110 +db 99 +db 101 +db 115 +db 46 +db 10 +db 0 +align 1 +L534 label byte +db 80 +db 114 +db 111 +db 100 +db 117 +db 99 +db 116 +db 115 +db 32 +db 117 +db 110 +db 100 +db 101 +db 114 +db 102 +db 108 +db 111 +db 119 +db 32 +db 97 +db 116 +db 32 +db 97 +db 32 +db 104 +db 105 +db 103 +db 104 +db 101 +db 114 +db 0 +align 1 +L527 label byte +db 118 +db 97 +db 108 +db 117 +db 101 +db 32 +db 80 +db 115 +db 101 +db 117 +db 100 +db 111 +db 90 +db 101 +db 114 +db 111 +db 32 +db 116 +db 104 +db 97 +db 116 +db 32 +db 112 +db 114 +db 105 +db 110 +db 116 +db 115 +db 32 +db 111 +db 117 +db 116 +db 32 +db 97 +db 115 +db 32 +db 37 +db 103 +db 32 +db 46 +db 10 +db 0 +align 1 +L526 label byte +db 85 +db 110 +db 100 +db 101 +db 114 +db 102 +db 108 +db 111 +db 119 +db 32 +db 99 +db 97 +db 110 +db 32 +db 115 +db 116 +db 105 +db 99 +db 107 +db 32 +db 97 +db 116 +db 32 +db 97 +db 110 +db 32 +db 97 +db 108 +db 108 +db 101 +db 103 +db 101 +db 100 +db 108 +db 121 +db 32 +db 112 +db 111 +db 115 +db 105 +db 116 +db 105 +db 118 +db 101 +db 10 +db 0 +align 1 +L525 label byte +db 112 +db 111 +db 115 +db 105 +db 116 +db 105 +db 118 +db 101 +db 44 +db 32 +db 105 +db 115 +db 110 +db 39 +db 116 +db 59 +db 32 +db 105 +db 116 +db 32 +db 112 +db 114 +db 105 +db 110 +db 116 +db 115 +db 32 +db 111 +db 117 +db 116 +db 32 +db 97 +db 115 +db 32 +db 32 +db 37 +db 103 +db 32 +db 46 +db 10 +db 0 +align 1 +L524 label byte +db 66 +db 117 +db 116 +db 32 +db 45 +db 80 +db 115 +db 101 +db 117 +db 100 +db 111 +db 90 +db 101 +db 114 +db 111 +db 44 +db 32 +db 119 +db 104 +db 105 +db 99 +db 104 +db 32 +db 115 +db 104 +db 111 +db 117 +db 108 +db 100 +db 32 +db 98 +db 101 +db 10 +db 0 +align 1 +L521 label byte +db 80 +db 115 +db 101 +db 117 +db 100 +db 111 +db 90 +db 101 +db 114 +db 111 +db 32 +db 116 +db 104 +db 97 +db 116 +db 32 +db 112 +db 114 +db 105 +db 110 +db 116 +db 115 +db 32 +db 111 +db 117 +db 116 +db 32 +db 97 +db 115 +db 58 +db 32 +db 37 +db 103 +db 32 +db 46 +db 10 +db 0 +align 1 +L520 label byte +db 97 +db 108 +db 108 +db 101 +db 103 +db 101 +db 100 +db 108 +db 121 +db 32 +db 110 +db 101 +db 103 +db 97 +db 116 +db 105 +db 118 +db 101 +db 32 +db 118 +db 97 +db 108 +db 117 +db 101 +db 10 +db 0 +align 1 +L519 label byte +db 80 +db 111 +db 115 +db 105 +db 116 +db 105 +db 118 +db 101 +db 32 +db 101 +db 120 +db 112 +db 114 +db 101 +db 115 +db 115 +db 105 +db 111 +db 110 +db 115 +db 32 +db 99 +db 97 +db 110 +db 32 +db 117 +db 110 +db 100 +db 101 +db 114 +db 102 +db 108 +db 111 +db 119 +db 32 +db 116 +db 111 +db 32 +db 97 +db 110 +db 10 +db 0 +align 1 +L506 label byte +db 109 +db 117 +db 108 +db 116 +db 105 +db 112 +db 108 +db 105 +db 99 +db 97 +db 116 +db 105 +db 111 +db 110 +db 32 +db 103 +db 101 +db 116 +db 115 +db 32 +db 116 +db 111 +db 111 +db 32 +db 109 +db 97 +db 110 +db 121 +db 32 +db 108 +db 97 +db 115 +db 116 +db 32 +db 100 +db 105 +db 103 +db 105 +db 116 +db 115 +db 32 +db 119 +db 114 +db 111 +db 110 +db 103 +db 46 +db 10 +db 0 +align 1 +L482 label byte +db 83 +db 101 +db 101 +db 107 +db 105 +db 110 +db 103 +db 32 +db 85 +db 110 +db 100 +db 101 +db 114 +db 102 +db 108 +db 111 +db 119 +db 32 +db 116 +db 104 +db 114 +db 101 +db 115 +db 104 +db 111 +db 108 +db 100 +db 115 +db 32 +db 85 +db 102 +db 84 +db 104 +db 111 +db 108 +db 100 +db 32 +db 97 +db 110 +db 100 +db 32 +db 69 +db 48 +db 46 +db 10 +db 0 +align 1 +L479 label byte +db 46 +db 46 +db 46 +db 32 +db 110 +db 111 +db 32 +db 100 +db 105 +db 115 +db 99 +db 114 +db 101 +db 112 +db 97 +db 110 +db 99 +db 105 +db 115 +db 32 +db 102 +db 111 +db 117 +db 110 +db 100 +db 46 +db 10 +db 0 +align 1 +L476 label byte +db 9 +db 105 +db 110 +db 118 +db 111 +db 108 +db 118 +db 105 +db 110 +db 103 +db 32 +db 105 +db 110 +db 116 +db 101 +db 114 +db 101 +db 115 +db 116 +db 32 +db 114 +db 97 +db 116 +db 101 +db 115 +db 46 +db 10 +db 0 +align 1 +L475 label byte +db 69 +db 114 +db 114 +db 111 +db 114 +db 115 +db 32 +db 108 +db 105 +db 107 +db 101 +db 32 +db 116 +db 104 +db 105 +db 115 +db 32 +db 109 +db 97 +db 121 +db 32 +db 105 +db 110 +db 118 +db 97 +db 108 +db 105 +db 100 +db 97 +db 116 +db 101 +db 32 +db 102 +db 105 +db 110 +db 97 +db 110 +db 99 +db 105 +db 97 +db 108 +db 32 +db 99 +db 97 +db 108 +db 99 +db 117 +db 108 +db 97 +db 116 +db 105 +db 111 +db 110 +db 115 +db 10 +db 0 +align 1 +L454 label byte +db 84 +db 101 +db 115 +db 116 +db 105 +db 110 +db 103 +db 32 +db 112 +db 111 +db 119 +db 101 +db 114 +db 115 +db 32 +db 90 +db 94 +db 105 +db 32 +db 102 +db 111 +db 114 +db 32 +db 115 +db 109 +db 97 +db 108 +db 108 +db 32 +db 73 +db 110 +db 116 +db 101 +db 103 +db 101 +db 114 +db 115 +db 32 +db 90 +db 32 +db 97 +db 110 +db 100 +db 32 +db 105 +db 46 +db 10 +db 0 +align 1 +L451 label byte +db 115 +db 113 +db 114 +db 116 +db 32 +db 103 +db 101 +db 116 +db 115 +db 32 +db 116 +db 111 +db 111 +db 32 +db 109 +db 97 +db 110 +db 121 +db 32 +db 108 +db 97 +db 115 +db 116 +db 32 +db 100 +db 105 +db 103 +db 105 +db 116 +db 115 +db 32 +db 119 +db 114 +db 111 +db 110 +db 103 +db 0 +align 1 +L449 label byte +db 116 +db 111 +db 32 +db 37 +db 46 +db 55 +db 101 +db 32 +db 117 +db 108 +db 112 +db 115 +db 46 +db 10 +db 0 +align 1 +L448 label byte +db 79 +db 98 +db 115 +db 101 +db 114 +db 118 +db 101 +db 100 +db 32 +db 101 +db 114 +db 114 +db 111 +db 114 +db 115 +db 32 +db 114 +db 117 +db 110 +db 32 +db 102 +db 114 +db 111 +db 109 +db 32 +db 37 +db 46 +db 55 +db 101 +db 32 +db 0 +align 1 +L447 label byte +db 83 +db 113 +db 117 +db 97 +db 114 +db 101 +db 32 +db 114 +db 111 +db 111 +db 116 +db 32 +db 105 +db 115 +db 32 +db 110 +db 101 +db 105 +db 116 +db 104 +db 101 +db 114 +db 32 +db 99 +db 104 +db 111 +db 112 +db 112 +db 101 +db 100 +db 32 +db 110 +db 111 +db 114 +db 32 +db 99 +db 111 +db 114 +db 114 +db 101 +db 99 +db 116 +db 108 +db 121 +db 32 +db 114 +db 111 +db 117 +db 110 +db 100 +db 101 +db 100 +db 46 +db 10 +db 0 +align 1 +L444 label byte +db 83 +db 113 +db 117 +db 97 +db 114 +db 101 +db 32 +db 114 +db 111 +db 111 +db 116 +db 32 +db 97 +db 112 +db 112 +db 101 +db 97 +db 114 +db 115 +db 32 +db 116 +db 111 +db 32 +db 98 +db 101 +db 32 +db 99 +db 104 +db 111 +db 112 +db 112 +db 101 +db 100 +db 46 +db 10 +db 0 +align 1 +L439 label byte +db 83 +db 113 +db 117 +db 97 +db 114 +db 101 +db 32 +db 114 +db 111 +db 111 +db 116 +db 32 +db 97 +db 112 +db 112 +db 101 +db 97 +db 114 +db 115 +db 32 +db 116 +db 111 +db 32 +db 98 +db 101 +db 32 +db 99 +db 111 +db 114 +db 114 +db 101 +db 99 +db 116 +db 108 +db 121 +db 32 +db 114 +db 111 +db 117 +db 110 +db 100 +db 101 +db 100 +db 46 +db 10 +db 0 +align 1 +L434 label byte +db 32 +db 102 +db 97 +db 105 +db 108 +db 115 +db 32 +db 116 +db 101 +db 115 +db 116 +db 32 +db 119 +db 104 +db 101 +db 116 +db 104 +db 101 +db 114 +db 32 +db 115 +db 113 +db 114 +db 116 +db 32 +db 114 +db 111 +db 117 +db 110 +db 100 +db 115 +db 32 +db 111 +db 114 +db 32 +db 99 +db 104 +db 111 +db 112 +db 115 +db 46 +db 10 +db 0 +align 1 +L433 label byte +db 82 +db 97 +db 100 +db 105 +db 120 +db 94 +db 80 +db 114 +db 101 +db 99 +db 105 +db 115 +db 105 +db 111 +db 110 +db 32 +db 61 +db 32 +db 37 +db 46 +db 55 +db 101 +db 10 +db 0 +align 1 +L432 label byte +db 65 +db 110 +db 111 +db 109 +db 97 +db 108 +db 111 +db 117 +db 115 +db 32 +db 97 +db 114 +db 105 +db 116 +db 104 +db 109 +db 101 +db 116 +db 105 +db 99 +db 32 +db 119 +db 105 +db 116 +db 104 +db 32 +db 73 +db 110 +db 116 +db 101 +db 103 +db 101 +db 114 +db 32 +db 60 +db 32 +db 0 +align 1 +L392 label byte +db 84 +db 101 +db 115 +db 116 +db 105 +db 110 +db 103 +db 32 +db 119 +db 104 +db 101 +db 116 +db 104 +db 101 +db 114 +db 32 +db 115 +db 113 +db 114 +db 116 +db 32 +db 105 +db 115 +db 32 +db 114 +db 111 +db 117 +db 110 +db 100 +db 101 +db 100 +db 32 +db 111 +db 114 +db 32 +db 99 +db 104 +db 111 +db 112 +db 112 +db 101 +db 100 +db 46 +db 10 +db 0 +align 1 +L370 label byte +db 115 +db 113 +db 114 +db 116 +db 40 +db 88 +db 41 +db 32 +db 105 +db 115 +db 32 +db 110 +db 111 +db 110 +db 45 +db 109 +db 111 +db 110 +db 111 +db 116 +db 111 +db 110 +db 105 +db 99 +db 32 +db 102 +db 111 +db 114 +db 32 +db 88 +db 32 +db 110 +db 101 +db 97 +db 114 +db 32 +db 37 +db 46 +db 55 +db 101 +db 32 +db 46 +db 10 +db 0 +align 1 +L369 label byte +db 115 +db 113 +db 114 +db 116 +db 32 +db 104 +db 97 +db 115 +db 32 +db 112 +db 97 +db 115 +db 115 +db 101 +db 100 +db 32 +db 97 +db 32 +db 116 +db 101 +db 115 +db 116 +db 32 +db 102 +db 111 +db 114 +db 32 +db 77 +db 111 +db 110 +db 111 +db 116 +db 111 +db 110 +db 105 +db 99 +db 105 +db 116 +db 121 +db 46 +db 10 +db 0 +align 1 +L352 label byte +db 84 +db 101 +db 115 +db 116 +db 32 +db 102 +db 111 +db 114 +db 32 +db 115 +db 113 +db 114 +db 116 +db 32 +db 109 +db 111 +db 110 +db 111 +db 116 +db 111 +db 110 +db 105 +db 99 +db 105 +db 116 +db 121 +db 46 +db 10 +db 0 +align 1 +L341 label byte +db 84 +db 101 +db 115 +db 116 +db 105 +db 110 +db 103 +db 32 +db 105 +db 102 +db 32 +db 115 +db 113 +db 114 +db 116 +db 40 +db 88 +db 32 +db 42 +db 32 +db 88 +db 41 +db 32 +db 61 +db 61 +db 32 +db 88 +db 32 +db 102 +db 111 +db 114 +db 32 +db 37 +db 100 +db 32 +db 73 +db 110 +db 116 +db 101 +db 103 +db 101 +db 114 +db 115 +db 32 +db 88 +db 46 +db 10 +db 0 +align 1 +L336 label byte +db 83 +db 113 +db 117 +db 97 +db 114 +db 101 +db 32 +db 114 +db 111 +db 111 +db 116 +db 32 +db 111 +db 102 +db 32 +db 48 +db 46 +db 48 +db 44 +db 32 +db 45 +db 48 +db 46 +db 48 +db 32 +db 111 +db 114 +db 32 +db 49 +db 46 +db 48 +db 32 +db 119 +db 114 +db 111 +db 110 +db 103 +db 0 +align 1 +L334 label byte +db 10 +db 82 +db 117 +db 110 +db 110 +db 105 +db 110 +db 103 +db 32 +db 116 +db 101 +db 115 +db 116 +db 32 +db 111 +db 102 +db 32 +db 115 +db 113 +db 117 +db 97 +db 114 +db 101 +db 32 +db 114 +db 111 +db 111 +db 116 +db 40 +db 120 +db 41 +db 46 +db 10 +db 0 +align 1 +L333 label byte +db 32 +db 32 +db 32 +db 32 +db 32 +db 78 +db 111 +db 32 +db 102 +db 97 +db 105 +db 108 +db 117 +db 114 +db 101 +db 115 +db 32 +db 102 +db 111 +db 117 +db 110 +db 100 +db 32 +db 105 +db 110 +db 32 +db 37 +db 100 +db 32 +db 105 +db 110 +db 116 +db 101 +db 103 +db 101 +db 114 +db 32 +db 112 +db 97 +db 105 +db 114 +db 115 +db 46 +db 10 +db 0 +align 1 +L332 label byte +db 88 +db 32 +db 42 +db 32 +db 89 +db 32 +db 61 +db 61 +db 32 +db 89 +db 32 +db 42 +db 32 +db 88 +db 32 +db 116 +db 114 +db 105 +db 97 +db 108 +db 32 +db 102 +db 97 +db 105 +db 108 +db 115 +db 46 +db 10 +db 0 +align 4 +L323 label byte +dd 00H +dd 040080000H +align 1 +L322 label byte +db 84 +db 101 +db 115 +db 116 +db 105 +db 110 +db 103 +db 32 +db 111 +db 110 +db 32 +db 37 +db 100 +db 32 +db 114 +db 97 +db 110 +db 100 +db 111 +db 109 +db 32 +db 112 +db 97 +db 105 +db 114 +db 115 +db 46 +db 10 +db 0 +align 1 +L321 label byte +db 68 +db 111 +db 101 +db 115 +db 32 +db 77 +db 117 +db 108 +db 116 +db 105 +db 112 +db 108 +db 105 +db 99 +db 97 +db 116 +db 105 +db 111 +db 110 +db 32 +db 99 +db 111 +db 109 +db 109 +db 117 +db 116 +db 101 +db 63 +db 32 +db 32 +db 0 +align 1 +L318 label byte +db 108 +db 97 +db 99 +db 107 +db 40 +db 115 +db 41 +db 32 +db 111 +db 102 +db 32 +db 103 +db 117 +db 97 +db 114 +db 100 +db 32 +db 100 +db 105 +db 103 +db 105 +db 116 +db 115 +db 32 +db 111 +db 114 +db 32 +db 102 +db 97 +db 105 +db 108 +db 117 +db 114 +db 101 +db 40 +db 115 +db 41 +db 32 +db 116 +db 111 +db 32 +db 99 +db 111 +db 114 +db 114 +db 101 +db 99 +db 116 +db 108 +db 121 +db 32 +db 114 +db 111 +db 117 +db 110 +db 100 +db 32 +db 111 +db 114 +db 32 +db 99 +db 104 +db 111 +db 112 +db 10 +db 40 +db 110 +db 111 +db 116 +db 101 +db 100 +db 32 +db 97 +db 98 +db 111 +db 118 +db 101 +db 41 +db 32 +db 99 +db 111 +db 117 +db 110 +db 116 +db 32 +db 97 +db 115 +db 32 +db 111 +db 110 +db 101 +db 32 +db 102 +db 108 +db 97 +db 119 +db 32 +db 105 +db 110 +db 32 +db 116 +db 104 +db 101 +db 32 +db 102 +db 105 +db 110 +db 97 +db 108 +db 32 +db 116 +db 97 +db 108 +db 108 +db 121 +db 32 +db 98 +db 101 +db 108 +db 111 +db 119 +db 0 +align 1 +L316 label byte +db 83 +db 116 +db 105 +db 99 +db 107 +db 121 +db 32 +db 98 +db 105 +db 116 +db 32 +db 117 +db 115 +db 101 +db 100 +db 32 +db 105 +db 110 +db 99 +db 111 +db 114 +db 114 +db 101 +db 99 +db 116 +db 108 +db 121 +db 32 +db 111 +db 114 +db 32 +db 110 +db 111 +db 116 +db 32 +db 97 +db 116 +db 32 +db 97 +db 108 +db 108 +db 46 +db 10 +db 0 +align 1 +L315 label byte +db 83 +db 116 +db 105 +db 99 +db 107 +db 121 +db 32 +db 98 +db 105 +db 116 +db 32 +db 97 +db 112 +db 112 +db 97 +db 114 +db 101 +db 110 +db 116 +db 108 +db 121 +db 32 +db 117 +db 115 +db 101 +db 100 +db 32 +db 99 +db 111 +db 114 +db 114 +db 101 +db 99 +db 116 +db 108 +db 121 +db 46 +db 10 +db 0 +align 1 +L298 label byte +db 67 +db 104 +db 101 +db 99 +db 107 +db 105 +db 110 +db 103 +db 32 +db 102 +db 111 +db 114 +db 32 +db 115 +db 116 +db 105 +db 99 +db 107 +db 121 +db 32 +db 98 +db 105 +db 116 +db 46 +db 10 +db 0 +align 1 +L295 label byte +db 40 +db 88 +db 32 +db 45 +db 32 +db 89 +db 41 +db 32 +db 43 +db 32 +db 40 +db 89 +db 32 +db 45 +db 32 +db 88 +db 41 +db 32 +db 105 +db 115 +db 32 +db 110 +db 111 +db 110 +db 32 +db 122 +db 101 +db 114 +db 111 +db 33 +db 10 +db 0 +align 1 +L292 label byte +db 65 +db 100 +db 100 +db 105 +db 116 +db 105 +db 111 +db 110 +db 47 +db 83 +db 117 +db 98 +db 116 +db 114 +db 97 +db 99 +db 116 +db 105 +db 111 +db 110 +db 32 +db 110 +db 101 +db 105 +db 116 +db 104 +db 101 +db 114 +db 32 +db 114 +db 111 +db 117 +db 110 +db 100 +db 115 +db 32 +db 110 +db 111 +db 114 +db 32 +db 99 +db 104 +db 111 +db 112 +db 115 +db 46 +db 10 +db 0 +align 1 +L291 label byte +db 65 +db 100 +db 100 +db 47 +db 83 +db 117 +db 98 +db 116 +db 114 +db 97 +db 99 +db 116 +db 0 +align 1 +L288 label byte +db 65 +db 100 +db 100 +db 105 +db 116 +db 105 +db 111 +db 110 +db 47 +db 83 +db 117 +db 98 +db 116 +db 114 +db 97 +db 99 +db 116 +db 105 +db 111 +db 110 +db 32 +db 97 +db 112 +db 112 +db 101 +db 97 +db 114 +db 115 +db 32 +db 116 +db 111 +db 32 +db 114 +db 111 +db 117 +db 110 +db 100 +db 32 +db 99 +db 111 +db 114 +db 114 +db 101 +db 99 +db 116 +db 108 +db 121 +db 46 +db 10 +db 0 +align 1 +L281 label byte +db 65 +db 100 +db 100 +db 47 +db 83 +db 117 +db 98 +db 116 +db 114 +db 97 +db 99 +db 116 +db 32 +db 97 +db 112 +db 112 +db 101 +db 97 +db 114 +db 115 +db 32 +db 116 +db 111 +db 32 +db 98 +db 101 +db 32 +db 99 +db 104 +db 111 +db 112 +db 112 +db 101 +db 100 +db 46 +db 10 +db 0 +align 1 +L276 label byte +db 73 +db 110 +db 99 +db 111 +db 109 +db 112 +db 108 +db 101 +db 116 +db 101 +db 32 +db 99 +db 97 +db 114 +db 114 +db 121 +db 45 +db 112 +db 114 +db 111 +db 112 +db 97 +db 103 +db 97 +db 116 +db 105 +db 111 +db 110 +db 32 +db 105 +db 110 +db 32 +db 65 +db 100 +db 100 +db 105 +db 116 +db 105 +db 111 +db 110 +db 0 +align 1 +L272 label byte +db 82 +db 97 +db 100 +db 105 +db 120 +db 32 +db 42 +db 32 +db 40 +db 32 +db 49 +db 32 +db 47 +db 32 +db 82 +db 97 +db 100 +db 105 +db 120 +db 32 +db 41 +db 32 +db 100 +db 105 +db 102 +db 102 +db 101 +db 114 +db 115 +db 32 +db 102 +db 114 +db 111 +db 109 +db 32 +db 49 +db 0 +align 1 +L270 label byte +db 47 +db 32 +db 105 +db 115 +db 32 +db 110 +db 101 +db 105 +db 116 +db 104 +db 101 +db 114 +db 32 +db 99 +db 104 +db 111 +db 112 +db 112 +db 101 +db 100 +db 32 +db 110 +db 111 +db 114 +db 32 +db 99 +db 111 +db 114 +db 114 +db 101 +db 99 +db 116 +db 108 +db 121 +db 32 +db 114 +db 111 +db 117 +db 110 +db 100 +db 101 +db 100 +db 46 +db 10 +db 0 +align 1 +L267 label byte +db 68 +db 105 +db 118 +db 105 +db 115 +db 105 +db 111 +db 110 +db 32 +db 97 +db 112 +db 112 +db 101 +db 97 +db 114 +db 115 +db 32 +db 116 +db 111 +db 32 +db 99 +db 104 +db 111 +db 112 +db 46 +db 10 +db 0 +align 1 +L264 label byte +db 68 +db 105 +db 118 +db 105 +db 115 +db 105 +db 111 +db 110 +db 0 +align 1 +L261 label byte +db 68 +db 105 +db 118 +db 105 +db 115 +db 105 +db 111 +db 110 +db 32 +db 97 +db 112 +db 112 +db 101 +db 97 +db 114 +db 115 +db 32 +db 116 +db 111 +db 32 +db 114 +db 111 +db 117 +db 110 +db 100 +db 32 +db 99 +db 111 +db 114 +db 114 +db 101 +db 99 +db 116 +db 108 +db 121 +db 46 +db 10 +db 0 +align 1 +L256 label byte +db 77 +db 117 +db 108 +db 116 +db 105 +db 112 +db 108 +db 105 +db 99 +db 97 +db 116 +db 105 +db 111 +db 110 +db 0 +align 1 +L253 label byte +db 42 +db 32 +db 105 +db 115 +db 32 +db 110 +db 101 +db 105 +db 116 +db 104 +db 101 +db 114 +db 32 +db 99 +db 104 +db 111 +db 112 +db 112 +db 101 +db 100 +db 32 +db 110 +db 111 +db 114 +db 32 +db 99 +db 111 +db 114 +db 114 +db 101 +db 99 +db 116 +db 108 +db 121 +db 32 +db 114 +db 111 +db 117 +db 110 +db 100 +db 101 +db 100 +db 46 +db 10 +db 0 +align 1 +L252 label byte +db 77 +db 117 +db 108 +db 116 +db 105 +db 112 +db 108 +db 105 +db 99 +db 97 +db 116 +db 105 +db 111 +db 110 +db 32 +db 97 +db 112 +db 112 +db 101 +db 97 +db 114 +db 115 +db 32 +db 116 +db 111 +db 32 +db 99 +db 104 +db 111 +db 112 +db 46 +db 10 +db 0 +align 1 +L249 label byte +db 77 +db 117 +db 108 +db 116 +db 105 +db 112 +db 108 +db 105 +db 99 +db 97 +db 116 +db 105 +db 111 +db 110 +db 32 +db 97 +db 112 +db 112 +db 101 +db 97 +db 114 +db 115 +db 32 +db 116 +db 111 +db 32 +db 114 +db 111 +db 117 +db 110 +db 100 +db 32 +db 99 +db 111 +db 114 +db 114 +db 101 +db 99 +db 116 +db 108 +db 121 +db 46 +db 10 +db 0 +align 1 +L239 label byte +db 88 +db 32 +db 42 +db 32 +db 40 +db 49 +db 47 +db 88 +db 41 +db 32 +db 100 +db 105 +db 102 +db 102 +db 101 +db 114 +db 115 +db 32 +db 102 +db 114 +db 111 +db 109 +db 32 +db 49 +db 0 +align 1 +L220 label byte +db 67 +db 104 +db 101 +db 99 +db 107 +db 105 +db 110 +db 103 +db 32 +db 114 +db 111 +db 117 +db 110 +db 100 +db 105 +db 110 +db 103 +db 32 +db 111 +db 110 +db 32 +db 109 +db 117 +db 108 +db 116 +db 105 +db 112 +db 108 +db 121 +db 44 +db 32 +db 100 +db 105 +db 118 +db 105 +db 100 +db 101 +db 32 +db 97 +db 110 +db 100 +db 32 +db 97 +db 100 +db 100 +db 47 +db 115 +db 117 +db 98 +db 116 +db 114 +db 97 +db 99 +db 116 +db 46 +db 10 +db 0 +align 1 +L219 label byte +db 32 +db 32 +db 32 +db 32 +db 32 +db 42 +db 44 +db 32 +db 47 +db 44 +db 32 +db 97 +db 110 +db 100 +db 32 +db 45 +db 32 +db 97 +db 112 +db 112 +db 101 +db 97 +db 114 +db 32 +db 116 +db 111 +db 32 +db 104 +db 97 +db 118 +db 101 +db 32 +db 103 +db 117 +db 97 +db 114 +db 100 +db 32 +db 100 +db 105 +db 103 +db 105 +db 116 +db 115 +db 44 +db 32 +db 97 +db 115 +db 32 +db 116 +db 104 +db 101 +db 121 +db 32 +db 115 +db 104 +db 111 +db 117 +db 108 +db 100 +db 46 +db 10 +db 0 +align 1 +L216 label byte +db 32 +db 32 +db 46 +db 46 +db 46 +db 32 +db 32 +db 105 +db 102 +db 32 +db 40 +db 88 +db 32 +db 61 +db 61 +db 32 +db 49 +db 46 +db 48 +db 41 +db 32 +db 123 +db 46 +db 46 +db 46 +db 46 +db 46 +db 125 +db 32 +db 101 +db 108 +db 115 +db 101 +db 32 +db 123 +db 46 +db 46 +db 46 +db 47 +db 40 +db 88 +db 45 +db 49 +db 46 +db 48 +db 41 +db 46 +db 46 +db 46 +db 125 +db 10 +db 0 +align 1 +L215 label byte +db 32 +db 32 +db 115 +db 117 +db 99 +db 104 +db 32 +db 112 +db 114 +db 101 +db 99 +db 97 +db 117 +db 116 +db 105 +db 111 +db 110 +db 115 +db 32 +db 97 +db 103 +db 97 +db 105 +db 110 +db 115 +db 116 +db 32 +db 100 +db 105 +db 118 +db 105 +db 115 +db 105 +db 111 +db 110 +db 32 +db 98 +db 121 +db 32 +db 122 +db 101 +db 114 +db 111 +db 32 +db 97 +db 115 +db 10 +db 0 +align 1 +L214 label byte +db 32 +db 32 +db 115 +db 117 +db 98 +db 116 +db 114 +db 97 +db 99 +db 116 +db 105 +db 111 +db 110 +db 32 +db 121 +db 105 +db 101 +db 108 +db 100 +db 115 +db 32 +db 32 +db 40 +db 49 +db 45 +db 85 +db 49 +db 41 +db 32 +db 45 +db 32 +db 49 +db 32 +db 61 +db 32 +db 48 +db 32 +db 44 +db 32 +db 116 +db 104 +db 101 +db 114 +db 101 +db 98 +db 121 +db 32 +db 118 +db 105 +db 116 +db 105 +db 97 +db 116 +db 105 +db 110 +db 103 +db 10 +db 0 +align 1 +L213 label byte +db 99 +db 111 +db 109 +db 112 +db 97 +db 114 +db 105 +db 115 +db 111 +db 110 +db 32 +db 97 +db 108 +db 108 +db 101 +db 103 +db 101 +db 115 +db 32 +db 32 +db 40 +db 49 +db 45 +db 85 +db 49 +db 41 +db 32 +db 60 +db 32 +db 49 +db 32 +db 32 +db 97 +db 108 +db 116 +db 104 +db 111 +db 117 +db 103 +db 104 +db 10 +db 0 +align 1 +L210 label byte +db 45 +db 32 +db 108 +db 97 +db 99 +db 107 +db 115 +db 32 +db 71 +db 117 +db 97 +db 114 +db 100 +db 32 +db 68 +db 105 +db 103 +db 105 +db 116 +db 44 +db 32 +db 115 +db 111 +db 32 +db 99 +db 97 +db 110 +db 99 +db 101 +db 108 +db 108 +db 97 +db 116 +db 105 +db 111 +db 110 +db 32 +db 105 +db 115 +db 32 +db 111 +db 98 +db 115 +db 99 +db 117 +db 114 +db 101 +db 100 +db 0 +align 1 +L205 label byte +db 42 +db 32 +db 97 +db 110 +db 100 +db 47 +db 111 +db 114 +db 32 +db 47 +db 32 +db 103 +db 101 +db 116 +db 115 +db 32 +db 116 +db 111 +db 111 +db 32 +db 109 +db 97 +db 110 +db 121 +db 32 +db 108 +db 97 +db 115 +db 116 +db 32 +db 100 +db 105 +db 103 +db 105 +db 116 +db 115 +db 32 +db 119 +db 114 +db 111 +db 110 +db 103 +db 0 +align 1 +L201 label byte +db 67 +db 111 +db 109 +db 112 +db 117 +db 116 +db 101 +db 100 +db 32 +db 118 +db 97 +db 108 +db 117 +db 101 +db 32 +db 111 +db 102 +db 32 +db 49 +db 47 +db 49 +db 46 +db 48 +db 48 +db 48 +db 46 +db 46 +db 49 +db 32 +db 62 +db 61 +db 32 +db 49 +db 0 +align 1 +L199 label byte +db 68 +db 105 +db 118 +db 105 +db 115 +db 105 +db 111 +db 110 +db 32 +db 108 +db 97 +db 99 +db 107 +db 115 +db 32 +db 97 +db 32 +db 71 +db 117 +db 97 +db 114 +db 100 +db 32 +db 68 +db 105 +db 103 +db 105 +db 116 +db 44 +db 32 +db 115 +db 111 +db 32 +db 88 +db 47 +db 49 +db 32 +db 33 +db 61 +db 32 +db 88 +db 0 +align 1 +L194 label byte +db 68 +db 105 +db 118 +db 105 +db 115 +db 105 +db 111 +db 110 +db 32 +db 108 +db 97 +db 99 +db 107 +db 115 +db 32 +db 97 +db 32 +db 71 +db 117 +db 97 +db 114 +db 100 +db 32 +db 68 +db 105 +db 103 +db 105 +db 116 +db 44 +db 32 +db 115 +db 111 +db 32 +db 101 +db 114 +db 114 +db 111 +db 114 +db 32 +db 99 +db 97 +db 110 +db 32 +db 101 +db 120 +db 99 +db 101 +db 101 +db 100 +db 32 +db 49 +db 32 +db 117 +db 108 +db 112 +db 10 +db 111 +db 114 +db 32 +db 32 +db 49 +db 47 +db 51 +db 32 +db 32 +db 97 +db 110 +db 100 +db 32 +db 32 +db 51 +db 47 +db 57 +db 32 +db 32 +db 97 +db 110 +db 100 +db 32 +db 32 +db 57 +db 47 +db 50 +db 55 +db 32 +db 109 +db 97 +db 121 +db 32 +db 100 +db 105 +db 115 +db 97 +db 103 +db 114 +db 101 +db 101 +db 0 +align 1 +L190 label byte +db 42 +db 32 +db 103 +db 101 +db 116 +db 115 +db 32 +db 116 +db 111 +db 111 +db 32 +db 109 +db 97 +db 110 +db 121 +db 32 +db 102 +db 105 +db 110 +db 97 +db 108 +db 32 +db 100 +db 105 +db 103 +db 105 +db 116 +db 115 +db 32 +db 119 +db 114 +db 111 +db 110 +db 103 +db 46 +db 10 +db 0 +align 1 +L188 label byte +db 42 +db 32 +db 108 +db 97 +db 99 +db 107 +db 115 +db 32 +db 97 +db 32 +db 71 +db 117 +db 97 +db 114 +db 100 +db 32 +db 68 +db 105 +db 103 +db 105 +db 116 +db 44 +db 32 +db 115 +db 111 +db 32 +db 49 +db 42 +db 88 +db 32 +db 33 +db 61 +db 32 +db 88 +db 0 +align 1 +L185 label byte +db 10 +db 67 +db 104 +db 101 +db 99 +db 107 +db 105 +db 110 +db 103 +db 32 +db 102 +db 111 +db 114 +db 32 +db 103 +db 117 +db 97 +db 114 +db 100 +db 32 +db 100 +db 105 +db 103 +db 105 +db 116 +db 32 +db 105 +db 110 +db 32 +db 42 +db 44 +db 32 +db 47 +db 44 +db 32 +db 97 +db 110 +db 100 +db 32 +db 45 +db 46 +db 10 +db 0 +align 1 +L184 label byte +db 83 +db 117 +db 98 +db 116 +db 114 +db 97 +db 99 +db 116 +db 105 +db 111 +db 110 +db 32 +db 97 +db 112 +db 112 +db 101 +db 97 +db 114 +db 115 +db 32 +db 116 +db 111 +db 32 +db 98 +db 101 +db 32 +db 110 +db 111 +db 114 +db 109 +db 97 +db 108 +db 105 +db 122 +db 101 +db 100 +db 44 +db 32 +db 97 +db 115 +db 32 +db 105 +db 116 +db 32 +db 115 +db 104 +db 111 +db 117 +db 108 +db 100 +db 32 +db 98 +db 101 +db 46 +db 0 +align 1 +L179 label byte +db 83 +db 117 +db 98 +db 116 +db 114 +db 97 +db 99 +db 116 +db 105 +db 111 +db 110 +db 32 +db 105 +db 115 +db 32 +db 110 +db 111 +db 116 +db 32 +db 110 +db 111 +db 114 +db 109 +db 97 +db 108 +db 105 +db 122 +db 101 +db 100 +db 32 +db 88 +db 61 +db 89 +db 44 +db 88 +db 43 +db 90 +db 32 +db 33 +db 61 +db 32 +db 89 +db 43 +db 90 +db 33 +db 0 +align 1 +L175 label byte +db 114 +db 111 +db 117 +db 103 +db 104 +db 108 +db 121 +db 32 +db 37 +db 103 +db 32 +db 101 +db 120 +db 116 +db 114 +db 97 +db 32 +db 115 +db 105 +db 103 +db 110 +db 105 +db 102 +db 105 +db 99 +db 97 +db 110 +db 116 +db 32 +db 100 +db 101 +db 99 +db 105 +db 109 +db 97 +db 108 +db 115 +db 46 +db 10 +db 0 +align 1 +L174 label byte +db 112 +db 114 +db 101 +db 99 +db 105 +db 115 +db 101 +db 108 +db 121 +db 32 +db 119 +db 105 +db 116 +db 104 +db 32 +db 97 +db 98 +db 111 +db 117 +db 116 +db 32 +db 37 +db 103 +db 32 +db 101 +db 120 +db 116 +db 114 +db 97 +db 32 +db 66 +db 45 +db 100 +db 105 +db 103 +db 105 +db 116 +db 115 +db 44 +db 32 +db 105 +db 46 +db 101 +db 46 +db 10 +db 0 +align 1 +L173 label byte +db 83 +db 111 +db 109 +db 101 +db 32 +db 115 +db 117 +db 98 +db 101 +db 120 +db 112 +db 114 +db 101 +db 115 +db 115 +db 105 +db 111 +db 110 +db 115 +db 32 +db 97 +db 112 +db 112 +db 101 +db 97 +db 114 +db 32 +db 116 +db 111 +db 32 +db 98 +db 101 +db 32 +db 99 +db 97 +db 108 +db 99 +db 117 +db 108 +db 97 +db 116 +db 101 +db 100 +db 32 +db 101 +db 120 +db 116 +db 114 +db 97 +db 10 +db 0 +align 1 +L167 label byte +db 111 +db 102 +db 32 +db 97 +db 110 +db 10 +db 101 +db 120 +db 116 +db 114 +db 97 +db 45 +db 112 +db 114 +db 101 +db 99 +db 105 +db 115 +db 105 +db 111 +db 110 +db 0 +align 1 +L166 label byte +db 90 +db 49 +db 32 +db 61 +db 32 +db 37 +db 46 +db 55 +db 101 +db 44 +db 32 +db 111 +db 114 +db 32 +db 90 +db 50 +db 32 +db 61 +db 32 +db 37 +db 46 +db 55 +db 101 +db 32 +db 0 +align 1 +L165 label byte +db 44 +db 32 +db 111 +db 114 +db 32 +db 101 +db 120 +db 97 +db 99 +db 116 +db 32 +db 114 +db 97 +db 116 +db 105 +db 111 +db 110 +db 97 +db 108 +db 32 +db 97 +db 114 +db 105 +db 116 +db 104 +db 109 +db 101 +db 116 +db 105 +db 99 +db 32 +db 97 +db 32 +db 114 +db 101 +db 115 +db 117 +db 108 +db 116 +db 10 +db 0 +align 1 +L164 label byte +db 66 +db 101 +db 99 +db 97 +db 117 +db 115 +db 101 +db 32 +db 111 +db 102 +db 32 +db 117 +db 110 +db 117 +db 115 +db 117 +db 97 +db 108 +db 32 +db 82 +db 97 +db 100 +db 105 +db 120 +db 32 +db 61 +db 32 +db 37 +db 102 +db 0 +align 1 +L160 label byte +db 9 +db 85 +db 50 +db 32 +db 61 +db 32 +db 37 +db 46 +db 55 +db 101 +db 44 +db 32 +db 90 +db 50 +db 32 +db 45 +db 32 +db 85 +db 50 +db 32 +db 61 +db 32 +db 37 +db 46 +db 55 +db 101 +db 10 +db 0 +align 1 +L159 label byte +db 9 +db 85 +db 49 +db 32 +db 61 +db 32 +db 37 +db 46 +db 55 +db 101 +db 44 +db 32 +db 90 +db 49 +db 32 +db 45 +db 32 +db 85 +db 49 +db 32 +db 61 +db 32 +db 37 +db 46 +db 55 +db 101 +db 10 +db 0 +align 1 +L158 label byte +db 80 +db 114 +db 101 +db 99 +db 105 +db 115 +db 105 +db 111 +db 110 +db 0 +align 1 +L157 label byte +db 0 +align 1 +L150 label byte +db 84 +db 104 +db 97 +db 116 +db 32 +db 102 +db 101 +db 97 +db 116 +db 117 +db 114 +db 101 +db 32 +db 105 +db 115 +db 32 +db 110 +db 111 +db 116 +db 32 +db 116 +db 101 +db 115 +db 116 +db 101 +db 100 +db 32 +db 102 +db 117 +db 114 +db 116 +db 104 +db 101 +db 114 +db 32 +db 98 +db 121 +db 32 +db 116 +db 104 +db 105 +db 115 +db 32 +db 112 +db 114 +db 111 +db 103 +db 114 +db 97 +db 109 +db 46 +db 10 +db 0 +align 1 +L145 label byte +db 80 +db 111 +db 115 +db 115 +db 105 +db 98 +db 108 +db 121 +db 32 +db 115 +db 111 +db 109 +db 101 +db 32 +db 112 +db 97 +db 114 +db 116 +db 32 +db 111 +db 102 +db 32 +db 116 +db 104 +db 105 +db 115 +db 0 +align 1 +L144 label byte +db 98 +db 121 +db 32 +db 101 +db 120 +db 116 +db 114 +db 97 +db 45 +db 112 +db 114 +db 101 +db 99 +db 105 +db 115 +db 101 +db 32 +db 101 +db 118 +db 97 +db 108 +db 117 +db 97 +db 116 +db 105 +db 111 +db 110 +db 32 +db 111 +db 102 +db 32 +db 97 +db 114 +db 105 +db 116 +db 104 +db 109 +db 101 +db 116 +db 105 +db 99 +db 32 +db 115 +db 117 +db 98 +db 101 +db 120 +db 112 +db 114 +db 101 +db 115 +db 115 +db 105 +db 111 +db 110 +db 115 +db 46 +db 10 +db 0 +align 1 +L143 label byte +db 97 +db 114 +db 101 +db 32 +db 115 +db 121 +db 109 +db 112 +db 116 +db 111 +db 109 +db 115 +db 32 +db 111 +db 102 +db 32 +db 105 +db 110 +db 99 +db 111 +db 110 +db 115 +db 105 +db 115 +db 116 +db 101 +db 110 +db 99 +db 105 +db 101 +db 115 +db 32 +db 105 +db 110 +db 116 +db 114 +db 111 +db 100 +db 117 +db 99 +db 101 +db 100 +db 10 +db 0 +align 1 +L142 label byte +db 114 +db 101 +db 115 +db 112 +db 101 +db 99 +db 116 +db 105 +db 118 +db 101 +db 108 +db 121 +db 32 +db 32 +db 37 +db 46 +db 55 +db 101 +db 44 +db 32 +db 32 +db 37 +db 46 +db 55 +db 101 +db 44 +db 32 +db 32 +db 37 +db 46 +db 55 +db 101 +db 44 +db 10 +db 0 +align 1 +L141 label byte +db 68 +db 105 +db 115 +db 97 +db 103 +db 114 +db 101 +db 101 +db 109 +db 101 +db 110 +db 116 +db 115 +db 32 +db 97 +db 109 +db 111 +db 110 +db 103 +db 32 +db 116 +db 104 +db 101 +db 32 +db 118 +db 97 +db 108 +db 117 +db 101 +db 115 +db 32 +db 88 +db 49 +db 44 +db 32 +db 89 +db 49 +db 44 +db 32 +db 90 +db 49 +db 44 +db 10 +db 0 +align 1 +L119 label byte +db 80 +db 114 +db 101 +db 99 +db 105 +db 115 +db 105 +db 111 +db 110 +db 32 +db 119 +db 111 +db 114 +db 115 +db 101 +db 32 +db 116 +db 104 +db 97 +db 110 +db 32 +db 53 +db 32 +db 100 +db 101 +db 99 +db 105 +db 109 +db 97 +db 108 +db 32 +db 102 +db 105 +db 103 +db 117 +db 114 +db 101 +db 115 +db 32 +db 32 +db 0 +align 1 +L117 label byte +db 84 +db 104 +db 101 +db 32 +db 110 +db 117 +db 109 +db 98 +db 101 +db 114 +db 32 +db 111 +db 102 +db 32 +db 115 +db 105 +db 103 +db 110 +db 105 +db 102 +db 105 +db 99 +db 97 +db 110 +db 116 +db 32 +db 100 +db 105 +db 103 +db 105 +db 116 +db 115 +db 32 +db 111 +db 102 +db 32 +db 116 +db 104 +db 101 +db 32 +db 82 +db 97 +db 100 +db 105 +db 120 +db 32 +db 105 +db 115 +db 32 +db 37 +db 102 +db 32 +db 46 +db 10 +db 0 +align 1 +L116 label byte +db 108 +db 111 +db 103 +db 97 +db 114 +db 105 +db 116 +db 104 +db 109 +db 105 +db 99 +db 32 +db 101 +db 110 +db 99 +db 111 +db 100 +db 105 +db 110 +db 103 +db 32 +db 104 +db 97 +db 115 +db 32 +db 112 +db 114 +db 101 +db 99 +db 105 +db 115 +db 105 +db 111 +db 110 +db 32 +db 99 +db 104 +db 97 +db 114 +db 97 +db 99 +db 116 +db 101 +db 114 +db 105 +db 122 +db 101 +db 100 +db 32 +db 115 +db 111 +db 108 +db 101 +db 108 +db 121 +db 32 +db 98 +db 121 +db 32 +db 85 +db 49 +db 46 +db 10 +db 0 +align 1 +L113 label byte +db 111 +db 102 +db 32 +db 115 +db 105 +db 103 +db 110 +db 105 +db 102 +db 105 +db 99 +db 97 +db 110 +db 116 +db 32 +db 100 +db 105 +db 103 +db 105 +db 116 +db 115 +db 32 +db 98 +db 117 +db 116 +db 44 +db 32 +db 98 +db 121 +db 32 +db 105 +db 116 +db 115 +db 101 +db 108 +db 102 +db 44 +db 32 +db 116 +db 104 +db 105 +db 115 +db 32 +db 105 +db 115 +db 32 +db 97 +db 32 +db 109 +db 105 +db 110 +db 111 +db 114 +db 32 +db 102 +db 108 +db 97 +db 119 +db 46 +db 10 +db 0 +align 1 +L112 label byte +db 80 +db 114 +db 101 +db 99 +db 105 +db 115 +db 105 +db 111 +db 110 +db 32 +db 99 +db 97 +db 110 +db 110 +db 111 +db 116 +db 32 +db 98 +db 101 +db 32 +db 99 +db 104 +db 97 +db 114 +db 97 +db 99 +db 116 +db 101 +db 114 +db 105 +db 122 +db 101 +db 100 +db 32 +db 98 +db 121 +db 32 +db 97 +db 110 +db 32 +db 73 +db 110 +db 116 +db 101 +db 103 +db 101 +db 114 +db 32 +db 110 +db 117 +db 109 +db 98 +db 101 +db 114 +db 10 +db 0 +align 1 +L99 label byte +db 67 +db 111 +db 109 +db 112 +db 97 +db 114 +db 105 +db 115 +db 111 +db 110 +db 32 +db 105 +db 115 +db 32 +db 102 +db 117 +db 122 +db 122 +db 121 +db 44 +db 88 +db 61 +db 49 +db 32 +db 98 +db 117 +db 116 +db 32 +db 88 +db 45 +db 49 +db 47 +db 50 +db 45 +db 49 +db 47 +db 50 +db 32 +db 33 +db 61 +db 32 +db 48 +db 0 +align 1 +L95 label byte +db 40 +db 49 +db 45 +db 85 +db 49 +db 41 +db 45 +db 49 +db 47 +db 50 +db 32 +db 60 +db 32 +db 49 +db 47 +db 50 +db 32 +db 105 +db 115 +db 32 +db 70 +db 65 +db 76 +db 83 +db 69 +db 44 +db 32 +db 112 +db 114 +db 111 +db 103 +db 46 +db 32 +db 102 +db 97 +db 105 +db 108 +db 115 +db 63 +db 0 +align 4 +L93 label byte +dd 00H +dd 040240000H +align 1 +L88 label byte +db 82 +db 97 +db 100 +db 105 +db 120 +db 32 +db 105 +db 115 +db 32 +db 110 +db 111 +db 116 +db 32 +db 97 +db 115 +db 32 +db 103 +db 111 +db 111 +db 100 +db 32 +db 97 +db 115 +db 32 +db 50 +db 32 +db 111 +db 114 +db 32 +db 49 +db 48 +db 0 +align 1 +L84 label byte +db 82 +db 97 +db 100 +db 105 +db 120 +db 32 +db 105 +db 115 +db 32 +db 116 +db 111 +db 111 +db 32 +db 98 +db 105 +db 103 +db 58 +db 32 +db 114 +db 111 +db 117 +db 110 +db 100 +db 111 +db 102 +db 102 +db 32 +db 112 +db 114 +db 111 +db 98 +db 108 +db 101 +db 109 +db 115 +db 0 +align 1 +L82 label byte +db 77 +db 89 +db 83 +db 84 +db 69 +db 82 +db 89 +db 58 +db 32 +db 114 +db 101 +db 99 +db 97 +db 108 +db 99 +db 117 +db 108 +db 97 +db 116 +db 101 +db 100 +db 32 +db 82 +db 97 +db 100 +db 105 +db 120 +db 32 +db 61 +db 32 +db 37 +db 46 +db 55 +db 101 +db 32 +db 46 +db 10 +db 0 +align 1 +L81 label byte +db 82 +db 97 +db 100 +db 105 +db 120 +db 32 +db 99 +db 111 +db 110 +db 102 +db 105 +db 114 +db 109 +db 101 +db 100 +db 46 +db 10 +db 0 +align 4 +L78 label byte +dd 047ae147bH +dd 03f847ae1H +align 1 +L77 label byte +db 103 +db 101 +db 116 +db 115 +db 32 +db 98 +db 101 +db 116 +db 116 +db 101 +db 114 +db 32 +db 99 +db 108 +db 111 +db 115 +db 101 +db 115 +db 116 +db 32 +db 114 +db 101 +db 108 +db 97 +db 116 +db 105 +db 118 +db 101 +db 32 +db 115 +db 101 +db 112 +db 97 +db 114 +db 97 +db 116 +db 105 +db 111 +db 110 +db 32 +db 85 +db 49 +db 32 +db 61 +db 32 +db 37 +db 46 +db 55 +db 101 +db 32 +db 46 +db 10 +db 0 +align 1 +L76 label byte +db 99 +db 111 +db 110 +db 102 +db 105 +db 114 +db 109 +db 115 +db 32 +db 99 +db 108 +db 111 +db 115 +db 101 +db 115 +db 116 +db 32 +db 114 +db 101 +db 108 +db 97 +db 116 +db 105 +db 118 +db 101 +db 32 +db 115 +db 101 +db 112 +db 97 +db 114 +db 97 +db 116 +db 105 +db 111 +db 110 +db 32 +db 85 +db 49 +db 32 +db 46 +db 10 +db 0 +align 1 +L61 label byte +db 82 +db 101 +db 99 +db 97 +db 108 +db 99 +db 117 +db 108 +db 97 +db 116 +db 105 +db 110 +db 103 +db 32 +db 114 +db 97 +db 100 +db 105 +db 120 +db 32 +db 97 +db 110 +db 100 +db 32 +db 112 +db 114 +db 101 +db 99 +db 105 +db 115 +db 105 +db 111 +db 110 +db 10 +db 32 +db 0 +align 1 +L60 label byte +db 67 +db 108 +db 111 +db 115 +db 101 +db 115 +db 116 +db 32 +db 114 +db 101 +db 108 +db 97 +db 116 +db 105 +db 118 +db 101 +db 32 +db 115 +db 101 +db 112 +db 97 +db 114 +db 97 +db 116 +db 105 +db 111 +db 110 +db 32 +db 102 +db 111 +db 117 +db 110 +db 100 +db 32 +db 105 +db 115 +db 32 +db 85 +db 49 +db 32 +db 61 +db 32 +db 37 +db 46 +db 55 +db 101 +db 32 +db 46 +db 10 +db 10 +db 0 +align 1 +L54 label byte +db 82 +db 97 +db 100 +db 105 +db 120 +db 32 +db 61 +db 32 +db 37 +db 102 +db 32 +db 46 +db 10 +db 0 +align 1 +L45 label byte +db 83 +db 101 +db 97 +db 114 +db 99 +db 104 +db 105 +db 110 +db 103 +db 32 +db 102 +db 111 +db 114 +db 32 +db 82 +db 97 +db 100 +db 105 +db 120 +db 32 +db 97 +db 110 +db 100 +db 32 +db 80 +db 114 +db 101 +db 99 +db 105 +db 115 +db 105 +db 111 +db 110 +db 46 +db 10 +db 0 +align 1 +L44 label byte +db 10 +db 0 +align 1 +L43 label byte +db 45 +db 49 +db 44 +db 32 +db 48 +db 44 +db 32 +db 49 +db 47 +db 50 +db 44 +db 32 +db 49 +db 44 +db 32 +db 50 +db 44 +db 32 +db 51 +db 44 +db 32 +db 52 +db 44 +db 32 +db 53 +db 44 +db 32 +db 57 +db 44 +db 32 +db 50 +db 55 +db 44 +db 32 +db 51 +db 50 +db 32 +db 38 +db 32 +db 50 +db 52 +db 48 +db 32 +db 97 +db 114 +db 101 +db 32 +db 79 +db 46 +db 75 +db 46 +db 10 +db 0 +align 1 +L38 label byte +db 53 +db 32 +db 33 +db 61 +db 32 +db 52 +db 43 +db 49 +db 44 +db 32 +db 50 +db 52 +db 48 +db 47 +db 51 +db 32 +db 33 +db 61 +db 32 +db 56 +db 48 +db 44 +db 32 +db 50 +db 52 +db 48 +db 47 +db 52 +db 32 +db 33 +db 61 +db 32 +db 54 +db 48 +db 44 +db 32 +db 111 +db 114 +db 32 +db 50 +db 52 +db 48 +db 47 +db 53 +db 32 +db 33 +db 61 +db 32 +db 52 +db 56 +db 0 +align 1 +L34 label byte +db 57 +db 32 +db 33 +db 61 +db 32 +db 51 +db 42 +db 51 +db 44 +db 32 +db 50 +db 55 +db 32 +db 33 +db 61 +db 32 +db 57 +db 42 +db 51 +db 44 +db 32 +db 51 +db 50 +db 32 +db 33 +db 61 +db 32 +db 56 +db 42 +db 52 +db 44 +db 32 +db 111 +db 114 +db 32 +db 51 +db 50 +db 45 +db 50 +db 55 +db 45 +db 52 +db 45 +db 49 +db 32 +db 33 +db 61 +db 32 +db 48 +db 0 +align 1 +L30 label byte +db 49 +db 47 +db 50 +db 32 +db 43 +db 32 +db 40 +db 45 +db 49 +db 41 +db 32 +db 43 +db 32 +db 49 +db 47 +db 50 +db 32 +db 33 +db 61 +db 32 +db 48 +db 0 +align 1 +L26 label byte +db 45 +db 49 +db 43 +db 49 +db 32 +db 33 +db 61 +db 32 +db 48 +db 44 +db 32 +db 40 +db 45 +db 49 +db 41 +db 43 +db 97 +db 98 +db 115 +db 40 +db 49 +db 41 +db 32 +db 33 +db 61 +db 32 +db 48 +db 44 +db 32 +db 111 +db 114 +db 32 +db 45 +db 49 +db 43 +db 40 +db 45 +db 49 +db 41 +db 42 +db 40 +db 45 +db 49 +db 41 +db 32 +db 33 +db 61 +db 32 +db 48 +db 0 +align 1 +L22 label byte +db 51 +db 32 +db 33 +db 61 +db 32 +db 50 +db 43 +db 49 +db 44 +db 32 +db 52 +db 32 +db 33 +db 61 +db 32 +db 51 +db 43 +db 49 +db 44 +db 32 +db 52 +db 43 +db 50 +db 42 +db 40 +db 45 +db 50 +db 41 +db 32 +db 33 +db 61 +db 32 +db 48 +db 44 +db 32 +db 111 +db 114 +db 32 +db 52 +db 45 +db 51 +db 45 +db 49 +db 32 +db 33 +db 61 +db 32 +db 48 +db 0 +align 4 +L20 label byte +dd 0d2f1a9fcH +dd 03f50624dH +align 1 +L19 label byte +db 67 +db 111 +db 109 +db 112 +db 97 +db 114 +db 105 +db 115 +db 111 +db 110 +db 32 +db 97 +db 108 +db 108 +db 101 +db 103 +db 101 +db 115 +db 32 +db 116 +db 104 +db 97 +db 116 +db 32 +db 45 +db 48 +db 46 +db 48 +db 32 +db 105 +db 115 +db 32 +db 78 +db 111 +db 110 +db 45 +db 122 +db 101 +db 114 +db 111 +db 33 +db 10 +db 0 +align 1 +L14 label byte +db 48 +db 43 +db 48 +db 32 +db 33 +db 61 +db 32 +db 48 +db 44 +db 32 +db 49 +db 45 +db 49 +db 32 +db 33 +db 61 +db 32 +db 48 +db 44 +db 32 +db 49 +db 32 +db 60 +db 61 +db 32 +db 48 +db 44 +db 32 +db 111 +db 114 +db 32 +db 49 +db 43 +db 49 +db 32 +db 33 +db 61 +db 32 +db 50 +db 0 +align 1 +L12 label byte +db 80 +db 114 +db 111 +db 103 +db 114 +db 97 +db 109 +db 32 +db 105 +db 115 +db 32 +db 110 +db 111 +db 119 +db 32 +db 82 +db 85 +db 78 +db 78 +db 73 +db 78 +db 71 +db 32 +db 116 +db 101 +db 115 +db 116 +db 115 +db 32 +db 111 +db 110 +db 32 +db 115 +db 109 +db 97 +db 108 +db 108 +db 32 +db 105 +db 110 +db 116 +db 101 +db 103 +db 101 +db 114 +db 115 +db 58 +db 10 +db 0 +align 4 +L8 label byte +dd 00H +dd 03ff00000H +align 4 +L7 label byte +dd 00H +dd 00H +align 1 +L2 label byte +db 10 +db 42 +db 32 +db 42 +db 32 +db 42 +db 32 +db 70 +db 76 +db 79 +db 65 +db 84 +db 73 +db 78 +db 71 +db 45 +db 80 +db 79 +db 73 +db 78 +db 84 +db 32 +db 69 +db 82 +db 82 +db 79 +db 82 +db 32 +db 42 +db 32 +db 42 +db 32 +db 42 +db 10 +db 0 +_TEXT ends +end diff --git a/code/tools/lcc/x86/win32/tst/sort.1bk b/code/tools/lcc/x86/win32/tst/sort.1bk new file mode 100644 index 0000000..75e1f0d --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/sort.1bk @@ -0,0 +1,20 @@ +exchange(1,9) +exchange(3,7) +exchange(5,6) +exchange(0,5) +exchange(0,3) +exchange(0,0) +exchange(1,2) +exchange(6,6) +exchange(8,9) +exchange(7,8) +-51 +-1 +0 +1 +3 +10 +18 +32 +567 +789 diff --git a/code/tools/lcc/x86/win32/tst/sort.2bk b/code/tools/lcc/x86/win32/tst/sort.2bk new file mode 100644 index 0000000..81e6f38 --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/sort.2bk @@ -0,0 +1,5 @@ +tst/sort.c:23: warning: missing return value +tst/sort.c:30: warning: missing return value +tst/sort.c:37: warning: missing return value +tst/sort.c:41: warning: missing return value +tst/sort.c:65: warning: missing return value diff --git a/code/tools/lcc/x86/win32/tst/sort.sbk b/code/tools/lcc/x86/win32/tst/sort.sbk new file mode 100644 index 0000000..3c47aeb --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/sort.sbk @@ -0,0 +1,324 @@ +.486 +.model flat +extrn __fltused:near +extrn __ftol:near +_DATA segment +public _in +align 4 +_in label byte +dd 10 +dd 32 +dd -1 +dd 567 +dd 3 +dd 18 +dd 1 +dd -51 +dd 789 +dd 0 +public _main +_DATA ends +_TEXT segment +_main: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,4 +push 10 +lea edi,(_in) +push edi +call _sort +add esp,8 +mov dword ptr (-4)[ebp],0 +jmp L5 +L2: +mov edi,dword ptr (-4)[ebp] +mov edi,dword ptr (_in)[edi*4] +push edi +call _putd +add esp,4 +push 10 +call _putchar +add esp,4 +L3: +inc dword ptr (-4)[ebp] +L5: +mov edi,dword ptr (-4)[ebp] +cmp edi,10 +jb L2 +mov eax,0 +L1: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _putd +_putd: +push ebx +push esi +push edi +push ebp +mov ebp,esp +cmp dword ptr (20)[ebp],0 +jge L7 +push 45 +call _putchar +add esp,4 +neg dword ptr (20)[ebp] +L7: +mov eax,dword ptr (20)[ebp] +mov edi,10 +cdq +idiv edi +cmp eax,0 +je L9 +mov eax,dword ptr (20)[ebp] +mov edi,10 +cdq +idiv edi +push eax +call _putd +add esp,4 +L9: +mov eax,dword ptr (20)[ebp] +mov edi,10 +cdq +idiv edi +lea edi,(48)[edx] +push edi +call _putchar +add esp,4 +mov eax,0 +L6: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _sort +_sort: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov edi,dword ptr (24)[ebp] +sub edi,1 +mov dword ptr (24)[ebp],edi +push edi +push 0 +mov edi,dword ptr (20)[ebp] +mov dword ptr (_xx),edi +push edi +call _quick +add esp,12 +mov eax,0 +L11: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _quick +_quick: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,4 +mov edi,dword ptr (28)[ebp] +cmp dword ptr (24)[ebp],edi +jl L13 +jmp L12 +L13: +mov edi,dword ptr (28)[ebp] +push edi +mov edi,dword ptr (24)[ebp] +push edi +mov edi,dword ptr (20)[ebp] +push edi +call _partition +add esp,12 +mov dword ptr (-4)[ebp],eax +mov edi,dword ptr (-4)[ebp] +sub edi,1 +push edi +mov edi,dword ptr (24)[ebp] +push edi +mov edi,dword ptr (20)[ebp] +push edi +call _quick +add esp,12 +mov edi,dword ptr (28)[ebp] +push edi +mov edi,dword ptr (-4)[ebp] +lea edi,(1)[edi] +push edi +mov edi,dword ptr (20)[ebp] +push edi +call _quick +add esp,12 +mov eax,0 +L12: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _partition +_partition: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,8 +inc dword ptr (28)[ebp] +mov edi,dword ptr (24)[ebp] +mov dword ptr (-8)[ebp],edi +mov edi,dword ptr (-8)[ebp] +mov esi,dword ptr (20)[ebp] +mov edi,dword ptr [esi][edi*4] +mov dword ptr (-4)[ebp],edi +jmp L17 +L16: +inc dword ptr (24)[ebp] +jmp L20 +L19: +inc dword ptr (24)[ebp] +L20: +mov edi,dword ptr (24)[ebp] +mov esi,dword ptr (20)[ebp] +mov ebx,dword ptr (-4)[ebp] +cmp dword ptr [esi][edi*4],ebx +jl L19 +dec dword ptr (28)[ebp] +jmp L23 +L22: +dec dword ptr (28)[ebp] +L23: +mov edi,dword ptr (28)[ebp] +mov esi,dword ptr (20)[ebp] +mov ebx,dword ptr (-4)[ebp] +cmp dword ptr [esi][edi*4],ebx +jg L22 +mov edi,dword ptr (28)[ebp] +cmp dword ptr (24)[ebp],edi +jge L25 +mov edi,dword ptr (20)[ebp] +mov esi,dword ptr (28)[ebp] +lea esi,[edi][esi*4] +push esi +mov esi,dword ptr (24)[ebp] +lea edi,[edi][esi*4] +push edi +call _exchange +add esp,8 +L25: +L17: +mov edi,dword ptr (28)[ebp] +cmp dword ptr (24)[ebp],edi +jl L16 +mov edi,dword ptr (20)[ebp] +mov esi,dword ptr (28)[ebp] +lea esi,[edi][esi*4] +push esi +mov esi,dword ptr (-8)[ebp] +lea edi,[edi][esi*4] +push edi +call _exchange +add esp,8 +mov eax,dword ptr (28)[ebp] +L15: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _exchange +_exchange: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,4 +mov edi,dword ptr (_xx) +mov esi,4 +mov ebx,dword ptr (24)[ebp] +sub ebx,edi +mov eax,ebx +cdq +idiv esi +push eax +mov ebx,dword ptr (20)[ebp] +sub ebx,edi +mov eax,ebx +cdq +idiv esi +push eax +lea edi,(L28) +push edi +call _printf +add esp,12 +mov edi,dword ptr (20)[ebp] +mov esi,dword ptr [edi] +mov dword ptr (-4)[ebp],esi +mov esi,dword ptr (24)[ebp] +mov esi,dword ptr [esi] +mov dword ptr [edi],esi +mov edi,dword ptr (24)[ebp] +mov esi,dword ptr (-4)[ebp] +mov dword ptr [edi],esi +mov eax,0 +L27: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +extrn _printf:near +_TEXT segment +_TEXT ends +extrn _putchar:near +_TEXT segment +_TEXT ends +_DATA segment +public _xx +align 4 +_xx label byte +db 4 dup (0) +_DATA ends +_TEXT segment +align 1 +L28 label byte +db 101 +db 120 +db 99 +db 104 +db 97 +db 110 +db 103 +db 101 +db 40 +db 37 +db 100 +db 44 +db 37 +db 100 +db 41 +db 10 +db 0 +_TEXT ends +end diff --git a/code/tools/lcc/x86/win32/tst/spill.1bk b/code/tools/lcc/x86/win32/tst/spill.1bk new file mode 100644 index 0000000..e69de29 diff --git a/code/tools/lcc/x86/win32/tst/spill.2bk b/code/tools/lcc/x86/win32/tst/spill.2bk new file mode 100644 index 0000000..afd73e2 --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/spill.2bk @@ -0,0 +1,6 @@ +tst/spill.c:1: warning: missing return value +tst/spill.c:3: warning: missing return value +tst/spill.c:5: warning: missing return value +tst/spill.c:7: warning: missing return value +tst/spill.c:9: warning: missing return value +tst/spill.c:17: warning: missing return value diff --git a/code/tools/lcc/x86/win32/tst/spill.sbk b/code/tools/lcc/x86/win32/tst/spill.sbk new file mode 100644 index 0000000..12415a0 --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/spill.sbk @@ -0,0 +1,259 @@ +.486 +.model flat +extrn __fltused:near +extrn __ftol:near +public _main +_TEXT segment +_main: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov eax,0 +L1: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _f +_f: +push ebx +push esi +push edi +push ebp +mov ebp,esp +call _f +add esp,0 +mov edi,eax +call _f +add esp,0 +lea edi,[eax][edi] +mov dword ptr (20)[ebp],edi +mov eax,0 +L2: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _f2 +_f2: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,4 +call _f +add esp,0 +mov edi,eax +cmp dword ptr (20)[ebp],0 +je L5 +call _f +add esp,0 +mov esi,eax +mov dword ptr (-4)[ebp],esi +jmp L6 +L5: +mov dword ptr (-4)[ebp],1 +L6: +mov esi,dword ptr (-4)[ebp] +lea edi,[esi][edi] +mov dword ptr (20)[ebp],edi +mov eax,0 +L3: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _f3 +_f3: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,44 +mov dword ptr (-4)[ebp],0 +mov dword ptr (-8)[ebp],0 +mov dword ptr (-12)[ebp],0 +mov dword ptr (-16)[ebp],0 +mov dword ptr (-20)[ebp],0 +mov dword ptr (-24)[ebp],0 +mov dword ptr (-28)[ebp],0 +mov dword ptr (-32)[ebp],0 +mov dword ptr (-36)[ebp],0 +mov dword ptr (-40)[ebp],0 +mov edi,dword ptr (24)[ebp] +lea esi,(4)[edi] +mov dword ptr (24)[ebp],esi +cmp dword ptr (20)[ebp],0 +je L9 +call _f +add esp,0 +mov esi,eax +mov dword ptr (-44)[ebp],esi +jmp L10 +L9: +mov dword ptr (-44)[ebp],0 +L10: +mov esi,dword ptr (-44)[ebp] +mov dword ptr [edi],esi +mov eax,0 +L7: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _f4 +_f4: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,52 +mov dword ptr (-4)[ebp],0 +mov dword ptr (-8)[ebp],0 +mov dword ptr (-12)[ebp],0 +mov dword ptr (-16)[ebp],0 +mov dword ptr (-20)[ebp],0 +mov dword ptr (-24)[ebp],0 +mov edi,dword ptr (_i) +lea esi,[edi*8] +fld qword ptr (_a)[esi] +fstp qword ptr (-36)[ebp] +fld qword ptr (_b)[esi] +fstp qword ptr (-44)[ebp] +fld qword ptr (-36)[ebp] +fadd qword ptr (-44)[ebp] +fld qword ptr (L15) +fcompp +fstsw ax +sahf +je L13 +cmp edi,0 +je L13 +fld qword ptr (-36)[ebp] +fsub qword ptr (-44)[ebp] +fld qword ptr (L15) +fcompp +fstsw ax +sahf +je L13 +mov dword ptr (-28)[ebp],1 +jmp L14 +L13: +mov dword ptr (-28)[ebp],0 +L14: +mov edi,dword ptr (-28)[ebp] +mov dword ptr (_i),edi +mov eax,0 +L11: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _f5 +_f5: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov edi,dword ptr (_k) +mov esi,dword ptr (_m) +mov ebx,dword ptr (_A) +mov edx,edi +imul edx,esi +lea edx,[ebx][edx*8] +mov ecx,dword ptr (_j) +mov eax,ecx +imul eax,esi +lea esi,[ebx][eax*8] +mov ebx,dword ptr (_n) +mov eax,dword ptr (_B) +imul edi,ebx +lea edi,[eax][edi*8] +imul ecx,ebx +lea ebx,[eax][ecx*8] +fld qword ptr [edx] +fmul qword ptr [esi] +fld qword ptr [edi] +fmul qword ptr [ebx] +faddp st(1),st +fstp qword ptr (_x) +fld qword ptr [edx] +fmul qword ptr [ebx] +fld qword ptr [edi] +fmul qword ptr [esi] +fsubp st(1),st +fstp qword ptr (_x) +mov eax,0 +L16: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +public _x +align 4 +_x label byte +db 8 dup (0) +public _B +align 4 +_B label byte +db 4 dup (0) +public _A +align 4 +_A label byte +db 4 dup (0) +public _n +align 4 +_n label byte +db 4 dup (0) +public _m +align 4 +_m label byte +db 4 dup (0) +public _k +align 4 +_k label byte +db 4 dup (0) +public _j +align 4 +_j label byte +db 4 dup (0) +public _i +align 4 +_i label byte +db 4 dup (0) +public _b +align 4 +_b label byte +db 80 dup (0) +public _a +align 4 +_a label byte +db 80 dup (0) +_DATA ends +_TEXT segment +align 4 +L15 label byte +dd 00H +dd 00H +_TEXT ends +end diff --git a/code/tools/lcc/x86/win32/tst/stdarg.1bk b/code/tools/lcc/x86/win32/tst/stdarg.1bk new file mode 100644 index 0000000..e973176 --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/stdarg.1bk @@ -0,0 +1,6 @@ +test 1 +test 2 +test 3 +test 4 +test 5.000000 +{1 2 3 4} {1 2 3 4} {1 2 3 4} {1 2 3 4} {1 2 3 4} {1 2 3 4} diff --git a/code/tools/lcc/x86/win32/tst/stdarg.2bk b/code/tools/lcc/x86/win32/tst/stdarg.2bk new file mode 100644 index 0000000..2b3f417 --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/stdarg.2bk @@ -0,0 +1 @@ +tst/stdarg.c:51: warning: missing return value diff --git a/code/tools/lcc/x86/win32/tst/stdarg.sbk b/code/tools/lcc/x86/win32/tst/stdarg.sbk new file mode 100644 index 0000000..d912356 --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/stdarg.sbk @@ -0,0 +1,415 @@ +.486 +.model flat +extrn __fltused:near +extrn __ftol:near +_DATA segment +public _x +align 4 +_x label byte +dd 1 +dd 2 +dd 3 +dd 4 +public _main +_DATA ends +_TEXT segment +_main: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,8 +lea edi,(L2) +push edi +call _print +add esp,4 +lea edi,(L4) +push edi +lea edi,(L3) +push edi +call _print +add esp,8 +push 10 +push 3 +lea edi,(L5) +push edi +call _print +add esp,12 +push 10 +push 4 +lea edi,(L8) +push edi +lea edi,(L7) +push edi +lea edi,(L6) +push edi +call _print +add esp,20 +push 10 +fld qword ptr (L10) +sub esp,8 +fstp qword ptr [esp] +lea edi,(L8) +push edi +lea edi,(L7) +push edi +lea edi,(L9) +push edi +call _print +add esp,24 +lea edi,(_x) +mov dword ptr (-8)[ebp],edi +mov esi,edi +mov dword ptr (-4)[ebp],esi +sub esp,16 +mov edi,esp +mov ecx,16 +rep movsb +mov edi,dword ptr (-8)[ebp] +mov esi,edi +sub esp,16 +mov edi,esp +mov ecx,16 +rep movsb +mov edi,dword ptr (-8)[ebp] +mov esi,edi +sub esp,16 +mov edi,esp +mov ecx,16 +rep movsb +mov edi,dword ptr (-8)[ebp] +mov esi,edi +sub esp,16 +mov edi,esp +mov ecx,16 +rep movsb +mov edi,dword ptr (-8)[ebp] +mov esi,edi +sub esp,16 +mov edi,esp +mov ecx,16 +rep movsb +mov edi,dword ptr (-8)[ebp] +mov esi,edi +sub esp,16 +mov edi,esp +mov ecx,16 +rep movsb +lea edi,(L11) +push edi +call _print +add esp,100 +mov eax,0 +L1: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _print +_print: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,28 +lea edi,(24)[ebp] +mov dword ptr (-4)[ebp],edi +jmp L17 +L14: +mov edi,dword ptr (20)[ebp] +movsx edi,byte ptr [edi] +cmp edi,37 +jne L18 +mov edi,dword ptr (20)[ebp] +lea edi,(1)[edi] +mov dword ptr (20)[ebp],edi +movsx edi,byte ptr [edi] +mov dword ptr (-8)[ebp],edi +mov edi,dword ptr (-8)[ebp] +cmp edi,115 +je L34 +cmp edi,115 +jg L39 +L38: +mov edi,dword ptr (-8)[ebp] +cmp edi,98 +jl L20 +cmp edi,102 +jg L20 +jmp dword ptr (L40-392)[edi*4] +_TEXT ends +_TEXT segment +align 4 +L40 label byte +dd L23 +dd L28 +dd L30 +dd L20 +dd L36 +_TEXT ends +_TEXT segment +L39: +cmp dword ptr (-8)[ebp],119 +je L32 +jmp L20 +L23: +mov edi,dword ptr (-4)[ebp] +lea edi,(16)[edi] +mov dword ptr (-28)[ebp],edi +mov dword ptr (-4)[ebp],edi +lea edi,(-24)[ebp] +mov esi,dword ptr (-28)[ebp] +lea esi,(-16)[esi] +mov ecx,16 +rep movsb +mov edi,dword ptr (-12)[ebp] +push edi +mov edi,dword ptr (-16)[ebp] +push edi +mov edi,dword ptr (-20)[ebp] +push edi +mov edi,dword ptr (-24)[ebp] +push edi +lea edi,(L24) +push edi +call _printf +add esp,20 +jmp L19 +L28: +mov edi,dword ptr (-4)[ebp] +lea edi,(4)[edi] +mov dword ptr (-4)[ebp],edi +movsx edi,byte ptr (-4)[edi] +push edi +lea edi,(L29) +push edi +call _printf +add esp,8 +jmp L19 +L30: +mov edi,dword ptr (-4)[ebp] +lea edi,(4)[edi] +mov dword ptr (-4)[ebp],edi +mov edi,dword ptr (-4)[edi] +push edi +lea edi,(L31) +push edi +call _printf +add esp,8 +jmp L19 +L32: +mov edi,dword ptr (-4)[ebp] +lea edi,(4)[edi] +mov dword ptr (-4)[ebp],edi +movsx edi,word ptr (-4)[edi] +push edi +lea edi,(L33) +push edi +call _printf +add esp,8 +jmp L19 +L34: +mov edi,dword ptr (-4)[ebp] +lea edi,(4)[edi] +mov dword ptr (-4)[ebp],edi +mov edi,dword ptr (-4)[edi] +push edi +lea edi,(L35) +push edi +call _printf +add esp,8 +jmp L19 +L36: +mov edi,dword ptr (-4)[ebp] +lea edi,(8)[edi] +mov dword ptr (-4)[ebp],edi +fld qword ptr (-8)[edi] +sub esp,8 +fstp qword ptr [esp] +lea edi,(L37) +push edi +call _printf +add esp,12 +jmp L19 +L20: +mov edi,dword ptr (20)[ebp] +movsx edi,byte ptr [edi] +push edi +lea edi,(L29) +push edi +call _printf +add esp,8 +jmp L19 +L18: +mov edi,dword ptr (20)[ebp] +movsx edi,byte ptr [edi] +push edi +lea edi,(L29) +push edi +call _printf +add esp,8 +L19: +L15: +inc dword ptr (20)[ebp] +L17: +mov edi,dword ptr (20)[ebp] +movsx edi,byte ptr [edi] +cmp edi,0 +jne L14 +mov dword ptr (-4)[ebp],0 +mov eax,0 +L12: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +extrn _printf:near +_TEXT segment +_TEXT ends +_TEXT segment +align 1 +L37 label byte +db 37 +db 102 +db 0 +align 1 +L35 label byte +db 37 +db 115 +db 0 +align 1 +L33 label byte +db 37 +db 120 +db 0 +align 1 +L31 label byte +db 37 +db 100 +db 0 +align 1 +L29 label byte +db 37 +db 99 +db 0 +align 1 +L24 label byte +db 123 +db 37 +db 100 +db 32 +db 37 +db 100 +db 32 +db 37 +db 100 +db 32 +db 37 +db 100 +db 125 +db 0 +align 1 +L11 label byte +db 37 +db 98 +db 32 +db 37 +db 98 +db 32 +db 37 +db 98 +db 32 +db 37 +db 98 +db 32 +db 37 +db 98 +db 32 +db 37 +db 98 +db 10 +db 0 +align 4 +L10 label byte +dd 00H +dd 040140000H +align 1 +L9 label byte +db 37 +db 115 +db 37 +db 115 +db 32 +db 37 +db 102 +db 37 +db 99 +db 0 +align 1 +L8 label byte +db 115 +db 116 +db 0 +align 1 +L7 label byte +db 116 +db 101 +db 0 +align 1 +L6 label byte +db 37 +db 115 +db 37 +db 115 +db 32 +db 37 +db 119 +db 37 +db 99 +db 0 +align 1 +L5 label byte +db 116 +db 101 +db 115 +db 116 +db 32 +db 37 +db 100 +db 37 +db 99 +db 0 +align 1 +L4 label byte +db 50 +db 0 +align 1 +L3 label byte +db 116 +db 101 +db 115 +db 116 +db 32 +db 37 +db 115 +db 10 +db 0 +align 1 +L2 label byte +db 116 +db 101 +db 115 +db 116 +db 32 +db 49 +db 10 +db 0 +_TEXT ends +end diff --git a/code/tools/lcc/x86/win32/tst/struct.1bk b/code/tools/lcc/x86/win32/tst/struct.1bk new file mode 100644 index 0000000..807f3da --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/struct.1bk @@ -0,0 +1,5 @@ +(-1,-1) is not within [10,10; 310,310] +(1,1) is not within [10,10; 310,310] +(20,300) is within [10,10; 310,310] +(500,400) is not within [10,10; 310,310] +ab diff --git a/code/tools/lcc/x86/win32/tst/struct.2bk b/code/tools/lcc/x86/win32/tst/struct.2bk new file mode 100644 index 0000000..cb0fbd0 --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/struct.2bk @@ -0,0 +1,2 @@ +tst/struct.c:49: warning: missing return value +tst/struct.c:68: warning: missing return value diff --git a/code/tools/lcc/x86/win32/tst/struct.sbk b/code/tools/lcc/x86/win32/tst/struct.sbk new file mode 100644 index 0000000..4c3d4f7 --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/struct.sbk @@ -0,0 +1,453 @@ +.486 +.model flat +extrn __fltused:near +extrn __ftol:near +public _addpoint +_TEXT segment +_addpoint: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov edi,dword ptr (32)[ebp] +add dword ptr (24)[ebp],edi +mov edi,dword ptr (36)[ebp] +add dword ptr (28)[ebp],edi +mov edi,dword ptr (20)[ebp] +lea esi,(24)[ebp] +mov ecx,8 +rep movsb +L1: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _canonrect +_canonrect: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,32 +mov edi,dword ptr (32)[ebp] +cmp dword ptr (24)[ebp],edi +jge L10 +mov edi,dword ptr (24)[ebp] +mov dword ptr (-20)[ebp],edi +jmp L11 +L10: +mov edi,dword ptr (32)[ebp] +mov dword ptr (-20)[ebp],edi +L11: +mov edi,dword ptr (-20)[ebp] +mov dword ptr (-16)[ebp],edi +mov edi,dword ptr (36)[ebp] +cmp dword ptr (28)[ebp],edi +jge L20 +mov edi,dword ptr (28)[ebp] +mov dword ptr (-24)[ebp],edi +jmp L21 +L20: +mov edi,dword ptr (36)[ebp] +mov dword ptr (-24)[ebp],edi +L21: +mov edi,dword ptr (-24)[ebp] +mov dword ptr (-12)[ebp],edi +mov edi,dword ptr (32)[ebp] +cmp dword ptr (24)[ebp],edi +jle L26 +mov edi,dword ptr (24)[ebp] +mov dword ptr (-28)[ebp],edi +jmp L27 +L26: +mov edi,dword ptr (32)[ebp] +mov dword ptr (-28)[ebp],edi +L27: +mov edi,dword ptr (-28)[ebp] +mov dword ptr (-8)[ebp],edi +mov edi,dword ptr (36)[ebp] +cmp dword ptr (28)[ebp],edi +jle L37 +mov edi,dword ptr (28)[ebp] +mov dword ptr (-32)[ebp],edi +jmp L38 +L37: +mov edi,dword ptr (36)[ebp] +mov dword ptr (-32)[ebp],edi +L38: +mov edi,dword ptr (-32)[ebp] +mov dword ptr (-4)[ebp],edi +mov edi,dword ptr (20)[ebp] +lea esi,(-16)[ebp] +mov ecx,16 +rep movsb +L5: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _makepoint +_makepoint: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,8 +mov edi,dword ptr (24)[ebp] +mov dword ptr (-8)[ebp],edi +mov edi,dword ptr (28)[ebp] +mov dword ptr (-4)[ebp],edi +mov edi,dword ptr (20)[ebp] +lea esi,(-8)[ebp] +mov ecx,8 +rep movsb +L39: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _makerect +_makerect: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,16 +lea edi,(-16)[ebp] +lea esi,(24)[ebp] +mov ecx,8 +rep movsb +lea edi,(-8)[ebp] +lea esi,(32)[ebp] +mov ecx,8 +rep movsb +lea esi,(-16)[ebp] +sub esp,16 +mov edi,esp +mov ecx,16 +rep movsb +mov edi,dword ptr (20)[ebp] +push edi +call _canonrect +add esp,20 +L42: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _ptinrect +_ptinrect: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,4 +mov edi,dword ptr (20)[ebp] +cmp edi,dword ptr (28)[ebp] +jl L53 +cmp edi,dword ptr (36)[ebp] +jge L53 +mov edi,dword ptr (32)[ebp] +cmp dword ptr (24)[ebp],edi +jl L53 +mov edi,dword ptr (40)[ebp] +cmp dword ptr (24)[ebp],edi +jge L53 +mov dword ptr (-4)[ebp],1 +jmp L54 +L53: +mov dword ptr (-4)[ebp],0 +L54: +mov eax,dword ptr (-4)[ebp] +L45: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +public _y +align 4 +_y label byte +db 97 +db 98 +db 0 +db 1 dup (0) +public _odd +_DATA ends +_TEXT segment +_odd: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,4 +lea edi,(-4)[ebp] +lea esi,(20)[ebp] +mov ecx,4 +rep movsb +lea edi,(-4)[ebp] +push edi +lea edi,(L56) +push edi +call _printf +add esp,8 +mov eax,0 +L55: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_TEXT segment +align 4 +L58 label byte +dd 0 +dd 0 +align 4 +L59 label byte +dd 320 +dd 320 +align 4 +L60 label byte +dd -1 +dd -1 +dd 1 +dd 1 +dd 20 +dd 300 +dd 500 +dd 400 +public _main +_TEXT ends +_TEXT segment +_main: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,108 +lea edi,(-68)[ebp] +lea esi,(L58) +mov ecx,8 +rep movsb +lea edi,(-76)[ebp] +lea esi,(L59) +mov ecx,8 +rep movsb +lea edi,(-36)[ebp] +lea esi,(L60) +mov ecx,32 +rep movsb +push -10 +push -10 +lea edi,(-84)[ebp] +push edi +call _makepoint +add esp,12 +lea esi,(-84)[ebp] +sub esp,8 +mov edi,esp +mov ecx,8 +rep movsb +lea esi,(-76)[ebp] +sub esp,8 +mov edi,esp +mov ecx,8 +rep movsb +lea edi,(-92)[ebp] +push edi +call _addpoint +add esp,20 +push 10 +push 10 +lea edi,(-100)[ebp] +push edi +call _makepoint +add esp,12 +lea esi,(-100)[ebp] +sub esp,8 +mov edi,esp +mov ecx,8 +rep movsb +lea esi,(-68)[ebp] +sub esp,8 +mov edi,esp +mov ecx,8 +rep movsb +lea edi,(-108)[ebp] +push edi +call _addpoint +add esp,20 +lea esi,(-108)[ebp] +sub esp,8 +mov edi,esp +mov ecx,8 +rep movsb +lea esi,(-92)[ebp] +sub esp,8 +mov edi,esp +mov ecx,8 +rep movsb +lea edi,(-52)[ebp] +push edi +call _makerect +add esp,20 +mov dword ptr (-4)[ebp],0 +jmp L64 +L61: +mov edi,dword ptr (-4)[ebp] +lea edi,[edi*8] +mov esi,dword ptr (-32)[ebp][edi] +push esi +mov edi,dword ptr (-36)[ebp][edi] +push edi +lea edi,(-60)[ebp] +push edi +call _makepoint +add esp,12 +mov edi,dword ptr (-56)[ebp] +push edi +mov edi,dword ptr (-4)[ebp] +mov edi,dword ptr (-36)[ebp][edi*8] +push edi +lea edi,(L65) +push edi +call _printf +add esp,12 +lea esi,(-52)[ebp] +sub esp,16 +mov edi,esp +mov ecx,16 +rep movsb +lea esi,(-60)[ebp] +sub esp,8 +mov edi,esp +mov ecx,8 +rep movsb +call _ptinrect +add esp,24 +cmp eax,0 +jne L68 +lea edi,(L70) +push edi +call _printf +add esp,4 +L68: +mov edi,dword ptr (-40)[ebp] +push edi +mov edi,dword ptr (-44)[ebp] +push edi +mov edi,dword ptr (-48)[ebp] +push edi +mov edi,dword ptr (-52)[ebp] +push edi +lea edi,(L71) +push edi +call _printf +add esp,20 +L62: +inc dword ptr (-4)[ebp] +L64: +mov edi,dword ptr (-4)[ebp] +cmp edi,4 +jb L61 +lea esi,(_y) +sub esp,4 +mov edi,esp +mov ecx,4 +rep movsb +call _odd +add esp,4 +push 0 +call _exit +add esp,4 +mov eax,0 +L57: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +extrn _exit:near +_TEXT segment +_TEXT ends +extrn _printf:near +_TEXT segment +_TEXT ends +_TEXT segment +align 1 +L71 label byte +db 119 +db 105 +db 116 +db 104 +db 105 +db 110 +db 32 +db 91 +db 37 +db 100 +db 44 +db 37 +db 100 +db 59 +db 32 +db 37 +db 100 +db 44 +db 37 +db 100 +db 93 +db 10 +db 0 +align 1 +L70 label byte +db 110 +db 111 +db 116 +db 32 +db 0 +align 1 +L65 label byte +db 40 +db 37 +db 100 +db 44 +db 37 +db 100 +db 41 +db 32 +db 105 +db 115 +db 32 +db 0 +align 1 +L56 label byte +db 37 +db 115 +db 10 +db 0 +_TEXT ends +end diff --git a/code/tools/lcc/x86/win32/tst/switch.1bk b/code/tools/lcc/x86/win32/tst/switch.1bk new file mode 100644 index 0000000..de46a73 --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/switch.1bk @@ -0,0 +1,76 @@ +b = 0x8 +f = 0xc +n = 0xa +r = 0xd +t = 0x9 +v = 0xb +x = 0x78 +f: +x = 0 +x = 1 +x = 2 +x = 2 +x = 2 +x = 2 +x = 2 +x = 7 +x = 8 +x = 9 +x = 9 +x = 9 +x = 9 +x = 9 +x = 9 +x = 9 +x = 16 +x = 17 +x = 18 +x = 19 +x = 20 +g: +1 1 +1 2 +2 3 +2 4 +2 5 +3 6 +d 6 +3 7 +d 7 +3 8 +d 8 +d 9 +d 10 +h: +i = 8 +i = 16 +i = 120 +i = 128 +i = 248 +i = 264 +i = 272 +i = 280 +i = 288 +i = 296 +i = 304 +i = 312 +488 defaults +x = 0x1000000 +x = 0x2000000 +x = 0x3000000 +x = 0x4000000 +x = 0x5000000 +x = 0x6000000 (default) +x = 0x7000000 (default) +0 +1 +2 +3 +4 +5 +0 +1 +2 +3 +4 +5 diff --git a/code/tools/lcc/x86/win32/tst/switch.2bk b/code/tools/lcc/x86/win32/tst/switch.2bk new file mode 100644 index 0000000..709b419 --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/switch.2bk @@ -0,0 +1,5 @@ +tst/switch.c:55: warning: missing return value +tst/switch.c:73: warning: missing return value +tst/switch.c:97: warning: missing return value +tst/switch.c:112: warning: missing return value +tst/switch.c:137: warning: missing return value diff --git a/code/tools/lcc/x86/win32/tst/switch.sbk b/code/tools/lcc/x86/win32/tst/switch.sbk new file mode 100644 index 0000000..1f67679 --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/switch.sbk @@ -0,0 +1,960 @@ +.486 +.model flat +extrn __fltused:near +extrn __ftol:near +public _main +_TEXT segment +_main: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,8 +lea edi,(L6) +mov dword ptr (-4)[ebp],edi +jmp L5 +L2: +mov edi,dword ptr (-4)[ebp] +movsx edi,byte ptr [edi] +push edi +call _backslash +add esp,4 +push eax +mov edi,dword ptr (-4)[ebp] +movsx edi,byte ptr [edi] +push edi +lea edi,(L7) +push edi +call _printf +add esp,12 +L3: +inc dword ptr (-4)[ebp] +L5: +mov edi,dword ptr (-4)[ebp] +movsx edi,byte ptr [edi] +cmp edi,0 +jne L2 +call _f +add esp,0 +call _g +add esp,0 +call _h +add esp,0 +mov dword ptr (-8)[ebp],16777216 +jmp L11 +L8: +mov edi,dword ptr (-8)[ebp] +push edi +call _big +add esp,4 +L9: +add dword ptr (-8)[ebp],16777216 +L11: +mov edi,dword ptr (-8)[ebp] +and edi,117440512 +cmp edi,0 +jne L8 +call _limit +add esp,0 +mov eax,0 +L1: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _backslash +_backslash: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov edi,dword ptr (20)[ebp] +cmp edi,102 +je L16 +cmp edi,102 +jg L22 +L21: +cmp dword ptr (20)[ebp],98 +je L15 +jmp L13 +L22: +mov edi,dword ptr (20)[ebp] +cmp edi,110 +je L17 +cmp edi,110 +jl L13 +L23: +mov edi,dword ptr (20)[ebp] +cmp edi,114 +je L18 +cmp edi,116 +je L19 +cmp edi,118 +je L20 +jmp L13 +L15: +mov eax,8 +jmp L12 +L16: +mov eax,12 +jmp L12 +L17: +mov eax,10 +jmp L12 +L18: +mov eax,13 +jmp L12 +L19: +mov eax,9 +jmp L12 +L20: +mov eax,11 +jmp L12 +L13: +mov eax,dword ptr (20)[ebp] +L12: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _f +_f: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,12 +mov dword ptr (-8)[ebp],0 +lea edi,(L25) +push edi +call _printf +add esp,4 +mov dword ptr (-4)[ebp],0 +L26: +mov edi,dword ptr (-4)[ebp] +mov dword ptr (-12)[ebp],edi +mov edi,dword ptr (-4)[ebp] +cmp edi,1 +jl L30 +cmp edi,20 +jg L30 +jmp dword ptr (L42-4)[edi*4] +_TEXT ends +_TEXT segment +align 4 +L42 label byte +dd L32 +dd L33 +dd L30 +dd L30 +dd L30 +dd L30 +dd L34 +dd L35 +dd L36 +dd L30 +dd L30 +dd L30 +dd L30 +dd L30 +dd L30 +dd L37 +dd L38 +dd L39 +dd L40 +dd L41 +_TEXT ends +_TEXT segment +L32: +mov edi,dword ptr (-4)[ebp] +mov dword ptr (-8)[ebp],edi +jmp L31 +L33: +mov edi,dword ptr (-4)[ebp] +mov dword ptr (-8)[ebp],edi +jmp L31 +L34: +mov edi,dword ptr (-4)[ebp] +mov dword ptr (-8)[ebp],edi +jmp L31 +L35: +mov edi,dword ptr (-4)[ebp] +mov dword ptr (-8)[ebp],edi +jmp L31 +L36: +mov edi,dword ptr (-4)[ebp] +mov dword ptr (-8)[ebp],edi +jmp L31 +L37: +mov edi,dword ptr (-4)[ebp] +mov dword ptr (-8)[ebp],edi +jmp L31 +L38: +mov edi,dword ptr (-4)[ebp] +mov dword ptr (-8)[ebp],edi +jmp L31 +L39: +mov edi,dword ptr (-4)[ebp] +mov dword ptr (-8)[ebp],edi +jmp L31 +L40: +mov edi,dword ptr (-4)[ebp] +mov dword ptr (-8)[ebp],edi +jmp L31 +L41: +mov edi,dword ptr (-4)[ebp] +mov dword ptr (-8)[ebp],edi +L30: +L31: +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L44) +push edi +call _printf +add esp,8 +L27: +inc dword ptr (-4)[ebp] +cmp dword ptr (-4)[ebp],20 +jle L26 +mov eax,0 +L24: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _g +_g: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,4 +lea edi,(L46) +push edi +call _printf +add esp,4 +mov dword ptr (-4)[ebp],1 +L47: +mov edi,dword ptr (-4)[ebp] +cmp edi,1001 +jl L64 +cmp edi,1004 +jg L65 +jmp dword ptr (L66-4004)[edi*4] +_TEXT ends +_TEXT segment +align 4 +L66 label byte +dd L60 +dd L60 +dd L60 +dd L60 +_TEXT ends +_TEXT segment +L64: +mov edi,dword ptr (-4)[ebp] +cmp edi,1 +jl L51 +cmp edi,8 +jg L51 +jmp dword ptr (L68-4)[edi*4] +_TEXT ends +_TEXT segment +align 4 +L68 label byte +dd L53 +dd L53 +dd L55 +dd L55 +dd L55 +dd L57 +dd L57 +dd L57 +_TEXT ends +_TEXT segment +L65: +mov edi,dword ptr (-4)[ebp] +cmp edi,3001 +jl L51 +cmp edi,3004 +jg L51 +jmp dword ptr (L70-12004)[edi*4] +_TEXT ends +_TEXT segment +align 4 +L70 label byte +dd L62 +dd L62 +dd L62 +dd L62 +_TEXT ends +_TEXT segment +L53: +mov edi,dword ptr (-4)[ebp] +push edi +lea edi,(L54) +push edi +call _printf +add esp,8 +jmp L52 +L55: +mov edi,dword ptr (-4)[ebp] +push edi +lea edi,(L56) +push edi +call _printf +add esp,8 +jmp L52 +L57: +mov edi,dword ptr (-4)[ebp] +push edi +lea edi,(L58) +push edi +call _printf +add esp,8 +L51: +mov edi,dword ptr (-4)[ebp] +push edi +lea edi,(L59) +push edi +call _printf +add esp,8 +jmp L52 +L60: +mov edi,dword ptr (-4)[ebp] +push edi +lea edi,(L61) +push edi +call _printf +add esp,8 +jmp L52 +L62: +mov edi,dword ptr (-4)[ebp] +push edi +lea edi,(L63) +push edi +call _printf +add esp,8 +L52: +L48: +inc dword ptr (-4)[ebp] +cmp dword ptr (-4)[ebp],10 +jle L47 +mov eax,0 +L45: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _h +_h: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,8 +mov dword ptr (-8)[ebp],0 +lea edi,(L73) +push edi +call _printf +add esp,4 +mov dword ptr (-4)[ebp],1 +L74: +mov edi,dword ptr (-4)[ebp] +cmp edi,264 +je L86 +cmp edi,264 +jg L94 +L93: +mov edi,dword ptr (-4)[ebp] +cmp edi,120 +je L84 +cmp edi,120 +jg L96 +L95: +mov edi,dword ptr (-4)[ebp] +cmp edi,8 +je L83 +cmp edi,8 +jl L78 +L97: +cmp dword ptr (-4)[ebp],16 +je L82 +jmp L78 +L96: +mov edi,dword ptr (-4)[ebp] +cmp edi,128 +je L80 +cmp edi,128 +jl L78 +L98: +cmp dword ptr (-4)[ebp],248 +je L87 +jmp L78 +L94: +mov edi,dword ptr (-4)[ebp] +cmp edi,288 +je L91 +cmp edi,288 +jg L100 +L99: +mov edi,dword ptr (-4)[ebp] +cmp edi,272 +je L88 +cmp edi,272 +jl L78 +L101: +cmp dword ptr (-4)[ebp],280 +je L85 +jmp L78 +L100: +mov edi,dword ptr (-4)[ebp] +cmp edi,304 +je L89 +cmp edi,304 +jg L103 +L102: +cmp dword ptr (-4)[ebp],296 +je L90 +jmp L78 +L103: +cmp dword ptr (-4)[ebp],312 +je L92 +jmp L78 +L78: +inc dword ptr (-8)[ebp] +jmp L75 +L80: +mov edi,dword ptr (-4)[ebp] +push edi +lea edi,(L81) +push edi +call _printf +add esp,8 +jmp L79 +L82: +mov edi,dword ptr (-4)[ebp] +push edi +lea edi,(L81) +push edi +call _printf +add esp,8 +jmp L79 +L83: +mov edi,dword ptr (-4)[ebp] +push edi +lea edi,(L81) +push edi +call _printf +add esp,8 +jmp L79 +L84: +mov edi,dword ptr (-4)[ebp] +push edi +lea edi,(L81) +push edi +call _printf +add esp,8 +jmp L79 +L85: +mov edi,dword ptr (-4)[ebp] +push edi +lea edi,(L81) +push edi +call _printf +add esp,8 +jmp L79 +L86: +mov edi,dword ptr (-4)[ebp] +push edi +lea edi,(L81) +push edi +call _printf +add esp,8 +jmp L79 +L87: +mov edi,dword ptr (-4)[ebp] +push edi +lea edi,(L81) +push edi +call _printf +add esp,8 +jmp L79 +L88: +mov edi,dword ptr (-4)[ebp] +push edi +lea edi,(L81) +push edi +call _printf +add esp,8 +jmp L79 +L89: +mov edi,dword ptr (-4)[ebp] +push edi +lea edi,(L81) +push edi +call _printf +add esp,8 +jmp L79 +L90: +mov edi,dword ptr (-4)[ebp] +push edi +lea edi,(L81) +push edi +call _printf +add esp,8 +jmp L79 +L91: +mov edi,dword ptr (-4)[ebp] +push edi +lea edi,(L81) +push edi +call _printf +add esp,8 +jmp L79 +L92: +mov edi,dword ptr (-4)[ebp] +push edi +lea edi,(L81) +push edi +call _printf +add esp,8 +L79: +L75: +inc dword ptr (-4)[ebp] +cmp dword ptr (-4)[ebp],500 +jle L74 +mov edi,dword ptr (-8)[ebp] +push edi +lea edi,(L104) +push edi +call _printf +add esp,8 +mov eax,0 +L72: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _big +_big: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,4 +mov edi,dword ptr (20)[ebp] +and edi,06000000H +mov dword ptr (-4)[ebp],edi +mov edi,dword ptr (-4)[ebp] +cmp edi,33554432 +je L111 +cmp edi,33554432 +jg L115 +L114: +mov edi,dword ptr (-4)[ebp] +cmp edi,-2 +je L109 +cmp edi,-1 +je L109 +cmp edi,0 +je L109 +jmp L106 +L115: +mov edi,dword ptr (-4)[ebp] +cmp edi,67108864 +je L112 +jmp L106 +L109: +mov edi,dword ptr (20)[ebp] +push edi +lea edi,(L110) +push edi +call _printf +add esp,8 +jmp L107 +L111: +mov edi,dword ptr (20)[ebp] +push edi +lea edi,(L110) +push edi +call _printf +add esp,8 +jmp L107 +L112: +mov edi,dword ptr (20)[ebp] +push edi +lea edi,(L110) +push edi +call _printf +add esp,8 +jmp L107 +L106: +mov edi,dword ptr (20)[ebp] +push edi +lea edi,(L113) +push edi +call _printf +add esp,8 +L107: +mov eax,0 +L105: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _limit +_limit: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,4 +mov dword ptr (-4)[ebp],-2147483648 +L117: +mov edi,dword ptr (-4)[ebp] +mov esi,-2147483648 +cmp edi,-2147483648 +jl L121 +cmp edi,-2147483644 +jg L121 +lea edi,[edi*4] +lea esi,[esi*4] +sub edi,esi +jmp dword ptr (L134)[edi] +_TEXT ends +_TEXT segment +align 4 +L134 label byte +dd L123 +dd L125 +dd L127 +dd L129 +dd L131 +_TEXT ends +_TEXT segment +L123: +lea edi,(L124) +push edi +call _printf +add esp,4 +jmp L122 +L125: +lea edi,(L126) +push edi +call _printf +add esp,4 +jmp L122 +L127: +lea edi,(L128) +push edi +call _printf +add esp,4 +jmp L122 +L129: +lea edi,(L130) +push edi +call _printf +add esp,4 +jmp L122 +L131: +lea edi,(L132) +push edi +call _printf +add esp,4 +jmp L122 +L121: +lea edi,(L133) +push edi +call _printf +add esp,4 +L122: +L118: +inc dword ptr (-4)[ebp] +cmp dword ptr (-4)[ebp],-2147483643 +jle L117 +mov dword ptr (-4)[ebp],2147483647 +L135: +mov edi,dword ptr (-4)[ebp] +mov esi,2147483643 +cmp edi,2147483643 +jl L139 +cmp edi,2147483647 +jg L139 +lea edi,[edi*4] +lea esi,[esi*4] +sub edi,esi +jmp dword ptr (L146)[edi] +_TEXT ends +_TEXT segment +align 4 +L146 label byte +dd L145 +dd L144 +dd L143 +dd L142 +dd L141 +_TEXT ends +_TEXT segment +L141: +lea edi,(L124) +push edi +call _printf +add esp,4 +jmp L140 +L142: +lea edi,(L126) +push edi +call _printf +add esp,4 +jmp L140 +L143: +lea edi,(L128) +push edi +call _printf +add esp,4 +jmp L140 +L144: +lea edi,(L130) +push edi +call _printf +add esp,4 +jmp L140 +L145: +lea edi,(L132) +push edi +call _printf +add esp,4 +jmp L140 +L139: +lea edi,(L133) +push edi +call _printf +add esp,4 +L140: +L136: +dec dword ptr (-4)[ebp] +cmp dword ptr (-4)[ebp],2147483642 +jge L135 +mov eax,0 +L116: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +extrn _printf:near +_TEXT segment +_TEXT ends +_TEXT segment +align 1 +L133 label byte +db 53 +db 10 +db 0 +align 1 +L132 label byte +db 52 +db 10 +db 0 +align 1 +L130 label byte +db 51 +db 10 +db 0 +align 1 +L128 label byte +db 50 +db 10 +db 0 +align 1 +L126 label byte +db 49 +db 10 +db 0 +align 1 +L124 label byte +db 48 +db 10 +db 0 +align 1 +L113 label byte +db 120 +db 32 +db 61 +db 32 +db 48 +db 120 +db 37 +db 120 +db 32 +db 40 +db 100 +db 101 +db 102 +db 97 +db 117 +db 108 +db 116 +db 41 +db 10 +db 0 +align 1 +L110 label byte +db 120 +db 32 +db 61 +db 32 +db 48 +db 120 +db 37 +db 120 +db 10 +db 0 +align 1 +L104 label byte +db 37 +db 100 +db 32 +db 100 +db 101 +db 102 +db 97 +db 117 +db 108 +db 116 +db 115 +db 10 +db 0 +align 1 +L81 label byte +db 105 +db 32 +db 61 +db 32 +db 37 +db 100 +db 10 +db 0 +align 1 +L73 label byte +db 104 +db 58 +db 10 +db 0 +align 1 +L63 label byte +db 54 +db 32 +db 37 +db 100 +db 10 +db 0 +align 1 +L61 label byte +db 53 +db 32 +db 37 +db 100 +db 10 +db 0 +align 1 +L59 label byte +db 100 +db 32 +db 37 +db 100 +db 10 +db 0 +align 1 +L58 label byte +db 51 +db 32 +db 37 +db 100 +db 10 +db 0 +align 1 +L56 label byte +db 50 +db 32 +db 37 +db 100 +db 10 +db 0 +align 1 +L54 label byte +db 49 +db 32 +db 37 +db 100 +db 10 +db 0 +align 1 +L46 label byte +db 103 +db 58 +db 10 +db 0 +align 1 +L44 label byte +db 120 +db 32 +db 61 +db 32 +db 37 +db 100 +db 10 +db 0 +align 1 +L25 label byte +db 102 +db 58 +db 10 +db 0 +align 1 +L7 label byte +db 37 +db 99 +db 32 +db 61 +db 32 +db 48 +db 120 +db 37 +db 120 +db 10 +db 0 +align 1 +L6 label byte +db 98 +db 102 +db 110 +db 114 +db 116 +db 118 +db 120 +db 0 +_TEXT ends +end diff --git a/code/tools/lcc/x86/win32/tst/wf1.1bk b/code/tools/lcc/x86/win32/tst/wf1.1bk new file mode 100644 index 0000000..a846267 --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/wf1.1bk @@ -0,0 +1,74 @@ +5 a +2 and +5 buf +16 c +8 char +1 compare +4 cond +5 count +1 d +1 die +3 else +1 entry +1 eof +4 err +1 error +1 exit +1 folded +1 for +1 free +1 frequencies +1 frequency +1 get +2 getchar +3 getword +14 if +2 in +1 index +1 input +1 install +8 int +1 into +1 is +4 isletter +1 it +1 itself +5 left +1 letter +7 lookup +1 main +2 malloc +1 message +2 n +1 necessary +12 next +9 node +4 of +1 on +1 or +1 otherwise +2 out +8 p +3 print +2 printf +16 return +5 right +4 root +25 s +2 storage +3 strcmp +1 strcpy +1 strlen +8 struct +1 structures +2 subtree +1 t +5 tprint +9 tree +1 uses +1 version +1 wf +3 while +21 word +9 words +2 z diff --git a/code/tools/lcc/x86/win32/tst/wf1.2bk b/code/tools/lcc/x86/win32/tst/wf1.2bk new file mode 100644 index 0000000..190e4a1 --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/wf1.2bk @@ -0,0 +1,2 @@ +tst/wf1.c:29: warning: missing return value +tst/wf1.c:87: warning: missing return value diff --git a/code/tools/lcc/x86/win32/tst/wf1.sbk b/code/tools/lcc/x86/win32/tst/wf1.sbk new file mode 100644 index 0000000..d98b2d2 --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/wf1.sbk @@ -0,0 +1,451 @@ +.486 +.model flat +extrn __fltused:near +extrn __ftol:near +public _main +_TEXT segment +_main: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,24 +mov dword ptr (-24)[ebp],0 +mov dword ptr (_next),0 +jmp L3 +L2: +lea edi,(-24)[ebp] +push edi +lea edi,(-20)[ebp] +push edi +call _lookup +add esp,8 +inc dword ptr [eax] +L3: +lea edi,(-20)[ebp] +push edi +call _getword +add esp,4 +cmp eax,0 +jne L2 +mov edi,dword ptr (-24)[ebp] +push edi +call _tprint +add esp,4 +mov eax,0 +L1: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _err +_err: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov edi,dword ptr (20)[ebp] +push edi +lea edi,(L6) +push edi +call _printf +add esp,8 +push 1 +call _exit +add esp,4 +mov eax,0 +L5: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _getword +_getword: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,8 +L8: +L9: +call _getchar +add esp,0 +mov dword ptr (-4)[ebp],eax +cmp eax,-1 +je L11 +mov edi,dword ptr (-4)[ebp] +push edi +call _isletter +add esp,4 +cmp eax,0 +je L8 +L11: +mov edi,dword ptr (20)[ebp] +mov dword ptr (-8)[ebp],edi +jmp L15 +L12: +mov edi,dword ptr (-8)[ebp] +lea esi,(1)[edi] +mov dword ptr (-8)[ebp],esi +mov esi,dword ptr (-4)[ebp] +mov ebx,esi +mov byte ptr [edi],bl +L13: +call _getchar +add esp,0 +mov dword ptr (-4)[ebp],eax +L15: +mov edi,dword ptr (-4)[ebp] +push edi +call _isletter +add esp,4 +mov dword ptr (-4)[ebp],eax +cmp eax,0 +jne L12 +mov edi,dword ptr (-8)[ebp] +mov byte ptr [edi],0 +mov edi,dword ptr (-8)[ebp] +mov esi,dword ptr (20)[ebp] +cmp edi,esi +jbe L16 +mov eax,1 +jmp L7 +L16: +mov eax,0 +L7: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _isletter +_isletter: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov edi,dword ptr (20)[ebp] +cmp edi,65 +jl L19 +cmp edi,90 +jg L19 +add dword ptr (20)[ebp],32 +L19: +mov edi,dword ptr (20)[ebp] +cmp edi,97 +jl L21 +cmp edi,122 +jg L21 +mov eax,dword ptr (20)[ebp] +jmp L18 +L21: +mov eax,0 +L18: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _lookup +_lookup: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,4 +mov edi,dword ptr (24)[ebp] +mov edi,dword ptr [edi] +cmp edi,0 +je L24 +mov edi,dword ptr (24)[ebp] +mov edi,dword ptr [edi] +mov edi,dword ptr (12)[edi] +push edi +mov edi,dword ptr (20)[ebp] +push edi +call _strcmp +add esp,8 +mov dword ptr (-4)[ebp],eax +cmp dword ptr (-4)[ebp],0 +jge L26 +mov edi,dword ptr (24)[ebp] +mov edi,dword ptr [edi] +lea edi,(4)[edi] +push edi +mov edi,dword ptr (20)[ebp] +push edi +call _lookup +add esp,8 +mov edi,eax +jmp L23 +L26: +cmp dword ptr (-4)[ebp],0 +jle L28 +mov edi,dword ptr (24)[ebp] +mov edi,dword ptr [edi] +lea edi,(8)[edi] +push edi +mov edi,dword ptr (20)[ebp] +push edi +call _lookup +add esp,8 +mov edi,eax +jmp L23 +L28: +mov edi,dword ptr (24)[ebp] +mov eax,dword ptr [edi] +jmp L23 +L24: +cmp dword ptr (_next),2000 +jl L30 +lea edi,(L32) +push edi +call _err +add esp,4 +L30: +mov edi,dword ptr (_next) +sal edi,4 +mov dword ptr (_words)[edi],0 +mov edi,dword ptr (_next) +sal edi,4 +mov dword ptr (_words+8)[edi],0 +mov dword ptr (_words+4)[edi],0 +mov edi,dword ptr (20)[ebp] +push edi +call _strlen +add esp,4 +lea edi,(1)[eax] +push edi +call _malloc +add esp,4 +mov esi,dword ptr (_next) +sal esi,4 +mov dword ptr (_words+12)[esi],eax +mov edi,dword ptr (_next) +sal edi,4 +mov edi,dword ptr (_words+12)[edi] +cmp edi,0 +jne L36 +lea edi,(L39) +push edi +call _err +add esp,4 +L36: +mov edi,dword ptr (20)[ebp] +push edi +mov edi,dword ptr (_next) +sal edi,4 +mov edi,dword ptr (_words+12)[edi] +push edi +call _strcpy +add esp,8 +mov edi,dword ptr (_next) +lea esi,(1)[edi] +mov dword ptr (_next),esi +sal edi,4 +lea edi,(_words)[edi] +mov esi,dword ptr (24)[ebp] +mov dword ptr [esi],edi +mov eax,edi +L23: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _tprint +_tprint: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov edi,dword ptr (20)[ebp] +cmp edi,0 +je L42 +mov edi,dword ptr (20)[ebp] +mov edi,dword ptr (4)[edi] +push edi +call _tprint +add esp,4 +mov edi,dword ptr (20)[ebp] +mov esi,dword ptr (12)[edi] +push esi +mov edi,dword ptr [edi] +push edi +lea edi,(L44) +push edi +call _printf +add esp,12 +mov edi,dword ptr (20)[ebp] +mov edi,dword ptr (8)[edi] +push edi +call _tprint +add esp,4 +L42: +mov eax,0 +L41: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _strcmp +_strcmp: +push ebx +push esi +push edi +push ebp +mov ebp,esp +jmp L47 +L46: +mov edi,dword ptr (20)[ebp] +lea esi,(1)[edi] +mov dword ptr (20)[ebp],esi +movsx edi,byte ptr [edi] +cmp edi,0 +jne L49 +mov eax,0 +jmp L45 +L49: +inc dword ptr (24)[ebp] +L47: +mov edi,dword ptr (20)[ebp] +movsx edi,byte ptr [edi] +mov esi,dword ptr (24)[ebp] +movsx esi,byte ptr [esi] +cmp edi,esi +je L46 +mov edi,dword ptr (20)[ebp] +movsx edi,byte ptr [edi] +cmp edi,0 +jne L51 +mov eax,-1 +jmp L45 +L51: +mov edi,dword ptr (24)[ebp] +movsx edi,byte ptr [edi] +cmp edi,0 +jne L53 +mov eax,1 +jmp L45 +L53: +mov edi,dword ptr (20)[ebp] +movsx edi,byte ptr [edi] +mov esi,dword ptr (24)[ebp] +movsx esi,byte ptr [esi] +mov eax,edi +sub eax,esi +L45: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +extrn _strcpy:near +_TEXT segment +_TEXT ends +extrn _strlen:near +_TEXT segment +_TEXT ends +extrn _malloc:near +_TEXT segment +_TEXT ends +extrn _getchar:near +_TEXT segment +_TEXT ends +extrn _exit:near +_TEXT segment +_TEXT ends +extrn _printf:near +_TEXT segment +_TEXT ends +_DATA segment +public _next +align 4 +_next label byte +db 4 dup (0) +public _words +align 4 +_words label byte +db 32000 dup (0) +_DATA ends +_TEXT segment +align 1 +L44 label byte +db 37 +db 100 +db 9 +db 37 +db 115 +db 10 +db 0 +align 1 +L39 label byte +db 111 +db 117 +db 116 +db 32 +db 111 +db 102 +db 32 +db 119 +db 111 +db 114 +db 100 +db 32 +db 115 +db 116 +db 111 +db 114 +db 97 +db 103 +db 101 +db 0 +align 1 +L32 label byte +db 111 +db 117 +db 116 +db 32 +db 111 +db 102 +db 32 +db 110 +db 111 +db 100 +db 101 +db 32 +db 115 +db 116 +db 111 +db 114 +db 97 +db 103 +db 101 +db 0 +align 1 +L6 label byte +db 63 +db 32 +db 37 +db 115 +db 10 +db 0 +_TEXT ends +end diff --git a/code/tools/lcc/x86/win32/tst/yacc.1bk b/code/tools/lcc/x86/win32/tst/yacc.1bk new file mode 100644 index 0000000..60de9b5 --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/yacc.1bk @@ -0,0 +1,10 @@ +a +b +load +negate +push 5 +c +load +multiply +add +store diff --git a/code/tools/lcc/x86/win32/tst/yacc.2bk b/code/tools/lcc/x86/win32/tst/yacc.2bk new file mode 100644 index 0000000..9a4fd61 --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/yacc.2bk @@ -0,0 +1,3 @@ +tst/yacc.c:345: warning: missing return value +tst/yacc.c:349: warning: missing return value +tst/yacc.c:359: warning: missing return value diff --git a/code/tools/lcc/x86/win32/tst/yacc.sbk b/code/tools/lcc/x86/win32/tst/yacc.sbk new file mode 100644 index 0000000..860a864 --- /dev/null +++ b/code/tools/lcc/x86/win32/tst/yacc.sbk @@ -0,0 +1,2489 @@ +.486 +.model flat +extrn __fltused:near +extrn __ftol:near +_DATA segment +public _yyin +align 4 +_yyin label byte +dd __iob +public _yyout +align 4 +_yyout label byte +dd __iob+32 +public _yylex +_DATA ends +_TEXT segment +_yylex: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,4 +jmp L4 +L3: +L6: +mov edi,dword ptr (-4)[ebp] +cmp edi,-1 +jl L7 +cmp edi,4 +jg L7 +jmp dword ptr (L18+4)[edi*4] +_TEXT ends +_TEXT segment +align 4 +L18 label byte +dd L8 +dd L9 +dd L12 +dd L13 +dd L8 +dd L15 +_TEXT ends +_TEXT segment +L9: +call _yywrap +add esp,0 +cmp eax,0 +je L8 +mov eax,0 +jmp L2 +L12: +mov eax,257 +jmp L2 +L13: +mov eax,258 +jmp L2 +L15: +movsx eax,byte ptr (_yytext) +jmp L2 +L7: +mov edi,dword ptr (-4)[ebp] +push edi +lea edi,(L17) +push edi +mov edi,dword ptr (_yyout) +push edi +call _fprintf +add esp,12 +L8: +L4: +call _yylook +add esp,0 +mov dword ptr (-4)[ebp],eax +cmp eax,0 +jge L3 +mov eax,0 +L2: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +public _yyvstop +align 4 +_yyvstop label byte +dd 0 +dd 4 +dd 0 +dd 3 +dd 4 +dd 0 +dd 2 +dd 4 +dd 0 +dd 1 +dd 4 +dd 0 +dd 2 +dd 0 +dd 1 +dd 0 +dd 0 +public _yycrank +align 4 +_yycrank label byte +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 1 +db 3 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 1 +db 4 +db 2 dup (0) +db 1 +db 3 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 1 +db 5 +db 2 dup (0) +db 5 +db 7 +db 2 dup (0) +db 5 +db 7 +db 2 dup (0) +db 5 +db 7 +db 2 dup (0) +db 5 +db 7 +db 2 dup (0) +db 5 +db 7 +db 2 dup (0) +db 5 +db 7 +db 2 dup (0) +db 5 +db 7 +db 2 dup (0) +db 5 +db 7 +db 2 dup (0) +db 5 +db 7 +db 2 dup (0) +db 5 +db 7 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 1 +db 6 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 6 +db 8 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +db 0 +db 0 +db 2 dup (0) +public _yysvec +align 4 +_yysvec label byte +dd 00H +dd 00H +dd 00H +dd _yycrank-4 +dd 00H +dd 00H +dd _yycrank +dd _yysvec+12 +dd 00H +dd _yycrank +dd 00H +dd _yyvstop+4 +dd _yycrank +dd 00H +dd _yyvstop+12 +dd _yycrank+8 +dd 00H +dd _yyvstop+24 +dd _yycrank+76 +dd 00H +dd _yyvstop+36 +dd _yycrank +dd _yysvec+60 +dd _yyvstop+48 +dd _yycrank +dd _yysvec+72 +dd _yyvstop+56 +dd 00H +dd 00H +dd 00H +public _yytop +align 4 +_yytop label byte +dd _yycrank+564 +public _yybgin +align 4 +_yybgin label byte +dd _yysvec+12 +public _yymatch +align 1 +_yymatch label byte +db 0 +db 1 +db 1 +db 1 +db 1 +db 1 +db 1 +db 1 +db 1 +db 9 +db 10 +db 1 +db 1 +db 1 +db 1 +db 1 +db 1 +db 1 +db 1 +db 1 +db 1 +db 1 +db 1 +db 1 +db 1 +db 1 +db 1 +db 1 +db 1 +db 1 +db 1 +db 1 +db 9 +db 1 +db 1 +db 1 +db 1 +db 1 +db 1 +db 1 +db 1 +db 1 +db 1 +db 1 +db 1 +db 1 +db 1 +db 1 +db 48 +db 48 +db 48 +db 48 +db 48 +db 48 +db 48 +db 48 +db 48 +db 48 +db 1 +db 1 +db 1 +db 1 +db 1 +db 1 +db 1 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 1 +db 1 +db 1 +db 1 +db 65 +db 1 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 65 +db 1 +db 1 +db 1 +db 1 +db 1 +db 0 +public _yyextra +align 1 +_yyextra label byte +db 0 +db 0 +db 0 +db 0 +db 0 +db 0 +db 0 +db 0 +db 0 +public _yylineno +align 4 +_yylineno label byte +dd 1 +public _yysptr +align 4 +_yysptr label byte +dd _yysbuf +public _yyprevious +align 4 +_yyprevious label byte +dd 10 +public _yylook +_DATA ends +_TEXT segment +_yylook: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,44 +cmp dword ptr (_yymorfg),0 +jne L35 +lea edi,(_yytext) +mov dword ptr (-16)[ebp],edi +jmp L36 +L35: +mov dword ptr (_yymorfg),0 +mov edi,dword ptr (_yyleng) +lea edi,(_yytext)[edi] +mov dword ptr (-16)[ebp],edi +L36: +L37: +lea edi,(_yylstate) +mov dword ptr (-8)[ebp],edi +mov edi,dword ptr (_yybgin) +mov dword ptr (-4)[ebp],edi +mov dword ptr (_yyestate),edi +cmp dword ptr (_yyprevious),10 +jne L41 +mov edi,dword ptr (-4)[ebp] +lea edi,(12)[edi] +mov dword ptr (-4)[ebp],edi +L41: +L43: +mov edi,dword ptr (-4)[ebp] +mov edi,dword ptr [edi] +mov dword ptr (-12)[ebp],edi +mov edi,dword ptr (-12)[ebp] +lea esi,(_yycrank) +cmp edi,esi +jne L47 +mov edi,dword ptr (-4)[ebp] +mov edi,dword ptr (4)[edi] +mov dword ptr (-28)[ebp],edi +mov edi,dword ptr (-28)[ebp] +cmp edi,0 +jne L49 +jmp L94 +L49: +mov edi,dword ptr (-28)[ebp] +mov edi,dword ptr [edi] +lea esi,(_yycrank) +cmp edi,esi +jne L51 +jmp L94 +L51: +L47: +mov edi,dword ptr (-16)[ebp] +lea esi,(1)[edi] +mov dword ptr (-16)[ebp],esi +mov esi,dword ptr (_yysptr) +lea ebx,(_yysbuf) +cmp esi,ebx +jbe L61 +mov esi,dword ptr (_yysptr) +lea esi,(-1)[esi] +mov dword ptr (_yysptr),esi +movsx esi,byte ptr [esi] +mov dword ptr (-40)[ebp],esi +jmp L62 +L61: +mov esi,dword ptr (_yyin) +lea esi,(4)[esi] +mov ebx,dword ptr [esi] +sub ebx,1 +mov dword ptr [esi],ebx +cmp ebx,0 +jl L63 +mov esi,dword ptr (_yyin) +mov ebx,dword ptr [esi] +lea edx,(1)[ebx] +mov dword ptr [esi],edx +movsx esi,byte ptr [ebx] +and esi,255 +mov dword ptr (-44)[ebp],esi +jmp L64 +L63: +mov esi,dword ptr (_yyin) +push esi +call __filbuf +add esp,4 +mov esi,eax +mov dword ptr (-44)[ebp],esi +L64: +mov esi,dword ptr (-44)[ebp] +mov dword ptr (-40)[ebp],esi +L62: +mov esi,dword ptr (-40)[ebp] +mov dword ptr (_yytchar),esi +cmp esi,10 +jne L59 +inc dword ptr (_yylineno) +mov esi,dword ptr (_yytchar) +mov dword ptr (-36)[ebp],esi +jmp L60 +L59: +mov esi,dword ptr (_yytchar) +mov dword ptr (-36)[ebp],esi +L60: +cmp dword ptr (-36)[ebp],-1 +jne L57 +mov dword ptr (-32)[ebp],0 +jmp L58 +L57: +mov esi,dword ptr (_yytchar) +mov dword ptr (-32)[ebp],esi +L58: +mov esi,dword ptr (-32)[ebp] +mov dword ptr (-20)[ebp],esi +mov ebx,esi +mov byte ptr [edi],bl +L65: +mov edi,dword ptr (-12)[ebp] +mov dword ptr (-24)[ebp],edi +lea esi,(_yycrank) +cmp edi,esi +jbe L66 +mov edi,dword ptr (-20)[ebp] +mov esi,dword ptr (-24)[ebp] +lea edi,[esi][edi*4] +mov dword ptr (-12)[ebp],edi +mov edi,dword ptr (-12)[ebp] +mov esi,edi +mov ebx,dword ptr (_yytop) +cmp esi,ebx +ja L67 +movsx edi,byte ptr [edi] +imul edi,edi,12 +lea edi,(_yysvec)[edi] +mov esi,dword ptr (-4)[ebp] +cmp edi,esi +jne L67 +lea edi,(_yysvec) +mov esi,dword ptr (-12)[ebp] +movsx esi,byte ptr (1)[esi] +imul esi,esi,12 +lea esi,(_yysvec)[esi] +cmp esi,edi +jne L70 +mov edi,dword ptr (-16)[ebp] +lea edi,(-1)[edi] +mov dword ptr (-16)[ebp],edi +movsx edi,byte ptr [edi] +mov dword ptr (_yytchar),edi +cmp dword ptr (_yytchar),10 +jne L72 +dec dword ptr (_yylineno) +L72: +mov edi,dword ptr (_yysptr) +lea esi,(1)[edi] +mov dword ptr (_yysptr),esi +mov esi,dword ptr (_yytchar) +mov ebx,esi +mov byte ptr [edi],bl +jmp L94 +L70: +mov edi,dword ptr (-8)[ebp] +lea esi,(4)[edi] +mov dword ptr (-8)[ebp],esi +mov esi,dword ptr (-12)[ebp] +movsx esi,byte ptr (1)[esi] +imul esi,esi,12 +lea esi,(_yysvec)[esi] +mov dword ptr (-4)[ebp],esi +mov dword ptr [edi],esi +jmp L43 +L66: +mov edi,dword ptr (-12)[ebp] +lea esi,(_yycrank) +cmp edi,esi +jae L75 +lea edi,(_yycrank) +mov esi,dword ptr (-12)[ebp] +sub edi,esi +mov eax,edi +mov edi,4 +cdq +idiv edi +lea edi,(_yycrank)[eax*4] +mov dword ptr (-24)[ebp],edi +mov dword ptr (-12)[ebp],edi +mov edi,dword ptr (-20)[ebp] +mov esi,dword ptr (-12)[ebp] +lea edi,[esi][edi*4] +mov dword ptr (-12)[ebp],edi +mov edi,dword ptr (-12)[ebp] +mov esi,edi +mov ebx,dword ptr (_yytop) +cmp esi,ebx +ja L77 +movsx edi,byte ptr [edi] +imul edi,edi,12 +lea edi,(_yysvec)[edi] +mov esi,dword ptr (-4)[ebp] +cmp edi,esi +jne L77 +lea edi,(_yysvec) +mov esi,dword ptr (-12)[ebp] +movsx esi,byte ptr (1)[esi] +imul esi,esi,12 +lea esi,(_yysvec)[esi] +cmp esi,edi +jne L79 +mov edi,dword ptr (-16)[ebp] +lea edi,(-1)[edi] +mov dword ptr (-16)[ebp],edi +movsx edi,byte ptr [edi] +mov dword ptr (_yytchar),edi +cmp dword ptr (_yytchar),10 +jne L81 +dec dword ptr (_yylineno) +L81: +mov edi,dword ptr (_yysptr) +lea esi,(1)[edi] +mov dword ptr (_yysptr),esi +mov esi,dword ptr (_yytchar) +mov ebx,esi +mov byte ptr [edi],bl +jmp L94 +L79: +mov edi,dword ptr (-8)[ebp] +lea esi,(4)[edi] +mov dword ptr (-8)[ebp],esi +mov esi,dword ptr (-12)[ebp] +movsx esi,byte ptr (1)[esi] +imul esi,esi,12 +lea esi,(_yysvec)[esi] +mov dword ptr (-4)[ebp],esi +mov dword ptr [edi],esi +jmp L43 +L77: +mov edi,dword ptr (-20)[ebp] +movsx edi,byte ptr (_yymatch)[edi] +mov esi,dword ptr (-24)[ebp] +lea edi,[esi][edi*4] +mov dword ptr (-12)[ebp],edi +mov edi,dword ptr (-12)[ebp] +mov esi,edi +mov ebx,dword ptr (_yytop) +cmp esi,ebx +ja L83 +movsx edi,byte ptr [edi] +imul edi,edi,12 +lea edi,(_yysvec)[edi] +mov esi,dword ptr (-4)[ebp] +cmp edi,esi +jne L83 +lea edi,(_yysvec) +mov esi,dword ptr (-12)[ebp] +movsx esi,byte ptr (1)[esi] +imul esi,esi,12 +lea esi,(_yysvec)[esi] +cmp esi,edi +jne L85 +mov edi,dword ptr (-16)[ebp] +lea edi,(-1)[edi] +mov dword ptr (-16)[ebp],edi +movsx edi,byte ptr [edi] +mov dword ptr (_yytchar),edi +cmp dword ptr (_yytchar),10 +jne L87 +dec dword ptr (_yylineno) +L87: +mov edi,dword ptr (_yysptr) +lea esi,(1)[edi] +mov dword ptr (_yysptr),esi +mov esi,dword ptr (_yytchar) +mov ebx,esi +mov byte ptr [edi],bl +jmp L94 +L85: +mov edi,dword ptr (-8)[ebp] +lea esi,(4)[edi] +mov dword ptr (-8)[ebp],esi +mov esi,dword ptr (-12)[ebp] +movsx esi,byte ptr (1)[esi] +imul esi,esi,12 +lea esi,(_yysvec)[esi] +mov dword ptr (-4)[ebp],esi +mov dword ptr [edi],esi +jmp L43 +L83: +L75: +L67: +mov edi,dword ptr (-4)[ebp] +mov edi,dword ptr (4)[edi] +mov dword ptr (-4)[ebp],edi +cmp edi,0 +je L89 +mov edi,dword ptr (-4)[ebp] +mov edi,dword ptr [edi] +mov dword ptr (-12)[ebp],edi +lea esi,(_yycrank) +cmp edi,esi +je L89 +jmp L65 +L89: +mov edi,dword ptr (-16)[ebp] +lea edi,(-1)[edi] +mov dword ptr (-16)[ebp],edi +movsx edi,byte ptr [edi] +mov dword ptr (_yytchar),edi +cmp dword ptr (_yytchar),10 +jne L91 +dec dword ptr (_yylineno) +L91: +mov edi,dword ptr (_yysptr) +lea esi,(1)[edi] +mov dword ptr (_yysptr),esi +mov esi,dword ptr (_yytchar) +mov ebx,esi +mov byte ptr [edi],bl +jmp L94 +L93: +mov edi,dword ptr (-16)[ebp] +lea esi,(-1)[edi] +mov dword ptr (-16)[ebp],esi +mov byte ptr [edi],0 +mov edi,dword ptr (-8)[ebp] +mov edi,dword ptr [edi] +mov esi,edi +cmp esi,0 +je L96 +mov edi,dword ptr (8)[edi] +mov dword ptr (_yyfnd),edi +cmp edi,0 +je L96 +mov edi,dword ptr (_yyfnd) +cmp dword ptr [edi],0 +jle L96 +mov edi,dword ptr (-8)[ebp] +mov dword ptr (_yyolsp),edi +mov edi,dword ptr (_yyfnd) +mov edi,dword ptr [edi] +movsx edi,byte ptr (_yyextra)[edi] +cmp edi,0 +je L98 +jmp L101 +L100: +mov edi,dword ptr (-8)[ebp] +lea edi,(-4)[edi] +mov dword ptr (-8)[ebp],edi +mov edi,dword ptr (-16)[ebp] +lea esi,(-1)[edi] +mov dword ptr (-16)[ebp],esi +movsx edi,byte ptr [edi] +mov dword ptr (_yytchar),edi +cmp dword ptr (_yytchar),10 +jne L103 +dec dword ptr (_yylineno) +L103: +mov edi,dword ptr (_yysptr) +lea esi,(1)[edi] +mov dword ptr (_yysptr),esi +mov esi,dword ptr (_yytchar) +mov ebx,esi +mov byte ptr [edi],bl +L101: +mov edi,dword ptr (_yyfnd) +mov edi,dword ptr [edi] +neg edi +push edi +mov edi,dword ptr (-8)[ebp] +mov edi,dword ptr [edi] +mov edi,dword ptr (8)[edi] +push edi +call _yyback +add esp,8 +cmp eax,1 +je L105 +mov edi,dword ptr (-8)[ebp] +lea esi,(_yylstate) +cmp edi,esi +ja L100 +L105: +L98: +mov edi,dword ptr (-16)[ebp] +movsx esi,byte ptr [edi] +mov dword ptr (_yyprevious),esi +mov esi,dword ptr (-8)[ebp] +mov dword ptr (_yylsp),esi +lea esi,(_yytext) +sub edi,esi +lea edi,(1)[edi] +mov dword ptr (_yyleng),edi +mov edi,dword ptr (_yyleng) +mov byte ptr (_yytext)[edi],0 +mov edi,dword ptr (_yyfnd) +lea esi,(4)[edi] +mov dword ptr (_yyfnd),esi +mov eax,dword ptr [edi] +jmp L34 +L96: +mov edi,dword ptr (-16)[ebp] +movsx edi,byte ptr [edi] +mov dword ptr (_yytchar),edi +cmp dword ptr (_yytchar),10 +jne L106 +dec dword ptr (_yylineno) +L106: +mov edi,dword ptr (_yysptr) +lea esi,(1)[edi] +mov dword ptr (_yysptr),esi +mov esi,dword ptr (_yytchar) +mov ebx,esi +mov byte ptr [edi],bl +L94: +mov edi,dword ptr (-8)[ebp] +lea esi,(-4)[edi] +mov dword ptr (-8)[ebp],esi +lea esi,(_yylstate) +cmp edi,esi +ja L93 +movsx edi,byte ptr (_yytext) +cmp edi,0 +jne L108 +lea edi,(_yysbuf) +mov dword ptr (_yysptr),edi +mov eax,0 +jmp L34 +L108: +mov edi,dword ptr (_yysptr) +lea esi,(_yysbuf) +cmp edi,esi +jbe L118 +mov edi,dword ptr (_yysptr) +lea edi,(-1)[edi] +mov dword ptr (_yysptr),edi +movsx edi,byte ptr [edi] +mov dword ptr (-40)[ebp],edi +jmp L119 +L118: +mov edi,dword ptr (_yyin) +lea edi,(4)[edi] +mov esi,dword ptr [edi] +sub esi,1 +mov dword ptr [edi],esi +cmp esi,0 +jl L120 +mov edi,dword ptr (_yyin) +mov esi,dword ptr [edi] +lea ebx,(1)[esi] +mov dword ptr [edi],ebx +movsx edi,byte ptr [esi] +and edi,255 +mov dword ptr (-44)[ebp],edi +jmp L121 +L120: +mov edi,dword ptr (_yyin) +push edi +call __filbuf +add esp,4 +mov edi,eax +mov dword ptr (-44)[ebp],edi +L121: +mov edi,dword ptr (-44)[ebp] +mov dword ptr (-40)[ebp],edi +L119: +mov edi,dword ptr (-40)[ebp] +mov dword ptr (_yytchar),edi +cmp edi,10 +jne L116 +inc dword ptr (_yylineno) +mov edi,dword ptr (_yytchar) +mov dword ptr (-36)[ebp],edi +jmp L117 +L116: +mov edi,dword ptr (_yytchar) +mov dword ptr (-36)[ebp],edi +L117: +cmp dword ptr (-36)[ebp],-1 +jne L114 +mov dword ptr (-32)[ebp],0 +jmp L115 +L114: +mov edi,dword ptr (_yytchar) +mov dword ptr (-32)[ebp],edi +L115: +mov edi,dword ptr (-32)[ebp] +mov ebx,edi +mov byte ptr (_yytext),bl +movsx edi,bl +mov dword ptr (_yyprevious),edi +cmp dword ptr (_yyprevious),0 +jle L122 +mov edi,dword ptr (_yyout) +lea edi,(4)[edi] +mov esi,dword ptr [edi] +sub esi,1 +mov dword ptr [edi],esi +cmp esi,0 +jl L125 +mov edi,dword ptr (_yyout) +mov esi,dword ptr [edi] +lea ebx,(1)[esi] +mov dword ptr [edi],ebx +mov edi,dword ptr (_yyprevious) +mov ebx,edi +mov byte ptr [esi],bl +jmp L126 +L125: +mov edi,dword ptr (_yyout) +push edi +mov edi,dword ptr (_yyprevious) +push edi +call __flsbuf +add esp,8 +L126: +L122: +lea edi,(_yytext) +mov dword ptr (-16)[ebp],edi +jmp L37 +L34: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _yyback +_yyback: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov edi,dword ptr (20)[ebp] +cmp edi,0 +jne L131 +mov eax,0 +jmp L127 +L130: +mov edi,dword ptr (20)[ebp] +lea esi,(4)[edi] +mov dword ptr (20)[ebp],esi +mov esi,dword ptr (24)[ebp] +cmp dword ptr [edi],esi +jne L133 +mov eax,1 +jmp L127 +L133: +L131: +mov edi,dword ptr (20)[ebp] +cmp dword ptr [edi],0 +jne L130 +mov eax,0 +L127: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _yyinput +_yyinput: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,16 +mov edi,dword ptr (_yysptr) +lea esi,(_yysbuf) +cmp edi,esi +jbe L144 +mov edi,dword ptr (_yysptr) +lea edi,(-1)[edi] +mov dword ptr (_yysptr),edi +movsx edi,byte ptr [edi] +mov dword ptr (-12)[ebp],edi +jmp L145 +L144: +mov edi,dword ptr (_yyin) +lea edi,(4)[edi] +mov esi,dword ptr [edi] +sub esi,1 +mov dword ptr [edi],esi +cmp esi,0 +jl L146 +mov edi,dword ptr (_yyin) +mov esi,dword ptr [edi] +lea ebx,(1)[esi] +mov dword ptr [edi],ebx +movsx edi,byte ptr [esi] +and edi,255 +mov dword ptr (-16)[ebp],edi +jmp L147 +L146: +mov edi,dword ptr (_yyin) +push edi +call __filbuf +add esp,4 +mov edi,eax +mov dword ptr (-16)[ebp],edi +L147: +mov edi,dword ptr (-16)[ebp] +mov dword ptr (-12)[ebp],edi +L145: +mov edi,dword ptr (-12)[ebp] +mov dword ptr (_yytchar),edi +cmp edi,10 +jne L142 +inc dword ptr (_yylineno) +mov edi,dword ptr (_yytchar) +mov dword ptr (-8)[ebp],edi +jmp L143 +L142: +mov edi,dword ptr (_yytchar) +mov dword ptr (-8)[ebp],edi +L143: +cmp dword ptr (-8)[ebp],-1 +jne L140 +mov dword ptr (-4)[ebp],0 +jmp L141 +L140: +mov edi,dword ptr (_yytchar) +mov dword ptr (-4)[ebp],edi +L141: +mov eax,dword ptr (-4)[ebp] +L135: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _yyoutput +_yyoutput: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov edi,dword ptr (_yyout) +lea edi,(4)[edi] +mov esi,dword ptr [edi] +sub esi,1 +mov dword ptr [edi],esi +cmp esi,0 +jl L150 +mov edi,dword ptr (_yyout) +mov esi,dword ptr [edi] +lea ebx,(1)[esi] +mov dword ptr [edi],ebx +mov edi,dword ptr (20)[ebp] +mov ebx,edi +mov byte ptr [esi],bl +jmp L151 +L150: +mov edi,dword ptr (_yyout) +push edi +mov edi,dword ptr (20)[ebp] +push edi +call __flsbuf +add esp,8 +L151: +mov eax,0 +L148: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _yyunput +_yyunput: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov edi,dword ptr (20)[ebp] +mov dword ptr (_yytchar),edi +cmp dword ptr (_yytchar),10 +jne L153 +dec dword ptr (_yylineno) +L153: +mov edi,dword ptr (_yysptr) +lea esi,(1)[edi] +mov dword ptr (_yysptr),esi +mov esi,dword ptr (_yytchar) +mov ebx,esi +mov byte ptr [edi],bl +mov eax,0 +L152: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _main +_main: +push ebx +push esi +push edi +push ebp +mov ebp,esp +call _yyparse +add esp,0 +mov eax,0 +L155: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _yyerror +_yyerror: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov edi,dword ptr (20)[ebp] +push edi +lea edi,(L157) +push edi +call _printf +add esp,8 +mov eax,0 +L156: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +public _yyexca +align 2 +_yyexca label byte +dw -1 +dw 1 +dw 0 +dw -1 +dw -2 +dw 0 +public _yyact +align 2 +_yyact label byte +dw 12 +dw 2 +dw 9 +dw 8 +dw 17 +dw 11 +dw 25 +dw 17 +dw 15 +dw 18 +dw 16 +dw 10 +dw 18 +dw 17 +dw 15 +dw 7 +dw 16 +dw 13 +dw 18 +dw 5 +dw 3 +dw 1 +dw 0 +dw 19 +dw 20 +dw 0 +dw 0 +dw 21 +dw 22 +dw 23 +dw 24 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 6 +dw 14 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 0 +dw 4 +dw 6 +public _yypact +align 2 +_yypact label byte +dw -1000 +dw -9 +dw -1000 +dw 5 +dw -7 +dw -59 +dw -1000 +dw -1000 +dw -1000 +dw -40 +dw -29 +dw -40 +dw -40 +dw -1000 +dw -1000 +dw -40 +dw -40 +dw -40 +dw -40 +dw -38 +dw -35 +dw -38 +dw -38 +dw -1000 +dw -1000 +dw -1000 +public _yypgo +align 2 +_yypgo label byte +dw 0 +dw 21 +dw 20 +dw 17 +dw 11 +public _yyr1 +align 2 +_yyr1 label byte +dw 0 +dw 1 +dw 1 +dw 1 +dw 1 +dw 2 +dw 4 +dw 4 +dw 4 +dw 4 +dw 4 +dw 4 +dw 4 +dw 4 +dw 3 +public _yyr2 +align 2 +_yyr2 label byte +dw 0 +dw 0 +dw 2 +dw 3 +dw 3 +dw 3 +dw 3 +dw 3 +dw 3 +dw 3 +dw 2 +dw 3 +dw 1 +dw 1 +dw 1 +public _yychk +align 2 +_yychk label byte +dw -1000 +dw -1 +dw 10 +dw -2 +dw 256 +dw -3 +dw 257 +dw 10 +dw 10 +dw 61 +dw -4 +dw 45 +dw 40 +dw -3 +dw 258 +dw 43 +dw 45 +dw 42 +dw 47 +dw -4 +dw -4 +dw -4 +dw -4 +dw -4 +dw -4 +dw 41 +public _yydef +align 2 +_yydef label byte +dw 1 +dw -2 +dw 2 +dw 0 +dw 0 +dw 0 +dw 14 +dw 3 +dw 4 +dw 0 +dw 5 +dw 0 +dw 0 +dw 12 +dw 13 +dw 0 +dw 0 +dw 0 +dw 0 +dw 10 +dw 0 +dw 6 +dw 7 +dw 8 +dw 9 +dw 11 +public _yychar +align 4 +_yychar label byte +dd -1 +public _yynerrs +align 4 +_yynerrs label byte +dd 0 +public _yyerrflag +align 2 +_yyerrflag label byte +dw 0 +public _yyparse +_DATA ends +_TEXT segment +_yyparse: +push ebx +push esi +push edi +push ebp +mov ebp,esp +sub esp,332 +mov word ptr (-6)[ebp],0 +mov dword ptr (_yychar),-1 +mov dword ptr (_yynerrs),0 +mov word ptr (_yyerrflag),0 +lea edi,(-328)[ebp] +mov dword ptr (-12)[ebp],edi +lea edi,(_yyv-4) +mov dword ptr (-20)[ebp],edi +L161: +mov edi,dword ptr (-12)[ebp] +lea edi,(2)[edi] +mov dword ptr (-12)[ebp],edi +lea esi,(-26)[ebp] +cmp edi,esi +jbe L162 +lea edi,(L165) +push edi +call _yyerror +add esp,4 +mov eax,1 +jmp L158 +L162: +mov edi,dword ptr (-12)[ebp] +mov si,word ptr (-6)[ebp] +mov word ptr [edi],si +mov edi,dword ptr (-20)[ebp] +lea edi,(4)[edi] +mov dword ptr (-20)[ebp],edi +mov edi,dword ptr (-20)[ebp] +mov esi,dword ptr (_yyval) +mov dword ptr [edi],esi +L166: +movsx edi,word ptr (-6)[ebp] +mov di,word ptr (_yypact)[edi*2] +mov word ptr (-14)[ebp],di +movsx edi,word ptr (-14)[ebp] +cmp edi,-1000 +jg L167 +jmp L169 +L167: +cmp dword ptr (_yychar),0 +jge L170 +call _yylex +add esp,0 +mov dword ptr (_yychar),eax +cmp eax,0 +jge L172 +mov dword ptr (_yychar),0 +L172: +L170: +movsx edi,word ptr (-14)[ebp] +mov esi,dword ptr (_yychar) +lea edi,[esi][edi] +mov word ptr (-14)[ebp],di +movsx edi,di +cmp edi,0 +jl L176 +movsx edi,word ptr (-14)[ebp] +cmp edi,249 +jl L174 +L176: +jmp L169 +L174: +movsx edi,word ptr (-14)[ebp] +mov di,word ptr (_yyact)[edi*2] +mov word ptr (-14)[ebp],di +movsx edi,di +movsx edi,word ptr (_yychk)[edi*2] +cmp edi,dword ptr (_yychar) +jne L177 +mov dword ptr (_yychar),-1 +mov edi,dword ptr (_yylval) +mov dword ptr (_yyval),edi +mov di,word ptr (-14)[ebp] +mov word ptr (-6)[ebp],di +movsx edi,word ptr (_yyerrflag) +cmp edi,0 +jle L161 +movsx edi,word ptr (_yyerrflag) +sub edi,1 +mov word ptr (_yyerrflag),di +jmp L161 +L177: +L169: +movsx edi,word ptr (-6)[ebp] +mov di,word ptr (_yydef)[edi*2] +mov word ptr (-14)[ebp],di +movsx edi,di +cmp edi,-2 +jne L181 +cmp dword ptr (_yychar),0 +jge L183 +call _yylex +add esp,0 +mov dword ptr (_yychar),eax +cmp eax,0 +jge L185 +mov dword ptr (_yychar),0 +L185: +L183: +lea edi,(_yyexca) +mov dword ptr (-24)[ebp],edi +jmp L190 +L187: +L188: +mov edi,dword ptr (-24)[ebp] +lea edi,(4)[edi] +mov dword ptr (-24)[ebp],edi +L190: +mov edi,dword ptr (-24)[ebp] +movsx esi,word ptr [edi] +cmp esi,-1 +jne L187 +movsx edi,word ptr (2)[edi] +movsx esi,word ptr (-6)[ebp] +cmp edi,esi +jne L187 +jmp L192 +L191: +mov edi,dword ptr (-24)[ebp] +movsx edi,word ptr [edi] +cmp edi,dword ptr (_yychar) +jne L194 +jmp L193 +L194: +L192: +mov edi,dword ptr (-24)[ebp] +lea edi,(4)[edi] +mov dword ptr (-24)[ebp],edi +movsx edi,word ptr [edi] +cmp edi,0 +jge L191 +L193: +mov edi,dword ptr (-24)[ebp] +mov di,word ptr (2)[edi] +mov word ptr (-14)[ebp],di +movsx edi,di +cmp edi,0 +jge L196 +mov eax,0 +jmp L158 +L196: +L181: +movsx edi,word ptr (-14)[ebp] +cmp edi,0 +jne L198 +movsx edi,word ptr (_yyerrflag) +mov dword ptr (-332)[ebp],edi +mov edi,dword ptr (-332)[ebp] +cmp edi,0 +jl L200 +cmp edi,3 +jg L200 +jmp dword ptr (L216)[edi*4] +_TEXT ends +_TEXT segment +align 4 +L216 label byte +dd L203 +dd L206 +dd L206 +dd L213 +_TEXT ends +_TEXT segment +L203: +lea edi,(L204) +push edi +call _yyerror +add esp,4 +L205: +inc dword ptr (_yynerrs) +L206: +mov word ptr (_yyerrflag),3 +jmp L208 +L207: +mov edi,dword ptr (-12)[ebp] +movsx edi,word ptr [edi] +movsx edi,word ptr (_yypact)[edi*2] +lea edi,(256)[edi] +mov word ptr (-14)[ebp],di +movsx edi,word ptr (-14)[ebp] +cmp edi,0 +jl L210 +cmp edi,249 +jge L210 +movsx edi,word ptr (_yyact)[edi*2] +movsx edi,word ptr (_yychk)[edi*2] +cmp edi,256 +jne L210 +movsx edi,word ptr (-14)[ebp] +mov di,word ptr (_yyact)[edi*2] +mov word ptr (-6)[ebp],di +jmp L161 +L210: +mov edi,dword ptr (-12)[ebp] +movsx esi,word ptr [edi] +mov si,word ptr (_yypact)[esi*2] +mov word ptr (-14)[ebp],si +lea edi,(-2)[edi] +mov dword ptr (-12)[ebp],edi +mov edi,dword ptr (-20)[ebp] +lea edi,(-4)[edi] +mov dword ptr (-20)[ebp],edi +L208: +mov edi,dword ptr (-12)[ebp] +lea esi,(-326)[ebp] +cmp edi,esi +jae L207 +L212: +mov eax,1 +jmp L158 +L213: +cmp dword ptr (_yychar),0 +jne L214 +jmp L212 +L214: +mov dword ptr (_yychar),-1 +jmp L166 +L200: +L198: +mov di,word ptr (-14)[ebp] +movsx esi,di +lea esi,[esi*2] +lea ebx,(_yyr2)[esi] +mov edx,dword ptr (-12)[ebp] +movsx ecx,word ptr [ebx] +lea ecx,[ecx*2] +sub edx,ecx +mov dword ptr (-12)[ebp],edx +mov edx,dword ptr (-20)[ebp] +mov dword ptr (-4)[ebp],edx +movsx ebx,word ptr [ebx] +lea ebx,[ebx*4] +sub edx,ebx +mov dword ptr (-20)[ebp],edx +mov ebx,dword ptr (-20)[ebp] +mov ebx,dword ptr (4)[ebx] +mov dword ptr (_yyval),ebx +mov word ptr (-328)[ebp],di +mov di,word ptr (_yyr1)[esi] +mov word ptr (-14)[ebp],di +movsx edi,word ptr (-14)[ebp] +movsx edi,word ptr (_yypgo)[edi*2] +mov esi,dword ptr (-12)[ebp] +movsx esi,word ptr [esi] +lea edi,[esi][edi] +lea edi,(1)[edi] +mov word ptr (-26)[ebp],di +movsx edi,word ptr (-26)[ebp] +cmp edi,249 +jge L219 +mov di,word ptr (_yyact)[edi*2] +mov word ptr (-6)[ebp],di +movsx edi,di +movsx edi,word ptr (_yychk)[edi*2] +movsx esi,word ptr (-14)[ebp] +neg esi +cmp edi,esi +je L217 +L219: +movsx edi,word ptr (-14)[ebp] +movsx edi,word ptr (_yypgo)[edi*2] +mov di,word ptr (_yyact)[edi*2] +mov word ptr (-6)[ebp],di +L217: +movsx edi,word ptr (-328)[ebp] +mov dword ptr (-332)[ebp],edi +mov edi,dword ptr (-332)[ebp] +cmp edi,4 +jl L161 +cmp edi,14 +jg L161 +jmp dword ptr (L241-16)[edi*4] +_TEXT ends +_TEXT segment +align 4 +L241 label byte +dd L223 +dd L224 +dd L226 +dd L228 +dd L230 +dd L232 +dd L234 +dd L161 +dd L236 +dd L238 +dd L240 +_TEXT ends +_TEXT segment +L223: +mov word ptr (_yyerrflag),0 +jmp L161 +L224: +lea edi,(L225) +push edi +call _printf +add esp,4 +jmp L161 +L226: +lea edi,(L227) +push edi +call _printf +add esp,4 +jmp L161 +L228: +lea edi,(L229) +push edi +call _printf +add esp,4 +jmp L161 +L230: +lea edi,(L231) +push edi +call _printf +add esp,4 +jmp L161 +L232: +lea edi,(L233) +push edi +call _printf +add esp,4 +jmp L161 +L234: +lea edi,(L235) +push edi +call _printf +add esp,4 +jmp L161 +L236: +lea edi,(L237) +push edi +call _printf +add esp,4 +jmp L161 +L238: +lea edi,(_yytext) +push edi +lea edi,(L239) +push edi +call _printf +add esp,8 +jmp L161 +L240: +lea edi,(_yytext) +push edi +lea edi,(L157) +push edi +call _printf +add esp,8 +jmp L161 +L158: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +public _yywrap +_yywrap: +push ebx +push esi +push edi +push ebp +mov ebp,esp +mov eax,1 +L243: +mov esp,ebp +pop ebp +pop edi +pop esi +pop ebx +ret +_TEXT ends +_DATA segment +public _yyv +align 4 +_yyv label byte +db 600 dup (0) +public _yyfnd +align 4 +_yyfnd label byte +db 4 dup (0) +public _yyolsp +align 4 +_yyolsp label byte +db 4 dup (0) +public _yylsp +align 4 +_yylsp label byte +db 4 dup (0) +public _yylstate +align 4 +_yylstate label byte +db 800 dup (0) +public _yyestate +align 4 +_yyestate label byte +db 4 dup (0) +public _yytchar +align 4 +_yytchar label byte +db 4 dup (0) +public _yysbuf +align 1 +_yysbuf label byte +db 200 dup (0) +public _yymorfg +align 4 +_yymorfg label byte +db 4 dup (0) +public _yytext +align 1 +_yytext label byte +db 200 dup (0) +public _yyleng +align 4 +_yyleng label byte +db 4 dup (0) +_DATA ends +extrn _printf:near +_DATA segment +_DATA ends +extrn _fprintf:near +_DATA segment +_DATA ends +extrn __flsbuf:near +_DATA segment +_DATA ends +extrn __filbuf:near +_DATA segment +_DATA ends +extrn __iob:near +_DATA segment +public _yyval +align 4 +_yyval label byte +db 4 dup (0) +public _yylval +align 4 +_yylval label byte +db 4 dup (0) +_DATA ends +_TEXT segment +align 1 +L239 label byte +db 112 +db 117 +db 115 +db 104 +db 32 +db 37 +db 115 +db 10 +db 0 +align 1 +L237 label byte +db 108 +db 111 +db 97 +db 100 +db 10 +db 0 +align 1 +L235 label byte +db 110 +db 101 +db 103 +db 97 +db 116 +db 101 +db 10 +db 0 +align 1 +L233 label byte +db 100 +db 105 +db 118 +db 105 +db 100 +db 101 +db 10 +db 0 +align 1 +L231 label byte +db 109 +db 117 +db 108 +db 116 +db 105 +db 112 +db 108 +db 121 +db 10 +db 0 +align 1 +L229 label byte +db 110 +db 101 +db 103 +db 97 +db 116 +db 101 +db 10 +db 97 +db 100 +db 100 +db 10 +db 0 +align 1 +L227 label byte +db 97 +db 100 +db 100 +db 10 +db 0 +align 1 +L225 label byte +db 115 +db 116 +db 111 +db 114 +db 101 +db 10 +db 0 +align 1 +L204 label byte +db 115 +db 121 +db 110 +db 116 +db 97 +db 120 +db 32 +db 101 +db 114 +db 114 +db 111 +db 114 +db 0 +align 1 +L165 label byte +db 121 +db 97 +db 99 +db 99 +db 32 +db 115 +db 116 +db 97 +db 99 +db 107 +db 32 +db 111 +db 118 +db 101 +db 114 +db 102 +db 108 +db 111 +db 119 +db 0 +align 1 +L157 label byte +db 37 +db 115 +db 10 +db 0 +align 1 +L17 label byte +db 98 +db 97 +db 100 +db 32 +db 115 +db 119 +db 105 +db 116 +db 99 +db 104 +db 32 +db 121 +db 121 +db 108 +db 111 +db 111 +db 107 +db 32 +db 37 +db 100 +db 0 +_TEXT ends +end diff --git a/code/tools/q3asm/Makefile b/code/tools/q3asm/Makefile new file mode 100644 index 0000000..504bcdd --- /dev/null +++ b/code/tools/q3asm/Makefile @@ -0,0 +1,13 @@ +# yeah, couldn't do more simple really + +CC=gcc +CFLAGS=-O2 -Wall -Werror -fno-strict-aliasing + +default: q3asm + +q3asm: q3asm.c cmdlib.c + $(CC) $(CFLAGS) -o $@ $^ + +clean: + rm -f q3asm *~ *.o + diff --git a/code/tools/q3asm/README.Id b/code/tools/q3asm/README.Id new file mode 100644 index 0000000..adacb50 --- /dev/null +++ b/code/tools/q3asm/README.Id @@ -0,0 +1,10 @@ +2002-10-25 Timothee Besset +If you are looking for a faster version of the q3asm tool, try: +http://www.icculus.org/~phaethon/q3/q3asm-turbo/q3asm-turbo.html + +2001-10-31 Timothee Besset +updated from the $/source/q3asm code +modified for portability and use with >= 1.31 mod source release + +the cmdlib.c cmdlib.h mathlib.h qfiles.h have been copied from +$/source/common diff --git a/code/tools/q3asm/cmdlib.c b/code/tools/q3asm/cmdlib.c new file mode 100644 index 0000000..f3d8554 --- /dev/null +++ b/code/tools/q3asm/cmdlib.c @@ -0,0 +1,1223 @@ +/* +=========================================================================== +Copyright (C) 1999-2005 Id Software, Inc. + +This file is part of Quake III Arena source code. + +Quake III Arena source code is free software; you can redistribute it +and/or modify it under the terms of the GNU General Public License as +published by the Free Software Foundation; either version 2 of the License, +or (at your option) any later version. + +Quake III Arena source code is distributed in the hope that it will be +useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Foobar; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +=========================================================================== +*/ +// cmdlib.c + +#include "cmdlib.h" +#include +#include + +#ifdef WIN32 +#include +#include +#endif + +#ifdef __linux +#include +#endif + +#ifdef NeXT +#include +#endif + +#define BASEDIRNAME "quake" // assumed to have a 2 or 3 following +#define PATHSEPERATOR '/' + +// set these before calling CheckParm +int myargc; +char **myargv; + +char com_token[1024]; +qboolean com_eof; + +qboolean archive; +char archivedir[1024]; + + +/* +=================== +ExpandWildcards + +Mimic unix command line expansion +=================== +*/ +#define MAX_EX_ARGC 1024 +int ex_argc; +char *ex_argv[MAX_EX_ARGC]; +#ifdef _WIN32 +#include "io.h" +void ExpandWildcards( int *argc, char ***argv ) +{ + struct _finddata_t fileinfo; + int handle; + int i; + char filename[1024]; + char filebase[1024]; + char *path; + + ex_argc = 0; + for (i=0 ; i<*argc ; i++) + { + path = (*argv)[i]; + if ( path[0] == '-' + || ( !strstr(path, "*") && !strstr(path, "?") ) ) + { + ex_argv[ex_argc++] = path; + continue; + } + + handle = _findfirst (path, &fileinfo); + if (handle == -1) + return; + + ExtractFilePath (path, filebase); + + do + { + sprintf (filename, "%s%s", filebase, fileinfo.name); + ex_argv[ex_argc++] = copystring (filename); + } while (_findnext( handle, &fileinfo ) != -1); + + _findclose (handle); + } + + *argc = ex_argc; + *argv = ex_argv; +} +#else +void ExpandWildcards (int *argc, char ***argv) +{ +} +#endif + +#ifdef WIN_ERROR +#include +/* +================= +Error + +For abnormal program terminations in windowed apps +================= +*/ +void Error( const char *error, ... ) +{ + va_list argptr; + char text[1024]; + char text2[1024]; + int err; + + err = GetLastError (); + + va_start (argptr,error); + vsprintf (text, error,argptr); + va_end (argptr); + + sprintf (text2, "%s\nGetLastError() = %i", text, err); + MessageBox(NULL, text2, "Error", 0 /* MB_OK */ ); + + exit (1); +} + +#else +/* +================= +Error + +For abnormal program terminations in console apps +================= +*/ +void Error( const char *error, ...) +{ + va_list argptr; + + _printf ("\n************ ERROR ************\n"); + + va_start (argptr,error); + vprintf (error,argptr); + va_end (argptr); + _printf ("\r\n"); + + exit (1); +} +#endif + +// only printf if in verbose mode +qboolean verbose = qfalse; +void qprintf( const char *format, ... ) { + va_list argptr; + + if (!verbose) + return; + + va_start (argptr,format); + vprintf (format,argptr); + va_end (argptr); + +} + +#ifdef WIN32 +HWND hwndOut = NULL; +qboolean lookedForServer = qfalse; +UINT wm_BroadcastCommand = -1; +#endif + +void _printf( const char *format, ... ) { + va_list argptr; + char text[4096]; +#ifdef WIN32 + ATOM a; +#endif + va_start (argptr,format); + vsprintf (text, format, argptr); + va_end (argptr); + + printf(text); + +#ifdef WIN32 + if (!lookedForServer) { + lookedForServer = qtrue; + hwndOut = FindWindow(NULL, "Q3Map Process Server"); + if (hwndOut) { + wm_BroadcastCommand = RegisterWindowMessage( "Q3MPS_BroadcastCommand" ); + } + } + if (hwndOut) { + a = GlobalAddAtom(text); + PostMessage(hwndOut, wm_BroadcastCommand, 0, (LPARAM)a); + } +#endif +} + + +/* + +qdir will hold the path up to the quake directory, including the slash + + f:\quake\ + /raid/quake/ + +gamedir will hold qdir + the game directory (id1, id2, etc) + + */ + +char qdir[1024]; +char gamedir[1024]; +char writedir[1024]; + +void SetQdirFromPath( const char *path ) +{ + char temp[1024]; + const char *c; + const char *sep; + int len, count; + + if (!(path[0] == '/' || path[0] == '\\' || path[1] == ':')) + { // path is partial + Q_getwd (temp); + strcat (temp, path); + path = temp; + } + + // search for "quake2" in path + + len = strlen(BASEDIRNAME); + for (c=path+strlen(path)-1 ; c != path ; c--) + { + int i; + + if (!Q_strncasecmp (c, BASEDIRNAME, len)) + { + // + //strncpy (qdir, path, c+len+2-path); + // the +2 assumes a 2 or 3 following quake which is not the + // case with a retail install + // so we need to add up how much to the next separator + sep = c + len; + count = 1; + while (*sep && *sep != '/' && *sep != '\\') + { + sep++; + count++; + } + strncpy (qdir, path, c+len+count-path); + qprintf ("qdir: %s\n", qdir); + for ( i = 0; i < strlen( qdir ); i++ ) + { + if ( qdir[i] == '\\' ) + qdir[i] = '/'; + } + + c += len+count; + while (*c) + { + if (*c == '/' || *c == '\\') + { + strncpy (gamedir, path, c+1-path); + + for ( i = 0; i < strlen( gamedir ); i++ ) + { + if ( gamedir[i] == '\\' ) + gamedir[i] = '/'; + } + + qprintf ("gamedir: %s\n", gamedir); + + if ( !writedir[0] ) + strcpy( writedir, gamedir ); + else if ( writedir[strlen( writedir )-1] != '/' ) + { + writedir[strlen( writedir )] = '/'; + writedir[strlen( writedir )+1] = 0; + } + + return; + } + c++; + } + Error ("No gamedir in %s", path); + return; + } + } + Error ("SetQdirFromPath: no '%s' in %s", BASEDIRNAME, path); +} + +char *ExpandArg (const char *path) +{ + static char full[1024]; + + if (path[0] != '/' && path[0] != '\\' && path[1] != ':') + { + Q_getwd (full); + strcat (full, path); + } + else + strcpy (full, path); + return full; +} + +char *ExpandPath (const char *path) +{ + static char full[1024]; + if (!qdir) + Error ("ExpandPath called without qdir set"); + if (path[0] == '/' || path[0] == '\\' || path[1] == ':') { + strcpy( full, path ); + return full; + } + sprintf (full, "%s%s", qdir, path); + return full; +} + +char *ExpandGamePath (const char *path) +{ + static char full[1024]; + if (!qdir) + Error ("ExpandGamePath called without qdir set"); + if (path[0] == '/' || path[0] == '\\' || path[1] == ':') { + strcpy( full, path ); + return full; + } + sprintf (full, "%s%s", gamedir, path); + return full; +} + +char *ExpandPathAndArchive (const char *path) +{ + char *expanded; + char archivename[1024]; + + expanded = ExpandPath (path); + + if (archive) + { + sprintf (archivename, "%s/%s", archivedir, path); + QCopyFile (expanded, archivename); + } + return expanded; +} + + +char *copystring(const char *s) +{ + char *b; + b = malloc(strlen(s)+1); + strcpy (b, s); + return b; +} + + + +/* +================ +I_FloatTime +================ +*/ +double I_FloatTime (void) +{ + time_t t; + + time (&t); + + return t; +#if 0 +// more precise, less portable + struct timeval tp; + struct timezone tzp; + static int secbase; + + gettimeofday(&tp, &tzp); + + if (!secbase) + { + secbase = tp.tv_sec; + return tp.tv_usec/1000000.0; + } + + return (tp.tv_sec - secbase) + tp.tv_usec/1000000.0; +#endif +} + +void Q_getwd (char *out) +{ + int i = 0; + +#ifdef WIN32 + _getcwd (out, 256); + strcat (out, "\\"); +#else + getcwd (out, 256); + strcat (out, "/"); +#endif + + while ( out[i] != 0 ) + { + if ( out[i] == '\\' ) + out[i] = '/'; + i++; + } +} + + +void Q_mkdir (const char *path) +{ +#ifdef WIN32 + if (_mkdir (path) != -1) + return; +#else + if (mkdir (path, 0777) != -1) + return; +#endif + if (errno != EEXIST) + Error ("mkdir %s: %s",path, strerror(errno)); +} + +/* +============ +FileTime + +returns -1 if not present +============ +*/ +int FileTime (const char *path) +{ + struct stat buf; + + if (stat (path,&buf) == -1) + return -1; + + return buf.st_mtime; +} + + + +/* +============== +COM_Parse + +Parse a token out of a string +============== +*/ +char *COM_Parse (char *data) +{ + int c; + int len; + + len = 0; + com_token[0] = 0; + + if (!data) + return NULL; + +// skip whitespace +skipwhite: + while ( (c = *data) <= ' ') + { + if (c == 0) + { + com_eof = qtrue; + return NULL; // end of file; + } + data++; + } + +// skip // comments + if (c=='/' && data[1] == '/') + { + while (*data && *data != '\n') + data++; + goto skipwhite; + } + + +// handle quoted strings specially + if (c == '\"') + { + data++; + do + { + c = *data++; + if (c=='\"') + { + com_token[len] = 0; + return data; + } + com_token[len] = c; + len++; + } while (1); + } + +// parse single characters + if (c=='{' || c=='}'|| c==')'|| c=='(' || c=='\'' || c==':') + { + com_token[len] = c; + len++; + com_token[len] = 0; + return data+1; + } + +// parse a regular word + do + { + com_token[len] = c; + data++; + len++; + c = *data; + if (c=='{' || c=='}'|| c==')'|| c=='(' || c=='\'' || c==':') + break; + } while (c>32); + + com_token[len] = 0; + return data; +} + + +int Q_strncasecmp (const char *s1, const char *s2, int n) +{ + int c1, c2; + + do + { + c1 = *s1++; + c2 = *s2++; + + if (!n--) + return 0; // strings are equal until end point + + if (c1 != c2) + { + if (c1 >= 'a' && c1 <= 'z') + c1 -= ('a' - 'A'); + if (c2 >= 'a' && c2 <= 'z') + c2 -= ('a' - 'A'); + if (c1 != c2) + return -1; // strings not equal + } + } while (c1); + + return 0; // strings are equal +} + +int Q_stricmp (const char *s1, const char *s2) +{ + return Q_strncasecmp (s1, s2, 99999); +} + + +char *strupr (char *start) +{ + char *in; + in = start; + while (*in) + { + *in = toupper(*in); + in++; + } + return start; +} + +char *strlower (char *start) +{ + char *in; + in = start; + while (*in) + { + *in = tolower(*in); + in++; + } + return start; +} + + +/* +============================================================================= + + MISC FUNCTIONS + +============================================================================= +*/ + + +/* +================= +CheckParm + +Checks for the given parameter in the program's command line arguments +Returns the argument number (1 to argc-1) or 0 if not present +================= +*/ +int CheckParm (const char *check) +{ + int i; + + for (i = 1;i 0) { + nAllocSize += MEM_BLOCKSIZE - nBlock; + } + buffer = malloc (nAllocSize+1); + memset(buffer, 0, nAllocSize+1); + SafeRead (f, buffer, length); + fclose (f); + + *bufferptr = buffer; + return length; +} + + +/* +============== +TryLoadFile + +Allows failure +============== +*/ +int TryLoadFile (const char *filename, void **bufferptr) +{ + FILE *f; + int length; + void *buffer; + + *bufferptr = NULL; + + f = myfopen (filename, "rb"); + if (!f) + return -1; + length = Q_filelength (f); + buffer = malloc (length+1); + ((char *)buffer)[length] = 0; + SafeRead (f, buffer, length); + fclose (f); + + *bufferptr = buffer; + return length; +} + + +/* +============== +SaveFile +============== +*/ +void SaveFile (const char *filename, const void *buffer, int count) +{ + FILE *f; + + f = SafeOpenWrite (filename); + SafeWrite (f, buffer, count); + fclose (f); +} + + + +void DefaultExtension (char *path, const char *extension) +{ + char *src; +// +// if path doesnt have a .EXT, append extension +// (extension should include the .) +// + src = path + strlen(path) - 1; + + while (*src != '/' && *src != '\\' && src != path) + { + if (*src == '.') + return; // it has an extension + src--; + } + + strcat (path, extension); +} + + +void DefaultPath (char *path, const char *basepath) +{ + char temp[128]; + + if (path[0] == PATHSEPERATOR) + return; // absolute path location + strcpy (temp,path); + strcpy (path,basepath); + strcat (path,temp); +} + + +void StripFilename (char *path) +{ + int length; + + length = strlen(path)-1; + while (length > 0 && path[length] != PATHSEPERATOR) + length--; + path[length] = 0; +} + +void StripExtension (char *path) +{ + int length; + + length = strlen(path)-1; + while (length > 0 && path[length] != '.') + { + length--; + if (path[length] == '/') + return; // no extension + } + if (length) + path[length] = 0; +} + + +/* +==================== +Extract file parts +==================== +*/ +// FIXME: should include the slash, otherwise +// backing to an empty path will be wrong when appending a slash +void ExtractFilePath (const char *path, char *dest) +{ + const char *src; + + src = path + strlen(path) - 1; + +// +// back up until a \ or the start +// + while (src != path && *(src-1) != '\\' && *(src-1) != '/') + src--; + + memcpy (dest, path, src-path); + dest[src-path] = 0; +} + +void ExtractFileBase (const char *path, char *dest) +{ + const char *src; + + src = path + strlen(path) - 1; + +// +// back up until a \ or the start +// + while (src != path && *(src-1) != PATHSEPERATOR) + src--; + + while (*src && *src != '.') + { + *dest++ = *src++; + } + *dest = 0; +} + +void ExtractFileExtension (const char *path, char *dest) +{ + const char *src; + + src = path + strlen(path) - 1; + +// +// back up until a . or the start +// + while (src != path && *(src-1) != '.') + src--; + if (src == path) + { + *dest = 0; // no extension + return; + } + + strcpy (dest,src); +} + + +/* +============== +ParseNum / ParseHex +============== +*/ +int ParseHex (const char *hex) +{ + const char *str; + int num; + + num = 0; + str = hex; + + while (*str) + { + num <<= 4; + if (*str >= '0' && *str <= '9') + num += *str-'0'; + else if (*str >= 'a' && *str <= 'f') + num += 10 + *str-'a'; + else if (*str >= 'A' && *str <= 'F') + num += 10 + *str-'A'; + else + Error ("Bad hex number: %s",hex); + str++; + } + + return num; +} + + +int ParseNum (const char *str) +{ + if (str[0] == '$') + return ParseHex (str+1); + if (str[0] == '0' && str[1] == 'x') + return ParseHex (str+2); + return atol (str); +} + + + +/* +============================================================================ + + BYTE ORDER FUNCTIONS + +============================================================================ +*/ + +#ifdef _SGI_SOURCE +#define __BIG_ENDIAN__ +#endif + +#ifdef __BIG_ENDIAN__ + +short LittleShort (short l) +{ + byte b1,b2; + + b1 = l&255; + b2 = (l>>8)&255; + + return (b1<<8) + b2; +} + +short BigShort (short l) +{ + return l; +} + + +int LittleLong (int l) +{ + byte b1,b2,b3,b4; + + b1 = l&255; + b2 = (l>>8)&255; + b3 = (l>>16)&255; + b4 = (l>>24)&255; + + return ((int)b1<<24) + ((int)b2<<16) + ((int)b3<<8) + b4; +} + +int BigLong (int l) +{ + return l; +} + + +float LittleFloat (float l) +{ + union {byte b[4]; float f;} in, out; + + in.f = l; + out.b[0] = in.b[3]; + out.b[1] = in.b[2]; + out.b[2] = in.b[1]; + out.b[3] = in.b[0]; + + return out.f; +} + +float BigFloat (float l) +{ + return l; +} + + +#else + + +short BigShort (short l) +{ + byte b1,b2; + + b1 = l&255; + b2 = (l>>8)&255; + + return (b1<<8) + b2; +} + +short LittleShort (short l) +{ + return l; +} + + +int BigLong (int l) +{ + byte b1,b2,b3,b4; + + b1 = l&255; + b2 = (l>>8)&255; + b3 = (l>>16)&255; + b4 = (l>>24)&255; + + return ((int)b1<<24) + ((int)b2<<16) + ((int)b3<<8) + b4; +} + +int LittleLong (int l) +{ + return l; +} + +float BigFloat (float l) +{ + union {byte b[4]; float f;} in, out; + + in.f = l; + out.b[0] = in.b[3]; + out.b[1] = in.b[2]; + out.b[2] = in.b[1]; + out.b[3] = in.b[0]; + + return out.f; +} + +float LittleFloat (float l) +{ + return l; +} + + +#endif + + +//======================================================= + + +// FIXME: byte swap? + +// this is a 16 bit, non-reflected CRC using the polynomial 0x1021 +// and the initial and final xor values shown below... in other words, the +// CCITT standard CRC used by XMODEM + +#define CRC_INIT_VALUE 0xffff +#define CRC_XOR_VALUE 0x0000 + +static unsigned short crctable[256] = +{ + 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7, + 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, + 0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6, + 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de, + 0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485, + 0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d, + 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4, + 0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, + 0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823, + 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b, + 0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12, + 0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a, + 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41, + 0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49, + 0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70, + 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78, + 0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f, + 0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067, + 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e, + 0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256, + 0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d, + 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405, + 0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c, + 0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634, + 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab, + 0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3, + 0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a, + 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92, + 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, + 0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1, + 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8, + 0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0 +}; + +void CRC_Init(unsigned short *crcvalue) +{ + *crcvalue = CRC_INIT_VALUE; +} + +void CRC_ProcessByte(unsigned short *crcvalue, byte data) +{ + *crcvalue = (*crcvalue << 8) ^ crctable[(*crcvalue >> 8) ^ data]; +} + +unsigned short CRC_Value(unsigned short crcvalue) +{ + return crcvalue ^ CRC_XOR_VALUE; +} +//============================================================================= + +/* +============ +CreatePath +============ +*/ +void CreatePath (const char *path) +{ + const char *ofs; + char c; + char dir[1024]; + +#ifdef _WIN32 + int olddrive = -1; + + if ( path[1] == ':' ) + { + olddrive = _getdrive(); + _chdrive( toupper( path[0] ) - 'A' + 1 ); + } +#endif + + if (path[1] == ':') + path += 2; + + for (ofs = path+1 ; *ofs ; ofs++) + { + c = *ofs; + if (c == '/' || c == '\\') + { // create the directory + memcpy( dir, path, ofs - path ); + dir[ ofs - path ] = 0; + Q_mkdir( dir ); + } + } + +#ifdef _WIN32 + if ( olddrive != -1 ) + { + _chdrive( olddrive ); + } +#endif +} + + +/* +============ +QCopyFile + + Used to archive source files +============ +*/ +void QCopyFile (const char *from, const char *to) +{ + void *buffer; + int length; + + length = LoadFile (from, &buffer); + CreatePath (to); + SaveFile (to, buffer, length); + free (buffer); +} diff --git a/code/tools/q3asm/cmdlib.h b/code/tools/q3asm/cmdlib.h new file mode 100644 index 0000000..f2436a1 --- /dev/null +++ b/code/tools/q3asm/cmdlib.h @@ -0,0 +1,160 @@ +/* +=========================================================================== +Copyright (C) 1999-2005 Id Software, Inc. + +This file is part of Quake III Arena source code. + +Quake III Arena source code is free software; you can redistribute it +and/or modify it under the terms of the GNU General Public License as +published by the Free Software Foundation; either version 2 of the License, +or (at your option) any later version. + +Quake III Arena source code is distributed in the hope that it will be +useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Foobar; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +=========================================================================== +*/ +// cmdlib.h + +#ifndef __CMDLIB__ +#define __CMDLIB__ + +#ifdef _MSC_VER +#pragma warning(disable : 4244) // MIPS +#pragma warning(disable : 4136) // X86 +#pragma warning(disable : 4051) // ALPHA + +#pragma warning(disable : 4018) // signed/unsigned mismatch +#pragma warning(disable : 4305) // truncate from double to float + +#pragma check_stack(off) + +#endif + +#include +#include +#include +#include +#include +#include +#include + +#ifdef _MSC_VER + +#pragma intrinsic( memset, memcpy ) + +#endif + +#ifndef __BYTEBOOL__ +#define __BYTEBOOL__ +typedef enum { qfalse, qtrue } qboolean; +typedef unsigned char byte; +#endif + +#define MAX_OS_PATH 1024 +#define MEM_BLOCKSIZE 4096 + +// the dec offsetof macro doesnt work very well... +#define myoffsetof(type,identifier) ((size_t)&((type *)0)->identifier) + + +// set these before calling CheckParm +extern int myargc; +extern char **myargv; + +char *strupr (char *in); +char *strlower (char *in); +int Q_strncasecmp( const char *s1, const char *s2, int n ); +int Q_stricmp( const char *s1, const char *s2 ); +void Q_getwd( char *out ); + +int Q_filelength (FILE *f); +int FileTime( const char *path ); + +void Q_mkdir( const char *path ); + +extern char qdir[1024]; +extern char gamedir[1024]; +extern char writedir[1024]; +void SetQdirFromPath( const char *path ); +char *ExpandArg( const char *path ); // from cmd line +char *ExpandPath( const char *path ); // from scripts +char *ExpandGamePath (const char *path); +char *ExpandPathAndArchive( const char *path ); + + +double I_FloatTime( void ); + +void Error( const char *error, ... ); +int CheckParm( const char *check ); + +FILE *SafeOpenWrite( const char *filename ); +FILE *SafeOpenRead( const char *filename ); +void SafeRead (FILE *f, void *buffer, int count); +void SafeWrite (FILE *f, const void *buffer, int count); + +int LoadFile( const char *filename, void **bufferptr ); +int LoadFileBlock( const char *filename, void **bufferptr ); +int TryLoadFile( const char *filename, void **bufferptr ); +void SaveFile( const char *filename, const void *buffer, int count ); +qboolean FileExists( const char *filename ); + +void DefaultExtension( char *path, const char *extension ); +void DefaultPath( char *path, const char *basepath ); +void StripFilename( char *path ); +void StripExtension( char *path ); + +void ExtractFilePath( const char *path, char *dest ); +void ExtractFileBase( const char *path, char *dest ); +void ExtractFileExtension( const char *path, char *dest ); + +int ParseNum (const char *str); + +short BigShort (short l); +short LittleShort (short l); +int BigLong (int l); +int LittleLong (int l); +float BigFloat (float l); +float LittleFloat (float l); + + +char *COM_Parse (char *data); + +extern char com_token[1024]; +extern qboolean com_eof; + +char *copystring(const char *s); + + +void CRC_Init(unsigned short *crcvalue); +void CRC_ProcessByte(unsigned short *crcvalue, byte data); +unsigned short CRC_Value(unsigned short crcvalue); + +void CreatePath( const char *path ); +void QCopyFile( const char *from, const char *to ); + +extern qboolean archive; +extern char archivedir[1024]; + + +extern qboolean verbose; +void qprintf( const char *format, ... ); +void _printf( const char *format, ... ); + +void ExpandWildcards( int *argc, char ***argv ); + + +// for compression routines +typedef struct +{ + void *data; + int count, width, height; +} cblock_t; + + +#endif diff --git a/code/tools/q3asm/lib.txt b/code/tools/q3asm/lib.txt new file mode 100644 index 0000000..737a030 --- /dev/null +++ b/code/tools/q3asm/lib.txt @@ -0,0 +1,31 @@ + +strlen +strcasecmp +tolower +strcat +strncpy +strcmp +strcpy +strchr + +vsprintf + +memcpy +memset +rand + +atoi +atof + +abs + +floor +fabs +tan +atan +sqrt +log +cos +sin +atan2 + diff --git a/code/tools/q3asm/mathlib.h b/code/tools/q3asm/mathlib.h new file mode 100644 index 0000000..f88bf58 --- /dev/null +++ b/code/tools/q3asm/mathlib.h @@ -0,0 +1,94 @@ +/* +=========================================================================== +Copyright (C) 1999-2005 Id Software, Inc. + +This file is part of Quake III Arena source code. + +Quake III Arena source code is free software; you can redistribute it +and/or modify it under the terms of the GNU General Public License as +published by the Free Software Foundation; either version 2 of the License, +or (at your option) any later version. + +Quake III Arena source code is distributed in the hope that it will be +useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Foobar; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +=========================================================================== +*/ +#ifndef __MATHLIB__ +#define __MATHLIB__ + +// mathlib.h + +#include + +#ifdef DOUBLEVEC_T +typedef double vec_t; +#else +typedef float vec_t; +#endif +typedef vec_t vec2_t[3]; +typedef vec_t vec3_t[3]; +typedef vec_t vec4_t[4]; + +#define SIDE_FRONT 0 +#define SIDE_ON 2 +#define SIDE_BACK 1 +#define SIDE_CROSS -2 + +#define Q_PI 3.14159265358979323846 +#define DEG2RAD( a ) ( ( (a) * Q_PI ) / 180.0F ) +#define RAD2DEG( a ) ( ( (a) * 180.0f ) / Q_PI ) + +extern vec3_t vec3_origin; + +#define EQUAL_EPSILON 0.001 + +// plane types are used to speed some tests +// 0-2 are axial planes +#define PLANE_X 0 +#define PLANE_Y 1 +#define PLANE_Z 2 +#define PLANE_NON_AXIAL 3 + +qboolean VectorCompare( const vec3_t v1, const vec3_t v2 ); + +#define DotProduct(x,y) (x[0]*y[0]+x[1]*y[1]+x[2]*y[2]) +#define VectorSubtract(a,b,c) {c[0]=a[0]-b[0];c[1]=a[1]-b[1];c[2]=a[2]-b[2];} +#define VectorAdd(a,b,c) {c[0]=a[0]+b[0];c[1]=a[1]+b[1];c[2]=a[2]+b[2];} +#define VectorCopy(a,b) {b[0]=a[0];b[1]=a[1];b[2]=a[2];} +#define VectorScale(a,b,c) {c[0]=b*a[0];c[1]=b*a[1];c[2]=b*a[2];} +#define VectorClear(x) {x[0] = x[1] = x[2] = 0;} +#define VectorNegate(x) {x[0]=-x[0];x[1]=-x[1];x[2]=-x[2];} +void Vec10Copy( vec_t *in, vec_t *out ); + +vec_t Q_rint (vec_t in); +vec_t _DotProduct (vec3_t v1, vec3_t v2); +void _VectorSubtract (vec3_t va, vec3_t vb, vec3_t out); +void _VectorAdd (vec3_t va, vec3_t vb, vec3_t out); +void _VectorCopy (vec3_t in, vec3_t out); +void _VectorScale (vec3_t v, vec_t scale, vec3_t out); + +double VectorLength( const vec3_t v ); + +void VectorMA( const vec3_t va, double scale, const vec3_t vb, vec3_t vc ); + +void CrossProduct( const vec3_t v1, const vec3_t v2, vec3_t cross ); +vec_t VectorNormalize( const vec3_t in, vec3_t out ); +vec_t ColorNormalize( const vec3_t in, vec3_t out ); +void VectorInverse (vec3_t v); + +void ClearBounds (vec3_t mins, vec3_t maxs); +void AddPointToBounds( const vec3_t v, vec3_t mins, vec3_t maxs ); + +qboolean PlaneFromPoints( vec4_t plane, const vec3_t a, const vec3_t b, const vec3_t c ); + +void NormalToLatLong( const vec3_t normal, byte bytes[2] ); + +int PlaneTypeForNormal (vec3_t normal); + +#endif diff --git a/code/tools/q3asm/notes.txt b/code/tools/q3asm/notes.txt new file mode 100644 index 0000000..63297f3 --- /dev/null +++ b/code/tools/q3asm/notes.txt @@ -0,0 +1,16 @@ + +don't do any paramter conversion (double to float, etc) + + + +Why? + +Security. +Portability. + +It may be more aproachable. + +can still use regular dlls for development purposes + +lcc +q3asm diff --git a/code/tools/q3asm/ops.txt b/code/tools/q3asm/ops.txt new file mode 100644 index 0000000..e897f49 --- /dev/null +++ b/code/tools/q3asm/ops.txt @@ -0,0 +1,132 @@ +CNSTF, +CNSTI, +CNSTP, +CNSTU, + +ARGB, +ARGF, +ARGI, +ARGP, +ARGU, + +ASGNB, +ASGNF, +ASGNI, +ASGNP, +ASGNU, + +INDIRB, +INDIRF, +INDIRI, +INDIRP, +INDIRU, + +CVFF, +CVFI, + +CVIF, +CVII, +CVIU, + +CVPU, + +CVUI, +CVUP, +CVUU, + +NEGF, +NEGI, + +CALLB, +CALLF, +CALLI, +CALLP, +CALLU, +CALLV, + +RETF, +RETI, +RETP, +RETU, +RETV, + +ADDRGP, + +ADDRFP, + +ADDRLP, + +ADDF, +ADDI, +ADDP, +ADDU, + +SUBF, +SUBI, +SUBP, +SUBU, + +LSHI, +LSHU, + +MODI, +MODU, + +RSHI, +RSHU, + +BANDI, +BANDU, + +BCOMI, +BCOMU, + +BORI, +BORU, + +BXORI, +BXORU, + +DIVF, +DIVI, +DIVU, + +MULF, +MULI, +MULU, + +EQF, +EQI, +EQU, + +GEF, +GEI, +GEU, + +GTF, +GTI, +GTU, + +LEF, +LEI, +LEU, + +LTF, +LTI, +LTU, + +NEF, +NEI, +NEU, + +JUMPV, + +LABELV, + +LOADB, +LOADF, +LOADI, +LOADP, +LOADU, + + diff --git a/code/tools/q3asm/opstrings.h b/code/tools/q3asm/opstrings.h new file mode 100644 index 0000000..f611b3e --- /dev/null +++ b/code/tools/q3asm/opstrings.h @@ -0,0 +1,175 @@ +/* +=========================================================================== +Copyright (C) 1999-2005 Id Software, Inc. + +This file is part of Quake III Arena source code. + +Quake III Arena source code is free software; you can redistribute it +and/or modify it under the terms of the GNU General Public License as +published by the Free Software Foundation; either version 2 of the License, +or (at your option) any later version. + +Quake III Arena source code is distributed in the hope that it will be +useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Foobar; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +=========================================================================== +*/ +{ "BREAK", OP_BREAK }, + +{ "CNSTF4", OP_CONST }, +{ "CNSTI4", OP_CONST }, +{ "CNSTP4", OP_CONST }, +{ "CNSTU4", OP_CONST }, + +{ "CNSTI2", OP_CONST }, +{ "CNSTU2", OP_CONST }, + +{ "CNSTI1", OP_CONST }, +{ "CNSTU1", OP_CONST }, + +//{ "ARGB", OP_ARG }, +//{ "ARGF", OP_ARG }, +//{ "ARGI", OP_ARG }, +//{ "ARGP", OP_ARG }, +//{ "ARGU", OP_ARG }, + +{ "ASGNB", OP_BLOCK_COPY }, +{ "ASGNF4", OP_STORE4 }, +{ "ASGNI4", OP_STORE4 }, +{ "ASGNP4", OP_STORE4 }, +{ "ASGNU4", OP_STORE4 }, + +{ "ASGNI2", OP_STORE2 }, +{ "ASGNU2", OP_STORE2 }, + +{ "ASGNI1", OP_STORE1 }, +{ "ASGNU1", OP_STORE1 }, + +{ "INDIRB", OP_IGNORE }, // block copy deals with this +{ "INDIRF4", OP_LOAD4 }, +{ "INDIRI4", OP_LOAD4 }, +{ "INDIRP4", OP_LOAD4 }, +{ "INDIRU4", OP_LOAD4 }, + +{ "INDIRI2", OP_LOAD2 }, +{ "INDIRU2", OP_LOAD2 }, + +{ "INDIRI1", OP_LOAD1 }, +{ "INDIRU1", OP_LOAD1 }, + +{ "CVFF4", OP_UNDEF }, +{ "CVFI4", OP_CVFI }, + +{ "CVIF4", OP_CVIF }, +{ "CVII4", OP_SEX8 }, // will be either SEX8 or SEX16 +{ "CVII1", OP_IGNORE }, +{ "CVII2", OP_IGNORE }, +{ "CVIU4", OP_IGNORE }, + +{ "CVPU4", OP_IGNORE }, + +{ "CVUI4", OP_IGNORE }, +{ "CVUP4", OP_IGNORE }, +{ "CVUU4", OP_IGNORE }, + +{ "CVUU1", OP_IGNORE }, + +{ "NEGF4", OP_NEGF }, +{ "NEGI4", OP_NEGI }, + +//{ "CALLB", OP_UNDEF }, +//{ "CALLF", OP_UNDEF }, +//{ "CALLI", OP_UNDEF }, +//{ "CALLP", OP_UNDEF }, +//{ "CALLU", OP_UNDEF }, +//{ "CALLV", OP_CALL }, + +//{ "RETF", OP_UNDEF }, +//{ "RETI", OP_UNDEF }, +//{ "RETP", OP_UNDEF }, +//{ "RETU", OP_UNDEF }, +//{ "RETV", OP_UNDEF }, + +{ "ADDRGP4", OP_CONST }, + +//{ "ADDRFP", OP_PARM }, +//{ "ADDRLP", OP_LOCAL }, + +{ "ADDF4", OP_ADDF }, +{ "ADDI4", OP_ADD }, +{ "ADDP4", OP_ADD }, +{ "ADDP", OP_ADD }, +{ "ADDU4", OP_ADD }, + +{ "SUBF4", OP_SUBF }, +{ "SUBI4", OP_SUB }, +{ "SUBP4", OP_SUB }, +{ "SUBU4", OP_SUB }, + +{ "LSHI4", OP_LSH }, +{ "LSHU4", OP_LSH }, + +{ "MODI4", OP_MODI }, +{ "MODU4", OP_MODU }, + +{ "RSHI4", OP_RSHI }, +{ "RSHU4", OP_RSHU }, + +{ "BANDI4", OP_BAND }, +{ "BANDU4", OP_BAND }, + +{ "BCOMI4", OP_BCOM }, +{ "BCOMU4", OP_BCOM }, + +{ "BORI4", OP_BOR }, +{ "BORU4", OP_BOR }, + +{ "BXORI4", OP_BXOR }, +{ "BXORU4", OP_BXOR }, + +{ "DIVF4", OP_DIVF }, +{ "DIVI4", OP_DIVI }, +{ "DIVU4", OP_DIVU }, + +{ "MULF4", OP_MULF }, +{ "MULI4", OP_MULI }, +{ "MULU4", OP_MULU }, + +{ "EQF4", OP_EQF }, +{ "EQI4", OP_EQ }, +{ "EQU4", OP_EQ }, + +{ "GEF4", OP_GEF }, +{ "GEI4", OP_GEI }, +{ "GEU4", OP_GEU }, + +{ "GTF4", OP_GTF }, +{ "GTI4", OP_GTI }, +{ "GTU4", OP_GTU }, + +{ "LEF4", OP_LEF }, +{ "LEI4", OP_LEI }, +{ "LEU4", OP_LEU }, + +{ "LTF4", OP_LTF }, +{ "LTI4", OP_LTI }, +{ "LTU4", OP_LTU }, + +{ "NEF4", OP_NEF }, +{ "NEI4", OP_NE }, +{ "NEU4", OP_NE }, + +{ "JUMPV", OP_JUMP }, + +{ "LOADB4", OP_UNDEF }, +{ "LOADF4", OP_UNDEF }, +{ "LOADI4", OP_UNDEF }, +{ "LOADP4", OP_UNDEF }, +{ "LOADU4", OP_UNDEF }, + + diff --git a/code/tools/q3asm/q3asm.c b/code/tools/q3asm/q3asm.c new file mode 100644 index 0000000..b19c361 --- /dev/null +++ b/code/tools/q3asm/q3asm.c @@ -0,0 +1,1047 @@ +/* +=========================================================================== +Copyright (C) 1999-2005 Id Software, Inc. + +This file is part of Quake III Arena source code. + +Quake III Arena source code is free software; you can redistribute it +and/or modify it under the terms of the GNU General Public License as +published by the Free Software Foundation; either version 2 of the License, +or (at your option) any later version. + +Quake III Arena source code is distributed in the hope that it will be +useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Foobar; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +=========================================================================== +*/ + +#include "cmdlib.h" +#include "mathlib.h" +#include "qfiles.h" + +/* MSVC-ism fix. */ +#define atoi(s) strtoul(s,NULL,10) + +char outputFilename[MAX_OS_PATH]; + +// the zero page size is just used for detecting run time faults +#define ZERO_PAGE_SIZE 0 // 256 + +typedef enum { + OP_UNDEF, + + OP_IGNORE, + + OP_BREAK, + + OP_ENTER, + OP_LEAVE, + OP_CALL, + OP_PUSH, + OP_POP, + + OP_CONST, + OP_LOCAL, + + OP_JUMP, + + //------------------- + + OP_EQ, + OP_NE, + + OP_LTI, + OP_LEI, + OP_GTI, + OP_GEI, + + OP_LTU, + OP_LEU, + OP_GTU, + OP_GEU, + + OP_EQF, + OP_NEF, + + OP_LTF, + OP_LEF, + OP_GTF, + OP_GEF, + + //------------------- + + OP_LOAD1, + OP_LOAD2, + OP_LOAD4, + OP_STORE1, + OP_STORE2, + OP_STORE4, // *(stack[top-1]) = stack[yop + OP_ARG, + OP_BLOCK_COPY, + + //------------------- + + OP_SEX8, + OP_SEX16, + + OP_NEGI, + OP_ADD, + OP_SUB, + OP_DIVI, + OP_DIVU, + OP_MODI, + OP_MODU, + OP_MULI, + OP_MULU, + + OP_BAND, + OP_BOR, + OP_BXOR, + OP_BCOM, + + OP_LSH, + OP_RSHI, + OP_RSHU, + + OP_NEGF, + OP_ADDF, + OP_SUBF, + OP_DIVF, + OP_MULF, + + OP_CVIF, + OP_CVFI +} opcode_t; + +typedef struct { + int imageBytes; // after decompression + int entryPoint; + int stackBase; + int stackSize; +} executableHeader_t; + +typedef enum { + CODESEG, + DATASEG, // initialized 32 bit data, will be byte swapped + LITSEG, // strings + BSSSEG, // 0 filled + NUM_SEGMENTS +} segmentName_t; + +#define MAX_IMAGE 0x400000 + +typedef struct { + byte image[MAX_IMAGE]; + int imageUsed; + int segmentBase; // only valid on second pass +} segment_t; + +typedef struct symbol_s { + struct symbol_s *next; + int hash; + segment_t *segment; + char *name; + int value; +} symbol_t; + + +segment_t segment[NUM_SEGMENTS]; +segment_t *currentSegment; + +int passNumber; + +int numSymbols; +int errorCount; + +symbol_t *symbols; +symbol_t *lastSymbol; + + +#define MAX_ASM_FILES 256 +int numAsmFiles; +char *asmFiles[MAX_ASM_FILES]; +char *asmFileNames[MAX_ASM_FILES]; + +int currentFileIndex; +char *currentFileName; +int currentFileLine; + +//int stackSize = 16384; +int stackSize = 0x10000; + +// we need to convert arg and ret instructions to +// stores to the local stack frame, so we need to track the +// characteristics of the current functions stack frame +int currentLocals; // bytes of locals needed by this function +int currentArgs; // bytes of largest argument list called from this function +int currentArgOffset; // byte offset in currentArgs to store next arg, reset each call + +#define MAX_LINE_LENGTH 1024 +char lineBuffer[MAX_LINE_LENGTH]; +int lineParseOffset; +char token[MAX_LINE_LENGTH]; + +int instructionCount; + +typedef struct { + char *name; + int opcode; +} sourceOps_t; + +sourceOps_t sourceOps[] = { +#include "opstrings.h" +}; + +#define NUM_SOURCE_OPS ( sizeof( sourceOps ) / sizeof( sourceOps[0] ) ) + +int opcodesHash[ NUM_SOURCE_OPS ]; + + +/* +============= +HashString +============= +*/ +int HashString( char *s ) { + int v = 0; + + while ( *s ) { + v += *s; + s++; + } + return v; +} + + +/* +============ +CodeError +============ +*/ +void CodeError( char *fmt, ... ) { + va_list argptr; + + errorCount++; + + printf( "%s:%i ", currentFileName, currentFileLine ); + + va_start( argptr,fmt ); + vprintf( fmt,argptr ); + va_end( argptr ); +} + +/* +============ +EmitByte +============ +*/ +void EmitByte( segment_t *seg, int v ) { + if ( seg->imageUsed >= MAX_IMAGE ) { + Error( "MAX_IMAGE" ); + } + seg->image[ seg->imageUsed ] = v; + seg->imageUsed++; +} + +/* +============ +EmitInt +============ +*/ +void EmitInt( segment_t *seg, int v ) { + if ( seg->imageUsed >= MAX_IMAGE - 4) { + Error( "MAX_IMAGE" ); + } + seg->image[ seg->imageUsed ] = v & 255; + seg->image[ seg->imageUsed + 1 ] = ( v >> 8 ) & 255; + seg->image[ seg->imageUsed + 2 ] = ( v >> 16 ) & 255; + seg->image[ seg->imageUsed + 3 ] = ( v >> 24 ) & 255; + seg->imageUsed += 4; +} + +/* +============ +DefineSymbol + +Symbols can only be defined on pass 0 +============ +*/ +void DefineSymbol( char *sym, int value ) { + symbol_t *s, *after; + char expanded[MAX_LINE_LENGTH]; + int hash; + + if ( passNumber == 1 ) { + return; + } + + // TTimo + // https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=381 + // as a security, bail out if vmMain entry point is not first + if (!Q_stricmp(sym, "vmMain")) + if (value) + Error( "vmMain must be the first symbol in the qvm (got offset %d)\n", value ); + + // add the file prefix to local symbols to guarantee unique + if ( sym[0] == '$' ) { + sprintf( expanded, "%s_%i", sym, currentFileIndex ); + sym = expanded; + } + + hash = HashString( sym ); + + for ( s = symbols ; s ; s = s->next ) { + if ( hash == s->hash && !strcmp( sym, s->name ) ) { + CodeError( "Multiple definitions for %s\n", sym ); + return; + } + } + + s = malloc( sizeof( *s ) ); + s->name = copystring( sym ); + s->hash = hash; + s->value = value; + s->segment = currentSegment; + + lastSymbol = s; /* for the move-to-lit-segment byteswap hack */ + + // insert it in order + if ( !symbols || s->value < symbols->value ) { + s->next = symbols; + symbols = s; + return; + } + + for ( after = symbols ; after->next && after->next->value < value ; after = after->next ) { + } + s->next = after->next; + after->next = s; +} + + +/* +============ +LookupSymbol + +Symbols can only be evaluated on pass 1 +============ +*/ +int LookupSymbol( char *sym ) { + symbol_t *s; + char expanded[MAX_LINE_LENGTH]; + int hash; + + if ( passNumber == 0 ) { + return 0; + } + + // add the file prefix to local symbols to guarantee unique + if ( sym[0] == '$' ) { + sprintf( expanded, "%s_%i", sym, currentFileIndex ); + sym = expanded; + } + + hash = HashString( sym ); + for ( s = symbols ; s ; s = s->next ) { + if ( hash == s->hash && !strcmp( sym, s->name ) ) { + return s->segment->segmentBase + s->value; + } + } + + CodeError( "ERROR: symbol %s undefined\n", sym ); + passNumber = 0; + DefineSymbol( sym, 0 ); // so more errors aren't printed + passNumber = 1; + return 0; +} + + +/* +============== +ExtractLine + +Extracts the next line from the given text block. +If a full line isn't parsed, returns NULL +Otherwise returns the updated parse pointer +=============== +*/ +char *ExtractLine( char *data ) { + int i; + + currentFileLine++; + lineParseOffset = 0; + token[0] = 0; + + if ( data[0] == 0 ) { + lineBuffer[0] = 0; + return NULL; + } + + for ( i = 0 ; i < MAX_LINE_LENGTH ; i++ ) { + if ( data[i] == 0 || data[i] == '\n' ) { + break; + } + } + if ( i == MAX_LINE_LENGTH ) { + CodeError( "MAX_LINE_LENGTH" ); + return data; + } + memcpy( lineBuffer, data, i ); + lineBuffer[i] = 0; + data += i; + if ( data[0] == '\n' ) { + data++; + } + return data; +} + + +/* +============== +Parse + +Parse a token out of linebuffer +============== +*/ +qboolean Parse( void ) { + int c; + int len; + + len = 0; + token[0] = 0; + + // skip whitespace + while ( lineBuffer[ lineParseOffset ] <= ' ' ) { + if ( lineBuffer[ lineParseOffset ] == 0 ) { + return qfalse; + } + lineParseOffset++; + } + + // skip ; comments + c = lineBuffer[ lineParseOffset ]; + if ( c == ';' ) { + return qfalse; + } + + + // parse a regular word + do { + token[len] = c; + len++; + lineParseOffset++; + c = lineBuffer[ lineParseOffset ]; + } while (c>32); + + token[len] = 0; + return qtrue; +} + + +/* +============== +ParseValue +============== +*/ +int ParseValue( void ) { + Parse(); + return atoi( token ); +} + + +/* +============== +ParseExpression +============== +*/ +int ParseExpression(void) { + int i, j; + char sym[MAX_LINE_LENGTH]; + int v; + + if ( token[0] == '-' ) { + i = 1; + } else { + i = 0; + } + + for ( ; i < MAX_LINE_LENGTH ; i++ ) { + if ( token[i] == '+' || token[i] == '-' || token[i] == 0 ) { + break; + } + } + + memcpy( sym, token, i ); + sym[i] = 0; + + if ( ( sym[0] >= '0' && sym[0] <= '9' ) || sym[0] == '-' ) { + v = atoi( sym ); + } else { + v = LookupSymbol( sym ); + } + + // parse add / subtract offsets + while ( token[i] != 0 ) { + for ( j = i + 1 ; j < MAX_LINE_LENGTH ; j++ ) { + if ( token[j] == '+' || token[j] == '-' || token[j] == 0 ) { + break; + } + } + + memcpy( sym, token+i+1, j-i-1 ); + sym[j-i-1] = 0; + + if ( token[i] == '+' ) { + v += atoi( sym ); + } + if ( token[i] == '-' ) { + v -= atoi( sym ); + } + i = j; + } + + return v; +} + + +/* +============== +HackToSegment + +BIG HACK: I want to put all 32 bit values in the data +segment so they can be byte swapped, and all char data in the lit +segment, but switch jump tables are emited in the lit segment and +initialized strng variables are put in the data segment. + +I can change segments here, but I also need to fixup the +label that was just defined + +Note that the lit segment is read-write in the VM, so strings +aren't read only as in some architectures. +============== +*/ +void HackToSegment( segmentName_t seg ) { + if ( currentSegment == &segment[seg] ) { + return; + } + + currentSegment = &segment[seg]; + if ( passNumber == 0 ) { + lastSymbol->segment = currentSegment; + lastSymbol->value = currentSegment->imageUsed; + } +} + +/* +============== +AssembleLine + +============== +*/ +void AssembleLine( void ) { + int v, v2; + int i; + int hash; + + Parse(); + if ( !token[0] ) { + return; + } + + hash = HashString( token ); + + for ( i = 0 ; i < NUM_SOURCE_OPS ; i++ ) { + if ( hash == opcodesHash[i] && !strcmp( token, sourceOps[i].name ) ) { + int opcode; + int expression; + + if ( sourceOps[i].opcode == OP_UNDEF ) { + CodeError( "Undefined opcode: %s\n", token ); + } + if ( sourceOps[i].opcode == OP_IGNORE ) { + return; // we ignore most conversions + } + + // sign extensions need to check next parm + opcode = sourceOps[i].opcode; + if ( opcode == OP_SEX8 ) { + Parse(); + if ( token[0] == '1' ) { + opcode = OP_SEX8; + } else if ( token[0] == '2' ) { + opcode = OP_SEX16; + } else { + CodeError( "Bad sign extension: %s\n", token ); + return; + } + } + + // check for expression + Parse(); + if ( token[0] && sourceOps[i].opcode != OP_CVIF + && sourceOps[i].opcode != OP_CVFI ) { + expression = ParseExpression(); + + // code like this can generate non-dword block copies: + // auto char buf[2] = " "; + // we are just going to round up. This might conceivably + // be incorrect if other initialized chars follow. + if ( opcode == OP_BLOCK_COPY ) { + expression = ( expression + 3 ) & ~3; + } + + EmitByte( &segment[CODESEG], opcode ); + EmitInt( &segment[CODESEG], expression ); + } else { + EmitByte( &segment[CODESEG], opcode ); + } + + instructionCount++; + return; + } + } + + // call instructions reset currentArgOffset + if ( !strncmp( token, "CALL", 4 ) ) { + EmitByte( &segment[CODESEG], OP_CALL ); + instructionCount++; + currentArgOffset = 0; + return; + } + + // arg is converted to a reversed store + if ( !strncmp( token, "ARG", 3 ) ) { + EmitByte( &segment[CODESEG], OP_ARG ); + instructionCount++; + if ( 8 + currentArgOffset >= 256 ) { + CodeError( "currentArgOffset >= 256" ); + return; + } + EmitByte( &segment[CODESEG], 8 + currentArgOffset ); + currentArgOffset += 4; + return; + } + + // ret just leaves something on the op stack + if ( !strncmp( token, "RET", 3 ) ) { + EmitByte( &segment[CODESEG], OP_LEAVE ); + instructionCount++; + EmitInt( &segment[CODESEG], 8 + currentLocals + currentArgs ); + return; + } + + // pop is needed to discard the return value of + // a function + if ( !strncmp( token, "pop", 3 ) ) { + EmitByte( &segment[CODESEG], OP_POP ); + instructionCount++; + return; + } + + // address of a parameter is converted to OP_LOCAL + if ( !strncmp( token, "ADDRF", 5 ) ) { + instructionCount++; + Parse(); + v = ParseExpression(); + v = 16 + currentArgs + currentLocals + v; + EmitByte( &segment[CODESEG], OP_LOCAL ); + EmitInt( &segment[CODESEG], v ); + return; + } + + // address of a local is converted to OP_LOCAL + if ( !strncmp( token, "ADDRL", 5 ) ) { + instructionCount++; + Parse(); + v = ParseExpression(); + v = 8 + currentArgs + v; + EmitByte( &segment[CODESEG], OP_LOCAL ); + EmitInt( &segment[CODESEG], v ); + return; + } + + if ( !strcmp( token, "proc" ) ) { + char name[1024]; + + Parse(); // function name + strcpy( name, token ); + + DefineSymbol( token, instructionCount ); // segment[CODESEG].imageUsed ); + + currentLocals = ParseValue(); // locals + currentLocals = ( currentLocals + 3 ) & ~3; + currentArgs = ParseValue(); // arg marshalling + currentArgs = ( currentArgs + 3 ) & ~3; + + if ( 8 + currentLocals + currentArgs >= 32767 ) { + CodeError( "Locals > 32k in %s\n", name ); + } + + instructionCount++; + EmitByte( &segment[CODESEG], OP_ENTER ); + EmitInt( &segment[CODESEG], 8 + currentLocals + currentArgs ); + return; + } + if ( !strcmp( token, "endproc" ) ) { + Parse(); // skip the function name + v = ParseValue(); // locals + v2 = ParseValue(); // arg marshalling + + // all functions must leave something on the opstack + instructionCount++; + EmitByte( &segment[CODESEG], OP_PUSH ); + + instructionCount++; + EmitByte( &segment[CODESEG], OP_LEAVE ); + EmitInt( &segment[CODESEG], 8 + currentLocals + currentArgs ); + + return; + } + + + if ( !strcmp( token, "address" ) ) { + Parse(); + v = ParseExpression(); + + HackToSegment( DATASEG ); + EmitInt( currentSegment, v ); + return; + } + if ( !strcmp( token, "export" ) ) { + return; + } + if ( !strcmp( token, "import" ) ) { + return; + } + if ( !strcmp( token, "code" ) ) { + currentSegment = &segment[CODESEG]; + return; + } + if ( !strcmp( token, "bss" ) ) { + currentSegment = &segment[BSSSEG]; + return; + } + if ( !strcmp( token, "data" ) ) { + currentSegment = &segment[DATASEG]; + return; + } + if ( !strcmp( token, "lit" ) ) { + currentSegment = &segment[LITSEG]; + return; + } + if ( !strcmp( token, "line" ) ) { + return; + } + if ( !strcmp( token, "file" ) ) { + return; + } + + if ( !strcmp( token, "equ" ) ) { + char name[1024]; + + Parse(); + strcpy( name, token ); + Parse(); + DefineSymbol( name, atoi(token) ); + return; + } + + if ( !strcmp( token, "align" ) ) { + v = ParseValue(); + currentSegment->imageUsed = (currentSegment->imageUsed + v - 1 ) & ~( v - 1 ); + return; + } + + if ( !strcmp( token, "skip" ) ) { + v = ParseValue(); + currentSegment->imageUsed += v; + return; + } + + if ( !strcmp( token, "byte" ) ) { + v = ParseValue(); + v2 = ParseValue(); + + if ( v == 1 ) { + HackToSegment( LITSEG ); + } else if ( v == 4 ) { + HackToSegment( DATASEG ); + } else if ( v == 2 ) { + CodeError( "16 bit initialized data not supported" ); + } + + // emit little endien + for ( i = 0 ; i < v ; i++ ) { + EmitByte( currentSegment, v2 ); + v2 >>= 8; + } + return; + } + + // code labels are emited as instruction counts, not byte offsets, + // because the physical size of the code will change with + // different run time compilers and we want to minimize the + // size of the required translation table + if ( !strncmp( token, "LABEL", 5 ) ) { + Parse(); + if ( currentSegment == &segment[CODESEG] ) { + DefineSymbol( token, instructionCount ); + } else { + DefineSymbol( token, currentSegment->imageUsed ); + } + return; + } + + CodeError( "Unknown token: %s\n", token ); +} + +/* +============== +InitTables +============== +*/ +void InitTables( void ) { + int i; + + for ( i = 0 ; i < NUM_SOURCE_OPS ; i++ ) { + opcodesHash[i] = HashString( sourceOps[i].name ); + } +} + + +/* +============== +WriteMapFile +============== +*/ +void WriteMapFile( void ) { + FILE *f; + symbol_t *s; + char imageName[MAX_OS_PATH]; + int seg; + + strcpy( imageName, outputFilename ); + StripExtension( imageName ); + strcat( imageName, ".map" ); + + printf( "Writing %s...\n", imageName ); + f = SafeOpenWrite( imageName ); + for ( seg = CODESEG ; seg <= BSSSEG ; seg++ ) { + for ( s = symbols ; s ; s = s->next ) { + if ( s->name[0] == '$' ) { + continue; // skip locals + } + if ( &segment[seg] != s->segment ) { + continue; + } + fprintf( f, "%i %8x %s\n", seg, s->value, s->name ); + } + } + fclose( f ); +} + +/* +=============== +WriteVmFile +=============== +*/ +void WriteVmFile( void ) { + char imageName[MAX_OS_PATH]; + vmHeader_t header; + FILE *f; + + printf( "%i total errors\n", errorCount ); + strcpy( imageName, outputFilename ); + StripExtension( imageName ); + strcat( imageName, ".qvm" ); + + remove( imageName ); + + printf( "code segment: %7i\n", segment[CODESEG].imageUsed ); + printf( "data segment: %7i\n", segment[DATASEG].imageUsed ); + printf( "lit segment: %7i\n", segment[LITSEG].imageUsed ); + printf( "bss segment: %7i\n", segment[BSSSEG].imageUsed ); + printf( "instruction count: %i\n", instructionCount ); + if ( errorCount != 0 ) { + printf( "Not writing a file due to errors\n" ); + return; + } + + header.vmMagic = VM_MAGIC; + header.instructionCount = instructionCount; + header.codeOffset = sizeof( header ); + header.codeLength = segment[CODESEG].imageUsed; + header.dataOffset = header.codeOffset + segment[CODESEG].imageUsed; + header.dataLength = segment[DATASEG].imageUsed; + header.litLength = segment[LITSEG].imageUsed; + header.bssLength = segment[BSSSEG].imageUsed; + + printf( "Writing to %s\n", imageName ); + + CreatePath( imageName ); + f = SafeOpenWrite( imageName ); + SafeWrite( f, &header, sizeof( header ) ); + SafeWrite( f, &segment[CODESEG].image, segment[CODESEG].imageUsed ); + SafeWrite( f, &segment[DATASEG].image, segment[DATASEG].imageUsed ); + SafeWrite( f, &segment[LITSEG].image, segment[LITSEG].imageUsed ); + fclose( f ); +} + +/* +=============== +Assemble +=============== +*/ +void Assemble( void ) { + int i; + char filename[MAX_OS_PATH]; + char *ptr; + + printf( "outputFilename: %s\n", outputFilename ); + + for ( i = 0 ; i < numAsmFiles ; i++ ) { + strcpy( filename, asmFileNames[ i ] ); + DefaultExtension( filename, ".asm" ); + LoadFile( filename, (void **)&asmFiles[i] ); + } + + // assemble + for ( passNumber = 0 ; passNumber < 2 ; passNumber++ ) { + segment[LITSEG].segmentBase = segment[DATASEG].imageUsed; + segment[BSSSEG].segmentBase = segment[LITSEG].segmentBase + segment[LITSEG].imageUsed; + for ( i = 0 ; i < NUM_SEGMENTS ; i++ ) { + segment[i].imageUsed = 0; + } + segment[DATASEG].imageUsed = 4; // skip the 0 byte, so NULL pointers are fixed up properly + instructionCount = 0; + + for ( i = 0 ; i < numAsmFiles ; i++ ) { + currentFileIndex = i; + currentFileName = asmFileNames[ i ]; + currentFileLine = 0; + printf("pass %i: %s\n", passNumber, currentFileName ); + ptr = asmFiles[i]; + while ( ptr ) { + ptr = ExtractLine( ptr ); + AssembleLine(); + } + } + + // align all segment + for ( i = 0 ; i < NUM_SEGMENTS ; i++ ) { + segment[i].imageUsed = (segment[i].imageUsed + 3) & ~3; + } + } + + // reserve the stack in bss + DefineSymbol( "_stackStart", segment[BSSSEG].imageUsed ); + segment[BSSSEG].imageUsed += stackSize; + DefineSymbol( "_stackEnd", segment[BSSSEG].imageUsed ); + + // write the image + WriteVmFile(); + + // write the map file even if there were errors + WriteMapFile(); +} + + +/* +============= +ParseOptionFile + +============= +*/ +void ParseOptionFile( const char *filename ) { + char expanded[MAX_OS_PATH]; + char *text, *text_p; + + strcpy( expanded, filename ); + DefaultExtension( expanded, ".q3asm" ); + LoadFile( expanded, (void **)&text ); + if ( !text ) { + return; + } + + text_p = text; + + while( ( text_p = COM_Parse( text_p ) ) != 0 ) { + if ( !strcmp( com_token, "-o" ) ) { + // allow output override in option file + text_p = COM_Parse( text_p ); + if ( text_p ) { + strcpy( outputFilename, com_token ); + } + continue; + } + + asmFileNames[ numAsmFiles ] = copystring( com_token ); + numAsmFiles++; + } +} + +/* +============== +main +============== +*/ +int main( int argc, char **argv ) { + int i; + double start, end; + +// _chdir( "/quake3/jccode/cgame/lccout" ); // hack for vc profiler + + if ( argc < 2 ) { + Error( "usage: q3asm [-o output] or q3asm -f \n" ); + } + + start = I_FloatTime (); + InitTables(); + + // default filename is "q3asm" + strcpy( outputFilename, "q3asm" ); + numAsmFiles = 0; + + for ( i = 1 ; i < argc ; i++ ) { + if ( argv[i][0] != '-' ) { + break; + } + if ( !strcmp( argv[i], "-o" ) ) { + if ( i == argc - 1 ) { + Error( "-o must preceed a filename" ); + } + strcpy( outputFilename, argv[ i+1 ] ); + i++; + continue; + } + + if ( !strcmp( argv[i], "-f" ) ) { + if ( i == argc - 1 ) { + Error( "-f must preceed a filename" ); + } + ParseOptionFile( argv[ i+1 ] ); + i++; + continue; + } + Error( "Unknown option: %s", argv[i] ); + } + + // the rest of the command line args are asm files + for ( ; i < argc ; i++ ) { + asmFileNames[ numAsmFiles ] = copystring( argv[ i ] ); + numAsmFiles++; + } + + Assemble(); + + end = I_FloatTime (); + printf ("%5.0f seconds elapsed\n", end-start); + + return 0; +} + diff --git a/code/tools/q3asm/q3asm.sln b/code/tools/q3asm/q3asm.sln new file mode 100644 index 0000000..48438df --- /dev/null +++ b/code/tools/q3asm/q3asm.sln @@ -0,0 +1,28 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "q3asm", "q3asm.vcproj", "{E0D6B319-6F95-4ABA-9BE0-5454CAA5C8CD}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SourceCodeControl) = preSolution + SccNumberOfProjects = 1 + SccProjectUniqueName0 = q3asm.vcproj + SccProjectName0 = \u0022$/source/q3asm\u0022,\u0020YUCAAAAA + SccLocalPath0 = . + SccProvider0 = MSSCCI:Perforce\u0020SCM + EndGlobalSection + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + Release = Release + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {E0D6B319-6F95-4ABA-9BE0-5454CAA5C8CD}.Debug.ActiveCfg = Debug|Win32 + {E0D6B319-6F95-4ABA-9BE0-5454CAA5C8CD}.Debug.Build.0 = Debug|Win32 + {E0D6B319-6F95-4ABA-9BE0-5454CAA5C8CD}.Release.ActiveCfg = Release|Win32 + {E0D6B319-6F95-4ABA-9BE0-5454CAA5C8CD}.Release.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/code/tools/q3asm/q3asm.vcproj b/code/tools/q3asm/q3asm.vcproj new file mode 100644 index 0000000..76bdc0b --- /dev/null +++ b/code/tools/q3asm/q3asm.vcproj @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/code/tools/q3asm/qfiles.h b/code/tools/q3asm/qfiles.h new file mode 100644 index 0000000..b2fd455 --- /dev/null +++ b/code/tools/q3asm/qfiles.h @@ -0,0 +1,485 @@ +/* +=========================================================================== +Copyright (C) 1999-2005 Id Software, Inc. + +This file is part of Quake III Arena source code. + +Quake III Arena source code is free software; you can redistribute it +and/or modify it under the terms of the GNU General Public License as +published by the Free Software Foundation; either version 2 of the License, +or (at your option) any later version. + +Quake III Arena source code is distributed in the hope that it will be +useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Foobar; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +=========================================================================== +*/ +#ifndef __QFILES_H__ +#define __QFILES_H__ + +// +// qfiles.h: quake file formats +// This file must be identical in the quake and utils directories +// + +// surface geometry should not exceed these limits +#define SHADER_MAX_VERTEXES 1000 +#define SHADER_MAX_INDEXES (6*SHADER_MAX_VERTEXES) + + +// the maximum size of game reletive pathnames +#define MAX_QPATH 64 + +/* +======================================================================== + +QVM files + +======================================================================== +*/ + +#define VM_MAGIC 0x12721444 +typedef struct { + int vmMagic; + + int instructionCount; + + int codeOffset; + int codeLength; + + int dataOffset; + int dataLength; + int litLength; // ( dataLength - litLength ) should be byteswapped on load + int bssLength; // zero filled memory appended to datalength +} vmHeader_t; + + +/* +======================================================================== + +PCX files are used for 8 bit images + +======================================================================== +*/ + +typedef struct { + char manufacturer; + char version; + char encoding; + char bits_per_pixel; + unsigned short xmin,ymin,xmax,ymax; + unsigned short hres,vres; + unsigned char palette[48]; + char reserved; + char color_planes; + unsigned short bytes_per_line; + unsigned short palette_type; + char filler[58]; + unsigned char data; // unbounded +} pcx_t; + + +/* +======================================================================== + +TGA files are used for 24/32 bit images + +======================================================================== +*/ + +typedef struct _TargaHeader { + unsigned char id_length, colormap_type, image_type; + unsigned short colormap_index, colormap_length; + unsigned char colormap_size; + unsigned short x_origin, y_origin, width, height; + unsigned char pixel_size, attributes; +} TargaHeader; + + + +/* +======================================================================== + +.MD3 triangle model file format + +======================================================================== +*/ + +#define MD3_IDENT (('3'<<24)+('P'<<16)+('D'<<8)+'I') +#define MD3_VERSION 15 + +// limits +#define MD3_MAX_LODS 3 +#define MD3_MAX_TRIANGLES 8192 // per surface +#define MD3_MAX_VERTS 4096 // per surface +#define MD3_MAX_SHADERS 256 // per surface +#define MD3_MAX_FRAMES 1024 // per model +#define MD3_MAX_SURFACES 32 // per model +#define MD3_MAX_TAGS 16 // per frame + +// vertex scales +#define MD3_XYZ_SCALE (1.0/64) + +typedef struct md3Frame_s { + vec3_t bounds[2]; + vec3_t localOrigin; + float radius; + char name[16]; +} md3Frame_t; + +typedef struct md3Tag_s { + char name[MAX_QPATH]; // tag name + vec3_t origin; + vec3_t axis[3]; +} md3Tag_t; + +/* +** md3Surface_t +** +** CHUNK SIZE +** header sizeof( md3Surface_t ) +** shaders sizeof( md3Shader_t ) * numShaders +** triangles[0] sizeof( md3Triangle_t ) * numTriangles +** st sizeof( md3St_t ) * numVerts +** XyzNormals sizeof( md3XyzNormal_t ) * numVerts * numFrames +*/ +typedef struct { + int ident; // + + char name[MAX_QPATH]; // polyset name + + int flags; + int numFrames; // all surfaces in a model should have the same + + int numShaders; // all surfaces in a model should have the same + int numVerts; + + int numTriangles; + int ofsTriangles; + + int ofsShaders; // offset from start of md3Surface_t + int ofsSt; // texture coords are common for all frames + int ofsXyzNormals; // numVerts * numFrames + + int ofsEnd; // next surface follows +} md3Surface_t; + +typedef struct { + char name[MAX_QPATH]; + int shaderIndex; // for in-game use +} md3Shader_t; + +typedef struct { + int indexes[3]; +} md3Triangle_t; + +typedef struct { + float st[2]; +} md3St_t; + +typedef struct { + short xyz[3]; + short normal; +} md3XyzNormal_t; + +typedef struct { + int ident; + int version; + + char name[MAX_QPATH]; // model name + + int flags; + + int numFrames; + int numTags; + int numSurfaces; + + int numSkins; + + int ofsFrames; // offset for first frame + int ofsTags; // numFrames * numTags + int ofsSurfaces; // first surface, others follow + + int ofsEnd; // end of file +} md3Header_t; + +/* +============================================================================== + +MD4 file format + +============================================================================== +*/ + +#define MD4_IDENT (('4'<<24)+('P'<<16)+('D'<<8)+'I') +#define MD4_VERSION 1 +#define MD4_MAX_BONES 128 + +typedef struct { + int boneIndex; // these are indexes into the boneReferences, + float boneWeight; // not the global per-frame bone list + vec3_t offset; +} md4Weight_t; + +typedef struct { + vec3_t normal; + vec2_t texCoords; + int numWeights; + md4Weight_t weights[1]; // variable sized +} md4Vertex_t; + +typedef struct { + int indexes[3]; +} md4Triangle_t; + +typedef struct { + int ident; + + char name[MAX_QPATH]; // polyset name + char shader[MAX_QPATH]; + int shaderIndex; // for in-game use + + int ofsHeader; // this will be a negative number + + int numVerts; + int ofsVerts; + + int numTriangles; + int ofsTriangles; + + // Bone references are a set of ints representing all the bones + // present in any vertex weights for this surface. This is + // needed because a model may have surfaces that need to be + // drawn at different sort times, and we don't want to have + // to re-interpolate all the bones for each surface. + int numBoneReferences; + int ofsBoneReferences; + + int ofsEnd; // next surface follows +} md4Surface_t; + +typedef struct { + float matrix[3][4]; +} md4Bone_t; + +typedef struct { + vec3_t bounds[2]; // bounds of all surfaces of all LOD's for this frame + vec3_t localOrigin; // midpoint of bounds, used for sphere cull + float radius; // dist from localOrigin to corner + char name[16]; + md4Bone_t bones[1]; // [numBones] +} md4Frame_t; + +typedef struct { + int numSurfaces; + int ofsSurfaces; // first surface, others follow + int ofsEnd; // next lod follows +} md4LOD_t; + +typedef struct { + int ident; + int version; + + char name[MAX_QPATH]; // model name + + // frames and bones are shared by all levels of detail + int numFrames; + int numBones; + int ofsFrames; // md4Frame_t[numFrames] + + // each level of detail has completely separate sets of surfaces + int numLODs; + int ofsLODs; + + int ofsEnd; // end of file +} md4Header_t; + + +/* +============================================================================== + + .BSP file format + +============================================================================== +*/ + + +#define BSP_IDENT (('P'<<24)+('S'<<16)+('B'<<8)+'I') + // little-endian "IBSP" + +#define BSP_VERSION 46 + + +// there shouldn't be any problem with increasing these values at the +// expense of more memory allocation in the utilities +#define MAX_MAP_MODELS 0x400 +#define MAX_MAP_BRUSHES 0x8000 +#define MAX_MAP_ENTITIES 0x800 +#define MAX_MAP_ENTSTRING 0x40000 +#define MAX_MAP_SHADERS 0x400 + +#define MAX_MAP_AREAS 0x100 // MAX_MAP_AREA_BYTES in q_shared must match! +#define MAX_MAP_FOGS 0x100 +#define MAX_MAP_PLANES 0x20000 +#define MAX_MAP_NODES 0x20000 +#define MAX_MAP_BRUSHSIDES 0x20000 +#define MAX_MAP_LEAFS 0x20000 +#define MAX_MAP_LEAFFACES 0x20000 +#define MAX_MAP_LEAFBRUSHES 0x40000 +#define MAX_MAP_PORTALS 0x20000 +#define MAX_MAP_LIGHTING 0x800000 +#define MAX_MAP_LIGHTGRID 0x800000 +#define MAX_MAP_VISIBILITY 0x200000 + +#define MAX_MAP_DRAW_SURFS 0x20000 +#define MAX_MAP_DRAW_VERTS 0x80000 +#define MAX_MAP_DRAW_INDEXES 0x80000 + + +// key / value pair sizes in the entities lump +#define MAX_KEY 32 +#define MAX_VALUE 1024 + +// the editor uses these predefined yaw angles to orient entities up or down +#define ANGLE_UP -1 +#define ANGLE_DOWN -2 + +#define LIGHTMAP_WIDTH 128 +#define LIGHTMAP_HEIGHT 128 + + +//============================================================================= + + +typedef struct { + int fileofs, filelen; +} lump_t; + +#define LUMP_ENTITIES 0 +#define LUMP_SHADERS 1 +#define LUMP_PLANES 2 +#define LUMP_NODES 3 +#define LUMP_LEAFS 4 +#define LUMP_LEAFSURFACES 5 +#define LUMP_LEAFBRUSHES 6 +#define LUMP_MODELS 7 +#define LUMP_BRUSHES 8 +#define LUMP_BRUSHSIDES 9 +#define LUMP_DRAWVERTS 10 +#define LUMP_DRAWINDEXES 11 +#define LUMP_FOGS 12 +#define LUMP_SURFACES 13 +#define LUMP_LIGHTMAPS 14 +#define LUMP_LIGHTGRID 15 +#define LUMP_VISIBILITY 16 +#define HEADER_LUMPS 17 + +typedef struct { + int ident; + int version; + + lump_t lumps[HEADER_LUMPS]; +} dheader_t; + +typedef struct { + float mins[3], maxs[3]; + int firstSurface, numSurfaces; + int firstBrush, numBrushes; +} dmodel_t; + +typedef struct { + char shader[MAX_QPATH]; + int surfaceFlags; + int contentFlags; +} dshader_t; + +// planes x^1 is allways the opposite of plane x + +typedef struct { + float normal[3]; + float dist; +} dplane_t; + +typedef struct { + int planeNum; + int children[2]; // negative numbers are -(leafs+1), not nodes + int mins[3]; // for frustom culling + int maxs[3]; +} dnode_t; + +typedef struct { + int cluster; // -1 = opaque cluster (do I still store these?) + int area; + + int mins[3]; // for frustum culling + int maxs[3]; + + int firstLeafSurface; + int numLeafSurfaces; + + int firstLeafBrush; + int numLeafBrushes; +} dleaf_t; + +typedef struct { + int planeNum; // positive plane side faces out of the leaf + int shaderNum; +} dbrushside_t; + +typedef struct { + int firstSide; + int numSides; + int shaderNum; // the shader that determines the contents flags +} dbrush_t; + +typedef struct { + char shader[MAX_QPATH]; + int brushNum; + int visibleSide; // the brush side that ray tests need to clip against (-1 == none) +} dfog_t; + +typedef struct { + vec3_t xyz; + float st[2]; + float lightmap[2]; + vec3_t normal; + byte color[4]; +} drawVert_t; + +typedef enum { + MST_BAD, + MST_PLANAR, + MST_PATCH, + MST_TRIANGLE_SOUP, + MST_FLARE +} mapSurfaceType_t; + +typedef struct { + int shaderNum; + int fogNum; + int surfaceType; + + int firstVert; + int numVerts; + + int firstIndex; + int numIndexes; + + int lightmapNum; + int lightmapX, lightmapY; + int lightmapWidth, lightmapHeight; + + vec3_t lightmapOrigin; + vec3_t lightmapVecs[3]; // for patches, [0] and [1] are lodbounds + + int patchWidth; + int patchHeight; +} dsurface_t; + + +#endif -- cgit v1.2.3