aboutsummaryrefslogtreecommitdiffstats
path: root/lcc
diff options
context:
space:
mode:
Diffstat (limited to 'lcc')
-rwxr-xr-xlcc/COPYRIGHT61
-rwxr-xr-xlcc/LOG91
-rwxr-xr-xlcc/README21
-rwxr-xr-xlcc/README.id3
-rwxr-xr-xlcc/alpha/osf/tst/8q.1bk92
-rwxr-xr-xlcc/alpha/osf/tst/8q.2bk2
-rwxr-xr-xlcc/alpha/osf/tst/8q.sbk193
-rwxr-xr-xlcc/alpha/osf/tst/array.1bk4
-rwxr-xr-xlcc/alpha/osf/tst/array.2bk2
-rwxr-xr-xlcc/alpha/osf/tst/array.sbk260
-rwxr-xr-xlcc/alpha/osf/tst/cf.1bk51
-rwxr-xr-xlcc/alpha/osf/tst/cf.2bk0
-rwxr-xr-xlcc/alpha/osf/tst/cf.sbk170
-rwxr-xr-xlcc/alpha/osf/tst/cq.1bk45
-rwxr-xr-xlcc/alpha/osf/tst/cq.2bk4
-rwxr-xr-xlcc/alpha/osf/tst/cq.sbk16904
-rwxr-xr-xlcc/alpha/osf/tst/cvt.1bk11
-rwxr-xr-xlcc/alpha/osf/tst/cvt.2bk2
-rwxr-xr-xlcc/alpha/osf/tst/cvt.sbk744
-rwxr-xr-xlcc/alpha/osf/tst/fields.1bk5
-rwxr-xr-xlcc/alpha/osf/tst/fields.2bk4
-rwxr-xr-xlcc/alpha/osf/tst/fields.sbk325
-rwxr-xr-xlcc/alpha/osf/tst/front.2bk29
-rwxr-xr-xlcc/alpha/osf/tst/front.sbk380
-rwxr-xr-xlcc/alpha/osf/tst/incr.1bk0
-rwxr-xr-xlcc/alpha/osf/tst/incr.2bk9
-rwxr-xr-xlcc/alpha/osf/tst/incr.sbk151
-rwxr-xr-xlcc/alpha/osf/tst/init.1bk16
-rwxr-xr-xlcc/alpha/osf/tst/init.2bk3
-rwxr-xr-xlcc/alpha/osf/tst/init.sbk333
-rwxr-xr-xlcc/alpha/osf/tst/limits.1bk14
-rwxr-xr-xlcc/alpha/osf/tst/limits.2bk0
-rwxr-xr-xlcc/alpha/osf/tst/limits.sbk405
-rwxr-xr-xlcc/alpha/osf/tst/paranoia.1bk195
-rwxr-xr-xlcc/alpha/osf/tst/paranoia.2bk16
-rwxr-xr-xlcc/alpha/osf/tst/paranoia.sbk19291
-rwxr-xr-xlcc/alpha/osf/tst/sort.1bk20
-rwxr-xr-xlcc/alpha/osf/tst/sort.2bk5
-rwxr-xr-xlcc/alpha/osf/tst/sort.sbk323
-rwxr-xr-xlcc/alpha/osf/tst/spill.1bk0
-rwxr-xr-xlcc/alpha/osf/tst/spill.2bk6
-rwxr-xr-xlcc/alpha/osf/tst/spill.sbk272
-rwxr-xr-xlcc/alpha/osf/tst/stdarg.1bk6
-rwxr-xr-xlcc/alpha/osf/tst/stdarg.2bk1
-rwxr-xr-xlcc/alpha/osf/tst/stdarg.sbk430
-rwxr-xr-xlcc/alpha/osf/tst/struct.1bk5
-rwxr-xr-xlcc/alpha/osf/tst/struct.2bk2
-rwxr-xr-xlcc/alpha/osf/tst/struct.sbk443
-rwxr-xr-xlcc/alpha/osf/tst/switch.1bk76
-rwxr-xr-xlcc/alpha/osf/tst/switch.2bk7
-rwxr-xr-xlcc/alpha/osf/tst/switch.sbk903
-rwxr-xr-xlcc/alpha/osf/tst/wf1.1bk74
-rwxr-xr-xlcc/alpha/osf/tst/wf1.2bk2
-rwxr-xr-xlcc/alpha/osf/tst/wf1.sbk400
-rwxr-xr-xlcc/alpha/osf/tst/yacc.1bk10
-rwxr-xr-xlcc/alpha/osf/tst/yacc.2bk3
-rwxr-xr-xlcc/alpha/osf/tst/yacc.sbk2402
-rwxr-xr-xlcc/bin/lcc.exebin0 -> 135223 bytes
-rwxr-xr-xlcc/bin/q3cpp.exebin0 -> 159801 bytes
-rwxr-xr-xlcc/bin/q3rcc.exebin0 -> 847929 bytes
-rwxr-xr-xlcc/buildnt.bat3
-rwxr-xr-xlcc/buildnt.sh4
-rwxr-xr-xlcc/cpp/cpp.c322
-rwxr-xr-xlcc/cpp/cpp.h163
-rwxr-xr-xlcc/cpp/eval.c520
-rwxr-xr-xlcc/cpp/getopt.c52
-rwxr-xr-xlcc/cpp/hideset.c112
-rwxr-xr-xlcc/cpp/include.c122
-rwxr-xr-xlcc/cpp/lex.c581
-rwxr-xr-xlcc/cpp/macro.c515
-rwxr-xr-xlcc/cpp/nlist.c104
-rwxr-xr-xlcc/cpp/tokens.c370
-rwxr-xr-xlcc/cpp/unix.c116
-rwxr-xr-xlcc/custom.mk1
-rwxr-xr-xlcc/doc/4.html754
-rwxr-xr-xlcc/doc/bprint.183
-rwxr-xr-xlcc/doc/bprint.pdfbin0 -> 4963 bytes
-rwxr-xr-xlcc/doc/install.html796
-rwxr-xr-xlcc/doc/lcc.1605
-rwxr-xr-xlcc/doc/lcc.pdfbin0 -> 16421 bytes
-rwxr-xr-xlcc/etc/bprint.c475
-rwxr-xr-xlcc/etc/gcc-solaris.c50
-rwxr-xr-xlcc/etc/irix.c64
-rwxr-xr-xlcc/etc/lcc.c793
-rwxr-xr-xlcc/etc/linux.c74
-rwxr-xr-xlcc/etc/ops.c190
-rwxr-xr-xlcc/etc/osf.c53
-rwxr-xr-xlcc/etc/solaris.c50
-rwxr-xr-xlcc/etc/win32.c43
-rwxr-xr-xlcc/include/alpha/osf/assert.h14
-rwxr-xr-xlcc/include/alpha/osf/ctype.h25
-rwxr-xr-xlcc/include/alpha/osf/errno.h8
-rwxr-xr-xlcc/include/alpha/osf/float.h37
-rwxr-xr-xlcc/include/alpha/osf/limits.h24
-rwxr-xr-xlcc/include/alpha/osf/locale.h36
-rwxr-xr-xlcc/include/alpha/osf/math.h29
-rwxr-xr-xlcc/include/alpha/osf/setjmp.h10
-rwxr-xr-xlcc/include/alpha/osf/signal.h20
-rwxr-xr-xlcc/include/alpha/osf/stdarg.h28
-rwxr-xr-xlcc/include/alpha/osf/stddef.h22
-rwxr-xr-xlcc/include/alpha/osf/stdio.h113
-rwxr-xr-xlcc/include/alpha/osf/stdlib.h54
-rwxr-xr-xlcc/include/alpha/osf/string.h35
-rwxr-xr-xlcc/include/alpha/osf/time.h50
-rwxr-xr-xlcc/include/mips/irix/assert.h14
-rwxr-xr-xlcc/include/mips/irix/ctype.h40
-rwxr-xr-xlcc/include/mips/irix/errno.h8
-rwxr-xr-xlcc/include/mips/irix/float.h37
-rwxr-xr-xlcc/include/mips/irix/limits.h24
-rwxr-xr-xlcc/include/mips/irix/locale.h36
-rwxr-xr-xlcc/include/mips/irix/math.h29
-rwxr-xr-xlcc/include/mips/irix/setjmp.h10
-rwxr-xr-xlcc/include/mips/irix/signal.h20
-rwxr-xr-xlcc/include/mips/irix/stdarg.h22
-rwxr-xr-xlcc/include/mips/irix/stddef.h22
-rwxr-xr-xlcc/include/mips/irix/stdio.h103
-rwxr-xr-xlcc/include/mips/irix/stdlib.h54
-rwxr-xr-xlcc/include/mips/irix/string.h35
-rwxr-xr-xlcc/include/mips/irix/time.h48
-rwxr-xr-xlcc/include/sparc/solaris/assert.h14
-rwxr-xr-xlcc/include/sparc/solaris/ctype.h46
-rwxr-xr-xlcc/include/sparc/solaris/errno.h8
-rwxr-xr-xlcc/include/sparc/solaris/float.h37
-rwxr-xr-xlcc/include/sparc/solaris/limits.h24
-rwxr-xr-xlcc/include/sparc/solaris/locale.h36
-rwxr-xr-xlcc/include/sparc/solaris/math.h30
-rwxr-xr-xlcc/include/sparc/solaris/setjmp.h10
-rwxr-xr-xlcc/include/sparc/solaris/signal.h20
-rwxr-xr-xlcc/include/sparc/solaris/stdarg.h22
-rwxr-xr-xlcc/include/sparc/solaris/stddef.h22
-rwxr-xr-xlcc/include/sparc/solaris/stdio.h104
-rwxr-xr-xlcc/include/sparc/solaris/stdlib.h54
-rwxr-xr-xlcc/include/sparc/solaris/string.h35
-rwxr-xr-xlcc/include/sparc/solaris/time.h48
-rwxr-xr-xlcc/include/x86/linux/assert.h14
-rwxr-xr-xlcc/include/x86/linux/float.h37
-rwxr-xr-xlcc/include/x86/linux/stdarg.h21
-rwxr-xr-xlcc/lburg/gram.c680
-rwxr-xr-xlcc/lburg/gram.y202
-rwxr-xr-xlcc/lburg/lburg.1179
-rwxr-xr-xlcc/lburg/lburg.c671
-rwxr-xr-xlcc/lburg/lburg.h65
-rwxr-xr-xlcc/lib/assert.c15
-rwxr-xr-xlcc/lib/bbexit.c123
-rwxr-xr-xlcc/lib/yynull.c12
-rwxr-xr-xlcc/makefile310
-rwxr-xr-xlcc/makefile.nt383
-rwxr-xr-xlcc/mips/irix/tst/8q.1bk92
-rwxr-xr-xlcc/mips/irix/tst/8q.2bk2
-rwxr-xr-xlcc/mips/irix/tst/8q.sbk169
-rwxr-xr-xlcc/mips/irix/tst/array.1bk4
-rwxr-xr-xlcc/mips/irix/tst/array.2bk2
-rwxr-xr-xlcc/mips/irix/tst/array.sbk235
-rwxr-xr-xlcc/mips/irix/tst/cf.1bk51
-rwxr-xr-xlcc/mips/irix/tst/cf.2bk0
-rwxr-xr-xlcc/mips/irix/tst/cf.sbk153
-rwxr-xr-xlcc/mips/irix/tst/cq.1bk48
-rwxr-xr-xlcc/mips/irix/tst/cq.2bk25
-rwxr-xr-xlcc/mips/irix/tst/cq.sbk13620
-rwxr-xr-xlcc/mips/irix/tst/cvt.1bk11
-rwxr-xr-xlcc/mips/irix/tst/cvt.2bk2
-rwxr-xr-xlcc/mips/irix/tst/cvt.sbk557
-rwxr-xr-xlcc/mips/irix/tst/fields.1bk5
-rwxr-xr-xlcc/mips/irix/tst/fields.2bk4
-rwxr-xr-xlcc/mips/irix/tst/fields.sbk304
-rwxr-xr-xlcc/mips/irix/tst/front.2bk29
-rwxr-xr-xlcc/mips/irix/tst/front.sbk416
-rwxr-xr-xlcc/mips/irix/tst/incr.2bk9
-rwxr-xr-xlcc/mips/irix/tst/incr.sbk149
-rwxr-xr-xlcc/mips/irix/tst/init.1bk16
-rwxr-xr-xlcc/mips/irix/tst/init.2bk3
-rwxr-xr-xlcc/mips/irix/tst/init.sbk325
-rwxr-xr-xlcc/mips/irix/tst/limits.1bk14
-rwxr-xr-xlcc/mips/irix/tst/limits.2bk0
-rwxr-xr-xlcc/mips/irix/tst/limits.sbk396
-rwxr-xr-xlcc/mips/irix/tst/paranoia.1bk178
-rwxr-xr-xlcc/mips/irix/tst/paranoia.2bk16
-rwxr-xr-xlcc/mips/irix/tst/paranoia.sbk18657
-rwxr-xr-xlcc/mips/irix/tst/sort.1bk20
-rwxr-xr-xlcc/mips/irix/tst/sort.2bk5
-rwxr-xr-xlcc/mips/irix/tst/sort.sbk308
-rwxr-xr-xlcc/mips/irix/tst/spill.2bk6
-rwxr-xr-xlcc/mips/irix/tst/spill.sbk271
-rwxr-xr-xlcc/mips/irix/tst/stdarg.1bk6
-rwxr-xr-xlcc/mips/irix/tst/stdarg.2bk1
-rwxr-xr-xlcc/mips/irix/tst/stdarg.sbk395
-rwxr-xr-xlcc/mips/irix/tst/struct.1bk5
-rwxr-xr-xlcc/mips/irix/tst/struct.2bk2
-rwxr-xr-xlcc/mips/irix/tst/struct.sbk485
-rwxr-xr-xlcc/mips/irix/tst/switch.1bk76
-rwxr-xr-xlcc/mips/irix/tst/switch.2bk5
-rwxr-xr-xlcc/mips/irix/tst/switch.sbk836
-rwxr-xr-xlcc/mips/irix/tst/wf1.1bk74
-rwxr-xr-xlcc/mips/irix/tst/wf1.2bk2
-rwxr-xr-xlcc/mips/irix/tst/wf1.sbk378
-rwxr-xr-xlcc/mips/irix/tst/yacc.1bk10
-rwxr-xr-xlcc/mips/irix/tst/yacc.2bk3
-rwxr-xr-xlcc/mips/irix/tst/yacc.sbk2236
-rwxr-xr-xlcc/msdev/rcc.dsp240
-rwxr-xr-xlcc/msdev/rcc.dsw29
-rwxr-xr-xlcc/packing.lst432
-rwxr-xr-xlcc/sparc/solaris/tst/8q.1bk92
-rwxr-xr-xlcc/sparc/solaris/tst/8q.2bk2
-rwxr-xr-xlcc/sparc/solaris/tst/8q.sbk144
-rwxr-xr-xlcc/sparc/solaris/tst/array.1bk4
-rwxr-xr-xlcc/sparc/solaris/tst/array.2bk2
-rwxr-xr-xlcc/sparc/solaris/tst/array.sbk172
-rwxr-xr-xlcc/sparc/solaris/tst/cf.1bk51
-rwxr-xr-xlcc/sparc/solaris/tst/cf.2bk0
-rwxr-xr-xlcc/sparc/solaris/tst/cf.sbk143
-rwxr-xr-xlcc/sparc/solaris/tst/cq.1bk48
-rwxr-xr-xlcc/sparc/solaris/tst/cq.2bk25
-rwxr-xr-xlcc/sparc/solaris/tst/cq.sbk13322
-rwxr-xr-xlcc/sparc/solaris/tst/cvt.1bk11
-rwxr-xr-xlcc/sparc/solaris/tst/cvt.2bk2
-rwxr-xr-xlcc/sparc/solaris/tst/cvt.sbk715
-rwxr-xr-xlcc/sparc/solaris/tst/fields.1bk5
-rwxr-xr-xlcc/sparc/solaris/tst/fields.2bk4
-rwxr-xr-xlcc/sparc/solaris/tst/fields.sbk309
-rwxr-xr-xlcc/sparc/solaris/tst/front.2bk29
-rwxr-xr-xlcc/sparc/solaris/tst/front.sbk260
-rwxr-xr-xlcc/sparc/solaris/tst/incr.1bk0
-rwxr-xr-xlcc/sparc/solaris/tst/incr.2bk9
-rwxr-xr-xlcc/sparc/solaris/tst/incr.sbk107
-rwxr-xr-xlcc/sparc/solaris/tst/init.1bk16
-rwxr-xr-xlcc/sparc/solaris/tst/init.2bk3
-rwxr-xr-xlcc/sparc/solaris/tst/init.sbk277
-rwxr-xr-xlcc/sparc/solaris/tst/limits.1bk14
-rwxr-xr-xlcc/sparc/solaris/tst/limits.2bk0
-rwxr-xr-xlcc/sparc/solaris/tst/limits.sbk384
-rwxr-xr-xlcc/sparc/solaris/tst/paranoia.1bk178
-rwxr-xr-xlcc/sparc/solaris/tst/paranoia.2bk16
-rwxr-xr-xlcc/sparc/solaris/tst/paranoia.sbk21068
-rwxr-xr-xlcc/sparc/solaris/tst/sort.1bk20
-rwxr-xr-xlcc/sparc/solaris/tst/sort.2bk5
-rwxr-xr-xlcc/sparc/solaris/tst/sort.sbk202
-rwxr-xr-xlcc/sparc/solaris/tst/spill.1bk0
-rwxr-xr-xlcc/sparc/solaris/tst/spill.2bk6
-rwxr-xr-xlcc/sparc/solaris/tst/spill.sbk207
-rwxr-xr-xlcc/sparc/solaris/tst/stdarg.1bk6
-rwxr-xr-xlcc/sparc/solaris/tst/stdarg.2bk1
-rwxr-xr-xlcc/sparc/solaris/tst/stdarg.sbk376
-rwxr-xr-xlcc/sparc/solaris/tst/struct.1bk5
-rwxr-xr-xlcc/sparc/solaris/tst/struct.2bk2
-rwxr-xr-xlcc/sparc/solaris/tst/struct.sbk377
-rwxr-xr-xlcc/sparc/solaris/tst/switch.1bk76
-rwxr-xr-xlcc/sparc/solaris/tst/switch.2bk5
-rwxr-xr-xlcc/sparc/solaris/tst/switch.sbk713
-rwxr-xr-xlcc/sparc/solaris/tst/wf1.1bk74
-rwxr-xr-xlcc/sparc/solaris/tst/wf1.2bk2
-rwxr-xr-xlcc/sparc/solaris/tst/wf1.sbk311
-rwxr-xr-xlcc/sparc/solaris/tst/yacc.1bk10
-rwxr-xr-xlcc/sparc/solaris/tst/yacc.2bk3
-rwxr-xr-xlcc/sparc/solaris/tst/yacc.sbk2247
-rwxr-xr-xlcc/src/2html.c555
-rwxr-xr-xlcc/src/alloc.c94
-rwxr-xr-xlcc/src/alpha.md1192
-rwxr-xr-xlcc/src/asdl.c399
-rwxr-xr-xlcc/src/bind.c23
-rwxr-xr-xlcc/src/bytecode.c365
-rwxr-xr-xlcc/src/c.h723
-rwxr-xr-xlcc/src/config.h102
-rwxr-xr-xlcc/src/dag.c735
-rwxr-xr-xlcc/src/dagcheck.md210
-rwxr-xr-xlcc/src/decl.c1160
-rwxr-xr-xlcc/src/enode.c543
-rwxr-xr-xlcc/src/error.c137
-rwxr-xr-xlcc/src/event.c28
-rwxr-xr-xlcc/src/expr.c709
-rwxr-xr-xlcc/src/gen.c830
-rwxr-xr-xlcc/src/init.c318
-rwxr-xr-xlcc/src/inits.c8
-rwxr-xr-xlcc/src/input.c134
-rwxr-xr-xlcc/src/lex.c922
-rwxr-xr-xlcc/src/list.c56
-rwxr-xr-xlcc/src/main.c225
-rwxr-xr-xlcc/src/mips.md1120
-rwxr-xr-xlcc/src/null.c74
-rwxr-xr-xlcc/src/output.c134
-rwxr-xr-xlcc/src/pass2.c665
-rwxr-xr-xlcc/src/prof.c227
-rwxr-xr-xlcc/src/profio.c276
-rwxr-xr-xlcc/src/rcc.asdl70
-rwxr-xr-xlcc/src/run.sh51
-rwxr-xr-xlcc/src/simp.c587
-rwxr-xr-xlcc/src/sparc.md1163
-rwxr-xr-xlcc/src/stab.c330
-rwxr-xr-xlcc/src/stab.h113
-rwxr-xr-xlcc/src/stmt.c697
-rwxr-xr-xlcc/src/string.c122
-rwxr-xr-xlcc/src/sym.c315
-rwxr-xr-xlcc/src/symbolic.c494
-rwxr-xr-xlcc/src/token.h133
-rwxr-xr-xlcc/src/trace.c180
-rwxr-xr-xlcc/src/tree.c223
-rwxr-xr-xlcc/src/types.c748
-rwxr-xr-xlcc/src/x86.md998
-rwxr-xr-xlcc/src/x86linux.md1081
-rwxr-xr-xlcc/tst/8q.00
-rwxr-xr-xlcc/tst/8q.c39
-rwxr-xr-xlcc/tst/array.00
-rwxr-xr-xlcc/tst/array.c48
-rwxr-xr-xlcc/tst/cf.032
-rwxr-xr-xlcc/tst/cf.c32
-rwxr-xr-xlcc/tst/cq.00
-rwxr-xr-xlcc/tst/cq.c5316
-rwxr-xr-xlcc/tst/cvt.00
-rwxr-xr-xlcc/tst/cvt.c35
-rwxr-xr-xlcc/tst/fields.00
-rwxr-xr-xlcc/tst/fields.c34
-rwxr-xr-xlcc/tst/front.00
-rwxr-xr-xlcc/tst/front.c120
-rwxr-xr-xlcc/tst/incr.00
-rwxr-xr-xlcc/tst/incr.c39
-rwxr-xr-xlcc/tst/init.00
-rwxr-xr-xlcc/tst/init.c59
-rwxr-xr-xlcc/tst/limits.00
-rwxr-xr-xlcc/tst/limits.c19
-rwxr-xr-xlcc/tst/paranoia.00
-rwxr-xr-xlcc/tst/paranoia.c2203
-rwxr-xr-xlcc/tst/sort.00
-rwxr-xr-xlcc/tst/sort.c65
-rwxr-xr-xlcc/tst/spill.00
-rwxr-xr-xlcc/tst/spill.c17
-rwxr-xr-xlcc/tst/stdarg.00
-rwxr-xr-xlcc/tst/stdarg.c51
-rwxr-xr-xlcc/tst/struct.00
-rwxr-xr-xlcc/tst/struct.c69
-rwxr-xr-xlcc/tst/switch.00
-rwxr-xr-xlcc/tst/switch.c137
-rwxr-xr-xlcc/tst/wf1.0115
-rwxr-xr-xlcc/tst/wf1.c101
-rwxr-xr-xlcc/tst/yacc.01
-rwxr-xr-xlcc/tst/yacc.c591
-rwxr-xr-xlcc/x86/linux/tst/8q.1bk92
-rwxr-xr-xlcc/x86/linux/tst/8q.2bk2
-rwxr-xr-xlcc/x86/linux/tst/8q.sbk180
-rwxr-xr-xlcc/x86/linux/tst/array.1bk4
-rwxr-xr-xlcc/x86/linux/tst/array.2bk2
-rwxr-xr-xlcc/x86/linux/tst/array.sbk235
-rwxr-xr-xlcc/x86/linux/tst/cf.1bk51
-rwxr-xr-xlcc/x86/linux/tst/cf.2bk0
-rwxr-xr-xlcc/x86/linux/tst/cf.sbk161
-rwxr-xr-xlcc/x86/linux/tst/cq.1bk48
-rwxr-xr-xlcc/x86/linux/tst/cq.2bk25
-rwxr-xr-xlcc/x86/linux/tst/cq.sbk15756
-rwxr-xr-xlcc/x86/linux/tst/cvt.1bk11
-rwxr-xr-xlcc/x86/linux/tst/cvt.2bk2
-rwxr-xr-xlcc/x86/linux/tst/cvt.sbk792
-rwxr-xr-xlcc/x86/linux/tst/fields.1bk5
-rwxr-xr-xlcc/x86/linux/tst/fields.2bk4
-rwxr-xr-xlcc/x86/linux/tst/fields.sbk321
-rwxr-xr-xlcc/x86/linux/tst/front.2bk29
-rwxr-xr-xlcc/x86/linux/tst/front.sbk530
-rwxr-xr-xlcc/x86/linux/tst/incr.1bk0
-rwxr-xr-xlcc/x86/linux/tst/incr.2bk9
-rwxr-xr-xlcc/x86/linux/tst/incr.sbk181
-rwxr-xr-xlcc/x86/linux/tst/init.1bk16
-rwxr-xr-xlcc/x86/linux/tst/init.2bk3
-rwxr-xr-xlcc/x86/linux/tst/init.sbk336
-rwxr-xr-xlcc/x86/linux/tst/limits.1bk14
-rwxr-xr-xlcc/x86/linux/tst/limits.2bk0
-rwxr-xr-xlcc/x86/linux/tst/limits.sbk396
-rwxr-xr-xlcc/x86/linux/tst/paranoia.1bk183
-rwxr-xr-xlcc/x86/linux/tst/paranoia.2bk16
-rwxr-xr-xlcc/x86/linux/tst/paranoia.sbk20248
-rwxr-xr-xlcc/x86/linux/tst/sort.1bk20
-rwxr-xr-xlcc/x86/linux/tst/sort.2bk5
-rwxr-xr-xlcc/x86/linux/tst/sort.sbk330
-rwxr-xr-xlcc/x86/linux/tst/spill.1bk0
-rwxr-xr-xlcc/x86/linux/tst/spill.2bk6
-rwxr-xr-xlcc/x86/linux/tst/spill.sbk282
-rwxr-xr-xlcc/x86/linux/tst/stdarg.1bk6
-rwxr-xr-xlcc/x86/linux/tst/stdarg.2bk1
-rwxr-xr-xlcc/x86/linux/tst/stdarg.sbk395
-rwxr-xr-xlcc/x86/linux/tst/struct.1bk5
-rwxr-xr-xlcc/x86/linux/tst/struct.2bk2
-rwxr-xr-xlcc/x86/linux/tst/struct.sbk477
-rwxr-xr-xlcc/x86/linux/tst/switch.1bk76
-rwxr-xr-xlcc/x86/linux/tst/switch.2bk5
-rwxr-xr-xlcc/x86/linux/tst/switch.sbk899
-rwxr-xr-xlcc/x86/linux/tst/wf1.1bk74
-rwxr-xr-xlcc/x86/linux/tst/wf1.2bk2
-rwxr-xr-xlcc/x86/linux/tst/wf1.sbk437
-rwxr-xr-xlcc/x86/linux/tst/yacc.1bk10
-rwxr-xr-xlcc/x86/linux/tst/yacc.2bk3
-rwxr-xr-xlcc/x86/linux/tst/yacc.sbk2526
-rwxr-xr-xlcc/x86/win32/tst/8q.1bk92
-rwxr-xr-xlcc/x86/win32/tst/8q.2bk2
-rwxr-xr-xlcc/x86/win32/tst/8q.sbk176
-rwxr-xr-xlcc/x86/win32/tst/array.1bk4
-rwxr-xr-xlcc/x86/win32/tst/array.2bk2
-rwxr-xr-xlcc/x86/win32/tst/array.sbk240
-rwxr-xr-xlcc/x86/win32/tst/cf.1bk51
-rwxr-xr-xlcc/x86/win32/tst/cf.2bk0
-rwxr-xr-xlcc/x86/win32/tst/cf.sbk185
-rwxr-xr-xlcc/x86/win32/tst/cq.1bk48
-rwxr-xr-xlcc/x86/win32/tst/cq.2bk25
-rwxr-xr-xlcc/x86/win32/tst/cq.sbk16642
-rwxr-xr-xlcc/x86/win32/tst/cvt.1bk11
-rwxr-xr-xlcc/x86/win32/tst/cvt.2bk2
-rwxr-xr-xlcc/x86/win32/tst/cvt.sbk742
-rwxr-xr-xlcc/x86/win32/tst/fields.1bk5
-rwxr-xr-xlcc/x86/win32/tst/fields.2bk4
-rwxr-xr-xlcc/x86/win32/tst/fields.sbk323
-rwxr-xr-xlcc/x86/win32/tst/front.2bk29
-rwxr-xr-xlcc/x86/win32/tst/front.sbk436
-rwxr-xr-xlcc/x86/win32/tst/incr.1bk0
-rwxr-xr-xlcc/x86/win32/tst/incr.2bk9
-rwxr-xr-xlcc/x86/win32/tst/incr.sbk166
-rwxr-xr-xlcc/x86/win32/tst/init.1bk16
-rwxr-xr-xlcc/x86/win32/tst/init.2bk3
-rwxr-xr-xlcc/x86/win32/tst/init.sbk336
-rwxr-xr-xlcc/x86/win32/tst/limits.1bk14
-rwxr-xr-xlcc/x86/win32/tst/limits.2bk0
-rwxr-xr-xlcc/x86/win32/tst/limits.sbk414
-rwxr-xr-xlcc/x86/win32/tst/paranoia.1bk179
-rwxr-xr-xlcc/x86/win32/tst/paranoia.2bk16
-rwxr-xr-xlcc/x86/win32/tst/paranoia.sbk20480
-rwxr-xr-xlcc/x86/win32/tst/sort.1bk20
-rwxr-xr-xlcc/x86/win32/tst/sort.2bk5
-rwxr-xr-xlcc/x86/win32/tst/sort.sbk324
-rwxr-xr-xlcc/x86/win32/tst/spill.1bk0
-rwxr-xr-xlcc/x86/win32/tst/spill.2bk6
-rwxr-xr-xlcc/x86/win32/tst/spill.sbk259
-rwxr-xr-xlcc/x86/win32/tst/stdarg.1bk6
-rwxr-xr-xlcc/x86/win32/tst/stdarg.2bk1
-rwxr-xr-xlcc/x86/win32/tst/stdarg.sbk415
-rwxr-xr-xlcc/x86/win32/tst/struct.1bk5
-rwxr-xr-xlcc/x86/win32/tst/struct.2bk2
-rwxr-xr-xlcc/x86/win32/tst/struct.sbk453
-rwxr-xr-xlcc/x86/win32/tst/switch.1bk76
-rwxr-xr-xlcc/x86/win32/tst/switch.2bk5
-rwxr-xr-xlcc/x86/win32/tst/switch.sbk960
-rwxr-xr-xlcc/x86/win32/tst/wf1.1bk74
-rwxr-xr-xlcc/x86/win32/tst/wf1.2bk2
-rwxr-xr-xlcc/x86/win32/tst/wf1.sbk451
-rwxr-xr-xlcc/x86/win32/tst/yacc.1bk10
-rwxr-xr-xlcc/x86/win32/tst/yacc.2bk3
-rwxr-xr-xlcc/x86/win32/tst/yacc.sbk2489
440 files changed, 259670 insertions, 0 deletions
diff --git a/lcc/COPYRIGHT b/lcc/COPYRIGHT
new file mode 100755
index 0000000..f98a895
--- /dev/null
+++ b/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/lcc/LOG b/lcc/LOG
new file mode 100755
index 0000000..3d83da3
--- /dev/null
+++ b/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/lcc/README b/lcc/README
new file mode 100755
index 0000000..4f64dee
--- /dev/null
+++ b/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/lcc/README.id b/lcc/README.id
new file mode 100755
index 0000000..2277953
--- /dev/null
+++ b/lcc/README.id
@@ -0,0 +1,3 @@
+2001-10-31 Timothee Besset <ttimo@idsoftware.com>
+updated from the $/source/lcc code
+modified for portability and use with >= 1.31 mod source release
diff --git a/lcc/alpha/osf/tst/8q.1bk b/lcc/alpha/osf/tst/8q.1bk
new file mode 100755
index 0000000..c66df8e
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/8q.2bk b/lcc/alpha/osf/tst/8q.2bk
new file mode 100755
index 0000000..fb28350
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/8q.sbk b/lcc/alpha/osf/tst/8q.sbk
new file mode 100755
index 0000000..df86e78
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/array.1bk b/lcc/alpha/osf/tst/array.1bk
new file mode 100755
index 0000000..e188568
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/array.2bk b/lcc/alpha/osf/tst/array.2bk
new file mode 100755
index 0000000..0a9b206
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/array.sbk b/lcc/alpha/osf/tst/array.sbk
new file mode 100755
index 0000000..f47573a
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/cf.1bk b/lcc/alpha/osf/tst/cf.1bk
new file mode 100755
index 0000000..24e21ba
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/cf.2bk b/lcc/alpha/osf/tst/cf.2bk
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/lcc/alpha/osf/tst/cf.2bk
diff --git a/lcc/alpha/osf/tst/cf.sbk b/lcc/alpha/osf/tst/cf.sbk
new file mode 100755
index 0000000..16683fa
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/cq.1bk b/lcc/alpha/osf/tst/cq.1bk
new file mode 100755
index 0000000..d040603
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/cq.2bk b/lcc/alpha/osf/tst/cq.2bk
new file mode 100755
index 0000000..f4e4562
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/cq.sbk b/lcc/alpha/osf/tst/cq.sbk
new file mode 100755
index 0000000..2971313
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/cvt.1bk b/lcc/alpha/osf/tst/cvt.1bk
new file mode 100755
index 0000000..74c79f1
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/cvt.2bk b/lcc/alpha/osf/tst/cvt.2bk
new file mode 100755
index 0000000..b3ab360
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/cvt.sbk b/lcc/alpha/osf/tst/cvt.sbk
new file mode 100755
index 0000000..d81c370
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/fields.1bk b/lcc/alpha/osf/tst/fields.1bk
new file mode 100755
index 0000000..f30b13f
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/fields.2bk b/lcc/alpha/osf/tst/fields.2bk
new file mode 100755
index 0000000..e689d78
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/fields.sbk b/lcc/alpha/osf/tst/fields.sbk
new file mode 100755
index 0000000..0c8f38c
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/front.2bk b/lcc/alpha/osf/tst/front.2bk
new file mode 100755
index 0000000..841e6a5
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/front.sbk b/lcc/alpha/osf/tst/front.sbk
new file mode 100755
index 0000000..366aab1
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/incr.1bk b/lcc/alpha/osf/tst/incr.1bk
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/lcc/alpha/osf/tst/incr.1bk
diff --git a/lcc/alpha/osf/tst/incr.2bk b/lcc/alpha/osf/tst/incr.2bk
new file mode 100755
index 0000000..b86c400
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/incr.sbk b/lcc/alpha/osf/tst/incr.sbk
new file mode 100755
index 0000000..5a9555a
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/init.1bk b/lcc/alpha/osf/tst/init.1bk
new file mode 100755
index 0000000..042f3bb
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/init.2bk b/lcc/alpha/osf/tst/init.2bk
new file mode 100755
index 0000000..da08062
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/init.sbk b/lcc/alpha/osf/tst/init.sbk
new file mode 100755
index 0000000..3ecc4a0
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/limits.1bk b/lcc/alpha/osf/tst/limits.1bk
new file mode 100755
index 0000000..2bc818a
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/limits.2bk b/lcc/alpha/osf/tst/limits.2bk
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/lcc/alpha/osf/tst/limits.2bk
diff --git a/lcc/alpha/osf/tst/limits.sbk b/lcc/alpha/osf/tst/limits.sbk
new file mode 100755
index 0000000..811ce42
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/paranoia.1bk b/lcc/alpha/osf/tst/paranoia.1bk
new file mode 100755
index 0000000..c74a883
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/paranoia.2bk b/lcc/alpha/osf/tst/paranoia.2bk
new file mode 100755
index 0000000..f6ddf16
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/paranoia.sbk b/lcc/alpha/osf/tst/paranoia.sbk
new file mode 100755
index 0000000..da869df
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/sort.1bk b/lcc/alpha/osf/tst/sort.1bk
new file mode 100755
index 0000000..380d529
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/sort.2bk b/lcc/alpha/osf/tst/sort.2bk
new file mode 100755
index 0000000..27488a1
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/sort.sbk b/lcc/alpha/osf/tst/sort.sbk
new file mode 100755
index 0000000..cb5b857
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/spill.1bk b/lcc/alpha/osf/tst/spill.1bk
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/lcc/alpha/osf/tst/spill.1bk
diff --git a/lcc/alpha/osf/tst/spill.2bk b/lcc/alpha/osf/tst/spill.2bk
new file mode 100755
index 0000000..f7e3521
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/spill.sbk b/lcc/alpha/osf/tst/spill.sbk
new file mode 100755
index 0000000..d05e700
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/stdarg.1bk b/lcc/alpha/osf/tst/stdarg.1bk
new file mode 100755
index 0000000..097aef7
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/stdarg.2bk b/lcc/alpha/osf/tst/stdarg.2bk
new file mode 100755
index 0000000..a832cf9
--- /dev/null
+++ b/lcc/alpha/osf/tst/stdarg.2bk
@@ -0,0 +1 @@
+tst/stdarg.c:51: warning: missing return value
diff --git a/lcc/alpha/osf/tst/stdarg.sbk b/lcc/alpha/osf/tst/stdarg.sbk
new file mode 100755
index 0000000..e5570c2
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/struct.1bk b/lcc/alpha/osf/tst/struct.1bk
new file mode 100755
index 0000000..2358779
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/struct.2bk b/lcc/alpha/osf/tst/struct.2bk
new file mode 100755
index 0000000..8a01bb1
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/struct.sbk b/lcc/alpha/osf/tst/struct.sbk
new file mode 100755
index 0000000..5fd21f4
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/switch.1bk b/lcc/alpha/osf/tst/switch.1bk
new file mode 100755
index 0000000..559e8e3
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/switch.2bk b/lcc/alpha/osf/tst/switch.2bk
new file mode 100755
index 0000000..ee469b4
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/switch.sbk b/lcc/alpha/osf/tst/switch.sbk
new file mode 100755
index 0000000..ec8a537
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/wf1.1bk b/lcc/alpha/osf/tst/wf1.1bk
new file mode 100755
index 0000000..095e087
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/wf1.2bk b/lcc/alpha/osf/tst/wf1.2bk
new file mode 100755
index 0000000..0e7a8a6
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/wf1.sbk b/lcc/alpha/osf/tst/wf1.sbk
new file mode 100755
index 0000000..22f279e
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/yacc.1bk b/lcc/alpha/osf/tst/yacc.1bk
new file mode 100755
index 0000000..b08a02f
--- /dev/null
+++ b/lcc/alpha/osf/tst/yacc.1bk
@@ -0,0 +1,10 @@
+a
+b
+load
+negate
+push 5
+c
+load
+multiply
+add
+store
diff --git a/lcc/alpha/osf/tst/yacc.2bk b/lcc/alpha/osf/tst/yacc.2bk
new file mode 100755
index 0000000..a84aa5b
--- /dev/null
+++ b/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/lcc/alpha/osf/tst/yacc.sbk b/lcc/alpha/osf/tst/yacc.sbk
new file mode 100755
index 0000000..e445a42
--- /dev/null
+++ b/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/lcc/bin/lcc.exe b/lcc/bin/lcc.exe
new file mode 100755
index 0000000..4e52b30
--- /dev/null
+++ b/lcc/bin/lcc.exe
Binary files differ
diff --git a/lcc/bin/q3cpp.exe b/lcc/bin/q3cpp.exe
new file mode 100755
index 0000000..e03aee0
--- /dev/null
+++ b/lcc/bin/q3cpp.exe
Binary files differ
diff --git a/lcc/bin/q3rcc.exe b/lcc/bin/q3rcc.exe
new file mode 100755
index 0000000..f545d5d
--- /dev/null
+++ b/lcc/bin/q3rcc.exe
Binary files differ
diff --git a/lcc/buildnt.bat b/lcc/buildnt.bat
new file mode 100755
index 0000000..7c48b13
--- /dev/null
+++ b/lcc/buildnt.bat
@@ -0,0 +1,3 @@
+call vcvars32
+set BUILDDIR=bin
+nmake -f makefile.nt all
diff --git a/lcc/buildnt.sh b/lcc/buildnt.sh
new file mode 100755
index 0000000..5d44b76
--- /dev/null
+++ b/lcc/buildnt.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+export BUILDDIR=.\\out
+mkdir out
+nmake -f makefile.nt all
diff --git a/lcc/cpp/cpp.c b/lcc/cpp/cpp.c
new file mode 100755
index 0000000..f632332
--- /dev/null
+++ b/lcc/cpp/cpp.c
@@ -0,0 +1,322 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <stdarg.h>
+#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 (--ifdepth<skipping)
+ skipping = 0;
+ --cursource->ifdepth;
+ 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, "<line>");
+ tp = trp->bp+2;
+ kline:
+ if (tp+1>=trp->lp || tp->type!=NUMBER || tp+3<trp->lp
+ || (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+1<trp->lp)
+ 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; tp<trp->lp&&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/lcc/cpp/cpp.h b/lcc/cpp/cpp.h
new file mode 100755
index 0000000..3c8a61c
--- /dev/null
+++ b/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/lcc/cpp/eval.c b/lcc/cpp/eval.c
new file mode 100755
index 0000000..2442ac2
--- /dev/null
+++ b/lcc/cpp/eval.c
@@ -0,0 +1,520 @@
+#include <stdlib.h>
+#include <string.h>
+#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, "<if>");
+ 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 = rv1<rv2; break;
+ case GT:
+ rv1 = rv1>rv2; 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)rv1<rv2; break;
+ case GT|UNSMARK:
+ rv1 = (unsigned long)rv1>rv2; break;
+ case LSH:
+ rv1 <<= rv2; break;
+ case LSH|UNSMARK:
+ rv1 = (unsigned long)rv1<<rv2; break;
+ case RSH:
+ 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); i+=2) {
+ if (*p == cvcon[i]) {
+ n = cvcon[i+1];
+ break;
+ }
+ }
+ p += 1;
+ if (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/lcc/cpp/getopt.c b/lcc/cpp/getopt.c
new file mode 100755
index 0000000..69e9ab4
--- /dev/null
+++ b/lcc/cpp/getopt.c
@@ -0,0 +1,52 @@
+#include <stdio.h>
+#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;
+char *strchr();
+
+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/lcc/cpp/hideset.c b/lcc/cpp/hideset.c
new file mode 100755
index 0000000..637a441
--- /dev/null
+++ b/lcc/cpp/hideset.c
@@ -0,0 +1,112 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#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<nhidesets; i++) {
+ for (hs1=nhs, hs2=hidesets[i]; *hs1==*hs2; hs1++, hs2++)
+ if (*hs1 == NULL)
+ return i;
+ }
+ if (len>=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/lcc/cpp/include.c b/lcc/cpp/include.c
new file mode 100755
index 0000000..66f1fc3
--- /dev/null
+++ b/lcc/cpp/include.c
@@ -0,0 +1,122 @@
+#include <stdlib.h>
+#include <string.h>
+#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, "<include>");
+ 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/lcc/cpp/lex.c b/lcc/cpp/lex.c
new file mode 100755
index 0000000..8513a17
--- /dev/null
+++ b/lcc/cpp/lex.c
@@ -0,0 +1,581 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#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; i<MAXSTATE; i++) {
+ for (j=0; j<0xFF; j++)
+ if (j=='?' || j=='\\') {
+ if (bigfsm[j][i]>0)
+ 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;
+ extern char outbuf[];
+
+ 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/lcc/cpp/macro.c b/lcc/cpp/macro.c
new file mode 100755
index 0000000..2268c4b
--- /dev/null
+++ b/lcc/cpp/macro.c
@@ -0,0 +1,515 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#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 (tp<trp->lp && 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; atp<args->lp; 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; tp<trp->lp; ) {
+ 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)<trp->lp && (tp+1)->type==NAME)
+ (tp+1)->type = NAME1;
+ else if ((tp+3)<trp->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; i<narg; i++) {
+ dofree(atr[i]->bp);
+ dofree(atr[i]);
+ }
+ }
+ doconcat(&ntr); /* execute ## operators */
+ hs = newhideset(trp->tp->hideset, np);
+ for (tp=ntr.bp; tp<ntr.lp; tp++) { /* distribute hidesets */
+ if (tp->type==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->tp<rtr->lp; ) {
+ 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, "<macro>");
+ 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->tp<trp->lp; 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 (ltp<trp->bp || 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; ap<mac->ap->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; i<tp->len; 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/lcc/cpp/nlist.c b/lcc/cpp/nlist.c
new file mode 100755
index 0000000..c77fff1
--- /dev/null
+++ b/lcc/cpp/nlist.c
@@ -0,0 +1,104 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#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; cp<cpe; )
+ h += *cp++;
+ h %= NLSIZE;
+ np = nlist[h];
+ while (np) {
+ if (*tp->t==*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/lcc/cpp/tokens.c b/lcc/cpp/tokens.c
new file mode 100755
index 0000000..701cbcc
--- /dev/null
+++ b/lcc/cpp/tokens.c
@@ -0,0 +1,370 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#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 (; tp1<tr1->lp ; 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 (tp<trp->bp || tp>trp->lp)
+ fprintf(stderr, "(tp offset %d) ", tp-trp->bp);
+ for (tp=trp->bp; tp<trp->lp && tp<trp->bp+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 (; tp<trp->lp; tp++) {
+ len = tp->len+tp->wslen;
+ p = tp->t-tp->wslen;
+ while (tp<trp->lp-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/lcc/cpp/unix.c b/lcc/cpp/unix.c
new file mode 100755
index 0000000..332ab0c
--- /dev/null
+++ b/lcc/cpp/unix.c
@@ -0,0 +1,116 @@
+#include <stdio.h>
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
+#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<NINCLUDE; i++)
+ if (includelist[i].always==1)
+ includelist[i].deleted = 1;
+ break;
+ case 'I':
+ for (i=NINCLUDE-2; 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("<cmdarg>", -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 = "<stdin>";
+ fd = 0;
+ if (optind<argc) {
+ if ((fp = strrchr(argv[optind], '/')) != NULL) {
+ int len = fp - argv[optind];
+ dp = (char*)newstring((uchar*)argv[optind], len+1, 0);
+ dp[len] = '\0';
+ }
+ fp = (char*)newstring((uchar*)argv[optind], strlen(argv[optind]), 0);
+ if ((fd = open(fp, 0)) <= 0)
+ error(FATAL, "Can't open input file %s", fp);
+ }
+ if (optind+1<argc) {
+ int fdo = creat(argv[optind+1], 0666);
+ if (fdo<0)
+ error(FATAL, "Can't open output file %s", argv[optind+1]);
+ dup2(fdo, 1);
+ }
+ if(Mflag)
+ setobjname(fp);
+ includelist[NINCLUDE-1].always = 0;
+ includelist[NINCLUDE-1].file = dp;
+ setsource(fp, fd, NULL);
+}
+
+
+
+/* memmove is defined here because some vendors don't provide it at
+ all and others do a terrible job (like calling malloc) */
+void *
+memmove(void *dp, const void *sp, size_t n)
+{
+ unsigned char *cdp, *csp;
+
+ if (n<=0)
+ return 0;
+ cdp = dp;
+ csp = (unsigned char *)sp;
+ if (cdp < csp) {
+ do {
+ *cdp++ = *csp++;
+ } while (--n);
+ } else {
+ cdp += n;
+ csp += n;
+ do {
+ *--cdp = *--csp;
+ } while (--n);
+ }
+ return 0;
+}
diff --git a/lcc/custom.mk b/lcc/custom.mk
new file mode 100755
index 0000000..2f32731
--- /dev/null
+++ b/lcc/custom.mk
@@ -0,0 +1 @@
+BUILDDIR=/tmp
diff --git a/lcc/doc/4.html b/lcc/doc/4.html
new file mode 100755
index 0000000..0158d8b
--- /dev/null
+++ b/lcc/doc/4.html
@@ -0,0 +1,754 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+
+<head>
+<link HREF="mailto:drh@microsoft.com" REV="made" TITLE="David R. Hanson">
+<title>The lcc 4.1 Code-Generation Interface</title>
+</head>
+
+<body>
+
+<h1>The lcc 4.1 Code-Generation Interface</h1>
+
+<p ALIGN="LEFT"><strong><a HREF="http://www.research.microsoft.com/~cwfraser/">Christopher
+W. Fraser</a> and <a HREF="http://www.research.microsoft.com/~drh/">David R. Hanson</a>, <a
+HREF="http://www.research.microsoft.com/">Microsoft Research</a></strong></p>
+
+<h2>Contents</h2>
+
+<dir>
+ <li><a HREF="#intro">Introduction</a> </li>
+ <li><a HREF="#metrics">5.1 Type Metrics</a></li>
+ <li><a HREF="#symbols">5.3 Symbols</a> </li>
+ <li><a HREF="#operators">5.5 Dag Operators</a></li>
+ <li><a HREF="#flags">5.6 Interface Flags</a></li>
+ <li><a HREF="#definitions">5.8 Definitions</a></li>
+ <li><a HREF="#constants">5.9 Constants</a></li>
+ <li><a HREF="#upcalls">5.12 Upcalls</a></li>
+</dir>
+
+<h2><a NAME="intro">Introduction</a></h2>
+
+<p>Version 4.1 is the latest release of <a
+HREF="http://www.cs.princeton.edu/software/lcc/">lcc</a>, the ANSI C compiler described in
+our book <cite>A Retargetable C Compiler: Design and Implementation</cite>
+(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 <cite>A
+Retargetable C Compiler</cite>.</p>
+
+<p>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 <cite>A Retargetable
+C Compiler</cite>). 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.</p>
+
+<p>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:
+
+<ul>
+ <li>The number of type suffixes has been reduced to 6.</li>
+ <li>Dag operators are composed of a generic operator, a type suffix, and a size.</li>
+ <li>Unsigned variants of several operators have been added.</li>
+ <li>Several interface functions have new signatures.</li>
+</ul>
+
+<p>In addition, version 4.x is written in ANSI C and uses the standard I/O library and
+other standard C functions.</p>
+
+<p>The sections below parallel the subsections of Chap. 5 of <cite>A Retargetable C
+Compiler</cite> and summarize the differences between the 3.x and 4.x code-generation
+interface. Unaffected subsections are omitted. Page citations refer to pages in <cite>A
+Retargetable C Compiler</cite>.</p>
+
+<h2><a NAME="metrics">5.1 Type Metrics</a></h2>
+
+<p>There are now 10 metrics in an interface record:</p>
+
+<pre>Metrics charmetric;
+Metrics shortmetric;
+Metrics intmetric;
+Metrics longmetric;
+Metrics longlongmetric;
+Metrics floatmetric;
+Metrics doublemetric;
+Metrics longdoublemetric;
+Metrics ptrmetric;
+Metrics structmetric;</pre>
+
+<p>Each of these specifies the size and alignment of the corresponding type. <code>ptrmetric</code>
+describes all pointers.</p>
+
+<h2><a NAME="symbols">5.3 Symbols</a></h2>
+
+<p>The actual value of a constant is stored in the <code>u.c.v</code> field of a symbol,
+which holds a <code>Value</code>:</p>
+
+<pre>typedef union value {
+ long i;
+ unsigned long u;
+ long double d;
+ void *p;
+ void (*g)(void);
+} Value;</pre>
+
+<p>The value is stored in the appropriate field according to its type, which is given by
+the symbol's <code>type</code> field.</p>
+
+<h2><a NAME="operators">5.5 Dag Operators</a></h2>
+
+<p>The <code>op</code> field a of <code>node</code> structure holds a dag operator, which
+consists of a generic operator, a type suffix, and a size indicator. The type suffixes
+are:</p>
+
+<pre>enum {
+ F=FLOAT,
+ I=INT,
+ U=UNSIGNED,
+ P=POINTER,
+ V=VOID,
+ B=STRUCT
+};
+
+#define sizeop(n) ((n)&lt;&lt;10)</pre>
+
+<p>Given a generic operator <code>o</code>, a type suffix <code>t</code>, and a size <code>s</code>,
+a type- and size-specific operator is formed by <code>o+t+sizeop(s)</code>. For example, <code>ADD+F+sizeop(4)</code>
+forms the operator <code>ADDF4</code>, which denotes the sum of two 4-byte floats.
+Similarly, <code>ADD+F+sizeop(8)</code> forms <code>ADDF8</code>, which denotes 8-byte
+floating addition. In the 3.x code-generation interface, <code>ADDF</code> and <code>ADDD</code>
+denoted these operations. There was no size indicator in the 3.x operators because the
+type suffix supplied both a type and a size.</p>
+
+<p>Table 5.1 lists each generic operator, its valid type suffixes, and the number of <code>kids</code>
+and <code>syms</code> that it uses; multiple values for <code>kids</code> indicate
+type-specific variants. The notations in the <strong>syms</strong> column give the number
+of <code>syms</code> values and a one-letter code that suggests their uses: 1V indicates
+that <code>syms[0]</code> points to a symbol for a variable, 1C indicates that <code>syms[0]</code>
+is a constant, and 1L indicates that <code>syms[0]</code> is a label. For 1S, <code>syms[0]</code>
+is a constant whose value is a size in bytes; 2S adds <code>syms[1]</code>, 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.</p>
+
+<table WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0">
+ <tr>
+ <td COLSPAN="6" ALIGN="CENTER"><strong>Table 5.1<img SRC="/~drh/resources/dot_clear.gif"
+ ALT="|" WIDTH="18" HEIGHT="1">Node Operators.</strong></td>
+ </tr>
+ <tr>
+ <td><strong>syms</strong></td>
+ <td><strong>kids</strong></td>
+ <td><strong>Operator</strong></td>
+ <td><strong>Type Suffixes</strong></td>
+ <td><strong>Sizes</strong></td>
+ <td><strong>Operation</strong></td>
+ </tr>
+ <tr>
+ <td>1V</td>
+ <td>0</td>
+ <td><code>ADDRF</code></td>
+ <td><code>...P..</code></td>
+ <td>p</td>
+ <td>address of a parameter</td>
+ </tr>
+ <tr>
+ <td>1V</td>
+ <td>0</td>
+ <td><code>ADDRG</code></td>
+ <td><code>...P..</code></td>
+ <td>p</td>
+ <td>address of a global</td>
+ </tr>
+ <tr>
+ <td>1V</td>
+ <td>0</td>
+ <td><code>ADDRL</code></td>
+ <td><code>...P..</code></td>
+ <td>p</td>
+ <td>address of a local</td>
+ </tr>
+ <tr>
+ <td>1C</td>
+ <td>0</td>
+ <td><code>CNST</code></td>
+ <td><code>FIUP..</code></td>
+ <td>fdx csilh p</td>
+ <td>constant</td>
+ </tr>
+ <tr ALIGN="LEFT" VALIGN="TOP">
+ <td><img SRC="/~drh/resources/dot_clear.gif" ALT="|" WIDTH="1" HEIGHT="12"></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>1</td>
+ <td><code>BCOM</code></td>
+ <td><code>.IU...</code></td>
+ <td>ilh</td>
+ <td>bitwise complement</td>
+ </tr>
+ <tr>
+ <td>1S</td>
+ <td>1</td>
+ <td><code>CVF</code></td>
+ <td><code>FI....</code></td>
+ <td>fdx ilh</td>
+ <td>convert from float</td>
+ </tr>
+ <tr>
+ <td>1S</td>
+ <td>1</td>
+ <td><code>CVI</code></td>
+ <td><code>FIU...</code></td>
+ <td>fdx csilh csilhp</td>
+ <td>convert from signed integer</td>
+ </tr>
+ <tr>
+ <td>1S</td>
+ <td>1</td>
+ <td><code>CVP</code></td>
+ <td><code>..U..</code></td>
+ <td>p</td>
+ <td>convert from pointer</td>
+ </tr>
+ <tr>
+ <td>1S</td>
+ <td>1</td>
+ <td><code>CVU</code></td>
+ <td><code>.IUP..</code></td>
+ <td>csilh p</td>
+ <td>convert from unsigned integer</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>1</td>
+ <td><code>INDIR</code></td>
+ <td><code>FIUP.B</code></td>
+ <td>fdx csilh p</td>
+ <td>fetch</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>1</td>
+ <td><code>NEG</code></td>
+ <td><code>FI....</code></td>
+ <td>fdx ilh</td>
+ <td>negation</td>
+ </tr>
+ <tr>
+ <td><img SRC="/~drh/resources/dot_clear.gif" ALT="|" WIDTH="1" HEIGHT="12"></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>2</td>
+ <td><code>ADD</code></td>
+ <td><code>FIUP..</code></td>
+ <td>fdx ilh ilhp p</td>
+ <td>addition</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>2</td>
+ <td><code>BAND</code></td>
+ <td><code>.IU...</code></td>
+ <td>ilh</td>
+ <td>bitwise AND</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>2</td>
+ <td><code>BOR</code></td>
+ <td><code>.IU...</code></td>
+ <td>ilh</td>
+ <td>bitwise inclusive OR</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>2</td>
+ <td><code>BXOR</code></td>
+ <td><code>.IU...</code></td>
+ <td>ilh</td>
+ <td>bitwise exclusive OR</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>2</td>
+ <td><code>DIV</code></td>
+ <td><code>FIU...</code></td>
+ <td>fdx ilh</td>
+ <td>division</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>2</td>
+ <td><code>LSH</code></td>
+ <td><code>.IU...</code></td>
+ <td>ilh</td>
+ <td>left shift</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>2</td>
+ <td><code>MOD</code></td>
+ <td><code>.IU...</code></td>
+ <td>ilh</td>
+ <td>modulus</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>2</td>
+ <td><code>MUL</code></td>
+ <td><code>FIU...</code></td>
+ <td>fdx ilh</td>
+ <td>multiplication</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>2</td>
+ <td><code>RSH</code></td>
+ <td><code>.IU...</code></td>
+ <td>ilh</td>
+ <td>right shift</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>2</td>
+ <td><code>SUB</code></td>
+ <td><code>FIUP..</code></td>
+ <td>fdx ilh ilhp p</td>
+ <td>subtraction</td>
+ </tr>
+ <tr>
+ <td><img SRC="/~drh/resources/dot_clear.gif" ALT="|" WIDTH="1" HEIGHT="12"></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>2S</td>
+ <td>2</td>
+ <td><code>ASGN</code></td>
+ <td><code>FIUP.B</code></td>
+ <td>fdx csilh p</td>
+ <td>assignment</td>
+ </tr>
+ <tr>
+ <td>1L</td>
+ <td>2</td>
+ <td><code>EQ</code></td>
+ <td><code>FIU...</code></td>
+ <td>fdx ilh ilhp</td>
+ <td>jump if equal</td>
+ </tr>
+ <tr>
+ <td>1L</td>
+ <td>2</td>
+ <td><code>GE</code></td>
+ <td><code>FIU...</code></td>
+ <td>fdx ilh ilhp</td>
+ <td>jump if greater than or equal</td>
+ </tr>
+ <tr>
+ <td>1L</td>
+ <td>2</td>
+ <td><code>GT</code></td>
+ <td><code>FIU...</code></td>
+ <td>fdx ilh ilhp</td>
+ <td>jump if greater than</td>
+ </tr>
+ <tr>
+ <td>1L</td>
+ <td>2</td>
+ <td><code>LE</code></td>
+ <td><code>FIU...</code></td>
+ <td>fdx ilh ilhp</td>
+ <td>jump if less than or equal</td>
+ </tr>
+ <tr>
+ <td>1L</td>
+ <td>2</td>
+ <td><code>LT</code></td>
+ <td><code>FIU...</code></td>
+ <td>fdx ilh ilhp</td>
+ <td>jump if less than</td>
+ </tr>
+ <tr>
+ <td>1L</td>
+ <td>2</td>
+ <td><code>NE</code></td>
+ <td><code>FIU...</code></td>
+ <td>fdx ilh ilhp</td>
+ <td>jump if not equal</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>2S</td>
+ <td>1</td>
+ <td><code>ARG</code></td>
+ <td><code>FIUP.B</code></td>
+ <td>fdx ilh p</td>
+ <td>argument</td>
+ </tr>
+ <tr>
+ <td>1</td>
+ <td>1 or 2</td>
+ <td><code>CALL</code></td>
+ <td><code>FIUPVB</code></td>
+ <td>fdx ilh p</td>
+ <td>function call</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>1</td>
+ <td><code>RET</code></td>
+ <td><code>FIUPV.</code></td>
+ <td>fdx ilh p</td>
+ <td>return from function</td>
+ </tr>
+ <tr>
+ <td><img SRC="/~drh/resources/dot_clear.gif" ALT="|" WIDTH="1" HEIGHT="12"></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>1</td>
+ <td><code>JUMP</code></td>
+ <td><code>....V.</code></td>
+ <td></td>
+ <td>unconditional jump</td>
+ </tr>
+ <tr>
+ <td>1L</td>
+ <td>0</td>
+ <td><code>LABEL</code></td>
+ <td><code>....V.</code></td>
+ <td></td>
+ <td>label definition</td>
+ </tr>
+</table>
+
+<p>The entries in the <strong>Sizes</strong> 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), &quot;long
+long&quot; 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.</p>
+
+<p>The actual values for the size indicators, fdxcsilhp, depend on the target. A
+specification like <code>ADDF</code>f denotes the operator <code>ADD+F+sizeop(</code>f<code>)</code>,
+where &quot;f&quot; is replaced by a target-dependent value, e.g., <code>ADDF4</code> and <code>ADDF8</code>.
+For example, back ends must implement the following <code>CVI</code> and <code>MUL</code>
+operators.</p>
+
+<blockquote>
+ <p><code>CVIF</code>f <code>CVIF</code>d <code>CVIF</code>x<br>
+ <code>CVII</code>c <code>CVII</code>s <code>CVII</code>i <code>CVII</code>l <code>CVII</code>h<br>
+ <code>CVIU</code>c <code>CVIU</code>s <code>CVIU</code>i <code>CVIU</code>l <code>CVIU</code>h
+ <code>CVIU</code>p<br>
+ <br>
+ <code>MULF</code>f <code>MULF</code>d <code>MULF</code>x<br>
+ <code>MULI</code>i <code>MULI</code>l <code>MULI</code>h<br>
+ <code>MULU</code>i <code>MULU</code>l <code>MULU</code>h</p>
+</blockquote>
+
+<p>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 &quot;long long&quot; 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 <code>CVI</code> and <code>MUL</code>
+operators.</p>
+
+<blockquote>
+ <p><code>CVIF</code>4 <code>CVIF</code>8<br>
+ <code>CVII</code>1 <code>CVII</code>2 <code>CVII</code>4<br>
+ <code>CVIU</code>1 <code>CVIU</code>2 <code>CVIU</code>4 <br>
+ <br>
+ <code>MULF</code>4 <code>MULF</code>8<br>
+ <code>MULI</code>4<br>
+ <code>MULU</code>4</p>
+</blockquote>
+
+<p>The set of operators is thus target-dependent; for example, <code>ADDI8</code> appears
+only if the target supports an 8-byte integer type. <a
+HREF="ftp://ftp.cs.princeton.edu/pub/packages/lcc/contrib/ops.c"><code>ops.c</code></a> is
+a program that, given a set of sizes, prints the required operators and their values,
+e.g.,</p>
+
+<blockquote>
+ <pre>% <em>ops c=1 s=2 i=4 l=4 h=4 f=4 d=8 x=8 p=4</em>
+...
+ 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</pre>
+</blockquote>
+
+<p>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, <code>CVUI4</code> converts an
+unsigned (<code>U</code>) to a 4-byte signed integer (<code>I4</code>). The <code>syms[0]</code>
+field points to a symbol-table entry for a integer constant that gives the size of the
+source operand. For example, if <code>syms[0]</code> in a <code>CVUI4</code> 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.</p>
+
+<p>The front end composes conversions between types <em>T</em><sub>1</sub> and <em>T</em><sub>2</sub>
+by widening <em>T</em><sub>1</sub> to it's &quot;supertype&quot;, if necessary, converting
+that result to <em>T</em><sub>2</sub>'s supertype, then narrowing the result to <em>T</em><sub>2</sub>,
+if necessary. The following table lists the supertypes; omitted entries are their own
+supertypes.</p>
+
+<blockquote>
+ <table BORDER="0" CELLPADDING="0" CELLSPACING="0">
+ <tr>
+ <td><strong>Type</strong></td>
+ <td><img SRC="/~drh/resources/dot_clear.gif" ALT="|" WIDTH="24" HEIGHT="1"></td>
+ <td><strong>Supertype</strong></td>
+ </tr>
+ <tr>
+ <td>signed char</td>
+ <td></td>
+ <td>int</td>
+ </tr>
+ <tr>
+ <td>signed short</td>
+ <td></td>
+ <td>int</td>
+ </tr>
+ <tr ALIGN="LEFT" VALIGN="TOP">
+ <td>unsigned char</td>
+ <td></td>
+ <td>int, if sizeof (char) &lt; sizeof (int)<br>
+ unsigned, otherwise</td>
+ </tr>
+ <tr ALIGN="LEFT" VALIGN="TOP">
+ <td>unsigned short</td>
+ <td></td>
+ <td>int, if sizeof (short) &lt; sizeof (int)<br>
+ unsigned, otherwise</td>
+ </tr>
+ <tr ALIGN="LEFT" VALIGN="TOP">
+ <td>void *</td>
+ <td></td>
+ <td>an unsigned type as large as a pointer</td>
+ </tr>
+ </table>
+</blockquote>
+
+<p>Pointers are converted to an unsigned type of the same size, even when that type is not
+one of the integer types.</p>
+
+<p>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 <code>CVUI</code>i
+conversion, when shorts are smaller than ints.</p>
+
+<p>There are now signed and unsigned variants of <code>ASGN</code>, <code>INDIR</code>, <code>BCOM</code>,
+<code>BOR</code>, <code>BXOR</code>, <code>BAND</code>, <code>ARG</code>, <code>CALL</code>,
+and <code>RET</code> 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 <code>ASGN</code>, <code>INDIR</code>, <code>ARG</code>, <code>CALL</code>,
+and <code>RET</code>.</p>
+
+<h2><a NAME="flags">5.6 Interface Flags</a></h2>
+
+<pre>unsigned unsigned_char:1;</pre>
+
+<p>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.</p>
+
+<p>All the interface flags can be set by command-line options, e.g., <code>-Wf-unsigned_char=1</code>
+causes plain characters to be unsigned.</p>
+
+<h2><a NAME="definitions">5.8 Definitions</a></h2>
+
+<p>The front end announces local variables by calling</p>
+
+<pre>void (*local)(Symbol);</pre>
+
+<p>It announces temporaries likewise; these have the symbol's <code>temporary</code> flag
+set, which indicates that the symbol will be used only in the next call to <code>gen</code>.
+If a temporary's <code>u.t.cse</code> field is nonnull, it points to the node that
+computes the value assigned to the temporary; see page 346.</p>
+
+<p>The front end calls</p>
+
+<pre>void (*address)(Symbol p, Symbol q, long n);</pre>
+
+<p>to initialize <code>q</code> to a symbol that represents an address of the form <em>x</em>+<code>n</code>,
+where <em>x</em> is the address represented by <code>p</code> and the long integer <code>n</code>
+is positive or negative.</p>
+
+<h2><a NAME="constants">5.9 Constants</a></h2>
+
+<p>The interface function</p>
+
+<pre>void (*defconst)(int suffix, int size, Value v);</pre>
+
+<p>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.</p>
+
+<blockquote>
+ <table BORDER="0" CELLPADDING="1" CELLSPACING="1">
+ <tr>
+ <td><strong>suffix</strong></td>
+ <td><img SRC="/~drh/resources/dot_clear.gif" ALT="|" WIDTH="24" HEIGHT="1"></td>
+ <td><strong>v Field</strong></td>
+ <td><img SRC="/~drh/resources/dot_clear.gif" ALT="|" WIDTH="24" HEIGHT="1"></td>
+ <td><strong>size</strong></td>
+ </tr>
+ <tr>
+ <td><code>F</code></td>
+ <td></td>
+ <td><code>v.d</code></td>
+ <td></td>
+ <td>float, double, long double</td>
+ </tr>
+ <tr>
+ <td><code>I</code></td>
+ <td></td>
+ <td><code>v.i</code></td>
+ <td></td>
+ <td>signed char, signed short, signed int, signed long</td>
+ </tr>
+ <tr>
+ <td><code>U</code></td>
+ <td></td>
+ <td><code>v.u</code></td>
+ <td></td>
+ <td>unsigned char, unsigned short, unsigned int, unsigned long</td>
+ </tr>
+ <tr>
+ <td><code>P</code></td>
+ <td></td>
+ <td><code>v.p</code></td>
+ <td></td>
+ <td>void *</td>
+ </tr>
+ </table>
+</blockquote>
+
+<p><code>defconst</code> must narrow <code>v.</code>x when <code>size</code> is less than <code>sizeof</code>
+<code>v.</code>x; e.g., to emit an unsigned char, <code>defconst</code> should emit <code>(unsigned
+char)v.i</code>.</p>
+
+<h2><a NAME="upcalls">5.12 Upcalls</a></h2>
+
+<p>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 <code>freopen</code> to redirect these
+streams to explicit files, when necessary.</p>
+
+<p><code>bp</code>, <code>outflush</code>, and <code>outs</code> have been eliminated.</p>
+
+<pre>extern void fprint(FILE *f, const char *fmt, ...);
+extern void print(const char *fmt, ...);</pre>
+
+<p>print formatted data to file <code>f</code> (<code>fprint</code>) or the standard
+output (<code>print</code>). These functions are like standard C's <code>printf</code> and
+<code>fprintf</code>, 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.</p>
+
+<blockquote>
+ <table BORDER="0" CELLPADDING="0" CELLSPACING="0">
+ <tr>
+ <td><strong>Specifiers</strong></td>
+ <td><img SRC="/~drh/resources/dot_clear.gif" ALT="|" WIDTH="24" HEIGHT="1"></td>
+ <td><strong>Corresponding printf Specifiers</strong></td>
+ </tr>
+ <tr>
+ <td><code>%c</code></td>
+ <td></td>
+ <td><code>%c</code></td>
+ </tr>
+ <tr>
+ <td><code>%d %D</code></td>
+ <td></td>
+ <td><code>%d %ld</code></td>
+ </tr>
+ <tr>
+ <td><code>%u %U</code></td>
+ <td></td>
+ <td><code>%u %lu</code></td>
+ </tr>
+ <tr>
+ <td><code>%x %X</code></td>
+ <td></td>
+ <td><code>%x %lx</code></td>
+ </tr>
+ <tr>
+ <td><code>%f %e %g</code></td>
+ <td></td>
+ <td><code>%e %f %g</code></td>
+ </tr>
+ <tr ALIGN="LEFT" VALIGN="TOP">
+ <td><code>%p</code></td>
+ <td></td>
+ <td>Converts the corresponding void * argument to unsigned long and prints it with the <code>printf</code>
+ <code>%#x</code> specifier or just <code>%x</code> when the argument is null.</td>
+ </tr>
+ <tr ALIGN="LEFT" VALIGN="TOP">
+ <td><code>%I</code></td>
+ <td></td>
+ <td>Prints the number of spaces given by the corresponding argument.</td>
+ </tr>
+ </table>
+</blockquote>
+
+<pre>#define generic(op) ((op)&amp;0x3F0)
+#define specific(op) ((op)&amp;0x3FF)</pre>
+
+<p><code>generic(op)</code> returns the generic variant of <code>op</code>; that is,
+without its type suffix and size indicator. <code>specific(op)</code> returns the
+type-specific variant of <code>op</code>; that is, without its size indicator.</p>
+
+<p><code>newconst</code> has been replaced by</p>
+
+<pre>extern Symbol intconst(int n);</pre>
+
+<p>which installs the integer constant <code>n</code> in the symbol table, if necessary,
+and returns a pointer to the symbol-table entry.</p>
+
+<hr>
+
+<address>
+ <a HREF="http://www.research.microsoft.com/~cwfraser/">Chris Fraser</a> / <a
+ HREF="mailto:cwfraser@microsoft.com">cwfraser@microsoft.com</a><br>
+ <a HREF="http://www.research.microsoft.com/~drh/">David Hanson</a> / <a
+ HREF="mailto:drh@microsoft.com">drh@microsoft.com</a><br>
+ $Revision: 145 $ $Date: 2001-10-17 16:53:10 -0500 (Wed, 17 Oct 2001) $
+</address>
+</body>
+</html>
diff --git a/lcc/doc/bprint.1 b/lcc/doc/bprint.1
new file mode 100755
index 0000000..794c957
--- /dev/null
+++ b/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/lcc/doc/bprint.pdf b/lcc/doc/bprint.pdf
new file mode 100755
index 0000000..1b11963
--- /dev/null
+++ b/lcc/doc/bprint.pdf
Binary files differ
diff --git a/lcc/doc/install.html b/lcc/doc/install.html
new file mode 100755
index 0000000..fd9c88b
--- /dev/null
+++ b/lcc/doc/install.html
@@ -0,0 +1,796 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+
+<head>
+<link HREF="mailto:drh@cs.princeton.edu" REV="made" TITLE="David R. Hanson">
+<title>Installing lcc</title>
+</head>
+
+<body>
+
+<h1>Installing lcc</h1>
+
+<p ALIGN="LEFT"><strong><a HREF="http://www.research.microsoft.com/~cwfraser/">Christopher
+W. Fraser</a> and <a HREF="http://www.research.microsoft.com/~drh/">David R. Hanson</a>, <a
+HREF="http://www.research.microsoft.com/">Microsoft Research</a></strong></p>
+
+<h2>Contents</h2>
+
+<dir>
+ <li><a HREF="#intro">Introduction</a></li>
+ <li><a HREF="#unix">Installation on UNIX</a></li>
+ <li><a HREF="#driver">Building the Driver</a></li>
+ <li><a HREF="#rcc">Building the Compiler and Accessories</a></li>
+ <li><a HREF="#win32">Installation on Windows NT 4.0 and Windows 95/98</a></li>
+ <li><a HREF="#bugs">Reporting Bugs</a></li>
+ <li><a HREF="#mailinglist">Keeping in Touch</a></li>
+</dir>
+
+<h2><a NAME="intro">Introduction</a></h2>
+
+<p><a HREF="http://www.cs.princeton.edu/software/lcc/">lcc</a> is the ANSI C compiler
+described in our book <cite>A Retargetable C Compiler: Design and Implementation</cite>
+(Addison-Wesley, 1995, ISBN 0-8053-1670-1).</p>
+
+<p>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 <u>use</u> lcc, you can run the <a
+href="ftp://ftp.cs.princeton.edu/pub/packages/lcc/lcc41.exe">InstallShield executable</a>,
+which installs the binaries and the documentation. If you want to <u>modify</u> lcc or <u>rebuild</u>
+it from the source files, you need the <a
+href="ftp://ftp.cs.princeton.edu/packages/lcc/lcc41.zip">complete distribution</a>, and
+you should read the rest of the section, the following three sections, and the <a
+HREF="#win32">Windows NT/95/98</a> section.</p>
+
+<p>Extract the distribution into its own directory. All non-absolute paths below are
+relative to this directory. The distribution holds the following subdirectories.</p>
+
+<blockquote>
+ <table BORDER="0" CELLPADDING="1" CELLSPACING="1" WIDTH="80%">
+ <tr>
+ <td><a HREF="../src"><code>src</code></a></td>
+ <td></td>
+ <td>source code</td>
+ </tr>
+ <tr>
+ <td><a HREF="../etc"><code>etc</code></a></td>
+ <td></td>
+ <td>driver, accessories</td>
+ </tr>
+ <tr>
+ <td><a HREF="../lib"><code>lib</code></a></td>
+ <td></td>
+ <td>runtime library source code</td>
+ </tr>
+ <tr>
+ <td><a HREF="../cpp"><code>cpp</code></a></td>
+ <td></td>
+ <td>preprocessor source code</td>
+ </tr>
+ <tr>
+ <td><a HREF="../lburg"><code>lburg</code></a></td>
+ <td></td>
+ <td>code-generator generator source code</td>
+ </tr>
+ <tr>
+ <td><a HREF="../doc"><code>doc</code></a></td>
+ <td></td>
+ <td>this document, man pages</td>
+ </tr>
+ <tr>
+ <td><code><a HREF="../include">include</a>/*/*</code></td>
+ <td></td>
+ <td>include files</td>
+ </tr>
+ <tr>
+ <td><a HREF="../tst"><code>tst</code></a></td>
+ <td></td>
+ <td>test suite</td>
+ </tr>
+ <tr>
+ <td><code><a HREF="../alpha">alpha</a>/*/tst</code></td>
+ <td></td>
+ <td>ALPHA test outputs</td>
+ </tr>
+ <tr>
+ <td><code><a HREF="../mips">mips</a>/*/tst</code></td>
+ <td></td>
+ <td>MIPS test outputs</td>
+ </tr>
+ <tr>
+ <td><code><a HREF="../sparc">sparc</a>/*/tst</code></td>
+ <td></td>
+ <td>SPARC test outputs</td>
+ </tr>
+ <tr>
+ <td><code><a HREF="../x86">x86</a>/*/tst</code></td>
+ <td></td>
+ <td>X86 test outputs</td>
+ </tr>
+ </table>
+</blockquote>
+
+<p><code>doc/install.html</code> is the HTML file for this document. <a HREF="4.html"><code>doc/4.html</code></a>
+describes the internal differences between lcc 3.x and 4.1.</p>
+
+<p>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. <strong>You will need an existing ANSI/ISO C
+compiler to build and install lcc.</strong></p>
+
+<h2><a NAME="unix">Installation on UNIX</a></h2>
+
+<p>The compilation components (the preprocessor, include files, and compiler proper, etc.)
+are installed in a single <em>build directory</em>. 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,</p>
+
+<blockquote>
+ <pre>% ln -s /usr/local/lib/lcc-4.1/sparc-solaris /usr/local/lib/lcc</pre>
+</blockquote>
+
+<p>points <code>/usr/local/lib/lcc</code> to a build directory for lcc version 4.1 on the
+SPARC under Solaris. Links into <code>/usr/local/lib</code> are created for the programs <code>lcc</code>
+and <code>bprint</code>. 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, <code>lcc</code>, can be used unmodified.</p>
+
+<p>Installation on a UNIX system involves the following steps. Below, the build directory
+is referred to as <code>BUILDDIR</code>.
+
+<ol>
+ <li>Create the build directory, using a version- and platform-specific naming convention as
+ suggested above, and record the name of this directory in the <code>BUILDDIR</code>
+ environment variable:<blockquote>
+ <pre>% setenv BUILDDIR /usr/local/lib/lcc-4.1/sparc-solaris
+% mkdir -p $BUILDDIR</pre>
+ </blockquote>
+ <p>Here and below, commands assume the C shell. Also, you'll need a version of <code>mkdir</code>
+ that supports the <code>-p</code> option, which creates intermediate directories as
+ necessary.</p>
+ </li>
+ <li>Copy the man pages to the repository for local man pages, e.g.,<blockquote>
+ <pre>% cp doc/*.1 /usr/local/man/man1</pre>
+ </blockquote>
+ <p>Some users copy the man pages to the build directory and create the appropriate
+ symbolic links, e.g., </p>
+ <blockquote>
+ <pre>% cp doc/*.1 $BUILDDIR
+% ln -s $BUILDDIR/*.1 /usr/local/man/man1</pre>
+ </blockquote>
+ </li>
+ <li>Platform-specific include files are in directories named <code>include/</code><em>target</em><code>/</code><em>os</em>.
+ Create the include directory in the build directory, and copy the include hierarchy for
+ your platform to this directory, e.g.,<blockquote>
+ <pre>% mkdir $BUILDDIR/include
+% cp -p -R include/sparc/solaris/* $BUILDDIR/include</pre>
+ </blockquote>
+ <p>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 <code>/proj/pkg/lcc</code>, so the included files are
+ &quot;installed&quot; by creating one symbolic link: </p>
+ <blockquote>
+ <pre>% ln -s /proj/pkg/lcc/4.1/include/sparc/solaris $BUILDDIR/include</pre>
+ </blockquote>
+ <p>If you're installing lcc on Linux, you <em>must</em> also plant a symbolic link named <code>gcc</code>
+ to gcc's library directory, because lcc uses gcc's C preprocessor and most of gcc's header
+ files:</p>
+ <blockquote>
+ <pre>% ln -s /usr/lib/gcc-lib/i486-linux/2.7.2.2 $BUILDDIR/gcc</pre>
+ </blockquote>
+ <p>The library directory shown above may be different on your Linux machine; to determine
+ the correct directory, browse <code>/usr/lib/gcc-lib</code>, or execute</p>
+ <blockquote>
+ <pre>% cc -v tst/8q.c</pre>
+ </blockquote>
+ <p>and examine the diagnostic output. Make sure that <code>$BUILDDIR/gcc/cpp</code> and <code>$BUILDDIR/gcc/include</code>
+ point to, respectively, gcc's C preprocessor and header files. On Linux, lcc looks for
+ include files in <code>$BUILDDIR/include</code>, <code>$BUILDDIR/gcc/include</code>, and <code>/usr/include</code>,
+ in that order; see <a HREF="#driver"><em>Building the Driver</em></a> and <a
+ href="../etc/linux.c"><code>etc/linux.c</code></a> for details.</p>
+ </li>
+ <li>The <a HREF="../makefile"><code>makefile</code></a> includes the file named by the <code>CUSTOM</code>
+ macro; the default is <code>custom.mk</code>, and an empty <code>custom.mk</code> is
+ included in the distribution. If desired, prepare a site-specification customization file
+ and define <code>CUSTOM</code> to the path of that file when invoking make in steps 5 and
+ 6, e.g.,<blockquote>
+ <pre>make CUSTOM=/users/drh/solaris.mk</pre>
+ </blockquote>
+ <p>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.</p>
+ </li>
+ <li>Build the host-specific driver, creating a custom host-specific part, if necessary. See <a
+ HREF="#driver"><em>Building the Driver</em></a>.</li>
+ <li>Build the preprocessor, compiler proper, library, and other accessories. See <a
+ HREF="#rcc"><em>Building the Compiler</em></a>.</li>
+ <li>Plant symbolic links to the build directory and to the installed programs, e.g.,<blockquote>
+ <pre>% ln -s $BUILDDIR /usr/local/lib/lcc
+% ln -s /usr/local/lib/{lcc,bprint} /usr/local/bin</pre>
+ </blockquote>
+ <p>Some users copy <code>bprint</code> and <code>lcc</code> into <code>/usr/local/bin</code>
+ instead of creating symbolic links. The advantange of creating the links for <code>lcc</code>
+ and <code>bprint</code> as shown is that, once established, they point indirectly to
+ whatever <code>/usr/local/lib/lcc</code> points to; installing a new version of lcc, say,
+ 4.2, can be done by changing <code>/usr/local/lib/lcc</code> to point to the 4.2 build
+ directory.</p>
+ </li>
+</ol>
+
+<h2><a NAME="driver">Building the Driver</a></h2>
+
+<p>The preprocessor, compiler, assembler, and loader are invoked by a driver program, <code>lcc</code>,
+which is similar to <code>cc</code> on most systems. It's described in the man page <code>doc/lcc.1</code>.
+The driver is built by combining the host-independent part, <a href="../etc/lcc.c"><code>etc/lcc.c</code></a>,
+with a small host-specific part. Distributed host-specific parts are named <code>etc/</code><em>os</em><code>.c</code>,
+where <em>os</em> is the name of the operating system for the host on which <code>lcc</code>
+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 <em>whatever</em><code>.c</code>, and edit it
+as described below. You should not have to edit <code>etc/lcc.c</code>.</p>
+
+<p>We'll use <a HREF="../etc/solaris.c"><code>etc/solaris.c</code></a> 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 <code>BUILDDIR</code> set correctly,
+and build the driver with a <code>make</code> command, e.g.,</p>
+
+<blockquote>
+ <pre>% make HOSTFILE=etc/solaris.c lcc
+cc -g -c -DTEMPDIR=\&quot;/tmp\&quot; -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</pre>
+</blockquote>
+
+<p>The symbolic name <code>HOSTFILE</code> specifies the path to the host-specific part,
+either one in the distribution or <em>whatever</em><code>.c</code>. Some versions of make
+may require the <code>-e</code> option in order to read the environment.</p>
+
+<p>Here's <code>etc/solaris.c</code>:</p>
+
+<blockquote>
+ <pre>/* Sparcs running Solaris 2.5.1 at CS Dept., Princeton University */
+
+#include &lt;string.h&gt;
+
+static char rcsid[] = &quot;$ Id: solaris.c,v 1.10 1998/09/14 20:36:33 drh Exp $&quot;;
+
+#ifndef LCCDIR
+#define LCCDIR &quot;/usr/local/lib/lcc/&quot;
+#endif
+#ifndef SUNDIR
+#define SUNDIR &quot;/opt/SUNWspro/SC4.2/lib/&quot;
+#endif
+
+char *suffixes[] = { &quot;.c&quot;, &quot;.i&quot;, &quot;.s&quot;, &quot;.o&quot;, &quot;.out&quot;, 0 };
+char inputs[256] = &quot;&quot;;
+char *cpp[] = { LCCDIR &quot;cpp&quot;,
+ &quot;-D__STDC__=1&quot;, &quot;-Dsparc&quot;, &quot;-D__sparc__&quot;, &quot;-Dsun&quot;, &quot;-D__sun__&quot;, &quot;-Dunix&quot;,
+ &quot;$1&quot;, &quot;$2&quot;, &quot;$3&quot;, 0 };
+char *include[] = { &quot;-I&quot; LCCDIR &quot;include&quot;, &quot;-I/usr/local/include&quot;,
+ &quot;-I/usr/include&quot;, 0 };
+char *com[] = { LCCDIR &quot;rcc&quot;, &quot;-target=sparc/solaris&quot;,
+ &quot;$1&quot;, &quot;$2&quot;, &quot;$3&quot;, 0 };
+char *as[] = { &quot;/usr/ccs/bin/as&quot;, &quot;-Qy&quot;, &quot;-s&quot;, &quot;-o&quot;, &quot;$3&quot;, &quot;$1&quot;, &quot;$2&quot;, 0 };
+char *ld[] = { &quot;/usr/ccs/bin/ld&quot;, &quot;-o&quot;, &quot;$3&quot;, &quot;$1&quot;,
+ SUNDIR &quot;crti.o&quot;, SUNDIR &quot;crt1.o&quot;,
+ SUNDIR &quot;values-xa.o&quot;, &quot;$2&quot;, &quot;&quot;,
+ &quot;-Y&quot;, &quot;P,&quot; SUNDIR &quot;:/usr/ccs/lib:/usr/lib&quot;, &quot;-Qy&quot;,
+ &quot;-L&quot; LCCDIR, &quot;-llcc&quot;, &quot;-lm&quot;, &quot;-lc&quot;, SUNDIR &quot;crtn.o&quot;, 0 };
+
+extern char *concat(char *, char *);
+
+int option(char *arg) {
+ if (strncmp(arg, &quot;-lccdir=&quot;, 8) == 0) {
+ cpp[0] = concat(&amp;arg[8], &quot;/cpp&quot;);
+ include[0] = concat(&quot;-I&quot;, concat(&amp;arg[8], &quot;/include&quot;));
+ ld[12] = concat(&quot;-L&quot;, &amp;arg[8]);
+ com[0] = concat(&amp;arg[8], &quot;/rcc&quot;);
+ } else if (strcmp(arg, &quot;-p&quot;) == 0) {
+ ld[5] = SUNDIR &quot;mcrt1.o&quot;;
+ ld[10] = &quot;P,&quot; SUNDIR &quot;libp:/usr/ccs/lib/libp:/usr/lib/libp:&quot;
+ SUNDIR &quot;:/usr/ccs/lib:/usr/lib&quot;;
+ } else if (strcmp(arg, &quot;-b&quot;) == 0)
+ ;
+ else if (strncmp(arg, &quot;-ld=&quot;, 4) == 0)
+ ld[0] = &amp;arg[4];
+ else
+ return 0;
+ return 1;
+}</pre>
+</blockquote>
+
+<p><code>LCCDIR</code> defaults to <code>&quot;/usr/local/lib/lcc/&quot;</code> unless
+it's defined by a <code>-D</code> option as part of <code>CFLAGS</code> in the make
+command, e.g.,</p>
+
+<blockquote>
+ <pre>% make HOSTFILE=etc/solaris.c CFLAGS='-DLCCDIR=\&quot;/v/lib/lcc/\&quot;' lcc</pre>
+</blockquote>
+
+<p>Note the trailing slash; <code>SUNDIR</code> is provided so you can use <code>etc/solaris.c</code>
+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 <a HREF="../etc/gcc-solaris.c"><code>etc/gcc-solaris.c</code></a>.</p>
+
+<p>Most of the host-specific code is platform-specific data and templates for the commands
+that invoke the preprocessor, compiler, assembler, and loader. The <code>suffixes</code>
+array lists the file name suffixes for C source files, preprocessed source files, assembly
+language source files, object files, and executable files. <code>suffixes</code> must be
+terminated with a null pointer, as shown above. The initialization of <code>suffixes</code>
+in <code><a HREF="../etc/solaris.c">etc/solaris.c</a></code> are the typical ones for UNIX
+systems. Each element of <code>suffixes</code> is actually a list of suffixes, separated
+by semicolons; <code><a HREF="../etc/win32.c">etc/win32.c</a></code> holds an example:</p>
+
+<blockquote>
+ <pre>char *suffixes[] = { &quot;.c;.C&quot;, &quot;.i;.I&quot;, &quot;.asm;.ASM;.s;.S&quot;, &quot;.obj;.OBJ&quot;, &quot;.exe&quot;, 0 };</pre>
+</blockquote>
+
+<p>When a list is given, the first suffix is used whenever lcc needs to generate a file
+name. For example, with <code><a HREF="../etc/win32.c">etc/win32.c</a></code>, lcc emits
+the generated assembly code into <code>.asm</code> files.</p>
+
+<p>The <code>inputs</code> array holds a null-terminated string of directories separated
+by colons or semicolons. These are used as the default value of <code>LCCINPUTS</code>, if
+the environment variable <code>LCCINPUTS</code> is not set; see the <a HREF="lcc.pdf">man
+page</a>.</p>
+
+<p>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.</p>
+
+<p>The <code>cpp</code> array gives the command for running lcc's preprocessor, <code>cpp</code>.
+Literal arguments specified in templates, e.g., <code>&quot;-Dsparc&quot;</code> in the <code>cpp</code>
+command above, are passed to the command as given.</p>
+
+<p>The strings <code>&quot;$1&quot;</code>, <code>&quot;$2&quot;</code>, and <code>&quot;$3&quot;</code>
+in templates are placeholders for <em>lists</em> of arguments that are substituted in a
+copy of the template before the command is executed. <code>$1</code> is replaced by the <em>options</em>
+specified by the user; for the preprocessor, this list always contains at least <code>-D__LCC__</code>.
+<code>$2</code> is replaced by the <em>input</em> files, and <code>$3</code> is replaced
+by the <em>output</em> file.</p>
+
+<p>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, <code>&quot;$3&quot;</code> becomes <code>&quot;&quot;</code>, which is removed from
+the final argument list.</p>
+
+<p>The <code>include</code> array is a list of <code>-I</code> 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 <a HREF="#unix">UNIX</a> or <a HREF="#win32">Windows</a>
+installation instructions. The driver adds these options to <code>cpp</code>'s arguments
+when it invokes the preprocessor, except when <code>-N</code> is specified.</p>
+
+<p><code>com</code> gives the command for invoking the compiler. This template can appear
+as shown above in a custom host-specific part, but the option <code>-target=sparc/solaris</code>
+should be edited to the <em>target</em><code>/</code><em>os</em> for your platform. If <code>com[1]</code>
+includes the string &quot;<code>win32</code>&quot;, the driver assumes it's running on
+Windows. lcc can generate code for <em>all</em> of the <em>target</em><code>/</code><em>os</em>
+combinations listed in the file <code>src/bind.c</code>. The <code>-target</code> option
+specifies the default combination. The driver's <code>-Wf</code> option can be used to
+specify other combinations; the <a HREF="lcc.pdf">man page</a> elaborates.</p>
+
+<p><code>as</code> 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.</p>
+
+<p><code>ld</code> gives the command for invoking the loader. For the other commands, the
+list <code>$2</code> contains a single file; for <code>ld</code>, <code>$2</code> contains
+all &quot;.o&quot; files and libraries, and <code>$3</code> is <code>a.out</code>, unless
+the <code>-o</code> option is specified. As suggested in the code above, <code>ld</code>
+must also specify the appropriate startup code and default libraries, including the lcc
+library, <code>liblcc.a</code>.</p>
+
+<p>The <code>option</code> function is described below; the minimal <code>option</code>
+function just returns 0.</p>
+
+<p>You can test <code>lcc</code> with the options <code>-v -v</code> to display the
+commands that would be executed, e.g.,</p>
+
+<blockquote>
+ <pre>% $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</pre>
+</blockquote>
+
+<p>As the output shows, <code>lcc</code> places temporary files in <code>/tmp</code>; if
+any of the environment variables <code>TMP</code>, <code>TEMP</code>, and <code>TMPDIR</code>
+are set, they override this default (in the order shown) as does the <code>-tempdir=</code><em>dir</em>
+option. The default can be changed by defining <code>TEMPDIR</code> in <code>CFLAGS</code>
+when building the driver.</p>
+
+<p>The <code>option</code> function is called for the options <code>-Wo</code>, <code>-g</code>,
+<code>-p</code>, <code>-pg</code>, and <code>-b</code> because these compiler options
+might also affect the loader's arguments. For these options, the driver calls <code>option(arg)</code>
+to give the host-specific code an opportunity to edit the <code>ld</code> command, if
+necessary. <code>option</code> can change <code>ld</code>, if necessary, and return 1 to
+announce its acceptance of the option. If the option is unsupported, <code>option</code>
+should return 0.</p>
+
+<p>For example, in response to <code>-g</code>, the <code>option</code> function shown
+above accepts the option but does nothing else, because the <code>ld</code> and <code>as</code>
+commands don't need to be modified on the SPARC. <code>-g</code> will also be added to the
+compiler's options by the host-independent part of the driver. The <code>-p</code> causes <code>option</code>
+to change the name of the startup code and changed the list of libraries. The <code>-b</code>
+option turns on <code>lcc</code>'s per-expression profiling, the code for which is in <code>liblcc.a</code>,
+so <code>option</code> need no nothing.</p>
+
+<p>On SPARCs, the driver also recognizes <code>-Bstatic</code> and <code>-Bdynamic</code>
+as linker options. The driver recognizes but ignores &quot;<code>-target</code> <em>name</em>&quot;
+option.</p>
+
+<p>The option <code>-Wo</code><em>arg</em> causes the driver to pass <em>arg</em> to <code>option</code>.
+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 <code>-Wo-lccdir=</code><em>dir</em> option, which
+causes lcc's compilation components to be found in <em>dir</em>, because this option is
+used by the test scripts, and because the driver simulates a <code>-Wo-lccdir</code>
+option with the value of the environment variable <code>LCCDIR</code>, if it's defined.
+The code above rebuilds the paths to the include files, preprocessor, compiler, and
+library by calling <code>concat</code>, which is defined in <code>etc/lcc.c</code>.</p>
+
+<h2><a NAME="rcc">Building the Compiler and Accessories</a></h2>
+
+<p>To build the rest of compilation components make sure <code>BUILDDIR</code> is set
+appropriately and type &quot;<code>make all</code>&quot;. This command builds <code>librcc.a</code>
+(the compiler's private library), <code>rcc</code> (the compiler proper), <code>lburg</code>
+(the code-generator generator), <code>cpp</code> (the preprocessor), <code>liblcc.a</code>
+(the runtime library), and <code>bprint</code> (the profile printer), all in <code>BUILDDIR</code>.
+There may be warnings, but there should be no errors. If you're using an ANSI/ISO compiler
+other than <code>cc</code>, specify its name with the <code>CC=</code> option, e.g.,
+&quot;<code>make CC=gcc all</code>&quot;. If you're running on a DEC ALPHA, use &quot;<code>make
+CC='cc -std1' all</code>&quot;; the <code>-std1</code> option is essential on the ALPHA.
+If you're on a DEC 5000 running Ultrix 4.3, use &quot;<code>make CC=c89 all</code>&quot;.</p>
+
+<p>Once <code>rcc</code> is built with the host C compiler, run the test suite to verify
+that <code>rcc</code> is working correctly. If any of the steps below fail, contact us
+(see <a HREF="#bugs"><em>Reporting Bugs</em></a>). The commands in the makefile run the
+shell script <code>src/run.sh</code> on each C program in the test suite, <code>tst/*.c</code>.
+It uses the driver, <code>$BUILDDIR/lcc</code>, so you must have the driver in the build
+directory before testing <code>rcc</code>. The <em>target</em><code>/</code><em>os</em>
+combination is read from the variable <code>TARGET</code>, which must be specified when
+invoking <code>make</code>:</p>
+
+<blockquote>
+ <pre>% 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:</pre>
+</blockquote>
+
+<p>Each line in the output above is of the form</p>
+
+<blockquote>
+ <p><code>$BUILDDIR/rcc -target=</code><em>target</em><code>/</code><em>os</em><code>$BUILDDIR/</code><em>target</em><code>/</code><em>os</em><code>/</code><em>X</em><code>.s:</code></p>
+</blockquote>
+
+<p>where <em>X</em> is the base name of the C program <em>X</em><code>.c</code> in the
+test suite. This output identifies the compiler and the target, e.g., &quot;<code>$BUILDDIR/rcc</code>
+is generating code for a <code>sparc</code> running the <code>solaris</code> operating
+system.&quot;</p>
+
+<p>For each program in the test suite, <code>src/run.sh</code> compiles the program, drops
+the generated assembly language code in <code>BUILDDIR</code>/<em>target</em><code>/</code><em>os</em>,
+and uses <code>diff</code> to compare the generated assembly code with the expected code
+(the code expected for <code>tst/8q.c</code> on the SPARC under Solaris is in <code>sparc/solaris/tst/8q.sbk</code>,
+etc.). If there are differences, the script executes the generated code with the input
+given in <code>tst</code> (the input for <code>tst/8q.c</code> is in <code>tst/8q.0</code>,
+etc.) and compares the output with the expected output (the expected output from <code>tst/8q.c</code>
+on the SPARC under Solaris is in <code>sparc/solaris/tst/8q.1bk</code>, etc.). The script
+also compares the diagnostics from the compiler with the expected diagnostics.</p>
+
+<p>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.</p>
+
+<p>Next, run the &quot;triple test&quot;, which builds <code>rcc</code> using itself:</p>
+
+<blockquote>
+ <pre>% 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</pre>
+</blockquote>
+
+<p>This command builds <code>rcc</code> twice; once using the <code>rcc</code> built by <code>cc</code>
+and again using the <code>rcc</code> built by <code>lcc</code>. 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; <a HREF="#bugs">contact</a> us.</p>
+
+<p>The final version of <code>rcc</code> should also pass the test suite; that is, the
+output from</p>
+
+<blockquote>
+ <pre>% make TARGET=sparc/solaris test</pre>
+</blockquote>
+
+<p>should be identical to that from the previous <code>make test</code>.</p>
+
+<p>The command &quot;<code>make clean</code>&quot; cleans up, but does not remove <code>rcc</code>,
+etc., and &quot;<code>make clobber</code>&quot; cleans up and removes <code>lcc</code>, <code>rcc</code>,
+and the other accessories. Test directories under <code>BUILDDIR</code> are <em>not</em>
+removed; you'll need to remove these by hand, e.g.,</p>
+
+<blockquote>
+ <pre>% rm -fr $BUILDDIR/sparc</pre>
+</blockquote>
+
+<p>The code generators for the other targets can be tested by specifying the desired <em>target</em><code>/</code><em>os</em>
+and setting an environment variable that controls what <code>src/run.sh</code> does. For
+example, to test the MIPS code generator, type</p>
+
+<blockquote>
+ <pre>% setenv REMOTEHOST noexecute
+% make TARGET=mips/irix test</pre>
+</blockquote>
+
+<p>As above, <code>src/run.sh</code> compares the MIPS code generated with what's
+expected. There should be no differences. Setting <code>REMOTEHOST</code> to <code>noexecute</code>
+suppresses the assembly and execution of the generated code. If you set <code>REMOTEHOST</code>
+to the name of a MIPS machine to which you can <code>rlogin</code>, <code>src/run.sh</code>
+will <code>rcp</code> the generated code to that machine and execute it there, if
+necessary. See <code>src/run.sh</code> for the details.</p>
+
+<p>You can use lcc as a cross compiler. The options <code>-S</code> and <code>-Wf-target=</code><em>target/os</em>
+generate assembly code for the specified target, which is any of those listed in the file <code>src/bind.c</code>.
+For example, </p>
+
+<blockquote>
+ <pre>% lcc -Wf-target=mips/irix -S tst/8q.c</pre>
+</blockquote>
+
+<p>generates MIPS code for <code>tst/8q.c</code> in <code>8q.s</code>.</p>
+
+<p>lcc can also generate code for a &quot;symbolic&quot; 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 <code>-Wf-target=symbolic</code>.
+For example,</p>
+
+<blockquote>
+ <pre>% lcc -Wf-target=symbolic -S tst/8q.c</pre>
+</blockquote>
+
+<p>generates symbolic output for <code>tst/8q.c</code> in <code>8q.s</code>. Adding <code>-Wf-html</code>
+causes the symbolic target to emit HTML instead of plain text. Finally, the option <code>-Wf-target=null</code>
+specifies the &quot;null&quot; target for which lcc emits nothing and thus only checks the
+syntax and semantics of its input files.</p>
+
+<h2><a NAME="win32">Installation on Windows NT 4.0 or Windows 95/98</a></h2>
+
+<p>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 <a
+HREF="http://support.microsoft.com/support/kb/articles/Q138/9/83.asp">upgrade to 6.11d</a>,
+because earlier 6.11 releases do not generate correct COFF object files.</p>
+
+<p>Building the distribution components from the ground up requires Microsoft's Visual
+C/C++ 5.0 compiler, Microsoft's make, <code>nmake</code>, and the standard Windows command
+interpreter. <a HREF="../makefile.nt"><code>makefile.nt</code></a> is written to use only <code>nmake</code>.
+As on UNIX systems, the compilation components are installed in a single <em>build
+directory</em>, and the top-level programs, <code>lcc.exe</code> and <code>bprint.exe</code>,
+are installed in a directory on the PATH. If the conventions used below are followed, the
+Windows-specific parts of the driver program, <code>lcc.exe</code>, can be used
+unmodified.</p>
+
+<p>Building from the source distribution on a Windows system involves the following steps.
+Below, the build directory is referred to as <code>BUILDDIR</code>, and the distribution
+is in <code>\dist\lcc\4.1</code>.
+
+<ol>
+ <li>Create the build directory, perhaps using a version- and platform-specific naming
+ convention as suggested in <a HREF="#unix"><em>Installation on UNIX</em></a>, and record
+ the name of this directory in the <code>BUILDDIR</code> environment variable:<blockquote>
+ <pre>C:\dist\lcc\4.1&gt;set BUILDDIR=\progra~1\lcc\4.1\bin
+C:\dist\lcc\4.1&gt;mkdir %BUILDDIR%</pre>
+ </blockquote>
+ <p>The default build, or installation, directory is <code>\Program Files\lcc\4.1\bin</code>,
+ but the <code>nmake</code> commands require that you use the corresponding 8.3 file name, <code>progra~1</code>,
+ instead of <code>Program Files</code>.</p>
+ </li>
+ <li><a HREF="../etc/win32.c"><code>etc\win32.c</code></a> is the Windows-specific part of
+ the driver. It assumes that environment variable <code>include</code> gives the locations
+ of the VC header files and that the linker (<code>link.exe</code>) and the assembler (<code>ml.exe</code>)
+ are on the PATH. It also assumes that the macro <code>LCCDIR</code> gives the build
+ directory. If necessary, revise a copy of <a HREF="../etc/win32.c"><code>etc\win32.c</code></a>
+ to reflect the conventions on your computer (see <a HREF="#driver"><em>Building the Driver</em></a>),
+ then build the driver, specifying the default temporary directory, if necessary:<blockquote>
+ <pre>C:\dist\lcc\4.1&gt;nmake -f makefile.nt TEMPDIR=\\temp HOSTFILE=etc/win32.c lcc
+...
+ cl -nologo -Zi -MLd -Fd\progra~1\lcc\4.1\bin\ -c -DTEMPDIR=\&quot;\\temp\&quot; -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</pre>
+ </blockquote>
+ <p>If you make a copy of <code>etc\win32.c</code>, specify the path of the copy as the
+ value of <code>HOSTFILE</code>. For example, if you copy <code>etc\win32.c</code> to <code>BUILDDIR</code>
+ and edit it, use the command</p>
+ <blockquote>
+ <pre>C:\dist\lcc\4.1&gt;nmake -f makefile.nt TEMPDIR=\\temp HOSTFILE=%BUILDDIR%\win32.c lcc</pre>
+ </blockquote>
+ </li>
+ <li>Build the preprocessor, compiler proper, library, and other accessories (see <a
+ HREF="#rcc"><em>Building the Compiler</em></a>):<blockquote>
+ <pre>C:\dist\lcc\4.1&gt;nmake -f makefile.nt all</pre>
+ </blockquote>
+ <p>This command uses the VC command-line tools <code>cl</code> and <code>lib</code> to
+ build <code>bprint.exe</code>, <code>cpp.exe</code>, <code>lburg.exe</code>, <code>liblcc.lib</code>,
+ <code>librcc.lib</code>, and <code>rcc.exe</code>, all in <code>BUILDDIR</code>. There may
+ be some warnings, but there should be no warnings.</p>
+ </li>
+ <li>Create a test directory and run the test suite:<blockquote>
+ <pre>C:\dist\lcc\4.1&gt;mkdir %BUILDDIR%\x86\win32\tst
+C:\dist\lcc\4.1&gt;nmake -f makefile.nt test</pre>
+ </blockquote>
+ <p>This command compiles each program in <a HREF="../tst">tst</a>, 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 <code>fc</code>). For
+ example, when the nmake command compiles <a HREF="../tst/8q.c"><code>tst\8q.c</code></a>,
+ it leaves the generated assembly code and diagnostic output in <code>%BUILDDIR%\x86\win32\tst\8q.s</code>
+ and <code>%BUILDDIR%\x86\win32\tst\8q.2</code>, and it compares them with the expected
+ results in <code>x86\win32\tst\8q.sbk</code>. It builds the executable program in <code>%BUILDDIR%\x86\win32\tst\8q.exe</code>,
+ runs it, and redirects the output to <code>%BUILDDIR%\x86\win32\tst\8q.1</code>, which it
+ compares with <code>x86\win32\tst\8q.1bk</code>. The output from this step is voluminous,
+ but there should be no differences and no errors.</p>
+ </li>
+ <li>Run the &quot;triple&quot; test, which compiles <code>rcc</code> with itself and
+ verifies the results:<blockquote>
+ <pre>C:\dist\lcc\4.1&gt;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</pre>
+ </blockquote>
+ <p>This command builds <code>rcc</code> twice; once using the <code>rcc</code> built by VC
+ and again using the <code>rcc</code> built by <code>lcc</code>. The resulting binaries are
+ compared using <code>fc</code>. 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; <a HREF="#bugs">contact</a> us.</p>
+ </li>
+ <li>Copy <code>lcc.exe</code> and <code>bprint.exe</code> to a directory on your PATH, e.g.,<blockquote>
+ <pre>C:\dist\lcc\4.1&gt;copy %BUILDDIR%\lcc.exe \bin
+ 1 file(s) copied.
+
+C:\dist\lcc\4.1&gt;copy %BUILDDIR%\bprint.exe \bin
+ 1 file(s) copied.</pre>
+ </blockquote>
+ </li>
+ <li>Finally, clean up:<blockquote>
+ <pre>C:\dist\lcc\4.1&gt;nmake -f makefile.nt clean</pre>
+ </blockquote>
+ <p>This command removes the derived files in <code>BUILDDIR</code>, but does not remove <code>rcc.exe</code>,
+ etc.; &quot;<code>nmake -f makefile.nt clobber</code>&quot; cleans up and removes all
+ executables and libraries. Test directories under <code>BUILDDIR</code> are <em>not</em>
+ removed; you'll need to remove these by hand, e.g.,</p>
+ <blockquote>
+ <pre>C:\dist\lcc\4.1&gt;rmdir %BUILDDIR%\x86 /s
+\progra~1\lcc\4.1\bin\x86, Are you sure (Y/N)? y</pre>
+ </blockquote>
+ </li>
+</ol>
+
+<h2><a NAME="bugs">Reporting Bugs</a></h2>
+
+<p>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 <cite>A Retargetable C Compiler: Design and Implementation</cite>.
+
+<ol>
+ <li>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.</li>
+ <li>Preprocess the source file and capture the preprocessor output. Discard the original
+ code.</li>
+ <li>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.</li>
+ <li>Confirm that the source file displays the error with the <em>distributed</em> 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.</li>
+ <li>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 <cite>The C Programming Language</cite>, or the
+ appropriate section in <cite>C: A Reference Manual</cite>, 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.</li>
+ <li>Confirm that your error hasn't been fixed already. The latest version of lcc is always
+ available for anonymous <code>ftp</code> from <code>ftp.cs.princeton.edu</code> in <a
+ HREF="ftp://ftp.cs.princeton.edu/pub/lcc"><code>pub/lcc</code></a>. A <a
+ HREF="ftp://ftp.cs.princeton.edu/pub/lcc/README"><code>README</code></a> file there gives
+ acquistion details, and the <a HREF="../LOG"><code>LOG</code></a> 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.</li>
+ <li>Send your program by electronic mail to <code>lcc-bugs@cs.princeton.edu</code>. Please
+ send only valid C programs; put all remarks in C comments so that we can process reports
+ semiautomatically.</li>
+</ol>
+
+<h2><a NAME="mailinglist">Keeping in Touch</a></h2>
+
+<p>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</p>
+
+<blockquote>
+ <pre>subscribe lcc</pre>
+</blockquote>
+
+<p>to <code>majordomo@cs.princeton.edu</code>. This line must appear in the message body;
+&quot;Subject:&quot; lines are ignored. To learn more about mailing lists served by <code>majordomo</code>,
+send a message with the 1-word body &quot;<code>help</code>&quot; to <code>majordomo@cs.princeton.edu</code>.
+Mail sent to <code>lcc@cs.princeton.edu</code> is forwarded to everyone on the mailing
+list.</p>
+
+<p>There is also an <code>lcc-bugs</code> mailing list for reporting bugs; subscribe to it
+by sending a message with the 1-line body </p>
+
+<blockquote>
+ <pre>subscribe lcc-bugs</pre>
+</blockquote>
+
+<p>to <code>majordomo@cs.princeton.edu</code>. Mail addressed to <var>lcc-bugs@cs.princeton.edu</var>
+is forwarded to everyone on this list.</p>
+
+<hr>
+
+<address>
+ <a HREF="http://www.research.microsoft.com/~cwfraser/">Chris Fraser</a> / <a
+ HREF="mailto:cwfraser@microsoft.com">cwfraser@microsoft.com</a><br>
+ <a HREF="http://www.research.microsoft.com/~drh/">David Hanson</a> / <a
+ HREF="mailto:drh@microsoft.com">drh@microsoft.com</a><br>
+ $Revision: 145 $ $Date: 2001-10-17 16:53:10 -0500 (Wed, 17 Oct 2001) $
+</address>
+</body>
+</html>
diff --git a/lcc/doc/lcc.1 b/lcc/doc/lcc.1
new file mode 100755
index 0000000..53c2cc5
--- /dev/null
+++ b/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/lcc/doc/lcc.pdf b/lcc/doc/lcc.pdf
new file mode 100755
index 0000000..6134de6
--- /dev/null
+++ b/lcc/doc/lcc.pdf
Binary files differ
diff --git a/lcc/etc/bprint.c b/lcc/etc/bprint.c
new file mode 100755
index 0000000..856d40b
--- /dev/null
+++ b/lcc/etc/bprint.c
@@ -0,0 +1,475 @@
+#include <assert.h>
+#include <ctype.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+/* 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 a<b, a==b, a>b, 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/lcc/etc/gcc-solaris.c b/lcc/etc/gcc-solaris.c
new file mode 100755
index 0000000..c38769c
--- /dev/null
+++ b/lcc/etc/gcc-solaris.c
@@ -0,0 +1,50 @@
+/* SPARCs running Solaris 2.5.1 w/GCC tools
+ at CS Dept., Princeton University */
+
+#include <string.h>
+
+
+#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/lcc/etc/irix.c b/lcc/etc/irix.c
new file mode 100755
index 0000000..cc09f1e
--- /dev/null
+++ b/lcc/etc/irix.c
@@ -0,0 +1,64 @@
+/* SGI big endian MIPSes running IRIX 5.2 at CS Dept., Princeton University */
+
+#include <string.h>
+
+
+#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/lcc/etc/lcc.c b/lcc/etc/lcc.c
new file mode 100755
index 0000000..c70abbb
--- /dev/null
+++ b/lcc/etc/lcc.c
@@ -0,0 +1,793 @@
+/*
+ * lcc [ option ]... [ file | -llib ]...
+ * front end for the ANSI C compiler
+ */
+static char rcsid[] = "Id: dummy rcsid";
+
+#include <stdio.h>
+#include <stdarg.h>
+#include <stdlib.h>
+#include <string.h>
+#include <assert.h>
+#include <ctype.h>
+#include <signal.h>
+
+#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 access(char *, int);
+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 */
+
+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 <process.h>
+#else
+#define _P_WAIT 0
+extern int fork(void);
+extern int wait(int *);
+extern void execv(const char *, char *[]);
+
+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;
+ 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)
+ status = _spawnvp(_P_WAIT, argv[0], argv);
+ 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 list, b;
+
+ 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/lcc/etc/linux.c b/lcc/etc/linux.c
new file mode 100755
index 0000000..58a8b81
--- /dev/null
+++ b/lcc/etc/linux.c
@@ -0,0 +1,74 @@
+/* x86s running Linux */
+
+#include <string.h>
+
+static char rcsid[] = "Dummy rcsid";
+
+/*
+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=x86/linux", "$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/lcc/etc/ops.c b/lcc/etc/ops.c
new file mode 100755
index 0000000..dd570b7
--- /dev/null
+++ b/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<<n)) == 0) {
+ printf(" %s%d=%d", opname, n, op + type + sizeop(n));
+ count++;
+ }
+ done |= 1<<n;
+ }
+ }
+ printf("\n");
+ return count;
+}
+
+int main(int argc, char *argv[]) {
+ int i, count = 0;
+
+ for (i = 1; i < argc; i++) {
+ char c, *s;
+ int n;
+ if (sscanf(argv[i], "%c=%d", &c, &n) == 2
+ && n > 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/lcc/etc/osf.c b/lcc/etc/osf.c
new file mode 100755
index 0000000..4c57b09
--- /dev/null
+++ b/lcc/etc/osf.c
@@ -0,0 +1,53 @@
+/* DEC ALPHAs running OSF/1 V3.2A (Rev. 17) at Princeton University */
+
+#include <string.h>
+
+
+#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/lcc/etc/solaris.c b/lcc/etc/solaris.c
new file mode 100755
index 0000000..453b101
--- /dev/null
+++ b/lcc/etc/solaris.c
@@ -0,0 +1,50 @@
+/* SPARCs running Solaris 2.5.1 at CS Dept., Princeton University */
+
+#include <string.h>
+
+
+#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/lcc/etc/win32.c b/lcc/etc/win32.c
new file mode 100755
index 0000000..097fa42
--- /dev/null
+++ b/lcc/etc/win32.c
@@ -0,0 +1,43 @@
+/* x86s running MS Windows NT 4.0 */
+
+#include <string.h>
+
+
+#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/lcc/include/alpha/osf/assert.h b/lcc/include/alpha/osf/assert.h
new file mode 100755
index 0000000..e7f8777
--- /dev/null
+++ b/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/lcc/include/alpha/osf/ctype.h b/lcc/include/alpha/osf/ctype.h
new file mode 100755
index 0000000..86b8149
--- /dev/null
+++ b/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/lcc/include/alpha/osf/errno.h b/lcc/include/alpha/osf/errno.h
new file mode 100755
index 0000000..5ab3f0f
--- /dev/null
+++ b/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/lcc/include/alpha/osf/float.h b/lcc/include/alpha/osf/float.h
new file mode 100755
index 0000000..8a8ddb1
--- /dev/null
+++ b/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/lcc/include/alpha/osf/limits.h b/lcc/include/alpha/osf/limits.h
new file mode 100755
index 0000000..06b8e28
--- /dev/null
+++ b/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/lcc/include/alpha/osf/locale.h b/lcc/include/alpha/osf/locale.h
new file mode 100755
index 0000000..a861b47
--- /dev/null
+++ b/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/lcc/include/alpha/osf/math.h b/lcc/include/alpha/osf/math.h
new file mode 100755
index 0000000..bb39d69
--- /dev/null
+++ b/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/lcc/include/alpha/osf/setjmp.h b/lcc/include/alpha/osf/setjmp.h
new file mode 100755
index 0000000..83216dd
--- /dev/null
+++ b/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/lcc/include/alpha/osf/signal.h b/lcc/include/alpha/osf/signal.h
new file mode 100755
index 0000000..22f98bc
--- /dev/null
+++ b/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/lcc/include/alpha/osf/stdarg.h b/lcc/include/alpha/osf/stdarg.h
new file mode 100755
index 0000000..1b4947e
--- /dev/null
+++ b/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/lcc/include/alpha/osf/stddef.h b/lcc/include/alpha/osf/stddef.h
new file mode 100755
index 0000000..459bfd6
--- /dev/null
+++ b/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/lcc/include/alpha/osf/stdio.h b/lcc/include/alpha/osf/stdio.h
new file mode 100755
index 0000000..6777a8f
--- /dev/null
+++ b/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/lcc/include/alpha/osf/stdlib.h b/lcc/include/alpha/osf/stdlib.h
new file mode 100755
index 0000000..e224f65
--- /dev/null
+++ b/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/lcc/include/alpha/osf/string.h b/lcc/include/alpha/osf/string.h
new file mode 100755
index 0000000..f19b1e4
--- /dev/null
+++ b/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/lcc/include/alpha/osf/time.h b/lcc/include/alpha/osf/time.h
new file mode 100755
index 0000000..019c624
--- /dev/null
+++ b/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/lcc/include/mips/irix/assert.h b/lcc/include/mips/irix/assert.h
new file mode 100755
index 0000000..5b4776c
--- /dev/null
+++ b/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/lcc/include/mips/irix/ctype.h b/lcc/include/mips/irix/ctype.h
new file mode 100755
index 0000000..7239547
--- /dev/null
+++ b/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/lcc/include/mips/irix/errno.h b/lcc/include/mips/irix/errno.h
new file mode 100755
index 0000000..5ab3f0f
--- /dev/null
+++ b/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/lcc/include/mips/irix/float.h b/lcc/include/mips/irix/float.h
new file mode 100755
index 0000000..8a8ddb1
--- /dev/null
+++ b/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/lcc/include/mips/irix/limits.h b/lcc/include/mips/irix/limits.h
new file mode 100755
index 0000000..98251f8
--- /dev/null
+++ b/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/lcc/include/mips/irix/locale.h b/lcc/include/mips/irix/locale.h
new file mode 100755
index 0000000..a861b47
--- /dev/null
+++ b/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/lcc/include/mips/irix/math.h b/lcc/include/mips/irix/math.h
new file mode 100755
index 0000000..bb39d69
--- /dev/null
+++ b/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/lcc/include/mips/irix/setjmp.h b/lcc/include/mips/irix/setjmp.h
new file mode 100755
index 0000000..d4247f9
--- /dev/null
+++ b/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/lcc/include/mips/irix/signal.h b/lcc/include/mips/irix/signal.h
new file mode 100755
index 0000000..22f98bc
--- /dev/null
+++ b/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/lcc/include/mips/irix/stdarg.h b/lcc/include/mips/irix/stdarg.h
new file mode 100755
index 0000000..6c3a486
--- /dev/null
+++ b/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/lcc/include/mips/irix/stddef.h b/lcc/include/mips/irix/stddef.h
new file mode 100755
index 0000000..459bfd6
--- /dev/null
+++ b/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/lcc/include/mips/irix/stdio.h b/lcc/include/mips/irix/stdio.h
new file mode 100755
index 0000000..77d996a
--- /dev/null
+++ b/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/lcc/include/mips/irix/stdlib.h b/lcc/include/mips/irix/stdlib.h
new file mode 100755
index 0000000..e224f65
--- /dev/null
+++ b/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/lcc/include/mips/irix/string.h b/lcc/include/mips/irix/string.h
new file mode 100755
index 0000000..f19b1e4
--- /dev/null
+++ b/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/lcc/include/mips/irix/time.h b/lcc/include/mips/irix/time.h
new file mode 100755
index 0000000..55a4922
--- /dev/null
+++ b/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/lcc/include/sparc/solaris/assert.h b/lcc/include/sparc/solaris/assert.h
new file mode 100755
index 0000000..e7f8777
--- /dev/null
+++ b/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/lcc/include/sparc/solaris/ctype.h b/lcc/include/sparc/solaris/ctype.h
new file mode 100755
index 0000000..368c736
--- /dev/null
+++ b/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/lcc/include/sparc/solaris/errno.h b/lcc/include/sparc/solaris/errno.h
new file mode 100755
index 0000000..5ab3f0f
--- /dev/null
+++ b/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/lcc/include/sparc/solaris/float.h b/lcc/include/sparc/solaris/float.h
new file mode 100755
index 0000000..8a8ddb1
--- /dev/null
+++ b/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/lcc/include/sparc/solaris/limits.h b/lcc/include/sparc/solaris/limits.h
new file mode 100755
index 0000000..98251f8
--- /dev/null
+++ b/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/lcc/include/sparc/solaris/locale.h b/lcc/include/sparc/solaris/locale.h
new file mode 100755
index 0000000..a861b47
--- /dev/null
+++ b/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/lcc/include/sparc/solaris/math.h b/lcc/include/sparc/solaris/math.h
new file mode 100755
index 0000000..13740db
--- /dev/null
+++ b/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/lcc/include/sparc/solaris/setjmp.h b/lcc/include/sparc/solaris/setjmp.h
new file mode 100755
index 0000000..b6a9ca3
--- /dev/null
+++ b/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/lcc/include/sparc/solaris/signal.h b/lcc/include/sparc/solaris/signal.h
new file mode 100755
index 0000000..22f98bc
--- /dev/null
+++ b/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/lcc/include/sparc/solaris/stdarg.h b/lcc/include/sparc/solaris/stdarg.h
new file mode 100755
index 0000000..cbdf869
--- /dev/null
+++ b/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/lcc/include/sparc/solaris/stddef.h b/lcc/include/sparc/solaris/stddef.h
new file mode 100755
index 0000000..459bfd6
--- /dev/null
+++ b/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/lcc/include/sparc/solaris/stdio.h b/lcc/include/sparc/solaris/stdio.h
new file mode 100755
index 0000000..4e4a629
--- /dev/null
+++ b/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/lcc/include/sparc/solaris/stdlib.h b/lcc/include/sparc/solaris/stdlib.h
new file mode 100755
index 0000000..e224f65
--- /dev/null
+++ b/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/lcc/include/sparc/solaris/string.h b/lcc/include/sparc/solaris/string.h
new file mode 100755
index 0000000..f19b1e4
--- /dev/null
+++ b/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/lcc/include/sparc/solaris/time.h b/lcc/include/sparc/solaris/time.h
new file mode 100755
index 0000000..55a4922
--- /dev/null
+++ b/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/lcc/include/x86/linux/assert.h b/lcc/include/x86/linux/assert.h
new file mode 100755
index 0000000..5b4776c
--- /dev/null
+++ b/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/lcc/include/x86/linux/float.h b/lcc/include/x86/linux/float.h
new file mode 100755
index 0000000..1c0197f
--- /dev/null
+++ b/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/lcc/include/x86/linux/stdarg.h b/lcc/include/x86/linux/stdarg.h
new file mode 100755
index 0000000..504ee48
--- /dev/null
+++ b/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/lcc/lburg/gram.c b/lcc/lburg/gram.c
new file mode 100755
index 0000000..b484e57
--- /dev/null
+++ b/lcc/lburg/gram.c
@@ -0,0 +1,680 @@
+#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 <stdio.h>
+#endif
+#ifdef __cplusplus
+#include <stdlib.h> /* for malloc/realloc/free */
+#endif
+#line 2 "lburg/gram.y"
+#include <stdio.h>
+#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 ()
+{
+ int old_stacksize = yystacksize;
+ 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 <assert.h>
+#include <stdarg.h>
+#include <ctype.h>
+#include <string.h>
+#include <limits.h>
+
+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;
+#endif
+yynewerror:
+ yyerror("syntax error");
+#ifdef lint
+ goto yyerrlab;
+#endif
+yyerrlab:
+ ++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/lcc/lburg/gram.y b/lcc/lburg/gram.y
new file mode 100755
index 0000000..860d22a
--- /dev/null
+++ b/lcc/lburg/gram.y
@@ -0,0 +1,202 @@
+%{
+#include <stdio.h>
+#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 <string> ID TEMPLATE CODE
+%token <n> INT
+%type <string> nonterm cost
+%type <tree> 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 <assert.h>
+#include <stdarg.h>
+#include <ctype.h>
+#include <string.h>
+#include <limits.h>
+
+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/lcc/lburg/lburg.1 b/lcc/lburg/lburg.1
new file mode 100755
index 0000000..d633e6b
--- /dev/null
+++ b/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/lcc/lburg/lburg.c b/lcc/lburg/lburg.c
new file mode 100755
index 0000000..a34e4e7
--- /dev/null
+++ b/lcc/lburg/lburg.c
@@ -0,0 +1,671 @@
+#include <assert.h>
+#include <ctype.h>
+#include <stdarg.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <time.h>
+#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/lcc/lburg/lburg.h b/lcc/lburg/lburg.h
new file mode 100755
index 0000000..238fe98
--- /dev/null
+++ b/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/lcc/lib/assert.c b/lcc/lib/assert.c
new file mode 100755
index 0000000..5ef6367
--- /dev/null
+++ b/lcc/lib/assert.c
@@ -0,0 +1,15 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+
+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/lcc/lib/bbexit.c b/lcc/lib/bbexit.c
new file mode 100755
index 0000000..1d14bf6
--- /dev/null
+++ b/lcc/lib/bbexit.c
@@ -0,0 +1,123 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+
+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/lcc/lib/yynull.c b/lcc/lib/yynull.c
new file mode 100755
index 0000000..8c01190
--- /dev/null
+++ b/lcc/lib/yynull.c
@@ -0,0 +1,12 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+
+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/lcc/makefile b/lcc/makefile
new file mode 100755
index 0000000..475a15e
--- /dev/null
+++ b/lcc/makefile
@@ -0,0 +1,310 @@
+# $Id: makefile 145 2001-10-17 21:53:10Z timo $
+HOSTFILE=etc/linux.c
+TEMPDIR=/tmp
+A=.a
+O=.o
+E=
+CC=cc
+CFLAGS=-g
+LDFLAGS=
+LD=cc
+AR=ar ruv
+RANLIB=ranlib
+DIFF=diff
+RM=rm -f
+RMDIR=rmdir
+TSTDIR=$(BUILDDIR)/$(TARGET)/tst
+CUSTOM=custom.mk
+include $(CUSTOM)
+B=$(BUILDDIR)/
+T=$(TSTDIR)/
+
+# $Id: makefile 145 2001-10-17 21:53:10Z timo $
+
+what:
+ -@echo make all rcc lburg cpp lcc bprint liblcc triple clean clobber
+
+all:: rcc lburg cpp lcc bprint liblcc
+
+rcc: $Brcc$E
+lburg: $Blburg$E
+cpp: $Bcpp$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
+
+$Brcc$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 $@
+
+$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 -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 $Brcc$O; $(LD) $(LDFLAGS) -o $@ $B2html$O $Brcc$O $(EXTRALIBS)
+
+$Bbprint$E: $Bbprint$O; $(LD) $(LDFLAGS) -o $@ $Bbprint$O
+
+$Bbprint$O: etc/bprint.c; $(CC) $(CFLAGS) -c -Isrc -o $@ etc/bprint.c
+
+$Blcc$E: $Blcc$O $Bhost$O; $(LD) $(LDFLAGS) -o $@ $Blcc$O $Bhost$O
+
+SYSTEM=$(shell cc -print-search-dirs | head -n 1 | cut -b 10-)
+
+$Blcc$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=$Bcpp$O $Blexer$O $Bnlist$O $Btokens$O $Bmacro$O $Beval$O \
+ $Binclude$O $Bhideset$O $Bgetopt$O $Bunix$O
+
+$Bcpp$E: $(CPPOBJS)
+ $(LD) $(LDFLAGS) -o $@ $(CPPOBJS)
+
+$(CPPOBJS): cpp/cpp.h
+
+$Bcpp$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 $Blcc$E /usr/local/bin
+ install $Bcpp$E /usr/local/lib/lcc/gcc
+ install $Brcc$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/rcc$E
+ $(RM) /usr/local/lib/lcc/gcc/cpp$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) $Brcc$E $B2html$E $Bpass2$E $Blburg$E $Bcpp$E $Blcc$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=$Blcc -A -d0.6 -Wo-lccdir=$(BUILDDIR) -Isrc -I$(BUILDDIR)
+triple: $Brcc$E $Blcc$E $Bcpp$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 $Brcc$E; \
+ $(RM) $B1rcc$E $Brcc[12]$E; fi
diff --git a/lcc/makefile.nt b/lcc/makefile.nt
new file mode 100755
index 0000000..2cd94b0
--- /dev/null
+++ b/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 <tst/8q.0 >$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 <tst/array.0 >$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 <tst/cf.0 >$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 <tst/cq.0 >$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 <tst/cvt.0 >$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 <tst/fields.0 >$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 <tst/incr.0 >$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 <tst/init.0 >$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 <tst/limits.0 >$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 <tst/paranoia.0 >$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 <tst/sort.0 >$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 <tst/spill.0 >$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 <tst/stdarg.0 >$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 <tst/struct.0 >$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 <tst/switch.0 >$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 <tst/wf1.0 >$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 <tst/yacc.0 >$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/lcc/mips/irix/tst/8q.1bk b/lcc/mips/irix/tst/8q.1bk
new file mode 100755
index 0000000..c66df8e
--- /dev/null
+++ b/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/lcc/mips/irix/tst/8q.2bk b/lcc/mips/irix/tst/8q.2bk
new file mode 100755
index 0000000..fb28350
--- /dev/null
+++ b/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/lcc/mips/irix/tst/8q.sbk b/lcc/mips/irix/tst/8q.sbk
new file mode 100755
index 0000000..20e2fd1
--- /dev/null
+++ b/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/lcc/mips/irix/tst/array.1bk b/lcc/mips/irix/tst/array.1bk
new file mode 100755
index 0000000..e188568
--- /dev/null
+++ b/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/lcc/mips/irix/tst/array.2bk b/lcc/mips/irix/tst/array.2bk
new file mode 100755
index 0000000..0a9b206
--- /dev/null
+++ b/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/lcc/mips/irix/tst/array.sbk b/lcc/mips/irix/tst/array.sbk
new file mode 100755
index 0000000..575358e
--- /dev/null
+++ b/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/lcc/mips/irix/tst/cf.1bk b/lcc/mips/irix/tst/cf.1bk
new file mode 100755
index 0000000..24e21ba
--- /dev/null
+++ b/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/lcc/mips/irix/tst/cf.2bk b/lcc/mips/irix/tst/cf.2bk
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/lcc/mips/irix/tst/cf.2bk
diff --git a/lcc/mips/irix/tst/cf.sbk b/lcc/mips/irix/tst/cf.sbk
new file mode 100755
index 0000000..62189cf
--- /dev/null
+++ b/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/lcc/mips/irix/tst/cq.1bk b/lcc/mips/irix/tst/cq.1bk
new file mode 100755
index 0000000..b7b7643
--- /dev/null
+++ b/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/lcc/mips/irix/tst/cq.2bk b/lcc/mips/irix/tst/cq.2bk
new file mode 100755
index 0000000..295f5b6
--- /dev/null
+++ b/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/lcc/mips/irix/tst/cq.sbk b/lcc/mips/irix/tst/cq.sbk
new file mode 100755
index 0000000..41cc964
--- /dev/null
+++ b/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/lcc/mips/irix/tst/cvt.1bk b/lcc/mips/irix/tst/cvt.1bk
new file mode 100755
index 0000000..74c79f1
--- /dev/null
+++ b/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/lcc/mips/irix/tst/cvt.2bk b/lcc/mips/irix/tst/cvt.2bk
new file mode 100755
index 0000000..b3ab360
--- /dev/null
+++ b/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/lcc/mips/irix/tst/cvt.sbk b/lcc/mips/irix/tst/cvt.sbk
new file mode 100755
index 0000000..426b826
--- /dev/null
+++ b/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/lcc/mips/irix/tst/fields.1bk b/lcc/mips/irix/tst/fields.1bk
new file mode 100755
index 0000000..f30b13f
--- /dev/null
+++ b/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/lcc/mips/irix/tst/fields.2bk b/lcc/mips/irix/tst/fields.2bk
new file mode 100755
index 0000000..e689d78
--- /dev/null
+++ b/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/lcc/mips/irix/tst/fields.sbk b/lcc/mips/irix/tst/fields.sbk
new file mode 100755
index 0000000..cd60540
--- /dev/null
+++ b/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/lcc/mips/irix/tst/front.2bk b/lcc/mips/irix/tst/front.2bk
new file mode 100755
index 0000000..841e6a5
--- /dev/null
+++ b/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/lcc/mips/irix/tst/front.sbk b/lcc/mips/irix/tst/front.sbk
new file mode 100755
index 0000000..2b8add0
--- /dev/null
+++ b/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/lcc/mips/irix/tst/incr.2bk b/lcc/mips/irix/tst/incr.2bk
new file mode 100755
index 0000000..b86c400
--- /dev/null
+++ b/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/lcc/mips/irix/tst/incr.sbk b/lcc/mips/irix/tst/incr.sbk
new file mode 100755
index 0000000..84c71c0
--- /dev/null
+++ b/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/lcc/mips/irix/tst/init.1bk b/lcc/mips/irix/tst/init.1bk
new file mode 100755
index 0000000..042f3bb
--- /dev/null
+++ b/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/lcc/mips/irix/tst/init.2bk b/lcc/mips/irix/tst/init.2bk
new file mode 100755
index 0000000..da08062
--- /dev/null
+++ b/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/lcc/mips/irix/tst/init.sbk b/lcc/mips/irix/tst/init.sbk
new file mode 100755
index 0000000..9ad285d
--- /dev/null
+++ b/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/lcc/mips/irix/tst/limits.1bk b/lcc/mips/irix/tst/limits.1bk
new file mode 100755
index 0000000..f0c1dc8
--- /dev/null
+++ b/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/lcc/mips/irix/tst/limits.2bk b/lcc/mips/irix/tst/limits.2bk
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/lcc/mips/irix/tst/limits.2bk
diff --git a/lcc/mips/irix/tst/limits.sbk b/lcc/mips/irix/tst/limits.sbk
new file mode 100755
index 0000000..2634913
--- /dev/null
+++ b/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/lcc/mips/irix/tst/paranoia.1bk b/lcc/mips/irix/tst/paranoia.1bk
new file mode 100755
index 0000000..6842a77
--- /dev/null
+++ b/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/lcc/mips/irix/tst/paranoia.2bk b/lcc/mips/irix/tst/paranoia.2bk
new file mode 100755
index 0000000..f6ddf16
--- /dev/null
+++ b/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/lcc/mips/irix/tst/paranoia.sbk b/lcc/mips/irix/tst/paranoia.sbk
new file mode 100755
index 0000000..a0af0f9
--- /dev/null
+++ b/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/lcc/mips/irix/tst/sort.1bk b/lcc/mips/irix/tst/sort.1bk
new file mode 100755
index 0000000..380d529
--- /dev/null
+++ b/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/lcc/mips/irix/tst/sort.2bk b/lcc/mips/irix/tst/sort.2bk
new file mode 100755
index 0000000..27488a1
--- /dev/null
+++ b/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/lcc/mips/irix/tst/sort.sbk b/lcc/mips/irix/tst/sort.sbk
new file mode 100755
index 0000000..57d33f6
--- /dev/null
+++ b/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/lcc/mips/irix/tst/spill.2bk b/lcc/mips/irix/tst/spill.2bk
new file mode 100755
index 0000000..f7e3521
--- /dev/null
+++ b/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/lcc/mips/irix/tst/spill.sbk b/lcc/mips/irix/tst/spill.sbk
new file mode 100755
index 0000000..5b9fb25
--- /dev/null
+++ b/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/lcc/mips/irix/tst/stdarg.1bk b/lcc/mips/irix/tst/stdarg.1bk
new file mode 100755
index 0000000..097aef7
--- /dev/null
+++ b/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/lcc/mips/irix/tst/stdarg.2bk b/lcc/mips/irix/tst/stdarg.2bk
new file mode 100755
index 0000000..a832cf9
--- /dev/null
+++ b/lcc/mips/irix/tst/stdarg.2bk
@@ -0,0 +1 @@
+tst/stdarg.c:51: warning: missing return value
diff --git a/lcc/mips/irix/tst/stdarg.sbk b/lcc/mips/irix/tst/stdarg.sbk
new file mode 100755
index 0000000..556c8b2
--- /dev/null
+++ b/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/lcc/mips/irix/tst/struct.1bk b/lcc/mips/irix/tst/struct.1bk
new file mode 100755
index 0000000..2358779
--- /dev/null
+++ b/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/lcc/mips/irix/tst/struct.2bk b/lcc/mips/irix/tst/struct.2bk
new file mode 100755
index 0000000..8a01bb1
--- /dev/null
+++ b/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/lcc/mips/irix/tst/struct.sbk b/lcc/mips/irix/tst/struct.sbk
new file mode 100755
index 0000000..0eaa438
--- /dev/null
+++ b/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/lcc/mips/irix/tst/switch.1bk b/lcc/mips/irix/tst/switch.1bk
new file mode 100755
index 0000000..559e8e3
--- /dev/null
+++ b/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/lcc/mips/irix/tst/switch.2bk b/lcc/mips/irix/tst/switch.2bk
new file mode 100755
index 0000000..76387b3
--- /dev/null
+++ b/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/lcc/mips/irix/tst/switch.sbk b/lcc/mips/irix/tst/switch.sbk
new file mode 100755
index 0000000..969b490
--- /dev/null
+++ b/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/lcc/mips/irix/tst/wf1.1bk b/lcc/mips/irix/tst/wf1.1bk
new file mode 100755
index 0000000..095e087
--- /dev/null
+++ b/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/lcc/mips/irix/tst/wf1.2bk b/lcc/mips/irix/tst/wf1.2bk
new file mode 100755
index 0000000..0e7a8a6
--- /dev/null
+++ b/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/lcc/mips/irix/tst/wf1.sbk b/lcc/mips/irix/tst/wf1.sbk
new file mode 100755
index 0000000..9892c1c
--- /dev/null
+++ b/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/lcc/mips/irix/tst/yacc.1bk b/lcc/mips/irix/tst/yacc.1bk
new file mode 100755
index 0000000..b08a02f
--- /dev/null
+++ b/lcc/mips/irix/tst/yacc.1bk
@@ -0,0 +1,10 @@
+a
+b
+load
+negate
+push 5
+c
+load
+multiply
+add
+store
diff --git a/lcc/mips/irix/tst/yacc.2bk b/lcc/mips/irix/tst/yacc.2bk
new file mode 100755
index 0000000..a84aa5b
--- /dev/null
+++ b/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/lcc/mips/irix/tst/yacc.sbk b/lcc/mips/irix/tst/yacc.sbk
new file mode 100755
index 0000000..bf9ced2
--- /dev/null
+++ b/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/lcc/msdev/rcc.dsp b/lcc/msdev/rcc.dsp
new file mode 100755
index 0000000..7830702
--- /dev/null
+++ b/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/lcc/msdev/rcc.dsw b/lcc/msdev/rcc.dsw
new file mode 100755
index 0000000..3d97352
--- /dev/null
+++ b/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/lcc/packing.lst b/lcc/packing.lst
new file mode 100755
index 0000000..e62e4b8
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/8q.1bk b/lcc/sparc/solaris/tst/8q.1bk
new file mode 100755
index 0000000..c66df8e
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/8q.2bk b/lcc/sparc/solaris/tst/8q.2bk
new file mode 100755
index 0000000..fb28350
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/8q.sbk b/lcc/sparc/solaris/tst/8q.sbk
new file mode 100755
index 0000000..5418dd7
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/array.1bk b/lcc/sparc/solaris/tst/array.1bk
new file mode 100755
index 0000000..e188568
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/array.2bk b/lcc/sparc/solaris/tst/array.2bk
new file mode 100755
index 0000000..0a9b206
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/array.sbk b/lcc/sparc/solaris/tst/array.sbk
new file mode 100755
index 0000000..2dead90
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/cf.1bk b/lcc/sparc/solaris/tst/cf.1bk
new file mode 100755
index 0000000..24e21ba
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/cf.2bk b/lcc/sparc/solaris/tst/cf.2bk
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/lcc/sparc/solaris/tst/cf.2bk
diff --git a/lcc/sparc/solaris/tst/cf.sbk b/lcc/sparc/solaris/tst/cf.sbk
new file mode 100755
index 0000000..a9c7d30
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/cq.1bk b/lcc/sparc/solaris/tst/cq.1bk
new file mode 100755
index 0000000..b7b7643
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/cq.2bk b/lcc/sparc/solaris/tst/cq.2bk
new file mode 100755
index 0000000..295f5b6
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/cq.sbk b/lcc/sparc/solaris/tst/cq.sbk
new file mode 100755
index 0000000..b924ce4
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/cvt.1bk b/lcc/sparc/solaris/tst/cvt.1bk
new file mode 100755
index 0000000..74c79f1
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/cvt.2bk b/lcc/sparc/solaris/tst/cvt.2bk
new file mode 100755
index 0000000..b3ab360
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/cvt.sbk b/lcc/sparc/solaris/tst/cvt.sbk
new file mode 100755
index 0000000..382a40a
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/fields.1bk b/lcc/sparc/solaris/tst/fields.1bk
new file mode 100755
index 0000000..f30b13f
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/fields.2bk b/lcc/sparc/solaris/tst/fields.2bk
new file mode 100755
index 0000000..e689d78
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/fields.sbk b/lcc/sparc/solaris/tst/fields.sbk
new file mode 100755
index 0000000..c535964
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/front.2bk b/lcc/sparc/solaris/tst/front.2bk
new file mode 100755
index 0000000..841e6a5
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/front.sbk b/lcc/sparc/solaris/tst/front.sbk
new file mode 100755
index 0000000..37a6f0d
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/incr.1bk b/lcc/sparc/solaris/tst/incr.1bk
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/lcc/sparc/solaris/tst/incr.1bk
diff --git a/lcc/sparc/solaris/tst/incr.2bk b/lcc/sparc/solaris/tst/incr.2bk
new file mode 100755
index 0000000..b86c400
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/incr.sbk b/lcc/sparc/solaris/tst/incr.sbk
new file mode 100755
index 0000000..752c97d
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/init.1bk b/lcc/sparc/solaris/tst/init.1bk
new file mode 100755
index 0000000..042f3bb
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/init.2bk b/lcc/sparc/solaris/tst/init.2bk
new file mode 100755
index 0000000..da08062
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/init.sbk b/lcc/sparc/solaris/tst/init.sbk
new file mode 100755
index 0000000..2b10055
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/limits.1bk b/lcc/sparc/solaris/tst/limits.1bk
new file mode 100755
index 0000000..f0c1dc8
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/limits.2bk b/lcc/sparc/solaris/tst/limits.2bk
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/lcc/sparc/solaris/tst/limits.2bk
diff --git a/lcc/sparc/solaris/tst/limits.sbk b/lcc/sparc/solaris/tst/limits.sbk
new file mode 100755
index 0000000..c80d328
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/paranoia.1bk b/lcc/sparc/solaris/tst/paranoia.1bk
new file mode 100755
index 0000000..30c3470
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/paranoia.2bk b/lcc/sparc/solaris/tst/paranoia.2bk
new file mode 100755
index 0000000..f6ddf16
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/paranoia.sbk b/lcc/sparc/solaris/tst/paranoia.sbk
new file mode 100755
index 0000000..e455699
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/sort.1bk b/lcc/sparc/solaris/tst/sort.1bk
new file mode 100755
index 0000000..380d529
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/sort.2bk b/lcc/sparc/solaris/tst/sort.2bk
new file mode 100755
index 0000000..27488a1
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/sort.sbk b/lcc/sparc/solaris/tst/sort.sbk
new file mode 100755
index 0000000..8f67ef5
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/spill.1bk b/lcc/sparc/solaris/tst/spill.1bk
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/lcc/sparc/solaris/tst/spill.1bk
diff --git a/lcc/sparc/solaris/tst/spill.2bk b/lcc/sparc/solaris/tst/spill.2bk
new file mode 100755
index 0000000..f7e3521
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/spill.sbk b/lcc/sparc/solaris/tst/spill.sbk
new file mode 100755
index 0000000..f30c800
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/stdarg.1bk b/lcc/sparc/solaris/tst/stdarg.1bk
new file mode 100755
index 0000000..097aef7
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/stdarg.2bk b/lcc/sparc/solaris/tst/stdarg.2bk
new file mode 100755
index 0000000..a832cf9
--- /dev/null
+++ b/lcc/sparc/solaris/tst/stdarg.2bk
@@ -0,0 +1 @@
+tst/stdarg.c:51: warning: missing return value
diff --git a/lcc/sparc/solaris/tst/stdarg.sbk b/lcc/sparc/solaris/tst/stdarg.sbk
new file mode 100755
index 0000000..1ceae3f
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/struct.1bk b/lcc/sparc/solaris/tst/struct.1bk
new file mode 100755
index 0000000..2358779
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/struct.2bk b/lcc/sparc/solaris/tst/struct.2bk
new file mode 100755
index 0000000..8a01bb1
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/struct.sbk b/lcc/sparc/solaris/tst/struct.sbk
new file mode 100755
index 0000000..720b5a9
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/switch.1bk b/lcc/sparc/solaris/tst/switch.1bk
new file mode 100755
index 0000000..559e8e3
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/switch.2bk b/lcc/sparc/solaris/tst/switch.2bk
new file mode 100755
index 0000000..76387b3
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/switch.sbk b/lcc/sparc/solaris/tst/switch.sbk
new file mode 100755
index 0000000..6a11cd9
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/wf1.1bk b/lcc/sparc/solaris/tst/wf1.1bk
new file mode 100755
index 0000000..095e087
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/wf1.2bk b/lcc/sparc/solaris/tst/wf1.2bk
new file mode 100755
index 0000000..0e7a8a6
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/wf1.sbk b/lcc/sparc/solaris/tst/wf1.sbk
new file mode 100755
index 0000000..2a8fb0f
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/yacc.1bk b/lcc/sparc/solaris/tst/yacc.1bk
new file mode 100755
index 0000000..b08a02f
--- /dev/null
+++ b/lcc/sparc/solaris/tst/yacc.1bk
@@ -0,0 +1,10 @@
+a
+b
+load
+negate
+push 5
+c
+load
+multiply
+add
+store
diff --git a/lcc/sparc/solaris/tst/yacc.2bk b/lcc/sparc/solaris/tst/yacc.2bk
new file mode 100755
index 0000000..a84aa5b
--- /dev/null
+++ b/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/lcc/sparc/solaris/tst/yacc.sbk b/lcc/sparc/solaris/tst/yacc.sbk
new file mode 100755
index 0000000..3c29bf5
--- /dev/null
+++ b/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/lcc/src/2html.c b/lcc/src/2html.c
new file mode 100755
index 0000000..3c9b146
--- /dev/null
+++ b/lcc/src/2html.c
@@ -0,0 +1,555 @@
+#include <assert.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include "c.h"
+#include "rcc.h"
+#if WIN32
+#include <fcntl.h>
+#include <io.h>
+#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("<li>" #field " = "); do_##type(ptr->field); printf("</li>\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("<strong id=uid%d>%d</strong>", x, x);
+}
+
+static void do_define_label(int x) {
+ printf("<strong id=ll%d>%d</strong>", x, x);
+}
+
+static void do_uid(int x) {
+ printf("<a href='#%d'>%d</a>", x, x, x);
+}
+
+static void do_label(int x) {
+ printf("<a href='#L%d'>%d</a>", 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("<em>empty %s list</em>\n", type);
+ else {
+ int i;
+ printf("<em>%s list</em>", type);
+ if (listhtml != NULL)
+ printf("<%s>\n", listhtml);
+ for (i = 0; i < count; i++) {
+ if (listhtml != NULL)
+ printf("<li>");
+ printf(separator);
+ do_one(Seq_get(x, i));
+ if (listhtml != NULL)
+ printf("</li>\n");
+ }
+ if (listhtml != NULL)
+ printf("</%s>\n", listhtml);
+ }
+}
+
+static void do_uid_list(list_ty x) {
+ int i, count = Seq_length(x);
+
+ if (count == 0)
+ printf("<em>empty int list</em>\n");
+ else {
+ int i;
+ printf("<em>int list</em>");
+ 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("<em>field</em><ul>\n");
+ xx(f,id,identifier);
+ xx(f,type,uid);
+ xx(f,offset,int);
+ xx(f,bitsize,int);
+ xx(f,lsb,int);
+ printf("</ul>\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("<em>symbol</em><ul>\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("</ul>\n");
+}
+
+#define caselabel(kind) case rcc_##kind##_enum: \
+ printf("<strong>" #kind "</strong> : <em>%s</em>", typename); \
+ printf("<ul>\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("</ul>\n");
+}
+
+static void do_item(rcc_item_ty x) {
+ printf("<a name='%d'>", x->uid);
+#define attributes xx(x,uid,define_uid)
+ printf("</a>");
+ 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("</ul>\n");
+}
+
+static void do_item_list(list_ty x) {
+ int count = Seq_length(x);
+
+ if (count == 0)
+ printf("<em>empty item list</em>\n");
+ else {
+ int i;
+ printf("<em>item list</em>");
+ printf("<ol>\n");
+ for (i = 0; i < count; i++) {
+ rcc_item_ty item = Seq_get(x, i);
+ printf("<li value=%d>", item->uid);
+ do_item(item);
+ printf("</li>\n");
+ }
+ printf("</ol>\n");
+ }
+}
+
+static void do_string(string_ty x) {
+ printf("%d,<code>'%s'</code>", 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("<a name='L%d'></a>", 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("</ul>");
+}
+
+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("<a name='%d'></a>", x->v.rcc_Address.uid);
+ else if (x->kind == rcc_Local_enum)
+ printf("<a name='%d'></a>", 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("<strong>Blockbeg</strong> : <em>%s</em>", typename); return;
+ case rcc_Blockend_enum: printf("<strong>Blockend</strong> : <em>%s</em>", typename); return;
+ default: assert(0);
+ }
+#undef attributes
+ printf("</ul>\n");
+}
+
+static void do_program(rcc_program_ty x) {
+ printf("<ul>\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("</ul>\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("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\"\n");
+ printf("<html><head><title>%s</title>\n"
+ "<link rev=made href=\"mailto:drh@microsoft.com\">\n"
+ "</head><body>\n<h1>%s</h1>\n", infile, infile);
+ printf("<p>version = %d.%d</p>", version/100, version%100);
+ do_program(pickle);
+ {
+ time_t t;
+ time(&t);
+ printf("<hr><address>%s</address>\n", ctime(&t));
+ }
+ printf("</body></html>\n");
+ return EXIT_SUCCESS;
+}
diff --git a/lcc/src/alloc.c b/lcc/src/alloc.c
new file mode 100755
index 0000000..698da4f
--- /dev/null
+++ b/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/lcc/src/alpha.md b/lcc/src/alpha.md
new file mode 100755
index 0000000..fe7140a
--- /dev/null
+++ b/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<<i)) {
+ print("stt $f%d,%d($sp)\n", i, saved);
+ saved += 8;
+ }
+
+ for (i = 9; i <= 26; i++)
+ if (usedmask[IREG]&(1<<i)) {
+ print("stq $%d,%d($sp)\n", i, saved);
+ saved += 8;
+ }
+ for (i = 0; i < 6 && callee[i]; i++) {
+ r = argregs[i];
+ if (r && r->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<<i)) {
+ print("ldt $f%d,%d($sp)\n", i, saved);
+ saved += 8;
+ }
+ for (i = 9; i <= 26; i++)
+ if (usedmask[IREG]&(1<<i)) {
+ print("ldq $%d,%d($sp)\n", i, saved);
+ saved += 8;
+ }
+ if (framesize > 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/lcc/src/asdl.c b/lcc/src/asdl.c
new file mode 100755
index 0000000..1c01c0c
--- /dev/null
+++ b/lcc/src/asdl.c
@@ -0,0 +1,399 @@
+#include "c.h"
+#include "rcc.h"
+#if WIN32
+#include <fcntl.h>
+#include <io.h>
+#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<<n;
+ xx(structarg,0)
+ xx(addressed,1)
+ xx(computed,2)
+ xx(temporary,3)
+ xx(generated,4)
+#undef xx
+ return rcc_symbol(p->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/lcc/src/bind.c b/lcc/src/bind.c
new file mode 100755
index 0000000..3723e37
--- /dev/null
+++ b/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/lcc/src/bytecode.c b/lcc/src/bytecode.c
new file mode 100755
index 0000000..f32a04f
--- /dev/null
+++ b/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/lcc/src/c.h b/lcc/src/c.h
new file mode 100755
index 0000000..e21419d
--- /dev/null
+++ b/lcc/src/c.h
@@ -0,0 +1,723 @@
+#include <assert.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <limits.h>
+#include <string.h>
+
+#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<<fieldsize(p)))
+typedef struct node *Node;
+
+typedef struct list *List;
+
+typedef struct code *Code;
+
+typedef struct swtch *Swtch;
+
+typedef struct symbol *Symbol;
+
+typedef struct coord {
+ char *file;
+ unsigned x, y;
+} Coordinate;
+typedef struct table *Table;
+
+typedef union value {
+ long i;
+ unsigned long u;
+ long double d;
+ void *p;
+ void (*g)(void);
+} Value;
+typedef struct tree *Tree;
+
+typedef struct type *Type;
+
+typedef struct field *Field;
+
+typedef struct {
+ unsigned printed:1;
+ unsigned marked;
+ unsigned short typeno;
+ void *xt;
+} Xtype;
+
+#include "config.h"
+typedef struct metrics {
+ unsigned char size, align, outofline;
+} Metrics;
+typedef struct interface {
+ Metrics charmetric;
+ Metrics shortmetric;
+ Metrics intmetric;
+ Metrics longmetric;
+ Metrics longlongmetric;
+ Metrics floatmetric;
+ Metrics doublemetric;
+ Metrics longdoublemetric;
+ Metrics ptrmetric;
+ Metrics structmetric;
+ unsigned little_endian:1;
+ unsigned mulops_calls:1;
+ unsigned wants_callb:1;
+ unsigned wants_argb:1;
+ unsigned left_to_right:1;
+ unsigned wants_dag:1;
+ unsigned unsigned_char:1;
+void (*address)(Symbol p, Symbol q, long n);
+void (*blockbeg)(Env *);
+void (*blockend)(Env *);
+void (*defaddress)(Symbol);
+void (*defconst) (int suffix, int size, Value v);
+void (*defstring)(int n, char *s);
+void (*defsymbol)(Symbol);
+void (*emit) (Node);
+void (*export)(Symbol);
+void (*function)(Symbol, Symbol[], Symbol[], int);
+Node (*gen) (Node);
+void (*global)(Symbol);
+void (*import)(Symbol);
+void (*local)(Symbol);
+void (*progbeg)(int argc, char *argv[]);
+void (*progend)(void);
+void (*segment)(int);
+void (*space)(int);
+void (*stabblock)(int, int, Symbol*);
+void (*stabend) (Coordinate *, Symbol, Coordinate **, Symbol *, Symbol *);
+void (*stabfend) (Symbol, int);
+void (*stabinit) (char *, int, char *[]);
+void (*stabline) (Coordinate *);
+void (*stabsym) (Symbol);
+void (*stabtype) (Symbol);
+ Xinterface x;
+} Interface;
+typedef struct binding {
+ char *name;
+ Interface *ir;
+} Binding;
+
+extern Binding bindings[];
+extern Interface *IR;
+typedef struct {
+ List blockentry;
+ List blockexit;
+ List entry;
+ List exit;
+ List returns;
+ List points;
+ List calls;
+ List end;
+} Events;
+
+enum {
+#define xx(a,b,c,d,e,f,g) a=b,
+#define yy(a,b,c,d,e,f,g)
+#include "token.h"
+ LAST
+};
+struct node {
+ short op;
+ short count;
+ Symbol syms[3];
+ Node kids[2];
+ Node link;
+ Xnode x;
+};
+enum {
+ F=FLOAT,
+ I=INT,
+ U=UNSIGNED,
+ P=POINTER,
+ V=VOID,
+ B=STRUCT
+};
+#define gop(name,value) name=value<<4,
+#define op(name,type,sizes)
+
+enum { 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) LASTOP };
+
+#undef gop
+#undef op
+enum { CODE=1, BSS, DATA, LIT };
+enum { PERM=0, FUNC, STMT };
+struct list {
+ void *x;
+ List link;
+};
+
+struct code {
+ enum { Blockbeg, Blockend, Local, Address, Defpoint,
+ Label, Start, Gen, Jump, Switch
+ } kind;
+ Code prev, next;
+ union {
+ struct {
+ int level;
+ Symbol *locals;
+ Table identifiers, types;
+ Env x;
+ } block;
+ Code begin;
+ Symbol var;
+
+ struct {
+ Symbol sym;
+ Symbol base;
+ long offset;
+ } addr;
+ struct {
+ Coordinate src;
+ int point;
+ } point;
+ Node forest;
+ struct {
+ Symbol sym;
+ Symbol table;
+ Symbol deflab;
+ int size;
+ long *values;
+ Symbol *labels;
+ } swtch;
+
+ } u;
+};
+struct swtch {
+ Symbol sym;
+ int lab;
+ Symbol deflab;
+ int ncases;
+ int size;
+ long *values;
+ Symbol *labels;
+};
+struct symbol {
+ char *name;
+ int scope;
+ Coordinate src;
+ Symbol up;
+ List uses;
+ int sclass;
+ unsigned structarg:1;
+
+ unsigned addressed:1;
+ unsigned computed:1;
+ unsigned temporary:1;
+ unsigned generated:1;
+ unsigned defined:1;
+ Type type;
+ float ref;
+ union {
+ struct {
+ int label;
+ Symbol equatedto;
+ } l;
+ struct {
+ unsigned cfields:1;
+ unsigned vfields:1;
+ Table ftab; /* omit */
+ Field flist;
+ } s;
+ int value;
+ Symbol *idlist;
+ struct {
+ Value min, max;
+ } limits;
+ struct {
+ Value v;
+ Symbol loc;
+ } c;
+ struct {
+ Coordinate pt;
+ int label;
+ int ncalls;
+ Symbol *callee;
+ } f;
+ int seg;
+ Symbol alias;
+ struct {
+ Node cse;
+ int replace;
+ Symbol next;
+ } t;
+ } u;
+ Xsymbol x;
+};
+enum { CONSTANTS=1, LABELS, GLOBAL, PARAM, LOCAL };
+struct tree {
+ int op;
+ Type type;
+ Tree kids[2];
+ Node node;
+ union {
+ Value v;
+ Symbol sym;
+
+ Field field;
+ } u;
+};
+enum {
+ AND=38<<4,
+ NOT=39<<4,
+ OR=40<<4,
+ COND=41<<4,
+ RIGHT=42<<4,
+ FIELD=43<<4
+};
+struct type {
+ int op;
+ Type type;
+ int align;
+ int size;
+ union {
+ Symbol sym;
+ struct {
+ unsigned oldstyle:1;
+ Type *proto;
+ } f;
+ } u;
+ Xtype x;
+};
+struct field {
+ char *name;
+ Type type;
+ int offset;
+ short bitsize;
+ short lsb;
+ Field link;
+};
+extern int assignargs;
+extern int prunetemps;
+extern int nodecount;
+extern Symbol cfunc;
+extern Symbol retv;
+extern Tree (*optree[])(int, Tree, Tree);
+
+extern char kind[];
+extern int errcnt;
+extern int errlimit;
+extern int wflag;
+extern Events events;
+extern float refinc;
+
+extern unsigned char *cp;
+extern unsigned char *limit;
+extern char *firstfile;
+extern char *file;
+extern char *line;
+extern int lineno;
+extern int t;
+extern char *token;
+extern Symbol tsym;
+extern Coordinate src;
+extern int Aflag;
+extern int Pflag;
+extern Symbol YYnull;
+extern Symbol YYcheck;
+extern int glevel;
+extern int xref;
+
+extern int ncalled;
+extern int npoints;
+
+extern int needconst;
+extern int explicitCast;
+extern struct code codehead;
+extern Code codelist;
+extern Table stmtlabs;
+extern float density;
+extern Table constants;
+extern Table externals;
+extern Table globals;
+extern Table identifiers;
+extern Table labels;
+extern Table types;
+extern int level;
+
+extern List loci, symbols;
+
+extern List symbols;
+
+extern int where;
+extern Type chartype;
+extern Type doubletype;
+extern Type floattype;
+extern Type inttype;
+extern Type longdouble;
+extern Type longtype;
+extern Type longlong;
+extern Type shorttype;
+extern Type signedchar;
+extern Type unsignedchar;
+extern Type unsignedlonglong;
+extern Type unsignedlong;
+extern Type unsignedshort;
+extern Type unsignedtype;
+extern Type charptype;
+extern Type funcptype;
+extern Type voidptype;
+extern Type voidtype;
+extern Type unsignedptr;
+extern Type signedptr;
+extern Type widechar;
+extern void *allocate(unsigned long n, unsigned a);
+extern void deallocate(unsigned a);
+extern void *newarray(unsigned long m, unsigned long n, unsigned a);
+extern void walk(Tree e, int tlab, int flab);
+extern Node listnodes(Tree e, int tlab, int flab);
+extern Node newnode(int op, Node left, Node right, Symbol p);
+extern Tree cvtconst(Tree);
+extern void printdag(Node, int);
+extern void compound(int, Swtch, int);
+extern void defglobal(Symbol, int);
+extern void finalize(void);
+extern void program(void);
+
+extern Tree vcall(Symbol func, Type ty, ...);
+extern Tree addrof(Tree);
+extern Tree asgn(Symbol, Tree);
+extern Tree asgntree(int, Tree, Tree);
+extern Type assign(Type, Tree);
+extern Tree bittree(int, Tree, Tree);
+extern Tree call(Tree, Type, Coordinate);
+extern Tree calltree(Tree, Type, Tree, Symbol);
+extern Tree condtree(Tree, Tree, Tree);
+extern Tree cnsttree(Type, ...);
+extern Tree consttree(unsigned int, Type);
+extern Tree eqtree(int, Tree, Tree);
+extern int iscallb(Tree);
+extern Tree shtree(int, Tree, Tree);
+extern void typeerror(int, Tree, Tree);
+
+extern void test(int tok, char set[]);
+extern void expect(int tok);
+extern void skipto(int tok, char set[]);
+extern void error(const char *, ...);
+extern int fatal(const char *, const char *, int);
+extern void warning(const char *, ...);
+
+typedef void (*Apply)(void *, void *, void *);
+extern void attach(Apply, void *, List *);
+extern void apply(List event, void *arg1, void *arg2);
+extern Tree retype(Tree p, Type ty);
+extern Tree rightkid(Tree p);
+extern int hascall(Tree p);
+extern Type binary(Type, Type);
+extern Tree cast(Tree, Type);
+extern Tree cond(Tree);
+extern Tree expr0(int);
+extern Tree expr(int);
+extern Tree expr1(int);
+extern Tree field(Tree, const char *);
+extern char *funcname(Tree);
+extern Tree idtree(Symbol);
+extern Tree incr(int, Tree, Tree);
+extern Tree lvalue(Tree);
+extern Tree nullcall(Type, Symbol, Tree, Tree);
+extern Tree pointer(Tree);
+extern Tree rvalue(Tree);
+extern Tree value(Tree);
+
+extern void defpointer(Symbol);
+extern Type initializer(Type, int);
+extern void swtoseg(int);
+
+extern void input_init(int, char *[]);
+extern void fillbuf(void);
+extern void nextline(void);
+
+extern int getchr(void);
+extern int gettok(void);
+
+extern void emitcode(void);
+extern void gencode (Symbol[], Symbol[]);
+extern void fprint(FILE *f, const char *fmt, ...);
+extern char *stringf(const char *, ...);
+extern void check(Node);
+extern void print(const char *, ...);
+
+extern List append(void *x, List list);
+extern int length(List list);
+extern void *ltov (List *list, unsigned a);
+extern void init(int, char *[]);
+
+extern Type typename(void);
+extern void checklab(Symbol p, void *cl);
+extern Type enumdcl(void);
+extern void main_init(int, char *[]);
+extern int main(int, char *[]);
+
+extern void vfprint(FILE *, char *, const char *, va_list);
+
+extern int process(char *);
+extern int findfunc(char *, char *);
+extern int findcount(char *, int, int);
+
+extern Tree constexpr(int);
+extern int intexpr(int, int);
+extern Tree simplify(int, Type, Tree, Tree);
+extern int ispow2(unsigned long u);
+
+extern int reachable(int);
+
+extern void addlocal(Symbol);
+extern void branch(int);
+extern Code code(int);
+extern void definelab(int);
+extern void definept(Coordinate *);
+extern void equatelab(Symbol, Symbol);
+extern Node jump(int);
+extern void retcode(Tree);
+extern void statement(int, Swtch, int);
+extern void swcode(Swtch, int *, int, int);
+extern void swgen(Swtch);
+
+extern char * string(const char *str);
+extern char *stringn(const char *str, int len);
+extern char *stringd(long n);
+extern Symbol relocate(const char *name, Table src, Table dst);
+extern void use(Symbol p, Coordinate src);
+extern void locus(Table tp, Coordinate *cp);
+extern Symbol allsymbols(Table);
+
+extern Symbol constant(Type, Value);
+extern void enterscope(void);
+extern void exitscope(void);
+extern Symbol findlabel(int);
+extern Symbol findtype(Type);
+extern void foreach(Table, int, void (*)(Symbol, void *), void *);
+extern Symbol genident(int, Type, int);
+extern int genlabel(int);
+extern Symbol install(const char *, Table *, int, int);
+extern Symbol intconst(int);
+extern Symbol lookup(const char *, Table);
+extern Symbol mkstr(char *);
+extern Symbol mksymbol(int, const char *, Type);
+extern Symbol newtemp(int, int, int);
+extern Table table(Table, int);
+extern Symbol temporary(int, Type);
+extern char *vtoa(Type, Value);
+
+extern int nodeid(Tree);
+extern char *opname(int);
+extern int *printed(int);
+extern void printtree(Tree, int);
+extern Tree root(Tree);
+extern Tree texpr(Tree (*)(int), int, int);
+extern Tree tree(int, Type, Tree, Tree);
+
+extern void type_init(int, char *[]);
+
+extern Type signedint(Type);
+
+extern int hasproto(Type);
+extern void outtype(Type, FILE *);
+extern void printdecl (Symbol p, Type ty);
+extern void printproto(Symbol p, Symbol args[]);
+extern char *typestring(Type ty, char *id);
+extern Field fieldref(const char *name, Type ty);
+extern Type array(Type, int, int);
+extern Type atop(Type);
+extern Type btot(int, int);
+extern Type compose(Type, Type);
+extern Type deref(Type);
+extern int eqtype(Type, Type, int);
+extern Field fieldlist(Type);
+extern Type freturn(Type);
+extern Type ftype(Type, Type);
+extern Type func(Type, Type *, int);
+extern Field newfield(char *, Type, Type);
+extern Type newstruct(int, char *);
+extern void printtype(Type, int);
+extern Type promote(Type);
+extern Type ptr(Type);
+extern Type qual(int, Type);
+extern void rmtypes(int);
+extern int ttob(Type);
+extern int variadic(Type);
+
diff --git a/lcc/src/config.h b/lcc/src/config.h
new file mode 100755
index 0000000..20d115c
--- /dev/null
+++ b/lcc/src/config.h
@@ -0,0 +1,102 @@
+typedef struct {
+ unsigned char max_unaligned_load;
+ Symbol (*rmap)(int);
+
+ void (*blkfetch)(int size, int off, int reg, int tmp);
+ void (*blkstore)(int size, int off, int reg, int tmp);
+ void (*blkloop)(int dreg, int doff,
+ int sreg, int soff,
+ int size, int tmps[]);
+ void (*_label)(Node);
+ int (*_rule)(void*, int);
+ short **_nts;
+ void (*_kids)(Node, int, Node*);
+ char **_string;
+ char **_templates;
+ char *_isinstruction;
+ char **_ntname;
+ void (*emit2)(Node);
+ void (*doarg)(Node);
+ void (*target)(Node);
+ void (*clobber)(Node);
+} Xinterface;
+extern int askregvar(Symbol, Symbol);
+extern void blkcopy(int, int, int, int, int, int[]);
+extern int getregnum(Node);
+extern int mayrecalc(Node);
+extern int mkactual(int, int);
+extern void mkauto(Symbol);
+extern Symbol mkreg(char *, int, int, int);
+extern Symbol mkwildcard(Symbol *);
+extern int move(Node);
+extern int notarget(Node);
+extern void parseflags(int, char **);
+extern int range(Node, int, int);
+extern unsigned regloc(Symbol); /* omit */
+extern void rtarget(Node, int, Symbol);
+extern void setreg(Node, Symbol);
+extern void spill(unsigned, int, Node);
+extern int widens(Node);
+
+extern int argoffset, maxargoffset;
+extern int bflag, dflag;
+extern int dalign, salign;
+extern int framesize;
+extern unsigned freemask[], usedmask[];
+extern int offset, maxoffset;
+extern int swap;
+extern unsigned tmask[], vmask[];
+typedef struct {
+ unsigned listed:1;
+ unsigned registered:1;
+ unsigned emitted:1;
+ unsigned copy:1;
+ unsigned equatable:1;
+ unsigned spills:1;
+ unsigned mayrecalc:1;
+ void *state;
+ short inst;
+ Node kids[3];
+ Node prev, next;
+ Node prevuse;
+ short argno;
+} Xnode;
+typedef struct {
+ Symbol vbl;
+ short set;
+ short number;
+ unsigned mask;
+} *Regnode;
+enum { IREG=0, FREG=1 };
+typedef struct {
+ char *name;
+ unsigned int eaddr; /* omit */
+ int offset;
+ Node lastuse;
+ int usecount;
+ Regnode regnode;
+ Symbol *wildcard;
+} Xsymbol;
+enum { RX=2 };
+typedef struct {
+ int offset;
+ unsigned freemask[2];
+} Env;
+
+#define LBURG_MAX SHRT_MAX
+
+enum { VREG=(44<<4) };
+
+/* Exported for the front end */
+extern void blockbeg(Env *);
+extern void blockend(Env *);
+extern void emit(Node);
+extern Node gen(Node);
+
+extern unsigned emitbin(Node, int);
+
+#ifdef NDEBUG
+#define debug(x) (void)0
+#else
+#define debug(x) (void)(dflag&&((x),0))
+#endif
diff --git a/lcc/src/dag.c b/lcc/src/dag.c
new file mode 100755
index 0000000..6e931ae
--- /dev/null
+++ b/lcc/src/dag.c
@@ -0,0 +1,735 @@
+#include "c.h"
+
+
+#define iscall(op) (generic(op) == CALL \
+ || IR->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<<fieldright(f);
+ Tree q = tp->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/lcc/src/dagcheck.md b/lcc/src/dagcheck.md
new file mode 100755
index 0000000..5deec0d
--- /dev/null
+++ b/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/lcc/src/decl.c b/lcc/src/decl.c
new file mode 100755
index 0000000..59e0850
--- /dev/null
+++ b/lcc/src/decl.c
@@ -0,0 +1,1160 @@
+#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, &params, 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(&registers, 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;
+ 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/lcc/src/enode.c b/lcc/src/enode.c
new file mode 100755
index 0000000..a81c632
--- /dev/null
+++ b/lcc/src/enode.c
@@ -0,0 +1,543 @@
+#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<<fieldsize(l->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/lcc/src/error.c b/lcc/src/error.c
new file mode 100755
index 0000000..56d164c
--- /dev/null
+++ b/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/lcc/src/event.c b/lcc/src/event.c
new file mode 100755
index 0000000..12f409f
--- /dev/null
+++ b/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/lcc/src/expr.c b/lcc/src/expr.c
new file mode 100755
index 0000000..30b79cc
--- /dev/null
+++ b/lcc/src/expr.c
@@ -0,0 +1,709 @@
+#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/lcc/src/gen.c b/lcc/src/gen.c
new file mode 100755
index 0000000..ab8506a
--- /dev/null
+++ b/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<<n;
+ p->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/lcc/src/init.c b/lcc/src/init.c
new file mode 100755
index 0000000..67bcc69
--- /dev/null
+++ b/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<<fieldright(p);
+ if (IR->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/lcc/src/inits.c b/lcc/src/inits.c
new file mode 100755
index 0000000..d4d49df
--- /dev/null
+++ b/lcc/src/inits.c
@@ -0,0 +1,8 @@
+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);}
+ {extern void x86linux_init(int, char *[]); x86linux_init(argc, argv);}
+}
diff --git a/lcc/src/input.c b/lcc/src/input.c
new file mode 100755
index 0000000..2f34420
--- /dev/null
+++ b/lcc/src/input.c
@@ -0,0 +1,134 @@
+#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/lcc/src/lex.c b/lcc/src/lex.c
new file mode 100755
index 0000000..09c50f3
--- /dev/null
+++ b/lcc/src/lex.c
@@ -0,0 +1,922 @@
+#include "c.h"
+#include <float.h>
+#include <errno.h>
+
+
+#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/lcc/src/list.c b/lcc/src/list.c
new file mode 100755
index 0000000..dbd63ed
--- /dev/null
+++ b/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/lcc/src/main.c b/lcc/src/main.c
new file mode 100755
index 0000000..1367fa0
--- /dev/null
+++ b/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/lcc/src/mips.md b/lcc/src/mips.md
new file mode 100755
index 0000000..7e643fb
--- /dev/null
+++ b/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<<i)) {
+ print("s.d $f%d,%d($sp)\n", i, saved);
+ saved += 8;
+ }
+
+ for (i = 16; i <= 31; i++)
+ if (usedmask[IREG]&(1<<i)) {
+ if (i == 25)
+ print(".cprestore %d\n", saved);
+ else
+ print("sw $%d,%d($sp)\n", i, saved);
+ saved += 4;
+ }
+ for (i = 0; i < 4 && callee[i]; i++) {
+ r = argregs[i];
+ if (r && r->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<<i)) {
+ print("l.d $f%d,%d($sp)\n", i, saved);
+ saved += 8;
+ }
+ for (i = 16; i <= 31; i++)
+ if (usedmask[IREG]&(1<<i)) {
+ print("lw $%d,%d($sp)\n", i, saved);
+ saved += 4;
+ }
+ if (framesize > 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/lcc/src/null.c b/lcc/src/null.c
new file mode 100755
index 0000000..52129fc
--- /dev/null
+++ b/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/lcc/src/output.c b/lcc/src/output.c
new file mode 100755
index 0000000..e8fe6f5
--- /dev/null
+++ b/lcc/src/output.c
@@ -0,0 +1,134 @@
+#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/lcc/src/pass2.c b/lcc/src/pass2.c
new file mode 100755
index 0000000..f9e41cf
--- /dev/null
+++ b/lcc/src/pass2.c
@@ -0,0 +1,665 @@
+#include "c.h"
+#include "rcc.h"
+#if WIN32
+#include <fcntl.h>
+#include <io.h>
+#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/lcc/src/prof.c b/lcc/src/prof.c
new file mode 100755
index 0000000..59ce879
--- /dev/null
+++ b/lcc/src/prof.c
@@ -0,0 +1,227 @@
+#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/lcc/src/profio.c b/lcc/src/profio.c
new file mode 100755
index 0000000..3e74770
--- /dev/null
+++ b/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 a<b, a==b, a>b, 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/lcc/src/rcc.asdl b/lcc/src/rcc.asdl
new file mode 100755
index 0000000..833478e
--- /dev/null
+++ b/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/lcc/src/run.sh b/lcc/src/run.sh
new file mode 100755
index 0000000..432872e
--- /dev/null
+++ b/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 <tst/$C.0 >$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]" <tst/$C.0 >$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/lcc/src/simp.c b/lcc/src/simp.c
new file mode 100755
index 0000000..04699bb
--- /dev/null
+++ b/lcc/src/simp.c
@@ -0,0 +1,587 @@
+#include "c.h"
+#include <float.h>
+
+
+#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)<<fieldright(l->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;
+ Tree p;
+
+ 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<<r->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<<r->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<<n */
+ return simplify(LSH, ty, r, cnsttree(inttype, (long)n));
+ identity(r,l,I,i,1);
+ break;
+ case NE+F:
+ cfoldcnst(F,d,!=);
+ commute(r,l);
+ break;
+ case NE+U:
+ cfoldcnst(U,u,!=);
+ commute(r,l);
+ zerofield(NE,U,u);
+ break;
+ case NEG+F:
+ ufoldcnst(F,cnsttree(ty, -l->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/lcc/src/sparc.md b/lcc/src/sparc.md
new file mode 100755
index 0000000..0171492
--- /dev/null
+++ b/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/lcc/src/stab.c b/lcc/src/stab.c
new file mode 100755
index 0000000..152b778
--- /dev/null
+++ b/lcc/src/stab.c
@@ -0,0 +1,330 @@
+#include <string.h>
+#include <stdlib.h>
+#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++);
+ if (IR == &sparcIR)
+ print(".stabd 0x%x,0,%d\n", brace == '{' ? N_LBRAC : N_RBRAC, lev);
+ else {
+ 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;
+ }
+ if (IR == &sparcIR)
+ print(".stabd 0x%x,0,%d\n", N_SLINE, cp->y);
+ else {
+ 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/lcc/src/stab.h b/lcc/src/stab.h
new file mode 100755
index 0000000..bfb7ebf
--- /dev/null
+++ b/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 <a.out.h>
+ * 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 <a.out.h>.
+ */
+
+#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 <stab.h> */
+ 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/lcc/src/stmt.c b/lcc/src/stmt.c
new file mode 100755
index 0000000..b742a32
--- /dev/null
+++ b/lcc/src/stmt.c
@@ -0,0 +1,697 @@
+#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) {
+ Code cp;
+
+ 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/lcc/src/string.c b/lcc/src/string.c
new file mode 100755
index 0000000..4fee2c9
--- /dev/null
+++ b/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/lcc/src/sym.c b/lcc/src/sym.c
new file mode 100755
index 0000000..1d754d4
--- /dev/null
+++ b/lcc/src/sym.c
@@ -0,0 +1,315 @@
+#include "c.h"
+#include <stdio.h>
+
+
+#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) {
+ char buf[50];
+
+ 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/lcc/src/symbolic.c b/lcc/src/symbolic.c
new file mode 100755
index 0000000..35ff55c
--- /dev/null
+++ b/lcc/src/symbolic.c
@@ -0,0 +1,494 @@
+#include <time.h>
+#include <ctype.h>
+#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("</%s>", 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("<a " #attr "=\""); code; print("\">"); }
+#define NEWLINE print(html ? "<br>\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("&amp;");
+ else if (*s == '<' && html)
+ print("&lt;");
+ else if (*s == '>' && html)
+ print("&lt;");
+ 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("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\">\n");
+ print("<html>");
+ BEGIN(head);
+ if (firstfile && *firstfile)
+ BEGIN(title); emitString(strlen(firstfile), firstfile); END;
+ print("<link rev=made href=\"mailto:drh@microsoft.com\">\n");
+ END;
+ print("<body>\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("<ul>\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("</ul>\n");
+ time(&t);
+ print("<hr><address>%s</address>\n", ctime(&t));
+ print("</body></html>\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/lcc/src/token.h b/lcc/src/token.h
new file mode 100755
index 0000000..f92bf6a
--- /dev/null
+++ b/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/lcc/src/trace.c b/lcc/src/trace.c
new file mode 100755
index 0000000..55b18a1
--- /dev/null
+++ b/lcc/src/trace.c
@@ -0,0 +1,180 @@
+#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/lcc/src/tree.c b/lcc/src/tree.c
new file mode 100755
index 0000000..1f5b49c
--- /dev/null
+++ b/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/lcc/src/types.c b/lcc/src/types.c
new file mode 100755
index 0000000..eead3e1
--- /dev/null
+++ b/lcc/src/types.c
@@ -0,0 +1,748 @@
+#include "c.h"
+#include <float.h>
+
+
+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/lcc/src/x86.md b/lcc/src/x86.md
new file mode 100755
index 0000000..7e8b84f
--- /dev/null
+++ b/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<<EDI) | (1<<ESI) | (1<<EBX)
+ | (1<<EDX) | (1<<ECX) | (1<<EAX);
+ vmask[IREG] = 0;
+ tmask[FREG] = 0xff;
+ vmask[FREG] = 0;
+ print(".486\n");
+ print(".model flat\n");
+ print("extrn __fltused:near\n");
+ print("extrn __ftol:near\n");
+ cseg = 0;
+ quo = mkreg("eax", EAX, 1, IREG);
+ quo->x.regnode->mask |= 1<<EDX;
+ rem = mkreg("edx", EDX, 1, IREG);
+ rem->x.regnode->mask |= 1<<EAX;
+}
+static Symbol rmap(int opk) {
+ switch (optype(opk)) {
+ case B: case P:
+ return intregw;
+ case I: case U:
+ if (opsize(opk) == 1)
+ return charregw;
+ else if (opsize(opk) == 2)
+ return shortregw;
+ else
+ return intregw;
+ case F:
+ return fltregw;
+ default:
+ return 0;
+ }
+}
+static void segment(int n) {
+ if (n == cseg)
+ return;
+ if (cseg == CODE || cseg == LIT)
+ print("_TEXT ends\n");
+ else if (cseg == DATA || cseg == BSS)
+ print("_DATA ends\n");
+ cseg = n;
+ if (cseg == CODE || cseg == LIT)
+ print("_TEXT segment\n");
+ else if (cseg == DATA || cseg == BSS)
+ print("_DATA segment\n");
+}
+static void progend(void) {
+ segment(0);
+ print("end\n");
+}
+static void target(Node p) {
+ assert(p);
+ switch (specific(p->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<<ECX, 1, p);
+ }
+ break;
+ case ASGN+B: case ARG+B:
+ spill(1<<ECX | 1<<ESI | 1<<EDI, IREG, p);
+ break;
+ case EQ+F: case LE+F: case GE+F: case LT+F: case GT+F: case NE+F:
+ spill(1<<EAX, IREG, p);
+ break;
+ case CALL+F:
+ spill(1<<EDX | 1<<EAX | 1<<ECX, IREG, p);
+ break;
+ case CALL+I: case CALL+U: case CALL+P: case CALL+V:
+ spill(1<<EDX | 1<<ECX, IREG, p);
+ break;
+ }
+}
+#define isfp(p) (optype((p)->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/lcc/src/x86linux.md b/lcc/src/x86linux.md
new file mode 100755
index 0000000..b7baaff
--- /dev/null
+++ b/lcc/src/x86linux.md
@@ -0,0 +1,1081 @@
+%{
+/* x86/linux lburg spec. Derived from x86.md by
+Marcos Ramirez <marcos@inf.utfsm.cl>
+Horst von Brand <vonbrand@sleipnir.valparaiso.cl>
+Jacob Navia <jacob@jacob.remcomp.fr>
+*/
+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<<EDI) | (1<<ESI) | (1<<EBX)
+ | (1<<EDX) | (1<<ECX) | (1<<EAX);
+ vmask[IREG] = 0;
+ tmask[FREG] = 0xff;
+ vmask[FREG] = 0;
+
+ cseg = 0;
+ quo = mkreg("%%eax", EAX, 1, IREG);
+ quo->x.regnode->mask |= 1<<EDX;
+ rem = mkreg("%%edx", EDX, 1, IREG);
+ rem->x.regnode->mask |= 1<<EAX;
+
+ stabprefix = ".LL";
+}
+
+static Symbol rmap(int opk) {
+ switch (optype(opk)) {
+ case B: case P:
+ return intregw;
+ case I: case U:
+ if (opsize(opk) == 1)
+ return charregw;
+ else if (opsize(opk) == 2)
+ return shortregw;
+ else
+ return intregw;
+ case F:
+ return fltregw;
+ default:
+ return 0;
+ }
+}
+
+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 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<<ECX | 1<<ESI | 1<<EDI, IREG, p);
+ break;
+ case EQ+F: case LE+F: case GE+F: case LT+F: case GT+F: case NE+F:
+ spill(1<<EAX, IREG, p);
+ break;
+ case CALL+F:
+ spill(1<<EDX | 1<<EAX | 1<<ECX, IREG, p);
+ break;
+ case CALL+I: case CALL+U: case CALL+P: case CALL+V:
+ spill(1<<EDX | 1<<ECX, IREG, p);
+ break;
+ }
+}
+
+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("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/lcc/tst/8q.0 b/lcc/tst/8q.0
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/lcc/tst/8q.0
diff --git a/lcc/tst/8q.c b/lcc/tst/8q.c
new file mode 100755
index 0000000..e55ba1a
--- /dev/null
+++ b/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/lcc/tst/array.0 b/lcc/tst/array.0
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/lcc/tst/array.0
diff --git a/lcc/tst/array.c b/lcc/tst/array.c
new file mode 100755
index 0000000..7b03da5
--- /dev/null
+++ b/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/lcc/tst/cf.0 b/lcc/tst/cf.0
new file mode 100755
index 0000000..1c9226a
--- /dev/null
+++ b/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/lcc/tst/cf.c b/lcc/tst/cf.c
new file mode 100755
index 0000000..1c9226a
--- /dev/null
+++ b/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/lcc/tst/cq.0 b/lcc/tst/cq.0
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/lcc/tst/cq.0
diff --git a/lcc/tst/cq.c b/lcc/tst/cq.c
new file mode 100755
index 0000000..55d18d1
--- /dev/null
+++ b/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<sizeof(sec) / sizeof(sec[0]); j++) {
+ d0.rrc = (*sec[j])(pd0);
+ d0.crc = d0.crc+d0.rrc;
+ if(d0.flgs != 0) printf("Section %s returned %d.\n",d0.rfs,d0.rrc);
+ }
+
+ if(d0.crc == 0) printf("\nNo errors detected.\n");
+ else printf("\nFailed.\n");
+ return 0;
+}
+s22(pd0) /* 2.2 Identifiers (Names) */
+struct defs *pd0;
+{
+ int a234, a;
+ int _, _234, A, rc;
+
+ static char s22er[] = "s22,er%d\n";
+ static char qs22[8] = "s22 ";
+
+ char *ps, *pt;
+ /* Initialize */
+
+ rc = 0;
+ ps = qs22;
+ pt = pd0 -> 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; j<sizeof "queep!"; j++) if(s[j] != s2[j]) lrc = 1;
+ if (lrc != 0){
+ rc = rc+32;
+ if(pd0->flgd != 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 = 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;j<pd0->lbits-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;j<pd0->ibits;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<=k<n.
+ We expect to find k 0s followed by n-k 1s (resp. n-k 1s
+ followed by k 0s). If not, we complain.
+ */
+
+ lrc = 0;
+ for(k=0; k<pd0->ubits; k++){
+ rs = 1;
+ ls = rs<<(pd0->ubits-1);
+
+ rt = 0;
+ lt = ~rt>>k;
+ rt = ~rt<<k;
+
+ for(j=0; j<pd0->ubits;j++){
+ if((j<k) != ((rs&rt) == 0) || (j<k) != ((ls&lt) == 0)) lrc = 1;
+ rs = rs<<1;
+ ls = ls>>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; a<b<c does not mean what it
+ seems to...
+ */
+
+ a = 3;
+ b = 2;
+ c = 1;
+
+ if((a<b<c) != 1){
+ rc = rc+4;
+ if(pd0->flgd != 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");
+
+ /* a<b == c<d whenever a<b and c<d have the same
+ truth value. */
+
+ lrc = 0;
+
+ for(j=0;j<16;j++) x[j] = 1;
+ x[1] = 0;
+ x[4] = 0;
+ x[6] = 0;
+ x[7] = 0;
+ x[9] = 0;
+ x[13] = 0;
+
+ for(a=0;a<2;a++)
+ for(b=0;b<2;b++)
+ for(c=0;c<2;c++)
+ for(d=0;d<2;d++)
+ if((a<b==c<d) != x[8*a+4*b+2*c+d] ) lrc = 1;
+
+ if(lrc != 0){
+ rc = rc+16;
+ if(pd0->flgd != 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; i<size; i++)
+ if(a[i] != i+start) return 1;
+
+ return 0;
+}
+int *fip(x)
+int x;
+{
+ static int y;
+ y = x;
+ return &y;
+}
+glork(x)
+int x;
+{return x;}
+s85(pd0) /* 8.5 Structure and union declarations */
+struct defs *pd0;
+{
+ static char s85er[] = "s85,er%d\n";
+ static char qs85[8] = "s85 ";
+ int rc;
+ char *ps, *pt;
+
+ struct tnode {
+ char tword[20];
+ int count;
+ struct tnode *left;
+ struct tnode *right;
+ };
+
+ struct tnode s1, s2, *sp;
+
+ struct{
+ char cdummy;
+ char c;
+ } sc;
+
+ struct{
+ char cdummy;
+ short s;
+ } ss;
+
+ struct{
+ char cdummy;
+ int i;
+ } si;
+
+ struct{
+ char cdummy;
+ long l;
+ } sl;
+
+ struct{
+ char cdummy;
+ unsigned u;
+ } su;
+
+ struct{
+ char cdummy;
+ float f;
+ } sf;
+
+ struct{
+ char cdummy;
+ double d;
+ } sd;
+
+ int diff[7], j;
+
+ static char *type[] = {
+ "char",
+ "short",
+ "int",
+ "long",
+ "unsigned",
+ "float",
+ "double"
+ };
+
+ static char aln[] = " alignment: ";
+
+ struct{
+ int twobit:2;
+ int :1;
+ int threebit:3;
+ int onebit:1;
+ } s3;
+
+ union{
+ char u1[30];
+ short u2[30];
+ int u3[30];
+ long u4[30];
+ unsigned u5[30];
+ float u6[30];
+ double u7[30];
+ } u0;
+
+ ps = qs85;
+ pt = pd0->rfs;
+ 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/lcc/tst/cvt.0 b/lcc/tst/cvt.0
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/lcc/tst/cvt.0
diff --git a/lcc/tst/cvt.c b/lcc/tst/cvt.c
new file mode 100755
index 0000000..4fb7186
--- /dev/null
+++ b/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/lcc/tst/fields.0 b/lcc/tst/fields.0
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/lcc/tst/fields.0
diff --git a/lcc/tst/fields.c b/lcc/tst/fields.c
new file mode 100755
index 0000000..658f4f6
--- /dev/null
+++ b/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/lcc/tst/front.0 b/lcc/tst/front.0
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/lcc/tst/front.0
diff --git a/lcc/tst/front.c b/lcc/tst/front.c
new file mode 100755
index 0000000..0ce8ae7
--- /dev/null
+++ b/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/lcc/tst/incr.0 b/lcc/tst/incr.0
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/lcc/tst/incr.0
diff --git a/lcc/tst/incr.c b/lcc/tst/incr.c
new file mode 100755
index 0000000..d3d6144
--- /dev/null
+++ b/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/lcc/tst/init.0 b/lcc/tst/init.0
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/lcc/tst/init.0
diff --git a/lcc/tst/init.c b/lcc/tst/init.c
new file mode 100755
index 0000000..310c707
--- /dev/null
+++ b/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/lcc/tst/limits.0 b/lcc/tst/limits.0
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/lcc/tst/limits.0
diff --git a/lcc/tst/limits.c b/lcc/tst/limits.c
new file mode 100755
index 0000000..03b1806
--- /dev/null
+++ b/lcc/tst/limits.c
@@ -0,0 +1,19 @@
+#include <limits.h>
+
+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/lcc/tst/paranoia.0 b/lcc/tst/paranoia.0
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/lcc/tst/paranoia.0
diff --git a/lcc/tst/paranoia.c b/lcc/tst/paranoia.c
new file mode 100755
index 0000000..76e0f05
--- /dev/null
+++ b/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 <stdio.h>
+#ifndef NOSIGNAL
+#include <signal.h>
+#endif
+#include <setjmp.h>
+
+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/lcc/tst/sort.0 b/lcc/tst/sort.0
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/lcc/tst/sort.0
diff --git a/lcc/tst/sort.c b/lcc/tst/sort.c
new file mode 100755
index 0000000..029de8e
--- /dev/null
+++ b/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/lcc/tst/spill.0 b/lcc/tst/spill.0
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/lcc/tst/spill.0
diff --git a/lcc/tst/spill.c b/lcc/tst/spill.c
new file mode 100755
index 0000000..4a3d9aa
--- /dev/null
+++ b/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/lcc/tst/stdarg.0 b/lcc/tst/stdarg.0
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/lcc/tst/stdarg.0
diff --git a/lcc/tst/stdarg.c b/lcc/tst/stdarg.c
new file mode 100755
index 0000000..ff6c918
--- /dev/null
+++ b/lcc/tst/stdarg.c
@@ -0,0 +1,51 @@
+#include <stdarg.h>
+
+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/lcc/tst/struct.0 b/lcc/tst/struct.0
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/lcc/tst/struct.0
diff --git a/lcc/tst/struct.c b/lcc/tst/struct.c
new file mode 100755
index 0000000..97da897
--- /dev/null
+++ b/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/lcc/tst/switch.0 b/lcc/tst/switch.0
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/lcc/tst/switch.0
diff --git a/lcc/tst/switch.c b/lcc/tst/switch.c
new file mode 100755
index 0000000..0cd48de
--- /dev/null
+++ b/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 <limits.h>
+
+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/lcc/tst/wf1.0 b/lcc/tst/wf1.0
new file mode 100755
index 0000000..28f6ebd
--- /dev/null
+++ b/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/lcc/tst/wf1.c b/lcc/tst/wf1.c
new file mode 100755
index 0000000..a95b4ec
--- /dev/null
+++ b/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/lcc/tst/yacc.0 b/lcc/tst/yacc.0
new file mode 100755
index 0000000..8bea9c4
--- /dev/null
+++ b/lcc/tst/yacc.0
@@ -0,0 +1 @@
+a=-b+5*c
diff --git a/lcc/tst/yacc.c b/lcc/tst/yacc.c
new file mode 100755
index 0000000..cd3e9d0
--- /dev/null
+++ b/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 <stdio.h>
+
+# 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/lcc/x86/linux/tst/8q.1bk b/lcc/x86/linux/tst/8q.1bk
new file mode 100755
index 0000000..c66df8e
--- /dev/null
+++ b/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/lcc/x86/linux/tst/8q.2bk b/lcc/x86/linux/tst/8q.2bk
new file mode 100755
index 0000000..fb28350
--- /dev/null
+++ b/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/lcc/x86/linux/tst/8q.sbk b/lcc/x86/linux/tst/8q.sbk
new file mode 100755
index 0000000..34af0f1
--- /dev/null
+++ b/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/lcc/x86/linux/tst/array.1bk b/lcc/x86/linux/tst/array.1bk
new file mode 100755
index 0000000..e188568
--- /dev/null
+++ b/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/lcc/x86/linux/tst/array.2bk b/lcc/x86/linux/tst/array.2bk
new file mode 100755
index 0000000..0a9b206
--- /dev/null
+++ b/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/lcc/x86/linux/tst/array.sbk b/lcc/x86/linux/tst/array.sbk
new file mode 100755
index 0000000..2505a6d
--- /dev/null
+++ b/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/lcc/x86/linux/tst/cf.1bk b/lcc/x86/linux/tst/cf.1bk
new file mode 100755
index 0000000..24e21ba
--- /dev/null
+++ b/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/lcc/x86/linux/tst/cf.2bk b/lcc/x86/linux/tst/cf.2bk
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/lcc/x86/linux/tst/cf.2bk
diff --git a/lcc/x86/linux/tst/cf.sbk b/lcc/x86/linux/tst/cf.sbk
new file mode 100755
index 0000000..dc886e0
--- /dev/null
+++ b/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/lcc/x86/linux/tst/cq.1bk b/lcc/x86/linux/tst/cq.1bk
new file mode 100755
index 0000000..05acbee
--- /dev/null
+++ b/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/lcc/x86/linux/tst/cq.2bk b/lcc/x86/linux/tst/cq.2bk
new file mode 100755
index 0000000..295f5b6
--- /dev/null
+++ b/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/lcc/x86/linux/tst/cq.sbk b/lcc/x86/linux/tst/cq.sbk
new file mode 100755
index 0000000..6e93567
--- /dev/null
+++ b/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/lcc/x86/linux/tst/cvt.1bk b/lcc/x86/linux/tst/cvt.1bk
new file mode 100755
index 0000000..74c79f1
--- /dev/null
+++ b/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/lcc/x86/linux/tst/cvt.2bk b/lcc/x86/linux/tst/cvt.2bk
new file mode 100755
index 0000000..b3ab360
--- /dev/null
+++ b/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/lcc/x86/linux/tst/cvt.sbk b/lcc/x86/linux/tst/cvt.sbk
new file mode 100755
index 0000000..06b427b
--- /dev/null
+++ b/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/lcc/x86/linux/tst/fields.1bk b/lcc/x86/linux/tst/fields.1bk
new file mode 100755
index 0000000..f30b13f
--- /dev/null
+++ b/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/lcc/x86/linux/tst/fields.2bk b/lcc/x86/linux/tst/fields.2bk
new file mode 100755
index 0000000..e689d78
--- /dev/null
+++ b/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/lcc/x86/linux/tst/fields.sbk b/lcc/x86/linux/tst/fields.sbk
new file mode 100755
index 0000000..44607ae
--- /dev/null
+++ b/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/lcc/x86/linux/tst/front.2bk b/lcc/x86/linux/tst/front.2bk
new file mode 100755
index 0000000..841e6a5
--- /dev/null
+++ b/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/lcc/x86/linux/tst/front.sbk b/lcc/x86/linux/tst/front.sbk
new file mode 100755
index 0000000..348b6fe
--- /dev/null
+++ b/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/lcc/x86/linux/tst/incr.1bk b/lcc/x86/linux/tst/incr.1bk
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/lcc/x86/linux/tst/incr.1bk
diff --git a/lcc/x86/linux/tst/incr.2bk b/lcc/x86/linux/tst/incr.2bk
new file mode 100755
index 0000000..b86c400
--- /dev/null
+++ b/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/lcc/x86/linux/tst/incr.sbk b/lcc/x86/linux/tst/incr.sbk
new file mode 100755
index 0000000..1179a8a
--- /dev/null
+++ b/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/lcc/x86/linux/tst/init.1bk b/lcc/x86/linux/tst/init.1bk
new file mode 100755
index 0000000..042f3bb
--- /dev/null
+++ b/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/lcc/x86/linux/tst/init.2bk b/lcc/x86/linux/tst/init.2bk
new file mode 100755
index 0000000..da08062
--- /dev/null
+++ b/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/lcc/x86/linux/tst/init.sbk b/lcc/x86/linux/tst/init.sbk
new file mode 100755
index 0000000..843e281
--- /dev/null
+++ b/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/lcc/x86/linux/tst/limits.1bk b/lcc/x86/linux/tst/limits.1bk
new file mode 100755
index 0000000..f0c1dc8
--- /dev/null
+++ b/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/lcc/x86/linux/tst/limits.2bk b/lcc/x86/linux/tst/limits.2bk
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/lcc/x86/linux/tst/limits.2bk
diff --git a/lcc/x86/linux/tst/limits.sbk b/lcc/x86/linux/tst/limits.sbk
new file mode 100755
index 0000000..bed5d18
--- /dev/null
+++ b/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/lcc/x86/linux/tst/paranoia.1bk b/lcc/x86/linux/tst/paranoia.1bk
new file mode 100755
index 0000000..da344e6
--- /dev/null
+++ b/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/lcc/x86/linux/tst/paranoia.2bk b/lcc/x86/linux/tst/paranoia.2bk
new file mode 100755
index 0000000..f6ddf16
--- /dev/null
+++ b/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/lcc/x86/linux/tst/paranoia.sbk b/lcc/x86/linux/tst/paranoia.sbk
new file mode 100755
index 0000000..79c571c
--- /dev/null
+++ b/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/lcc/x86/linux/tst/sort.1bk b/lcc/x86/linux/tst/sort.1bk
new file mode 100755
index 0000000..380d529
--- /dev/null
+++ b/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/lcc/x86/linux/tst/sort.2bk b/lcc/x86/linux/tst/sort.2bk
new file mode 100755
index 0000000..27488a1
--- /dev/null
+++ b/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/lcc/x86/linux/tst/sort.sbk b/lcc/x86/linux/tst/sort.sbk
new file mode 100755
index 0000000..11dbcdd
--- /dev/null
+++ b/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/lcc/x86/linux/tst/spill.1bk b/lcc/x86/linux/tst/spill.1bk
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/lcc/x86/linux/tst/spill.1bk
diff --git a/lcc/x86/linux/tst/spill.2bk b/lcc/x86/linux/tst/spill.2bk
new file mode 100755
index 0000000..f7e3521
--- /dev/null
+++ b/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/lcc/x86/linux/tst/spill.sbk b/lcc/x86/linux/tst/spill.sbk
new file mode 100755
index 0000000..13799ab
--- /dev/null
+++ b/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/lcc/x86/linux/tst/stdarg.1bk b/lcc/x86/linux/tst/stdarg.1bk
new file mode 100755
index 0000000..097aef7
--- /dev/null
+++ b/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/lcc/x86/linux/tst/stdarg.2bk b/lcc/x86/linux/tst/stdarg.2bk
new file mode 100755
index 0000000..a832cf9
--- /dev/null
+++ b/lcc/x86/linux/tst/stdarg.2bk
@@ -0,0 +1 @@
+tst/stdarg.c:51: warning: missing return value
diff --git a/lcc/x86/linux/tst/stdarg.sbk b/lcc/x86/linux/tst/stdarg.sbk
new file mode 100755
index 0000000..f1001e6
--- /dev/null
+++ b/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/lcc/x86/linux/tst/struct.1bk b/lcc/x86/linux/tst/struct.1bk
new file mode 100755
index 0000000..2358779
--- /dev/null
+++ b/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/lcc/x86/linux/tst/struct.2bk b/lcc/x86/linux/tst/struct.2bk
new file mode 100755
index 0000000..8a01bb1
--- /dev/null
+++ b/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/lcc/x86/linux/tst/struct.sbk b/lcc/x86/linux/tst/struct.sbk
new file mode 100755
index 0000000..7c5b58b
--- /dev/null
+++ b/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/lcc/x86/linux/tst/switch.1bk b/lcc/x86/linux/tst/switch.1bk
new file mode 100755
index 0000000..559e8e3
--- /dev/null
+++ b/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/lcc/x86/linux/tst/switch.2bk b/lcc/x86/linux/tst/switch.2bk
new file mode 100755
index 0000000..76387b3
--- /dev/null
+++ b/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/lcc/x86/linux/tst/switch.sbk b/lcc/x86/linux/tst/switch.sbk
new file mode 100755
index 0000000..c77e6a6
--- /dev/null
+++ b/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/lcc/x86/linux/tst/wf1.1bk b/lcc/x86/linux/tst/wf1.1bk
new file mode 100755
index 0000000..095e087
--- /dev/null
+++ b/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/lcc/x86/linux/tst/wf1.2bk b/lcc/x86/linux/tst/wf1.2bk
new file mode 100755
index 0000000..0e7a8a6
--- /dev/null
+++ b/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/lcc/x86/linux/tst/wf1.sbk b/lcc/x86/linux/tst/wf1.sbk
new file mode 100755
index 0000000..fb237a3
--- /dev/null
+++ b/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/lcc/x86/linux/tst/yacc.1bk b/lcc/x86/linux/tst/yacc.1bk
new file mode 100755
index 0000000..b08a02f
--- /dev/null
+++ b/lcc/x86/linux/tst/yacc.1bk
@@ -0,0 +1,10 @@
+a
+b
+load
+negate
+push 5
+c
+load
+multiply
+add
+store
diff --git a/lcc/x86/linux/tst/yacc.2bk b/lcc/x86/linux/tst/yacc.2bk
new file mode 100755
index 0000000..a84aa5b
--- /dev/null
+++ b/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/lcc/x86/linux/tst/yacc.sbk b/lcc/x86/linux/tst/yacc.sbk
new file mode 100755
index 0000000..a4370b7
--- /dev/null
+++ b/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/lcc/x86/win32/tst/8q.1bk b/lcc/x86/win32/tst/8q.1bk
new file mode 100755
index 0000000..c66df8e
--- /dev/null
+++ b/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/lcc/x86/win32/tst/8q.2bk b/lcc/x86/win32/tst/8q.2bk
new file mode 100755
index 0000000..fb28350
--- /dev/null
+++ b/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/lcc/x86/win32/tst/8q.sbk b/lcc/x86/win32/tst/8q.sbk
new file mode 100755
index 0000000..85cce1a
--- /dev/null
+++ b/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/lcc/x86/win32/tst/array.1bk b/lcc/x86/win32/tst/array.1bk
new file mode 100755
index 0000000..e188568
--- /dev/null
+++ b/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/lcc/x86/win32/tst/array.2bk b/lcc/x86/win32/tst/array.2bk
new file mode 100755
index 0000000..0a9b206
--- /dev/null
+++ b/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/lcc/x86/win32/tst/array.sbk b/lcc/x86/win32/tst/array.sbk
new file mode 100755
index 0000000..a89f3c7
--- /dev/null
+++ b/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/lcc/x86/win32/tst/cf.1bk b/lcc/x86/win32/tst/cf.1bk
new file mode 100755
index 0000000..24e21ba
--- /dev/null
+++ b/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/lcc/x86/win32/tst/cf.2bk b/lcc/x86/win32/tst/cf.2bk
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/lcc/x86/win32/tst/cf.2bk
diff --git a/lcc/x86/win32/tst/cf.sbk b/lcc/x86/win32/tst/cf.sbk
new file mode 100755
index 0000000..6fd654d
--- /dev/null
+++ b/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/lcc/x86/win32/tst/cq.1bk b/lcc/x86/win32/tst/cq.1bk
new file mode 100755
index 0000000..9ea7979
--- /dev/null
+++ b/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/lcc/x86/win32/tst/cq.2bk b/lcc/x86/win32/tst/cq.2bk
new file mode 100755
index 0000000..295f5b6
--- /dev/null
+++ b/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/lcc/x86/win32/tst/cq.sbk b/lcc/x86/win32/tst/cq.sbk
new file mode 100755
index 0000000..a9726b9
--- /dev/null
+++ b/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/lcc/x86/win32/tst/cvt.1bk b/lcc/x86/win32/tst/cvt.1bk
new file mode 100755
index 0000000..74c79f1
--- /dev/null
+++ b/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/lcc/x86/win32/tst/cvt.2bk b/lcc/x86/win32/tst/cvt.2bk
new file mode 100755
index 0000000..b3ab360
--- /dev/null
+++ b/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/lcc/x86/win32/tst/cvt.sbk b/lcc/x86/win32/tst/cvt.sbk
new file mode 100755
index 0000000..341cfaf
--- /dev/null
+++ b/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/lcc/x86/win32/tst/fields.1bk b/lcc/x86/win32/tst/fields.1bk
new file mode 100755
index 0000000..f30b13f
--- /dev/null
+++ b/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/lcc/x86/win32/tst/fields.2bk b/lcc/x86/win32/tst/fields.2bk
new file mode 100755
index 0000000..e689d78
--- /dev/null
+++ b/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/lcc/x86/win32/tst/fields.sbk b/lcc/x86/win32/tst/fields.sbk
new file mode 100755
index 0000000..0e5e059
--- /dev/null
+++ b/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/lcc/x86/win32/tst/front.2bk b/lcc/x86/win32/tst/front.2bk
new file mode 100755
index 0000000..841e6a5
--- /dev/null
+++ b/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/lcc/x86/win32/tst/front.sbk b/lcc/x86/win32/tst/front.sbk
new file mode 100755
index 0000000..b3a6945
--- /dev/null
+++ b/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/lcc/x86/win32/tst/incr.1bk b/lcc/x86/win32/tst/incr.1bk
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/lcc/x86/win32/tst/incr.1bk
diff --git a/lcc/x86/win32/tst/incr.2bk b/lcc/x86/win32/tst/incr.2bk
new file mode 100755
index 0000000..b86c400
--- /dev/null
+++ b/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/lcc/x86/win32/tst/incr.sbk b/lcc/x86/win32/tst/incr.sbk
new file mode 100755
index 0000000..222ce32
--- /dev/null
+++ b/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/lcc/x86/win32/tst/init.1bk b/lcc/x86/win32/tst/init.1bk
new file mode 100755
index 0000000..042f3bb
--- /dev/null
+++ b/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/lcc/x86/win32/tst/init.2bk b/lcc/x86/win32/tst/init.2bk
new file mode 100755
index 0000000..da08062
--- /dev/null
+++ b/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/lcc/x86/win32/tst/init.sbk b/lcc/x86/win32/tst/init.sbk
new file mode 100755
index 0000000..be83cbd
--- /dev/null
+++ b/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/lcc/x86/win32/tst/limits.1bk b/lcc/x86/win32/tst/limits.1bk
new file mode 100755
index 0000000..f0c1dc8
--- /dev/null
+++ b/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/lcc/x86/win32/tst/limits.2bk b/lcc/x86/win32/tst/limits.2bk
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/lcc/x86/win32/tst/limits.2bk
diff --git a/lcc/x86/win32/tst/limits.sbk b/lcc/x86/win32/tst/limits.sbk
new file mode 100755
index 0000000..f041121
--- /dev/null
+++ b/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/lcc/x86/win32/tst/paranoia.1bk b/lcc/x86/win32/tst/paranoia.1bk
new file mode 100755
index 0000000..e25ef14
--- /dev/null
+++ b/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/lcc/x86/win32/tst/paranoia.2bk b/lcc/x86/win32/tst/paranoia.2bk
new file mode 100755
index 0000000..f6ddf16
--- /dev/null
+++ b/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/lcc/x86/win32/tst/paranoia.sbk b/lcc/x86/win32/tst/paranoia.sbk
new file mode 100755
index 0000000..bcce8d3
--- /dev/null
+++ b/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/lcc/x86/win32/tst/sort.1bk b/lcc/x86/win32/tst/sort.1bk
new file mode 100755
index 0000000..380d529
--- /dev/null
+++ b/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/lcc/x86/win32/tst/sort.2bk b/lcc/x86/win32/tst/sort.2bk
new file mode 100755
index 0000000..27488a1
--- /dev/null
+++ b/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/lcc/x86/win32/tst/sort.sbk b/lcc/x86/win32/tst/sort.sbk
new file mode 100755
index 0000000..cdedc1c
--- /dev/null
+++ b/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/lcc/x86/win32/tst/spill.1bk b/lcc/x86/win32/tst/spill.1bk
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/lcc/x86/win32/tst/spill.1bk
diff --git a/lcc/x86/win32/tst/spill.2bk b/lcc/x86/win32/tst/spill.2bk
new file mode 100755
index 0000000..f7e3521
--- /dev/null
+++ b/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/lcc/x86/win32/tst/spill.sbk b/lcc/x86/win32/tst/spill.sbk
new file mode 100755
index 0000000..51cf7be
--- /dev/null
+++ b/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/lcc/x86/win32/tst/stdarg.1bk b/lcc/x86/win32/tst/stdarg.1bk
new file mode 100755
index 0000000..097aef7
--- /dev/null
+++ b/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/lcc/x86/win32/tst/stdarg.2bk b/lcc/x86/win32/tst/stdarg.2bk
new file mode 100755
index 0000000..a832cf9
--- /dev/null
+++ b/lcc/x86/win32/tst/stdarg.2bk
@@ -0,0 +1 @@
+tst/stdarg.c:51: warning: missing return value
diff --git a/lcc/x86/win32/tst/stdarg.sbk b/lcc/x86/win32/tst/stdarg.sbk
new file mode 100755
index 0000000..35c2f66
--- /dev/null
+++ b/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/lcc/x86/win32/tst/struct.1bk b/lcc/x86/win32/tst/struct.1bk
new file mode 100755
index 0000000..2358779
--- /dev/null
+++ b/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/lcc/x86/win32/tst/struct.2bk b/lcc/x86/win32/tst/struct.2bk
new file mode 100755
index 0000000..8a01bb1
--- /dev/null
+++ b/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/lcc/x86/win32/tst/struct.sbk b/lcc/x86/win32/tst/struct.sbk
new file mode 100755
index 0000000..09775a9
--- /dev/null
+++ b/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/lcc/x86/win32/tst/switch.1bk b/lcc/x86/win32/tst/switch.1bk
new file mode 100755
index 0000000..559e8e3
--- /dev/null
+++ b/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/lcc/x86/win32/tst/switch.2bk b/lcc/x86/win32/tst/switch.2bk
new file mode 100755
index 0000000..76387b3
--- /dev/null
+++ b/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/lcc/x86/win32/tst/switch.sbk b/lcc/x86/win32/tst/switch.sbk
new file mode 100755
index 0000000..d81a0ea
--- /dev/null
+++ b/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/lcc/x86/win32/tst/wf1.1bk b/lcc/x86/win32/tst/wf1.1bk
new file mode 100755
index 0000000..095e087
--- /dev/null
+++ b/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/lcc/x86/win32/tst/wf1.2bk b/lcc/x86/win32/tst/wf1.2bk
new file mode 100755
index 0000000..0e7a8a6
--- /dev/null
+++ b/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/lcc/x86/win32/tst/wf1.sbk b/lcc/x86/win32/tst/wf1.sbk
new file mode 100755
index 0000000..df5688a
--- /dev/null
+++ b/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/lcc/x86/win32/tst/yacc.1bk b/lcc/x86/win32/tst/yacc.1bk
new file mode 100755
index 0000000..b08a02f
--- /dev/null
+++ b/lcc/x86/win32/tst/yacc.1bk
@@ -0,0 +1,10 @@
+a
+b
+load
+negate
+push 5
+c
+load
+multiply
+add
+store
diff --git a/lcc/x86/win32/tst/yacc.2bk b/lcc/x86/win32/tst/yacc.2bk
new file mode 100755
index 0000000..a84aa5b
--- /dev/null
+++ b/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/lcc/x86/win32/tst/yacc.sbk b/lcc/x86/win32/tst/yacc.sbk
new file mode 100755
index 0000000..432c9a4
--- /dev/null
+++ b/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